Commits at master
-
39a10964
Web API 定義
...をする基礎的な。そもそもの方向性に疑問が出てきたため中途半端な
状態となっている。
Shota FUJI
authored at
Shota FUJI
comitted at
-
6873c07b
Zig を使ったネイティブ ACL
WASM 方式だと実行ごとにリニアメモリを確保してデータのコピーを行う
という無駄な CPU 命令とメモリ消費が発生してしまう。そのため考え方
を変えて ACL を WASM に輸出するようにしてみた。
利用できる言語が一つに限定されるうえコンパイルなどが発生するが、
WASM でも現実的に利用できる言語は Zig と Rust くらいでどのみち
コンパイルは必要になるためここはあまり変わらない。
フロントエンドにどうやってネイティブの構造体を渡して UI に落とし
込むかが懸念だったが、 Zig のコンパイルタイム実行で構造体定義を
JSON で出力できたためこれに関しては問題ない。
構造体を丸ごと受け取ってアクセス可否を返す形だとフロントエンド側
でいい感じに UI 制御やエラーメッセージ表示ができないため、これも
コンパイルタイム実行で struct -> union 変換を行い単一のフィールド
(パッチ) とすることで個別にアクセス可否を読み取れるようになった。
HTTP サーバの処理とか書くとキリがないのでこのパッチは、
* ユーザ定義ネイティブ構造体・関数を使った ACL
* ライブラリとしてサーバを提供
* フロントエンドに渡すカスタム属性の定義データ出力
に留めている。
カスタマイズ部分が WASM の場合は AGPL でも問題なかったが、 Zig
のライブラリ (静的ライブラリ) だと諸にコピーレフトの影響を受けて
しまうため MPL-2.0 に変更した。どうせだから配布に関係ないものも
全部 MPL-2.0 で統一した。
Shota FUJI
authored at
Shota FUJI
comitted at
-
bbad2c2e
web: WASM アクセス制御プロトタイプ
とりあえず呼び出しと fbs を渡すところが動くか確認したかった。
WASM メモリの #0 に直接書いているが、 TinyGo のようにランタイム
をバリバリ入れるコンパイラや、 "allowzero" をつけていない Zig の
ポインタのように #0 を神聖視している環境で UB を引きかねないので
実際のサーバでは malloc/free を WASM 側から公開する必要がある。
ただ、プロトタイプとしてはこれで充分。
Shota FUJI
authored at
Shota FUJI
comitted at
-
8e3cfee5
auth: WASM + FlatBuffers を使ったアクセス制御
Shota FUJI
authored at
Shota FUJI
comitted at
-
1377dc7c
docs: リンクの書式ミスを修正
Asciidoc の書式は色々びみょい。
Markdown がいかにシンプルで堅牢かを痛感する。
Shota FUJI
authored at
Shota FUJI
comitted at
-
8e052c37
docs: アーキテクチャを更新
現状の最新版の構想に更新した。
D2 のフォーマッタを設定していないが、これは意図的なもの。
"d2 fmt" 、というより D2 の CLI 自体が非常に低品質のため
* stdin から読み込んで変更がない場合に出力がない
* ファイルパスを指定して stdout に出力するフラグがない
* そもそもサブコマンドごとのオプションがない
* etc.
と現状使い物にならない。
Shota FUJI
authored at
Shota FUJI
comitted at
-
e3e8304d
flake-utils を使わない
flake-utils はアンチパターンと言われている。実際 diff を見てわかる通り
素で書いても大したことはやっておらず、また何をやっているのかもこちらの
ほうが圧倒的にわかりやすい。
Shota FUJI
authored at
Shota FUJI
comitted at
-
54938d63
docs: 利用されなくなったコマンドを削除
Shota FUJI
authored at
Shota FUJI
comitted at
-
88cfb5e8
nix fmt で使う Zig を v0.16 にアップグレード
単純にこっちのバージョンを上げ忘れただけ。
Shota FUJI
authored at
Shota FUJI
comitted at
-
bdd3206f
zig2zon とその生成ファイルを削除
消し忘れ。 "zig.fetchDeps" を使う前に導入していたが、コミットする
際に残っているのに気づかずそのままになっていた。
Shota FUJI
authored at
Shota FUJI
comitted at
-
8fdb081d
開発用ツールを devShell から apps に移動
devShell だと使うかどうかに関わらずダウンロードされるため。
apps なら使うときに必要な分だけダウンロードするため、時間や
スペースの節約になる。
Shota FUJI
authored at
Shota FUJI
comitted at
-
cac9249d
docs: Pandoc を使った構成にリニューアル
mkdocs はウスノロポンコツ言語もとい Python を使い更にライブラリ
もりもりのためセットアップからビルドから非常に遅い。また API
デザイン、設定、サードパーティのテーマまで全体的に質が低い。
対して Pandoc は Haskell という敷居が天井に接しているような言語
で書かれており、クオリティが段違いで高い。というかカスタマイズ性
が天と地ほど違う。
内容に関しては単純に更新が放置されていたのを削除して、現状の
プランをざっくりと記載した。方向性などが言語化されていないと
実装しているうちに少しずつずれていって一貫性がなくなったりする
ので、ここを SSoT として開発を進める。
Shota FUJI
authored at
Shota FUJI
comitted at
-
89935f03
demo: Zig を v0.16 アップグレード
変更が必要になると思って "nix flake update nixpkgs" のコミットとは
別にしていたが、マイグレーションなしでアップグレードできてしまった。
Shota FUJI
authored at
Shota FUJI
comitted at
-
95486790
nixpkgs を最新版に更新
"nix flake update nixpkgs"
Shota FUJI
authored at
Shota FUJI
comitted at
-
1253a86e
デプロイ & インフラを外部リポジトリに移行
デプロイやインフラはシークレットまみれであり、また利用者ごとに
プラットフォームや設定などが変わってくるためソフトウェア本体に
同梱するメリットが非常に薄い。
このプロジェクトは Nix Flakes を採用しているため、デプロイ側の
Flake でこのプロジェクトをインポートしからデプロイディレクトリ
に "yamori.packages.${system}.demo" のようにすれば、ビルド設定
をデプロイ側で指定することなく "ビルドされたファイル" を直感的
に利用することができる。
Shota FUJI
authored at
Shota FUJI
comitted at
-
aa88eaf6
demo: 労働者一覧画面
現在の状況まで一覧で出すと大変なことになりそうなので、そこら辺は
詳細に遷移させて見させたほうがよさそう? GitHub のアクティビティ
みたいな感じでコンパクトな表現があれば一覧に出してもいいかも。
あとは 5日未消化時みたいな要アクションのインジケータとか。
Shota FUJI
authored at
Shota FUJI
comitted at
-
dc7bd731
demo: 労働者の予定一覧画面
Shota FUJI
authored at
Shota FUJI
comitted at
-
7b72854d
demo: モデルデータを改善
ページを追加しようとしたが触りづらかったのでちゃんとモデリングした。
Shota FUJI
authored at
Shota FUJI
comitted at
-
61e7d19d
demo: 使用者側のホーム画面
とりあえず Lunacy で作成した WF の分だけ実装。
Shota FUJI
authored at
Shota FUJI
comitted at
-
06101bb6
demo: 労働者ホームのモック
とりあえず取っ掛かりというか、最初にイメージとして見せるものが
欲しかったので最小限。
Shota FUJI
authored at
Shota FUJI
comitted at
-
88f322e4
demo: デプロイスクリプト
Shota FUJI
authored at
Shota FUJI
comitted at
-
66392c77
demo: 最小 Elm アプリケーション基礎
ワークフローの検証用のためスタイルとかは不要。
CSS ベタ書きや最悪 elm-css みたいなので十分。
Shota FUJI
authored at
Shota FUJI
comitted at
-
2971f0a8
nix flake update
ちょっと古くなってたので。
Shota FUJI
authored at
Shota FUJI
comitted at
-
705a4d06
docs: デプロイ工程を刷新
AWS CLI は "s3 sync" 時に同じファイルサイズのものはタイムスタンプを参照
して新しい方で上書きする、というなんとも稚拙な仕様となっている。そのため
Nix でビルドした、タイムスタンプが UNIX 0 秒となっている静的サイトは常に
ファイルサイズのみでの更新判定となる。
rclone は S3 で使われているハッシュを使って変更判断を行う。AWS CLI でも
同じことができるはずだが怠慢により放置されている。
Go で書かれていると変更もソースコードの閲覧も面倒だったので bash に変え
た。そこまで複雑なことをしているわけではないのでまあ大丈夫だろう。
Shota FUJI
authored at
Shota FUJI
comitted at
-
cfb8b677
docs: デプロイに .env を使わない
リポジトリ内にファイルを置くことになるため。コンテナにプロジェクトの
ディレクトリをバインドマウントする場合は開発用コンテナにシークレット
を渡すことになる。環境変数は名前の通り "環境の" 変数であるため、それ
ぞれの環境ごとに設定するべき。
Shota FUJI
authored at
Shota FUJI
comitted at
-
0f5a9b41
"nix fmt" でフォーマットできるように設定
dprint-plugin-exec が FHS でしか動かないため。
Shota FUJI
authored at
Shota FUJI
comitted at
-
ad08276e
docs: クイックスタートのガワを作成
とりあえずイメージを掴みたかったので。
Shota FUJI
authored at
Shota FUJI
comitted at
-
f25d3d77
docs: 文章校正
少し不自然というか、含みがあるような言い回しだったので。
Shota FUJI
authored at
Shota FUJI
comitted at
-
04bbead1
docs: 仕様のファイル形式ページを削除
トップレベルのファイル形式以上の内容を含んでいないため。
というか圧倒的にそれ未満。
Shota FUJI
authored at
Shota FUJI
comitted at
-
1f015888
docs: 概要ページを作成
仕様だと掴みづらすぎる。開発者でもなければ理解は難しい。
Shota FUJI
authored at
Shota FUJI
comitted at