Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir

Weverton Timoteo
Weverton TimoteoCTO at SourceLevel
Qualidade
A Panacéia para seu código Elixir
Hello!
Weverton Timoteo
@wevtimoteo
● Very useful item to up your RPG
character level
● I’d recommend to buy at least 5
● Drops from some medium level
mobs
Panacea
● Was a goddess of universal remedy
● Panacea traditionally had a potion
with which she healed the sick
● A substance meant to cure all
diseases
● "Something used to solve all
problems"
Panacea (from Greek mythology)
“
Any fool can write code that a
computer can understand.
Good programmers write code that
humans can understand.
– Martin Fowler
How Do You Define
“Good Code” ?
maintainability?
Efficiency Modularity Elegance
What's the first thing that comes to your
mind?
Proper design
decision
You write readable code because it helps other
people to read your code“
Code Complete, Steve McConnel
Error rate
Comprehensibility
Reviewability
Debugging
Modifiability
Simplicity
is it about the number of lines?
Readability
comments, conventions, naming
Modularity
its all about reusability
Layering
attention to the boundaries of each layer
Design
plan before build
Efficiency
too many connections?
Elegance
solve problems with proper solutions
Clarity
do you really know what you have to do?
Balance
How to achieve
this?
● Erlang Open Telecom Protocol
● it's not that much about telecom anymore
● libraries available with the virtual machine
● OTP compliant: basically following process architecture
OTP (Open Telecom Protocol)
BEAM
● Bogdan's Erlang Abstract Machine
○ emulator and loader were first implemented by Bogumil Hausman
● Björn's Erlang Abstract Machine
○ completely rewritten by Björn Gustavsson
● BEAM bytecode files have the .beam file extension
● Static analysis tool that identifies software
discrepancies, such as:
○ definite type errors
○ code that has become dead
○ unreachable because of programming error
○ unnecessary tests
● Erlang modules or entire (sets of) applications
(.beam files)
DIscrepancy AnaLYZer for ERlang programs
DIALYZER
The Persistent Lookup Table (PLT)
● Stores the result of an analysis (acting like a cache)
● Then it can be used as starting point for later analyses
● .plt file extension
Gradual Typing
Best of Static and Dynamic Worlds:
● Some variables and functions can have type declaration
● Developer decides which ones makes sense to declare
● Tool or Compiler can still check correctness and consistency of
usage
● It allows us to generate tests from the code
examples in a module/function/macro's
documentation
● Similar to Python's doctest
● Able to refer to specific numbered scenarios
● Copy-pasting examples from an actual IEx session
Doctests
● Run Dialyzer (test environment) to see how the
types in API and the usage in the tests (calls)
Using Dialyzer for tests
Dialyzer (Cons)
● Output in Erlang format
● No indentation
● No formatting
Dialixyr
Mix tasks to simplify use of
Dialyzer in Elixir projects
Dialixyr - Explain
Dialixyr - Explain
Dialixyr - Explain
Dialixyr - Ignore file
is a tool that analyzes source code to flag
programming errors, bugs, stylistic errors,
and suspicious constructs
- Wikipedia
What is a linter?
“
Homoiconicity
● The code used to express a program is
written using the data structures of
that language
● The Lisp family languages (Common
Lisp, Scheme, Clojure, etc)
● Code is Data, Data is Code
Abstract Syntax Tree (AST)
● It tells us how expressions are represented
● Internal representation of our code
● Using quote/2 we can convert Elixir code into its
representation
AST: quote/2
Using quote/2 we can convert Elixir code into its representation
Is Elixir Homoiconic?
No!
If so:
● We would be writing in ASTs form
● It would bypass the lexing and parsing phase of Elixir compilation
● Formats the given files and patterns
Code Formatting
● Code Complexity (Cyclomatic Complexity, etc)
● Style and Pattern Checking
● Performance
● Unused code
● Reports
● Outdated packages
● Code without tests (no coverage)
● Magic number detector
What a Linter can do?
Dogma
Credo
● Also static analysis tool
● Checks
○ code consistency
○ readability
○ styleguides
○ conventions
● Useful for learning
mix credo categories
mix credo categories
Credo
And if all checks
succeed ?
Thanks!Let’s start analyzing
our code!
|> team
|> hiring()
References
● Code Complete: A Practical Handbook of Software Construction
● Elixir, processes and this thing called OTP
● Introducing HDD: Hughes Driven Development, com José Valim
● Credo
● Dialyzer
● Dialixyr
● Ebert: the code review assistant for your organization
● Metaprogramming in Elixir
More References
● ElixirConf 2016 - Dialyzer: Optimistic Type Checking for Erlang and Elixir
by Jason Voegele
● Gradualizer: A Gradual Type System for Erlang
● Learn You Some Erlang: OTP
1 of 48

Recommended

JetBrains MPS by
JetBrains MPSJetBrains MPS
JetBrains MPSВладимир Кожаев
1.4K views43 slides
ANTLR4 in depth by
ANTLR4 in depthANTLR4 in depth
ANTLR4 in depthВладимир Кожаев
2.8K views19 slides
Technical screening .Net Developer by
Technical screening  .Net DeveloperTechnical screening  .Net Developer
Technical screening .Net DeveloperTom Henricksen
588 views15 slides
Python typing module by
Python typing modulePython typing module
Python typing moduleRyan Blunden
1.2K views27 slides
Practical pointers for better code review by
Practical pointers for better code reviewPractical pointers for better code review
Practical pointers for better code reviewkhink
155 views14 slides
Design concerns for concrete syntax by
Design concerns for concrete syntaxDesign concerns for concrete syntax
Design concerns for concrete syntaxMikhail Barash
536 views17 slides

More Related Content

What's hot

Importance of the quality of code by
Importance of the quality of codeImportance of the quality of code
Importance of the quality of codeShwe Yee
12K views16 slides
What do we really know about the differences between static and dynamic types? by
What do we really know about the differences between static and dynamic types?What do we really know about the differences between static and dynamic types?
What do we really know about the differences between static and dynamic types?Devnology
9.3K views51 slides
C# 4.0 and .NET 4.0 by
C# 4.0 and .NET 4.0C# 4.0 and .NET 4.0
C# 4.0 and .NET 4.0Buu Nguyen
1.5K views22 slides
Python type hints by
Python type hintsPython type hints
Python type hintsAyla Khan
38 views13 slides
Devoxx 2013 Summary/Keynotes by
Devoxx 2013 Summary/KeynotesDevoxx 2013 Summary/Keynotes
Devoxx 2013 Summary/KeynotesAliaksandr Kazlou
872 views23 slides
ANTLR4 and its testing by
ANTLR4 and its testingANTLR4 and its testing
ANTLR4 and its testingKnoldus Inc.
3.9K views21 slides

What's hot(20)

Importance of the quality of code by Shwe Yee
Importance of the quality of codeImportance of the quality of code
Importance of the quality of code
Shwe Yee12K views
What do we really know about the differences between static and dynamic types? by Devnology
What do we really know about the differences between static and dynamic types?What do we really know about the differences between static and dynamic types?
What do we really know about the differences between static and dynamic types?
Devnology9.3K views
C# 4.0 and .NET 4.0 by Buu Nguyen
C# 4.0 and .NET 4.0C# 4.0 and .NET 4.0
C# 4.0 and .NET 4.0
Buu Nguyen1.5K views
Python type hints by Ayla Khan
Python type hintsPython type hints
Python type hints
Ayla Khan38 views
ANTLR4 and its testing by Knoldus Inc.
ANTLR4 and its testingANTLR4 and its testing
ANTLR4 and its testing
Knoldus Inc.3.9K views
Deep learning for NLP and Transformer by Arvind Devaraj
 Deep learning for NLP  and Transformer Deep learning for NLP  and Transformer
Deep learning for NLP and Transformer
Arvind Devaraj1.4K views
Data Generation with PROSPECT: a Probability Specification Tool by Ivan Ruchkin
Data Generation with PROSPECT: a Probability Specification ToolData Generation with PROSPECT: a Probability Specification Tool
Data Generation with PROSPECT: a Probability Specification Tool
Ivan Ruchkin116 views
Coding standards and guidelines by brijraj_singh
Coding standards and guidelinesCoding standards and guidelines
Coding standards and guidelines
brijraj_singh8.2K views
PL Lecture 01 - preliminaries by Schwannden Kuo
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
Schwannden Kuo129 views
Clean code, Feb 2012 by cobyst
Clean code, Feb 2012Clean code, Feb 2012
Clean code, Feb 2012
cobyst1.3K views
Documenting code yapceu2016 by Søren Lund
Documenting code yapceu2016Documenting code yapceu2016
Documenting code yapceu2016
Søren Lund363 views
PL Lecture 02 - Binding and Scope by Schwannden Kuo
PL Lecture 02 - Binding and ScopePL Lecture 02 - Binding and Scope
PL Lecture 02 - Binding and Scope
Schwannden Kuo109 views
Documenting Code - Patterns and Anti-patterns - NLPW 2016 by Søren Lund
Documenting Code - Patterns and Anti-patterns - NLPW 2016Documenting Code - Patterns and Anti-patterns - NLPW 2016
Documenting Code - Patterns and Anti-patterns - NLPW 2016
Søren Lund535 views

Similar to Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir

Quick Intro to Clean Coding by
Quick Intro to Clean CodingQuick Intro to Clean Coding
Quick Intro to Clean CodingEcommerce Solution Provider SysIQ
659 views29 slides
Lecture 1 introduction to language processors by
Lecture 1  introduction to language processorsLecture 1  introduction to language processors
Lecture 1 introduction to language processorsRebaz Najeeb
1.3K views33 slides
Software Craftmanship - Cours Polytech by
Software Craftmanship - Cours PolytechSoftware Craftmanship - Cours Polytech
Software Craftmanship - Cours Polytechyannick grenzinger
31 views66 slides
Ic lecture8 by
Ic lecture8 Ic lecture8
Ic lecture8 AttaullahRahimoon
35 views28 slides
Introduction to programming c by
Introduction to programming cIntroduction to programming c
Introduction to programming cMd. Rakibuzzaman Khan Pathan
41 views25 slides
Trans coder by
Trans coderTrans coder
Trans coderPriyaM781673
77 views15 slides

Similar to Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir(20)

Lecture 1 introduction to language processors by Rebaz Najeeb
Lecture 1  introduction to language processorsLecture 1  introduction to language processors
Lecture 1 introduction to language processors
Rebaz Najeeb1.3K views
EMPEX LA 2018 - Inclusion Starts with Docs by Pete Gamache
EMPEX LA 2018 - Inclusion Starts with DocsEMPEX LA 2018 - Inclusion Starts with Docs
EMPEX LA 2018 - Inclusion Starts with Docs
Pete Gamache148 views
Programming Languages #devcon2013 by Iván Montes
Programming Languages #devcon2013Programming Languages #devcon2013
Programming Languages #devcon2013
Iván Montes1.2K views
Working With Legacy Code by Andrea Polci
Working With Legacy CodeWorking With Legacy Code
Working With Legacy Code
Andrea Polci3.7K views
Half-automatic Compilable Source Code Recovery by Joxean Koret
Half-automatic Compilable Source Code RecoveryHalf-automatic Compilable Source Code Recovery
Half-automatic Compilable Source Code Recovery
Joxean Koret541 views
1 cc by Jay Soni
1 cc1 cc
1 cc
Jay Soni986 views
Computer programing 111 lecture 1 by ITNet
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1
ITNet141 views
Algorithm and pseudo codes by hermiraguilar
Algorithm and pseudo codesAlgorithm and pseudo codes
Algorithm and pseudo codes
hermiraguilar48.2K views
Compiler an overview by amudha arul
Compiler  an overviewCompiler  an overview
Compiler an overview
amudha arul240 views
Compier Design_Unit I_SRM.ppt by Apoorv Diwan
Compier Design_Unit I_SRM.pptCompier Design_Unit I_SRM.ppt
Compier Design_Unit I_SRM.ppt
Apoorv Diwan88 views
Programming Paradigm & Languages by Gaditek
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
Gaditek398 views

More from Weverton Timoteo

[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s... by
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...Weverton Timoteo
344 views47 slides
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho? by
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?Weverton Timoteo
89 views44 slides
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir by
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com ElixirWeverton Timoteo
163 views27 slides
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código by
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoRuby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoWeverton Timoteo
255 views42 slides
[Gophercon 2019] Analysing code quality with linters and static analysis by
[Gophercon 2019] Analysing code quality with linters and static analysis[Gophercon 2019] Analysing code quality with linters and static analysis
[Gophercon 2019] Analysing code quality with linters and static analysisWeverton Timoteo
555 views49 slides
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis) by
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)Weverton Timoteo
320 views32 slides

More from Weverton Timoteo(18)

[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s... by Weverton Timoteo
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
Weverton Timoteo344 views
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho? by Weverton Timoteo
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?
Weverton Timoteo89 views
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir by Weverton Timoteo
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
Weverton Timoteo163 views
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código by Weverton Timoteo
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoRuby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
Weverton Timoteo255 views
[Gophercon 2019] Analysing code quality with linters and static analysis by Weverton Timoteo
[Gophercon 2019] Analysing code quality with linters and static analysis[Gophercon 2019] Analysing code quality with linters and static analysis
[Gophercon 2019] Analysing code quality with linters and static analysis
Weverton Timoteo555 views
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis) by Weverton Timoteo
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)
Weverton Timoteo320 views
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir by Weverton Timoteo
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
Weverton Timoteo522 views
How to draw a map - What is projections? by Weverton Timoteo
How to draw a map - What is projections?How to draw a map - What is projections?
How to draw a map - What is projections?
Weverton Timoteo410 views
Gerenciando dependências front-end no Rails by Weverton Timoteo
Gerenciando dependências front-end no RailsGerenciando dependências front-end no Rails
Gerenciando dependências front-end no Rails
Weverton Timoteo324 views
Definindo a quantidade de workers para sua app by Weverton Timoteo
Definindo a quantidade de workers para sua appDefinindo a quantidade de workers para sua app
Definindo a quantidade de workers para sua app
Weverton Timoteo274 views
Como definir a quantidade de workers para sua aplicação by Weverton Timoteo
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicação
Weverton Timoteo547 views
Swift language - A fast overview of some features by Weverton Timoteo
Swift language - A fast overview of some featuresSwift language - A fast overview of some features
Swift language - A fast overview of some features
Weverton Timoteo1.1K views

Recently uploaded

Uni Systems for Power Platform.pptx by
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
61 views21 slides
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...Bernd Ruecker
50 views69 slides
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TShapeBlue
112 views34 slides
Microsoft Power Platform.pptx by
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptxUni Systems S.M.S.A.
80 views38 slides
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc
160 views29 slides
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
50 views35 slides

Recently uploaded(20)

iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker50 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue112 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc160 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty62 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software385 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue163 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue140 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue146 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE69 views
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue88 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue138 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely78 views
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue101 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue123 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10126 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue154 views

Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir