SlideShare a Scribd company logo
1 of 23
Download to read offline
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

What's hot

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...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...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é...
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...Anne Nicolas
 
8-9-10=Jessie,Stretch,Buster
8-9-10=Jessie,Stretch,Buster8-9-10=Jessie,Stretch,Buster
8-9-10=Jessie,Stretch,BusterHideki Yamane
 
Pharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alphaPharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alphaPharo
 
about Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospringabout Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC TokyospringHideki Yamane
 

What's hot (6)

Itb2018 thinking modularly
Itb2018   thinking modularlyItb2018   thinking modularly
Itb2018 thinking modularly
 
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...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
 
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é...
Embedded Recipes 2018 - Yoctoception: Containers in the embedded world - Jéré...
 
8-9-10=Jessie,Stretch,Buster
8-9-10=Jessie,Stretch,Buster8-9-10=Jessie,Stretch,Buster
8-9-10=Jessie,Stretch,Buster
 
Pharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alphaPharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alpha
 
about Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospringabout Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospring
 

Viewers also liked

Osnovnoe svojstvo drobi
Osnovnoe svojstvo drobiOsnovnoe svojstvo drobi
Osnovnoe svojstvo drobiDimon4
 
RTI Sikkim Rules ppt
RTI  Sikkim Rules pptRTI  Sikkim Rules ppt
RTI Sikkim Rules pptBhim Thatal
 
Revised schedule-vi-print-disabled-1
Revised schedule-vi-print-disabled-1Revised schedule-vi-print-disabled-1
Revised schedule-vi-print-disabled-1ashfakkadri
 

Viewers also liked (7)

Phap
PhapPhap
Phap
 
Izcenojumi
IzcenojumiIzcenojumi
Izcenojumi
 
Moved by love2
Moved by love2Moved by love2
Moved by love2
 
Osnovnoe svojstvo drobi
Osnovnoe svojstvo drobiOsnovnoe svojstvo drobi
Osnovnoe svojstvo drobi
 
RTI Sikkim Rules ppt
RTI  Sikkim Rules pptRTI  Sikkim Rules ppt
RTI Sikkim Rules ppt
 
Revised schedule-vi-print-disabled-1
Revised schedule-vi-print-disabled-1Revised schedule-vi-print-disabled-1
Revised schedule-vi-print-disabled-1
 
Průvodce online katalogy (podzim 2012)
Průvodce online katalogy (podzim 2012)Průvodce online katalogy (podzim 2012)
Průvodce online katalogy (podzim 2012)
 

Similar to Strigi desktop-integration

Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build ToolsMichael Ducy
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Asher Martin
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
 
Codemotion Rome 2015. GlusterFS
Codemotion Rome 2015. GlusterFSCodemotion Rome 2015. GlusterFS
Codemotion Rome 2015. GlusterFSRoberto Franchini
 
Gluster FS a filesistem for Big Data | Roberto Franchini - Codemotion Rome 2015
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 2015Codemotion
 
Developing apps and_integrating_with_gluster_fs_-_libgfapi
Developing apps and_integrating_with_gluster_fs_-_libgfapiDeveloping apps and_integrating_with_gluster_fs_-_libgfapi
Developing apps and_integrating_with_gluster_fs_-_libgfapiGluster.org
 
Introduction to Git for Network Engineers (Lab Guide)
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. King
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainŁukasz Piątkowski
 
Grunt training deck
Grunt training deckGrunt training deck
Grunt training deckJames Ford
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
 
Presentation Gosa Loaddays2010
Presentation Gosa Loaddays2010Presentation Gosa Loaddays2010
Presentation Gosa Loaddays2010loadays
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonCodeSyntax
 
Replacing Your Shared Drive with Alfresco - Open Source ECM
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 ECMAlfresco Software
 

Similar to Strigi desktop-integration (20)

Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build Tools
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
Tlf2013
Tlf2013Tlf2013
Tlf2013
 
Turbo Studio
Turbo StudioTurbo Studio
Turbo Studio
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
Docker_AGH_v0.1.3
Docker_AGH_v0.1.3Docker_AGH_v0.1.3
Docker_AGH_v0.1.3
 
Codemotion Rome 2015. GlusterFS
Codemotion Rome 2015. GlusterFSCodemotion Rome 2015. GlusterFS
Codemotion Rome 2015. GlusterFS
 
Gluster FS a filesistem for Big Data | Roberto Franchini - Codemotion Rome 2015
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
 
Developing apps and_integrating_with_gluster_fs_-_libgfapi
Developing apps and_integrating_with_gluster_fs_-_libgfapiDeveloping apps and_integrating_with_gluster_fs_-_libgfapi
Developing apps and_integrating_with_gluster_fs_-_libgfapi
 
olf10
olf10olf10
olf10
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform Gain
 
Scale9x sun
Scale9x sunScale9x sun
Scale9x sun
 
Grunt training deck
Grunt training deckGrunt training deck
Grunt training deck
 
F17 inside
F17 insideF17 inside
F17 inside
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Presentation Gosa Loaddays2010
Presentation Gosa Loaddays2010Presentation Gosa Loaddays2010
Presentation Gosa Loaddays2010
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in python
 
Replacing Your Shared Drive with Alfresco - Open Source ECM
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
 
1-Intro to VC & GIT PDF.pptx
1-Intro to VC & GIT PDF.pptx1-Intro to VC & GIT PDF.pptx
1-Intro to VC & GIT PDF.pptx
 

More from Flavio Castelli (10)

Salt at school
Salt at schoolSalt at school
Salt at school
 
Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004
 
Linux console
Linux consoleLinux console
Linux console
 
Regular expressions
Regular expressionsRegular expressions
Regular expressions
 
Netiquette v11
Netiquette v11Netiquette v11
Netiquette v11
 
Kde4 preview
Kde4 previewKde4 preview
Kde4 preview
 
Desktop searching
Desktop searchingDesktop searching
Desktop searching
 
KDE4 ld2007
KDE4 ld2007KDE4 ld2007
KDE4 ld2007
 
The hacker choice
The hacker choiceThe hacker choice
The hacker choice
 
Memcached
MemcachedMemcached
Memcached
 

Recently uploaded

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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Recently uploaded (20)

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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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?
 
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...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

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