Sunday, April 18, 2010

Maemo



Maemo is a software platform developed by Nokia for smartphones and Internet Tablets.[ It is based on the Debian Linux distribution.

The platform comprises the Maemo operating system and the Maemo SDK.

Maemo is mostly based on open source code, and has been developed by Maemo Devices within Nokia in collaboration with many open source projects such as the Linux kernel, Debian, and GNOME. Maemo is based on Debian GNU/Linux and draws much of its GUI, frameworks, and libraries from the GNOME project. It uses the Matchbox window manager, and the GTK-based Hildon as its GUI and application framework.

The UI in Maemo 4 is similar to many handheld interfaces, and features a "Home" screen, which acts as a central point from which all applications and settings are accessed. The Home Screen is divided into areas for launching applications, a menu bar, and a large customisable area that can display information such as an RSS reader, Internet radio player, and Google search box.

The Maemo 5 UI is slightly different: The menu bar and info area are consolidated to the top of the display, and the four desktops can be customized with shortcuts and widgets.
User Interface
[edit] OS2005–OS2008





Up to Maemo 4 (a.k.a OS2008), the default screen is the "Home" screen—the central point from which all applications and settings are accessed. The Home Screen is divided into the following areas:

* Vertically down the left hand side of the screen is the Taskbar, with applets for the web browser, communications, and application menu by default, but these can be modified using third party plugins (to provide a favorites menu, or a command menu, for example).
* Horizontally across the top left half is the Menubar, which shows the application name and window title and gives access to the application's menu (which contains the typical, File, Edit, View, Tools, etc, menus and submenus)
* Horizontally across the top right half is the Statusbar, containing icons such as battery life, wireless connection, volume, Bluetooth, and brightness by default, but these can be expanded using third party plugins in the same manner as the Taskbar.
* The remaining large part of the display contains Home applets (roughly analogous to Apple Inc.'s Dashboard widgets), which can display data as well as being a shortcut to applications. These include an RSS reader, Internet radio player, Google search box and contact list by default, but can also be expanded with third party plugins.

The interface uses either the touch screen, or a directional pad and select button, with separate back, menu, and home buttons. It is capable of two modes of text input: handwriting recognition, and two different sizes of onscreen keyboard, as well as hardware keyboard input with the N810.[
Maemo 5 (Fremantle)

The UI in Maemo 5 has changed with respect to its predecessors. It provides four fully customizable (add/remove widgets, move widgets around, change the background, shortcut to applications/contacts) "Home" screens,[ called Panorama Desktop. Switching from one desktop to the others is done by sliding one's finger horizontally on the background. The dashboard is accessed via the upper left icon and shows all the running applications, in a manner similar to the Exposé feature in Apple's MacOS X operating system. From the dashboard, running applications can be brought back to fullscreen by tapping the preview window or applications can be closed by tapping an X-symbol located in the top right corner of the preview window, similar to the concept of closing applications in other operating systems. The application launcher, where all the installed applications can be launched, can be accessed as well from the dashboard by tapping the same area again in the upper left corner of the screen which invokes the dashboard.[5][6] If no task or application is running in the background, tapping the top left icon skips the dashboard and directly displays the application launcher.

Maemo provides the Mozilla-based MicroB web-browser with complete Adobe Flash support, which can operate over a wireless connection. It supports an 800x480 display resolution, so some web pages can be viewed without horizontal scrolling. It can automatically connect to known wireless networks and download RSS feeds and email and disconnect automatically without user intervention.[

Software is installed or uninstalled using the Application manager. The X Terminal can also be used to install applications using the "apt-get" command (Although this is discouraged for inexperienced users). Users can subscribe to different software repositories which can then be used to automatically keep software up to date. The Application manager also provides an overview of everything currently installed on the system. Data can be synchronized with a PC via a USB connection, and the users files can be accessed using the standard Removable Storage Device protocol.

Maemo devices can be updated using a simple flashing method with a computer over USB.




Since Diablo (Maemo 4.1), Maemo supports "Seamless Software Update" (SSU), which allows incremental operating system upgrades "over the air" using apt without the need for a full flash with every update.

Flashing remains available as a way to start over from scratch with a clean install (much like formatting your hard drive and reinstalling your OS on a PC).
Security

The quick start guide for developers warns that Maemo security concentrates on preventing remote attacks (e.g. by wireless networking and Bluetooth). In particular, it warns that Maemo makes use of a root account, but has a trivial default password (sudo gainroot, pw:rootme).[

Independent of the root password, Maemo provides a way to lock the device's controls and display with a numeric access code to help prevent unauthorised access.[10]
Components

Maemo is a modified version of the Debian Linux distribution, slimmed down for mobile devices.[11] It uses an X Window System-based graphical user interface using Xomap and the Matchbox window manager; the GUI uses the GTK+ toolkit and Hildon user interface widgets and API.

BusyBox, a software package for embedded and mobile devices, replaces the GNU Core Utilities used in Debian-proper to reduce memory usage and storage requirements (at the expense of some functionality).

ESD is used as the primary sound server, and GStreamer is used by the shipped media player to play back sounds and movies. The formats supported by GStreamer can be extended by compiling GStreamer plugins in scratchbox (Maemo SDK), which was done, for example, to bring Ogg support to the platform.[14] 3rd party media players can access GStreamer directly or via "osso-media-server".[citation needed]

Window management is handled by the Matchbox window manager, which limits the screen to showing a single window at a time (Ubuntu Netbook Remix implements a similar system). This is to improve handheld usability on a mobile device with a small screen.

Although Maemo is based on Linux and open source software, some parts of Maemo remain closed source. These include some user-space software, like certain statusbar and taskbar applets (including the display brightness applet) and applications, and some system daemons related to connectivity and power management.[citation needed]

Maemo comes with a number of built-in applications, but additional applications can be installed from a number of sources, including various official and community software repositories and deb files through either the built-in package manager "Application manager" or apt and dpkg.

Bundled applications include the Mozilla-based MicroB browser, Macromedia Flash, Gizmo5, and Skype.
Third-party applications

Due in part to the free and open source nature of Linux and Maemo, porting applications to Maemo is a straightforward procedure. Because of this, there are many third-party applications available for the platform. Some applications are original software written specifically for Maemo, while other applications are straight ports of existing Linux programs. Some notable software includes:

Media players
Canola (with network streaming), MPlayer
Internet
Claws Mail, Modest, Midori, Firefox for mobile
Office applications
Gnumeric (spreadsheet), Abiword (word processing)
Instant Messaging
Pidgin
VOIP
Gizmo5, Skype
Games
The Battle for Wesnoth, Wormux, Doom
Others
FBReader (e-book reader), GPE (OpenSync compatible PIM), rdesktop (RDP remote access), Rhapsody (subscription music, US only), ScummVM (game emulator), Wayfinder (fully featured GPS navigation software), Free42S (HP 42S calculator emulator), gPodder (podcast client), Maemo Mapper (includes GPS functionality), MaemoMyth (MythTV frontend that uses GMythStream), Monsoon HAVA (TV viewer and controller), Navit (GPS navigation software), Obscura Photo Manager, Palm Emulator from Access (ARM based Palm emulator), Phonelink (SMS and voice caller via BT), Quiver Image Viewer, SDict Viewer (sdict-based dictionary/encyclopedia viewer), Vagalume (Last.FM player), VNC, YouAmp (music player), LogMeIn Browser Plugin
Fremantle Stars
Applications developed by the community and supported by Nokia as Fremantle Stars will be part of Maemo 5.[ notable applications: Mauku (micro-blogging client),[ Maemo Mapper (map application),[ Physics (game),[ ScummVM (game, includes Beneath a Steel Sky),[ Xournal (notes/sketch utility),[ Fennec (web browser)[, FBReader (e-book reader),[22] OSM2Go (OpenStreetMap editor)
Debian





OpenOffice.org running on Maemo 5 using Easy Debian.
The complete ARM Debian distribution can be installed as a Maemo application.[24], making thousands of software packages available (including OpenOffice, Firefox, Java, the GNOME, and LXDE desktops, etc). Debian ARM packages can also be used if they are modified with the maemo-optify tool for example). The ability to run largely-unmodified linux packages is the main difference compared to other Linux based mobile operating systems such as Android and webOS.
i have collected some sites usefull for python developers in maemo....

N900

http://lists.maemo.org/pipermail/maemo-developers/2009-October/021433.html
http://www.pygtk.org/
http://docs.python.org/distutils/index.html
http://www.symbiantalk.net/showthread.php?14561-Python-for-Maemo
http://pymaemo.garage.maemo.org/installation_device.html
http://talk.maemo.org/showthread.php?t=43663&highlight=python
http://croozeus.com/blogs/?p=1403
http://www.allmeegodevices.com/category/mobile-phones/
http://talk.maemo.org/showthread.php?t=19009
http://www.themaemo.com/python-for-newbies/
http://www.themaemo.com/tag/n900/
http://www.themaemo.com/python-for-newbies/
http://wiki.maemo.org/PyMaemo/Using_Python_in_Maemo