SlideShare a Scribd company logo
C++17: Not Your Father’s C++
Pat Viafore
@PatViaforever
DevSpace 2017
CSE 2050 : Programming in a Second Language
hello.c
// my first c program
#include <stdio.h>
int main()
{
printf("Hello, %sn", "World!");
return 0;
}
hello.cpp
// my first c++ program
#include <stdio.h>
int main()
{
printf("Hello, %sn", "World!");
return 0;
}
Is this all C++ is?
● std::cout?
● std::vector?
● std::map?
● std::string?
● classes w/ inheritance?
4 subsets of C++
1. The C programming language
2. Object-Oriented
3. STL library
4. Template Metaprogramming
C++ is not the language I thought it was
We’re going to look at
modern C++ and see how
it has transformed from
“C With Classes”
C++ 11
C++ 17
C++ 14
Expressiveness
Code what you mean,
mean what you code
#include <algorithm>
find_if(v.begin(), v.end(), isSpecial);
count_if(v.begin(), v.end(), isNull);
#include <algorithm>
unique_copy(v.begin(), v.end(), v2.begin());
partition(v.begin(), v.end(), isAnAdult);
#include <algorithm>
nth_element(v.begin(), v.begin()+7, v.end());
transform(v.begin(), v.end(), v.begin(),
std::bind2nd(std::plus<int>(), 5);
Lambda Expressions
[capture-group](parameters)
{
function-body
};
C++ 11
Lambda Expressions
auto isSpecial =
[](int x) { return x == 5 || x >= 13;};
std::count_if(v.begin(), v.end(), isSpecial);
C++ 11
(Smart?)
Pointers
Smart Pointers
std::unique_ptr<Widget> makeWidget() {
return make_unique<Widget>(5,12,”param”);
}
//unique pointers have single ownership
std::unique_ptr<Widget> w = makeWidget();
C++ 11/14
Smart Pointers
std::shared_ptr<Widget> makeWidget() {
return make_shared<Widget>(5,12,”param”);
}
//unique pointers have multiple ownership
std::shared_ptr<Widget> w = makeWidget();
C++ 11/14
Quality Of
Life
C++17 Destructuring C++ 17
//c++11
int i;
float f;
std::string s;
std::tie(i,f,s) = make_tuple(5, 3.4, “c++11”);
C++17 Destructuring C++ 17
//c++17
auto [i2,f2,s2] = make_tuple(5, 3.4, “C++17”);
C++17 Attributes C++ 17
switch(condition) {
case 1:
std::cout <<”Option 1n”;
break;
case 3:
std::cout <<”Exceptional Valuen”;
[[fallthrough]];
default:
break;
}
C++17 Attributes C++ 17
[[maybe_unused]] static void log() {}
#if LOGGING_ENABLED
log();
#endif
C++17 Attributes C++ 17
[[nodiscard]] int importantFunction();
[[nodiscard]] struct lockGuard {};
importantFunction(); //warning
lockGuard f();
f(); //warning
std::filesystem
Path handling
Directory handling
File/Directory Options
Symlinking
And so much more...
C++ 17
C++17 Miscellany C++ 17
namespace x::y::z {
void print() {
std::byte b = std::byte(0b1001);
b = clamp(b, std::byte(5), std::byte(8));
if(auto opt = getOpts(); opt.isConsole) {
int i = std::to_integer<int>(b);
std::cout << i << "n";
}
}
}
Concurrent and Parallel
Operations
Concurrency
std::mutex
std::thread
std::future
std::atomic
C++ 11
Reproduction of Joe Armstrong’s
picture by Yossi Kreinin
http://yosefk.com/blog/parallelism-and-concurrency-nee
d-different-tools.html
Parallelism
std::vector<int> v = {1,2,3,4,5};
auto times3 = [](int i) { return i * 3;};
std::transform(std::par, v.begin(), v.end(),
v.begin(), times3);
C++ 17
Parallelism
std::transform(std::par_vec, v.begin(),
v.end(), v.begin(), addOne);
C++ 17
Type System
Wooo!
Type Inference
auto i = 5;
auto f = 3.4
auto v = getVector();
C++ 11
Type Inference
//c++03
for(std::vector<int>::iterator i= v.begin();
i !=v.end(); ++i)
C++ 11
Type Inference
//c++11
for(auto i = v.begin(); i != v.end(); ++i);
C++ 11
Type Inference
//alternatively (also in c++11)
for(auto &i: v)
C++ 11
Type Inference (continued)
auto isSpecial = [](int x) { return x == 5; };
auto a = [](auto x, auto y) { return x + y; };
auto get_second(auto &container) {
return container.begin() + 1;
}
C++ 11/14
std::string_view
auto getNumUpperCase(std::string_view s){
return count_if(s.begin(), s.end(), isupper);
}
getNumUpperCase("One”)
getNumUpperCase("TWo"s)
getNumUpperCase(MyStr{"THR"})
C++17
std::variant
std::variant<int, float, std::string> v;
v = 5;
std::cout << std::get<int>(v) << "n";
v = "Now I'm a String!"s;
std::cout << std::get<std::string>(v) << "n";
C++17
std::variant
std::variant<int, float, std::string> v;
v = 5;
std::cout << std::get<string>(v) << "n";
// the above throws
// a bad_variant_access exception
C++17
A Quick Look at Haskell
data Custom = Option1 | Option2 Int
doSomething :: Custom -> Int
doSomething Option1 = 0
doSomething (Option2 x) = x
std::visit
template<class... Ts> struct make_visitor : Ts...
{ using Ts::operator()...; };
template<class... Ts> make_visitor(Ts...) ->
make_visitor<Ts...>;
std::variant<int, float, std::string> v;
C++17
std::visit
std::visit( make_visitor {
[](int a) { std::cout << a << " int n"; }
[](float a) { std::cout << a << " float n"; }
[](std::string a) { std::cout << a << "n"; }
}, v);
C++17
std::optional
std::optional<std::string> opt;
std::cout << opt.value_or("Missing") << "n";
opt = "Filled in value";
std::cout << opt.value_or("Missing") << "n";
C++17
std::any
auto a = std::any(12);
std::cout << std::any_cast<int>(a) << “n”;
//throws bad_any_cast exception
std::any_cast<std::string>(a)
C++17
Templates
I’ve never metaprogram I
didn’t like
Templates
std::vector<int> v;
std::vector<double> v2;
template <typename T>
class DuplicateType {
T val1;
T val2;
};
Compile-time
vs.
Runtime
Template Metaprogramming
template<int T>
int factorial() {
return factorial<T-1>() * T;
}
template <>
int factorial<0>() { return 1; }
std::cout << factorial<7>;
Variadic Templates
template <typename… Values> class Variadic{
…
}
std::tuple<int, double, std::string, float> t;
C++ 11
Fold Expressions
template <typename… Values>
auto sum(Values… values) {
return ( … + values);
}
C++ 17
constexpr
template<int32_t T>
unsigned int getBits() {
unsigned int counter = 0;
for (unsigned int i = 0; i < 32; ++i) {
if(T & (0x1 << i)) counter++;
}
return counter;
}
C++ 11
constexpr
constexpr unsigned int factorial(int n) {
return n <= 0 ? 1 : (n * factorial(n - 1));
}
int main() {
std::cout << getBits<factorial(5)>();
std::cout << factorial(5);
return 0;
}
C++ 11
If constexpr
template <typename T>
void printSpecialized(T t){
if constexpr (is_integral<T>())
std::cout << "Integral " << t << "n";
else if constexpr(is_floating_point<T>())
std::cout << "Float " << t << "n";
}
C++ 17
What’s next?
Yarr, there be
uncharted lands
ahead!
Concepts
template concept bool Fractional<T> =
Floating<T> || QuotiendField<T>;
C++ ?
Ranges
std::vector numbers = { 1, 2, 3, 4, 5 };
ranges::accumulate(numbers |
view::transform(addOne) |
view::filter(isEven) |
view::transform(invert)
, 0);
C++ ?
Reflection
template<typename T> print(T a, T b) {
std::cout
<< $T.qualified_name() << ">("
<< $a.name()<<'':<< $a.type().name()
<< ',' << $b.name()<<':'<<$b.type().name()
<< ") = ";
}
C++ ?
And many more?
tasks?
std::network IO?
coroutines?
modules?
C++ ?
Is it a bust?
Here’s my personal litmus test for whether
we’ve changed the way people program: Just
as you can take a look at a screenful of code
and tell that it’s C++11 (not C++98), if you
can look at a screenful of code and tell that
it’s C++17, then we’ve changed the way we
program C++. I think C++17 will meet that
bar.
--Herb Sutter
There are only two kinds of languages: the
ones people complain about and the ones
nobody uses.
--Bjarne Stroustrup

More Related Content

What's hot

C language
C languageC language
C language
Priya698357
 
Categories for the Working C++ Programmer
Categories for the Working C++ ProgrammerCategories for the Working C++ Programmer
Categories for the Working C++ ProgrammerPlatonov Sergey
 
Programming in C [Module One]
Programming in C [Module One]Programming in C [Module One]
Programming in C [Module One]
Abhishek Sinha
 
High performance web programming with C++14
High performance web programming with C++14High performance web programming with C++14
High performance web programming with C++14
Matthieu Garrigues
 
C programming Lab 2
C programming Lab 2C programming Lab 2
C programming Lab 2
Zaibi Gondal
 
C++ Introduction
C++ IntroductionC++ Introduction
C++ Introductionparmsidhu
 
programming in C++ report
programming in C++ reportprogramming in C++ report
programming in C++ report
vikram mahendra
 
please sir i want to comments of every code what i do in eachline . in this w...
please sir i want to comments of every code what i do in eachline . in this w...please sir i want to comments of every code what i do in eachline . in this w...
please sir i want to comments of every code what i do in eachline . in this w...
hwbloom27
 
Concepts of C [Module 2]
Concepts of C [Module 2]Concepts of C [Module 2]
Concepts of C [Module 2]
Abhishek Sinha
 
175035 cse lab-05
175035 cse lab-05 175035 cse lab-05
175035 cse lab-05
Mahbubay Rabbani Mim
 
Introduction to C++
Introduction to C++Introduction to C++
Introduction to C++
Sikder Tahsin Al-Amin
 
Debugging and Profiling C++ Template Metaprograms
Debugging and Profiling C++ Template MetaprogramsDebugging and Profiling C++ Template Metaprograms
Debugging and Profiling C++ Template Metaprograms
Platonov Sergey
 
C++ Programming - 2nd Study
C++ Programming - 2nd StudyC++ Programming - 2nd Study
C++ Programming - 2nd Study
Chris Ohk
 
How to Adopt Modern C++17 into Your C++ Code
How to Adopt Modern C++17 into Your C++ CodeHow to Adopt Modern C++17 into Your C++ Code
How to Adopt Modern C++17 into Your C++ Code
Microsoft Tech Community
 
project report in C++ programming and SQL
project report in C++ programming and SQLproject report in C++ programming and SQL
project report in C++ programming and SQL
vikram mahendra
 
(Www.entrance exam.net)-tcs placement sample paper 2
(Www.entrance exam.net)-tcs placement sample paper 2(Www.entrance exam.net)-tcs placement sample paper 2
(Www.entrance exam.net)-tcs placement sample paper 2Pamidimukkala Sivani
 
1 introduction to c program
1 introduction to c program1 introduction to c program
1 introduction to c program
NishmaNJ
 

What's hot (20)

C language
C languageC language
C language
 
Categories for the Working C++ Programmer
Categories for the Working C++ ProgrammerCategories for the Working C++ Programmer
Categories for the Working C++ Programmer
 
Programming in C [Module One]
Programming in C [Module One]Programming in C [Module One]
Programming in C [Module One]
 
High performance web programming with C++14
High performance web programming with C++14High performance web programming with C++14
High performance web programming with C++14
 
C programming Lab 2
C programming Lab 2C programming Lab 2
C programming Lab 2
 
C++ Introduction
C++ IntroductionC++ Introduction
C++ Introduction
 
programming in C++ report
programming in C++ reportprogramming in C++ report
programming in C++ report
 
C lab-programs
C lab-programsC lab-programs
C lab-programs
 
please sir i want to comments of every code what i do in eachline . in this w...
please sir i want to comments of every code what i do in eachline . in this w...please sir i want to comments of every code what i do in eachline . in this w...
please sir i want to comments of every code what i do in eachline . in this w...
 
Concepts of C [Module 2]
Concepts of C [Module 2]Concepts of C [Module 2]
Concepts of C [Module 2]
 
175035 cse lab-05
175035 cse lab-05 175035 cse lab-05
175035 cse lab-05
 
Introduction to C++
Introduction to C++Introduction to C++
Introduction to C++
 
Debugging and Profiling C++ Template Metaprograms
Debugging and Profiling C++ Template MetaprogramsDebugging and Profiling C++ Template Metaprograms
Debugging and Profiling C++ Template Metaprograms
 
CSE240 Pointers
CSE240 PointersCSE240 Pointers
CSE240 Pointers
 
C++ Programming - 2nd Study
C++ Programming - 2nd StudyC++ Programming - 2nd Study
C++ Programming - 2nd Study
 
Intro to c++
Intro to c++Intro to c++
Intro to c++
 
How to Adopt Modern C++17 into Your C++ Code
How to Adopt Modern C++17 into Your C++ CodeHow to Adopt Modern C++17 into Your C++ Code
How to Adopt Modern C++17 into Your C++ Code
 
project report in C++ programming and SQL
project report in C++ programming and SQLproject report in C++ programming and SQL
project report in C++ programming and SQL
 
(Www.entrance exam.net)-tcs placement sample paper 2
(Www.entrance exam.net)-tcs placement sample paper 2(Www.entrance exam.net)-tcs placement sample paper 2
(Www.entrance exam.net)-tcs placement sample paper 2
 
1 introduction to c program
1 introduction to c program1 introduction to c program
1 introduction to c program
 

Similar to C++17 not your father’s c++

C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical Reviewer
Andrey Karpov
 
Pattern printing-in-c(Jaydip Kikani)
Pattern printing-in-c(Jaydip Kikani)Pattern printing-in-c(Jaydip Kikani)
Pattern printing-in-c(Jaydip Kikani)
Jaydip JK
 
Computer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperComputer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperDeepak Singh
 
Qust & ans inc
Qust & ans incQust & ans inc
Qust & ans incnayakq
 
How to Adopt Modern C++17 into Your C++ Code
How to Adopt Modern C++17 into Your C++ CodeHow to Adopt Modern C++17 into Your C++ Code
How to Adopt Modern C++17 into Your C++ Code
Microsoft Tech Community
 
Lab. Programs in C
Lab. Programs in CLab. Programs in C
Lab. Programs in C
Saket Pathak
 
pattern-printing-in-c.pdf
pattern-printing-in-c.pdfpattern-printing-in-c.pdf
pattern-printing-in-c.pdf
RSathyaPriyaCSEKIOT
 
C++11
C++11C++11
C multiple choice questions and answers pdf
C multiple choice questions and answers pdfC multiple choice questions and answers pdf
C multiple choice questions and answers pdf
choconyeuquy
 
The Present and The Future of Functional Programming in C++
The Present and The Future of Functional Programming in C++The Present and The Future of Functional Programming in C++
The Present and The Future of Functional Programming in C++
Alexander Granin
 
Program presentation
Program presentationProgram presentation
Program presentation
MdAlauddinRidoy
 
Unit i intro-operators
Unit   i intro-operatorsUnit   i intro-operators
Unit i intro-operators
HINAPARVEENAlXC
 
Programming in C Presentation upto FILE
Programming in C Presentation upto FILEProgramming in C Presentation upto FILE
Programming in C Presentation upto FILE
Dipta Saha
 
C++11 & C++14
C++11 & C++14C++11 & C++14
C++11 & C++14
CyberPlusIndia
 
CPP Language Basics - Reference
CPP Language Basics - ReferenceCPP Language Basics - Reference
CPP Language Basics - Reference
Mohammed Sikander
 
basics of C and c++ by eteaching
basics of C and c++ by eteachingbasics of C and c++ by eteaching
basics of C and c++ by eteaching
eteaching
 
cuptopointer-180804092048-190306091149 (2).pdf
cuptopointer-180804092048-190306091149 (2).pdfcuptopointer-180804092048-190306091149 (2).pdf
cuptopointer-180804092048-190306091149 (2).pdf
YashwanthCse
 
2. Data, Operators, IO.ppt
2. Data, Operators, IO.ppt2. Data, Operators, IO.ppt
2. Data, Operators, IO.ppt
swateerawat06
 
Mouse programming in c
Mouse programming in cMouse programming in c
Mouse programming in cgkgaur1987
 
The present and the future of functional programming in c++
The present and the future of functional programming in c++The present and the future of functional programming in c++
The present and the future of functional programming in c++
Alexander Granin
 

Similar to C++17 not your father’s c++ (20)

C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical Reviewer
 
Pattern printing-in-c(Jaydip Kikani)
Pattern printing-in-c(Jaydip Kikani)Pattern printing-in-c(Jaydip Kikani)
Pattern printing-in-c(Jaydip Kikani)
 
Computer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperComputer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paper
 
Qust & ans inc
Qust & ans incQust & ans inc
Qust & ans inc
 
How to Adopt Modern C++17 into Your C++ Code
How to Adopt Modern C++17 into Your C++ CodeHow to Adopt Modern C++17 into Your C++ Code
How to Adopt Modern C++17 into Your C++ Code
 
Lab. Programs in C
Lab. Programs in CLab. Programs in C
Lab. Programs in C
 
pattern-printing-in-c.pdf
pattern-printing-in-c.pdfpattern-printing-in-c.pdf
pattern-printing-in-c.pdf
 
C++11
C++11C++11
C++11
 
C multiple choice questions and answers pdf
C multiple choice questions and answers pdfC multiple choice questions and answers pdf
C multiple choice questions and answers pdf
 
The Present and The Future of Functional Programming in C++
The Present and The Future of Functional Programming in C++The Present and The Future of Functional Programming in C++
The Present and The Future of Functional Programming in C++
 
Program presentation
Program presentationProgram presentation
Program presentation
 
Unit i intro-operators
Unit   i intro-operatorsUnit   i intro-operators
Unit i intro-operators
 
Programming in C Presentation upto FILE
Programming in C Presentation upto FILEProgramming in C Presentation upto FILE
Programming in C Presentation upto FILE
 
C++11 & C++14
C++11 & C++14C++11 & C++14
C++11 & C++14
 
CPP Language Basics - Reference
CPP Language Basics - ReferenceCPP Language Basics - Reference
CPP Language Basics - Reference
 
basics of C and c++ by eteaching
basics of C and c++ by eteachingbasics of C and c++ by eteaching
basics of C and c++ by eteaching
 
cuptopointer-180804092048-190306091149 (2).pdf
cuptopointer-180804092048-190306091149 (2).pdfcuptopointer-180804092048-190306091149 (2).pdf
cuptopointer-180804092048-190306091149 (2).pdf
 
2. Data, Operators, IO.ppt
2. Data, Operators, IO.ppt2. Data, Operators, IO.ppt
2. Data, Operators, IO.ppt
 
Mouse programming in c
Mouse programming in cMouse programming in c
Mouse programming in c
 
The present and the future of functional programming in c++
The present and the future of functional programming in c++The present and the future of functional programming in c++
The present and the future of functional programming in c++
 

More from Patrick Viafore

Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
Patrick Viafore
 
User-Defined Types.pdf
User-Defined Types.pdfUser-Defined Types.pdf
User-Defined Types.pdf
Patrick Viafore
 
The Most Misunderstood Line In Zen Of Python.pdf
The Most Misunderstood Line In Zen Of Python.pdfThe Most Misunderstood Line In Zen Of Python.pdf
The Most Misunderstood Line In Zen Of Python.pdf
Patrick Viafore
 
Robust Python.pptx
Robust Python.pptxRobust Python.pptx
Robust Python.pptx
Patrick Viafore
 
Tip Top Typing - A Look at Python Typing
Tip Top Typing - A Look at Python TypingTip Top Typing - A Look at Python Typing
Tip Top Typing - A Look at Python Typing
Patrick Viafore
 
RunC, Docker, RunC
RunC, Docker, RunCRunC, Docker, RunC
RunC, Docker, RunC
Patrick Viafore
 
DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
 DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th... DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
Patrick Viafore
 
Controlling Raspberry Pis With Your Phone Using Python
Controlling Raspberry Pis With Your Phone Using PythonControlling Raspberry Pis With Your Phone Using Python
Controlling Raspberry Pis With Your Phone Using Python
Patrick Viafore
 
Building a development community within your workplace
Building a development community within your workplaceBuilding a development community within your workplace
Building a development community within your workplace
Patrick Viafore
 
Lambda Expressions in C++
Lambda Expressions in C++Lambda Expressions in C++
Lambda Expressions in C++
Patrick Viafore
 
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsBDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
Patrick Viafore
 
Hsv.py Lightning Talk - Bottle
Hsv.py Lightning Talk - BottleHsv.py Lightning Talk - Bottle
Hsv.py Lightning Talk - Bottle
Patrick Viafore
 
Controlling the browser through python and selenium
Controlling the browser through python and seleniumControlling the browser through python and selenium
Controlling the browser through python and selenium
Patrick Viafore
 

More from Patrick Viafore (13)

Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
User-Defined Types.pdf
User-Defined Types.pdfUser-Defined Types.pdf
User-Defined Types.pdf
 
The Most Misunderstood Line In Zen Of Python.pdf
The Most Misunderstood Line In Zen Of Python.pdfThe Most Misunderstood Line In Zen Of Python.pdf
The Most Misunderstood Line In Zen Of Python.pdf
 
Robust Python.pptx
Robust Python.pptxRobust Python.pptx
Robust Python.pptx
 
Tip Top Typing - A Look at Python Typing
Tip Top Typing - A Look at Python TypingTip Top Typing - A Look at Python Typing
Tip Top Typing - A Look at Python Typing
 
RunC, Docker, RunC
RunC, Docker, RunCRunC, Docker, RunC
RunC, Docker, RunC
 
DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
 DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th... DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
 
Controlling Raspberry Pis With Your Phone Using Python
Controlling Raspberry Pis With Your Phone Using PythonControlling Raspberry Pis With Your Phone Using Python
Controlling Raspberry Pis With Your Phone Using Python
 
Building a development community within your workplace
Building a development community within your workplaceBuilding a development community within your workplace
Building a development community within your workplace
 
Lambda Expressions in C++
Lambda Expressions in C++Lambda Expressions in C++
Lambda Expressions in C++
 
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsBDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
 
Hsv.py Lightning Talk - Bottle
Hsv.py Lightning Talk - BottleHsv.py Lightning Talk - Bottle
Hsv.py Lightning Talk - Bottle
 
Controlling the browser through python and selenium
Controlling the browser through python and seleniumControlling the browser through python and selenium
Controlling the browser through python and selenium
 

Recently uploaded

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 

C++17 not your father’s c++