LuneScript の v1.5.3 からタプルを対応している。 このタプルの go 実装についてパフォーマンスを調べた内容を載せておく。 LuneScript のタプルの go 変換初期実装 ここでは、LuneScript のタプルを go に変換した際に、 どのような実装になっているかを説明する。 LuneScript で次のようなタプル (int と str のペア) を定義した場合、 (int,str) go では次の型として扱う。 []any つまり、タプルの各要素の型情報は一旦 any に丸め、 タプルから値を取得する際に型変換を行なう。 例えば次の LuneScript
Raspberry pi でサーバ運用を始めて約 2 年。 どうにも最近 Raspberry pi に接続している USB HDD の調子がイマイチだったので、 その対応を行なった。 ただし、未解決。。。 ここでは、その対応の記録を残す。 症状と作業内容 不調の症状は以下。 「HDD のファイルを Read すると、不定期に iowait が増大し、最悪数秒程度止まる。」 ちなみに usb hdd は、 バスパワーではなく AC アダプタ付きの USB HDDケースを使ったもの。 なので「電流が足らない」ということではないはず。 念の
Web サーバを作成するにあたり actix-web を使ってみたので、 初心者の目線から見た感想など。 actix-web 世の中には言語ごとに様々な web フレームワークがありますが、 actix-web は Rust の web フレームワークです。 なんで actix-web を選んだのかと言えば、「Rust を使いたかった」から。 Rust は数年前に話題になったときに、どんなもんなんだろう?と、 チュートリアルと簡単なツールを作っただけで、それ以降触っていなかったので、 そろそろちゃんと触っておこう、と思ったのが
go の wasm と、JavaScript の非同期処理との連携についてです。 基本的な go の wasm と JavaScript 間のインタフェースについては、 以前のネタを確認してください。 ../2022-09-19-go-wasm go の wasm の非同期処理 複数の goroutine を利用したプログラムを wasm に変換すると、 GOMAXPROCS=1 を指定した時と同じ動作になります。 つまり、複数の goroutine を起動させても、 複数の goroutine が同時に動作することはなく、 ある瞬間にアクティブになる goroutine は 1 つだけということです。 これは前回のネタでも書いたことです
今回も引き続き 3D プリンタ系の話です。 3D プリントの出来 3D プリントの出来は次の要素で決まります。 3D プリンタの性能 フィラメントの性能 スライサーの性能、パラメータ どんなに良い 3D プリンタやフィラメントを使っても、 スライサーの性能が悪い、 スライサーのパラメータの設定が正しくない場合、 意図したプリントは出来ません。 Ultimaker cura 3D プリンタでオブジェクトをプリントするには、 3D オブジェクトを積層データ形式に変換する必要があり