Rapberry pi 4 で構築する NAS (USB HDD UASP) の性能

Rapberry pi 4 で簡易的な NAS を構築している。 メイン PC の OS が Windows なので、 NAS で使っている HDD を Windows PC と直接接続してアクセスすることを考えて、 NTFS フォーマットの USB HDD を raspi にマウントしていた。 しかし、これだとパフォーマンスが全く出ない(ntfs-3g が重すぎる)。 次回の windows 10 アップデートで、 WSL2 の機能をつかった ext4 マウントがサポートさるようなので、 USB HDD のファイルシステムを NTFS から ext4 に変更することにした。 これによって、NTFS の時は smb

go1.16 の embed によるファイル埋め込み

go1.16 から embed が利用可能になりました。 <https://golang.org/pkg/embed/> embed によって、 プログラムにバイナリデータを埋め込む処理が簡単に行なえるようになります。 LuneScript のコンパイラは、 go でビルドした際に Lua 環境がなくても動作するように、 Lua 用のセルフホストコードをコンパイラ内部に埋め込み、 実行時に埋め込んであるセルフホストコードをロードしています。 以前は、 Lua 用のセルフホストコードを []byte として定義するコードを生成するスクリプトを 自前で実行して、それをビ

raspberry pi の sdcard 書き換え回数寿命を考える

raspberry pi でローカルサーバを立ち上げているが、 この sdcard 寿命が気になったので調べてみた。 sdcard はでなく、 hdd や ssd で運用する方法もあるが、 sdcard で運用できる方がランニングコストが良いので、できれば sdcard で運用したい。 sdcard の寿命の見積り iostat -h で sdcard への書き込み量を調べると、 1日約 1GB の書き込み がある。 この書き込みが sdcard の 何ブロックを書き換えているのか不明 なので、 とりあえず 10 倍の 10GB 相当 のブロックを書き換えたとする。 次に sdcard が SLC か MLC か TLC かだ

highlight.js で独自言語の色付けを追加

LuneScript の解説サイトは、 hugo を使用して構築している。 その解説サイトに掲載しているソースコードは、 hugo によって解析されて、色付けに必要な <span class=""> が付加され、 css で色付けを行なっている。 なお、 ソースコードの解析自体は hugo というよりも、 hugo が chroma の API を呼び出して利用している。 しかし LuneScript は超マイナー言語なので、 chroma の対応言語には当然 LuneScript が入っていない。 これだと LuneScript のサンプルコードのハイライトが付かないため、コードを読み難い。 そこで、L

WSL2 と cygwin xorg を使って GUI 表示するまでのハマりどころ

WSL2 と virtual BOX が共存できるようになったらしいので、 家の環境に WSL2 を入れてみました。 セットアップ自体は上手くいきましたが、 結果として virtual BOX のパフォーマンス(DISK IO?)は 1,2 割程度落ちたようです。 WSL2 のパフォーマンスが WSL2 無効時の virtual BOX と同等程度なので、 virtual BOX から WSL2 に完全移行できるなら問題ないと思いますが、 WSL2 に完全移行できず、かつ、1,2 割程度のパフォーマンスダウンが許容出来ない場合は、 従来通り WSL2 無効で運用すること