SlideShare a Scribd company logo
static void
                         _f_do_barnacle_install_properties(GObjectClass
                                                         *gobject_class)
                                                                        {




         Meiga
                                                   GParamSpec *pspec;


                                                 /* Party code attribute */
                                          pspec = g_param_spec_uint64
                                            (F_DO_BARNACLE_CODE,


Light content sharing from the
                                                        "Barnacle code.",
                                                         "Barnacle code",
                                                                        0,
                                                         G_MAXUINT64,



desktop
                                                        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,



Enrique Ocaña González
eocanha@igalia.com
Index
●   A need: content sharing
●   Development process
●   The result
●   How it works
●   Ideas for the future
●   References
A need: content sharing
Motivation
Many desktop applications use web services and
 online contents
Few offer contents to other applications (P2P,
 servers)
Use cases:
  ●   Share files or pictures in an convenient way
  ●   Be an agent that generates XML or RSS contents
      which can be consumed by an external aggregation
      service (planet, Yahoo pipes, etc.)
  ●   Remotely command applications
Alternatives
Dedicated server technologies:
  Apache+PHP, Java/Tomcat, Mono/ASP...


Desktop utilities:
  Gnome-user-share
  KDE File server
  Opera Unite
Disadvantages
Dedicated server technologies:
  Heavy, complex to set up
  Not integrated with Gnome mainloop
Desktop utilities:
  Gnome-user-share: depends on Apache (heavy)
  KDE File server: Kicker applet
  Opera Unite: not free software
Solution
Lightweight GPL application using technologies
  friendly with Gnome desktop:
  Based on GObject
  Easy integration with main loop
  Possibility of DBUS services to third parties
  Simplified network configuration
Existent libraries:
  libsoup
  libgupnp
Libsoup 2.4              Libgupnp 0.6
Asynchronous, uses Glib   Asynchronous, uses Glib
 main loop                 main loop
SSL support using GNU     UPnP allows to configure
 TLS                       port dedirection if
Server basic and digest    supported by the
 authentication support    router
SOAP and XML-RPC
 basic client support
Initial evolution plan

        Stage 1                      Stage 2                    Stage 3
●   Evaluate libraries        ●   Generate RSS      ●   Extend some existing Gnome
                                  feeds                 applications to implement
●   Implement a little file                             functionalities such as:
    server similar to         ●   Register more
    KDE Public                    complex things:       ●   “Offer all your pictures as
    Fileserver                    remote calls to           RSS”
                                  functions, etc.
●   Code a DBUS                                         ●   “Offer the playlist of
    service to allow                                        songs you've listened
    other programs to                                       today to as RSS”
    register/unregister
    files for sharing               Meiga está ahora
                                    aproximadamente
                                          aquí
Development process
Programming language
Vala was the chosen language
Advantages:
  Easy to use → Less development time
  Execution speed
  Previous experience
Disadvantages:
  Evolving syntax
  There's no binding for all the libraries → Pure C
  More complex autotools integration
Real project evolution

                     Release 0.1.0   Release 0.2.0

File server module
Real project evolution

                     Release 0.1.0   Release 0.2.0

File server module
DBUS interface for external applications
Real project evolution

                     Release 0.1.0   Release 0.2.0

File server module
DBUS interface for external applications
RSS server module
Real project evolution

                     Release 0.1.0   Release 0.2.0

File server module
DBUS interface for external applications
RSS server module
Graphic interface
Real project evolution

                        Release 0.1.0   Release 0.2.0

File server module
DBUS interface for external applications
RSS server module
Graphic interface
Autotools integration
Real project evolution

                        Release 0.1.0   Release 0.2.0

File server module
DBUS interface for external applications
RSS server module
Graphic interface
Autotools integration
UpnP redirection utility
Release 0.1.0
Real project evolution

                        Release 0.1.0   Release 0.2.0

File server module
DBUS interface for external applications
RSS server module
Graphic interface
Autotools integration
UpnP redirection utility
Release 0.1.0
Real project evolution

                     Release 0.1.0   Release 0.2.0

Port from Glade to GtkBuilder
Real project evolution

                     Release 0.1.0   Release 0.2.0

Port from Glade to GtkBuilder
Log exposing to the graphic interface
Real project evolution

                     Release 0.1.0   Release 0.2.0

Port from Glade to GtkBuilder
Log exposing to the graphic interface
Spanish and Galician internationalization
Real project evolution

                     Release 0.1.0   Release 0.2.0

Port from Glade to GtkBuilder
Log exposing to the graphic interface
Spanish and Galician internationalization
Bug correction
Real project evolution

                     Release 0.1.0   Release 0.2.0

Port from Glade to GtkBuilder
Log exposing to the graphic interface
Spanish and Galician internationalization
Bug correction
Release 0.2.0
The result
Home network
            Router UpnP
            IP: 1.2.3.4




     Meiga
IP: 192.168.1.10   Internet




   Contents                   Remote user
Main window and system tray
Log and port redirection
Sharing a folder
Sharing a folder
Remote access
Remote access
Contents as RSS
Log
How it works
SERVER
       libsoup
                                           DBUS
HTTP                    MeigaServer
                                           Meiga

                                                               gui.glade
                 Log
                                                        GUI

                       Net      RssFeed RssNode          Gui

                                                                gui.ui


                                NET
                   fwlocalip    fwupnp           Test

                       sh             C

UPnP libgupnp                             upnp
Router
                                           C
Programmable serial asynch
    events management
      Composite action “redirect port”     Some states are
       Connect      Redirect    Return      reused for other
                                            composite actions



  Program              State interpreter
                                                Action for state 1
       E1                                       Action for state 2
       E2
       EN
                                                Action for state N

    Data                                        Callback for state 1
Parameters             Timeout control          Callback for state 2
Response                                        Callback for state N
Intermediate data
Sequence control
Ideas for the future
More redirection modules
Redirection by SSH
    SERVER
                          SSH server
           HTTP

         Net                                  Auxiliar client




   NET                                 Remote browser
   fwlocalip      fwssh

      sh
Integration with other desktop
           applications
Nautilus menu: “Share on Meiga”

              SERVER

                       DBUS
        MeigaServer
                       Meiga   Third party utility
More server modules
Function calls
 URL                      SERVER
                                                DBUS   Rythmbox
                    Playlist module
                                  MeigaServer
 /playlist/...

                                                       Evolution
 /addressbook/...

                    Contacts module
Security
Password access
Cyphering
Restriction by IP
etc.
Situations to avoid
Meiga shouldn't become a comprehensive
 interface for DBUS through HTTP (“serve
 everything”)
  ●   Security holes
  ●   There are currently more advanced utilities for
      network object sharing. Eg: CORBA
References
References
●   http://meiga.igalia.com
●   http://live.gnome.org/Vala
●   http://library.gnome.org/devel/libsoup/stable/libsoup-server-
    howto.html
●   http://dbus.freedesktop.org/doc/api/html/group__DBusBus.html
●   http://raphael.slinckx.net/blog/documents/dbus-tutorial
●   http://www.gupnp.org/docs/gupnp/client-tutorial.html
●   http://www.upnp.org/standardizeddcps/igd.asp99
●   http://www.lrde.epita.fr/~adl/autotools.html
●   http://live.gnome.org/Vala/GameDevelopmentSeries/Setup
http://meiga.igalia.com

      Thank you very much

Questions, comments, suggestions?

More Related Content

PDF
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Anthony Dahanne
 
PDF
pgpool: Features and Development
elliando dias
 
PPTX
G rpc talk with intel (3)
Intel
 
PDF
Percona Xtradb Cluster (pxc) 101 percona university 2019
Marcelo Henrique Gonçalves
 
PPTX
Microservices summit talk 1/31
Varun Talwar
 
PDF
Using Qt under LGPLv3
Burkhard Stubert
 
PDF
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
Athens Big Data
 
PDF
DVCS in big corporation
dchaffiol
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Anthony Dahanne
 
pgpool: Features and Development
elliando dias
 
G rpc talk with intel (3)
Intel
 
Percona Xtradb Cluster (pxc) 101 percona university 2019
Marcelo Henrique Gonçalves
 
Microservices summit talk 1/31
Varun Talwar
 
Using Qt under LGPLv3
Burkhard Stubert
 
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
Athens Big Data
 
DVCS in big corporation
dchaffiol
 

What's hot (19)

PPTX
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Svetlin Nakov
 
PDF
How Splunk Is Using Pulsar IO
StreamNative
 
PDF
Http and Servlet basics
AshishSingh Bhatia
 
PDF
PGConf.ASIA 2019 Bali - How did PostgreSQL Write Load Balancing of Queries Us...
Equnix Business Solutions
 
PDF
Fluentd - RubyKansai 65
N Masahiro
 
PDF
Chef in the cloud and on the ground code freeze 2012
Michael Nygard
 
PDF
SCALE 2011 Deploying OpenStack with Chef
Matt Ray
 
PDF
App Engine Dev Days DC 20091026
jblocksom
 
PDF
What's new in MySQL 5.6
Shlomi Noach
 
PDF
MySQL Proxy
Manikanda kumar
 
PDF
Managing and Visualizing your Replication Topologies with Orchestrator
Shlomi Noach
 
PDF
Introduction and Deep Dive Into Containerd
Kohei Tokunaga
 
PDF
Disco API - OpenJDK distributions as a service
Gerrit Grunwald
 
PDF
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
Equnix Business Solutions
 
PDF
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
LINE Corporation
 
PDF
M|18 Deep Dive: InnoDB Transactions and Write Paths
MariaDB plc
 
PDF
Open stack networking vlan, gre
Sim Janghoon
 
PDF
How happy they became with H2O/mruby and the future of HTTP
Ichito Nagata
 
ODP
Ceph Day Santa Clara: The Future of CephFS + Developing with Librados
Ceph Community
 
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Svetlin Nakov
 
How Splunk Is Using Pulsar IO
StreamNative
 
Http and Servlet basics
AshishSingh Bhatia
 
PGConf.ASIA 2019 Bali - How did PostgreSQL Write Load Balancing of Queries Us...
Equnix Business Solutions
 
Fluentd - RubyKansai 65
N Masahiro
 
Chef in the cloud and on the ground code freeze 2012
Michael Nygard
 
SCALE 2011 Deploying OpenStack with Chef
Matt Ray
 
App Engine Dev Days DC 20091026
jblocksom
 
What's new in MySQL 5.6
Shlomi Noach
 
MySQL Proxy
Manikanda kumar
 
Managing and Visualizing your Replication Topologies with Orchestrator
Shlomi Noach
 
Introduction and Deep Dive Into Containerd
Kohei Tokunaga
 
Disco API - OpenJDK distributions as a service
Gerrit Grunwald
 
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
Equnix Business Solutions
 
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
LINE Corporation
 
M|18 Deep Dive: InnoDB Transactions and Write Paths
MariaDB plc
 
Open stack networking vlan, gre
Sim Janghoon
 
How happy they became with H2O/mruby and the future of HTTP
Ichito Nagata
 
Ceph Day Santa Clara: The Future of CephFS + Developing with Librados
Ceph Community
 
Ad

Viewers also liked (18)

PPT
The eTwinning Desktop - PDW Istanbul, 17-18 September 2010
Christina Crawley
 
PDF
Gtug florence intro
firenze-gtug
 
PDF
Presentazione Google App Engine
firenze-gtug
 
PDF
MARCOMmagazine Maart 2010
OCG_OCG
 
PPTX
Click Here
guest444c5e
 
PDF
De Meldij presentatie
NienkeWind
 
PDF
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
eletricadouro.com
 
PDF
Clean android code
firenze-gtug
 
PDF
Google tv gdg_devfest_firenze2012
firenze-gtug
 
PPTX
Click Here
guest444c5e
 
PDF
Google country day_intervento
firenze-gtug
 
PPTX
NATALIA15
natalia120593
 
PDF
MARCOMmagazine Januari 2010
OCG_OCG
 
PPTX
Mapping Networks for Day 3 Management
Inflectiontech Ltd
 
PPT
Our project - 50 easy things you can do save the earth
Christina Crawley
 
PDF
Android chat in the cloud
firenze-gtug
 
PDF
Gwt development with errai and forge
firenze-gtug
 
PDF
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
Inflectiontech Ltd
 
The eTwinning Desktop - PDW Istanbul, 17-18 September 2010
Christina Crawley
 
Gtug florence intro
firenze-gtug
 
Presentazione Google App Engine
firenze-gtug
 
MARCOMmagazine Maart 2010
OCG_OCG
 
Click Here
guest444c5e
 
De Meldij presentatie
NienkeWind
 
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
eletricadouro.com
 
Clean android code
firenze-gtug
 
Google tv gdg_devfest_firenze2012
firenze-gtug
 
Click Here
guest444c5e
 
Google country day_intervento
firenze-gtug
 
NATALIA15
natalia120593
 
MARCOMmagazine Januari 2010
OCG_OCG
 
Mapping Networks for Day 3 Management
Inflectiontech Ltd
 
Our project - 50 easy things you can do save the earth
Christina Crawley
 
Android chat in the cloud
firenze-gtug
 
Gwt development with errai and forge
firenze-gtug
 
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
Inflectiontech Ltd
 
Ad

Similar to Meiga Guadec 2009 English (20)

PDF
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
AEGIS-ACCESSIBLE Projects
 
PDF
Seaside Status Message
Lukas Renggli
 
PDF
Seaside News
ESUG
 
PDF
Modest Maemo Summit 09
José Dapena Paz
 
PDF
Iz Pack
Inria
 
ODP
Develop and Maintain a Distro with Open Build Service
SUSE Labs Taipei
 
PDF
ROS distributed architecture
Pablo Iñigo Blasco
 
PPT
Building an ActionScript Game Server with over 15,000 Concurrent Connections
Renaun Erickson
 
PPT
Charla antifingerprinting
navajanegra
 
PPTX
RHCE (RED HAT CERTIFIED ENGINEERING)
Sumant Garg
 
PDF
The art of disguise - Antifingerprinting techniques
Daniel Garcia (a.k.a cr0hn)
 
PDF
Adapting GNOME Applications to Maemo Fremantle
Joaquim Rocha
 
PDF
Kitware: Qt and Scientific Computing
account inactive
 
PDF
The Kumofs Project and MessagePack-RPC
Sadayuki Furuhashi
 
ODP
Checkpoint/Restore: are we there yet?
Kirill Kolyshkin
 
PDF
Haiku OS Presentation
laawrence
 
PPTX
Android security model
rrand1
 
KEY
20100425 Configuration Management With Puppet Lfnw
garrett honeycutt
 
PDF
Applied Computer Science Concepts in Android
National Cheng Kung University
 
PDF
Introduction to the Linux ecosystem
Thibauld Favre
 
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
AEGIS-ACCESSIBLE Projects
 
Seaside Status Message
Lukas Renggli
 
Seaside News
ESUG
 
Modest Maemo Summit 09
José Dapena Paz
 
Iz Pack
Inria
 
Develop and Maintain a Distro with Open Build Service
SUSE Labs Taipei
 
ROS distributed architecture
Pablo Iñigo Blasco
 
Building an ActionScript Game Server with over 15,000 Concurrent Connections
Renaun Erickson
 
Charla antifingerprinting
navajanegra
 
RHCE (RED HAT CERTIFIED ENGINEERING)
Sumant Garg
 
The art of disguise - Antifingerprinting techniques
Daniel Garcia (a.k.a cr0hn)
 
Adapting GNOME Applications to Maemo Fremantle
Joaquim Rocha
 
Kitware: Qt and Scientific Computing
account inactive
 
The Kumofs Project and MessagePack-RPC
Sadayuki Furuhashi
 
Checkpoint/Restore: are we there yet?
Kirill Kolyshkin
 
Haiku OS Presentation
laawrence
 
Android security model
rrand1
 
20100425 Configuration Management With Puppet Lfnw
garrett honeycutt
 
Applied Computer Science Concepts in Android
National Cheng Kung University
 
Introduction to the Linux ecosystem
Thibauld Favre
 

Recently uploaded (20)

PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
The Future of Artificial Intelligence (AI)
Mukul
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 

Meiga Guadec 2009 English

  • 1. static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { Meiga GParamSpec *pspec; /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, Light content sharing from the "Barnacle code.", "Barnacle code", 0, G_MAXUINT64, desktop 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, Enrique Ocaña González [email protected]
  • 2. Index ● A need: content sharing ● Development process ● The result ● How it works ● Ideas for the future ● References
  • 3. A need: content sharing
  • 4. Motivation Many desktop applications use web services and online contents Few offer contents to other applications (P2P, servers) Use cases: ● Share files or pictures in an convenient way ● Be an agent that generates XML or RSS contents which can be consumed by an external aggregation service (planet, Yahoo pipes, etc.) ● Remotely command applications
  • 5. Alternatives Dedicated server technologies: Apache+PHP, Java/Tomcat, Mono/ASP... Desktop utilities: Gnome-user-share KDE File server Opera Unite
  • 6. Disadvantages Dedicated server technologies: Heavy, complex to set up Not integrated with Gnome mainloop Desktop utilities: Gnome-user-share: depends on Apache (heavy) KDE File server: Kicker applet Opera Unite: not free software
  • 7. Solution Lightweight GPL application using technologies friendly with Gnome desktop: Based on GObject Easy integration with main loop Possibility of DBUS services to third parties Simplified network configuration Existent libraries: libsoup libgupnp
  • 8. Libsoup 2.4 Libgupnp 0.6 Asynchronous, uses Glib Asynchronous, uses Glib main loop main loop SSL support using GNU UPnP allows to configure TLS port dedirection if Server basic and digest supported by the authentication support router SOAP and XML-RPC basic client support
  • 9. Initial evolution plan Stage 1 Stage 2 Stage 3 ● Evaluate libraries ● Generate RSS ● Extend some existing Gnome feeds applications to implement ● Implement a little file functionalities such as: server similar to ● Register more KDE Public complex things: ● “Offer all your pictures as Fileserver remote calls to RSS” functions, etc. ● Code a DBUS ● “Offer the playlist of service to allow songs you've listened other programs to today to as RSS” register/unregister files for sharing Meiga está ahora aproximadamente aquí
  • 11. Programming language Vala was the chosen language Advantages: Easy to use → Less development time Execution speed Previous experience Disadvantages: Evolving syntax There's no binding for all the libraries → Pure C More complex autotools integration
  • 12. Real project evolution Release 0.1.0 Release 0.2.0 File server module
  • 13. Real project evolution Release 0.1.0 Release 0.2.0 File server module DBUS interface for external applications
  • 14. Real project evolution Release 0.1.0 Release 0.2.0 File server module DBUS interface for external applications RSS server module
  • 15. Real project evolution Release 0.1.0 Release 0.2.0 File server module DBUS interface for external applications RSS server module Graphic interface
  • 16. Real project evolution Release 0.1.0 Release 0.2.0 File server module DBUS interface for external applications RSS server module Graphic interface Autotools integration
  • 17. Real project evolution Release 0.1.0 Release 0.2.0 File server module DBUS interface for external applications RSS server module Graphic interface Autotools integration UpnP redirection utility Release 0.1.0
  • 18. Real project evolution Release 0.1.0 Release 0.2.0 File server module DBUS interface for external applications RSS server module Graphic interface Autotools integration UpnP redirection utility Release 0.1.0
  • 19. Real project evolution Release 0.1.0 Release 0.2.0 Port from Glade to GtkBuilder
  • 20. Real project evolution Release 0.1.0 Release 0.2.0 Port from Glade to GtkBuilder Log exposing to the graphic interface
  • 21. Real project evolution Release 0.1.0 Release 0.2.0 Port from Glade to GtkBuilder Log exposing to the graphic interface Spanish and Galician internationalization
  • 22. Real project evolution Release 0.1.0 Release 0.2.0 Port from Glade to GtkBuilder Log exposing to the graphic interface Spanish and Galician internationalization Bug correction
  • 23. Real project evolution Release 0.1.0 Release 0.2.0 Port from Glade to GtkBuilder Log exposing to the graphic interface Spanish and Galician internationalization Bug correction Release 0.2.0
  • 25. Home network Router UpnP IP: 1.2.3.4 Meiga IP: 192.168.1.10 Internet Contents Remote user
  • 26. Main window and system tray
  • 27. Log and port redirection
  • 33. Log
  • 35. SERVER libsoup DBUS HTTP MeigaServer Meiga gui.glade Log GUI Net RssFeed RssNode Gui gui.ui NET fwlocalip fwupnp Test sh C UPnP libgupnp upnp Router C
  • 36. Programmable serial asynch events management Composite action “redirect port” Some states are Connect Redirect Return reused for other composite actions Program State interpreter Action for state 1 E1 Action for state 2 E2 EN Action for state N Data Callback for state 1 Parameters Timeout control Callback for state 2 Response Callback for state N Intermediate data Sequence control
  • 37. Ideas for the future
  • 38. More redirection modules Redirection by SSH SERVER SSH server HTTP Net Auxiliar client NET Remote browser fwlocalip fwssh sh
  • 39. Integration with other desktop applications Nautilus menu: “Share on Meiga” SERVER DBUS MeigaServer Meiga Third party utility
  • 40. More server modules Function calls URL SERVER DBUS Rythmbox Playlist module MeigaServer /playlist/... Evolution /addressbook/... Contacts module
  • 42. Situations to avoid Meiga shouldn't become a comprehensive interface for DBUS through HTTP (“serve everything”) ● Security holes ● There are currently more advanced utilities for network object sharing. Eg: CORBA
  • 44. References ● http://meiga.igalia.com ● http://live.gnome.org/Vala ● http://library.gnome.org/devel/libsoup/stable/libsoup-server- howto.html ● http://dbus.freedesktop.org/doc/api/html/group__DBusBus.html ● http://raphael.slinckx.net/blog/documents/dbus-tutorial ● http://www.gupnp.org/docs/gupnp/client-tutorial.html ● http://www.upnp.org/standardizeddcps/igd.asp99 ● http://www.lrde.epita.fr/~adl/autotools.html ● http://live.gnome.org/Vala/GameDevelopmentSeries/Setup
  • 45. http://meiga.igalia.com Thank you very much Questions, comments, suggestions?