SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
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?

Weitere ähnliche Inhalte

Was ist angesagt?

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 NakovSvetlin Nakov
 
How Splunk Is Using Pulsar IO
How Splunk Is Using Pulsar IOHow Splunk Is Using Pulsar IO
How Splunk Is Using Pulsar IOStreamNative
 
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...Equnix Business Solutions
 
Fluentd - RubyKansai 65
Fluentd - RubyKansai 65Fluentd - RubyKansai 65
Fluentd - RubyKansai 65N Masahiro
 
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 2012Michael Nygard
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefMatt Ray
 
App Engine Dev Days DC 20091026
App Engine Dev Days DC 20091026App Engine Dev Days DC 20091026
App Engine Dev Days DC 20091026jblocksom
 
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.6Shlomi Noach
 
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 OrchestratorShlomi Noach
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdKohei Tokunaga
 
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 serviceGerrit Grunwald
 
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 HaroonEqunix Business Solutions
 
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...LINE Corporation
 
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 PathsMariaDB plc
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, greSim 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 HTTPIchito Nagata
 
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 LibradosCeph Community
 

Was ist angesagt? (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
 

Andere mochten auch

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 2010Christina Crawley
 
Gtug florence intro
Gtug florence introGtug florence intro
Gtug florence introfirenze-gtug
 
Presentazione Google App Engine
Presentazione Google App EnginePresentazione Google App Engine
Presentazione Google App Enginefirenze-gtug
 
MARCOMmagazine Maart 2010
MARCOMmagazine Maart 2010MARCOMmagazine Maart 2010
MARCOMmagazine Maart 2010OCG_OCG
 
De Meldij presentatie
De Meldij presentatieDe Meldij presentatie
De Meldij presentatieNienkeWind
 
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 Tecladoeletricadouro.com
 
Clean android code
Clean android codeClean android code
Clean android codefirenze-gtug
 
Google tv gdg_devfest_firenze2012
Google tv gdg_devfest_firenze2012Google tv gdg_devfest_firenze2012
Google tv gdg_devfest_firenze2012firenze-gtug
 
Google country day_intervento
Google country day_interventoGoogle country day_intervento
Google country day_interventofirenze-gtug
 
MARCOMmagazine Januari 2010
MARCOMmagazine Januari 2010MARCOMmagazine Januari 2010
MARCOMmagazine Januari 2010OCG_OCG
 
Mapping Networks for Day 3 Management
Mapping Networks for Day 3 Management  Mapping Networks for Day 3 Management
Mapping Networks for Day 3 Management Inflectiontech Ltd
 
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 earthChristina Crawley
 
Android chat in the cloud
Android chat in the cloudAndroid chat in the cloud
Android chat in the cloudfirenze-gtug
 
Gwt development with errai and forge
Gwt development with errai and forgeGwt development with errai and forge
Gwt development with errai and forgefirenze-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
 

Andere mochten auch (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...
 

Ähnlich wie Meiga Guadec 2009 English

Improving Operations Efficiency with Puppet
Improving Operations Efficiency with PuppetImproving Operations Efficiency with Puppet
Improving Operations Efficiency with PuppetNicolas Brousse
 
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
 
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 casesPhil Estes
 
Introduction to Kubernetes and GKE
Introduction to Kubernetes and GKEIntroduction to Kubernetes and GKE
Introduction to Kubernetes and GKEOpsta
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demoOpsta
 
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 2022QAware GmbH
 
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 environmentMichelantonio Trizio
 
Scaling Django with gevent
Scaling Django with geventScaling Django with gevent
Scaling Django with geventMahendra M
 
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 scalingStanislav Osipov
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep DiveAkihiro Suda
 
Small Overview of Skype Database Tools
Small Overview of Skype Database ToolsSmall Overview of Skype Database Tools
Small Overview of Skype Database Toolselliando dias
 
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 ParityMichael Hofmann
 
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
 
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 & GWTManuel Carrasco Moñino
 
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)Igalia
 
Database Tools by Skype
Database Tools by SkypeDatabase Tools by Skype
Database Tools by Skypeelliando dias
 
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 GoQAware GmbH
 
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
 

Ähnlich wie 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)
 

Kürzlich hochgeladen

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
 
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 slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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 DevelopmentsTrustArc
 
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.pdfsudhanshuwaghmare1
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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...apidays
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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.pptxEarley Information Science
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
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
 
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 MenDelhi Call girls
 
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 2024The Digital Insurer
 
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
 

Kürzlich hochgeladen (20)

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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
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
 

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?