SlideShare a Scribd company logo
// Represents the model of a Writer document.
class SW_DLLPUBLIC SwDoc :
public IInterface,
public IDocumentRedlineAccess,
public IDocumentFieldsAccess,
public IDocumentStylePoolAccess,
public IDocumentLineNumberAccess,
public IDocumentStatistics,
public IDocumentState,
public IDocumentLayoutAccess,
public IDocumentExternalData
Jacobo Aragunde Pérez
http://blogs.igalia.com/jaragunde
@JacoboAragunde
SharePoint and LibreOffice
interoperability through CMIS
Contents
● Introduction
● The CMIS protocol
● Writing your own client: the libcmis project
● Connecting to your SharePoint server from
LibreOffice
● The future of CMIS integration in LibreOffice
Introduction
● Open Source experts and consultants
● 14 years of experience
● Contributors to:
● Client-side web tecnologies: WebKit, Chromium
● Compilers: V8, JavaScriptCore, Guile
● Multimedia: GStreamer, Grilo
● Accessibility: ATK, Orca
● Open documents: LibreOffice, Poppler
● ...
● Backed by The Document Foundation
● Healthy mix of volunteer and corporate contributors
● Around 100 monthly committers and 2000 commits
● 7M lines of code
● >20 years of history
“Exact history was lost before Sept. 18th, 
2000, but old source code comments show 
that Writer core dates back until at least 
November 1990.”
The CMIS protocol
● Stands for Content Management
Interoperability Services
● Abstraction layer for interoperability across
enterprise content management systems
(ECM) using web protocols
● ECMs store unstructured data
● Provides:
● Common data model for typed files and folders with
properties that can be get/set
● Services for adding and retrieving documents
● May provide:
● Access control system
● Version control
● Relations
● Queries
● Bindings:
● SOAP (WebService)
● AtomPub (RESTful)
● JSON (from CMIS 1.1)
Domain model
● Repository
● Topmost object
● Any number, minimum one
● Objects
● Types
● Folder, document
● More can be added
● Types have properties
● Hierarchies can be built
Domain model: objects
● Folders
● One root folder per repository
● Define a hierarchy
● Standard properties: name, access date, etc.
● Documents
● Standard properties: name, modification date, etc.
● Have a content stream with a MIME type
Services
● Repository service
● List and get properties of repositories
● Expose available types
● Navigation service
● Browse folder hierarchy
● Object service
● CRUD of documents and folders
● Access by object ID or by path
Services
● Versioning service
● Create and access versions
● Only documents are versionable
– Determined by the document type
Some server implementations
● Alfresco
● IBM Content Manager
● Magnolia CMS
● Nuxeo
● SharePoint 2010, 2013
Some client implementations
● Drupal
● LibreOffice
● Liferay
● Salesforce.com
● SharePoint 2010, 2013
A common interaction
● Get repositories from the server
● Get root folder for some repository
● Navigate through the folders
● Check out a document
● Check in modified document
Writing your own client: the libcmis
project
What is libcmis
● C++ client library for the CMIS protocol
● Enables client applications to connect servers like
SharePoint
● Open source project
● GPLv2, MPL 1.1
● LGPLv2, link from proprietary software
● Brought to you by the LibreOffice community
● http://libcmis.sourceforge.net/
What libcmis provides
● C++ and plain C APIs
● Classes abstracting CMIS entities
● Specific implementation for selected servers,
including SharePoint
● Command line client tool
Code examples
// Get repositories from the server
libcmis::Session* session = libcmis::SessionFactory::createSession(
        url, username, password, repoId, noSslCheck,
        oauth2Data, verbose );
vector< libcmis::RepositoryPtr > repos =
        session­>getRepositories( );
for ( vector< libcmis::RepositoryPtr >::iterator it =
        repos.begin( ); it != repos.end(); ++it )
{
    ( *it )­>getName( );
    ( *it )­>getId( );
}
// Get root folder for some repository
session­>setRepository( repoId );
libcmis::FolderPtr root = session­>getRootFolder();
Code examples
// Navigate through the folders
std::vector< libcmis::ObjectPtr > children = root­>getChildren( );
for ( vector< libcmis::ObjectPtr >::iterator it = repos.begin( );
        it != repos.end( ); ++it )
{
    ( *it )­>getName( );
    ( *it )­>getId( );
    if ( ( *it )­>getBaseType( ) == "cmis:folder" )
    {
        libcmis::Folder* childFolder =
                dynamic_cast< libcmis::Folder* >( ( *it ).get() );
        childFolder­>getChildren( );
        // ...
    }
}
Code examples
// Check out a document
libcmis::ObjectPtr cmisObj = session­>getObject( objectId );
if ( cmisObj­>getBaseType( ) == "cmis:document" )
{
    libcmis::Document* doc =
            dynamic_cast< libcmis::Document* >( cmisObj.get() );
    libcmis::DocumentPtr pwc = doc­>checkOut( ); // private working
                                                 // copy
    // pwc­>cancelCheckout( );
    boost::shared_ptr< istream > in =
            document­>getContentStream( /*streamId*/ );
    ofstream out( document­>getContentFilename().c_str() );
    out << in­>rdbuf();
    out.close();
}
Code examples
// Check in modified document
bool major = false;
string comment = "Fix minor spelling issues";
libcmis::PropertyPtrMap newProperties; // populate with any new
                                       // properties
boost::shared_ptr< ostream > stream; // fill it in with the new
                                     // document contents
string contentType = "application/vnd.oasis.opendocument.text";
string filename = "document.odt";
libcmis::ObjectPtr cmisObj = session­>getObject( objectId );
libcmis::Document* doc =
        dynamic_cast< libcmis::Document* >( object.get() );
libcmis::DocumentPtr newDoc = doc­>checkIn(
        major, comment, properties, stream, contentType, filename );
Alternative CMIS libraries
● Apache Chemistry (OpenCMIS) on Java
platforms
● NCMIS or VB.CMIS on Microsoft platforms
Connecting to your SharePoint
server from LibreOffice
Enable CMIS in your server
● CMIS connector is part of the SharePoint 2010
Administration Toolkit
● Includes a consumer web part (client) and a
producer (server)
● Follow documentation instructions to install and
configure
Connect from LibreOffice
Connect from LibreOffice
Connect from LibreOffice
Problems
● Feature not visible to average users
● Only accessible through LO custom file dialogs
– May be visible or not depending on default dialog
configuration
– Default configuration in most LO providers hides it!
● Lack of users means under-average testing and
maintenance
The future of CMIS integration in
LibreOffice
Goals
● Increase visibility of the feature
● Integrate in standard LibreOffice workflow
● Ease access to popular storage services
● Expectation: LibreOffice 5.1 early 2016
Increase visibility
● Specific entry in Start Center
● Open from remote, save to remote menu
options and/or toolbar buttons
Start Center entry
Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH
Integrate in standard workflow
● Open from remote, save to remote menu
options and/or toolbar buttons
● Specific dialog to open and save from remote
locations
● Not part of the LibreOffice file dialogs any more
● Make feature independent from dialog configuration
Dialog for remote operations
Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH
Ease access to popular storage
services
● Dialogs to manage different services
● Entries for most popular services
● Dialog complexity depending on the service
Dialogs for service configuration
Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH
Summary
● CMIS protocol for interoperability with ECMs
like SharePoint
● You can use libcmis to develop your own C/C++
client
● LibreOffice can connect to CMIS servers
including SharePoint
● Usability is not great right now
● CMIS support in LibreOffice is being improved
as we speak
Thank you!
© 2015 Igalia, S.L.
References
● CMIS - Wikipedia
● CMIS standard specification - OASIS
● What’s this thing called CMIS? - Jens Hübel
● CMIS connector overview – Microsoft Technet
● LibreOffice Design Session: CMIS improvemen
t - User Prompt GmbH

More Related Content

What's hot

Documentation the Community Way - TxLF 2018
Documentation the Community Way - TxLF 2018Documentation the Community Way - TxLF 2018
Documentation the Community Way - TxLF 2018
Nicole Baratta
 
Data serialisation using protocol buffers
Data serialisation using protocol buffersData serialisation using protocol buffers
Data serialisation using protocol buffers
Ritesh Agrawal
 
LeticiaLomeliResume
LeticiaLomeliResumeLeticiaLomeliResume
LeticiaLomeliResumeLETTY_LOGON
 
Synchronization with CouchDB and PouchDB
Synchronization with CouchDB and PouchDBSynchronization with CouchDB and PouchDB
Synchronization with CouchDB and PouchDB
EU Edge
 
Nhu Viet Nguyen "Architectural Features of Automotive"
Nhu Viet Nguyen "Architectural Features of Automotive"Nhu Viet Nguyen "Architectural Features of Automotive"
Nhu Viet Nguyen "Architectural Features of Automotive"
LogeekNightUkraine
 
Serverless Code Components
Serverless Code Components Serverless Code Components
Serverless Code Components
Shimon Tolts
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fast
Denis Karpenko
 
End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013
Alexandre Morgaut
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
Asher Sterkin
 
Gwt development with errai and forge
Gwt development with errai and forgeGwt development with errai and forge
Gwt development with errai and forge
firenze-gtug
 
Further Capabilities of Portlets & Portals
Further Capabilities of Portlets & PortalsFurther Capabilities of Portlets & Portals
Further Capabilities of Portlets & Portals
Miro Cupak
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)
Igalia
 
New Technology Presentation for the School of Information
New Technology Presentation for the School of InformationNew Technology Presentation for the School of Information
New Technology Presentation for the School of Informationmarisamendezbrady
 
Let's Go @ St. Louis CocoaHeads
Let's Go @ St. Louis CocoaHeadsLet's Go @ St. Louis CocoaHeads
Let's Go @ St. Louis CocoaHeads
Paul Balogh
 
Is distribution-level package management obsolete?
Is distribution-level package management obsolete?Is distribution-level package management obsolete?
Is distribution-level package management obsolete?
Donnie Berkholz
 
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
pycontw
 
Open Source Hardware (OSHW)...What About The Tools?
Open Source Hardware (OSHW)...What About The Tools?Open Source Hardware (OSHW)...What About The Tools?
Open Source Hardware (OSHW)...What About The Tools?
ChrisGammell
 
Scaling Git for Enterprise DevOps
Scaling Git for Enterprise DevOpsScaling Git for Enterprise DevOps
Scaling Git for Enterprise DevOps
Eng Teong Cheah
 
Sean Kerr Resume
Sean Kerr ResumeSean Kerr Resume
Sean Kerr ResumeSean Kerr
 

What's hot (20)

Doxygen
DoxygenDoxygen
Doxygen
 
Documentation the Community Way - TxLF 2018
Documentation the Community Way - TxLF 2018Documentation the Community Way - TxLF 2018
Documentation the Community Way - TxLF 2018
 
Data serialisation using protocol buffers
Data serialisation using protocol buffersData serialisation using protocol buffers
Data serialisation using protocol buffers
 
LeticiaLomeliResume
LeticiaLomeliResumeLeticiaLomeliResume
LeticiaLomeliResume
 
Synchronization with CouchDB and PouchDB
Synchronization with CouchDB and PouchDBSynchronization with CouchDB and PouchDB
Synchronization with CouchDB and PouchDB
 
Nhu Viet Nguyen "Architectural Features of Automotive"
Nhu Viet Nguyen "Architectural Features of Automotive"Nhu Viet Nguyen "Architectural Features of Automotive"
Nhu Viet Nguyen "Architectural Features of Automotive"
 
Serverless Code Components
Serverless Code Components Serverless Code Components
Serverless Code Components
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fast
 
End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
 
Gwt development with errai and forge
Gwt development with errai and forgeGwt development with errai and forge
Gwt development with errai and forge
 
Further Capabilities of Portlets & Portals
Further Capabilities of Portlets & PortalsFurther Capabilities of Portlets & Portals
Further Capabilities of Portlets & Portals
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)
 
New Technology Presentation for the School of Information
New Technology Presentation for the School of InformationNew Technology Presentation for the School of Information
New Technology Presentation for the School of Information
 
Let's Go @ St. Louis CocoaHeads
Let's Go @ St. Louis CocoaHeadsLet's Go @ St. Louis CocoaHeads
Let's Go @ St. Louis CocoaHeads
 
Is distribution-level package management obsolete?
Is distribution-level package management obsolete?Is distribution-level package management obsolete?
Is distribution-level package management obsolete?
 
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
 
Open Source Hardware (OSHW)...What About The Tools?
Open Source Hardware (OSHW)...What About The Tools?Open Source Hardware (OSHW)...What About The Tools?
Open Source Hardware (OSHW)...What About The Tools?
 
Scaling Git for Enterprise DevOps
Scaling Git for Enterprise DevOpsScaling Git for Enterprise DevOps
Scaling Git for Enterprise DevOps
 
Sean Kerr Resume
Sean Kerr ResumeSean Kerr Resume
Sean Kerr Resume
 

Similar to Sharepoint and LibreOffice interoperability through CMIS (Protocols Plugfest 2015)

Enterprise Griffon
Enterprise GriffonEnterprise Griffon
Enterprise Griffon
James Williams
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
Fwdays
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
Alexandr Savchenko
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservices
Ron Barabash
 
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
WSO2
 
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
GRUC
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
Strongback Consulting
 
Building bridges - Plone Conference 2015 Bucharest
Building bridges   - Plone Conference 2015 BucharestBuilding bridges   - Plone Conference 2015 Bucharest
Building bridges - Plone Conference 2015 Bucharest
Andreas Jung
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Nedelcho Delchev
 
Integrating Autodesk Vault to PLM – Rodney Coffey, Razorleaf & Scott Stortz, ...
Integrating Autodesk Vault to PLM – Rodney Coffey, Razorleaf & Scott Stortz, ...Integrating Autodesk Vault to PLM – Rodney Coffey, Razorleaf & Scott Stortz, ...
Integrating Autodesk Vault to PLM – Rodney Coffey, Razorleaf & Scott Stortz, ...
Synergis Engineering Design Solutions
 
Adobe connect feature from Yaqeen hosting Company
Adobe connect feature from Yaqeen hosting Company Adobe connect feature from Yaqeen hosting Company
Adobe connect feature from Yaqeen hosting Company
ahmad hanbali
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
Nirmal Fernando
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDoku
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management Primer
Richard Esplin
 
PHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterPHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterJamshid Hashimi
 
JIO and WebViewers: interoperability for Javascript and Web Applications
JIO and WebViewers: interoperability  for Javascript and Web ApplicationsJIO and WebViewers: interoperability  for Javascript and Web Applications
JIO and WebViewers: interoperability for Javascript and Web Applications
XWiki
 
Free Libre Open Source Software at FFZG library
Free Libre Open Source Software at FFZG libraryFree Libre Open Source Software at FFZG library
Free Libre Open Source Software at FFZG library
Dobrica Pavlinušić
 
IBM Connect Switzerland - Der entspannte Administrator
IBM Connect Switzerland - Der entspannte AdministratorIBM Connect Switzerland - Der entspannte Administrator
IBM Connect Switzerland - Der entspannte Administrator
Klaus Bild
 
SAP S/4 Hana:Key User Extensibility Overview
SAP S/4 Hana:Key User Extensibility OverviewSAP S/4 Hana:Key User Extensibility Overview
SAP S/4 Hana:Key User Extensibility Overview
SudhaVukkalkar1
 

Similar to Sharepoint and LibreOffice interoperability through CMIS (Protocols Plugfest 2015) (20)

Enterprise Griffon
Enterprise GriffonEnterprise Griffon
Enterprise Griffon
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservices
 
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
 
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
 
Building bridges - Plone Conference 2015 Bucharest
Building bridges   - Plone Conference 2015 BucharestBuilding bridges   - Plone Conference 2015 Bucharest
Building bridges - Plone Conference 2015 Bucharest
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
Integrating Autodesk Vault to PLM – Rodney Coffey, Razorleaf & Scott Stortz, ...
Integrating Autodesk Vault to PLM – Rodney Coffey, Razorleaf & Scott Stortz, ...Integrating Autodesk Vault to PLM – Rodney Coffey, Razorleaf & Scott Stortz, ...
Integrating Autodesk Vault to PLM – Rodney Coffey, Razorleaf & Scott Stortz, ...
 
Adobe connect feature from Yaqeen hosting Company
Adobe connect feature from Yaqeen hosting Company Adobe connect feature from Yaqeen hosting Company
Adobe connect feature from Yaqeen hosting Company
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management Primer
 
PHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterPHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniter
 
JIO and WebViewers: interoperability for Javascript and Web Applications
JIO and WebViewers: interoperability  for Javascript and Web ApplicationsJIO and WebViewers: interoperability  for Javascript and Web Applications
JIO and WebViewers: interoperability for Javascript and Web Applications
 
Free Libre Open Source Software at FFZG library
Free Libre Open Source Software at FFZG libraryFree Libre Open Source Software at FFZG library
Free Libre Open Source Software at FFZG library
 
IBM Connect Switzerland - Der entspannte Administrator
IBM Connect Switzerland - Der entspannte AdministratorIBM Connect Switzerland - Der entspannte Administrator
IBM Connect Switzerland - Der entspannte Administrator
 
SAP S/4 Hana:Key User Extensibility Overview
SAP S/4 Hana:Key User Extensibility OverviewSAP S/4 Hana:Key User Extensibility Overview
SAP S/4 Hana:Key User Extensibility Overview
 

More from Igalia

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
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
Igalia
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
Igalia
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
Igalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
Igalia
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
Igalia
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Igalia
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
Igalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
Igalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
Igalia
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
Igalia
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
Igalia
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Igalia
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
Igalia
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
Igalia
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
Igalia
 

More from Igalia (20)

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?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

Sharepoint and LibreOffice interoperability through CMIS (Protocols Plugfest 2015)