SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
The state of curl 2020The state of curl 2020
Growth and sizeGrowth and size
Quality and testingQuality and testing
CommitsCommits
Newcomers and oldiesNewcomers and oldies
ReleasesReleases
ActivityActivity
VulnerabilitiesVulnerabilities
Users' viewUsers' view
MoneyMoney
The last 12 monthsThe last 12 months
Less GoodLess Good
My roleMy role
FutureFuture
@bagder@bagder
@bagder@bagder
Growth and size
@bagder@bagder@bagder@bagder
@bagder@bagder
Is 165K LOC a lot?
@bagder@bagder
25 transfer protocols
libcurl
TCP
filesystem
UDP
TLSSSH
QUIC
HTTP
HTTPS
TFTP
FILE
FTP
IMAP
SMTP
POP3
GOPHER
TELNET
DICT
RTSP
RTMP
SMB
LDAP
SFTP
SCP
FTPS
IMAPS
SMTPS
POP3S
RTMPS
SMBS
LDAPS
@bagder@bagder
MQTT
@bagder@bagder
c
32 third party dependencies
I/O layer
libcurl
URL parser libidn2winidn
HTTPHTTPS
OpenSSL
Mesalink
gskit
mbedTLS
wolfSSL
Schannel
SecureTransport
GnuTLS
NSS
boringssl
libressl
AmiSSL
SFTP SCP LDAP
WinLDAP
OpenLDAP
RTMP
librtmp
Name resolver c-ares
compression
libz brotli
cookies
libpsl
IMAP SMTP POP3
HTTP/2
nghttp2
authentication
winsspi Heimdal MIT kerberos
HTTP/3
quiche
ngtcp2
HTTP/1
SSH
wolfSSH
libssh2
libssh
@bagder@bagder
BearSSL
nghttp3
@bagder@bagder
72 operating systems
libcurl
Linux FreeBSDmacOSWindows MS DOSSCO Unix z/OS WebOSipadOS
NetBSD Tru64VMSOpenBSD HaikuRISC OS UNICOS Tizen
PlayStation
Portable
Cell OS IRIXucLinuxHP-UX OS/2ChromeOS MPE/iX NCR MP-RASReactOS
OS/400 AmigaOSSymbianSolaris NetwareHurd SINIX-Z Syllable OSSunOS
Ultrix eCOSBeOSTPF QNXPlan 9 NonStop OS tvOSLineage OS
Android IntegrityiOS MINIXFreeRTOS OS21 CygwinMbed Blackberry 10
UnixWare Mac OS 9AIXIllumos Windows CESailfish OS vxWorks
Blackberry
Tablet OS
@bagder@bagder
DragonFly BSD SerenityFuchsia
Nintendo
Switch
RedoxGenode Hardened BSD FreeDOSGarmin OS
NuttX
@bagder@bagder
20 CPU architectures
libcurl
@bagder@bagder
x86 MIPSARMPowerPC
SPARC POWERm68k
s390 HP-PASH4Nios
RISC-V
OpenRISC
ARC
Cell
Itanium VAXMicroBlazeAlpha Xtensa
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder
Quality and testing
@bagder@bagder
C!
Efficient and portable!
Some security problems could be avoided using something
else
Lots of “reach” would then also be avoided
Mitigations: readable code, reviews, tests, fuzzing, static code
analyzing
@bagder@bagder
Coverity on curl – fixed defects
@bagder@bagder
OSS-Fuzz
Basically flatlined the last year – nothing new is reported.
CI-Fuzz runs a little fuzzing on every commit / PR
We need more entry points to get more out of fuzzers
@bagder@bagder
Test cases over time
@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder
Test coverage
Good to know, hard to measure. We’ve given up for now
Was 72 - 78% on flaky coveralls.io
For a single TLS – SSH – resolver – config setup!
Some tests too slow for coverage runs in the cloud (torture)
Some code paths still hard to test with existing test suite
@bagder@bagder
Commits, frequency and whom
@bagder@bagder
Daniel’s share of curl commits
@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder
Newcomers and oldies
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder
@bagder@bagder
@bagder@bagder
Top-11 commit authors since 1 Jan 2017
Viktor Szakats
Johannes Schindelin
Michael Kaufmann
Marc Hörsken
Dan Fandrich
Patrick Monnerat
Daniel Gustafsson
Steve Holme
Jay Satiro
Marcel Raad
Daniel Stenberg
0 10 20 30 40 50 60
@bagder@bagder
Releases
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder
Activity
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder
Vulnerabilities
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder@bagder@bagder
@bagder@bagder
Bug bounty submissions
@bagder@bagder
Bug bounty stats
Total Submissions: 112
Reports Rewarded: 6
Total Bounties: $1,400
Average Bounty: $233
Average Response Time: an hour
Average Triage Time: a day
Average Bounty Time: 10 days
Average Resolution Time: 19 days
@bagder@bagder
Lessons from past vulnerabilities
Integer overflows are tricky things. Mitigations: saferealloc,
limited string lengths. More: dynbuf (PR #5300)
Flaws linger in the code a long time until detected
Fuzzing is king
Fixing the flaws is usually straight-forward
Raising the bounties
@bagder@bagder
The users’ view
@bagder@bagder
Annual user survey
What is used, what is ignored
What is good, what is bad
What should be added, what should be removed
How are we doing
@bagder@bagder
User survey 2020
Mid May time frame
Very much interested in feedback on where to take it and
what to ask for
Received 732 responses 2019 (up 9%)
https://daniel.haxx.se/media/curl-user-poll-2019-analysis.pdf
@bagder@bagder
Web site traffic 2020 (April 19 to April 20)
Fastly makes our lives easier
2.1 million requests/day (up from 1.5 million)
53.1 TB the last 12 months (up 27% from 41.6 last period)
Fast web site, close to most users
No logs, no tracking, very little stats
Did I mention Fastly is good?
@bagder@bagder
Google trends 5-year span, worldwide
Includes wget and OpenSSL to provide references with similar projects
Wget OpenSSL curl
@bagder@bagder
CII Best Practices
https://bestpractices.coreinfrastructure.org/en/projects/63
100% passing
96% Silver
26% Gold
“SHOULD have a legal mechanism
where all developers of non-trivial
amounts of project software assert
that they are legally authorized to
make these contributions”
Unchanged status
since last year
@bagder@bagder
Everyone uses curl
Apps: Youtube, Instagram, Skype, Spotify, ...
OS: iOS, macOS, Windows, Linux, ChromeOS, AOSP, ...
Cars: 22 top brands. Mercedes, BMW, Toyota, Nissan, Volkswagen, …
Game consoles: PS4, Nintendo Switch, ...
Games: Fortnite, Red Dead Redemption 2, Spider Man, …
Estimate: 10 billion installationsEstimate: 10 billion installations
@bagder@bagder
Money
@bagder@bagder
Finances and sponsors
curl is not a legal entity
Open Collective holds our funds
Daniel is employed by wolfSSL
wolfSSL offers commericial curl
services
@bagder@bagder
Expense sponsors
Server hosting: Haxx
Server bandwidth: Fastly
CI services: Teamviewer,
Travis, Azure Pipelines
@bagder@bagder
Gold sponsor
@bagder@bagder
Silver sponsors
@bagder@bagder
Major single-shot donors 2019-2020
Uffizzicloud: 1,300 USD
Comcast: 5,000 USD
Indeed: 10,000 USD
Backblaze: 15,600 USD
@bagder@bagder
Many smaller donors
189 individuals and 85
organizations have contributed
(April 28, 2020)
@bagder@bagder
Balance
Balance as of April 28, 2020:
$54,147.07 USD
@bagder@bagder
Expenses without direct sponsors
Bug bounty – started carefully, will increase
curl up – wanted to sponsor travel/lodging this year
Stickers – getting and shipping merchandise
More?
@bagder@bagder
Done the last 12 months
@bagder@bagder
850 bug-fixes
25 changes
three CVEs
@bagder@bagder
Deprecated Removed
CURLOPT_DNS_USE_GLOBAL_CACHE
HTTP Pipelining
PolarSSL
@bagder@bagder
libcurl options
CURLOPT_MAXAGE_CONN
CURLINFO_RETRY_AFTER
CURLOPT_SASL_AUTHZID
CURLMOPT_MAX_CONCURRENT_STREAMS
CURLOPT_MAIL_RCPT_ALLLOWFAILS
CURLSSLOPT_NO_PARTIALCHAIN
@bagder@bagder
News in libcurl
HTTP3 support with two backends
curl_multi_poll: waits more
curl_multi_wakeup(): wake up libcurl
BearSSL: new TLS backend
wolfSSH: new SSH backend
tiny-curl
MQTT
@bagder@bagder
Improved in libcurl
CURLU_NO_AUTHORITY allows empty authority/host part
XFERINFOFUNCTION: supports
CURL_PROGRESSFUNC_CONTINUE
non-blocking SOCKS connects
@bagder@bagder
Command line tool
parallel transfers with -Z
--parallel-max and --parallel-immediate
--no-progress-meter
--etag-compare and --etag-save
--mail-rcpt-allowfails
%{json} in --write-out
@bagder@bagder
Test suite
better Windows support
SOCKS server
dynamic server ports
preprocessed test cases
random skip for torture testing
More and better CI
@bagder@bagder
Other news
web site: Reporting documentation bugs in curl got
easier, dashboard, curl/stats
The hackerone bug bounty
“libcrurl” - the Google-announced “competitor” in June
2019 (then abandoned again)
Mr Robot curls in Dec 2019
@bagder@bagder
Screenshot from
Mr Robot season 4, episode 8
@bagder@bagder
@bagder@bagder
Less good (compared with 2019)
Flaky tests/CI stillstill
Slow CI tests betterbetter
Vulnerabilities are still reported much bettermuch better
Still regressions, but less frequently? stillstill
Could use more people who stick around alwaysalways
@bagder@bagder
@bagder@bagder
Everything curl
71K words, 10K lines
Only web + PDF now
“95.3% complete”
https://ec.haxx.se/
@bagder@bagder
@bagder@bagder
My (Daniel’s) role
@bagder@bagder
I’m having fun
I love being able to work full-time with “my baby”
I intend to continue driving and pushing forward. I can’t promise I’ll do this
forever, but I can’t see me “stepping down” anytime soon
I aim to keep doing curl full-time; meaning charging companies for
support, features, help, anything – for wolfSSL
Me as an individual, the open source project and the company wolfSLL –
three separate components with (hopefully) aligned goals.
I trust someone will tell me if I fail to keep things apart appropriately.
@bagder@bagder
What I think I do here
I help keeping the vision – what curl and libcurl should do
I do curl development and fix problems – for fun and for
customers
I support users and developers experiencing problems or
bugs.
I review code and suggestions
I’m guiding the architecture of existing and future features
I document how things work and should work internally. If I
get run over by a bus tomorrow, everything needed to know
about curl should already be put in files.
I try to inform project members and “the outside world”
about news and things we work on. To drive interest, get
feedback and trick more people into helping out
I aim to master the protocols curl works with
I admin and host the web site, mailing list and random
services
I often serve as a “public face” for the project. It is
sometimes said to be “mine”
I talk about and “market” the project in many places and
ways
FutureFuture
@bagder@bagder
@bagder@bagder
Planning
I can’t tell what “we” will do
I have some ideas about what to do next
Things change all time time
Tell us what you want!
@bagder@bagder
Version 8
Release every 56 days
7.71.0 is coming in June 2020
A bump in every release gives us 29 * 56 = 1624 days until
version 7.100
I want to avoid reaching 7.100 due to confusions it’ll create
1624 days == 4 years and 6 months == December 2024
Evolutionary, not revolutionary?
@bagder@bagder
TODO for libcurl?
I have a personal list of things I want to work on
I hope to do more curl work for hire
What do you want to see?
@bagder@bagder
Talk to us!
I’m @bagder on Twitter
We’re in #curl on Freenode IRC
File bug reports:
https://github.com/curl/curl/issues
Submit pull-requests:
https://github.com/curl/curl/pulls
Mailing lists:
curl-users for command line tool
questions and support
curl-library for libcurl users,
development, debugging,
architecture, new stuff.
https://curl.haxx.se/mail/
@bagder@bagder
Finally
I hope we’ll have a “real” curl up again in 2021 –
somewhere in Europe

Weitere ähnliche Inhalte

Was ist angesagt?

Http3 fullstackfest-2019
Http3 fullstackfest-2019Http3 fullstackfest-2019
Http3 fullstackfest-2019Daniel Stenberg
 
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 editionAlex Borysov
 
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...Vladimir Dejanovic
 
Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018Hank Preston
 
Useful Python Libraries for Network Engineers - PyOhio 2018
Useful Python Libraries for Network Engineers - PyOhio 2018Useful Python Libraries for Network Engineers - PyOhio 2018
Useful Python Libraries for Network Engineers - PyOhio 2018Hank Preston
 
Node.js Security Done Right - Tips and Tricks They Won't Teach You In School
Node.js Security Done Right - Tips and Tricks They Won't Teach You In SchoolNode.js Security Done Right - Tips and Tricks They Won't Teach You In School
Node.js Security Done Right - Tips and Tricks They Won't Teach You In SchoolLiran Tal
 
Re-thinking Performance tuning with HTTP2
Re-thinking Performance tuning with HTTP2Re-thinking Performance tuning with HTTP2
Re-thinking Performance tuning with HTTP2Vinci Rufus
 
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]Vladimir Dejanovic
 
AusNOG 2015 - Why you should read RFCs and Internet Drafts (and what you need...
AusNOG 2015 - Why you should read RFCs and Internet Drafts (and what you need...AusNOG 2015 - Why you should read RFCs and Internet Drafts (and what you need...
AusNOG 2015 - Why you should read RFCs and Internet Drafts (and what you need...Mark Smith
 
Open Canary - novahackers
Open Canary - novahackersOpen Canary - novahackers
Open Canary - novahackersChris Gates
 
Four years of breaking HTTPS with BGP hijacking
Four years of breaking HTTPS with BGP hijackingFour years of breaking HTTPS with BGP hijacking
Four years of breaking HTTPS with BGP hijackingAPNIC
 
2018 IterateConf Deconstructing and Evolving REST Security
2018 IterateConf Deconstructing and Evolving REST Security2018 IterateConf Deconstructing and Evolving REST Security
2018 IterateConf Deconstructing and Evolving REST SecurityDavid Blevins
 
Kubernetes: Learning from Zero to Production
Kubernetes: Learning from Zero to ProductionKubernetes: Learning from Zero to Production
Kubernetes: Learning from Zero to ProductionRosemary Wang
 
Understanding gRPC Authentication Methods
Understanding gRPC Authentication MethodsUnderstanding gRPC Authentication Methods
Understanding gRPC Authentication MethodsAnthony Chow
 

Was ist angesagt? (20)

HTTP/3 in curl
HTTP/3 in curlHTTP/3 in curl
HTTP/3 in curl
 
curl better
curl bettercurl better
curl better
 
HTTP/3 for everyone
HTTP/3 for everyoneHTTP/3 for everyone
HTTP/3 for everyone
 
Http3 fullstackfest-2019
Http3 fullstackfest-2019Http3 fullstackfest-2019
Http3 fullstackfest-2019
 
Just curl it!
Just curl it!Just curl it!
Just curl it!
 
DNS over HTTPS
DNS over HTTPSDNS over HTTPS
DNS over HTTPS
 
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
 
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
 
Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018
 
Useful Python Libraries for Network Engineers - PyOhio 2018
Useful Python Libraries for Network Engineers - PyOhio 2018Useful Python Libraries for Network Engineers - PyOhio 2018
Useful Python Libraries for Network Engineers - PyOhio 2018
 
Node.js Security Done Right - Tips and Tricks They Won't Teach You In School
Node.js Security Done Right - Tips and Tricks They Won't Teach You In SchoolNode.js Security Done Right - Tips and Tricks They Won't Teach You In School
Node.js Security Done Right - Tips and Tricks They Won't Teach You In School
 
Re-thinking Performance tuning with HTTP2
Re-thinking Performance tuning with HTTP2Re-thinking Performance tuning with HTTP2
Re-thinking Performance tuning with HTTP2
 
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
 
AusNOG 2015 - Why you should read RFCs and Internet Drafts (and what you need...
AusNOG 2015 - Why you should read RFCs and Internet Drafts (and what you need...AusNOG 2015 - Why you should read RFCs and Internet Drafts (and what you need...
AusNOG 2015 - Why you should read RFCs and Internet Drafts (and what you need...
 
Open Canary - novahackers
Open Canary - novahackersOpen Canary - novahackers
Open Canary - novahackers
 
Four years of breaking HTTPS with BGP hijacking
Four years of breaking HTTPS with BGP hijackingFour years of breaking HTTPS with BGP hijacking
Four years of breaking HTTPS with BGP hijacking
 
JavaLand gRPC vs REST API
JavaLand gRPC vs REST APIJavaLand gRPC vs REST API
JavaLand gRPC vs REST API
 
2018 IterateConf Deconstructing and Evolving REST Security
2018 IterateConf Deconstructing and Evolving REST Security2018 IterateConf Deconstructing and Evolving REST Security
2018 IterateConf Deconstructing and Evolving REST Security
 
Kubernetes: Learning from Zero to Production
Kubernetes: Learning from Zero to ProductionKubernetes: Learning from Zero to Production
Kubernetes: Learning from Zero to Production
 
Understanding gRPC Authentication Methods
Understanding gRPC Authentication MethodsUnderstanding gRPC Authentication Methods
Understanding gRPC Authentication Methods
 

Ähnlich wie The state of curl 2020

Let me tell you about curl
Let me tell you about curlLet me tell you about curl
Let me tell you about curlDaniel Stenberg
 
Artificial Intelligence (AI) DAOs (decentralized autonomous organizations) - ...
Artificial Intelligence (AI) DAOs (decentralized autonomous organizations) - ...Artificial Intelligence (AI) DAOs (decentralized autonomous organizations) - ...
Artificial Intelligence (AI) DAOs (decentralized autonomous organizations) - ...BigchainDB
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Christian Heilmann
 
MMB 3D Printing Overview
MMB 3D Printing OverviewMMB 3D Printing Overview
MMB 3D Printing OverviewAlan Duda
 
You know what's cool? Running on a billion devices
You know what's cool? Running on a billion devicesYou know what's cool? Running on a billion devices
You know what's cool? Running on a billion devicesDaniel Stenberg
 
Data Collection without Privacy Side Effects
Data Collection without Privacy Side EffectsData Collection without Privacy Side Effects
Data Collection without Privacy Side EffectsJosep M. Pujol
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptChristian Heilmann
 
Where Do We Go From Here?
Where Do We Go From Here?Where Do We Go From Here?
Where Do We Go From Here?Matthew Broberg
 
Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...
Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...
Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...Thiago de Faria
 
Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...
Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...
Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...Codemotion
 
Why your project's brand is more important than the code - SCRIPT
Why your project's brand is more important than the code - SCRIPTWhy your project's brand is more important than the code - SCRIPT
Why your project's brand is more important than the code - SCRIPTShane Curcuru
 
T3CON Munich: Apache Solr for TYPO3: How Continuous Cooperative Innovation ca...
T3CON Munich: Apache Solr for TYPO3: How Continuous Cooperative Innovation ca...T3CON Munich: Apache Solr for TYPO3: How Continuous Cooperative Innovation ca...
T3CON Munich: Apache Solr for TYPO3: How Continuous Cooperative Innovation ca...timohund
 
The UX of Mixed Reality
The UX of Mixed RealityThe UX of Mixed Reality
The UX of Mixed RealityAlex Young
 
common mistakes when using libcurl
common mistakes when using libcurlcommon mistakes when using libcurl
common mistakes when using libcurlDaniel Stenberg
 
Coding on the Shoulders of Giants
Coding on the Shoulders of GiantsCoding on the Shoulders of Giants
Coding on the Shoulders of GiantsMatt Biddulph
 
Everybody runs this code all the time
Everybody runs this code all the timeEverybody runs this code all the time
Everybody runs this code all the timeDaniel Stenberg
 

Ähnlich wie The state of curl 2020 (20)

The state of curl 2022
The state of curl 2022The state of curl 2022
The state of curl 2022
 
Let me tell you about curl
Let me tell you about curlLet me tell you about curl
Let me tell you about curl
 
Artificial Intelligence (AI) DAOs (decentralized autonomous organizations) - ...
Artificial Intelligence (AI) DAOs (decentralized autonomous organizations) - ...Artificial Intelligence (AI) DAOs (decentralized autonomous organizations) - ...
Artificial Intelligence (AI) DAOs (decentralized autonomous organizations) - ...
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
JavaScript isn't evil.
JavaScript isn't evil.JavaScript isn't evil.
JavaScript isn't evil.
 
MMB 3D Printing Overview
MMB 3D Printing OverviewMMB 3D Printing Overview
MMB 3D Printing Overview
 
You know what's cool? Running on a billion devices
You know what's cool? Running on a billion devicesYou know what's cool? Running on a billion devices
You know what's cool? Running on a billion devices
 
Data Collection without Privacy Side Effects
Data Collection without Privacy Side EffectsData Collection without Privacy Side Effects
Data Collection without Privacy Side Effects
 
Ditlev bredahl on app
Ditlev bredahl on appDitlev bredahl on app
Ditlev bredahl on app
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScript
 
Where Do We Go From Here?
Where Do We Go From Here?Where Do We Go From Here?
Where Do We Go From Here?
 
Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...
Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...
Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...
 
Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...
Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...
Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...
 
Why your project's brand is more important than the code - SCRIPT
Why your project's brand is more important than the code - SCRIPTWhy your project's brand is more important than the code - SCRIPT
Why your project's brand is more important than the code - SCRIPT
 
T3CON Munich: Apache Solr for TYPO3: How Continuous Cooperative Innovation ca...
T3CON Munich: Apache Solr for TYPO3: How Continuous Cooperative Innovation ca...T3CON Munich: Apache Solr for TYPO3: How Continuous Cooperative Innovation ca...
T3CON Munich: Apache Solr for TYPO3: How Continuous Cooperative Innovation ca...
 
The UX of Mixed Reality
The UX of Mixed RealityThe UX of Mixed Reality
The UX of Mixed Reality
 
common mistakes when using libcurl
common mistakes when using libcurlcommon mistakes when using libcurl
common mistakes when using libcurl
 
Coding on the Shoulders of Giants
Coding on the Shoulders of GiantsCoding on the Shoulders of Giants
Coding on the Shoulders of Giants
 
Keynote 2016
Keynote 2016Keynote 2016
Keynote 2016
 
Everybody runs this code all the time
Everybody runs this code all the timeEverybody runs this code all the time
Everybody runs this code all the time
 

Mehr von Daniel Stenberg

mastering libcurl part 2
mastering libcurl part 2mastering libcurl part 2
mastering libcurl part 2Daniel Stenberg
 
mastering libcurl part 1
mastering libcurl part 1mastering libcurl part 1
mastering libcurl part 1Daniel Stenberg
 
curl - openfourm europe.pdf
curl - openfourm europe.pdfcurl - openfourm europe.pdf
curl - openfourm europe.pdfDaniel Stenberg
 
curl experiments - curl up 2022
curl experiments - curl up 2022curl experiments - curl up 2022
curl experiments - curl up 2022Daniel Stenberg
 
curl security - curl up 2022
curl security - curl up 2022curl security - curl up 2022
curl security - curl up 2022Daniel Stenberg
 
HTTP/3 in curl - curl up 2022
HTTP/3 in curl - curl up 2022HTTP/3 in curl - curl up 2022
HTTP/3 in curl - curl up 2022Daniel Stenberg
 
HTTP/3, QUIC and streaming
HTTP/3, QUIC and streamingHTTP/3, QUIC and streaming
HTTP/3, QUIC and streamingDaniel Stenberg
 
HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!Daniel Stenberg
 
Writing safe and secure code
Writing safe and secure codeWriting safe and secure code
Writing safe and secure codeDaniel Stenberg
 
Säker kod (secure code)
Säker kod (secure code)Säker kod (secure code)
Säker kod (secure code)Daniel Stenberg
 

Mehr von Daniel Stenberg (12)

mastering libcurl part 2
mastering libcurl part 2mastering libcurl part 2
mastering libcurl part 2
 
mastering libcurl part 1
mastering libcurl part 1mastering libcurl part 1
mastering libcurl part 1
 
curl - openfourm europe.pdf
curl - openfourm europe.pdfcurl - openfourm europe.pdf
curl - openfourm europe.pdf
 
curl experiments - curl up 2022
curl experiments - curl up 2022curl experiments - curl up 2022
curl experiments - curl up 2022
 
curl security - curl up 2022
curl security - curl up 2022curl security - curl up 2022
curl security - curl up 2022
 
HTTP/3 in curl - curl up 2022
HTTP/3 in curl - curl up 2022HTTP/3 in curl - curl up 2022
HTTP/3 in curl - curl up 2022
 
HTTP/3, QUIC and streaming
HTTP/3, QUIC and streamingHTTP/3, QUIC and streaming
HTTP/3, QUIC and streaming
 
HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!
 
Writing safe and secure code
Writing safe and secure codeWriting safe and secure code
Writing safe and secure code
 
The state of curl 2019
The state of curl 2019The state of curl 2019
The state of curl 2019
 
Säker kod (secure code)
Säker kod (secure code)Säker kod (secure code)
Säker kod (secure code)
 
HTTP/3
HTTP/3HTTP/3
HTTP/3
 

Kürzlich hochgeladen

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 

Kürzlich hochgeladen (20)

Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 

The state of curl 2020