SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
static void




Modest
                                 _f_do_barnacle_install_properties(GObjectClass
                                                                 *gobject_class)
                                                                                {
                                                           GParamSpec *pspec;




Creating a modern mobile email
                                                      /* Party code attribute */
                      pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE,
                                                             "Barnacle code.",
                                                              "Barnacle code",
                                                                             0,


client with GNOME technologies
                                                              G_MAXUINT64,
                                               G_MAXUINT64 /* default value
                                                                             */,
                                                     G_PARAM_READABLE |
                                                     G_PARAM_WRITABLE |
                                                       G_PARAM_PRIVATE);

                                  g_object_class_install_property (gobject_class,

                                             F_DO_BARNACLE_PROP_CODE,




José Dapena Paz
jdapena@igalia.com
Brief history
●   Started in 2006
●   2007 Targeted for Maemo Chinook
●   December 2007 first beta release
●   2008 Maemo Diablo
●   2009 Development becomes public. Repository moved
    to GIT
●   Now. Maemo Fremantle release
How big is it?
●   Modest
    Total Physical Source Lines of Code
    (SLOC)               = 104,675
●   Tinymail
    Total Physical Source Lines of Code
    (SLOC)               = 179,363
Goals
Easy to use
Embedded devices
●   Small resources
●   Small screen
●   Small storage
Multiple UI.
Common logic
Gnome UI
Maemo 4/Diablo UI
Maemo 5/Fremantle UI




Next slides... :)
Support for modest common email
            protocols

● IMAP
● POP3


● SMTP
Extensibility




New Plugin architecture
Architecture
Architecture
                       GTK
Modest
                                                     Modest          Modest
                    Gnome stack                   Plugin Xproto   Plugin Yproto

                                 Maemo
               Hildon
                                 platform

            libtinymail-gtk   libtinymail-maemo
 Tinymail




                                                  Camel Xproto    Camel Yproto
                    libtinymail-camel

                       camel-lite                 Xproto daemon

             IMAP         POP           SMTP
Camel-lite
mmap-ed summaries
● Very reduced memory usage
● Very compact representation on disk


● Efficient use of memory (thx kernel)
Camel features out-of-the-box

● Great support for MIME
● Streams based API


● Modular extensible
Tinymail
●   Multiple platforms
●   Simplifies Camel API's
●   Integrated Glib mainloop
●   Gtk+ widgets
●   Asynchronous API's. Responsive UI
●   Modular design
Modest
● Message view based on gtkhtml
● Rich message editor based on wpeditor


● Offline read of messages and folders


● Integration with network status libraries
Migration to Hildon 2.2
Hildon 2.2/Fremantle philosophy
●   Proper experience with finger in small screens. No stylus
●   No focus in views
●   Actions not repeated through UI
●   No hierarchies in menus
●   No scrollbars ---> Use pannables
●   No tabs
●   Stackable windows
What to change in Modest?


          Goal
Mail simple for everyone!
Main window replacements
● Diablo main window: very complex.
● Required stylus. Fingers usability was

  almost broken.
● Move from old main window to “one window

  per object handled”. Stackables. New
  window management.
Main window replacements
Main window replacements
Main window replacements
Main window replacements
Show relevant information




Small space for important information
Show relevant information
Show relevant information
Very complex menus
Diablo hierarchies: 3 levels.
Difficult to browse, not easy to
understand.
Hard to... tap.
Very complex menus
●   Menus in Fremantle:
    ●   Up to 10 options
    ●   No hierarchy
No focus
No focus
No focus
Migration to finger widgets
Use pannables
Finger size buttons
Replace comboboxes with touchable selectors.
What we did? More things
●   Reused widgets from Diablo, but reorganized in new
    windows.
●   Stacking views. One window at a time.
●   Pannables everywhere
Challenges
Challenges
●   Massive email accounts (Gmail like)
●   High volume of information in small screens
●   Performance requirements
●   Slow network connection
●   Plugin API
Challenge 1: massive email accounts
●   Improved speed handling massive folders
●   Faster response loading folders window
●   Show fast last readed messages (the ones user wants
    to see)
●   Lots of bugfixing and performance improvements.
●   More reliable now with very big folders.
Challenge 2: performance
●   Lots of new optimisations
●   Priority to perceived speed
●   Show immediately the information user wants to see
●   Better handling of big messages
Challenge 3: better MIME support
●   Signed messages now visible
●   Reply: adds References fields
●   Multibody supported now
●   Reply to HTML-only messages quotes properly
Challenge 4: plugin architecture
●   Support for adding other protocols as plugins
●   Storage and transport as camel backend plugins
●   Modest plugin for UI side
●   Other protocols? NNTP? RSS? You're invited!
Conclusions
Work done in 2009
●   Finger enabled UI
●   More reliable
●   Plugins support
●   Easier for user
●   Faster, better user experience
●   Better support of mail standards
Next releases
●   More speed and power usage improvements
●   Live search
●   Optimize network bandwidth usage
Future
●   Pluggable storage support
●   Daemonize
●   Take advantage of plugins architecture for new
    features
●   Ports to other devices. Moblin?
Get involved
●   https://git.maemo.org/projects/modest
●   http://modest.garage.maemo.org
●   #modest @ freenode
●   modest-devel@garage.maemo.org
●   modest-users@garage.maemo.org


                        Questions?
Thanks!

Más contenido relacionado

La actualidad más candente

How can OpenNebula fit your needs - OpenNebulaConf 2013
How can OpenNebula fit your needs - OpenNebulaConf 2013 How can OpenNebula fit your needs - OpenNebulaConf 2013
How can OpenNebula fit your needs - OpenNebulaConf 2013 Maxence Dunnewind
 
OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9
OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9
OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9Alkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntOpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntAlkacon Software GmbH & Co. KG
 
On Rabbits and Elephants
On Rabbits and ElephantsOn Rabbits and Elephants
On Rabbits and ElephantsGavin Roy
 
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)Igalia
 
Cache hcm-topdev
Cache hcm-topdevCache hcm-topdev
Cache hcm-topdevThanh Chau
 
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4Igalia
 
IoT and developer chances
IoT and developer chancesIoT and developer chances
IoT and developer chancesChau Thanh
 

La actualidad más candente (11)

How can OpenNebula fit your needs - OpenNebulaConf 2013
How can OpenNebula fit your needs - OpenNebulaConf 2013 How can OpenNebula fit your needs - OpenNebulaConf 2013
How can OpenNebula fit your needs - OpenNebulaConf 2013
 
OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9
OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9
OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9
 
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntOpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
 
On Rabbits and Elephants
On Rabbits and ElephantsOn Rabbits and Elephants
On Rabbits and Elephants
 
OpenCms Days 2013 - Site Management Tool
OpenCms Days 2013 - Site Management ToolOpenCms Days 2013 - Site Management Tool
OpenCms Days 2013 - Site Management Tool
 
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
 
Cache hcm-topdev
Cache hcm-topdevCache hcm-topdev
Cache hcm-topdev
 
OpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and JenkinsOpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and Jenkins
 
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
 
OpenCms Days 2015 Next generation repository
OpenCms Days 2015  Next generation repositoryOpenCms Days 2015  Next generation repository
OpenCms Days 2015 Next generation repository
 
IoT and developer chances
IoT and developer chancesIoT and developer chances
IoT and developer chances
 

Destacado

Guadec 2012 lt - web application stores in gnome
Guadec 2012   lt - web application stores in gnomeGuadec 2012   lt - web application stores in gnome
Guadec 2012 lt - web application stores in gnomeJosé Dapena Paz
 
Afibad
AfibadAfibad
Afibadcain33
 
The impact of innovation on travel and tourism industries (World Travel Marke...
The impact of innovation on travel and tourism industries (World Travel Marke...The impact of innovation on travel and tourism industries (World Travel Marke...
The impact of innovation on travel and tourism industries (World Travel Marke...Brian Solis
 
Open Source Creativity
Open Source CreativityOpen Source Creativity
Open Source CreativitySara Cannon
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)maditabalnco
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsBarry Feldman
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 

Destacado (7)

Guadec 2012 lt - web application stores in gnome
Guadec 2012   lt - web application stores in gnomeGuadec 2012   lt - web application stores in gnome
Guadec 2012 lt - web application stores in gnome
 
Afibad
AfibadAfibad
Afibad
 
The impact of innovation on travel and tourism industries (World Travel Marke...
The impact of innovation on travel and tourism industries (World Travel Marke...The impact of innovation on travel and tourism industries (World Travel Marke...
The impact of innovation on travel and tourism industries (World Travel Marke...
 
Open Source Creativity
Open Source CreativityOpen Source Creativity
Open Source Creativity
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Similar a Modest Maemo Summit 09

Adapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo FremantleAdapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo FremantleJoaquim Rocha
 
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...AEGIS-ACCESSIBLE Projects
 
Meiga Guadec 2009 English
Meiga Guadec 2009 EnglishMeiga Guadec 2009 English
Meiga Guadec 2009 Englisheocanha
 
The Listening: Email Client Backdoor
The Listening: Email Client BackdoorThe Listening: Email Client Backdoor
The Listening: Email Client BackdoorMichael Scovetta
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Igalia
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)Igalia
 
Basics of gtk_ilugc
Basics of gtk_ilugcBasics of gtk_ilugc
Basics of gtk_ilugcilugc
 
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)Igalia
 
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Igalia
 
AGES Presentation on Web, Python, Django and GeoServer
AGES Presentation on Web, Python, Django and GeoServerAGES Presentation on Web, Python, Django and GeoServer
AGES Presentation on Web, Python, Django and GeoServerNg'eno Victor
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Igalia
 
Symfony2 as an api
Symfony2 as an apiSymfony2 as an api
Symfony2 as an apiKifah Abbad
 
OCRFeeder LinuxTag 2011
OCRFeeder LinuxTag 2011OCRFeeder LinuxTag 2011
OCRFeeder LinuxTag 2011Joaquim Rocha
 
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform 5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform Eduardo Lima
 
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...Nicolas Brousse
 
Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)Igalia
 
Gomobile: gophers in the land of Android
Gomobile: gophers in the land of AndroidGomobile: gophers in the land of Android
Gomobile: gophers in the land of AndroidJovica Popovic
 
Hildon 2.2: the Hildon toolkit for Fremantle
Hildon 2.2: the Hildon toolkit for FremantleHildon 2.2: the Hildon toolkit for Fremantle
Hildon 2.2: the Hildon toolkit for FremantleAlberto Garcia
 
Google cloud run + elixir boilerplate
Google cloud run + elixir boilerplateGoogle cloud run + elixir boilerplate
Google cloud run + elixir boilerplateRenato Freire Ricardo
 

Similar a Modest Maemo Summit 09 (20)

Adapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo FremantleAdapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo Fremantle
 
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
 
Meiga Guadec 2009 English
Meiga Guadec 2009 EnglishMeiga Guadec 2009 English
Meiga Guadec 2009 English
 
The Listening: Email Client Backdoor
The Listening: Email Client BackdoorThe Listening: Email Client Backdoor
The Listening: Email Client Backdoor
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)
 
Basics of gtk_ilugc
Basics of gtk_ilugcBasics of gtk_ilugc
Basics of gtk_ilugc
 
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
 
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
 
AGES Presentation on Web, Python, Django and GeoServer
AGES Presentation on Web, Python, Django and GeoServerAGES Presentation on Web, Python, Django and GeoServer
AGES Presentation on Web, Python, Django and GeoServer
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
 
Symfony2 as an api
Symfony2 as an apiSymfony2 as an api
Symfony2 as an api
 
OCRFeeder LinuxTag 2011
OCRFeeder LinuxTag 2011OCRFeeder LinuxTag 2011
OCRFeeder LinuxTag 2011
 
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform 5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform
 
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
 
Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)
 
Gomobile: gophers in the land of Android
Gomobile: gophers in the land of AndroidGomobile: gophers in the land of Android
Gomobile: gophers in the land of Android
 
Hildon 2.2: the Hildon toolkit for Fremantle
Hildon 2.2: the Hildon toolkit for FremantleHildon 2.2: the Hildon toolkit for Fremantle
Hildon 2.2: the Hildon toolkit for Fremantle
 
Deep dive into serverless on Google Cloud
Deep dive into serverless on Google CloudDeep dive into serverless on Google Cloud
Deep dive into serverless on Google Cloud
 
Google cloud run + elixir boilerplate
Google cloud run + elixir boilerplateGoogle cloud run + elixir boilerplate
Google cloud run + elixir boilerplate
 

Último

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Modest Maemo Summit 09

  • 1. static void Modest _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; Creating a modern mobile email /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", 0, client with GNOME technologies G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, José Dapena Paz jdapena@igalia.com
  • 2. Brief history ● Started in 2006 ● 2007 Targeted for Maemo Chinook ● December 2007 first beta release ● 2008 Maemo Diablo ● 2009 Development becomes public. Repository moved to GIT ● Now. Maemo Fremantle release
  • 3. How big is it? ● Modest Total Physical Source Lines of Code (SLOC) = 104,675 ● Tinymail Total Physical Source Lines of Code (SLOC) = 179,363
  • 6. Embedded devices ● Small resources ● Small screen ● Small storage
  • 11. Support for modest common email protocols ● IMAP ● POP3 ● SMTP
  • 14. Architecture GTK Modest Modest Modest Gnome stack Plugin Xproto Plugin Yproto Maemo Hildon platform libtinymail-gtk libtinymail-maemo Tinymail Camel Xproto Camel Yproto libtinymail-camel camel-lite Xproto daemon IMAP POP SMTP
  • 16. mmap-ed summaries ● Very reduced memory usage ● Very compact representation on disk ● Efficient use of memory (thx kernel)
  • 17. Camel features out-of-the-box ● Great support for MIME ● Streams based API ● Modular extensible
  • 18. Tinymail ● Multiple platforms ● Simplifies Camel API's ● Integrated Glib mainloop ● Gtk+ widgets ● Asynchronous API's. Responsive UI ● Modular design
  • 19. Modest ● Message view based on gtkhtml ● Rich message editor based on wpeditor ● Offline read of messages and folders ● Integration with network status libraries
  • 21. Hildon 2.2/Fremantle philosophy ● Proper experience with finger in small screens. No stylus ● No focus in views ● Actions not repeated through UI ● No hierarchies in menus ● No scrollbars ---> Use pannables ● No tabs ● Stackable windows
  • 22. What to change in Modest? Goal Mail simple for everyone!
  • 23. Main window replacements ● Diablo main window: very complex. ● Required stylus. Fingers usability was almost broken. ● Move from old main window to “one window per object handled”. Stackables. New window management.
  • 28. Show relevant information Small space for important information
  • 31. Very complex menus Diablo hierarchies: 3 levels. Difficult to browse, not easy to understand. Hard to... tap.
  • 32. Very complex menus ● Menus in Fremantle: ● Up to 10 options ● No hierarchy
  • 36. Migration to finger widgets Use pannables Finger size buttons Replace comboboxes with touchable selectors.
  • 37. What we did? More things ● Reused widgets from Diablo, but reorganized in new windows. ● Stacking views. One window at a time. ● Pannables everywhere
  • 39. Challenges ● Massive email accounts (Gmail like) ● High volume of information in small screens ● Performance requirements ● Slow network connection ● Plugin API
  • 40. Challenge 1: massive email accounts ● Improved speed handling massive folders ● Faster response loading folders window ● Show fast last readed messages (the ones user wants to see) ● Lots of bugfixing and performance improvements. ● More reliable now with very big folders.
  • 41. Challenge 2: performance ● Lots of new optimisations ● Priority to perceived speed ● Show immediately the information user wants to see ● Better handling of big messages
  • 42. Challenge 3: better MIME support ● Signed messages now visible ● Reply: adds References fields ● Multibody supported now ● Reply to HTML-only messages quotes properly
  • 43. Challenge 4: plugin architecture ● Support for adding other protocols as plugins ● Storage and transport as camel backend plugins ● Modest plugin for UI side ● Other protocols? NNTP? RSS? You're invited!
  • 45. Work done in 2009 ● Finger enabled UI ● More reliable ● Plugins support ● Easier for user ● Faster, better user experience ● Better support of mail standards
  • 46. Next releases ● More speed and power usage improvements ● Live search ● Optimize network bandwidth usage
  • 47. Future ● Pluggable storage support ● Daemonize ● Take advantage of plugins architecture for new features ● Ports to other devices. Moblin?
  • 48. Get involved ● https://git.maemo.org/projects/modest ● http://modest.garage.maemo.org ● #modest @ freenode ● modest-devel@garage.maemo.org ● modest-users@garage.maemo.org Questions?