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

More Related Content

PDF
Lavigne bsdmag dec2012
PDF
BSD for Linux Users
PDF
Creating new Tizen profiles using the Yocto Project
PDF
SELF 2010: BSD For Linux Users
PDF
Bringing Tizen to a Raspberry Pi 2 Near You
PDF
Lavigne bsdmag-jan13
PDF
BSD for Linux Users
PDF
Ubc group presentation_march_25th
Lavigne bsdmag dec2012
BSD for Linux Users
Creating new Tizen profiles using the Yocto Project
SELF 2010: BSD For Linux Users
Bringing Tizen to a Raspberry Pi 2 Near You
Lavigne bsdmag-jan13
BSD for Linux Users
Ubc group presentation_march_25th

What's hot (6)

PDF
Itb2018 thinking modularly
ODP
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
PDF
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...
PDF
8-9-10=Jessie,Stretch,Buster
PDF
Pharo 7.0 and 8.0 alpha
ODP
about Debian "squeeze" @201002 OSC Tokyospring
Itb2018 thinking modularly
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...
8-9-10=Jessie,Stretch,Buster
Pharo 7.0 and 8.0 alpha
about Debian "squeeze" @201002 OSC Tokyospring
Ad

Viewers also liked (7)

PDF
PPTX
Izcenojumi
PPT
Moved by love2
PPTX
Osnovnoe svojstvo drobi
PPT
RTI Sikkim Rules ppt
PDF
Revised schedule-vi-print-disabled-1
PPT
Průvodce online katalogy (podzim 2012)
Izcenojumi
Moved by love2
Osnovnoe svojstvo drobi
RTI Sikkim Rules ppt
Revised schedule-vi-print-disabled-1
Průvodce online katalogy (podzim 2012)
Ad

Similar to Strigi desktop-integration (20)

PDF
Survey of Container Build Tools
PDF
Cape Cod Web Technology Meetup - 3
PDF
Tlf2013
PDF
Turbo Studio
PPTX
Introduction to git and Github
PDF
Docker_AGH_v0.1.3
PDF
Gluster FS a filesistem for Big Data | Roberto Franchini - Codemotion Rome 2015
PDF
Codemotion Rome 2015. GlusterFS
ODP
Developing apps and_integrating_with_gluster_fs_-_libgfapi
PDF
PDF
Rejekts 24 EU No GitOps Pain, No Platform Gain
PDF
Scale9x sun
PDF
Grunt training deck
PDF
F17 inside
PPTX
Настройка окружения для кросскомпиляции проектов на основе docker'a
ODP
Presentation Gosa Loaddays2010
ODP
Buildout: creating and deploying repeatable applications in python
PPT
Replacing Your Shared Drive with Alfresco - Open Source ECM
PPTX
1-Intro to VC & GIT PDF.pptx
PDF
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Survey of Container Build Tools
Cape Cod Web Technology Meetup - 3
Tlf2013
Turbo Studio
Introduction to git and Github
Docker_AGH_v0.1.3
Gluster FS a filesistem for Big Data | Roberto Franchini - Codemotion Rome 2015
Codemotion Rome 2015. GlusterFS
Developing apps and_integrating_with_gluster_fs_-_libgfapi
Rejekts 24 EU No GitOps Pain, No Platform Gain
Scale9x sun
Grunt training deck
F17 inside
Настройка окружения для кросскомпиляции проектов на основе docker'a
Presentation Gosa Loaddays2010
Buildout: creating and deploying repeatable applications in python
Replacing Your Shared Drive with Alfresco - Open Source ECM
1-Intro to VC & GIT PDF.pptx
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...

More from Flavio Castelli (10)

PDF
Salt at school
PDF
Seminario crittografia-linux-day-2004
PDF
Linux console
PDF
Regular expressions
PDF
Netiquette v11
PDF
Kde4 preview
PDF
Desktop searching
PDF
KDE4 ld2007
PDF
The hacker choice
ODP
Memcached
Salt at school
Seminario crittografia-linux-day-2004
Linux console
Regular expressions
Netiquette v11
Kde4 preview
Desktop searching
KDE4 ld2007
The hacker choice
Memcached

Recently uploaded (20)

PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
Human Computer Interaction Miterm Lesson
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
The AI Revolution in Customer Service - 2025
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
Electrocardiogram sequences data analytics and classification using unsupervi...
PDF
LMS bot: enhanced learning management systems for improved student learning e...
PDF
SaaS reusability assessment using machine learning techniques
PDF
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
Ensemble model-based arrhythmia classification with local interpretable model...
PDF
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
PDF
Advancing precision in air quality forecasting through machine learning integ...
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Human Computer Interaction Miterm Lesson
Module 1 Introduction to Web Programming .pptx
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
Rapid Prototyping: A lecture on prototyping techniques for interface design
The AI Revolution in Customer Service - 2025
Lung cancer patients survival prediction using outlier detection and optimize...
Data Virtualization in Action: Scaling APIs and Apps with FME
Build Real-Time ML Apps with Python, Feast & NoSQL
Electrocardiogram sequences data analytics and classification using unsupervi...
LMS bot: enhanced learning management systems for improved student learning e...
SaaS reusability assessment using machine learning techniques
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Early detection and classification of bone marrow changes in lumbar vertebrae...
Ensemble model-based arrhythmia classification with local interpretable model...
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
Advancing precision in air quality forecasting through machine learning integ...

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