Rabbit Slide Show

令和の隙間産業——PicoRubyはどこから来てどこへ行くのか

2024-08-24

Description

Presentation slide for 大阪Ruby会議04

Text

Page: 1

令和の隙間産業
PicoRubyはどこから来て、
どこへ行くのか
hasumikin
令和6年8月24日

Page: 2

キーノート

Page: 3

キーノート!!!

Page: 4

だからきょうのRabbitスライドは

Page: 5

Matzスタイル

Page: 6

ヘッドラインなし

Page: 7


        

Page: 8

天地左右センタソロエ

Page: 9

キーノートとは?

Page: 10

カンファレンストークとは?

Page: 11

(たしか)台湾にて、

Page: 12

はすみさんて、誰の役にも立たない話を
楽しそうにしますよね(意訳)

Page: 13

前田修吾さんも
誰の役にも立たない話しますよね

Page: 14

役に立たない話

Page: 15

そうは言っても
RubyKaigiトークの80%くらいは
誰の役にも立ってない(個人の感想です)

Page: 16

役に立たない
これにも種類がある

Page: 17

CRubyの内部実装を改善
(直接には)役に立たない

Page: 18

型の書き方に新提案
(すぐには)役に立たない

Page: 19

メガドライブでRubyを動かす
(1ミリも)役に立たない

Page: 20

自作のエディタのために新メソッドを提案
意味がわからない

Page: 21

尊敬する「世界のshugomaeda」と
同じカテゴリー(光栄)

Page: 22

きょうはせっかくのキーノートなので、
堂々と誰の役にも立たない話をします

Page: 23

【ご報告】ところで、最近転職しました

Page: 24

株式会社アンドパッド

Page: 25

暑い夏、水分補給してますか?

Page: 26


        

Page: 27


        

Page: 28

【ご報告】RubyConf Africa 2024

Page: 29


        

Page: 30

ブログ読んでください

Page: 31

【ご案内】2024年10月5日
松江Ruby会議11

Page: 32


        

Page: 33


        

Page: 34

(たぶん)
きょうは質問タイムがあります

Page: 35

いちばんよい質問をしてくれた人に

Page: 36


        

Page: 37

mruby/c御朱印帳をプレゼント!

Page: 38

みんなでつくるキーノート

Page: 39

あしたはあなたがキーノート

Page: 40

令和の隙間産業

Page: 41

隙間産業 =ちょっとしたプロダクト

Page: 42

ちょっとしたプロダクトを持つと楽しい

Page: 43

ちょっとしたプロダクトを持つに至った経緯

Page: 44

PicoRubyはどこから来て、どこへ行くのか

Page: 45

PicoRuby知ってる人

Page: 46

(デモ)

Page: 47

PicoRubyのすごいところ

Page: 48

名前がよい

Page: 49

mruby/c
スラッシュって
PL/I?

Page: 50

mruby|MRuby|mRuby

Page: 51

PicoRuby
名前がよい

Page: 52

マイコンがコンパイルしてくれる

Page: 53

ファイルシステムがある

Page: 54

Rubyの生産性

Page: 55

Cだと千行、Rubyだと数百行
みたいなこと、昔はよく言いました

Page: 56

きょうび、CとRubyは比較しない

Page: 57

Cではふつう、
ウェッブアプリを書きませんが、

Page: 58

マイコンは今でもC/C++が主流

Page: 59

(仮定)Cだと千行、Rubyだと数百行
のマイコンアプリケーション

Page: 60

数百行なら型は要らない
(あればあったでべんりな日もある)

Page: 61

マイコンアプリだと動的型付けの
メリットが最大化される(当社比)

Page: 62

REPL(IRB)による漸進的開発

Page: 63

ペリフェラルgemsが揃っている

Page: 64

GPIO、ADC、I2C、SPI、UART、PWM

Page: 65

GPIO:汎用入出力。Lチカ
ソフト制御でプロトコルをしゃべらせてもいい

Page: 66

ADC:アナログ値(電圧)をデジタル値に変換
温度センサ、マイク、ジョイスティックなど

Page: 67

I2C:シリアル通信
2本の配線で複数機器がつながる
各種センサ、小型ディスプレイなど

Page: 68

SPI:シリアル通信。I2Cより速い
各種センサ、LCD、メモリ

Page: 69

UART:非同期のシリアル通信
コンソール、通信モジュールなど

Page: 70

PWM:
こまかなデジタル出力制御でアナログっぽい波形
モータ制御、LED明滅、ブザーを鳴らすなど

Page: 71

よくある質問
「ピコルビーはGPS対応してますか?」

Page: 72

よくある質問
「PRKはトラックボールつかえますか?」

Page: 73


        

Page: 74


        

Page: 75


        

Page: 76

ペリフェラルgemsがあれば、
たいていのことはできる

Page: 77

つまり、PicoRubyはすでに
たいていのことができます

Page: 78

ちなみに
ビット演算の知識は必須

Page: 79

WiFiもComing soon!

Page: 80

PicoRubyの歴史

Page: 81

2017年1月、mruby/c 1.0
mruby準拠VMだけの軽量実装

Page: 82

作者:
田中教授(九州工業大学)
東研究員(ITOC)

Page: 83

コンパイラは別途開発せず、
mrubyのものを使用

Page: 84

mrubyコンパイラはメモリ消費が大きく、
ワンチップマイコンには載らなかった

Page: 85

マイコンに載せるのはVMとVMコード

Page: 86

そのころのhasumikin
「IoTやりたい」

Page: 87

島根県職員

Page: 88

いいのがあるよ!

Page: 89

2017年にmruby/cを触り始める

Page: 90

Version1.0だったけど

Page: 91

バグあり
(誰にも)ノウハウなし

Page: 92

そもそものC言語力不足
(私の問題)

Page: 93

(真の意味での)モンキーパッチ

Page: 94

コンパイルして書き込んで実行(無限ループ)

Page: 95

辛い日々

Page: 96

麹の温度管理システム完成
(旭日酒造)

Page: 97

2018年、仙台
RubyKaigi初登壇

Page: 98


        

Page: 99

角谷さんと松田さんがザワついたプロポーザル

Page: 100

「mrubyで酒を造っています」

Page: 101

2020年
フクオカRuby大賞

Page: 102


        

Page: 103

PicoRubyはまだ陰も形もない

Page: 104

(話は2019年に戻ります)
富山Ruby会議01

Page: 105


        

Page: 106

Rubyで書くmrubyコンパイラ

Page: 107

puts "Hello World!"だけできる
(正確には、関数呼び出し+Stringリテラル)

Page: 108

パーサジェネレータはLemon
(SQLiteプロジェクトの一部。隙間産業)

Page: 109

オレオレparse.cをFFIでRubyにリンク

Page: 110

トークナイザとコードジェネレータはRuby
わりと簡単にできた

Page: 111

2020年
「全部Cで書けるのでは?」

Page: 112

トークナイザをCで書く苦行

Page: 113

コンパイラがなんとなく完成

Page: 114

マイコン上でRubyをコンパイルする
という隙間産業

Page: 115

mruby/c + mini mruby compiler

Page: 116

名前がよくない

Page: 117


        

Page: 118

その後のR2P2につながるアイデアではあったが
コロナ禍のやる気減退もあって消化不良

Page: 119

2021年1月
ラズパイ財団、ラズパイピコを発表

Page: 120

Raspberry Pi Pico(隙間産業)

Page: 121

264KB RAM
2MB Flash ROM
五百円

Page: 122

ゲームチェンジャーでは?

Page: 123

「キーボードファームウェアつくれそう」

Page: 124

PRK Firmware(隙間産業)

Page: 125

RubyKaigi Takeout 2021

Page: 126

“DIYキーボードは実質Ruby”

Page: 127


        

Page: 128

(オレ史上)最高傑作

Page: 129

2021年
PicoRubyと命名

Page: 130

Ruby Prize最終ノミネート

Page: 131


        

Page: 132

Matzによる偉業認定

Page: 133

2022年
フクオカRuby大賞おかわり

Page: 134


        

Page: 135

RubyKaigi 2023

Page: 136

“Build Your Own SQLite3”

Page: 137


        

Page: 138

マイコンで動かすSQLite3(隙間産業)

Page: 139

(オレ史上)最苦労作品

Page: 140

(オレ史上)最も世界のshugomaeda的トーク

Page: 141

最近のうごき

Page: 142

パーサのPrism化

Page: 143

からのLrama-gen化(?)

Page: 144

詳しくは来週(RubyKaigi 2024 followup)

Page: 145

今後やりたいこと

Page: 146

パーサがCRubyとコンパチになると

Page: 147

CRubyと相互運用しやすくなる
(クレームが減る)

Page: 148

ぺん!さんのTRICKyなコードが動く
(かもしれない)

Page: 149

Kernel.#eval

Page: 150

エラー箇所をわかりやすくする

Page: 151

PC(Unix)への歩み寄り

Page: 152

Socketクラス、Kernel.#system

Page: 153

クロスプラットフォームなワンバイナリツール
picoruby-cli(?)

Page: 154

ペリフェラルシミュレータ
PCでGPIOなどの操作を”仮組み”してからマイコ
ンへ

Page: 155

教育コンテンツ化
(セットアップが簡単、再現性が高い)

Page: 156

ラズパイピコだけでは弱いので

Page: 157

ポーティングを進めたい
ESP32、nRF52、STM32

Page: 158

やるべきことは大きく2つ:

Page: 159

①それぞれのマイコンごとのビルド方法に
対応したR2P2プロジェクトをつくる

Page: 160

②ペリフェラルgemsのマイコン依存部分を書く

Page: 161

ぜんぶ隙間産業

Page: 162

協力者大募集中

Page: 163

PicoRuby(隙間産業)

Page: 164

JRuby(隙間産業)

Page: 165

mruby(隙間産業)

Page: 166

mruby/c(隙間産業)

Page: 167

Ruby(隙間産業)

Page: 168

隙間産業<->負けず嫌い

Page: 169

ITはつまらなくなんかない

Page: 170

隙間はもう無いのか?

Page: 171

あなたのすぐとなりに在る

Page: 172

ぼくらにはそれぞれ
旅に出る理由がある

Page: 173

きょうのわたくしの話が
役に立ちそうな人

Page: 174

質問タイム

Other slides