SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
COPYRIGHT 2016 – Fundação CERTI
C++ and
Embedded Linux:
a perfect match
Vinicius Zein | Fundação CERTI
COPYRIGHT 2016 – Fundação CERTI
https://br.linkedin.com/in/viniciuszein	
Vinicius Tadeu Zein
R&D Coordinator @CERTI Foundation	
•  Responsible for the Embedded Systems team
•  More than 10 years developing Embedded Systems
•  In companies like Atmel, LG Electronics and CERTI
COPYRIGHT 2016 – Fundação CERTI
R&D Institute
Founded in 1984 with the mission to
develop technology solutions for products
and processes
500 employees
Private, but results are reinvested in R&D
MCTI and SUFRAMA accredited – projects
with “Lei de Informática”, “Lei do Bem” and
Embrapii
More than 500 clients around the world
COPYRIGHT 2016 – Fundação CERTI
The information in this presentation was compiled from sources believed to be
reliable for informational purposes only.
Content includes opinions, presentations, articles, hyperlinks or other third
party content (“Third Party Material”) that is not intended to, nor constitutes an
endorsement by CERTI of the author or the Third Party Materials. The content
and views within the Third Party Material are solely those of the third party and
do not reflect the opinions of CERTI.
The opinions expressed in this presentation and on the following slides are
solely those of the
presenter and not necessarily those of CERTI. CERTI does not guarantee the
accuracy or
reliability of the information provided herein.
.	Disclaimer
COPYRIGHT 2016 – Fundação CERTI
SU
MMA
RY
CHAPTER 1
Embedded
Linux
CHAPTER 2
C++
CHAPTER 3
Development
tools and
debugging
CHAPTER 4
Test
frameworks
CHAPTER 5
Test driven
development
CHAPTER 6
Final
considerations
COPYRIGHT 2016 – Fundação CERTI
Embedded
Linux
Chapter 1
COPYRIGHT 2016 – Fundação CERTI
CAPÍTULO 1 | LINUX EMBARCADO
COPYRIGHT 2016 – Fundação CERTI
Telephone exchanges
IP Phones and Smartphones
TVs and Set-top boxes
Printers
Electronic Control Units for cars
Cameras
Android systems
CHAPTER 1 | EMBEDDED LINUX
COPYRIGHT 2016 – Fundação CERTI
C++
CHAPTER 2
COPYRIGHT 2016 – Fundação CERTI
C++ “cee plus plus”
CHAPTER 2 Multi-paradigm
Object oriented
Templates, inline functions
Metaprogramming
High-performative and powerfull
Lots of tools
Compatibility with C - just in case ;)
STL, Boost, ACE
Evolving language
CHAPTER 2 | C++
C++85 style "C with Classes”, C++98, C++03, C++11,
C++14, C++17
COPYRIGHT 2016 – Fundação CERTI
Don’t lower
your level of
abstraction
without a good reason!
Low-levelimplies
Morecode
Morebugs
Highermaintenancecosts
COPYRIGHT 2016 – Fundação CERTI
Embedded
Linux
C++
Perfect match
CHAPTER 2 | C++
COPYRIGHT 2016 – Fundação CERTI
DEVELOPMENT
TOOLS AND
DEBUGGING
CHAPTER 3
COPYRIGHT 2016 – Fundação CERTI
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
“Making Embedded Linux Easy
Buildroot is a simple, efficient
and easy-to-use tool to generate
embedded Linux systems through
cross-compilation.”
Build systems > Buildroot
COPYRIGHT 2016 – Fundação CERTI
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
Build systems > Yocto Project
“It's not an embedded
Linux distribution
– it creates a custom
one for you”
COPYRIGHT 2016 – Fundação CERTI
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
Build systems > Autoconf
Rake
Boost.Build
Qmake
Scons
CMake
COPYRIGHT 2016 – Fundação CERTI
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
IDEs * Code edition and navigation
Vim
Emacs
Sublime Text 2
Eclipse CDT
Netbeans
SlickEdit
QtCreator
JetBrains AppCode
If debugging is the
process of removing bugs,
then programming must
be the process of putting
them in
Edsger Dijkstra
COPYRIGHT 2016 – Fundação CERTI
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
Debugging
Logs
Command Line Interface (CLI)
gdb (post morten)
gdb + gdbserver
ddd
Google BreakPad
For each
bug found,
a new unit
test.
COPYRIGHT 2016 – Fundação CERTI
CAPÍTULO 3 | FERRAMENTAS DESENVOLVIMENTO E DEBUGGING
Debugging > GDB
Post morten
gdb <program> -c <core_file>
bt full -> backtrace
print <variable>
frame <frame_id>
thread <thread_id>
COPYRIGHT 2016 – Fundação CERTI
COPYRIGHT 2016 – Fundação CERTI
COPYRIGHT 2016 – Fundação CERTI
COPYRIGHT 2016 – Fundação CERTI
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
Debugging > Breakpad
COPYRIGHT 2016 – Fundação CERTI
Debugging > Breakpad
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
COPYRIGHT 2016 – Fundação CERTI
Continuos integration
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
COPYRIGHT 2016 – Fundação CERTI
Other tools > Static annalysis
coverity, cppcheck
Coverage– cccc
Valgrind, tcmalloc
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
COPYRIGHT 2016 – Fundação CERTI
COPYRIGHT 2016 – Fundação CERTI
Code coverage
CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
COPYRIGHT 2016 – Fundação CERTI
Test frameworks for
C++
CHAPTER 4
COPYRIGHT 2016 – Fundação CERTI
CHAPTER 4 | TEST FRAMEWORKS FOR C++
Unit tests – gtest > Well documented
Multiplatform
Linux, Windows, Mac OS X
Easy to use, easy to configure
1 execution > multiple failures
COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
COPYRIGHT 2016 – Fundação CERTI
gmock > Google Mocking Framework for tests
in C++
Real targets are not always available
Simulating behavior
Creating emulators
CHAPTER 4 | TEST FRAMEWORKS FOR C++
COPYRIGHT 2016 – Fundação CERTI gmock
COPYRIGHT 2016 – Fundação CERTI gmock
COPYRIGHT 2016 – Fundação CERTI gmock
COPYRIGHT 2016 – Fundação CERTI gmock
COPYRIGHT 2016 – Fundação CERTI gmock
COPYRIGHT 2016 – Fundação CERTI
Google Benchmark
https://github.com/google/benchmark
Function benchmarking
CHAPTER 4 | TEST FRAMEWORKS FOR C++
COPYRIGHT 2016 – Fundação CERTI Google Benchmark
Test driven
development
CHAPTER 5
COPYRIGHT 2016 – Fundação CERTI
CHAPTER 5 | TEST DRIVEN DEVELOPMENT
Final considerations
CHAPTER 6
COPYRIGHT 2016 – Fundação CERTI
Use smart
pointers
std::shared_ptr,	
std::scoped_ptr,	
std::unique_ptr
COPYRIGHT 2016 – Fundação CERTI
RAIIRAII
COPYRIGHT 2016 – Fundação CERTI
CAPÍTULO 6 | Final considerations
RAII	
RAII
Resource
Acquisition Is
Initialization
COPYRIGHT 2016 – Fundação CERTI
Use a
code standard
h#p://www.chromium.org/developers/coding-style	
h#p://google-styleguide.googlecode.com/svn/trunk/cppguide.xml	
h#p://clang.llvm.org/docs/ClangFormat.html
COPYRIGHT 2016 – Fundação CERTI
Unit test first
Then code
>TDD
COPYRIGHT 2016 – Fundação CERTI
Prefere
STL/Boost	
algorithms
COPYRIGHT 2016 – Fundação CERTI
?
COPYRIGHT 2016 – Fundação CERTI
Thanks!
Vinicius Zein vtz@certi.org.br
COPYRIGHT 2016 – Fundação CERTI
References
Slide 6 h#p://events.linuxfounda?on.org/sites/events/files/slides/csimmonds-embedded-linux-?meline-2013.pdf
Slide 11 h#p://ecn.channel9.msdn.com/events/GoingNa?ve12/GN12Cpp11Style.pdf
Slides 24, 25 and 26 h#ps://code.google.com/p/google-breakpad/wiki/GeJngStartedWithBreakpad
Slide 48 h#p://www.pathfindersolns.com/

Weitere ähnliche Inhalte

Andere mochten auch

TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritaTDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com ArduínoTDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com Arduínotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradoTDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...tdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Métricas que importam!
TDC2016SP - Métricas que importam!TDC2016SP - Métricas que importam!
TDC2016SP - Métricas que importam!tdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...tdc-globalcode
 
TDC2016SP - Trilha Impressão 3D
TDC2016SP - Trilha Impressão 3DTDC2016SP - Trilha Impressão 3D
TDC2016SP - Trilha Impressão 3Dtdc-globalcode
 
Implementando acessibilidade em aplicações Android
Implementando acessibilidade em aplicações AndroidImplementando acessibilidade em aplicações Android
Implementando acessibilidade em aplicações AndroidPaula Caroline da Rosa
 
10 coisas que não me contaram sobre Testes
10 coisas que não me contaram sobre Testes10 coisas que não me contaram sobre Testes
10 coisas que não me contaram sobre TestesKatiana Maia
 

Andere mochten auch (20)

TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritaTDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com ArduínoTDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com Arduíno
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradoTDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito errado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Testes em go
Testes em goTestes em go
Testes em go
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Testing in go
Testing in goTesting in go
Testing in go
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Métricas que importam!
TDC2016SP - Métricas que importam!TDC2016SP - Métricas que importam!
TDC2016SP - Métricas que importam!
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
 
TDC2016SP - Trilha Impressão 3D
TDC2016SP - Trilha Impressão 3DTDC2016SP - Trilha Impressão 3D
TDC2016SP - Trilha Impressão 3D
 
Implementando acessibilidade em aplicações Android
Implementando acessibilidade em aplicações AndroidImplementando acessibilidade em aplicações Android
Implementando acessibilidade em aplicações Android
 
10 coisas que não me contaram sobre Testes
10 coisas que não me contaram sobre Testes10 coisas que não me contaram sobre Testes
10 coisas que não me contaram sobre Testes
 

Ähnlich wie TDC2016SP - Trilha Linux Embarcado

5/ GitHub Inner Source @ OPEN'16
5/ GitHub Inner Source @ OPEN'165/ GitHub Inner Source @ OPEN'16
5/ GitHub Inner Source @ OPEN'16Kangaroot
 
Serverless survival kit
Serverless survival kitServerless survival kit
Serverless survival kitSteve Houël
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS developmentCong Nguyen
 
How To Start Your InfoSec Career
How To Start Your InfoSec CareerHow To Start Your InfoSec Career
How To Start Your InfoSec CareerAndrew McNicol
 
Slides Webinar "Start your DevOps Journey with GITHUB" (in Italiano) by Kirat...
Slides Webinar "Start your DevOps Journey with GITHUB" (in Italiano) by Kirat...Slides Webinar "Start your DevOps Journey with GITHUB" (in Italiano) by Kirat...
Slides Webinar "Start your DevOps Journey with GITHUB" (in Italiano) by Kirat...Kiratech
 
The Need for Speed
The Need for SpeedThe Need for Speed
The Need for SpeedCapgemini
 
How Spotify reaches the 80%+ of satisfaction of the techies making developers...
How Spotify reaches the 80%+ of satisfaction of the techies making developers...How Spotify reaches the 80%+ of satisfaction of the techies making developers...
How Spotify reaches the 80%+ of satisfaction of the techies making developers...Francesco Corti
 
Beyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonBeyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonJacek Centkowski
 
Building an AI Assistant Factory - Rasa Summit 2021
Building an AI Assistant Factory - Rasa Summit 2021Building an AI Assistant Factory - Rasa Summit 2021
Building an AI Assistant Factory - Rasa Summit 2021Rasa Technologies
 
Tech Job Conference: Software Engineer @Criteo
Tech Job Conference: Software Engineer @CriteoTech Job Conference: Software Engineer @Criteo
Tech Job Conference: Software Engineer @CriteoGilles Legoux
 
OSS - enterprise adoption strategy and governance
OSS -  enterprise adoption strategy and governanceOSS -  enterprise adoption strategy and governance
OSS - enterprise adoption strategy and governancePrabir Kr Sarkar
 
Enterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetEnterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetChris Tankersley
 
Windows Store Apps using HTML and JavaScript: Become a Windows App Store deve...
Windows Store Apps using HTML and JavaScript: Become a Windows App Store deve...Windows Store Apps using HTML and JavaScript: Become a Windows App Store deve...
Windows Store Apps using HTML and JavaScript: Become a Windows App Store deve...Sacha Bruttin
 
How open source empowers startups to start big, with case Double Open Oy
How open source empowers startups to start big, with case Double Open OyHow open source empowers startups to start big, with case Double Open Oy
How open source empowers startups to start big, with case Double Open OyMindtrek
 
An Introduction to Kotlin for Android Development
An Introduction to Kotlin for Android DevelopmentAn Introduction to Kotlin for Android Development
An Introduction to Kotlin for Android DevelopmentVíctor Bolinches
 
CWIN17 telford api management, practical implementation experience - david ru...
CWIN17 telford api management, practical implementation experience - david ru...CWIN17 telford api management, practical implementation experience - david ru...
CWIN17 telford api management, practical implementation experience - david ru...Capgemini
 
DevSecOps - Colocando segurança na esteira
DevSecOps - Colocando segurança na esteiraDevSecOps - Colocando segurança na esteira
DevSecOps - Colocando segurança na esteiraDiego Gabriel Cardoso
 
Developing Apps with GPT-4 and ChatGPT_ Build Intelligent Chatbots, Content G...
Developing Apps with GPT-4 and ChatGPT_ Build Intelligent Chatbots, Content G...Developing Apps with GPT-4 and ChatGPT_ Build Intelligent Chatbots, Content G...
Developing Apps with GPT-4 and ChatGPT_ Build Intelligent Chatbots, Content G...BIHI Oussama
 
Devops Journey - internet tech startup
Devops Journey - internet tech startupDevops Journey - internet tech startup
Devops Journey - internet tech startupViresh Doshi
 
The Right Tool for the Right Project
The Right Tool for the Right ProjectThe Right Tool for the Right Project
The Right Tool for the Right ProjectOri Bendet
 

Ähnlich wie TDC2016SP - Trilha Linux Embarcado (20)

5/ GitHub Inner Source @ OPEN'16
5/ GitHub Inner Source @ OPEN'165/ GitHub Inner Source @ OPEN'16
5/ GitHub Inner Source @ OPEN'16
 
Serverless survival kit
Serverless survival kitServerless survival kit
Serverless survival kit
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS development
 
How To Start Your InfoSec Career
How To Start Your InfoSec CareerHow To Start Your InfoSec Career
How To Start Your InfoSec Career
 
Slides Webinar "Start your DevOps Journey with GITHUB" (in Italiano) by Kirat...
Slides Webinar "Start your DevOps Journey with GITHUB" (in Italiano) by Kirat...Slides Webinar "Start your DevOps Journey with GITHUB" (in Italiano) by Kirat...
Slides Webinar "Start your DevOps Journey with GITHUB" (in Italiano) by Kirat...
 
The Need for Speed
The Need for SpeedThe Need for Speed
The Need for Speed
 
How Spotify reaches the 80%+ of satisfaction of the techies making developers...
How Spotify reaches the 80%+ of satisfaction of the techies making developers...How Spotify reaches the 80%+ of satisfaction of the techies making developers...
How Spotify reaches the 80%+ of satisfaction of the techies making developers...
 
Beyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonBeyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, London
 
Building an AI Assistant Factory - Rasa Summit 2021
Building an AI Assistant Factory - Rasa Summit 2021Building an AI Assistant Factory - Rasa Summit 2021
Building an AI Assistant Factory - Rasa Summit 2021
 
Tech Job Conference: Software Engineer @Criteo
Tech Job Conference: Software Engineer @CriteoTech Job Conference: Software Engineer @Criteo
Tech Job Conference: Software Engineer @Criteo
 
OSS - enterprise adoption strategy and governance
OSS -  enterprise adoption strategy and governanceOSS -  enterprise adoption strategy and governance
OSS - enterprise adoption strategy and governance
 
Enterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetEnterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring Budget
 
Windows Store Apps using HTML and JavaScript: Become a Windows App Store deve...
Windows Store Apps using HTML and JavaScript: Become a Windows App Store deve...Windows Store Apps using HTML and JavaScript: Become a Windows App Store deve...
Windows Store Apps using HTML and JavaScript: Become a Windows App Store deve...
 
How open source empowers startups to start big, with case Double Open Oy
How open source empowers startups to start big, with case Double Open OyHow open source empowers startups to start big, with case Double Open Oy
How open source empowers startups to start big, with case Double Open Oy
 
An Introduction to Kotlin for Android Development
An Introduction to Kotlin for Android DevelopmentAn Introduction to Kotlin for Android Development
An Introduction to Kotlin for Android Development
 
CWIN17 telford api management, practical implementation experience - david ru...
CWIN17 telford api management, practical implementation experience - david ru...CWIN17 telford api management, practical implementation experience - david ru...
CWIN17 telford api management, practical implementation experience - david ru...
 
DevSecOps - Colocando segurança na esteira
DevSecOps - Colocando segurança na esteiraDevSecOps - Colocando segurança na esteira
DevSecOps - Colocando segurança na esteira
 
Developing Apps with GPT-4 and ChatGPT_ Build Intelligent Chatbots, Content G...
Developing Apps with GPT-4 and ChatGPT_ Build Intelligent Chatbots, Content G...Developing Apps with GPT-4 and ChatGPT_ Build Intelligent Chatbots, Content G...
Developing Apps with GPT-4 and ChatGPT_ Build Intelligent Chatbots, Content G...
 
Devops Journey - internet tech startup
Devops Journey - internet tech startupDevops Journey - internet tech startup
Devops Journey - internet tech startup
 
The Right Tool for the Right Project
The Right Tool for the Right ProjectThe Right Tool for the Right Project
The Right Tool for the Right Project
 

Mehr von tdc-globalcode

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadetdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucessotdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPAtdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinotdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicestdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publicatdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocustdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golangtdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QAtdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciatdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETtdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
 

Mehr von tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Kürzlich hochgeladen

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...anjaliyadav012327
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 

Kürzlich hochgeladen (20)

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 

TDC2016SP - Trilha Linux Embarcado

  • 1. COPYRIGHT 2016 – Fundação CERTI C++ and Embedded Linux: a perfect match Vinicius Zein | Fundação CERTI
  • 2. COPYRIGHT 2016 – Fundação CERTI https://br.linkedin.com/in/viniciuszein Vinicius Tadeu Zein R&D Coordinator @CERTI Foundation •  Responsible for the Embedded Systems team •  More than 10 years developing Embedded Systems •  In companies like Atmel, LG Electronics and CERTI
  • 3. COPYRIGHT 2016 – Fundação CERTI R&D Institute Founded in 1984 with the mission to develop technology solutions for products and processes 500 employees Private, but results are reinvested in R&D MCTI and SUFRAMA accredited – projects with “Lei de Informática”, “Lei do Bem” and Embrapii More than 500 clients around the world
  • 4. COPYRIGHT 2016 – Fundação CERTI The information in this presentation was compiled from sources believed to be reliable for informational purposes only. Content includes opinions, presentations, articles, hyperlinks or other third party content (“Third Party Material”) that is not intended to, nor constitutes an endorsement by CERTI of the author or the Third Party Materials. The content and views within the Third Party Material are solely those of the third party and do not reflect the opinions of CERTI. The opinions expressed in this presentation and on the following slides are solely those of the presenter and not necessarily those of CERTI. CERTI does not guarantee the accuracy or reliability of the information provided herein. . Disclaimer
  • 5. COPYRIGHT 2016 – Fundação CERTI SU MMA RY CHAPTER 1 Embedded Linux CHAPTER 2 C++ CHAPTER 3 Development tools and debugging CHAPTER 4 Test frameworks CHAPTER 5 Test driven development CHAPTER 6 Final considerations
  • 6. COPYRIGHT 2016 – Fundação CERTI Embedded Linux Chapter 1
  • 7. COPYRIGHT 2016 – Fundação CERTI CAPÍTULO 1 | LINUX EMBARCADO
  • 8. COPYRIGHT 2016 – Fundação CERTI Telephone exchanges IP Phones and Smartphones TVs and Set-top boxes Printers Electronic Control Units for cars Cameras Android systems CHAPTER 1 | EMBEDDED LINUX
  • 9.
  • 10. COPYRIGHT 2016 – Fundação CERTI C++ CHAPTER 2
  • 11. COPYRIGHT 2016 – Fundação CERTI C++ “cee plus plus” CHAPTER 2 Multi-paradigm Object oriented Templates, inline functions Metaprogramming High-performative and powerfull Lots of tools Compatibility with C - just in case ;) STL, Boost, ACE Evolving language CHAPTER 2 | C++ C++85 style "C with Classes”, C++98, C++03, C++11, C++14, C++17
  • 12. COPYRIGHT 2016 – Fundação CERTI Don’t lower your level of abstraction without a good reason! Low-levelimplies Morecode Morebugs Highermaintenancecosts
  • 13. COPYRIGHT 2016 – Fundação CERTI Embedded Linux C++ Perfect match CHAPTER 2 | C++
  • 14. COPYRIGHT 2016 – Fundação CERTI DEVELOPMENT TOOLS AND DEBUGGING CHAPTER 3
  • 15. COPYRIGHT 2016 – Fundação CERTI CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING “Making Embedded Linux Easy Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.” Build systems > Buildroot
  • 16. COPYRIGHT 2016 – Fundação CERTI CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING Build systems > Yocto Project “It's not an embedded Linux distribution – it creates a custom one for you”
  • 17. COPYRIGHT 2016 – Fundação CERTI CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING Build systems > Autoconf Rake Boost.Build Qmake Scons CMake
  • 18. COPYRIGHT 2016 – Fundação CERTI CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING IDEs * Code edition and navigation Vim Emacs Sublime Text 2 Eclipse CDT Netbeans SlickEdit QtCreator JetBrains AppCode
  • 19. If debugging is the process of removing bugs, then programming must be the process of putting them in Edsger Dijkstra
  • 20. COPYRIGHT 2016 – Fundação CERTI CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING Debugging Logs Command Line Interface (CLI) gdb (post morten) gdb + gdbserver ddd Google BreakPad For each bug found, a new unit test.
  • 21. COPYRIGHT 2016 – Fundação CERTI CAPÍTULO 3 | FERRAMENTAS DESENVOLVIMENTO E DEBUGGING Debugging > GDB Post morten gdb <program> -c <core_file> bt full -> backtrace print <variable> frame <frame_id> thread <thread_id>
  • 22. COPYRIGHT 2016 – Fundação CERTI
  • 23. COPYRIGHT 2016 – Fundação CERTI
  • 24. COPYRIGHT 2016 – Fundação CERTI
  • 25. COPYRIGHT 2016 – Fundação CERTI CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING Debugging > Breakpad
  • 26. COPYRIGHT 2016 – Fundação CERTI Debugging > Breakpad CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
  • 27. COPYRIGHT 2016 – Fundação CERTI Continuos integration CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
  • 28. COPYRIGHT 2016 – Fundação CERTI Other tools > Static annalysis coverity, cppcheck Coverage– cccc Valgrind, tcmalloc CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
  • 29. COPYRIGHT 2016 – Fundação CERTI
  • 30. COPYRIGHT 2016 – Fundação CERTI Code coverage CHAPTER 3 | DEVELOPMENT TOOLS AND DEBUGGING
  • 31. COPYRIGHT 2016 – Fundação CERTI
  • 33. COPYRIGHT 2016 – Fundação CERTI CHAPTER 4 | TEST FRAMEWORKS FOR C++ Unit tests – gtest > Well documented Multiplatform Linux, Windows, Mac OS X Easy to use, easy to configure 1 execution > multiple failures
  • 34. COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
  • 35. COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
  • 36. COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
  • 37. COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
  • 38. COPYRIGHT 2016 – Fundação CERTI Unit tests – gtest
  • 39. COPYRIGHT 2016 – Fundação CERTI gmock > Google Mocking Framework for tests in C++ Real targets are not always available Simulating behavior Creating emulators CHAPTER 4 | TEST FRAMEWORKS FOR C++
  • 40. COPYRIGHT 2016 – Fundação CERTI gmock
  • 41. COPYRIGHT 2016 – Fundação CERTI gmock
  • 42. COPYRIGHT 2016 – Fundação CERTI gmock
  • 43. COPYRIGHT 2016 – Fundação CERTI gmock
  • 44. COPYRIGHT 2016 – Fundação CERTI gmock
  • 45. COPYRIGHT 2016 – Fundação CERTI Google Benchmark https://github.com/google/benchmark Function benchmarking CHAPTER 4 | TEST FRAMEWORKS FOR C++
  • 46. COPYRIGHT 2016 – Fundação CERTI Google Benchmark
  • 48. COPYRIGHT 2016 – Fundação CERTI CHAPTER 5 | TEST DRIVEN DEVELOPMENT
  • 50. COPYRIGHT 2016 – Fundação CERTI Use smart pointers std::shared_ptr, std::scoped_ptr, std::unique_ptr
  • 51. COPYRIGHT 2016 – Fundação CERTI RAIIRAII
  • 52. COPYRIGHT 2016 – Fundação CERTI CAPÍTULO 6 | Final considerations RAII RAII Resource Acquisition Is Initialization
  • 53. COPYRIGHT 2016 – Fundação CERTI Use a code standard h#p://www.chromium.org/developers/coding-style h#p://google-styleguide.googlecode.com/svn/trunk/cppguide.xml h#p://clang.llvm.org/docs/ClangFormat.html
  • 54. COPYRIGHT 2016 – Fundação CERTI Unit test first Then code >TDD
  • 55. COPYRIGHT 2016 – Fundação CERTI Prefere STL/Boost algorithms
  • 56. COPYRIGHT 2016 – Fundação CERTI ?
  • 57. COPYRIGHT 2016 – Fundação CERTI Thanks! Vinicius Zein vtz@certi.org.br
  • 58. COPYRIGHT 2016 – Fundação CERTI References Slide 6 h#p://events.linuxfounda?on.org/sites/events/files/slides/csimmonds-embedded-linux-?meline-2013.pdf Slide 11 h#p://ecn.channel9.msdn.com/events/GoingNa?ve12/GN12Cpp11Style.pdf Slides 24, 25 and 26 h#ps://code.google.com/p/google-breakpad/wiki/GeJngStartedWithBreakpad Slide 48 h#p://www.pathfindersolns.com/