Slide 1

Slide 1 text

@scalone Ruby, Web and IOT With the same Platform Thiago Scalone - @scalone

Slide 2

Slide 2 text

@scalone こんばんは 私の名前はThiago Scalone です よろしくお願いします! 私はブラジルのソフトウェアエンジニアです

Slide 3

Slide 3 text

The digital payment acquirer @scalone

Slide 4

Slide 4 text

@scalone

Slide 5

Slide 5 text

@scalone

Slide 6

Slide 6 text

@scalone

Slide 7

Slide 7 text

@scalone

Slide 8

Slide 8 text

@scalone

Slide 9

Slide 9 text

Payment acquirers are very inefficient
 
 Most using outdated technology
 
 Incapable of offering digital products @scalone

Slide 10

Slide 10 text

@scalone

Slide 11

Slide 11 text

@scalone @scalone

Slide 12

Slide 12 text

@scalone @scalone

Slide 13

Slide 13 text

@scalone @scalone

Slide 14

Slide 14 text

@scalone @scalone

Slide 15

Slide 15 text

@scalone @scalone

Slide 16

Slide 16 text

@scalone ERC20 @scalone

Slide 17

Slide 17 text

@scalone

Slide 18

Slide 18 text

@scalone Ruby history Rails history Ruby basics and demo Rails basics and demo mRuby history mRuby basics and demo Topics

Slide 19

Slide 19 text

@scalone Created by Matz, release first version 95 (0.95) Script language, high-level, interpreted Object oriented, imperative, plus functional concepts Dynamic, metaprograming supporting Focus on simplicity and productivity Latest version 2.6.3 https://www.ruby-lang.org/en/ Ruby

Slide 20

Slide 20 text

@scalone Gems

Slide 21

Slide 21 text

@scalone IRB - Interactive Ruby Shell Classes and modules Variables Operators Data Types Control Flow Regexp Ruby

Slide 22

Slide 22 text

@scalone Demo Thiago Scalone - @scalone

Slide 23

Slide 23 text

@scalone Rails

Slide 24

Slide 24 text

@scalone Rails

Slide 25

Slide 25 text

@scalone Rails

Slide 26

Slide 26 text

@scalone Rails

Slide 27

Slide 27 text

@scalone Rails

Slide 28

Slide 28 text

@scalone Rails

Slide 29

Slide 29 text

@scalone Rails

Slide 30

Slide 30 text

@scalone Opinionated Full-stack Web Framework - HTTP Model/View/Controller pattern Convention over Configuration DRY - Don’t Repeat your self CRUD (Create, Read, Update and Delete) Scaffolding Active Record and Migrations Rails

Slide 31

Slide 31 text

@scalone Rails

Slide 32

Slide 32 text

@scalone Model “Maintains the relationship between Object and Database and handles validation, association, transactions” View “A presentation of data in a particular format, triggered by a controller’s decision to present the data” Controller “The facility within the application that directs traffic, on the one hand querying the models for specific data, and on the other hand organizing that data (searching, sorting) into a form that fits the needs of a given view.” Rails

Slide 33

Slide 33 text

@scalone Demo Thiago Scalone - @scalone

Slide 34

Slide 34 text

@scalone Created by Matz Small Cross-compilation / ANSI C Modular No gems, mrbgems static compilation .mrb https://github.com/mruby/mruby mRuby

Slide 35

Slide 35 text

@scalone CLI apps framework Created and maintained by hone, zzak and toch Power of mruby to generate standalone binary Linux, Windows, and OS X Docker Compose https://github.com/hone/mruby-cli https://github.com/cloudwalkio/cloudwalk mruby-cli

Slide 36

Slide 36 text

@scalone Open Source IOT Embedded Framework Created by CloudWalk Adopt adapter pattern to hardware interface Compilation and packaging tools Helpers https://github.com/cloudwalkio/da_funk da_funk

Slide 37

Slide 37 text

@scalone lib/device/ !"" application.rb !"" audio.rb !"" crypto.rb !"" display.rb !"" io.rb !"" magnetic.rb !"" network.rb !"" printer.rb !"" runtime.rb !"" system.rb #"" version.rb class Device class Audio def self.adapter Device.adapter::Audio end def self.beep(tone, seconds) milli = seconds * 1000 adapter.beep(tone, milli) end end end da_funk da_funk

Slide 38

Slide 38 text

@scalone @scalone

Slide 39

Slide 39 text

@scalone CLI @scalone

Slide 40

Slide 40 text

@scalone PROJECT CLI @scalone

Slide 41

Slide 41 text

@scalone PROJECT COMPILE CLI @scalone

Slide 42

Slide 42 text

@scalone PROJECT COMPILE DEPLOY CLI @scalone

Slide 43

Slide 43 text

@scalone PROJECT COMPILE DEPLOY CLI RUN @scalone

Slide 44

Slide 44 text

@scalone PROJECT COMPILE DEPLOY CLI RUN @scalone

Slide 45

Slide 45 text

@scalone @scalone GPRS/3G/WIFI Persistent Connection TCP + TLS 1.2 WebSocket Download in chunks

Slide 46

Slide 46 text

@scalone MRuby Libraries to make the runIme works h"ps:/ /github.com/cloudwalkio/mruby-da-funk IOT Framework h"ps:/ /github.com/cloudwalkio/da_funk TLV Parser (Payment TransacIon) h"ps:/ /github.com/scalone/funky-tlv CloudWalk CLI h"ps:/ /github.com/cloudwalkio/cloudwalk SSL Library mbed TLS / PolarSSL bind h"ps:/ /github.com/luisbebop/mruby-polarssl Open Source

Slide 47

Slide 47 text

@scalone MRuby EMV Interface (Payment TransacIon) h"ps:/ /github.com/cloudwalkio/mruby-emv RIPEMD-160 hash h"ps:/ /github.com/scalone/mruby-ripemd QRCode generaIon h"ps:/ /github.com/scalone/mruby-qrcode Miniz bind to ZIP/UNZIP inflate/deflate h"ps:/ /github.com/scalone/mruby-miniz HMAC hash h"ps:/ /github.com/scalone/mruby-hmac Open Source

Slide 48

Slide 48 text

@scalone Demo Thiago Scalone - @scalone

Slide 49

Slide 49 text

@scalone Livro graIs - hZp:/ /eustaquiorangel.com/livro-ruby mRuby - hZps:/ /github.com/mruby/mruby Rails - hZps:/ /github.com/rails/rails More?!

Slide 50

Slide 50 text

@scalone in Ruby We Trust Thiago Scalone - @scalone

Slide 51

Slide 51 text

@scalone Thank you We Trust Thiago Scalone - @scalone