SlideShare a Scribd company logo
SimpleSoftwareisHard
TalesfromtheTrenches
BertrandDelacrétaz

@bdelacretaz, grep.codeconsult.ch
PrincipalScientist,CQ/AEMR&Dgroup,AdobeBasel

ApacheSoftwareFoundationMemberandDirector
November2014

slidesrevision2014-11-14
lookingforanswers?
wrongplace!
I’mmoreaboutquestionstoday…
picture: dhester on morguefile.com
couldwe
invent
this
today?
beautifulsimplicity
assimpleaspossible,butnotsimpler
(tobeprecise,it’saVictorinoxskipperknife)
a

storyof
simplicity
(twostories,actually)
s = UDP socket
While(s is open) {
Wait for packet
Packet matches our filter?
If not -> continue
If yes:
Compute storage path from T
Append packet to storage file
}
26linesofcode
3monthsof
work
(happilychuggingalongsince1999)
recorddigital
audio

continuously
cannotlosemore

than15seconds
(remember-1999)
options?
BigCo#1 BigCo#2
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
picture:RoganJoshonmorguefile.com
N-dimensional
picture:pschubertonmorguefile.com
picture:RoganJoshonmorguefile.com
picture:andykonmorguefile.com
5127prototypes
overnight?no-8WIREDApril2011
picture:RoganJoshonmorguefile.com
N-dimensional
picture:pschubertonmorguefile.com
that’syouroptions…
BigCo#1 BigCo#2
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
simpler?
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
yes!
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
RTP

packet

recorder
26linesofcode

3months
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
RTP

packet

recorder
s = UDP socket
While(s is open) {
Wait for packet
Packet matches our filter?
If not -> continue
If yes:
Compute storage path from T
Append packet to storage file
}
ifit’snotsimpleenoughyet
donotgive
up
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
RTP

packet

recorder
storage?
RTP

packet

recorder
storage?
continuousstorage
seekbytimestamp
variablespeedreplay
100%robust
enterpriseDB!
picture:jusbenonmorguefile.com
picture:RoganJoshonmorguefile.com
picture:pschubertonmorguefile.com
N-dimensional
RTP

packet

recorder
2014/06/25/1402.rtp
chronologicalhierarchyof

timestamp-addressedfiles

stores15secondsofRTPpackets
unbreakable
storage!
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
RTP

packet

recorder
storage
2014/06/25/1402.rtp
continuousrecording
continuousstorage
seekbytimestamp
variablespeedreplay
s = UDP socket
While(s is open) {
Wait for packet
Packet matches our filter?
If not -> continue
If yes:
Compute storage path from T
Append packet to storage file
}
beautifulsimplicity
assimpleaspossible,butnotsimpler
Apowerfulmetaphor
cat sortgrep awk stdout
stderr
pipelinemetaphor
simplemodules
simpleassemblymodel
transparent,robust,powerful
Asimpleuniverse
“TherearejustthreeabstractionsinApacheStorm:
spouts,bolts,andtopologies.”
PicturefromApacheStorm:distributedstreamprocessing
Asimplemodel
picturefromhttp://de.wikipedia.org/wiki/MapReduce
SlingHealthChecks
donotreinvent
themetaphor!whatdoesmyproblemlooklike?
ok,but
high-end
CMS?
HTTPrequest
C
C
C
C
C
CC
C
C
processor
dispatcher
it’s

justa

Web

server…
HTTP0.9

(startsimple)
GET/hello.txt
<html>hello!</html>
client server
HTTPrequests
C
C
C
C
C
CC
C
C
dispatcher
evenifit

getsbusy…
processor
processor
processor
processor
processor
processor
processor
processor
processor
inspiredbynature…
multipleworkerswith
specificroles
picture:kakiskyonmorguefile.com
so,
how?
putthebar
high
donotacceptextracomplexity
investinsimplicity
canbeexpensive…andworthit
chasetheright
metapho
r
“anetworkpacketsrecorderandplayer”
simplicityisa
process
youusuallyknowwhenyou’rethere
beautifulsimplicity
assimpleaspossible,butnotsimpler
whatarethe
enablers?
modularitenablers
open

developmenenablers
JCR’sbigtreewithlowcoupling

promotes“local”simplictyenablers
ApacheSlingenablers
notsimpleenough?
don’tgiveup!
BTW...wearehiring!


More Related Content

PDF
It's just a Web server - a plea for simplicity
PDF
Funky file formats - 31c3
PPTX
Why Rust? by Edd Barrett (codeHarbour December 2019)
PDF
Python in 15 minutes
PDF
File Polyglottery; or This Proof of Concept is Also a Picture of Cats
PDF
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
PDF
Caring for file formats
PDF
Python introduction
It's just a Web server - a plea for simplicity
Funky file formats - 31c3
Why Rust? by Edd Barrett (codeHarbour December 2019)
Python in 15 minutes
File Polyglottery; or This Proof of Concept is Also a Picture of Cats
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
Caring for file formats
Python introduction

Similar to Simple software is hard...don't give up! (14)

PDF
Infrastructure as code might be literally impossible part 2
PDF
Luigi Presentation at OSCON 2013
PDF
Schizophrenic files v2
PDF
DockerCon14 The Road Ahead by Solomon
PDF
Grandpas Dream
PDF
Killer Bugs From Outer Space
PDF
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
PDF
What is Python?
PPT
Python @ PiTech - March 2009
PDF
The challenges of file formats
PDF
#OSSPARIS19 - Computer Vision framework for GeoSpatial Imagery: RoboSat.pink ...
PDF
Language Sleuthing HOWTO with NLTK
ODP
Internazionalizza le tue applicazioni
PDF
Rust: Reach Further (from QCon Sao Paolo 2018)
Infrastructure as code might be literally impossible part 2
Luigi Presentation at OSCON 2013
Schizophrenic files v2
DockerCon14 The Road Ahead by Solomon
Grandpas Dream
Killer Bugs From Outer Space
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
What is Python?
Python @ PiTech - March 2009
The challenges of file formats
#OSSPARIS19 - Computer Vision framework for GeoSpatial Imagery: RoboSat.pink ...
Language Sleuthing HOWTO with NLTK
Internazionalizza le tue applicazioni
Rust: Reach Further (from QCon Sao Paolo 2018)
Ad

More from Bertrand Delacretaz (20)

PDF
VanillaJS & the Web Platform, a match made in heaven?
PDF
Surviving large online communities with conciseness and clarity
PDF
Repoinit: a mini-language for content repository initialization
PDF
The Moving House Model, adhocracy and remote collaboration
PDF
GraphQL in Apache Sling - but isn't it the opposite of REST?
PDF
Open Source Changes the World!
PDF
How to convince your left brain (or manager) to follow the Open Source path t...
PDF
L'Open Source change le Monde - BlendWebMix 2019
PDF
Shared Neurons - the Secret Sauce of Open Source communities?
PDF
Sling and Serverless, Best Friends Forever?
PDF
Serverless - introduction et perspectives concrètes
PDF
State of the Feather - ApacheCon North America 2018
PDF
Karate, the black belt of HTTP API testing?
PDF
Open Source at Scale: the Apache Software Foundation (2018)
PDF
They don't understand me! Tales from the multi-cultural trenches
PDF
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
PDF
Project and Community Services the Apache Way
PDF
La Fondation Apache - keynote au Paris Open Source Summit 2017
PDF
Asynchronous Decision Making - FOSS Backstage 2017
PDF
Building an Apache Sling Rendering Farm
VanillaJS & the Web Platform, a match made in heaven?
Surviving large online communities with conciseness and clarity
Repoinit: a mini-language for content repository initialization
The Moving House Model, adhocracy and remote collaboration
GraphQL in Apache Sling - but isn't it the opposite of REST?
Open Source Changes the World!
How to convince your left brain (or manager) to follow the Open Source path t...
L'Open Source change le Monde - BlendWebMix 2019
Shared Neurons - the Secret Sauce of Open Source communities?
Sling and Serverless, Best Friends Forever?
Serverless - introduction et perspectives concrètes
State of the Feather - ApacheCon North America 2018
Karate, the black belt of HTTP API testing?
Open Source at Scale: the Apache Software Foundation (2018)
They don't understand me! Tales from the multi-cultural trenches
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Project and Community Services the Apache Way
La Fondation Apache - keynote au Paris Open Source Summit 2017
Asynchronous Decision Making - FOSS Backstage 2017
Building an Apache Sling Rendering Farm
Ad

Recently uploaded (20)

PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
AutoCAD Professional Crack 2025 With License Key
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PDF
Design an Analysis of Algorithms I-SECS-1021-03
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Complete Guide to Website Development in Malaysia for SMEs
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
Advanced SystemCare Ultimate Crack + Portable (2025)
AutoCAD Professional Crack 2025 With License Key
Reimagine Home Health with the Power of Agentic AI​
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
Design an Analysis of Algorithms I-SECS-1021-03
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
Monitoring Stack: Grafana, Loki & Promtail
Salesforce Agentforce AI Implementation.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Wondershare Filmora 15 Crack With Activation Key [2025
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
iTop VPN Crack Latest Version Full Key 2025
Digital Systems & Binary Numbers (comprehensive )
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Complete Guide to Website Development in Malaysia for SMEs
17 Powerful Integrations Your Next-Gen MLM Software Needs

Simple software is hard...don't give up!