ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
TypesAreEatingTheWorld!
AboutMyself
MynameisDaisukeShimamoto
Pronounced"Dice-K"
Twitter/Facebook/LinkedIn:@diskshima
Current:
EngineerManageratPROGRIT(aEnglish
coachingcompany)
PastExperience:
USInvestmentBank:Java&Spring,C#&.Net
Variousstart-ups:RubyonRails,React.js,React
Native,etc.
Me&Types
FascinatedbyTypesinprogramming.
Justfindtheminteresting.
IwriteHaskellasahobby.
Notusingittodaysopleasedon'trunaway
BeforeWeStart
WillbemainlyusingTypeScriptandSwiftinthistalk.
GoodsupportforTypes.
Notcovering/using
TypeTheory
Monads
Weirdgreeksymbols(¨»,?,?,?,?,etc.)
Soagain,pleasedon'trunaway
KeyTakeaway:Typesarebecomingmoreimportant!
WhySo?
Softwareisbecoming:
Moreandmoreadvanced
Largerandlarger
Moreandmorecomplex
Whichleadsto...
Whichleadsto... MOREBUGS!!
Whatcanwedo?
Whatcanwedo?TYPES!!
StartwithBasics
BasicTypes
int
-1,0,1,2,3,...
float
0.1,0.25,0.3,...
char
'a','b','c',...
string
"hello","world",...
AdvancedTypes
FunctionTypes
number => string :Takesinanintandreturnsastring
const f: ((n: number) => string) = function (n) {

// Do something with n.

:

return "foo";

}

Generics(Java,C#,TypeScript,etc)
function firstElement<T>(arr: T[]): T {

return arr[0];

}
ButTypescandomore!
ButTypescandomore!
Let'slookatsomefairlynew/advancedTypes!
Optional
Indicatesthatthevaluecouldbe null .
You'veseenoneofthese,right?
java.lang.NullPointerException
TypeError: ¡®undefined¡¯ is not an object
Optionalspreventthis.
Example(Swift):
let num: Optional<Int> = function_that_may_return_nil()

if let a = num { // Take the Int inside Optional<Int>.

print(a)

} else {

print("Was nil")

}
Optional
Thecompilercancheckthatyou'veactuallyhandledthecaseof null .
Someexamplesinotherlanguages:
Java: Optional
C#: Nullable
Kotlin: Nullable
FunFactabout null
null wasfirstintroducedbyTonyHoare(famousComputerScientist).
Andhelaterreferredtoitasthebillion-dollarmistake
Icallitmybillion-dollarmistake.Itwastheinventionofthenullreferencein1965(in
ALGOLW).
Wikipedia
Async/Await,Future,Promise
Thesearetype(orlanguage)featureforhandlingasynchronousexecutions.
Example(TypeScript):
function delayedPrint(msg: string, delay: number): Promise<void> {

return new Promise((resolve, reject) => {

setTimeout(() => {

console.log(msg);
resolve();

}, delay);

});

}

async function main() {

console.log("Dispatching first delayedPrint.")

delayedPrint("Hello", 1000);

console.log("Dispatching second delayedPrint.")

await delayedPrint("Hello2", 1500);

console.log("This console.log will wait for the one above.")

delayedPrint("Hello3", 1000);

}

main();
Output:
Dispatching first delayedPrint.

Dispatching second delayedPrint.

Hello

Hello2

This console.log will wait the one above.

Hello3
Async/Await,Future,Promise
Intuitive
Comparedtothecallbackhell.
SupportedbyC#,TypeScript,Kotlin,etc.
BeingaddedtootherlanguageslikeSwift,C++.
Tellshowmuchengineerslovethisfeature
QuickSummarySoFar
Typesareeatingtheworld
Advancesinprogramminglanguagesarespeedinguplikecrazy.
Muchslowerintheolddays(RememberPerl6?C++0x)?)
TranspilerslikeBabelhashelpedalot.
ButTypescandoEVENMORE!
ButTypescandoEVENMORE!
Let'slookatsomemoreadvancedTypesthatwemayseeinthefuture.
1.AlgebraicDataTypes
1.AlgebraicDataTypes
Representsrelationshipsbetweendata.
Consistsoftwokinds:
SumType
Alsocalled"enum".
ThedatacouldbeoneofA,B,C...
ProductType
ThedatacanholdanelementofAandanelementofBandsoon.
Alsocalled"struct","record".
ExampleofSumType(inTypeScript)
interface A {

:

}

interface B {

:

}

type A_OR_B = A | B; // Meaning it can be either A or B
ExampleofProductTypeinSwift:
struct ProductExample {

let a: Bool

let b: Bool

}
UseCases
TypeScriptExample
interface Square {

kind: "square";

size: number;

}

interface Rectangle {

kind: "rectangle";

width: number;

height: number;

}

type Shape = Square | Rectangle; // Either a Square or a Rectangle.
TypeScriptExample(cont'd)
function non_exhaustive(s: Shape) {

switch (s.kind) {

case "square":

return s.size * s.size;

default:

const _tmp: never = s

// ^^^^ This is a compile time error!

}

return 0;

}

function not_in_part_of_the_type(s: Shape) {

switch (s.kind) {

case "square": return s.size * s.size;

case "rectangle": return s.height * s.width;

case "circle": return s.height;

// ^^^^^^^^ This is a compile time error!

}

}
Obvious?Yes.
Somelanguagesdonotnotsupportthisorhavenotfullysupportedthem.
PHPProposal:PHP:rfc:adts
Kotlin:Supportsealed(exhaustive)whens
Compiletimecheckofexhaustivenessofsumtypes.
Why"Algebraic"?
Somethingtodowithmathbutwon'tgodeepertoday.
Irecommendreading:
Thealgebra(andcalculus!)ofalgebraicdatatypes
2.DependentTypes
DependentTypes
AllTypessofar
MakeacleardistinctionbetweenTypesandValues
Valuesdependontheirtypes
const num: int = 1; // <-- 1 depends on int.

const str: string = "hello"; // <-- "hello" depends on string.
Canwenotflipthis?
i.e.haveTypesdependonValues?
What??
Let'sstartwithaproblemwewanttosolve.
Problem:"Functionthatexpectsevennumbers"
Problem:"Functionthatexpectsevennumbers"
NormalTypeScript:
function f(n: int) {
if (n % 2 != 0) {

throw "n is not even!"

} else {

// n is even.

// Do something with n.

:

}

}

f(1) // Compiler will be happy but will definitely THROW!
IntroducingDependentTypes
DependentTypesallowyoutousevaluesinthetypes.
// This is made-up syntax. Doesn't actually work!

function f(n: { int | n % 2 == 0 }) {

// ^^^^^^^^^^ Compile time check!

:

}

f(1) // Compiler will error!
DependentTypes
EncodesmorelogicintotheType.
Morecompiletimechecks!
ByauseronStackoverflow:
Dependenttypesenablelargersetoflogicerrorstobeeliminatedatcompile
time.
DependentTypes
Notmuchsupportyet
Onlyafewlanguagessupportit:
Agda
Idris
Let'sseeifmainstreamlanguagesadoptit
3.LinearTypes
3.LinearTypes
Againlet'sstartwiththeproblem.
Problem:"Howcanwepreventuseofvariableswhen
theyshouldnotbeused?"
Problem:"Howcanwepreventuseofvariableswhen
theyshouldnotbeused?"
Examples:
Useafter free .
Double free .
Accessingaclosedfilehandler.
IntroducingLinearTypes
LinearTypesmustbeusedonceandonlyonce.
Thekeyismustandonce.
UseCases#1
Linearresources
Files,networksockets,etc.
// Again made-up syntax. Does not actually work.

linearfunc readFile(filepath: string): string {

const fileHandle = open(filepath);

const content = readFile(fileHandle);

return content;

// Oops! Forgot to close `fileHandle`! 

// Compiler can automatically emit, operation to close the handle.

}
UseCase#2
Performance
Ifyouknowitwon'tbeused,youcanoptimizeit.
// Again made-up syntax. TypeScript does not have this!

linearfunc f(str: string): string {

const str2 = str + "aaaaaa"; // Plain TypeScript will allocate a new memory for this.

return str2; // <- The compiler can make a decision and overwrite str in memory for performance!

}
Summary
SomerecentTypesseeninmainstreamlanguages.
Optional
Await/Async,Future,Promise
MoreAdvancedTypes
AlgebraicDataTypes
DependentTypes
LinearTypes
Thanks!
Attributions
HaskellIcon:https://icon-icons.com/icon/file-type-haskell/130552
SwiftIcon:https://icon-icons.com/icon/swift-original-logo/146332
TypeScriptIcon:https://icon-icons.com/icon/file-type-typescript-official/130107

More Related Content

Similar to Types are eating the world (20)

Future of Ruby on the Web
Future of Ruby on the WebFuture of Ruby on the Web
Future of Ruby on the Web
Future Insights
?
Managing JavaScript Complexity
Managing JavaScript ComplexityManaging JavaScript Complexity
Managing JavaScript Complexity
Jarrod Overson
?
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
Laurent Duveau
?
Sorbet at Grailed
Sorbet at GrailedSorbet at Grailed
Sorbet at Grailed
JoseRosello4
?
introduction to javascript concepts .ppt
introduction to javascript concepts .pptintroduction to javascript concepts .ppt
introduction to javascript concepts .ppt
ansariparveen06
?
OWASP PHPIDS talk slides
OWASP PHPIDS talk slidesOWASP PHPIDS talk slides
OWASP PHPIDS talk slides
guestd34230
?
DSLs in JavaScript
DSLs in JavaScriptDSLs in JavaScript
DSLs in JavaScript
elliando dias
?
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
Laurent Duveau
?
Beyond the Style Guides
Beyond the Style GuidesBeyond the Style Guides
Beyond the Style Guides
Mosky Liu
?
Grooming with Groovy
Grooming with GroovyGrooming with Groovy
Grooming with Groovy
Dhaval Dalal
?
RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!
Gautam Rege
?
Goodparts
GoodpartsGoodparts
Goodparts
damonjablons
?
Migrating Web SDK from JS to TS
Migrating Web SDK from JS to TSMigrating Web SDK from JS to TS
Migrating Web SDK from JS to TS
Grigory Petrov
?
Basics of Javascript
Basics of JavascriptBasics of Javascript
Basics of Javascript
Universe41
?
fundamentals of JavaScript for students.ppt
fundamentals of JavaScript for students.pptfundamentals of JavaScript for students.ppt
fundamentals of JavaScript for students.ppt
dejen6
?
TechDays - IronRuby
TechDays - IronRubyTechDays - IronRuby
TechDays - IronRuby
Ben Hall
?
Compiler2016 by abcdabcd987
Compiler2016 by abcdabcd987Compiler2016 by abcdabcd987
Compiler2016 by abcdabcd987
ÀÖȺ ³Â
?
Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...
Arthur Puthin
?
Lagergren jvmls-2013-final
Lagergren jvmls-2013-finalLagergren jvmls-2013-final
Lagergren jvmls-2013-final
Marcus Lagergren
?
Complete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScriptComplete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScript
EPAM Systems
?
Managing JavaScript Complexity
Managing JavaScript ComplexityManaging JavaScript Complexity
Managing JavaScript Complexity
Jarrod Overson
?
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
Laurent Duveau
?
introduction to javascript concepts .ppt
introduction to javascript concepts .pptintroduction to javascript concepts .ppt
introduction to javascript concepts .ppt
ansariparveen06
?
OWASP PHPIDS talk slides
OWASP PHPIDS talk slidesOWASP PHPIDS talk slides
OWASP PHPIDS talk slides
guestd34230
?
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
Laurent Duveau
?
Beyond the Style Guides
Beyond the Style GuidesBeyond the Style Guides
Beyond the Style Guides
Mosky Liu
?
RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!
Gautam Rege
?
Migrating Web SDK from JS to TS
Migrating Web SDK from JS to TSMigrating Web SDK from JS to TS
Migrating Web SDK from JS to TS
Grigory Petrov
?
Basics of Javascript
Basics of JavascriptBasics of Javascript
Basics of Javascript
Universe41
?
fundamentals of JavaScript for students.ppt
fundamentals of JavaScript for students.pptfundamentals of JavaScript for students.ppt
fundamentals of JavaScript for students.ppt
dejen6
?
TechDays - IronRuby
TechDays - IronRubyTechDays - IronRuby
TechDays - IronRuby
Ben Hall
?
Compiler2016 by abcdabcd987
Compiler2016 by abcdabcd987Compiler2016 by abcdabcd987
Compiler2016 by abcdabcd987
ÀÖȺ ³Â
?
Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...
Arthur Puthin
?
Complete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScriptComplete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScript
EPAM Systems
?

More from Fangda Wang (11)

[WWCode] How aware are you of your deciding model?
[WWCode] How aware are you of your deciding model?[WWCode] How aware are you of your deciding model?
[WWCode] How aware are you of your deciding model?
Fangda Wang
?
Under the hood of architecture interviews at indeed
Under the hood of architecture interviews at indeedUnder the hood of architecture interviews at indeed
Under the hood of architecture interviews at indeed
Fangda Wang
?
How Indeed asks coding interview questions
How Indeed asks coding interview questionsHow Indeed asks coding interview questions
How Indeed asks coding interview questions
Fangda Wang
?
From ic to tech lead
From ic to tech leadFrom ic to tech lead
From ic to tech lead
Fangda Wang
?
Introduction to japanese tokenizer
Introduction to japanese tokenizerIntroduction to japanese tokenizer
Introduction to japanese tokenizer
Fangda Wang
?
Gentle Introduction to Scala
Gentle Introduction to ScalaGentle Introduction to Scala
Gentle Introduction to Scala
Fangda Wang
?
To pair or not to pair
To pair or not to pairTo pair or not to pair
To pair or not to pair
Fangda Wang
?
Balanced Team
Balanced TeamBalanced Team
Balanced Team
Fangda Wang
?
Functional programming and Elm
Functional programming and ElmFunctional programming and Elm
Functional programming and Elm
Fangda Wang
?
Elm at large (companies)
Elm at large (companies)Elm at large (companies)
Elm at large (companies)
Fangda Wang
?
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the trade
Fangda Wang
?
[WWCode] How aware are you of your deciding model?
[WWCode] How aware are you of your deciding model?[WWCode] How aware are you of your deciding model?
[WWCode] How aware are you of your deciding model?
Fangda Wang
?
Under the hood of architecture interviews at indeed
Under the hood of architecture interviews at indeedUnder the hood of architecture interviews at indeed
Under the hood of architecture interviews at indeed
Fangda Wang
?
How Indeed asks coding interview questions
How Indeed asks coding interview questionsHow Indeed asks coding interview questions
How Indeed asks coding interview questions
Fangda Wang
?
From ic to tech lead
From ic to tech leadFrom ic to tech lead
From ic to tech lead
Fangda Wang
?
Introduction to japanese tokenizer
Introduction to japanese tokenizerIntroduction to japanese tokenizer
Introduction to japanese tokenizer
Fangda Wang
?
Gentle Introduction to Scala
Gentle Introduction to ScalaGentle Introduction to Scala
Gentle Introduction to Scala
Fangda Wang
?
To pair or not to pair
To pair or not to pairTo pair or not to pair
To pair or not to pair
Fangda Wang
?
Functional programming and Elm
Functional programming and ElmFunctional programming and Elm
Functional programming and Elm
Fangda Wang
?
Elm at large (companies)
Elm at large (companies)Elm at large (companies)
Elm at large (companies)
Fangda Wang
?
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the trade
Fangda Wang
?

Recently uploaded (20)

Lessons learned when managing MySQL in the Cloud
Lessons learned when managing MySQL in the CloudLessons learned when managing MySQL in the Cloud
Lessons learned when managing MySQL in the Cloud
Igor Donchovski
?
decarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptxdecarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptx
gonzalezolabarriaped
?
Syntax Directed Definitions Synthesized Attributes and Inherited Attributes
Syntax Directed Definitions  Synthesized Attributes  and  Inherited AttributesSyntax Directed Definitions  Synthesized Attributes  and  Inherited Attributes
Syntax Directed Definitions Synthesized Attributes and Inherited Attributes
GunjalSanjay
?
Sachpazis: Foundation Analysis and Design: Single Piles
Sachpazis: Foundation Analysis and Design: Single PilesSachpazis: Foundation Analysis and Design: Single Piles
Sachpazis: Foundation Analysis and Design: Single Piles
Dr.Costas Sachpazis
?
Taykon-Kalite belgeleri
Taykon-Kalite belgeleriTaykon-Kalite belgeleri
Taykon-Kalite belgeleri
TAYKON
?
Cyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptxCyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptx
Harshith A S
?
BS_EN_ISO_19650_Detailed_Presentation.pptx
BS_EN_ISO_19650_Detailed_Presentation.pptxBS_EN_ISO_19650_Detailed_Presentation.pptx
BS_EN_ISO_19650_Detailed_Presentation.pptx
VinkuMeena
?
CFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptxCFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptx
MohamedShabana37
?
How to Build a Maze Solving Robot Using Arduino
How to Build a Maze Solving Robot Using ArduinoHow to Build a Maze Solving Robot Using Arduino
How to Build a Maze Solving Robot Using Arduino
CircuitDigest
?
Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...
dhanashree78
?
only history of java.pptx real bihind the name java
only history of java.pptx real bihind the name javaonly history of java.pptx real bihind the name java
only history of java.pptx real bihind the name java
mushtaqsaliq9
?
Unit II: Design of Static Equipment Foundations
Unit II: Design of Static Equipment FoundationsUnit II: Design of Static Equipment Foundations
Unit II: Design of Static Equipment Foundations
Sanjivani College of Engineering, Kopargaon
?
autonomous vehicle project for engineering.pdf
autonomous vehicle project for engineering.pdfautonomous vehicle project for engineering.pdf
autonomous vehicle project for engineering.pdf
JyotiLohar6
?
How to Make an RFID Door Lock System using Arduino
How to Make an RFID Door Lock System using ArduinoHow to Make an RFID Door Lock System using Arduino
How to Make an RFID Door Lock System using Arduino
CircuitDigest
?
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptxRAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
JenTeruel1
?
Gauges are a Pump's Best Friend - Troubleshooting and Operations - v.07
Gauges are a Pump's Best Friend - Troubleshooting and Operations - v.07Gauges are a Pump's Best Friend - Troubleshooting and Operations - v.07
Gauges are a Pump's Best Friend - Troubleshooting and Operations - v.07
Brian Gongol
?
TM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdfTM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdf
ChungLe60
?
Mathematics behind machine learning INT255 INT255__Unit 3__PPT-1.pptx
Mathematics behind machine learning INT255 INT255__Unit 3__PPT-1.pptxMathematics behind machine learning INT255 INT255__Unit 3__PPT-1.pptx
Mathematics behind machine learning INT255 INT255__Unit 3__PPT-1.pptx
ppkmurthy2006
?
Wireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdfWireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdf
AbhinandanMishra30
?
Water Industry Process Automation & Control Monthly - March 2025.pdf
Water Industry Process Automation & Control Monthly - March 2025.pdfWater Industry Process Automation & Control Monthly - March 2025.pdf
Water Industry Process Automation & Control Monthly - March 2025.pdf
Water Industry Process Automation & Control
?
Lessons learned when managing MySQL in the Cloud
Lessons learned when managing MySQL in the CloudLessons learned when managing MySQL in the Cloud
Lessons learned when managing MySQL in the Cloud
Igor Donchovski
?
decarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptxdecarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptx
gonzalezolabarriaped
?
Syntax Directed Definitions Synthesized Attributes and Inherited Attributes
Syntax Directed Definitions  Synthesized Attributes  and  Inherited AttributesSyntax Directed Definitions  Synthesized Attributes  and  Inherited Attributes
Syntax Directed Definitions Synthesized Attributes and Inherited Attributes
GunjalSanjay
?
Sachpazis: Foundation Analysis and Design: Single Piles
Sachpazis: Foundation Analysis and Design: Single PilesSachpazis: Foundation Analysis and Design: Single Piles
Sachpazis: Foundation Analysis and Design: Single Piles
Dr.Costas Sachpazis
?
Taykon-Kalite belgeleri
Taykon-Kalite belgeleriTaykon-Kalite belgeleri
Taykon-Kalite belgeleri
TAYKON
?
Cyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptxCyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptx
Harshith A S
?
BS_EN_ISO_19650_Detailed_Presentation.pptx
BS_EN_ISO_19650_Detailed_Presentation.pptxBS_EN_ISO_19650_Detailed_Presentation.pptx
BS_EN_ISO_19650_Detailed_Presentation.pptx
VinkuMeena
?
CFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptxCFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptx
MohamedShabana37
?
How to Build a Maze Solving Robot Using Arduino
How to Build a Maze Solving Robot Using ArduinoHow to Build a Maze Solving Robot Using Arduino
How to Build a Maze Solving Robot Using Arduino
CircuitDigest
?
Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...
dhanashree78
?
only history of java.pptx real bihind the name java
only history of java.pptx real bihind the name javaonly history of java.pptx real bihind the name java
only history of java.pptx real bihind the name java
mushtaqsaliq9
?
autonomous vehicle project for engineering.pdf
autonomous vehicle project for engineering.pdfautonomous vehicle project for engineering.pdf
autonomous vehicle project for engineering.pdf
JyotiLohar6
?
How to Make an RFID Door Lock System using Arduino
How to Make an RFID Door Lock System using ArduinoHow to Make an RFID Door Lock System using Arduino
How to Make an RFID Door Lock System using Arduino
CircuitDigest
?
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptxRAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
JenTeruel1
?
Gauges are a Pump's Best Friend - Troubleshooting and Operations - v.07
Gauges are a Pump's Best Friend - Troubleshooting and Operations - v.07Gauges are a Pump's Best Friend - Troubleshooting and Operations - v.07
Gauges are a Pump's Best Friend - Troubleshooting and Operations - v.07
Brian Gongol
?
TM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdfTM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdf
ChungLe60
?
Mathematics behind machine learning INT255 INT255__Unit 3__PPT-1.pptx
Mathematics behind machine learning INT255 INT255__Unit 3__PPT-1.pptxMathematics behind machine learning INT255 INT255__Unit 3__PPT-1.pptx
Mathematics behind machine learning INT255 INT255__Unit 3__PPT-1.pptx
ppkmurthy2006
?
Wireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdfWireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdf
AbhinandanMishra30
?

Types are eating the world