☀️

M5Stackで蓄積したデータベースをグラフ表示するWebアプリを作る。6(仕上げ)

2024/11/24に公開

の続き。そして終わり。

GitHubリポジトリ

GitHubにプロジェクト一式を置いておきます。
https://github.com/ak1211/vite-react-purs

GitHub Pages

https://ak1211.github.io/vite-react-purs/

GitHub Pagesで公開したアプリは"Cannot install OPFS"となってOrigin Private File System(OPFS)が使えないので、気分だけ。

coi-serviceworker

諦めかけたところに、いい記事を見つけた。
coi-serviceworker.jsを入れればいいみたい。

https://qiita.com/murasuke/items/da6cd6b3e9e5a22804bf#おまけ

やったね。VFSリストにopfsが出てきた!。

このデーターはここに置いてあるM5StackCore2で測定したSQLiteデーターベースファイル。


感想

エラー処理は省略したが、5回にわたってやってきたアプリが完成したことにする。
PureScriptはHaskellと同じ純粋関数型の言語なので、いわゆる副作用がないし、型が強いので雑に使ってもJavaScriptとは桁違いの安全性だし、unsafePerformEffect(HaskellのunsafePerformIO同等)とかunsafeCoerce(Typescriptのas同等)を使ったところでJavaScript同等の安全性になるだけだし。

ファイルAPIとかSQLite Workers and Promises APIを使うと非同期プログラミング(つまりPromise)が登場するけど、非同期プログラミングはむつかしいのでPureScript Affにラップというかカプセル化?してAffモナドとして取り扱う方法でないと書ける気がしない。

自分のShadcn/uiコンポーネントの型付けはてきとうなのでこれより、このリポジトリを参考にしてくれた方がいい。

Haskell/PureScript言語は適切な型を与えるのがちょっとめんどくさいけど、適切な型を与えるのはプログラミングでなくても避けられない。
近道はないので自分で考えて。

明治に適切な型というものは、明治の社会的状況、もう少し進んで言うならば、明治の社会的状況を形造るあなた方の心理状態、それにピタリと合うような、無理の最も少ない型でなければならないのです

中味と形式という明治四十四年の夏目漱石先生の講演でこう言っているわけで。ついでに

すべて政治家なり文学者なりあるいは実業家なりを比較する場合に誰より誰の方が偉いとか優っているとか云って、一概に上下の区別を立てようとするのはたいていの場合においてその道に暗い素人のやる事であります。専門の智識が豊かでよく事情が精しく分っていると、そう手短かに纏めた批評を頭の中に貯えて安心する必要もなく、また批評をしようとすれば複雑な関係が頭に明暸に出てくるからなかなか「甲より乙が偉い」という簡潔な形式によって判断が浮んで来ないのであります。幼稚な智識をもった者、没分暁漢あるいは門外漢になると知らぬ事を知らないですましているのが至当であり、また本人もそのつもりで平気でいるのでしょうが、どうも処世上の便宜からそう無頓着でいにくくなる場合があるのと、一つは物数奇にせよ問題の要点だけは胸に畳み込んでおく方が心丈夫なので、とかく最後の判断のみを要求したがります。さてその最後の判断と云えば善悪とか優劣とかそう範疇はたくさんないのですが無理にもこの尺度に合うようにどんな複雑なものでも委細御構なく切り約められるものと仮定してかかるのであります。中味は込入っていて眼がちらちらするだけだからせめて締括った総勘定だけ知りたいと云うなら、まだ穏当な点もあるが、どんな動物を見ても要するにこれは牛かい馬かい牛馬一点張りですべて四つ足を品隲されては大分無理ができる。門外漢というものはこの無理に気がつかない、また気がついても構わない。どんな無理な判断でも与えてくれさえすれば安心する。だからお上でも高等官一等を拵えてみたり、二等を拵えてみたり、あるいは学士、博士を拵えてみたりして門外漢に対して便宜を与え、一種の締括りある二字か三字の記号を本来の区別と心得て満足する連中に安慰を与えている。

なんにでも階級(=class)を持ち出して、「スーパークラスだから派生クラスの上に位置する。」みたいな判断すると素人扱いされる。判断の基準は上下の別以外にもあるからね。

「そうか、カップに麺を入れるのではなく、麺を下に伏せておいて上からカップをかぶせればいい」とひらめいたのです。この "逆転の発想" によって確実に麺をカップに入れることができるようになり、工場での大量生産が可能となりました。
https://www.nissin.com/jp/about/chronicle/

"逆転の発想"があってもよいでしょ。

令和なんだから令和に適切な型。強力な静的型付け言語であるPureScriptはよい言語よ。使ってみないか?

Discussion