SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
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?

Más contenido relacionado

La actualidad más candente

Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
Sim Janghoon
 
How happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTP
Ichito Nagata
 

La actualidad más candente (19)

Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovJava 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
 
How Splunk Is Using Pulsar IO
How Splunk Is Using Pulsar IOHow Splunk Is Using Pulsar IO
How Splunk Is Using Pulsar IO
 
Http and Servlet basics
Http and Servlet basicsHttp and Servlet basics
Http and Servlet basics
 
PGConf.ASIA 2019 Bali - How did PostgreSQL Write Load Balancing of Queries Us...
PGConf.ASIA 2019 Bali - How did PostgreSQL Write Load Balancing of Queries Us...PGConf.ASIA 2019 Bali - How did PostgreSQL Write Load Balancing of Queries Us...
PGConf.ASIA 2019 Bali - How did PostgreSQL Write Load Balancing of Queries Us...
 
Fluentd - RubyKansai 65
Fluentd - RubyKansai 65Fluentd - RubyKansai 65
Fluentd - RubyKansai 65
 
Chef in the cloud and on the ground code freeze 2012
Chef in the cloud and on the ground   code freeze 2012Chef in the cloud and on the ground   code freeze 2012
Chef in the cloud and on the ground code freeze 2012
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with Chef
 
App Engine Dev Days DC 20091026
App Engine Dev Days DC 20091026App Engine Dev Days DC 20091026
App Engine Dev Days DC 20091026
 
What's new in MySQL 5.6
What's new in MySQL 5.6What's new in MySQL 5.6
What's new in MySQL 5.6
 
MySQL Proxy
MySQL ProxyMySQL Proxy
MySQL Proxy
 
Managing and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with OrchestratorManaging and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with Orchestrator
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
 
Disco API - OpenJDK distributions as a service
Disco API - OpenJDK distributions as a serviceDisco API - OpenJDK distributions as a service
Disco API - OpenJDK distributions as a service
 
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad HaroonPGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
 
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
 
M|18 Deep Dive: InnoDB Transactions and Write Paths
M|18 Deep Dive: InnoDB Transactions and Write PathsM|18 Deep Dive: InnoDB Transactions and Write Paths
M|18 Deep Dive: InnoDB Transactions and Write Paths
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
 
How happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTP
 
Ceph Day Santa Clara: The Future of CephFS + Developing with Librados
Ceph Day Santa Clara: The Future of CephFS + Developing with LibradosCeph Day Santa Clara: The Future of CephFS + Developing with Librados
Ceph Day Santa Clara: The Future of CephFS + Developing with Librados
 

Destacado

Gtug florence intro
Gtug florence introGtug florence intro
Gtug florence intro
firenze-gtug
 
De Meldij presentatie
De Meldij presentatieDe Meldij presentatie
De Meldij presentatie
NienkeWind
 
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens TecladoC:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
eletricadouro.com
 
Google country day_intervento
Google country day_interventoGoogle country day_intervento
Google country day_intervento
firenze-gtug
 
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
Inflectiontech Ltd
 

Destacado (18)

The eTwinning Desktop - PDW Istanbul, 17-18 September 2010
The eTwinning Desktop - PDW Istanbul, 17-18 September 2010The eTwinning Desktop - PDW Istanbul, 17-18 September 2010
The eTwinning Desktop - PDW Istanbul, 17-18 September 2010
 
Gtug florence intro
Gtug florence introGtug florence intro
Gtug florence intro
 
Presentazione Google App Engine
Presentazione Google App EnginePresentazione Google App Engine
Presentazione Google App Engine
 
MARCOMmagazine Maart 2010
MARCOMmagazine Maart 2010MARCOMmagazine Maart 2010
MARCOMmagazine Maart 2010
 
Click Here
Click HereClick Here
Click Here
 
De Meldij presentatie
De Meldij presentatieDe Meldij presentatie
De Meldij presentatie
 
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens TecladoC:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
 
Clean android code
Clean android codeClean android code
Clean android code
 
Google tv gdg_devfest_firenze2012
Google tv gdg_devfest_firenze2012Google tv gdg_devfest_firenze2012
Google tv gdg_devfest_firenze2012
 
Click Here
Click HereClick Here
Click Here
 
Google country day_intervento
Google country day_interventoGoogle country day_intervento
Google country day_intervento
 
NATALIA15
NATALIA15NATALIA15
NATALIA15
 
MARCOMmagazine Januari 2010
MARCOMmagazine Januari 2010MARCOMmagazine Januari 2010
MARCOMmagazine Januari 2010
 
Mapping Networks for Day 3 Management
Mapping Networks for Day 3 Management  Mapping Networks for Day 3 Management
Mapping Networks for Day 3 Management
 
Our project - 50 easy things you can do save the earth
Our project - 50 easy things you can do save the earthOur project - 50 easy things you can do save the earth
Our project - 50 easy things you can do save the earth
 
Android chat in the cloud
Android chat in the cloudAndroid chat in the cloud
Android chat in the cloud
 
Gwt development with errai and forge
Gwt development with errai and forgeGwt development with errai and forge
Gwt development with errai and forge
 
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
 

Similar a Meiga Guadec 2009 English

Scaling Django with gevent
Scaling Django with geventScaling Django with gevent
Scaling Django with gevent
Mahendra M
 
Small Overview of Skype Database Tools
Small Overview of Skype Database ToolsSmall Overview of Skype Database Tools
Small Overview of Skype Database Tools
elliando dias
 
Database Tools by Skype
Database Tools by SkypeDatabase Tools by Skype
Database Tools by Skype
elliando dias
 

Similar a Meiga Guadec 2009 English (20)

Improving Operations Efficiency with Puppet
Improving Operations Efficiency with PuppetImproving Operations Efficiency with Puppet
Improving Operations Efficiency with Puppet
 
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...
 
Extended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use casesExtended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use cases
 
Introduction to Kubernetes and GKE
Introduction to Kubernetes and GKEIntroduction to Kubernetes and GKE
Introduction to Kubernetes and GKE
 
Modest Maemo Summit 09
Modest Maemo Summit 09Modest Maemo Summit 09
Modest Maemo Summit 09
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
 
Cloud native IPC for Microservices Workshop @ Containerdays 2022
Cloud native IPC for Microservices Workshop @ Containerdays 2022Cloud native IPC for Microservices Workshop @ Containerdays 2022
Cloud native IPC for Microservices Workshop @ Containerdays 2022
 
How to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentHow to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environment
 
Scaling Django with gevent
Scaling Django with geventScaling Django with gevent
Scaling Django with gevent
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive
 
Small Overview of Skype Database Tools
Small Overview of Skype Database ToolsSmall Overview of Skype Database Tools
Small Overview of Skype Database Tools
 
Developer Experience Cloud Native - Become Efficient and Achieve Parity
Developer Experience Cloud Native - Become Efficient and Achieve ParityDeveloper Experience Cloud Native - Become Efficient and Achieve Parity
Developer Experience Cloud Native - Become Efficient and Achieve Parity
 
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 ...
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
Apache James/Hupa & GWT
Apache James/Hupa & GWTApache James/Hupa & GWT
Apache James/Hupa & GWT
 
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
 
Database Tools by Skype
Database Tools by SkypeDatabase Tools by Skype
Database Tools by Skype
 
betterCode Workshop: Effizientes DevOps-Tooling mit Go
betterCode Workshop:  Effizientes DevOps-Tooling mit GobetterCode Workshop:  Effizientes DevOps-Tooling mit Go
betterCode Workshop: Effizientes DevOps-Tooling mit Go
 
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)
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
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
giselly40
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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 eocanha@igalia.com
  • 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?