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

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 languageKiwamu Okabe
 
ATS programming on ESP8266
ATS programming on ESP8266ATS programming on ESP8266
ATS programming on ESP8266Kiwamu Okabe
 
ATS language overview'
ATS language overview'ATS language overview'
ATS language overview'Kiwamu Okabe
 
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 MCUKiwamu Okabe
 
Embedded application designed by ATS language
Embedded application designed by ATS languageEmbedded application designed by ATS language
Embedded application designed by ATS languageKiwamu Okabe
 
ATS/LF for Coq users
ATS/LF for Coq usersATS/LF for Coq users
ATS/LF for Coq usersKiwamu Okabe
 
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 ArduinoKiwamu Okabe
 
Past and today of Metasepi project
Past and today of Metasepi projectPast and today of Metasepi project
Past and today of Metasepi projectKiwamu Okabe
 
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, againKiwamu Okabe
 
Ajhc Haskell Compiler with Reentrant GC
Ajhc Haskell Compiler with Reentrant GCAjhc Haskell Compiler with Reentrant GC
Ajhc Haskell Compiler with Reentrant GCKiwamu Okabe
 
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLONGareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLONOutlyer
 
Building REST APIs with Django
Building REST APIs with DjangoBuilding REST APIs with Django
Building REST APIs with DjangoByron Dover
 
No more dead kittens - Clean Code
No more dead kittens - Clean CodeNo more dead kittens - Clean Code
No more dead kittens - Clean CodeYves Hoppe
 
Metasepi team meeting: Ajhc Project Overview
Metasepi team meeting: Ajhc Project OverviewMetasepi team meeting: Ajhc Project Overview
Metasepi team meeting: Ajhc Project OverviewKiwamu 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

LL Ring Recursive ライトニングトーク
LL Ring Recursive ライトニングトークLL Ring Recursive ライトニングトーク
LL Ring Recursive ライトニングトークRyuichi Ueda
 
ATSプログラミングチュートリアル
ATSプログラミングチュートリアルATSプログラミングチュートリアル
ATSプログラミングチュートリアルKiwamu Okabe
 
ATS language overview
ATS language overviewATS language overview
ATS language overviewKiwamu Okabe
 
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 ATSKiwamu Okabe
 
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 APIKiwamu Okabe
 

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

Why we are still writing?
Why we are still writing?Why we are still writing?
Why we are still writing?Alexander Osin
 
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 Peter Gfader
 
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 2015Christian Heilmann
 
TDC 2020 - Implementing a Mini-Language
TDC 2020 - Implementing a Mini-LanguageTDC 2020 - Implementing a Mini-Language
TDC 2020 - Implementing a Mini-LanguageLuciano Sabença
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsJarek Ratajski
 
Cloud AI GenAI Overview.pptx
Cloud AI GenAI Overview.pptxCloud AI GenAI Overview.pptx
Cloud AI GenAI Overview.pptxSahithiGurlinka
 
Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?Kris Buytaert
 
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 ProductsBen Hall
 
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...Amazon Web Services
 
Notes (2012-06-08)
Notes (2012-06-08)Notes (2012-06-08)
Notes (2012-06-08)Chris Pitt
 
Creating multillingual apps for android
Creating multillingual apps for androidCreating multillingual apps for android
Creating multillingual apps for androidSergi Martínez
 
Devops is a Security Requirement
Devops is a Security RequirementDevops is a Security Requirement
Devops is a Security RequirementKris Buytaert
 
Online gas booking project in java
Online gas booking project in javaOnline gas booking project in java
Online gas booking project in javas4al_com
 
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?Kiwamu Okabe
 
xAPI in Action
xAPI in ActionxAPI in Action
xAPI in Actionbbetts
 
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? -Shin Yoshida
 
Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Kris Buytaert
 

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

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

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