SlideShare a Scribd company logo
The future will be 
realtime & collaborative 
Joseph Gentle
I am not here to talk 
about ShareJS
This is about doing what 
ShareJS does: 
Use Operational Transform 
to make better apps
A quick history lesson
Static Pages 
HTML, CSS 
1990
Static Pages 
HTML, CSS 
1990 
Browser 
Web 
Server 
Filesystem
Static Pages 
1990 
Forms, CGI-BIN 
HTML, CSS PHP, Perl 
1997
Static Pages 
1990 
Forms, CGI-BIN 
HTML, CSS PHP, Perl 
1997 
Web 
Server 
Filesystem 
Browser 
CGI 
Database 
POST 
Render
Static Pages 
HTML, CSS PHP, Perl Rails, Python 
1990 
REST endpoints 
Forms, CGI-BIN 
2000 
1997
REST endpoints 
HTML & 
JS 
Filesystem 
Browser 
REST 
Database 
XHR 
App 
rendering 
DOM updates 
Model data
Static Pages 
HTML, CSS PHP, Perl Rails, Python 
1990 
Forms, CGI-BIN 
1997 
REST endpoints 
2000 
Realtime full page apps 
Meteor, Firebase 
2005
DOM 
HTML & 
JS 
Filesystem 
Model view 
Stream 
Live data 
view 
Database 
Events 
Render 
Render 
REST endpoints Realtime full page apps
Realtime full page apps
Realtime full page apps
Realtime full page apps
Realtime full page apps
Realtime full page apps
DOM 
HTML & 
JS 
Filesystem 
Model view 
Stream 
Live data 
view 
Database 
Events 
Render 
Render 
REST endpoints Realtime full page apps
DOM 
HTML & 
JS 
Filesystem 
Model view 
Stream 
Live data 
view 
Database 
Events 
Render 
Render 
REST endpoints Realtime full page apps
This talk: 
• What is operational transform? 
• How you can use it today 
• The things nobody’s built yet
3 big advantages:
1. Your model data gets updated 
in realtime
1. Your model data gets updated 
in realtime 
2. Seamless online / offline
1. Your model data gets updated 
in realtime 
2. Seamless online / offline 
3. Never accidentally overwrite 
data (F/LWW)
Part 1: OT
Operational Transform
Operational Transform 
Insert “hi there” at position 100 in the document 
[{pos:100, ins:“hi there”}]
Initial doc 
xxxxxxxxxx 
Anne Beth 
Insert ‘C’, pos 1 
Insert ‘a’, pos 2 
Insert ‘t’, pos 3 
Insert ‘D’, pos 11 
Insert ‘o’, pos 12 
Insert ‘g’, pos 13 
CatxxxxxxxxxxDog
Initial doc 
xxxxxxxxxx 
Insert ‘C’, pos 1 
Insert ‘D’, pos 11 
Insert ‘a’, pos 2 
Insert ‘o’, pos 12 
Insert ‘t’, pos 3 
Insert ‘g’, pos 13 
CatxxxxxxxxxgoDx
Initial doc 
xxxxxxxxxx 
Insert ‘C’, pos 1 
Transform 
these } 
Insert ‘D’, pos 12 
Insert ‘a’, pos 2 
Insert ‘o’, pos 14 
Insert ‘t’, pos 3 
Insert ‘g’, pos 16 
CatxxxxxxxxxxDog
Initial doc 
xxxxxxxxxx 
Transform 
these } 
Insert ‘C’, pos 1 
Insert ‘a’, pos 2 
Insert ‘t’, pos 3 
Insert ‘D’, pos 14 
Insert ‘o’, pos 15 
Insert ‘g’, pos 16 
CatxxxxxxxxxxDog
Initial doc 
xxxxxxxxxx 
Insert ‘D’, pos 11 
Insert ‘o’, pos 12 
Insert ‘g’, pos 13 
Insert ‘C’, pos 1 
Insert ‘a’, pos 2 
Insert ‘t’, pos 3 
Transform 
these } 
CatxxxxxxxxxxDog
<Demo text>
But why only text editing?
Initial doc 
[1,2,3,4,5,6,7,8,9,10] 
Anne Beth 
Insert ‘C’, pos 1 
Insert ‘a’, pos 2 
Insert ‘t’, pos 3 
Insert ‘D’, pos 11 
Insert ‘o’, pos 12 
Insert ‘g’, pos 13 
[‘C’,’a’,’t’,1,2,3,4,5,6,7,8,9,10, ‘D’, ‘o’, ‘g’]
Initial doc 
[‘C’,’a’,’t’,…, ‘D’, ‘o’, ‘g’] 
Anne Beth 
Move item 1 to last position 
Replace item 1 with “e” 
[’a’,’t’,…, ‘D’, ‘o’, ‘g’, ‘e’]
<Demo app state>
DOM 
HTML & 
JS 
Filesystem 
state 
Stream 
state 
Events 
Render
{ 
location: ‘inbox’, 
messages: { 
inbox: […] 
spam: [] 
} 
} 
DOM 
client 
state 
client 
state 
Events 
Render 
Client 
Database 
Server
{ 
location: ‘spam’, 
messages: { 
inbox: […] 
spam: [] 
} 
} 
DOM 
client 
state 
client 
state 
Go to spam folder 
Render 
Client 
Database 
Server
{ 
location: ‘spam’, 
messages: { 
inbox: […] 
spam: [] 
} 
} 
DOM 
client 
state 
client 
state 
Go to spam folder 
Render 
Client 
Database 
Server 
Populate the spam messages
{ 
location: ‘spam’, 
messages: { 
inbox: […] 
spam: […!!! STUFF] 
} 
} 
DOM 
client 
state 
client 
state 
Go to spam folder 
Render 
Client 
Database 
Server 
All the messages!
Part 2: How you can use 
it today
You are here
github.com/ottypes/json0
OT Types 
JSON Text Rich text
ShareJS 
Client server protocol on top of OT types
ReactJS demo
DOM 
HTML & 
JS 
Filesystem 
Model 
Ops 
ShareJS 
Database 
Events 
Render
Derby & Racer 
Web framework & ORM on top of ShareJS
Part 3: Going where no 
code has gone before
We are still in the dark ages, 
figuring it out. 
Help by making stuff and 
documenting what you 
make.
Bother your framework authors! 
Tell them to get on board.
Polymer needs OT bindings for object observers 
https://github.com/Polymer/observe-js 
doc.submitOp([{p:[‘users’, users.length],li:“Sam”}]); 
users.push(“sam”);
Help make data bindings & 
examples
Help port ot types to your fav language
Full offline support? 
Mobile first?
We need a database which provides 
this API out of the box. 
If you write databases for a living, lets 
have coffee.
Make cool stuff and show 
people. 
Especially me. I love cool stuff.
IDE!!!
Editor 
libllvm libllvm 
Source files 
Compiler 
Binaries 
Output 
Debugger 
libllvm 
Parse 
Parse 
X-Code Today
X-Code In the world of Tomorrow! 
Editor libllvm 
Syntax & autocomplete 
Annotated 
Source code 
Compiler 
Binaries 
Output 
Filesystem 
saver 
Errors 
Test 
runner
josephg.com 
github.com/josephg 
ShareJS.org

More Related Content

What's hot

Testing http calls with Webmock and VCR
Testing http calls with Webmock and VCRTesting http calls with Webmock and VCR
Testing http calls with Webmock and VCR
Kerry Buckley
 
TDD of HTTP Clients With WebMock
TDD of HTTP Clients With WebMockTDD of HTTP Clients With WebMock
TDD of HTTP Clients With WebMock
Bartosz Blimke
 
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
PROIDEA
 
Aio...whatever
Aio...whateverAio...whatever
Aio...whatever
Steve Genoud
 
Introduction tomongodb
Introduction tomongodbIntroduction tomongodb
Introduction tomongodbLee Theobald
 
ClojureScript Introduction
ClojureScript IntroductionClojureScript Introduction
ClojureScript Introduction
Falko Riemenschneider
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshop
themystic_ca
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
Jens Ravens
 
VersionEEring
VersionEEringVersionEEring
VersionEEring
Ruthie BenDor
 
Dev8d 2011-pipe2 py
Dev8d 2011-pipe2 pyDev8d 2011-pipe2 py
Dev8d 2011-pipe2 py
Tony Hirst
 
Ruby File I/O
Ruby File I/ORuby File I/O
Ruby File I/O
Sarah Allen
 
Mashing Up The Guardian
Mashing Up The GuardianMashing Up The Guardian
Mashing Up The Guardian
Michael Brunton-Spall
 

What's hot (13)

Testing http calls with Webmock and VCR
Testing http calls with Webmock and VCRTesting http calls with Webmock and VCR
Testing http calls with Webmock and VCR
 
TDD of HTTP Clients With WebMock
TDD of HTTP Clients With WebMockTDD of HTTP Clients With WebMock
TDD of HTTP Clients With WebMock
 
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
 
Aio...whatever
Aio...whateverAio...whatever
Aio...whatever
 
Introduction tomongodb
Introduction tomongodbIntroduction tomongodb
Introduction tomongodb
 
Gittalk
GittalkGittalk
Gittalk
 
ClojureScript Introduction
ClojureScript IntroductionClojureScript Introduction
ClojureScript Introduction
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshop
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
 
VersionEEring
VersionEEringVersionEEring
VersionEEring
 
Dev8d 2011-pipe2 py
Dev8d 2011-pipe2 pyDev8d 2011-pipe2 py
Dev8d 2011-pipe2 py
 
Ruby File I/O
Ruby File I/ORuby File I/O
Ruby File I/O
 
Mashing Up The Guardian
Mashing Up The GuardianMashing Up The Guardian
Mashing Up The Guardian
 

Viewers also liked

Presentation
PresentationPresentation
Presentationsmartwtp
 
Technology Reflection 07
Technology Reflection 07Technology Reflection 07
Technology Reflection 07
paijetta
 
S Pr Ookjes Kpc De Steiger 12112012
S Pr Ookjes Kpc De Steiger 12112012S Pr Ookjes Kpc De Steiger 12112012
S Pr Ookjes Kpc De Steiger 12112012
Johan Lapidaire
 
Presentation
PresentationPresentation
Presentationsmartwtp
 
web-to-print presentation
web-to-print presentationweb-to-print presentation
web-to-print presentationsmartwtp
 
What Is Life
What Is LifeWhat Is Life
What Is Life
Rajesh Goyal
 
Presentasi Blog di Masjid Darussalam, 19 April 2015
Presentasi Blog di Masjid Darussalam, 19 April 2015Presentasi Blog di Masjid Darussalam, 19 April 2015
Presentasi Blog di Masjid Darussalam, 19 April 2015
Amril Taufik Gobel
 
Presentatie wijsheidsboeken 9v10 prediker Vineyard Utrecht 18122011
Presentatie wijsheidsboeken 9v10 prediker Vineyard Utrecht 18122011Presentatie wijsheidsboeken 9v10 prediker Vineyard Utrecht 18122011
Presentatie wijsheidsboeken 9v10 prediker Vineyard Utrecht 18122011vineyardutrecht
 
ROC's En SVH 032010
ROC's En SVH 032010ROC's En SVH 032010
ROC's En SVH 032010
Johan Lapidaire
 
Indroduction to GIS_Swedish
Indroduction to GIS_SwedishIndroduction to GIS_Swedish
Indroduction to GIS_Swedish
Fred Johansen
 
Anzo smart data integration february 2015
Anzo smart data integration february 2015Anzo smart data integration february 2015
Anzo smart data integration february 2015John Rueter
 
Warandecollege 05102010
Warandecollege 05102010Warandecollege 05102010
Warandecollege 05102010
Johan Lapidaire
 
SVH In Vogelvlucht Roc Aventus 2 3 2011
SVH In Vogelvlucht Roc Aventus 2 3 2011SVH In Vogelvlucht Roc Aventus 2 3 2011
SVH In Vogelvlucht Roc Aventus 2 3 2011
Johan Lapidaire
 
Digital business #3
Digital business #3Digital business #3
Digital business #3finanzas_uca
 
Cloud Security Law Issues--an Overview
Cloud Security Law Issues--an OverviewCloud Security Law Issues--an Overview
Cloud Security Law Issues--an Overview
Michael C. Keeling, Esq.
 
Presentatie 27 Mei Cluster Htv
Presentatie  27 Mei Cluster HtvPresentatie  27 Mei Cluster Htv
Presentatie 27 Mei Cluster Htv
Johan Lapidaire
 
Emixion Koffie verkeerd presentatie - Hoe communiceren met Google
Emixion Koffie verkeerd presentatie - Hoe communiceren met GoogleEmixion Koffie verkeerd presentatie - Hoe communiceren met Google
Emixion Koffie verkeerd presentatie - Hoe communiceren met Google
John Meijering ✔
 
Morris Jumel Mansion
Morris Jumel MansionMorris Jumel Mansion
Morris Jumel Mansionklee4vp
 

Viewers also liked (20)

Tevi (laminas)
Tevi (laminas)Tevi (laminas)
Tevi (laminas)
 
Presentation
PresentationPresentation
Presentation
 
Technology Reflection 07
Technology Reflection 07Technology Reflection 07
Technology Reflection 07
 
S Pr Ookjes Kpc De Steiger 12112012
S Pr Ookjes Kpc De Steiger 12112012S Pr Ookjes Kpc De Steiger 12112012
S Pr Ookjes Kpc De Steiger 12112012
 
Presentation
PresentationPresentation
Presentation
 
web-to-print presentation
web-to-print presentationweb-to-print presentation
web-to-print presentation
 
What Is Life
What Is LifeWhat Is Life
What Is Life
 
Presentasi Blog di Masjid Darussalam, 19 April 2015
Presentasi Blog di Masjid Darussalam, 19 April 2015Presentasi Blog di Masjid Darussalam, 19 April 2015
Presentasi Blog di Masjid Darussalam, 19 April 2015
 
Presentatie wijsheidsboeken 9v10 prediker Vineyard Utrecht 18122011
Presentatie wijsheidsboeken 9v10 prediker Vineyard Utrecht 18122011Presentatie wijsheidsboeken 9v10 prediker Vineyard Utrecht 18122011
Presentatie wijsheidsboeken 9v10 prediker Vineyard Utrecht 18122011
 
ROC's En SVH 032010
ROC's En SVH 032010ROC's En SVH 032010
ROC's En SVH 032010
 
Indroduction to GIS_Swedish
Indroduction to GIS_SwedishIndroduction to GIS_Swedish
Indroduction to GIS_Swedish
 
Anzo smart data integration february 2015
Anzo smart data integration february 2015Anzo smart data integration february 2015
Anzo smart data integration february 2015
 
Warandecollege 05102010
Warandecollege 05102010Warandecollege 05102010
Warandecollege 05102010
 
SVH In Vogelvlucht Roc Aventus 2 3 2011
SVH In Vogelvlucht Roc Aventus 2 3 2011SVH In Vogelvlucht Roc Aventus 2 3 2011
SVH In Vogelvlucht Roc Aventus 2 3 2011
 
Digital business #3
Digital business #3Digital business #3
Digital business #3
 
Cloud Security Law Issues--an Overview
Cloud Security Law Issues--an OverviewCloud Security Law Issues--an Overview
Cloud Security Law Issues--an Overview
 
Maximo Overview
Maximo OverviewMaximo Overview
Maximo Overview
 
Presentatie 27 Mei Cluster Htv
Presentatie  27 Mei Cluster HtvPresentatie  27 Mei Cluster Htv
Presentatie 27 Mei Cluster Htv
 
Emixion Koffie verkeerd presentatie - Hoe communiceren met Google
Emixion Koffie verkeerd presentatie - Hoe communiceren met GoogleEmixion Koffie verkeerd presentatie - Hoe communiceren met Google
Emixion Koffie verkeerd presentatie - Hoe communiceren met Google
 
Morris Jumel Mansion
Morris Jumel MansionMorris Jumel Mansion
Morris Jumel Mansion
 

Similar to The future will be Realtime & Collaborative

OSSBarCamp Talk on Dexy
OSSBarCamp Talk on DexyOSSBarCamp Talk on Dexy
OSSBarCamp Talk on Dexyananelson
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
Ken Collins
 
Intro To Spring Python
Intro To Spring PythonIntro To Spring Python
Intro To Spring Python
gturnquist
 
Python tools for testing web services over HTTP
Python tools for testing web services over HTTPPython tools for testing web services over HTTP
Python tools for testing web services over HTTP
Mykhailo Kolesnyk
 
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0Thomas Conté
 
session_01_react_.pptx
session_01_react_.pptxsession_01_react_.pptx
session_01_react_.pptx
AyaBenkabbour1
 
Rails 101
Rails 101Rails 101
Core .NET Framework 4.0 Enhancements
Core .NET Framework 4.0 EnhancementsCore .NET Framework 4.0 Enhancements
Core .NET Framework 4.0 EnhancementsRobert MacLean
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#Talbott Crowell
 
Building Services With gRPC, Docker and Go
Building Services With gRPC, Docker and GoBuilding Services With gRPC, Docker and Go
Building Services With gRPC, Docker and Go
Martin Kess
 
BreizhCamp 2013 - Pimp my backend
BreizhCamp 2013 - Pimp my backendBreizhCamp 2013 - Pimp my backend
BreizhCamp 2013 - Pimp my backend
Horacio Gonzalez
 
MWLUG 2014: ATLUG Comes To You
MWLUG 2014: ATLUG Comes To YouMWLUG 2014: ATLUG Comes To You
MWLUG 2014: ATLUG Comes To You
Peter Presnell
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
Haehnchen
 
Rails Girls - Introduction to HTML & CSS
Rails Girls - Introduction to HTML & CSSRails Girls - Introduction to HTML & CSS
Rails Girls - Introduction to HTML & CSS
Timo Herttua
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Jonathan Klein
 
HTML literals, the JSX of the platform
HTML literals, the JSX of the platformHTML literals, the JSX of the platform
HTML literals, the JSX of the platform
Kenneth Rohde Christiansen
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
Bob German
 
Creating a Single View Part 2: Loading Disparate Source Data and Creating a S...
Creating a Single View Part 2: Loading Disparate Source Data and Creating a S...Creating a Single View Part 2: Loading Disparate Source Data and Creating a S...
Creating a Single View Part 2: Loading Disparate Source Data and Creating a S...MongoDB
 
Modern javascript localization with c-3po and the good old gettext
Modern javascript localization with c-3po and the good old gettextModern javascript localization with c-3po and the good old gettext
Modern javascript localization with c-3po and the good old gettext
Alexander Mostovenko
 
2018 03 20_biological_databases_part3
2018 03 20_biological_databases_part32018 03 20_biological_databases_part3
2018 03 20_biological_databases_part3
Prof. Wim Van Criekinge
 

Similar to The future will be Realtime & Collaborative (20)

OSSBarCamp Talk on Dexy
OSSBarCamp Talk on DexyOSSBarCamp Talk on Dexy
OSSBarCamp Talk on Dexy
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Intro To Spring Python
Intro To Spring PythonIntro To Spring Python
Intro To Spring Python
 
Python tools for testing web services over HTTP
Python tools for testing web services over HTTPPython tools for testing web services over HTTP
Python tools for testing web services over HTTP
 
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
 
session_01_react_.pptx
session_01_react_.pptxsession_01_react_.pptx
session_01_react_.pptx
 
Rails 101
Rails 101Rails 101
Rails 101
 
Core .NET Framework 4.0 Enhancements
Core .NET Framework 4.0 EnhancementsCore .NET Framework 4.0 Enhancements
Core .NET Framework 4.0 Enhancements
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#
 
Building Services With gRPC, Docker and Go
Building Services With gRPC, Docker and GoBuilding Services With gRPC, Docker and Go
Building Services With gRPC, Docker and Go
 
BreizhCamp 2013 - Pimp my backend
BreizhCamp 2013 - Pimp my backendBreizhCamp 2013 - Pimp my backend
BreizhCamp 2013 - Pimp my backend
 
MWLUG 2014: ATLUG Comes To You
MWLUG 2014: ATLUG Comes To YouMWLUG 2014: ATLUG Comes To You
MWLUG 2014: ATLUG Comes To You
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 
Rails Girls - Introduction to HTML & CSS
Rails Girls - Introduction to HTML & CSSRails Girls - Introduction to HTML & CSS
Rails Girls - Introduction to HTML & CSS
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
 
HTML literals, the JSX of the platform
HTML literals, the JSX of the platformHTML literals, the JSX of the platform
HTML literals, the JSX of the platform
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
 
Creating a Single View Part 2: Loading Disparate Source Data and Creating a S...
Creating a Single View Part 2: Loading Disparate Source Data and Creating a S...Creating a Single View Part 2: Loading Disparate Source Data and Creating a S...
Creating a Single View Part 2: Loading Disparate Source Data and Creating a S...
 
Modern javascript localization with c-3po and the good old gettext
Modern javascript localization with c-3po and the good old gettextModern javascript localization with c-3po and the good old gettext
Modern javascript localization with c-3po and the good old gettext
 
2018 03 20_biological_databases_part3
2018 03 20_biological_databases_part32018 03 20_biological_databases_part3
2018 03 20_biological_databases_part3
 

Recently uploaded

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
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
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
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
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
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
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
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
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
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
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
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
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
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 

Recently uploaded (20)

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
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
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
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
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
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
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
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
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...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
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
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 

The future will be Realtime & Collaborative