LuneScript Web Frontは今迄 fengari を利用していましたが、 golang の wasm で動かせるようにサポートしました。 その際に golang の wasm の利用方法について調べたことをまとめておきます。 golang の wasm 基本的なことは以下の公式ドキュメントをみてください。 <https://github.com/golang/go/wiki/WebAssembly> 最低限のステップをまとめると、以下の手順になります。 以下の環境変数を指定して WASM 化したいプロジェクトをビルドします。 これで main.wasm に WASM 化したコードが出力されます。 $ GOOS=js GOARCH=wasm go build -o main.wasm 以下の wasm_exec.js をコピーします。 $
<http://localhost:1313/posts/2020/2020-08-01-lunescript-man-hour/> 以前 LuneScript の工数を考えたが、今回は別の面から工数を考えてみる。 ソフトウェア開発分析データ集2020 <https://www.ipa.go.jp/ikc/reports/20200930.html> 上記のリンク先の資料「ソフトウェア開発分析データ集2020」の p.84 に、 新規開発の SLOC 生産性の表「A1-2-1 SLOC 規模別 SLOC 生産性(新規開発)」がある。 この表には、コード規模毎に最小、最大、平均の SLOC 生産性が載っている。 このデータから LuneScript の工数を計算する。 LuneScript の工数 LuneScript の現在の規模はコメント含んで約 56 Kline。 SLOC は本
wstcplink を作った。 <https://github.com/ifritJP/wstcplink> これが何かというと、 WebSocket client と TCP client の中継ツールだ。 次のような感じ。 ⇔⇔⇔⇔⇔⇔⇔⇔ Webブラウザ → このツール ← tcp クライアント ⇔⇔⇔⇔⇔⇔⇔⇔ Web アプリケーションとの双方向通信 Web アプリケーションで双方向通信するには、 web socket を使うのが標準だと思う。 (web socket にも課題はあるが、その辺りはここでは触れない。) で、その場合 web socket に対応したサーバが必要になる。 一方で、web socket に対応するのが困難な環境もある。 イマ
家で運用している Raspberry pi サーバイメージのバックアップを shrink するのに どうするのが良いのか調べていたら、 https://github.com/Drewsif/PiShrink を使えばいいだけだということが分かった。 事前に raspi の sdcard イメージファイルを作って、 それを以下のように実行すれば ok. $ sudo pishrink.sh sdcard.img これを実行すると、次が行なわれる。 指定のイメージファイル内の /etc/rc.local が /etc/rc.local.bak にバックアップされる 指定のイメージファイル内の /etc/rc.local に、以下を実行するスクリプトが作成される。 shrink させたファイルシステムを expand する
M5stack の公式 Web サイトを見ると、 M5stack の開発環境は以下のものが挙げられています。 <https://docs.m5stack.com/en/platform> UIFlow Arduino Camera Series Micropython .NET nanoFramework これらは、ソフトウェアを簡単に開発することにフォーカスされていて、 Bluetooth を制御する API の充実度は低いようです。 上記の開発環境で提供されていない Bluetooth の機能を利用するには、 ESP32 の official SDK の esp-idf か、 汎用的な Bluetooth Library の btstack を使う必要があります。 M5stack で Bluetooth の機能を利用するアプリを開発する場合、 その機能がどの開発環境で提供されているかを調査し、 その中
前回 Raspberry pi zero w 版の keyboard remapper に引き続き、 M5stack 版の keyboard remapper を作成しました。 M5stack は、 Raspberry pi zero w と比べて以下の長所があります。 モデルによっては小型軽量 基板が剥き出しになっていない 今は Raspberry pi より入手性が良い 消費電力が 1/5 以下 本体に汎用的に使えるボタンが付いている モデルによっては、本体にディスプレイが付いている 一方で、以下の短所があります。 ROM/RAM が圧倒的に少ない 独自 OS で、開発環境が限定的 情報が少ない 環境構築に時間がかかる 動作確認には
普段、何気に使っている keyboard。 このキーボードがどのように動いているか。 そして、カスタマイズするにはどうすれば良いかを簡単に説明していく。 キーボードと OS の役割り USB で定義される HID keyboard の各キーには、 スキャンコードという値を割り振られています。 keyboard は、キーが押下された時にこのスキャンコードを PC に通知します。 そして、PC はそのスキャンコードを受け、どのキーが押下されたかを検出します。 ところで、キーボー
皆さんはキーボードのキーを入れ替えてますか? キー入れ替えのメジャーな用途は、 Ctrl キーと Cap Lock キーの入れ替えでしょう。 そのような人は、 「OS のキー入れ替え設定」するのが新しい PC セットアップ時の手順の一つに なっている人も少なくないでしょう。 しかし、「OS のキー入れ替え設定」が常に出来るとは限りません。 例えば、共有 PC を使うケースや、 そもそも OS がキー入れ替えをサポートしていないケースなど。 そのような時に使うこ
4K ディスプレイが欲しくなったので調べものをしている。 液晶ディスプレイを選ぶ際、用途によってさまざまな観点でチェックするだろう。 しかし、誰もが気になるのは 「ドット抜け」 だろう。 そんな訳で、各メーカー毎のドット抜け保証についてまとめてみた。 ドット抜け保証まとめ 国内で購入可能なメジャーメーカーの保証状況を以下に示す。 順位 メーカー 保証内容 リンク 1? EIZO 1点もない (例外あり) リンク 2? ACER 中央に集中して3点以内、又
数ヶ月間 LuneScript から離れていますが、生存アピールのためにちょっと触れておきます 今日現在、 LuneScript は言語機能としてエラーハンドリングと大域脱出をサポートしていません。 現在でも、module 機能を利用して 裏技的にエラーハンドリングと大域脱出を使うことは出来なくもないです。 しかし、それはあくまでも裏技で正式機能ではありません。 「何故サポートしていないか?」というと、 エラーハンドリングと大域脱出のベストプラクティスが