にせねこメモ

はてなダイアリーがUTF-8じゃないので移ってきました。

非公式サーバーで始めるBluesky

(2023-04-11追記) boobee.blueも招待制に移行したそうです(元投稿)。

Bluesky概要

2023年3月初め、BlueskyというSNSアプリが招待制で公開された。
招待制のため、招待コードをゲットしないと使うことができない。

しかし、Blueskyのソースコードは、それを構成するAT Protocolという仕組みとともに公開されているので、有志が立てたサーバーを使って実際の動作を確認することができる*1


日本のKingYoSunさんが立てたBlueskyサーバがboobee.blueである。

今回はこちらを利用してBlueskyを体験してみることにする。

(2023-04-11追記)
boobee.blueが建てられた当初は招待コードなしで登録できたが、ユーザーが急増しているため、2023年4月11日からは招待制に移行した。ユーザーごとに1週間に1つ招待コードが発行されるとのこと。
(追記終)

アカウント作成

iOSの人は公式アプリがあるが、iOSがなくても公式Webアプリが利用できる(今のところ)。今回はこの公式Webアプリを使ったやり方を書いていく。

  1. https://staging.bsky.app/ を開く。
  2. [Create new account]をクリック
  3. [Your hosting provider]は[Other]を選択。アドレスとしてhttps://boobee.blueを入力して、[Next]をクリック。
  4. 自分のメールアドレスと使いたいパスワードを入力し、[I am 13 years old or older]に(13歳以上の場合は)チェックを入れ、[Next]をクリック。
  5. [Your user handle]と表示されるので、使いたいユーザー名を入力し、[Next]をクリック。
  6. アカウントができた!

プロフィール設定

  1. 左上の自分のアイコンをクリック。
  2. [Edit Profile]をクリック。
  3. イコン画像と、ヘッダー画像を登録できる。また、[Display Name]は表示される自分の名前、[Description]は自己紹介を書く。
  4. [Save Changes]でプロフィール設定を変更する。

自分のドメインをハンドルにする

ハンドルというのは、IDみたいなもので、Twitterのユーザー名(screen_name)に相当する。後で変更もできる*2

  1. [Settings]→[Change my handle]→[I have my own domain]をクリック。
  2. [Enter the domain you want to use]のところに使いたい自分のドメインを入力する。
  3. 指示に従って、ドメインのネームサーバーの管理画面に移り、DNSレコードを編集する。_atprotoサブドメインについてTXTタイプにdid=did:plc:で始まる値をコピペして入力し、設定する。
  4. Blueskyに戻って[Verify DNS Record]をクリック。[Domain verified!]と表示されたら[Update to (ドメイン名)]をクリックするとドメインが変更される。

他人を探す

[Search]タブに行くと同じサーバーの人間がずらずらでてくるので、適当にフォローするといいかもしれない。

アカウント削除

  1. [Settings]を開く。
  2. [Danger zone]の下の[Delete account]をクリック。
  3. [Send email]をクリック。
  4. メールで送られてきた確認コードと、パスワードを入力して[Delete my account]をクリック。
  5. 削除完了。

*1:将来的にはサーバーが違っても相互に通信できるようになる予定だが、まだ実装されていない。

*2:変更した後、使われなくなったハンドルは他人が取得可能となる。

MattermostにSlackのログをインポートしようとしたらpq: invalid byte sequence for encoding "UTF8": 0x00というエラーが出て止まったが元データが原因だった

MattermostへのSlackログのインポート

Migration guide — Mattermost documentation
このページのMigrate from Slackの手順にしたがってSlackのエクスポート形式からMattermostのbulk export形式に変換し、mmctlを使ってアップロード・インポートを行おうとした。

Slackログの変換やMmctlは、Mattermostのサーバーとは別のPCで実行しているが、ローカルネットワークで接続されている。

問題

mmctl job show <job-id>

で見ると次のような文面が含まれていた。

error:We could not count the users. — importMultiplePostLines: Unable to save the Post., failed to save Post: pq: invalid byte sequence for encoding "UTF8": 0x00

どうやらPostgreSQLに記録しようとした文字列に0x00という不正なバイトが含まれていたらしい。

よくわからなかったのでjsonlファイルを半分半分にして2分探索していったところ、\u0000という文字列が(何度も)含まれる発言が1つあった。なので、その中の\u0000をすべて削除したところ、インポートはうまくいった。

結局、大元のSlackのエクスポートファイルにも\u0000存在していたので、謎ではあるが、mmetlやMattermostは悪くなさそうという結論になった。

そのほか

2分探索で原因を探るために大量のインポート用のzipファイルをMattermostにアップロードしてしまったので、これを消したい。
Dockerでインストールした場合、mmctl import uploadでアップロードしたファイルは(コンテナ外から見て)volumes/app/mattermost/data/importにあるので、普通に消せばいい気がする。

Mattermostを自宅サーバにインストールしてCloudflare Tunnelでアクセス可能にした

Slack代替としてのMattermostをローカルにインストールしてみよう、と思ってやってみたのでメモ。外部からアクセス可能にするにも、直接公開するのでなくCloudflare Tunnelを使えば、自宅サーバを直接外部に見せなくて良いのでマシかなと思ってやってみた。

環境

今回はDockerを使ってインストールする。

Dockerのインストール

すでにインストールされてたのでやらなかったが、

sudo apt update
sudo apt install docker.io
sudo systemctl start docker

でいいらしい。

バージョンは

$ docker --version
Docker version 20.10.12, build 20.10.12-0ubuntu4
$ docker-compose --version
docker-compose version 1.29.2, build unknown

とのこと。

Mattermostのインストール

プレビュー

docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview

で、http://localhost:8065などにアクセスして動作を確認する。

プレビュー用コンテナの削除
docker stop mattermost-preview
docker rm mattermost-preview

インストール

クローンしてきて、.envファイルを変更する。

git clone https://github.com/mattermost/docker
cd docker
cp env.example .env
nano .env

.envファイルの変更点は、

  • ドメインDOMAIN=の部分を実際に使うドメインに書き換え
  • MATTERMOST_IMAGE=の行をMATTERMOST_IMAGE=mattermost-team-editionに書き換え
ディレクトリ作成
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
sudo chown -R 2000:2000 ./volumes/app/mattermost
立ち上げ(nginxなし)
sudo docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d

終了はsudo docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml down

ここではNginxなしでやっているが、200人以上が使うなどの場合はNginx使った方がパフォーマンス的にいいらしい。実際のところどうなのかわからないが…。

Cloudflare Tunnelの設定

Cloudflare

  1. Cloudflareのコントロールパネルを開いて[Add website]を押し、使いたいドメインを追加する。
    • mm.example.comが使いたい場合にはexample.comを追加する必要があるっぽい。
  2. プラン選択画面がでてくるので[Free]を選択、[Continue]する。
  3. [Review your DNS records]と出るので、トンネルを設定したい(ドメイン/サブドメインの)AやAAAAレコードを消して[Continue]する。
  4. ネームサーバー情報が出てくるのでコピーして、自分の使っているドメインのネームサーバーをそれらに変更する。
  5. [Done, check nameservers]をクリック。

DNS情報が更新されるまで待つ。

Cloudflared

インストール
cd ~
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
ログイン
cloudflared tunnel login

表示されるURLにアクセスして、Cloudflareにログインする。
ドメインを選択して、[Authorize]をクリック。

トンネルを作成
cloudflared tunnel create mm-example

mm-exampleの部分は適当に識別しやすいようにつける。
ここで表示されるトンネルIDとJSON pathを控える。JSON pathは~/.cloudflared/.jsonと思われる。

設定ファイル編集
nano ~/.cloudflared/config.yml

内容を以下のようにする。<Tunnel-UUID>は先程のtunnel createで表示されたものを設定する。

tunnel: <Tunnel-UUID> # トンネルID
credentials-file: /home/nixeneko/.cloudflared/<Tunnel-UUID>.json #JSONのパス

ingress:
  - hostname: mm.example.com
    service: http://localhost:8065
  - service: http_status:404
DNS設定、CNAMEに追加
cloudflared tunnel route dns mm-example mm.example.com
トンネルを起動
cloudflared tunnel --config ~/.cloudflared/config.yml run mm-example
トンネルの自動起動設定
sudo cloudflared --config ~/.cloudflared/config.yml service install
systemctl start cloudflared

不要時はcloudflared tunnel --config ~/.cloudflared/config.yml delete mm-exampleとかして、トンネル一覧cloudflared tunnel listから消えてることを確認するといいらしい。

感想とか

アクセスがもっさりしてる。トンネルを通じてよけいな通信経路が延びてるのだから仕方ないが。
これで安定動作させられるのかは不明である。

実用上はこの後設定をしないといけないと思われる。SMTPの設定や、モバイル通知の設定、などなど。Slackからログをインポートしたりもできるらしい。

Cloudflare Pagesを使ったNostrのNIP-05認証

Nostrのドメイン認証としてNIP-05認証がある。
無料でやる場合はGitHub Pagesが便利だが、Gitに慣れてないとワークフローが分かりづらいと思う。

というわけでCloudflare Pagesでやってみた。

Nostr.jsonを用意

nostr.jsonを次のような内容で作成する。ただし、自分のアカウントに合わせて変更する必要がある。

{    
  "names": {
    "nixeneko": "9a00ce174a1dcad4cc4925a475a7b89eedbf0e2aa2d03ad904fc64cdaef946fc"
  }
}

ここで、"names"の中の左側は使いたい名前(英数字と-_.が使える)にし、右側はHEX表記の自分のアカウントの公開鍵を入力する(Irisなら設定の[アカウント]から「公開鍵」の[Copy hex]で取得できる。あるいはnpub形式をhttps://damus.io/key/で変換できる。)


nostr.jsonを次のようなフォルダ構造に入れる(一番上のフォルダの名前は何でもいい)

cloudflarepagestest/
    + .well-known/
          + nostr.json

登録

  1. CloudflareのWebサイトを開く。
    • 以下、サイトが英語で表示されるときもあるかもしれないが、右上の言語や[English (US)]などとなってるところから「日本語」を選択すると日本語表示にできる。
  2. [サインアップ]をクリックする。
  3. 自分のメールアドレスと、パスワードを入力して[アカウント作成]をクリック。

Pagesを開く

  1. 左側のメニューから[Pages]をクリック
  2. 最初だけ、メールアドレスの確認が求められるので、指示に従って、送られてきたメールのリンクをクリックする。
  3. [Pages]が開かれる。
  4. [プロジェクトを作成]をクリック


Pagesの設定


「プロジェクトを作成する方法を選択する」と表示されるので、[アセットをアップロード]をクリック。


「プロジェクトをアップロードしてサイトをデプロイする」と表示されるので、プロジェクト名を入力する(他人に使われてなければこれがそのままドメイン名になる)。その後、[プロジェクトの作成]をクリックする。


「プロジェクト アセットをアップロードする」と表示されるので、ここに最初に用意したフォルダ(cloudflarepagestest)をドラッグ&ドロップする。

[サイトをデプロイ]をクリック。

うまくいけば「成功しました」と出る

表示されたドメインをコピーして、[nostr.jsonに書いた名前@コピーしたドメイン]の形式(ここではnixeneko@mynostrtest20230221.pages.dev)をNostrクライアントのプロフィール設定のドメイン認証欄に貼り付けて、設定を保存する。

(Irisの場合)

できた。

『モンゴル文字とUnicode』

サークル“ヒュアリニオス”として頒布した『モンゴル文字Unicode』(初出: コミックマーケット100)を公開します。
モンゴル文字の特徴や現在のコンピュータ上で扱う際の問題点などを簡潔に説明するのを目指した漫画です。

更新履歴

  • 2023-12-31 10ページの誤記を修正しました。ご指摘ありがとうございました。

サポートページ

hyalinios.hatenadiary.com

紙版販売

Boothで初版在庫分を販売しています(未修正の誤植などがあります)。紙でほしい場合はどうぞ。停止しています。

ダウンロード

PDFファイルのダウンロードはこちらから: mongol_bichig_ba_unicode.pdf (13.2 MB)

本文

続きを読む

ブログのデザインテーマを変更しました

やったこと

今まで使っていたテーマは“Epic”というものだったらしい。

これを現在のデフォルトテーマであるらしい“Smooth”に変更することにした。

なぜ変えるのか

  • 文字が小さい
    • 小さい文字が見づらくなってきた。
    • いつも120%程度にして使っていた。
    • 文字が小さいというのは、画面解像度が低い時代に合わせて作られたデザインであり、時代を感じる。
  • レスポンシブ対応してない
    • レスポンシブデザイン対応テーマにすることで、スマホも統一的にデザインを設定できる。

そんなわけで変更しました。

色やフォントの関係は慣れない部分もあるものの、字が大きくなったので見やすくなったと思います。

Ledgerで始める同人経理

動機

同人関係を記帳したいな~というモチベーション。

Ledger

Plain Text Accountingという類の、簿記をプレーンテキストによって行うソフトがあり、有名なのがLedgerBeancountなどであるらしい。LedgerはC++(互換のHLedgerHaskell)、BeancountはPythonで書かれている。

違いはよくわからんのだが、このページによるとBeancountは「悲観的」であり、ユーザーは入力ミスを犯すもので、通常の複式簿記の仕組みが提供する以上に入力のチェックを行っているとのことだ。

今回はLedgerを使うことにする。

ちなみにLedgerは一般名詞なので検索性が異様に悪く、Ledger CLIとかで検索しないとまともに情報にありつけない。あるいは公式サイトからたどるとか。

なぜLedger?

勘定科目の名前に日本語を使いたかったのだが、Beancountの安定版であるv2はASCIIの範囲内の文字しか科目名に使えないという制限があった。v3では改善されているとのことだったが、うまくコンパイルが通らない(特にWindowsでは無理そう)。

LedgerやHLedgerは勘定科目名として非ASCIIも扱うことができる。しかし、Windows用として配布されているバイナリは、Ledgerは入力ファイルはShift_JIS (というかたぶんcp932)しか対応してないようで、HLedgerについてはエラーが出て使えないという感じだった。できればUTF-8が使いたいのだが。
UbuntuなどのLinuxならどっちも普通にUTF-8ファイル読めるっぽい。

普段はCygwinを使っているので、CygwinコンパイルすることでUTF-8で使えるようにしたい。

CygwinでLedgerのインストール

Cygwin以外の人はこのページを参照。


Cygwinに次のパッケージをインストールする

  • make
  • automake
  • cmake
  • gcc-core
  • gcc-g++
  • libboost-devel
  • libgmp-devel
  • libmpfr-devel
  • python3
  • wget

ソースコード持ってきてコンパイルする。今回はv3.2.1を使う。

wget https://github.com/ledger/ledger/archive/refs/tags/v3.2.1.tar.gz
tar xvf v3.2.1.tar.gz
cd ledger-3.2.1
./acprep update
make install

できた。
./acprep updateには-j4などでプロセス数を多く指定してやるとコンパイルが早くなる。

これでUTF-8テキストが扱えるようになった。

実行

例えば、2022年の収支をまとめたファイル2022.journalが次の内容だとする。

2022-01-31 * 1月分Fanbox売上
	収益:売上:Fanbox	-500円
	支出:支払手数料	50円
	資産:売掛金		450円

この残高を見るには

ledger -f 2022.journal balance

とする。
出力は

              -500円  収益:売上:Fanbox
                50円  支出:支払手数料
               450円  資産:売掛金
--------------------
                   0

となる。

書き方

複式簿記のアイデアについては解説を省く。

コメントは;の他、行頭に来る場合#, |, *, %も使える。

たとえば次のような仕訳は…

2022/1/31 1月分Fanbox売上
売掛金) 450(Fanbox売上) 500
(支払手数料) 50

Ledgerでは次のような書き方ができる。

2022-01-31 * 1月分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金		450円
	
  • 日付は2022/01/31みたいな書き方もでき、割と柔軟である。日付の横はスペースで区切って摘要を書く。摘要の前に*を入れると決済が済んだ取引として扱われ、集計ができるらしいが、使う気が無いので今回は付けなくてもいい気がする。
  • その下に勘定科目と、スペースで区切って金額を書く。
  • 勘定科目
    • Assets:Cashのように:で区切って2つ以上をつなげたものとなる。英数字以外も使える。
    • 最初の部分が勘定科目の種類であり、一貫してれば何でも良くて、今回は資産・負債・純資産・収益・支出の5種類を使うことにする。
    • 資産:A銀行:普通預金みたいに3つ以上を:でつなげることもできる。細かく集計したいときとかに便利。
  • 金額
    • 借方(debit)がプラス(符号なし)
    • 貸方(credit)がマイナス
    • JPYでもでもいいけど金額の前か後に一貫した文字列を置いておくとそれを単位として集計するっぽい。
    • 複式簿記の性質から、貸方と借方でそれぞれの合計は一致するため、金額の一つは省略できる。
2022-01-31 * 1月分Fanbox売上
	収益:売上:Fanbox		;金額を書かないと自動計算される
	支出:支払手数料		50円
	資産:売掛金		450円
	

金額は、実は単位は何でもいい

  • 通貨以外でも可能
  • @{}を使って単価を示すことが可能→通貨に換算される
2022-08-13 コミケでの販売
	資産:商品		-10 同人誌A @ 320円
	資産:商品		-15 同人誌B {800円}
	支出:売上原価		15200円
	収益:売上:コミケ		-20,000円 ;同人誌A 10冊×500円, 同人誌B 15冊×1000円
	資産:現金		20,000円


事業としてやってるわけでもないので、事業専用の財布や銀行口座をもっているわけではない。

そこで、現金を得たり銀行口座に振り込まれた金額は事業主貸として、現金を支払ったり銀行から引き落とされた額は事業主借として振り替える。これにより、事業主貸・事業主借を見るとキャッシュフローが見える*1

2022-08-11 スーパーにて消毒用エタノール購入
 	資産:現金		436円
 	純資産:事業主借		-436円
 	支出:消耗品費		436円
 	資産:現金		-436円

実例

; Declare top level accounts, setting their types and display order;
; Replace these account names with yours; it helps commands like bs and is detect them.
account 資産:銀行:普通預金
account 資産:現金
account 資産:売掛金
account 資産:商品
account 資産:貯蔵品
account 負債:買掛金
account 純資産:資本金
account 純資産:事業主貸
account 純資産:事業主借
account 収益:売上
account 支出:支払手数料
account 支出:荷造運賃
account 支出:通信費
account 支出:消耗品費
account 支出:販売促進費
account 支出:売上原価

declare commodities:
commodity 円

2022-01-01 繰越
	資産:商品	51 ギリシャ文字・ロシアの文字合冊 @ 96.4円
	純資産:資本金	;自動計算

2022-01-31 1月分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金:Fanbox	450円

2022-02-28 2月分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金:Fanbox	450円

2022-03-31 3月分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金:Fanbox	450円

2022-04-26 Booth Tシャツ無在庫販売
	収益:売上:Booth		-3,100円
	支出:支払手数料		584円
	支出:売上原価		2,350円
	資産:売掛金:Booth	166円

2022-04-30 4月分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金:Fanbox	450円	

2022-05-31 5月分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金:Fanbox	450円	

2022-06-30 6月分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金:Fanbox	450円	
	
2022-07-01 7月初頭分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金:Fanbox	450円	

2022-07-22 Fanbox売上の振り込み
	資産:売掛金:Fanbox	-3,150円
	支出:支払手数料		200円
	資産:銀行:普通預金	2,950円

2022-08-11 スーパーにて消毒用エタノール購入
	資産:現金		436円
	純資産:事業主借		-436円
	支出:消耗品費		436円
	資産:現金		-436円

2022-08-11 ホームセンターにてコミケ用資材購入
	資産:現金		849円
	純資産:事業主借		-849円
	支出:消耗品費		849円
	資産:現金		-849円

2022-08-13 コンビニにておしながき印刷
	資産:現金		60円
	純資産:事業主借		-60円
	支出:販売促進費		60円
	資産:現金		-60円

2022-08-13 『モンゴル文字とUnicode』納入される
	資産:商品	110 モンゴル文字 @ 215.9円
	負債:買掛金	-23,750円
	支出:売上原価	;端数調整

2022-08-13 コミケでの販売
	資産:商品		-36 モンゴル文字 @ 215.9円
	資産:商品		-27 ギリシャ文字・ロシアの文字合冊 @ 96.4円
	支出:売上原価		;自動計算
	収益:売上:コミケ		-31,500円
	資産:現金		31,500円

2022-08-13 コミケ見本誌提出
	資産:商品		-1 モンゴル文字 @ 215.9円
	支出:支払手数料		;自動計算
	
2022-08-13 コミケ新刊をサークルメンバーに配布
	資産:商品		-2 モンゴル文字 @ 215.9円
	支出:売上原価		;自動計算
	収益:売上:配布		-1,000円
	純資産:事業主貸		1,000円

2022-08-13 コミケ販売後の在庫をゆうパックで自宅へ発送
	純資産:事業主借		-1,100円
	資産:現金		1,100円
	資産:現金		-1,100円
	支出:通信費		1,100円

2022-08-13 コミケ売上の現金の回収
	資産:現金		-31,500円
	純資産:事業主貸		31,500円

2022-08-11 100円ショップにて梱包資材購入
	資産:現金		550円
	純資産:事業主借		-550円
	支出:荷造運賃		550円
	資産:現金		-550円
	
2022-08-18 Booth通販売上
	収益:売上:Booth		-1,370円
	支出:荷造運賃		370円
	支出:支払手数料		99円
	資産:売掛金:Booth	901円
	資産:商品		-1 モンゴル文字 @ 215.9円
	資産:商品		-1 ギリシャ文字・ロシアの文字合冊 @ 96.4円
	支出:売上原価		;自動計算

2022-08-19 Booth通販売上
	収益:売上:Booth		-2,240円
	支出:荷造運賃		740円
	支出:支払手数料		170円
	資産:売掛金:Booth	1,330円
	資産:商品		-2 モンゴル文字 @ 215.9円
	支出:売上原価		;自動計算

2022-08-20 Booth通販売上
	収益:売上:Booth		-3,610円
	支出:荷造運賃		1,110円
	支出:支払手数料		269円
	資産:売掛金:Booth	2,231円
	資産:商品		-3 モンゴル文字 @ 215.9円
	資産:商品		-2 ギリシャ文字・ロシアの文字合冊 @ 96.4円
	支出:売上原価		;自動計算
	
2022-08-24 Booth通販売上
	収益:売上:Booth		-4,780円
	支出:荷造運賃		1,480円
	支出:支払手数料		357円
	資産:売掛金:Booth	2,943円
	資産:商品		-4 モンゴル文字 @ 215.9円
	資産:商品		-2 ギリシャ文字・ロシアの文字合冊 @ 96.4円
	支出:売上原価		;自動計算

2022-08-25 Booth通販売上
	収益:売上:Booth		-870円
	支出:荷造運賃		370円
	支出:支払手数料		71円
	資産:売掛金:Booth	429円
	資産:商品		-1 モンゴル文字 @ 215.9円
	支出:売上原価		;自動計算

2022-08-31 Booth通販売上
	収益:売上:Booth		-870円
	支出:荷造運賃		370円
	支出:支払手数料		71円
	資産:売掛金:Booth	429円
	資産:商品		-1 ギリシャ文字・ロシアの文字合冊 @ 96.4円
	支出:売上原価		;自動計算

2022-08-31 8月分Fanbox売上
	収益:売上:Fanbox		-500円
	支出:支払手数料		50円
	資産:売掛金:Fanbox	450円

2022-09-06 Booth通販売上
	収益:売上:Booth		-2,740円
	支出:荷造運賃		740円
	支出:支払手数料		198円
	資産:売掛金:Booth	1,802円
	資産:商品		-2 モンゴル文字 @ 215.9円
	資産:商品		-2 ギリシャ文字・ロシアの文字合冊 @ 96.4円
	支出:売上原価		;自動計算

2022-09-13 Booth通販売上
	収益:売上:Booth		-1,370円
	支出:荷造運賃		370円
	支出:支払手数料		99円
	資産:売掛金:Booth	901円
	資産:商品		-1 モンゴル文字 @ 215.9円
	支出:売上原価		;自動計算

2022-09-21 8月分までのBooth売上の振込
	資産:銀行:普通預金	8,229円
	支出:支払手数料		200円
	資産:売掛金:Booth	-8,429円

2022-09-27 印刷代クレジットカード引き落とし
	負債:買掛金	23,750円
	純資産:事業主借	-23,750円

2022-09-30 9月分Fanbox売上 
	収益:売上:Fanbox		-500円
	支出:販売手数料		50円
	資産:売掛金:Fanbox	450円

2022-10-31 10月分Fanbox売上 
	収益:売上:Fanbox		-500円
	支出:販売手数料		50円
	資産:売掛金:Fanbox	450円

2022-11-30 11月分Fanbox売上 
	収益:売上:Fanbox		-500円
	支出:販売手数料		50円
	資産:売掛金:Fanbox	450円

2022-12-31 12月分Fanbox売上 
	収益:売上:Fanbox		-1,000円
	支出:販売手数料		100円
	資産:売掛金:Fanbox	900円

2022-12-31 銀行口座のお金を回収
	資産:銀行:普通預金	-11,179円
	純資産:事業主貸		11,179円
	
2022-12-31 決算
	支出:荷造運賃		-225円
	資産:貯蔵品		225円

-X 円って指定すると換算で計算してくれる

ledger -f 2022.journal balance -X
           -59,950円  収益:売上
           -20,950円    Booth
            -6,500円    Fanbox
           -31,500円    コミケ
            -1,000円    配布
            28,456円  支出
            16,952円    売上原価
             2,934円    支払手数料
             1,285円    消耗品費
             5,875円    荷造運賃
                60円    販売促進費
               250円    販売手数料
             1,100円    通信費
            12,018円  純資産
           -26,745円    事業主借
            43,679円    事業主貸
            -4,916円    資本金
            19,477円  資産
            13,849円    商品
             5,403円    売掛金
             2,703円      Booth
             2,700円      Fanbox
               225円    貯蔵品
--------------------
                   0

所得だいたい3万円か。よかったですね。交通費考慮すると更に1万円近く減るんだけど。

参考

日本語でいろいろまとめてくれている人がいて助かる

Documentationsへのリンク

*1:自家消費分を事業主貸に含めるとまた違ってくる気がする。自家消費分を別科目に立てるといいかもしれない。とはいえ別に普通のやり方でキャッシュフロー計算すればいいだけではあるんだけど。