SlideShare a Scribd company logo
1 of 16
Download to read offline
Functional IoT: IntroductionFunctional IoT: IntroductionFunctional IoT: IntroductionFunctional IoT: IntroductionFunctional IoT: Introduction
Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe
Who am I?Who am I?Who am I?Who am I?Who am I?
☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/
☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe
☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion
☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS
☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN
☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer
What's IoT?What's IoT?What's IoT?What's IoT?What's IoT?
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?
What's Functional IoT?What's Functional IoT?What's Functional IoT?What's Functional IoT?What's Functional IoT?
☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ summarizes knowledge of the languages as
catalog.
☆ summarizes knowledge of the languages as
catalog.
☆ summarizes knowledge of the languages as
catalog.
☆ summarizes knowledge of the languages as
catalog.
☆ summarizes knowledge of the languages as
catalog.
Why do Functional IoT?Why do Functional IoT?Why do Functional IoT?Why do Functional IoT?Why do Functional IoT?
☆ Today, we have many methodologies for system
design.
☆ Today, we have many methodologies for system
design.
☆ Today, we have many methodologies for system
design.
☆ Today, we have many methodologies for system
design.
☆ Today, we have many methodologies for system
design.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ However, nobody have the exhaustive catalog of
them.
☆ However, nobody have the exhaustive catalog of
them.
☆ However, nobody have the exhaustive catalog of
them.
☆ However, nobody have the exhaustive catalog of
them.
☆ However, nobody have the exhaustive catalog of
them.
☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!
Why need such methodologies?Why need such methodologies?Why need such methodologies?Why need such methodologies?Why need such methodologies?
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability
☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified
☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality
☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour
☆ Fun☆ Fun☆ Fun☆ Fun☆ Fun
Avoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerability
Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors:
☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)
☆ Type range violation☆ Type range violation☆ Type range violation☆ Type range violation☆ Type range violation
☆ Division by zero☆ Division by zero☆ Division by zero☆ Division by zero☆ Division by zero
☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow
Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.
Specification to be verifiedSpecification to be verifiedSpecification to be verifiedSpecification to be verifiedSpecification to be verified
☆ Many people maintain specification as natural
language.
☆ Many people maintain specification as natural
language.
☆ Many people maintain specification as natural
language.
☆ Many people maintain specification as natural
language.
☆ Many people maintain specification as natural
language.
☆ Some methodologies can formally maintain
specification which is verified in computer.
☆ Some methodologies can formally maintain
specification which is verified in computer.
☆ Some methodologies can formally maintain
specification which is verified in computer.
☆ Some methodologies can formally maintain
specification which is verified in computer.
☆ Some methodologies can formally maintain
specification which is verified in computer.
Keeping good qualityKeeping good qualityKeeping good qualityKeeping good qualityKeeping good quality
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
Getting less man-hourGetting less man-hourGetting less man-hourGetting less man-hourGetting less man-hour
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
FunFunFunFunFun
C language can't use following feature:C language can't use following feature:C language can't use following feature:C language can't use following feature:C language can't use following feature:
☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type
☆ Higher-order function☆ Higher-order function☆ Higher-order function☆ Higher-order function☆ Higher-order function
☆ Namespace☆ Namespace☆ Namespace☆ Namespace☆ Namespace
☆ Pattern matching☆ Pattern matching☆ Pattern matching☆ Pattern matching☆ Pattern matching
☆ Type inference☆ Type inference☆ Type inference☆ Type inference☆ Type inference
☆ Garbage collection☆ Garbage collection☆ Garbage collection☆ Garbage collection☆ Garbage collection
How to do Functional IoT?How to do Functional IoT?How to do Functional IoT?How to do Functional IoT?How to do Functional IoT?
☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.
☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.
☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.
☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.
☆ Update our exhaustive catalog of the
methodologies.
☆ Update our exhaustive catalog of the
methodologies.
☆ Update our exhaustive catalog of the
methodologies.
☆ Update our exhaustive catalog of the
methodologies.
☆ Update our exhaustive catalog of the
methodologies.
Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!
https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/
License of photos #1License of photos #1License of photos #1License of photos #1License of photos #1
*�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/emrank/3074491752/
��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0
*�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/138891539@N03/23908928999/
��Copyright:�KIT�TECO�/�License:�CC�BY�2.0
*�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/tiarescott/69821764/
��Copyright:�tiarescott�/�License:�CC�BY�2.0
*�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/breibeest/404587519/
��Copyright:�Breibeest�/�License:�CC�BY�2.0
*�File:BjarneStroustrup.jpg�-�Wikimedia�Commons
��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg
��Copyright:�---�/�License:�GNU�Free�Documentation�License
*�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/emrank/3074491752/
��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0
*�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/138891539@N03/23908928999/
��Copyright:�KIT�TECO�/�License:�CC�BY�2.0
*�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/tiarescott/69821764/
��Copyright:�tiarescott�/�License:�CC�BY�2.0
*�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/breibeest/404587519/
��Copyright:�Breibeest�/�License:�CC�BY�2.0
*�File:BjarneStroustrup.jpg�-�Wikimedia�Commons
��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg
��Copyright:�---�/�License:�GNU�Free�Documentation�License
*�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/emrank/3074491752/
��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0
*�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/138891539@N03/23908928999/
��Copyright:�KIT�TECO�/�License:�CC�BY�2.0
*�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/tiarescott/69821764/
��Copyright:�tiarescott�/�License:�CC�BY�2.0
*�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/breibeest/404587519/
��Copyright:�Breibeest�/�License:�CC�BY�2.0
*�File:BjarneStroustrup.jpg�-�Wikimedia�Commons
��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg
��Copyright:�---�/�License:�GNU�Free�Documentation�License
*�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/emrank/3074491752/
��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0
*�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/138891539@N03/23908928999/
��Copyright:�KIT�TECO�/�License:�CC�BY�2.0
*�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/tiarescott/69821764/
��Copyright:�tiarescott�/�License:�CC�BY�2.0
*�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/breibeest/404587519/
��Copyright:�Breibeest�/�License:�CC�BY�2.0
*�File:BjarneStroustrup.jpg�-�Wikimedia�Commons
��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg
��Copyright:�---�/�License:�GNU�Free�Documentation�License
*�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/emrank/3074491752/
��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0
*�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/138891539@N03/23908928999/
��Copyright:�KIT�TECO�/�License:�CC�BY�2.0
*�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/tiarescott/69821764/
��Copyright:�tiarescott�/�License:�CC�BY�2.0
*�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/breibeest/404587519/
��Copyright:�Breibeest�/�License:�CC�BY�2.0
*�File:BjarneStroustrup.jpg�-�Wikimedia�Commons
��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg
��Copyright:�---�/�License:�GNU�Free�Documentation�License
License of photos #2License of photos #2License of photos #2License of photos #2License of photos #2
*�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/simpleinsomnia/23882140795/
��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0
*�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/iaea_imagebank/8366285569/
��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0
*�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/50697352@N00/21210898408/
��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0
*�Iceberg�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/usoceangov/8290528771/
��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0
*�PDCA-Do�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/jurgenappelo/6797304300/
��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0
*�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/simpleinsomnia/23882140795/
��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0
*�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/iaea_imagebank/8366285569/
��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0
*�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/50697352@N00/21210898408/
��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0
*�Iceberg�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/usoceangov/8290528771/
��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0
*�PDCA-Do�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/jurgenappelo/6797304300/
��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0
*�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/simpleinsomnia/23882140795/
��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0
*�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/iaea_imagebank/8366285569/
��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0
*�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/50697352@N00/21210898408/
��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0
*�Iceberg�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/usoceangov/8290528771/
��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0
*�PDCA-Do�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/jurgenappelo/6797304300/
��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0
*�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/simpleinsomnia/23882140795/
��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0
*�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/iaea_imagebank/8366285569/
��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0
*�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/50697352@N00/21210898408/
��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0
*�Iceberg�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/usoceangov/8290528771/
��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0
*�PDCA-Do�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/jurgenappelo/6797304300/
��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0
*�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/simpleinsomnia/23882140795/
��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0
*�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/iaea_imagebank/8366285569/
��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0
*�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/50697352@N00/21210898408/
��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0
*�Iceberg�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/usoceangov/8290528771/
��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0
*�PDCA-Do�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/jurgenappelo/6797304300/
��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0
License of photos #3License of photos #3License of photos #3License of photos #3License of photos #3
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0

More Related Content

What's hot

Ajhc Haskell Compiler with Reentrant GC
Ajhc Haskell Compiler with Reentrant GCAjhc Haskell Compiler with Reentrant GC
Ajhc Haskell Compiler with Reentrant GC
Kiwamu Okabe
 
Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?
Elizaveta Shashkova
 

What's hot (17)

Real-time OS system state captured by ATS language
Real-time OS system state captured by ATS languageReal-time OS system state captured by ATS language
Real-time OS system state captured by ATS language
 
ATS programming on ESP8266
ATS programming on ESP8266ATS programming on ESP8266
ATS programming on ESP8266
 
ATS language overview'
ATS language overview'ATS language overview'
ATS language overview'
 
Metasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCUMetasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCU
 
Embedded application designed by ATS language
Embedded application designed by ATS languageEmbedded application designed by ATS language
Embedded application designed by ATS language
 
ATS2 updates 2017
ATS2 updates 2017ATS2 updates 2017
ATS2 updates 2017
 
ATS/LF for Coq users
ATS/LF for Coq usersATS/LF for Coq users
ATS/LF for Coq users
 
Metasepi team meeting #19: ATS application on Arduino
Metasepi team meeting #19: ATS application on ArduinoMetasepi team meeting #19: ATS application on Arduino
Metasepi team meeting #19: ATS application on Arduino
 
Past and today of Metasepi project
Past and today of Metasepi projectPast and today of Metasepi project
Past and today of Metasepi project
 
Emacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, againEmacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, again
 
Ajhc Haskell Compiler with Reentrant GC
Ajhc Haskell Compiler with Reentrant GCAjhc Haskell Compiler with Reentrant GC
Ajhc Haskell Compiler with Reentrant GC
 
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLONGareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
 
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
 
Building REST APIs with Django
Building REST APIs with DjangoBuilding REST APIs with Django
Building REST APIs with Django
 
No more dead kittens - Clean Code
No more dead kittens - Clean CodeNo more dead kittens - Clean Code
No more dead kittens - Clean Code
 
Metasepi team meeting: Ajhc Project Overview
Metasepi team meeting: Ajhc Project OverviewMetasepi team meeting: Ajhc Project Overview
Metasepi team meeting: Ajhc Project Overview
 
Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?
 

Viewers also liked (7)

Krml203
Krml203Krml203
Krml203
 
LL Ring Recursive ライトニングトーク
LL Ring Recursive ライトニングトークLL Ring Recursive ライトニングトーク
LL Ring Recursive ライトニングトーク
 
ATSプログラミングチュートリアル
ATSプログラミングチュートリアルATSプログラミングチュートリアル
ATSプログラミングチュートリアル
 
ATS language overview
ATS language overviewATS language overview
ATS language overview
 
Arduino programming of ML-style in ATS
Arduino programming of ML-style in ATSArduino programming of ML-style in ATS
Arduino programming of ML-style in ATS
 
Metasepi team meeting #17: Invariant captured by ATS's API
Metasepi team meeting #17: Invariant captured by ATS's APIMetasepi team meeting #17: Invariant captured by ATS's API
Metasepi team meeting #17: Invariant captured by ATS's API
 
OSCON14: Mirage 2.0
OSCON14: Mirage 2.0 OSCON14: Mirage 2.0
OSCON14: Mirage 2.0
 

Similar to Functional IoT: Introduction

Similar to Functional IoT: Introduction (20)

Prototyping: Helping to take away the suck
Prototyping: Helping to take away the suckPrototyping: Helping to take away the suck
Prototyping: Helping to take away the suck
 
Why we are still writing?
Why we are still writing?Why we are still writing?
Why we are still writing?
 
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
respect-estimates.pdf
respect-estimates.pdfrespect-estimates.pdf
respect-estimates.pdf
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015
 
TDC 2020 - Implementing a Mini-Language
TDC 2020 - Implementing a Mini-LanguageTDC 2020 - Implementing a Mini-Language
TDC 2020 - Implementing a Mini-Language
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good parts
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
 
Cloud AI GenAI Overview.pptx
Cloud AI GenAI Overview.pptxCloud AI GenAI Overview.pptx
Cloud AI GenAI Overview.pptx
 
Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?
 
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable ProductsDevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable Products
 
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
 
Notes (2012-06-08)
Notes (2012-06-08)Notes (2012-06-08)
Notes (2012-06-08)
 
Creating multillingual apps for android
Creating multillingual apps for androidCreating multillingual apps for android
Creating multillingual apps for android
 
Devops is a Security Requirement
Devops is a Security RequirementDevops is a Security Requirement
Devops is a Security Requirement
 
Online gas booking project in java
Online gas booking project in javaOnline gas booking project in java
Online gas booking project in java
 
Does Infer dream of design by contract?
Does Infer dream of design by contract?Does Infer dream of design by contract?
Does Infer dream of design by contract?
 
xAPI in Action
xAPI in ActionxAPI in Action
xAPI in Action
 
WEBASSEMBLY - What's the right thing to write? -
WEBASSEMBLY - What's the right thing to write? -WEBASSEMBLY - What's the right thing to write? -
WEBASSEMBLY - What's the right thing to write? -
 
Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Functional IoT: Introduction

  • 1. Functional IoT: IntroductionFunctional IoT: IntroductionFunctional IoT: IntroductionFunctional IoT: IntroductionFunctional IoT: Introduction Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe
  • 2. Who am I?Who am I?Who am I?Who am I?Who am I? ☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/ ☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe ☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion ☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS ☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN ☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer
  • 3. What's IoT?What's IoT?What's IoT?What's IoT?What's IoT? The Internet of Things (or IoT for short) refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. Imagine IoT devices are: The Internet of Things (or IoT for short) refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. Imagine IoT devices are: The Internet of Things (or IoT for short) refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. Imagine IoT devices are: The Internet of Things (or IoT for short) refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. Imagine IoT devices are: The Internet of Things (or IoT for short) refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. Imagine IoT devices are: connected to the internet / developed in a short time / storing personal data / secure / more intelligence / inexpensive. connected to the internet / developed in a short time / storing personal data / secure / more intelligence / inexpensive. connected to the internet / developed in a short time / storing personal data / secure / more intelligence / inexpensive. connected to the internet / developed in a short time / storing personal data / secure / more intelligence / inexpensive. connected to the internet / developed in a short time / storing personal data / secure / more intelligence / inexpensive. C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?
  • 4. What's Functional IoT?What's Functional IoT?What's Functional IoT?What's Functional IoT?What's Functional IoT? ☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/ ☆ is a wrestling mat that strongly typed languages fight on, to become the champion of system programming language. ☆ is a wrestling mat that strongly typed languages fight on, to become the champion of system programming language. ☆ is a wrestling mat that strongly typed languages fight on, to become the champion of system programming language. ☆ is a wrestling mat that strongly typed languages fight on, to become the champion of system programming language. ☆ is a wrestling mat that strongly typed languages fight on, to become the champion of system programming language. ☆ tries to write demo code running on tiny MCU using the languages. ☆ tries to write demo code running on tiny MCU using the languages. ☆ tries to write demo code running on tiny MCU using the languages. ☆ tries to write demo code running on tiny MCU using the languages. ☆ tries to write demo code running on tiny MCU using the languages. ☆ summarizes knowledge of the languages as catalog. ☆ summarizes knowledge of the languages as catalog. ☆ summarizes knowledge of the languages as catalog. ☆ summarizes knowledge of the languages as catalog. ☆ summarizes knowledge of the languages as catalog.
  • 5. Why do Functional IoT?Why do Functional IoT?Why do Functional IoT?Why do Functional IoT?Why do Functional IoT? ☆ Today, we have many methodologies for system design. ☆ Today, we have many methodologies for system design. ☆ Today, we have many methodologies for system design. ☆ Today, we have many methodologies for system design. ☆ Today, we have many methodologies for system design. ☆ For example, they are static typing, theorem proving, formal method, design by contract, model checking, static verification, SMT solver, etc. ☆ For example, they are static typing, theorem proving, formal method, design by contract, model checking, static verification, SMT solver, etc. ☆ For example, they are static typing, theorem proving, formal method, design by contract, model checking, static verification, SMT solver, etc. ☆ For example, they are static typing, theorem proving, formal method, design by contract, model checking, static verification, SMT solver, etc. ☆ For example, they are static typing, theorem proving, formal method, design by contract, model checking, static verification, SMT solver, etc. ☆ However, nobody have the exhaustive catalog of them. ☆ However, nobody have the exhaustive catalog of them. ☆ However, nobody have the exhaustive catalog of them. ☆ However, nobody have the exhaustive catalog of them. ☆ However, nobody have the exhaustive catalog of them. ☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!
  • 6. Why need such methodologies?Why need such methodologies?Why need such methodologies?Why need such methodologies?Why need such methodologies? Many people choose C/C++ languages to design IoT device. However the languages lack following: Many people choose C/C++ languages to design IoT device. However the languages lack following: Many people choose C/C++ languages to design IoT device. However the languages lack following: Many people choose C/C++ languages to design IoT device. However the languages lack following: Many people choose C/C++ languages to design IoT device. However the languages lack following: ☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability ☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified ☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality ☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour ☆ Fun☆ Fun☆ Fun☆ Fun☆ Fun
  • 7. Avoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerability Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors: ☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow) ☆ Type range violation☆ Type range violation☆ Type range violation☆ Type range violation☆ Type range violation ☆ Division by zero☆ Division by zero☆ Division by zero☆ Division by zero☆ Division by zero ☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.
  • 8. Specification to be verifiedSpecification to be verifiedSpecification to be verifiedSpecification to be verifiedSpecification to be verified ☆ Many people maintain specification as natural language. ☆ Many people maintain specification as natural language. ☆ Many people maintain specification as natural language. ☆ Many people maintain specification as natural language. ☆ Many people maintain specification as natural language. ☆ Some methodologies can formally maintain specification which is verified in computer. ☆ Some methodologies can formally maintain specification which is verified in computer. ☆ Some methodologies can formally maintain specification which is verified in computer. ☆ Some methodologies can formally maintain specification which is verified in computer. ☆ Some methodologies can formally maintain specification which is verified in computer.
  • 9. Keeping good qualityKeeping good qualityKeeping good qualityKeeping good qualityKeeping good quality ☆ Original author can keep quality of the code, however the other is hard to do it by lack of verify- able specification. Sometimes, the original author will become "the other" in future. ☆ Original author can keep quality of the code, however the other is hard to do it by lack of verify- able specification. Sometimes, the original author will become "the other" in future. ☆ Original author can keep quality of the code, however the other is hard to do it by lack of verify- able specification. Sometimes, the original author will become "the other" in future. ☆ Original author can keep quality of the code, however the other is hard to do it by lack of verify- able specification. Sometimes, the original author will become "the other" in future. ☆ Original author can keep quality of the code, however the other is hard to do it by lack of verify- able specification. Sometimes, the original author will become "the other" in future.
  • 10. Getting less man-hourGetting less man-hourGetting less man-hourGetting less man-hourGetting less man-hour ☆ Easy to estimate compile time error, however hard to do run time error, because finding latter needs some testing. ☆ Easy to estimate compile time error, however hard to do run time error, because finding latter needs some testing. ☆ Easy to estimate compile time error, however hard to do run time error, because finding latter needs some testing. ☆ Easy to estimate compile time error, however hard to do run time error, because finding latter needs some testing. ☆ Easy to estimate compile time error, however hard to do run time error, because finding latter needs some testing.
  • 11. FunFunFunFunFun C language can't use following feature:C language can't use following feature:C language can't use following feature:C language can't use following feature:C language can't use following feature: ☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type ☆ Higher-order function☆ Higher-order function☆ Higher-order function☆ Higher-order function☆ Higher-order function ☆ Namespace☆ Namespace☆ Namespace☆ Namespace☆ Namespace ☆ Pattern matching☆ Pattern matching☆ Pattern matching☆ Pattern matching☆ Pattern matching ☆ Type inference☆ Type inference☆ Type inference☆ Type inference☆ Type inference ☆ Garbage collection☆ Garbage collection☆ Garbage collection☆ Garbage collection☆ Garbage collection
  • 12. How to do Functional IoT?How to do Functional IoT?How to do Functional IoT?How to do Functional IoT?How to do Functional IoT? ☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like. ☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU. ☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan. ☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup. ☆ Update our exhaustive catalog of the methodologies. ☆ Update our exhaustive catalog of the methodologies. ☆ Update our exhaustive catalog of the methodologies. ☆ Update our exhaustive catalog of the methodologies. ☆ Update our exhaustive catalog of the methodologies.
  • 13. Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup! https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/
  • 14. License of photos #1License of photos #1License of photos #1License of photos #1License of photos #1 *�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/emrank/3074491752/ ��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0 *�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/138891539@N03/23908928999/ ��Copyright:�KIT�TECO�/�License:�CC�BY�2.0 *�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/tiarescott/69821764/ ��Copyright:�tiarescott�/�License:�CC�BY�2.0 *�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/breibeest/404587519/ ��Copyright:�Breibeest�/�License:�CC�BY�2.0 *�File:BjarneStroustrup.jpg�-�Wikimedia�Commons ��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg ��Copyright:�---�/�License:�GNU�Free�Documentation�License *�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/emrank/3074491752/ ��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0 *�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/138891539@N03/23908928999/ ��Copyright:�KIT�TECO�/�License:�CC�BY�2.0 *�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/tiarescott/69821764/ ��Copyright:�tiarescott�/�License:�CC�BY�2.0 *�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/breibeest/404587519/ ��Copyright:�Breibeest�/�License:�CC�BY�2.0 *�File:BjarneStroustrup.jpg�-�Wikimedia�Commons ��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg ��Copyright:�---�/�License:�GNU�Free�Documentation�License *�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/emrank/3074491752/ ��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0 *�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/138891539@N03/23908928999/ ��Copyright:�KIT�TECO�/�License:�CC�BY�2.0 *�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/tiarescott/69821764/ ��Copyright:�tiarescott�/�License:�CC�BY�2.0 *�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/breibeest/404587519/ ��Copyright:�Breibeest�/�License:�CC�BY�2.0 *�File:BjarneStroustrup.jpg�-�Wikimedia�Commons ��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg ��Copyright:�---�/�License:�GNU�Free�Documentation�License *�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/emrank/3074491752/ ��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0 *�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/138891539@N03/23908928999/ ��Copyright:�KIT�TECO�/�License:�CC�BY�2.0 *�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/tiarescott/69821764/ ��Copyright:�tiarescott�/�License:�CC�BY�2.0 *�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/breibeest/404587519/ ��Copyright:�Breibeest�/�License:�CC�BY�2.0 *�File:BjarneStroustrup.jpg�-�Wikimedia�Commons ��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg ��Copyright:�---�/�License:�GNU�Free�Documentation�License *�Nagoya�Port�panorama�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/emrank/3074491752/ ��Copyright:�Emran�Kassim�/�License:�CC�BY�2.0 *�bPart�industrial�IoT�device.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/138891539@N03/23908928999/ ��Copyright:�KIT�TECO�/�License:�CC�BY�2.0 *�CEO�-�Tiare�-�Board�Meeting�-�Franklin�Canyon�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/tiarescott/69821764/ ��Copyright:�tiarescott�/�License:�CC�BY�2.0 *�Bergere�de�France�catalogue�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/breibeest/404587519/ ��Copyright:�Breibeest�/�License:�CC�BY�2.0 *�File:BjarneStroustrup.jpg�-�Wikimedia�Commons ��https://commons.wikimedia.org/wiki/File:BjarneStroustrup.jpg ��Copyright:�---�/�License:�GNU�Free�Documentation�License
  • 15. License of photos #2License of photos #2License of photos #2License of photos #2License of photos #2 *�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/simpleinsomnia/23882140795/ ��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0 *�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/iaea_imagebank/8366285569/ ��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0 *�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/50697352@N00/21210898408/ ��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0 *�Iceberg�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/usoceangov/8290528771/ ��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0 *�PDCA-Do�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/jurgenappelo/6797304300/ ��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0 *�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/simpleinsomnia/23882140795/ ��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0 *�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/iaea_imagebank/8366285569/ ��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0 *�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/50697352@N00/21210898408/ ��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0 *�Iceberg�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/usoceangov/8290528771/ ��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0 *�PDCA-Do�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/jurgenappelo/6797304300/ ��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0 *�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/simpleinsomnia/23882140795/ ��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0 *�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/iaea_imagebank/8366285569/ ��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0 *�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/50697352@N00/21210898408/ ��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0 *�Iceberg�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/usoceangov/8290528771/ ��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0 *�PDCA-Do�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/jurgenappelo/6797304300/ ��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0 *�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/simpleinsomnia/23882140795/ ��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0 *�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/iaea_imagebank/8366285569/ ��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0 *�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/50697352@N00/21210898408/ ��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0 *�Iceberg�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/usoceangov/8290528771/ ��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0 *�PDCA-Do�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/jurgenappelo/6797304300/ ��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0 *�Volkswagen�Beetle�crashed�through�a�brick�wall�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/simpleinsomnia/23882140795/ ��Copyright:�simpleinsomnia�/�License:�CC�BY�2.0 *�Physical�Inventory�of�Fuel�Assemblies�(03210024)�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/iaea_imagebank/8366285569/ ��Copyright:�IAEA�Imagebank�/�License:�CC�BY-SA�2.0 *�Old�Car�Festival,�2015�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/50697352@N00/21210898408/ ��Copyright:�F.�D.�Richards�/�License:�CC�BY-SA�2.0 *�Iceberg�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/usoceangov/8290528771/ ��Copyright:�NOAA's�National�Ocean�Service�/�License:�CC�BY�2.0 *�PDCA-Do�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/jurgenappelo/6797304300/ ��Copyright:�Jurgen�Appelo�/�License:�CC�BY�2.0
  • 16. License of photos #3License of photos #3License of photos #3License of photos #3License of photos #3 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0