SlideShare a Scribd company logo
All Good Things Scale
10th Open Hardware Summit - 03.13.2020
Amanda (w0z) Wozniak
This is more of a story than a how-to checklist!
Throwback! Although, I think I’m the first to clip this slide from 2010….
What does it take
to make great
things happen?
● Technology
● People
● Process
Put another way...
● Goals
● People
● Tools
This is not a joke!
● Right Tools
+
● Right Squad
=
● SQUAD GOALS
A long time ago…
Alice wanted to write code.
A Brief History of Software’s Increasing Utility
1950s - Formally Provable
Languages
FORTRAN and COBOL - great for
high-reliability but challenging to use
1972 - C
Bell Labs creates ‘C’
1978 - C
“The C Programming Language”
makes ‘C’ accessible to coders
1989 - C++ 2.0
object oriented programming of
the future (with documentation)
1990s - Moar Languages!
new languages emphasize
“codeability” and formalism
and many use common build
tools and linkers (GNU)
1965 - Object Oriented
1967 - Libraries + Linking
SIMULA 67 combines object oriented
programming with classes, libraries, and
compile-time linking
https://en.wikipedia.org/wiki/History_of_programming_languages
https://en.wikipedia.org/wiki/Library_(computing)
A Brief History of Software Development + Dev
Tools
1969 - Punchcards
good luck debugging that run
2001 - SVN Bootstraps
2001 - IBM frees ECLIPSE
syntax highlighting, an integrated
compiler, debugger, unit test AND
multi-user source control?
2005 - GIT is born
linux kernel developer count
grows from ~1 to ~3,700
2016 - GitHub Goes Big
> 14,000,000 users
> 35,000,000 repos
biggest code repository on Earth
https://www.iri.com/blog/iri/business/brief-history-of-eclipse/
https://blog.codinghorror.com/fifty-years-of-software-development/
1976 - Text
Editors
vi + emacs
start a religious war
What made ECLIPSE and GIT
so good that no one jokes
about ‘vi’ anymore?
Eclipse
User-Friendly Workspace
- Syntax highlighting
- Code Navigation
- Code Completion
- Multiple language support
- Multiple OS support
All The Tools In One Spot
- Debugger
- Unit Test
- Refactoring
- Source Control / Versioning
FREE - FREE - FREE - FREE
https://en.wikipedia.org/wiki/Syntax_highlighting
GIT (and GitHub)
Takes the Pain out Multiple Users
Participating in a Software Project
- Hosting + Sharing == More Devs
- Push/Pull/Merge
- Code Review
- Automated Build Tools + Unit
Test
- Continuous Integration
Practically Builds Itself
- Community == Acceleration
- Tool-based Bootstrapping
FREE - FREE - FREE - FREEhttps://en.wikipedia.org/wiki/Continuous_integration
https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
Let’s decompile the recipe
for success into ingredients!
accessibility
BUILD TOOLS SO USABLE THAT TODAY’S NOVICES
CAN CONTRIBUTE 10x MORE THAN LAST YEAR’S EXPERTS
WITH HALF THE SWEARING
Accessible Design Principles
● Use Classes + Inheritance
● Provide Great Libraries
● Seamless Linking
● Seamless Build Systems
● Clean User + Design Interfaces
● Intuitive Syntax
● Limit Use Error Through Design
● Remove User Touches
● Write Thoughtful Error Messages
● Democratize Expertise:
Through Process + Offloading
don’t be like MakeFiles!
https://edublocks.org/circuitpy.html https://oshpark.com/ https://fritzing.org/home/
test
TEST IS THE PRODUCT BEHIND THE PRODUCT
https://www.bunniestudios.com/blog/?p=5450
Test Drives Innovation...
No/Bad Test Drives Failure
● Test is a product, too!
(and 3-4x the work)
(with all the UX requirements)
● Test is for HW and SW
● Integrated Test is Best
● Some Test > No Test
● Real, online test unlocks
exponential design velocity
https://www.bunniestudios.com/blog/?p=5450
automation
TEDIOUS, ERROR-PRONE, MANUAL REPETITION IS ENTROPY
PROFOUND CREATIVITY REQUIRES STRATEGIC LAZINESS
https://www.bunniestudios.com/blog/?p=5450
Automation Requires A
Stable Foundation
Open Source HW Comes in Many Stable,
Mature Flavors
● Arduino
● Circuit Playground
Git Automates FW Builds for HW
Adafruit CircuitPython Stats on Git Action
● each PR builds against 116 boards
in 12 languages
● automated 12 platform checks for
Arduino hardware
https://circuitpython.org/downloads
https://github.com/adafruit/circuitpython/pulls?q=is%3Apr+is%3Aclosed
scale
EVEN IF I’M SMART - ONE ME IS NOT SMARTER THAN ALL OF YOU
Open Source
(hardware) Tools
EE Core Development - KiCad + ngspice
ME Core Development - FreeCAD
Accessible CAD Front-End - Fritzing
Hierarchical Design Reuse - none yet!
Pull + Merge Tools for HW - none yet!
Unit Test + Debug in CAD - none yet
Manufacturing + Repo: OSHPark
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-004-computation-structures-spring-2009/tools/
… there’s a secret ingredient
altruism
WISE SELFISHNESS MEANS PEOPLE WITH EXPERTISE, TIME, AND
RESOURCES CONTRIBUTE TO PROJECTS FOR THE SAKE OF
ENABLING MORE PEOPLE TO CONTRIBUTE TO COLLECTIVE GOALS
… so what happens next?
A Brief History of Open Source Hardware Tools
1992 - Basic HW CAD
KiCad is released, creating
open-source schematic capture
and PCB design
2021 - Hierarchical Design
benevolent group with massive
engineering resources releases
first open-source visual circuit
editor with modular circuit
libraries
2023 - Usable Hardware Unit Test
Part and circuit libraries add behavioral test support
2031 - Full Collab Mode
> 10,000 users
> 30,000 repos
open source HW designs are
mature, robust, and everywhere
1993 - Low-Level Sim
ngspice can simulate
low-level circuits (current,
voltage, transients)
http://ngspice.sourceforge.net/resources.html
https://esim.fossee.in/
2024 - Concurrent Design
version sets for sch/pcb capture + test
Community-Created Tools
and Libraries of Expertise
Build The Dream
Thanks!
Questions?
Comments?
Concerns?
woz@mit.edu

More Related Content

Similar to All good things scale - ohs 2020 - 03.13.2020

C language in our world 2019
C language in our world 2019C language in our world 2019
C language in our world 2019
Juraj Michálek
 
H2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneH2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to Everyone
Jo-fai Chow
 
C++ in our world
C++ in our worldC++ in our world
C++ in our world
Juraj Michálek
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016
Juraj Michálek
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studio
bryan costanich
 
"The Vision API Maze: Options and Trade-offs," a Presentation from the Khrono...
"The Vision API Maze: Options and Trade-offs," a Presentation from the Khrono..."The Vision API Maze: Options and Trade-offs," a Presentation from the Khrono...
"The Vision API Maze: Options and Trade-offs," a Presentation from the Khrono...
Edge AI and Vision Alliance
 
Bbs214 Cloud IDEs
Bbs214 Cloud IDEsBbs214 Cloud IDEs
Bbs214 Cloud IDEs
Ozgur Karakaya
 
IoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveIoT Development from Software Developer Perspective
IoT Development from Software Developer Perspective
Andri Yadi
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Luciano Resende
 
Code, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayCode, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers way
Alex Baitov
 
Legacy of Void*
Legacy of Void*Legacy of Void*
Legacy of Void*
Adam Crain
 
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
Daniel Bryant
 
Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...
Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...
Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...
Intel Software Brasil
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Florent BENOIT
 
DEEP: a user success story
DEEP: a user success storyDEEP: a user success story
DEEP: a user success story
EOSC-hub project
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
arun.arwachin
 
10 Reasons Why Java Now Rocks More Than Ever
10 Reasons Why Java Now Rocks More Than Ever10 Reasons Why Java Now Rocks More Than Ever
10 Reasons Why Java Now Rocks More Than Ever
Geert Bevin
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
PROIDEA
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
Andy Piper
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
jaxLondonConference
 

Similar to All good things scale - ohs 2020 - 03.13.2020 (20)

C language in our world 2019
C language in our world 2019C language in our world 2019
C language in our world 2019
 
H2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneH2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to Everyone
 
C++ in our world
C++ in our worldC++ in our world
C++ in our world
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studio
 
"The Vision API Maze: Options and Trade-offs," a Presentation from the Khrono...
"The Vision API Maze: Options and Trade-offs," a Presentation from the Khrono..."The Vision API Maze: Options and Trade-offs," a Presentation from the Khrono...
"The Vision API Maze: Options and Trade-offs," a Presentation from the Khrono...
 
Bbs214 Cloud IDEs
Bbs214 Cloud IDEsBbs214 Cloud IDEs
Bbs214 Cloud IDEs
 
IoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveIoT Development from Software Developer Perspective
IoT Development from Software Developer Perspective
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
 
Code, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayCode, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers way
 
Legacy of Void*
Legacy of Void*Legacy of Void*
Legacy of Void*
 
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
 
Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...
Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...
Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
DEEP: a user success story
DEEP: a user success storyDEEP: a user success story
DEEP: a user success story
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 
10 Reasons Why Java Now Rocks More Than Ever
10 Reasons Why Java Now Rocks More Than Ever10 Reasons Why Java Now Rocks More Than Ever
10 Reasons Why Java Now Rocks More Than Ever
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
 

Recently uploaded

Certificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi AhmedCertificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi Ahmed
Mahmoud Morsy
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
Hematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood CountHematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood Count
shahdabdulbaset
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
AjmalKhan50578
 
cnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classicationcnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classication
SakkaravarthiShanmug
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
Prakhyath Rai
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Seminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptxSeminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptx
Madan Karki
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
Data Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason WebinarData Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason Webinar
UReason
 

Recently uploaded (20)

Certificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi AhmedCertificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi Ahmed
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 
Hematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood CountHematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood Count
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
 
cnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classicationcnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classication
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Seminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptxSeminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptx
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
Data Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason WebinarData Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason Webinar
 

All good things scale - ohs 2020 - 03.13.2020

  • 1. All Good Things Scale 10th Open Hardware Summit - 03.13.2020 Amanda (w0z) Wozniak
  • 2. This is more of a story than a how-to checklist! Throwback! Although, I think I’m the first to clip this slide from 2010….
  • 3. What does it take to make great things happen? ● Technology ● People ● Process
  • 4. Put another way... ● Goals ● People ● Tools
  • 5. This is not a joke! ● Right Tools + ● Right Squad = ● SQUAD GOALS
  • 6. A long time ago… Alice wanted to write code.
  • 7. A Brief History of Software’s Increasing Utility 1950s - Formally Provable Languages FORTRAN and COBOL - great for high-reliability but challenging to use 1972 - C Bell Labs creates ‘C’ 1978 - C “The C Programming Language” makes ‘C’ accessible to coders 1989 - C++ 2.0 object oriented programming of the future (with documentation) 1990s - Moar Languages! new languages emphasize “codeability” and formalism and many use common build tools and linkers (GNU) 1965 - Object Oriented 1967 - Libraries + Linking SIMULA 67 combines object oriented programming with classes, libraries, and compile-time linking https://en.wikipedia.org/wiki/History_of_programming_languages https://en.wikipedia.org/wiki/Library_(computing)
  • 8. A Brief History of Software Development + Dev Tools 1969 - Punchcards good luck debugging that run 2001 - SVN Bootstraps 2001 - IBM frees ECLIPSE syntax highlighting, an integrated compiler, debugger, unit test AND multi-user source control? 2005 - GIT is born linux kernel developer count grows from ~1 to ~3,700 2016 - GitHub Goes Big > 14,000,000 users > 35,000,000 repos biggest code repository on Earth https://www.iri.com/blog/iri/business/brief-history-of-eclipse/ https://blog.codinghorror.com/fifty-years-of-software-development/ 1976 - Text Editors vi + emacs start a religious war
  • 9. What made ECLIPSE and GIT so good that no one jokes about ‘vi’ anymore?
  • 10. Eclipse User-Friendly Workspace - Syntax highlighting - Code Navigation - Code Completion - Multiple language support - Multiple OS support All The Tools In One Spot - Debugger - Unit Test - Refactoring - Source Control / Versioning FREE - FREE - FREE - FREE https://en.wikipedia.org/wiki/Syntax_highlighting
  • 11. GIT (and GitHub) Takes the Pain out Multiple Users Participating in a Software Project - Hosting + Sharing == More Devs - Push/Pull/Merge - Code Review - Automated Build Tools + Unit Test - Continuous Integration Practically Builds Itself - Community == Acceleration - Tool-based Bootstrapping FREE - FREE - FREE - FREEhttps://en.wikipedia.org/wiki/Continuous_integration https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
  • 12. Let’s decompile the recipe for success into ingredients!
  • 13. accessibility BUILD TOOLS SO USABLE THAT TODAY’S NOVICES CAN CONTRIBUTE 10x MORE THAN LAST YEAR’S EXPERTS WITH HALF THE SWEARING
  • 14. Accessible Design Principles ● Use Classes + Inheritance ● Provide Great Libraries ● Seamless Linking ● Seamless Build Systems ● Clean User + Design Interfaces ● Intuitive Syntax ● Limit Use Error Through Design ● Remove User Touches ● Write Thoughtful Error Messages ● Democratize Expertise: Through Process + Offloading don’t be like MakeFiles! https://edublocks.org/circuitpy.html https://oshpark.com/ https://fritzing.org/home/
  • 15. test TEST IS THE PRODUCT BEHIND THE PRODUCT https://www.bunniestudios.com/blog/?p=5450
  • 16. Test Drives Innovation... No/Bad Test Drives Failure ● Test is a product, too! (and 3-4x the work) (with all the UX requirements) ● Test is for HW and SW ● Integrated Test is Best ● Some Test > No Test ● Real, online test unlocks exponential design velocity https://www.bunniestudios.com/blog/?p=5450
  • 17. automation TEDIOUS, ERROR-PRONE, MANUAL REPETITION IS ENTROPY PROFOUND CREATIVITY REQUIRES STRATEGIC LAZINESS https://www.bunniestudios.com/blog/?p=5450
  • 18. Automation Requires A Stable Foundation Open Source HW Comes in Many Stable, Mature Flavors ● Arduino ● Circuit Playground Git Automates FW Builds for HW Adafruit CircuitPython Stats on Git Action ● each PR builds against 116 boards in 12 languages ● automated 12 platform checks for Arduino hardware https://circuitpython.org/downloads https://github.com/adafruit/circuitpython/pulls?q=is%3Apr+is%3Aclosed
  • 19. scale EVEN IF I’M SMART - ONE ME IS NOT SMARTER THAN ALL OF YOU
  • 20. Open Source (hardware) Tools EE Core Development - KiCad + ngspice ME Core Development - FreeCAD Accessible CAD Front-End - Fritzing Hierarchical Design Reuse - none yet! Pull + Merge Tools for HW - none yet! Unit Test + Debug in CAD - none yet Manufacturing + Repo: OSHPark https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-004-computation-structures-spring-2009/tools/
  • 21. … there’s a secret ingredient
  • 22. altruism WISE SELFISHNESS MEANS PEOPLE WITH EXPERTISE, TIME, AND RESOURCES CONTRIBUTE TO PROJECTS FOR THE SAKE OF ENABLING MORE PEOPLE TO CONTRIBUTE TO COLLECTIVE GOALS
  • 23. … so what happens next?
  • 24. A Brief History of Open Source Hardware Tools 1992 - Basic HW CAD KiCad is released, creating open-source schematic capture and PCB design 2021 - Hierarchical Design benevolent group with massive engineering resources releases first open-source visual circuit editor with modular circuit libraries 2023 - Usable Hardware Unit Test Part and circuit libraries add behavioral test support 2031 - Full Collab Mode > 10,000 users > 30,000 repos open source HW designs are mature, robust, and everywhere 1993 - Low-Level Sim ngspice can simulate low-level circuits (current, voltage, transients) http://ngspice.sourceforge.net/resources.html https://esim.fossee.in/ 2024 - Concurrent Design version sets for sch/pcb capture + test
  • 25. Community-Created Tools and Libraries of Expertise Build The Dream