Strigi desktop-integration

Flavio Castelli
Flavio CastelliSoftware developer at Novell
Strigi Desktop integration
        Flavio Castelli
Strigi desktop integration                            FOSDEM 2007


           Why choose Strigi


                             Strigi's main features
      ●   fast and lightweight
      ●   portable
      ●   extensible
      ●   next KDE4 desktop searching engine
      ●   can be easily accessed from external programs




                                                       Flavio Castelli
Strigi desktop integration                             FOSDEM 2007


           What can be done by Strigi


                             Strigi's capabilities
      ●   perform fast searches across heterogeneous data
          collections
      ●   extract metadata informations from files
      ●   index compressed archives contents
      ●   create/recreate/discover relations between
          different data


                                                        Flavio Castelli
Strigi desktop integration                        FOSDEM 2007


           How to interact with Strigi



                Strigi communication interfaces




           socket                        DBus




                                                   Flavio Castelli
Strigi desktop integration                                  FOSDEM 2007


           How to interact with Strigi


                             Socket interface

   Benefits:
      ●   well known mechanism
      ●   can be accessed from different languages / OS


   Drawbacks:
      ●   actually has less priority --> it isn't fully tested


                                                             Flavio Castelli
Strigi desktop integration                      FOSDEM 2007


           How to interact with Strigi


                             DBus interface

   The best way to access Strigi features:
      ●   simple and fast to use
      ●   IPC protocol used by KDE4 and Gnome
      ●   there are lots of DBus bindings
      ●   actively developed




                                                 Flavio Castelli
Strigi desktop integration                            FOSDEM 2007


           How to interact with Strigi


                             Available functions

   Everything can be performed through the socket and
   DBus interfaces:
      ●   start/stop Strigi daemon
      ●   add/remove filters
      ●   force index updates
      ●   index a specific resource
      ●   perform searches (and retrieve results ;)

                                                       Flavio Castelli
Strigi desktop integration                              FOSDEM 2007


           How to interact with Strigi


          Available classes for C++ developers

   Existing C++ classes for playing with Strigi:
      ●   AsyncSocketClient: access socket interface
      ●   DBusClientInterface: access DBus interface




            Automatically shipped with Strigi installation

                                                         Flavio Castelli
Strigi desktop integration                    FOSDEM 2007


           Strigi Clients


                             “main” clients

   Their code can be taken as example:
    ● StrigiClient:

      ● written in C++

      ● uses Qt4

      ● connection through Dbus interface


    ● StrigiApplet:

      ● written in C++

      ● uses KDE3 libs

      ● connection through socket interface




                                               Flavio Castelli
Strigi desktop integration                       FOSDEM 2007


           Strigi Clients


                Strigi's Gnome DeskBar handler




                                                  Flavio Castelli
Strigi desktop integration                                FOSDEM 2007


           Strigi Clients


                Strigi's Gnome DeskBar handler
   Features:
      ●   written in python
      ●   communicate using DBus interface
      ●   only 95 lines of code


                             Strigi integration is easy


                                                           Flavio Castelli
Strigi desktop integration                               FOSDEM 2007


           JStreams


                             Really short description
   What are JStreams:
      ●   a C++ “transposition” of Java InputStream childs

   public StreamDemo(URL url) throws IOException
   {
       InputStream filestream = url.openStream();
       ZipInputStream zipstream = new ZipInputStream(filestream);
       ZipEntry entry = zipstream.getNextEntry();
       while (entry != null) {
           handleEntry(zipstream, entry);
       }
   }


                                                          Flavio Castelli
Strigi desktop integration                           FOSDEM 2007


           JStreams


                             The power of JStreams

   ●   flexible: can be extended for supporting new file
       types
   ●   really fast (especially while accessing compressed
       archives)
   ●   easy to use
   ●   code reuse: can be used by other programs with
       ease



                                                      Flavio Castelli
Strigi desktop integration                              FOSDEM 2007


           JStreams


                             JStreams actual status
   More relevant file types:
      ●   compressed archives: tar, gzip, bz2, ar,...
      ●   linux distribution packages: deb, rpm,...
      ●   pdf files
      ●   email
      ●   ...


                                                         Flavio Castelli
Strigi desktop integration                      FOSDEM 2007


           Use JStreams
                             A simple example




                                                 Flavio Castelli
Strigi desktop integration                       FOSDEM 2007


           Use JStreams

                                  QClient

   Simple Qt4 program that uses JStreams:
      ●   navigate through archive files
      ●   can open archive file contents

                             How can be done ?




                                                  Flavio Castelli
Strigi desktop integration                          FOSDEM 2007


           Use JStreams


                             QArchiveEngine Class

                             QAbstracFileEngine


                              ArchiveEngineBase
     Access
   archive files
  as directories

                                ArchiveEngine


                                                     Flavio Castelli
Strigi desktop integration                           FOSDEM 2007


           Use JStreams


                             QArchiveEngine Class
   For accessing compressed files as directories:
      ●   create a new QAbstractFileEngine child
      ●   use JStreams inside it
      ●   register the new engine




   All Qt classes that provides file system access will use
   it whenever it's possible
                                                      Flavio Castelli
Strigi desktop integration                                  FOSDEM 2007


           Use JStreams into KDE


                             JStreams and KDE
   Also KDE programs can use JStreams functionalities:


                             JStreams KIOSlave


                              ●   Available for KDE3
                              ●   Already into KDE4 trunk


                                                             Flavio Castelli
Strigi desktop integration                      FOSDEM 2007


           Use JStreams into KDE

                             JStream KIOSLAVE




                                                 Flavio Castelli
Strigi desktop integration                           FOSDEM 2007


           Conclusions


                             Interact with Strigi
 ● use Strigi's features is really simple
 ● it can be done from:


   ● different programming languages


   ● different window managers


   ● different OS


 ● you can use Strigi for:


   ● desktop searching tasks


   ● fast and simple access to a large set of file types




                                                      Flavio Castelli
Strigi desktop integration                          FOSDEM 2007


           Conclusions


                             Strigi's integration
   Actually we cover a good set of SCENARIO
      ●   StrigiClient: generic window manager
      ●   StrigiApplet: kde client
      ●   Gnome DeskBar handler: self-explaining
   In the near future:
      ●   a KDE4 Plasmoid client


                                                     Flavio Castelli
Strigi desktop integration                             FOSDEM 2007


           Conclusions


                 Strigi's integration: the future...
   There is lot of work to be done on the client-side:
    ● keep improving actual interfaces


    ● improve usability & integration


    ● create a better user experience




                    create a better user experience

                                                         Flavio Castelli
1 of 23

Recommended

Lavigne bsdmag dec2012 by
Lavigne bsdmag dec2012Lavigne bsdmag dec2012
Lavigne bsdmag dec2012Dru Lavigne
679 views4 slides
BSD for Linux Users by
BSD for Linux UsersBSD for Linux Users
BSD for Linux UsersDru Lavigne
781 views45 slides
Creating new Tizen profiles using the Yocto Project by
Creating new Tizen profiles  using the Yocto ProjectCreating new Tizen profiles  using the Yocto Project
Creating new Tizen profiles using the Yocto ProjectLeon Anavi
4.9K views33 slides
SELF 2010: BSD For Linux Users by
SELF 2010: BSD For Linux UsersSELF 2010: BSD For Linux Users
SELF 2010: BSD For Linux UsersDru Lavigne
655 views47 slides
Bringing Tizen to a Raspberry Pi 2 Near You by
Bringing Tizen to a Raspberry Pi 2 Near YouBringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near YouSamsung Open Source Group
4.8K views16 slides
Lavigne bsdmag-jan13 by
Lavigne bsdmag-jan13Lavigne bsdmag-jan13
Lavigne bsdmag-jan13Dru Lavigne
1.3K views4 slides

More Related Content

What's hot

Itb2018 thinking modularly by
Itb2018   thinking modularlyItb2018   thinking modularly
Itb2018 thinking modularlyOrtus Solutions, Corp
214 views18 slides
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun... by
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...Anne Nicolas
663 views30 slides
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré... by
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...Anne Nicolas
3.6K views29 slides
8-9-10=Jessie,Stretch,Buster by
8-9-10=Jessie,Stretch,Buster8-9-10=Jessie,Stretch,Buster
8-9-10=Jessie,Stretch,BusterHideki Yamane
2.3K views35 slides
Pharo 7.0 and 8.0 alpha by
Pharo 7.0 and 8.0 alphaPharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alphaPharo
768 views26 slides
about Debian "squeeze" @201002 OSC Tokyospring by
about Debian "squeeze" @201002 OSC Tokyospringabout Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC TokyospringHideki Yamane
836 views46 slides

What's hot(6)

Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun... by Anne Nicolas
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Anne Nicolas663 views
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré... by Anne Nicolas
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...
Anne Nicolas3.6K views
8-9-10=Jessie,Stretch,Buster by Hideki Yamane
8-9-10=Jessie,Stretch,Buster8-9-10=Jessie,Stretch,Buster
8-9-10=Jessie,Stretch,Buster
Hideki Yamane2.3K views
Pharo 7.0 and 8.0 alpha by Pharo
Pharo 7.0 and 8.0 alphaPharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alpha
Pharo768 views
about Debian "squeeze" @201002 OSC Tokyospring by Hideki Yamane
about Debian "squeeze" @201002 OSC Tokyospringabout Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospring
Hideki Yamane836 views

Viewers also liked

Phap by
PhapPhap
PhapThanh Phong
646 views19 slides
Izcenojumi by
IzcenojumiIzcenojumi
IzcenojumiJuris Orlovs
920 views19 slides
Moved by love2 by
Moved by love2Moved by love2
Moved by love2charityfocus
459 views13 slides
Osnovnoe svojstvo drobi by
Osnovnoe svojstvo drobiOsnovnoe svojstvo drobi
Osnovnoe svojstvo drobiDimon4
356 views20 slides
RTI Sikkim Rules ppt by
RTI  Sikkim Rules pptRTI  Sikkim Rules ppt
RTI Sikkim Rules pptBhim Thatal
1.1K views30 slides
Revised schedule-vi-print-disabled-1 by
Revised schedule-vi-print-disabled-1Revised schedule-vi-print-disabled-1
Revised schedule-vi-print-disabled-1ashfakkadri
601 views98 slides

Viewers also liked(7)

Similar to Strigi desktop-integration

Survey of Container Build Tools by
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build ToolsMichael Ducy
3.2K views38 slides
Cape Cod Web Technology Meetup - 3 by
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Asher Martin
468 views33 slides
Tlf2013 by
Tlf2013Tlf2013
Tlf2013Dru Lavigne
766 views24 slides
Introduction to git and Github by
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
126 views22 slides
Docker_AGH_v0.1.3 by
Docker_AGH_v0.1.3Docker_AGH_v0.1.3
Docker_AGH_v0.1.3Witold 'Ficio' Kopel
764 views31 slides
Codemotion Rome 2015. GlusterFS by
Codemotion Rome 2015. GlusterFSCodemotion Rome 2015. GlusterFS
Codemotion Rome 2015. GlusterFSRoberto Franchini
1.2K views72 slides

Similar to Strigi desktop-integration(20)

Survey of Container Build Tools by Michael Ducy
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build Tools
Michael Ducy3.2K views
Cape Cod Web Technology Meetup - 3 by Asher Martin
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
Asher Martin468 views
Introduction to git and Github by Wycliff1
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
Wycliff1126 views
Gluster FS a filesistem for Big Data | Roberto Franchini - Codemotion Rome 2015 by Codemotion
Gluster FS  a filesistem for Big Data | Roberto Franchini - Codemotion Rome 2015Gluster FS  a filesistem for Big Data | Roberto Franchini - Codemotion Rome 2015
Gluster FS a filesistem for Big Data | Roberto Franchini - Codemotion Rome 2015
Codemotion1.1K views
Developing apps and_integrating_with_gluster_fs_-_libgfapi by Gluster.org
Developing apps and_integrating_with_gluster_fs_-_libgfapiDeveloping apps and_integrating_with_gluster_fs_-_libgfapi
Developing apps and_integrating_with_gluster_fs_-_libgfapi
Gluster.org623 views
Introduction to Git for Network Engineers (Lab Guide) by Joel W. King
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
Joel W. King346 views
Grunt training deck by James Ford
Grunt training deckGrunt training deck
Grunt training deck
James Ford10.5K views
Настройка окружения для кросскомпиляции проектов на основе docker'a by corehard_by
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
corehard_by174 views
Presentation Gosa Loaddays2010 by loadays
Presentation Gosa Loaddays2010Presentation Gosa Loaddays2010
Presentation Gosa Loaddays2010
loadays551 views
Buildout: creating and deploying repeatable applications in python by CodeSyntax
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in python
CodeSyntax1K views
Replacing Your Shared Drive with Alfresco - Open Source ECM by Alfresco Software
Replacing Your Shared Drive with Alfresco - Open Source ECMReplacing Your Shared Drive with Alfresco - Open Source ECM
Replacing Your Shared Drive with Alfresco - Open Source ECM
Alfresco Software3.6K views
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc... by niallo
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
niallo6.1K views
Encode x ICH: Intro to Building on the IC in Motoko by KlaraOrban
Encode x ICH: Intro to Building on the IC in MotokoEncode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in Motoko
KlaraOrban196 views

More from Flavio Castelli

Salt at school by
Salt at schoolSalt at school
Salt at schoolFlavio Castelli
527 views39 slides
Seminario crittografia-linux-day-2004 by
Seminario crittografia-linux-day-2004Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004Flavio Castelli
665 views60 slides
Linux console by
Linux consoleLinux console
Linux consoleFlavio Castelli
641 views26 slides
Regular expressions by
Regular expressionsRegular expressions
Regular expressionsFlavio Castelli
951 views43 slides
Netiquette v11 by
Netiquette v11Netiquette v11
Netiquette v11Flavio Castelli
1.6K views25 slides
Kde4 preview by
Kde4 previewKde4 preview
Kde4 previewFlavio Castelli
350 views19 slides

Recently uploaded

Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...ShapeBlue
113 views18 slides
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...ShapeBlue
93 views13 slides
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...ShapeBlue
120 views62 slides
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
191 views23 slides
Future of AR - Facebook Presentation by
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook PresentationRob McCarty
54 views27 slides
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...ShapeBlue
97 views28 slides

Recently uploaded(20)

Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue113 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue93 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue120 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue191 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty54 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue97 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue128 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE67 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10110 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash103 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue134 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue110 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue105 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue178 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue81 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue147 views
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by ShapeBlue
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
ShapeBlue58 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue149 views

Strigi desktop-integration

  • 1. Strigi Desktop integration Flavio Castelli
  • 2. Strigi desktop integration FOSDEM 2007 Why choose Strigi Strigi's main features ● fast and lightweight ● portable ● extensible ● next KDE4 desktop searching engine ● can be easily accessed from external programs Flavio Castelli
  • 3. Strigi desktop integration FOSDEM 2007 What can be done by Strigi Strigi's capabilities ● perform fast searches across heterogeneous data collections ● extract metadata informations from files ● index compressed archives contents ● create/recreate/discover relations between different data Flavio Castelli
  • 4. Strigi desktop integration FOSDEM 2007 How to interact with Strigi Strigi communication interfaces socket DBus Flavio Castelli
  • 5. Strigi desktop integration FOSDEM 2007 How to interact with Strigi Socket interface Benefits: ● well known mechanism ● can be accessed from different languages / OS Drawbacks: ● actually has less priority --> it isn't fully tested Flavio Castelli
  • 6. Strigi desktop integration FOSDEM 2007 How to interact with Strigi DBus interface The best way to access Strigi features: ● simple and fast to use ● IPC protocol used by KDE4 and Gnome ● there are lots of DBus bindings ● actively developed Flavio Castelli
  • 7. Strigi desktop integration FOSDEM 2007 How to interact with Strigi Available functions Everything can be performed through the socket and DBus interfaces: ● start/stop Strigi daemon ● add/remove filters ● force index updates ● index a specific resource ● perform searches (and retrieve results ;) Flavio Castelli
  • 8. Strigi desktop integration FOSDEM 2007 How to interact with Strigi Available classes for C++ developers Existing C++ classes for playing with Strigi: ● AsyncSocketClient: access socket interface ● DBusClientInterface: access DBus interface Automatically shipped with Strigi installation Flavio Castelli
  • 9. Strigi desktop integration FOSDEM 2007 Strigi Clients “main” clients Their code can be taken as example: ● StrigiClient: ● written in C++ ● uses Qt4 ● connection through Dbus interface ● StrigiApplet: ● written in C++ ● uses KDE3 libs ● connection through socket interface Flavio Castelli
  • 10. Strigi desktop integration FOSDEM 2007 Strigi Clients Strigi's Gnome DeskBar handler Flavio Castelli
  • 11. Strigi desktop integration FOSDEM 2007 Strigi Clients Strigi's Gnome DeskBar handler Features: ● written in python ● communicate using DBus interface ● only 95 lines of code Strigi integration is easy Flavio Castelli
  • 12. Strigi desktop integration FOSDEM 2007 JStreams Really short description What are JStreams: ● a C++ “transposition” of Java InputStream childs public StreamDemo(URL url) throws IOException { InputStream filestream = url.openStream(); ZipInputStream zipstream = new ZipInputStream(filestream); ZipEntry entry = zipstream.getNextEntry(); while (entry != null) { handleEntry(zipstream, entry); } } Flavio Castelli
  • 13. Strigi desktop integration FOSDEM 2007 JStreams The power of JStreams ● flexible: can be extended for supporting new file types ● really fast (especially while accessing compressed archives) ● easy to use ● code reuse: can be used by other programs with ease Flavio Castelli
  • 14. Strigi desktop integration FOSDEM 2007 JStreams JStreams actual status More relevant file types: ● compressed archives: tar, gzip, bz2, ar,... ● linux distribution packages: deb, rpm,... ● pdf files ● email ● ... Flavio Castelli
  • 15. Strigi desktop integration FOSDEM 2007 Use JStreams A simple example Flavio Castelli
  • 16. Strigi desktop integration FOSDEM 2007 Use JStreams QClient Simple Qt4 program that uses JStreams: ● navigate through archive files ● can open archive file contents How can be done ? Flavio Castelli
  • 17. Strigi desktop integration FOSDEM 2007 Use JStreams QArchiveEngine Class QAbstracFileEngine ArchiveEngineBase Access archive files as directories ArchiveEngine Flavio Castelli
  • 18. Strigi desktop integration FOSDEM 2007 Use JStreams QArchiveEngine Class For accessing compressed files as directories: ● create a new QAbstractFileEngine child ● use JStreams inside it ● register the new engine All Qt classes that provides file system access will use it whenever it's possible Flavio Castelli
  • 19. Strigi desktop integration FOSDEM 2007 Use JStreams into KDE JStreams and KDE Also KDE programs can use JStreams functionalities: JStreams KIOSlave ● Available for KDE3 ● Already into KDE4 trunk Flavio Castelli
  • 20. Strigi desktop integration FOSDEM 2007 Use JStreams into KDE JStream KIOSLAVE Flavio Castelli
  • 21. Strigi desktop integration FOSDEM 2007 Conclusions Interact with Strigi ● use Strigi's features is really simple ● it can be done from: ● different programming languages ● different window managers ● different OS ● you can use Strigi for: ● desktop searching tasks ● fast and simple access to a large set of file types Flavio Castelli
  • 22. Strigi desktop integration FOSDEM 2007 Conclusions Strigi's integration Actually we cover a good set of SCENARIO ● StrigiClient: generic window manager ● StrigiApplet: kde client ● Gnome DeskBar handler: self-explaining In the near future: ● a KDE4 Plasmoid client Flavio Castelli
  • 23. Strigi desktop integration FOSDEM 2007 Conclusions Strigi's integration: the future... There is lot of work to be done on the client-side: ● keep improving actual interfaces ● improve usability & integration ● create a better user experience create a better user experience Flavio Castelli