Daniel Stenbergs presentation om reverse engineering konsumentelektronik och Rockbox. Framfört den 18:e september 2010 på Svenska Linuxföreningens Linuxträfff 2010
SPDY was created by Google in 2009 to speed up web content delivery. It aims to reduce page load times by 50% by allowing multiple concurrent HTTP requests over a single TCP connection using features like request multiplexing, prioritization, and header compression. Some implementations of SPDY include Chrome, Firefox, and Amazon Kindle Fire. While it provides benefits, SPDY may not completely replace HTTP due to limitations like preventing single header extraction and potential for wasted server resources.
Daniel Stenbergs presentation om reverse engineering konsumentelektronik och Rockbox. Framfört den 18:e september 2010 på Svenska Linuxföreningens Linuxträfff 2010
SPDY was created by Google in 2009 to speed up web content delivery. It aims to reduce page load times by 50% by allowing multiple concurrent HTTP requests over a single TCP connection using features like request multiplexing, prioritization, and header compression. Some implementations of SPDY include Chrome, Firefox, and Amazon Kindle Fire. While it provides benefits, SPDY may not completely replace HTTP due to limitations like preventing single header extraction and potential for wasted server resources.
The Carlsbad CERT team is assisting with a vaccination event by providing safety briefings to county health staff, medical reserve corps, and other CERT members. The briefing is for a H1N1 point-of-distribution vaccination clinic and covers pre-event safety. Residents will be lining up to receive vaccinations while jugglers entertain those waiting.
This document discusses the challenges of real-time computing on Linux and potential solutions. Real-time means very low maximum latency, below 100 microseconds. While Linux was not designed for real-time, it is now used in many embedded systems. Options to address real-time include using separate hardware, a hypervisor with an real-time operating system (RTOS), asymmetric multiprocessing (AMP) with an RTOS, or solutions within Linux like PREEMPT_RT that adds preemption and CPU isolation techniques to reduce worst-case latency without changing applications. The document reviews these approaches and notes that real-time remains an important area as Linux is increasingly used in embedded systems.
libcurl, seven SSL libraries and one SSH libraryDaniel Stenberg
This document summarizes Daniel Stenberg's presentation on libcurl and SSL/TLS libraries. It discusses libcurl, which has supported HTTPS since 1998 and now supports many protocols. It also discusses the seven main SSL/TLS libraries - OpenSSL, GnuTLS, NSS, qSSL, yaSSL, PolarSSL, and axTLS - comparing their pros, cons, features, and APIs. It describes how libcurl maintains support for all libraries through a common SSL API, and why there are relatively few SSH libraries, with libssh and libssh2 being the main ones.
Daniel Stenberg presented on TLS and curl. He discussed curl and its TLS support, libcurl which powers curl, TLS obstacles, the CA cert bundle, no end in sight for improving TLS, http2 which will use TLS mandatory, opportunistic TLS, and the future of further TLS improvements like TLS 1.3 and DANE. Stenberg took questions and encouraged learning more about curl and TLS on the curl website.
This document discusses scalable network transfers and how libcurl addresses scalability issues. It begins with an overview of traditional blocking socket approaches that do not scale well with many connections. It then covers event-based and asynchronous approaches using libraries like libevent that allow handling thousands of simultaneous connections efficiently. Libcurl supports these approaches through its multi-socket API, allowing applications to take advantage of libcurl's many protocols while using scalable event models. The document provides code examples of traditional, libcurl multi, and libcurl multi-socket styles.
Daniel Stenberg gave a presentation on the current status of HTTP/2. He discussed how HTTP usage has grown significantly, leading to slower page loads. HTTP/1.1 workarounds like concatenation and sharding add complexity. HTTP/2 aims to address these issues through features like multiplexed streams, header compression, and server push while maintaining backwards compatibility. Major browsers now support HTTP/2, but it currently only makes up a small percentage of traffic. Widespread adoption will take time as developers adjust practices.
Continuous Delivery med Tutum och Docker i molnet.
Code Night #4 - 2016-02-11
Om man vill ställa om en befintlig utvecklingsverksamhet till Continuous Delivery gör man klokt i att införa förändringen stegvis, i en kontinuerlig förbättringsprocess. Det ger de bästa chanserna att lyckas. Men det är normalt en lång process eftersom många människor är inblandade och att vi under tiden måste upprätthålla leveranser till produktion.
Men, om vi för ett ögonblick drömmer oss bort och tänker bort ärvda system, stela driftsmiljöer och obsoleta rutiner och istället bara gör som man verkligen skulle vilja göra, från scratch, nu 2016, hur skulle man göra då?
Vi har gjort precis det!
Denna kväll tar vi med oss er på en resa hur man idag kan bygga en systemproduktionslina baserad på Docker, Tutum, GoCD och Amazon EC2, från källkodsrepo till produktionsmiljö. Vi går igenom hur det är uppbyggt och fungerar och hur man arbetar med det. Vi kommer att arbeta med pipelinen och ett enkelt målsystem.
Vår story baseras på utvecklingsresan med http://www.welcomeapp.se hösten 2015 där vi på kort tid tog vi fram frontendsystem, backendsystem med klustring, lastbalansering, backup, MQ och webbsajt samt flera pipelines.
Föreläsare:
Daniel Marell och Kristoffer Vidmo - Continuous Delivery evangelister på C.A.G.
Både Daniel och Kristoffer har gedigna bakgrunder som arkitekter och utvecklare och fokuserar idag på metoder och verktyg för att hjälpa kunder att implementera Continuous Delivery.
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkCreuna Sverige
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
[23video id="8971811"]
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Daniel Wroblewski dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg, CTO Creuna
Daniel Wroblewski, Technology Manager Creuna
Patentarbete i industrin och datorrelaterade uppfinningarEggeboy
Presentation in Swedish from a part of the course "Patenträtt 15 hp" on 8 September 2009. First part is about some aspects of patent department work in Swedish companies and the second part is about computer implemented inventions
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Mattias Uhlegård dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg CTO Creuna
Mattias Uhlegård System Architect Creuna
The Carlsbad CERT team is assisting with a vaccination event by providing safety briefings to county health staff, medical reserve corps, and other CERT members. The briefing is for a H1N1 point-of-distribution vaccination clinic and covers pre-event safety. Residents will be lining up to receive vaccinations while jugglers entertain those waiting.
This document discusses the challenges of real-time computing on Linux and potential solutions. Real-time means very low maximum latency, below 100 microseconds. While Linux was not designed for real-time, it is now used in many embedded systems. Options to address real-time include using separate hardware, a hypervisor with an real-time operating system (RTOS), asymmetric multiprocessing (AMP) with an RTOS, or solutions within Linux like PREEMPT_RT that adds preemption and CPU isolation techniques to reduce worst-case latency without changing applications. The document reviews these approaches and notes that real-time remains an important area as Linux is increasingly used in embedded systems.
libcurl, seven SSL libraries and one SSH libraryDaniel Stenberg
This document summarizes Daniel Stenberg's presentation on libcurl and SSL/TLS libraries. It discusses libcurl, which has supported HTTPS since 1998 and now supports many protocols. It also discusses the seven main SSL/TLS libraries - OpenSSL, GnuTLS, NSS, qSSL, yaSSL, PolarSSL, and axTLS - comparing their pros, cons, features, and APIs. It describes how libcurl maintains support for all libraries through a common SSL API, and why there are relatively few SSH libraries, with libssh and libssh2 being the main ones.
Daniel Stenberg presented on TLS and curl. He discussed curl and its TLS support, libcurl which powers curl, TLS obstacles, the CA cert bundle, no end in sight for improving TLS, http2 which will use TLS mandatory, opportunistic TLS, and the future of further TLS improvements like TLS 1.3 and DANE. Stenberg took questions and encouraged learning more about curl and TLS on the curl website.
This document discusses scalable network transfers and how libcurl addresses scalability issues. It begins with an overview of traditional blocking socket approaches that do not scale well with many connections. It then covers event-based and asynchronous approaches using libraries like libevent that allow handling thousands of simultaneous connections efficiently. Libcurl supports these approaches through its multi-socket API, allowing applications to take advantage of libcurl's many protocols while using scalable event models. The document provides code examples of traditional, libcurl multi, and libcurl multi-socket styles.
Daniel Stenberg gave a presentation on the current status of HTTP/2. He discussed how HTTP usage has grown significantly, leading to slower page loads. HTTP/1.1 workarounds like concatenation and sharding add complexity. HTTP/2 aims to address these issues through features like multiplexed streams, header compression, and server push while maintaining backwards compatibility. Major browsers now support HTTP/2, but it currently only makes up a small percentage of traffic. Widespread adoption will take time as developers adjust practices.
Continuous Delivery med Tutum och Docker i molnet.
Code Night #4 - 2016-02-11
Om man vill ställa om en befintlig utvecklingsverksamhet till Continuous Delivery gör man klokt i att införa förändringen stegvis, i en kontinuerlig förbättringsprocess. Det ger de bästa chanserna att lyckas. Men det är normalt en lång process eftersom många människor är inblandade och att vi under tiden måste upprätthålla leveranser till produktion.
Men, om vi för ett ögonblick drömmer oss bort och tänker bort ärvda system, stela driftsmiljöer och obsoleta rutiner och istället bara gör som man verkligen skulle vilja göra, från scratch, nu 2016, hur skulle man göra då?
Vi har gjort precis det!
Denna kväll tar vi med oss er på en resa hur man idag kan bygga en systemproduktionslina baserad på Docker, Tutum, GoCD och Amazon EC2, från källkodsrepo till produktionsmiljö. Vi går igenom hur det är uppbyggt och fungerar och hur man arbetar med det. Vi kommer att arbeta med pipelinen och ett enkelt målsystem.
Vår story baseras på utvecklingsresan med http://www.welcomeapp.se hösten 2015 där vi på kort tid tog vi fram frontendsystem, backendsystem med klustring, lastbalansering, backup, MQ och webbsajt samt flera pipelines.
Föreläsare:
Daniel Marell och Kristoffer Vidmo - Continuous Delivery evangelister på C.A.G.
Både Daniel och Kristoffer har gedigna bakgrunder som arkitekter och utvecklare och fokuserar idag på metoder och verktyg för att hjälpa kunder att implementera Continuous Delivery.
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkCreuna Sverige
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
[23video id="8971811"]
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Daniel Wroblewski dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg, CTO Creuna
Daniel Wroblewski, Technology Manager Creuna
Patentarbete i industrin och datorrelaterade uppfinningarEggeboy
Presentation in Swedish from a part of the course "Patenträtt 15 hp" on 8 September 2009. First part is about some aspects of patent department work in Swedish companies and the second part is about computer implemented inventions
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Mattias Uhlegård dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg CTO Creuna
Mattias Uhlegård System Architect Creuna
This document discusses using libcurl's share API to share data like cookies and DNS caches between multiple easy handles. It explains that some curl state is kept in the easy handle, so transfers using different handles may not be fully independent. The share API allows creating share objects that specify what data to share, such as cookies and DNS caches. Easy handles can then specify which share objects to use to share data between transfers and achieve better performance than using separate handles independently.
This document discusses curl security practices such as continuous integration testing on many platforms, custom test servers, tools used for analysis like Valgrind and Clang sanitizers, and "torture tests" that inject errors. It notes that while testing all combinations is impossible, common setups and architectures are tested. The curl bug bounty program is mentioned as paying $40,900 so far. An upcoming code audit and ensuring decreasing CVEs and fuzzing reports over time are discussed as signs the efforts are working. Recent CVE trends and introductions like "dynbuf" are also summarized.
This document provides an overview of curl, an open source command line tool and library for transferring data with Internet protocols. It discusses curl's history starting in 1998, its widespread usage across operating systems, CPU architectures, and planets. It also outlines curl's many supported features and protocols, large number of contributors and commits, extensive testing, and commitment to security and open development. The future of curl is discussed in the context of the growing Internet of Things and connectivity of everyday devices and appliances.
Daniel Stenberg gave a presentation on using Rust with curl. He discussed how curl has traditionally used C but now supports alternative backends implemented in other languages like Rust. He described challenges in integrating the Hyper, rustls, and quiche Rust crates but curl now supports HTTP/1-2 with Hyper and TLS with rustls in an experimental way. Future work includes improving test coverage when using Rust backends and potentially enabling them by default.
Daniel Stenberg goes through some basic libcurl fundamentals and API design and explain how easily you can get your first transfers going in your own application. libcurl is the defacto standard library for Internet transfers and runs on virtually all platforms. The language focus will be on C/C++ but the concepts are generally applicable even if you use libcurl bindings for other languages.
Daniel Stenberg gave a presentation about security best practices for curl and open source projects. He discussed how curl implements thorough testing, code reviews, fuzz testing, and monitoring of dependencies to minimize vulnerabilities. Stenberg also noted that curl employs a full-time maintainer, responds quickly to issues, and has an active bug bounty program to further improve security.
Daniel Stenberg discusses some of the most common mistakes users are doing when using libcurl and what to do about them.
Video: https://youtu.be/0KfDdIAirSI
Daniel Stenberg discusses the progress being made to enable HTTP/3 support in the curl tool and libcurl library. HTTP/3 uses QUIC as its underlying transport protocol. Several challenges remain, including fallback options, stability testing, and full browser/server support. Stenberg explains how to build curl with various QUIC libraries like Quiche and ngtcp2. HTTP/3 support in curl is still experimental but aims to provide a similar user experience to HTTP/1. Support may be included in future releases as QUIC and HTTP/3 specifications continue development and more servers/browsers are deployed.
18. Vem är jag?
Upphandlare på Kammarkollegiet
Ansvarar bl.a. för upphandlingen ”Öppna
programvaror 2010”
Hållit på med öppen källkod sen sent 90-tal
Inte programmerare, inte jurist
Stort intresse av immaterialrätt förutom öppen källkod
och LOU
19. Öppen eller stängd?
En ”stängd” eller ”proprietär” programvara ger endast
användaren en nyttjanderätt men i princip inga andra
rättigheter.
En ”öppen” eller “fri” programvara ger en mängd olika
rättigheter, vilka dessa är definieras av
programvarans licensvillkor.
Alla licenser syftar till samma sak; definiera vilka
skyldigheter och rättigheter som hänger samman
med en viss upphovsrättsskyddad mjukvara.
20. Alla dessa licenser
Två ytterligheter, BSD och GPL:
BSD säger i princip ”Ta koden och gör vad du vill med
den, inklusive licensiera om den och stoppa in den i
proprietär programvara”.
GPL säger i princip ”Ta koden och gör vad du vill med
den, men om du sprider koden till någon annan på
något sätt så måste du publicera koden”.
Således kan BSD bli GPL men inte tvärtom.
Således är BSD, men inte GPL, mer populär bland
proprietära leverantörer.
21. Öppen källkod och juridik
Öppen källkodslicenser bygger på upphovsrätten där
upphovsmannen avsäger sig stora delar av sina
rättigheter.
Generellt är patent och FRAND-villkor (Fair,
Reasonable And Non-Discriminating) oförenliga med
öppen källkod.
22. Öppen källkod och svensk rätt (1)
Upphovsrättslagen är den legala basen.
Att inte uppfylla villkoren i en öppen källkodslicens är
ett upphovsrättsintrång och inte att avtalsbrott.
Ett öppen källkodsprogram som erbjuds utan
motprestation är att beteckna som ett benefikt avtal
( = gåva).
Många lagar kan spela in beroende på
omständigheterna, t.ex. Upphovsrättslagen,
Avtalslagen, Köplagen, Konsumentköplagen,
Gåvolagen, Skadeståndslagen och
Distansavtalslagen.
23. Öppen källkod och svensk rätt (2)
Klausuler som ”befintligt skick” eller ”as is” är inte
populära i svensk rätt och skulle sannolikt inte hålla i
en rättslig prövning.
Köplagen kan sannolikt inte användas för att kräva
upphovsmannen bakom en öppen källkods-
programvara på något.
Konsumentköplagen skulle kunna användas.
24. GNU GPL (General Public License)
GPL kräver att källkoden görs tillgänglig för mottagarna
ifall upphovsmannen väljer att distribuera mjukvaran.
Det går inte att licensiera om GPL-källkod.
Om mjukvaran körs på en server och endast resultatet
av exekveringen tillgängliggörs för tredje part sker
ingen distribution enligt GPL. Källkoden till mjukvaran
behöver då inte göras tillgänglig.
Modifikationer av mjukvaran för eget bruk behöver inte
göras tillgängliga för andra.
25. GPL
Om en mjukvara distribueras i kompilerad form och den
innehåller delar licensierade under GPL så måste all
källkod som krävs för att kompilera programvaran
tillgängliggöras.
Ett upphörande av distribution förändrar inget, all källkod
måste fortfarande tillgängliggöras.
Den som distribuerar källkod får inte ställa några krav på
vad mottagarna gör med källkoden så länge GPL uppfylls.
26. GPL och AGPL (Affero GPL)
Om upphovsmannen vill täppa till ”the ASP loophole” kan
AGPL användas.
AGPL är identisk med GPL, men med tillagda klausuler
som reglerar att all källkod måste tillgängliggöras även om
distributionen endast innebär presentation av
exekveringen.
27. GPLv3
Senaste versionen av GPL.
En moderniserad version av GPLv2.
Tydligare regler för inbyggda system.
Helt omgjort gällande patent.
Svagt intresse i början, men har snabbt accepterats.
28. GPLv3 och inbyggda system
Om mjukvaran är inlåst i en krets och inte på något sätt
kan modifieras krävs endast tillgängliggörande av
källkoden.
Om mjukvaran kan modifieras måste mottagaren av det
inbyggda systemet äga rätt att modifiera mjukvaran.
29. GPLv3 och patent
Det är möjligt att distribuera källkod licensierad med
GPLv3 samtidigt som relevanta patent finns.
Måste vara ”royalty free”, FRAND funkar inte.
En patentlicens som ges till en mottagare måste
automatiskt utsträckas till alla potentiella mottagare.