今更Stable Diffusionを動かす

Posted on

まぁ、その、暇だったので、はい。

Twitterで日々バトルが繰り広げられる学習側の権利や、生成物の権利云々に関しては、

古くは今の著作権の元となった福沢諭吉の主張した版権から繰り返された、「情報はコピーも改変も配布も容易」なことに纏わる話の変奏曲の一種で1、コンピュータの世界でなら、

のようなことを、また繰り返している。こういう穴をつくのは商売の世界ではありふれた話で、あとは文化庁で審議しつつ法律の整備待ちで、意見があるならTwitterで殴り合ってないで、パブリックコメントを出したり政治活動をしたり、訴訟して最高裁まで持ち込むなどするとよいのではないではないでしょうか、ここはなんとまだ民主主義国家なので、とだけ。

あぁ、もちろん法規制が整うまでに色々ビジネスやるのもよくある話です。ぼくから言えることは、ビジネス上の競合だけでなく、周りの警備会社の人や証券会社の人雇った社員も含めて、その他大勢の人に刺されないようにも、気を付けるといいかもしれませんね。じゃあな、ご武運を。

それは置いといて。逆に美術の「模倣とそれに対する人間のいさかい」の歴史にはうといので、ご存じの方が居たら教えてもらえると助かります。

あ、あと、逆に生成AIで作ったものに著作権が認められるか(著作物性があるか)に関してもまだ議論中ですが(文化庁の資料p.39)、とりあえずわたしはこの記事の中で、わたしが自分のマシンを使って生成した画像について著作権を主張するつもりはありません。

…というクソ長い前置きの元はじめます。

UIを動かすぞい

Stable Diffusionそのままだと雑に動かすのは大変だと思ったので、定番っぽい stable-diffusion-webui をうごかしました。

環境は以下:

  • Ryzen Threadripper 1950x
  • DDR4 64GB
  • Radeon 6800XT
  • Ubuntu 24.04
  • Python 3.12.3
  • Rust 1.82.0 via rust-init

もう7年くらい前のPC2で、今はsshでつなぐサブの開発用マシンになってるんですが、実はあんまり性能が足りなくて困るという事はなかったりします。PC、進歩ねぇなぁ。

基本的には動かし方のマニュアル通りに動かしました。コロコロ変わると思うのでいちいち記録にはしません。

案の定コケる

[Bug]: issue with tokenizers · Issue #16445 · AUTOMATIC1111/stable-diffusion-webui

ここにある不具合そのものに突き当たりました。コメントだとPython 3.10じゃないからではないかとか、rustcのバージョンが新しいから(!)ダメなのではないか、といった議論があるのですが、Rustに関してはIssueに「解決した」とされるver 1.65.0まで下げても同じエラーでしたし、そもそもコンパイルエラーは casting &T to &mut T is undefined behavior と正当に思えるものですから3、rustのバージョンはそのまま1.82.0のまま動かすことにしました。

結果として、次で(わたしの環境では)動きました。

  1. transformersのライブラリを上げる。
    requirements_versions.txt の transformersのところを`transformers==4.34.0`に変更する。
    このバージョンの依存関係(の依存関係?)にあるrustのソースの該当箇所はunsafeで括ってる(大丈夫なのかな…)
  2. transformersのあるAPIで同じ挙動をする(はず)の2つのパラメータの与え方があるので、もう1つの方に変更する

しれっと書いてますけど、3時間ぐらい掛かりました。別のYouTuberの限界分譲地の謎の雑談生放送を聞いてる時の暇つぶしにはちょうどよかったかな、とだけ。

(´-`).。oO(…なんか自分で描いた方が速くないか…)

Pythonの依存関係解決には、すこしだけ詳しく…なったような…。地獄ですねこれ。requirements.txtいい加減そろそろやめた方がいいんじゃない?w

こういうのを仕事として依頼したい時は、ぼくの会社の方にメールください(ダイマ)。もっとめんどくさくてもやるよ~(もちろんお金はもらいますけどもw)。

この件に関してプルリクを作ったのですが、このエラー自体はPythonとRustの、CPUの世界だけで閉じてるのですが、それでも環境によって起きたり起きなかったりするよくわかんない不具合のようで、一旦closeしました(後で書くけど、もうこのソフト飽きたので、ぼくがopenする事はないだろうが…)。2024年になっても、まだこんな感じなんですねぇ。もう2年経ったんだけどな。

出力するぞい

さて、ためしにFediverseの人が呟いてたジョークをそのまま入れました

この結果は、まさにおどろくべきものになりました。「ありがとう」という言葉を見せた水は明らかに、六角形のきれいな形の結晶をつくりました。それに対して「ばかやろう」の文字を見せた水は、結晶がばらばらに砕け散ってしまいました。そして、「masterpiece,best quality:1.4,super fine illustration,shiny skin,detailed skin,detailed face,detailed eyes,an extremely cute and beautiful girl,cowboy shot,beautiful face」という言葉を見せた水は、どこかで見たことがあるような美少女っぽい結晶をつくりました。
https://oransns.com/@Lincade/113386014063650493

この「呪文」自体はとりあえず最初に置いておくと効力を発揮する?ようで、このまんまの完全一致で検索を掛けるとこの後に色々自分で追加してる人が割と見つかります。「うらら迷路帖」で言うと「祝詞」みたいなもんだろな。…東西東西皆々さまに さあさあ八卦の八つ当たり4

さて占いの結果はこちら。ガチャなんでなんか蓮コラみたいになってるやつが最初出て来たんですが5、流石に貼る気にはなれなかったので何回か回した結果になります。ちなみにイラストか実写かはプロンプトにillustrationって書いてあるのにガチャでした。その辺はGANの頃と一緒かな。これは実写と言っていいでしょう。

「cowboy shot」に引っ張られてるのかカウボーイ(カウガール?)になってます。ウケますね。これ思い出したわ(2021年。リンク先は生成AI特有のグロ画像注意)、なつかし:

…元の話に戻る(?)と、Stable Diffusionは「水」以下ってとこですかね?どうおもいます?

ちちぷいの呪文を試しにそのまま入れる

天使ちゃん | chichi-pui(ちちぷい)AIイラスト専用の投稿&生成サイト

ログインするとプロンプトがそのまんま出てくるのでそのまんま入れます。seedも書いてあるので同じやつ入れます。結果:

全然ちげぇじゃねぇか! LoRAを入れるのが前提なのかな。そうなると、生成AIででがちといわれる美少女の顔、いわゆる「マスピ顔」って、「よく使われてるLoRAでのマスピ顔」って事になるのかなぁ。LoRAもいろいろあるみたいから、うまいこと調合しないと元みたいな絵は出てこないんでしょうね。この辺は追いかける気力もないので「たぶん」という事にしておきます。

あぁ、そうそう、seedを一緒にしないとマジで全然違う絵しか出てきませんし、半分以上はマジで単なるキモいだけのノイズです。

(´-`).。oO(…やっぱ…なんか自分で描いた方が速くないか…)

【追記】「マスピ顔」はNovelAI発祥(らしい)です。NovelAIはモデルみんなで共有だもん、なるほどね。マスピ顔を拝んでみたかったのがこれやった理由の1つではあるんですけど、そっか、拝めないのか…。

SDXLも試してみる

モデルが2つ分かれてて、拡散モデルだけではなく、VAEというAutoEncoderの子孫みたいなやつのモデルもあるので、適当なフォルダに放り込んでください、腐るほど解説はあるのでもう書きません。

同じプロンプト、同じseedにして出した結果がこちら:

試しに3つとも並べますね:

SDXLで「よく」なったかどうか、あるいは元のもふくめてこの3枚のうちどれが「いい」かの判断は皆さまにお任せします。あくまで絵ですからね。どれがいいのか、それは最後はあなたのクオリア次第でございます。「どれもいい」とか、「どれもダメ」という感想も、もちろんありでしょう。「何も感じない」とかもありかもね。必ず比較しないといけないとか、そもそも感想を持たないといけない、わけじゃあ、ないんですよ?

ランサーズを観察する

ここまで来てなんとなく思いませんか、「思ったほど楽じゃねぇぞこれ」と。機械さえ揃えても、Pythonの依存関係の依存関係のRustのコードのコンパイルが通らない問題を解決しないと激キモゴミノイズ1枚出ません。3時間で解決できたのは、ぼくがかれこれ25年も、そういう事を繰り返しているからであって、「コンピュータはじめてです!」みたいな人にお願いしたら、それこそ最低限数か月で掛かってもおかしくないと思います。ぼくが絵の練習を数か月したように、です。

さてそうなると予感が出来ますね。これ仕事になるんじゃないのと。なってます:

AI画像生成の外注・制作依頼はプロの個人に – ランサーズ

人間は本当に女の人の裸が好きですね(やっぱり「R18」だと料金あがるんですねw)

それはおいておいて、こんな注意書きを見つけました:

◆注意事項
【要望について】
AI画像生成はガチャと呼ばれるように運の要素が大きく作用します。要望が多いほどすべてを反映させることは難しくなるため、盛り込みたい要素を絞ることがコツになります。
また、女性と男性の描かれ方にも差があります。一般的には男性より女性の方が丁寧に描かれるので、この点もご留意ください。
要望が必ずしもすべて反映されるわけではないことをご理解ください。

これで食うプロ、ぼくよりはるかに使いこなせるプロですら、こうらしいです。

(´-`).。oO(…やっぱ…自分で描いた方が速くないか…)

リンクは貼りませんが、破綻してる絵を加筆修正するのも仕事になってます。「生成済みで破綻していない絵のコレクションからお渡しします」という商売もありました。渡したところで相手が再配布するモチベーションがないことを利用してるわけですね、よく考えるわ。

IT各社の喧伝する煌びやかなデモより、ぼくはこういうのを眺めてる方が好きです。

ちなみに人間が描く方もあります:

イラスト作成・制作の依頼・外注ならプロの個人に! – ランサーズ

相場はどっちもピンキリですけども、やっぱり人間の方が高いみたいです。とはいえ、10倍は違いませんが。生成AIが出て安くなったのかどうかは分からないです。

もし2年前に、登場した瞬間に、Stable Diffusionを動かしていたら、きっとこの話は出来なかったでしょう。そう思うと、「今更」動かしたわけですけど、案外「悪いタイミング」でもなかったのではないかと思います。

そろそろ飽きてきた

生成AIで生成したとする、プロの出力した「広告・HP掲載・バナー・パンフレットなど宣伝材料としてご自由に利用していただけ」る”””素晴らしい画像”””の数々を見てたら胃もたれしてきました。この話はそろそろやめようと思います。蓮コラみたいなキモいノイズももう見たくないし。ディスクストレージを節約するために rm -rf したうえで、電気代も勿体ないので、マシンの電源も落としました。

さてさて、みなさま、FirefoxとAdBlockで「心の戸締り」をお忘れなく!スマホ?あれは広告を見るための機械だから固定電話かガラケーに乗り換えろ。

全然コンヴィヴィアルじゃない

イリイチのことばでいうところの、全然コンヴィヴィアルじゃない道具だなぁといった印象でした。第二の分水嶺超えちゃってます。

一言で言うとね。

道具を使ってるんじゃなくて、道具に使わてるの。

パソコンで絵を描くときの最強ツール

そうそう、パソコンでお絵描きをするときはKritaっていうソフトがおすすめですよ。無料です。が、ぜひ寄付してあげてください。それだけすごいんで。

他のソフトよりレイテンシーが低いし、筆圧だけでなく傾きにも対応しているので気に入ってます。おい聞いてるか、アルパカ?色の扱いもほぼ完ぺきで、DisplayP3でもCMYK各種でも描けます。16bitのキャンバスでHDR画像だって描けます。おい聞いてるか、クリスタ?

強いてマイナスポイントを上げるとすれば、ブラシの選択画面がすこし見にくいかな。ロゴしか描いてなくて、他のソフトみたいに実際に描くとどんな感じになるかのプレビューが無いんです。ただ、要望は結構上がってるので、そのうち対応されるかもしれませんし、正真正銘のオープンソース・ソフトウェアですから、あなたがC++を書けるなら、コミュニティに参加してその機能を実装することだってできるでしょう(もちろん、他の開発メンバの説得とかは必要だよ。喧嘩はダメ!)。

ああ、そうそう。有料のSteam版もあって、手数料分はValveに持ってかれますが、残りは寄付になります。自動でバージョンアップしてくれるのは便利なので、これはこれでオススメです。ちなみにぼくは寄付した上でSteam版使ってます。それでも他の商業ソフトより払った金額全然安いけどね…。

ただし。現実の水彩や油彩のような表現の「再現」には限度がありますし、RGBの三原色モデルの限界がありますから、たとえばラメ入りの絵具のように、見る角度によって色が変わるような絵は描くことはできません。現代の、そしておそらくは将来的にも、コンピュータの性能の限界として、あんまり大きな絵も描けません(A3かA2ぐらいが限界じゃないかな)。そこで行き詰ったら、「デジタル」だけにこだわるのは、やめてみるのはどうでしょう?わたしは透明水彩も色鉛筆もパステルも、今でも使ってますよ。水彩はまだまだ修行中と言ったところですが。これらの道具は、パソコンのソフトとかと違って、混ぜて使う事もできます。自由度は恐ろしく高いです。ただし、その分悩むことも多いです。悩むのが楽しくもあるんですけどね!

野暮だけどどうしても貼っつけときたくなるやつ

2020年5月にはもう存在した画像です。この画像を拵えたやつも、相当上位の「うらら」だろうな。ぼくは最低でも三番占か、それより格上なのは間違いないとみてます6

個人的には「機械学習」だの「AI」だの「統計的手法」だのといったカテゴライズではなく、伝統的な「命」「卜」「相」のカテゴライズを採用した方が見通しがよくなると思う時がよくあります。「しくみ」だけにこだわるのは、コンピュータ「だけ」のオタクの、悪いクセだぞ。

  1. 海外の歴史を掘れば聖書の写本やグーテンベルクまで遡るでしょうね []
  2. GPUだけ10年くらい前のものを流用していたので、4年くらい前に換装しました []
  3. なんで普通の参照を可変参照にするコードが通るんだよ 教えはどうなってんだ教えは!…だって、便利だし?そういう問題じゃねえ!(略) []
  4. これはニナ先生の茶の葉占いの祝詞です []
  5. MidjourneyやNovelAI、MSやGoogle、OpenAIの中の人には、蓮コラが出ないようににらめっこしながらデバッグしてる人が居るんだろうか…お疲れ様です []
  6. 無茶苦茶野暮ですけど、これはひとりぼっちで死ぬ気で勉強してきた秀才・紺が持ってるのがポイントなんですよ、わかってます?(?) []

ショート:私たちは、幸せになるために生きている。

Posted on

「へへ、これは、お前らの文明に滅ぼされたほかの文明の文化の分だ!」と言いながら勢いよくLLMとお絵描きAIを破壊していこう。

ぼく「滅べ人類!これはインカ帝国の分だ!」

あなた「インカ帝国って何?(AIに聞く)」

「インカのめざめ1kgセット、今なら20% OFF。10分以内のご注文で、今日の夜までにお届け。今なら育ちざかりのお子様のいる忙しいご家庭向けの夕飯用かんたんレシピARデータもプレゼント!

【行動ナビ】以下が本日の次の予定です。3分後に…」

あなたはコンテクストを忘れて買ってしまう。よかった、今日は忙しいらしいからな。精力的に仕事をする。家に帰る。置き配でいつもの笑顔のマークのダンボールが転がっている。あなたは何を買ったかは覚えていない。でもAIが教えてくれる。あなたは言う通りに従って食材や包丁やフライパン、電子レンジなどをただARマーカーに沿って操作する。目の前には豪華で映える夕飯が広がっている。もちろん、あなたはSNSでシェアをする。いいねがたくさんつく。翌日、あなたの子供は起きてこず、起こしても動かない。これがSNSでよく流れてくる反抗期ってやつなのか。あなたは要はどうすれば良いか分からないので、もちろんいつも通りAIに聞く。いわれた通りにデータを送る。「死んだ」というらしい。なんだろう?見慣れない言葉だ。専門用語だという。とにかく言われた通りに最寄りの病院に自動運転のタクシーで連れていく。医師はもちろん最新のAIを使ってあなたの子供を見る。医師は、こうなった原因はわかりませんが、最新の研究でも、これはもう動かず、喋らないことはわかっています、これからリサイクルの手続きを、という。最新のAIでお手上げとなれば仕方がないと、あなたはあきらめる。しかし、と医師は続け、もう500万円頂ければクローンの子供というものが用意でき、云々。よくわからないが、AIを使って要約すると、とにかく、また、あなたの子供は、喋ったり動くようになると言う。へぇ便利な世の中になったものだ。あなたは買ってしまう。そうして、あなたは無事に問題を解決し、また仕事に戻ることができる。あなたはまた動く子供が見れて頭をなでることができ、どうやってつけたかは忘れた名前を呼ぶと反応するのを眺めることができ、家族と職場とSNSに何かをシェアできるので、チェックシートのすべての項目が満たされ、しっかりと満足する。

ここまで読めなかったあなたへの要約:世界のGDPと平均株価は上がり続ける。私たちは幸せになるために生きている。

これで、いいだろう?よーし、win-winのようだな。

元ネタ

気が付くとぼくの絵が国立博物館に所蔵されている事になっていた件 by Gemini

Posted on

ねんむいでケロな :: the gear of seasons

この絵は、日本の画家、伊藤若冲(1716-1785年) によって描かれたものと思われます。若冲は、動植物を写実的に描いた絵画で知られています。この絵も、カエルの体の細部まで忠実に描かれています。

この絵は、日本の国立博物館に収蔵されています。

Gemini曰く

どうやらぼくは、時間を超え、江戸時代に国立博物館に所蔵されるような国宝級の絵を描いてしまっていたらしい。まさか、商業画家を通り越して、いきなり国宝級の絵を描いてしまったなんてなぁ…無双系「なろう」みたいなことが本当にあるとは。現実は、小説より奇なりとは、まさにこのことだね(棒読み)。

ちなみにカエルが目を閉じる時は、目は頭のなかに引っ込みます。食べる時には目をとじて引っ込めて、喉の方に押し込むんだってさ。

Alternative Factsとか言ってた頃が懐かしい

ちなみにこれ、毎回結果が変わります。真実は、サイコロで決まる!

github から forgejo に移行しました

Posted on

引き続きgithubへの「ミラーリング配信」は行います。issueもgithubの方へ書いて頂いて大丈夫です。

Forgejo とは何か

見た方が早いでしょう。githubみたいな、だけど自分のサーバでも動かせる何かです。

公式サイト:Forgejo – Beyond coding. We forge.

(2024/02/10 追記) 翻訳始めました

#74 – [AGREEMENT] ledyba application to the localization team – forgejo/governance – Codeberg.org

翻訳する人がいないなら…もう自分でやるしかないじゃない!あなたも!わたしも!

なぜ移行したのか

まぁ突き詰めると「最近のGithub、なんか『違う』な」ってだけなんですけど、ためしに列挙してみましょう。全部は無理だと思うけど。

倫理観や定義がグローバル基準ではない

サンプル画像として用いている弊サークルのイラスト(複数)が、githubではないものの、海外のイラストサイトから「児童ポルノ」という事で実際にBANされた事がありました。わたしたちは、「児童」も「ポルノ」も、描いてるつもりは、ないのですが…? 小説、レシピ、(作曲した)曲、3Dモデルなど、一般的には「ソフトウェア」とは呼ばれないであろうジャンルのリポジトリもあります。これらすべてについてまで「グローバル基準」な倫理の判定を行われた際に、違反しない自信がありません。以前でしたら「どうせそこまでチェックしてないし、技術的にも資本的にも無理だし、まぁいいか」でしたが、なんでもかんでもTokenにして「AI」と書かれた脳みそのイラストにすべてが放り込まれ、「生産性の向上」「ソフトウェア・サプライチェーンのセキュリティ」なるものがひたすらに叫ばれる昨今、雑に機械で判定されてBANされてしまう危険性は高まっていると感じています。利用規約でも「わいせつ」なものはダメだと書いてあります。その定義をよんでも、わたしには、何が何だか、さっぱり意味が分かりませんでしたが…。

まぁ、わたしのアカウントがBANされるまでなら「バックアップしとけバーカ」で終わるのですが、参照されてしまうと、使っている人も困ってしまいます。オープンソース、ですからね。そんなわけで、弊サーバでホストしつつ、githubへのミラーリングという二段構えの構成をとることとしました。

Githubが寡占しすぎで怖い

なぜ人は寡占をすると付け込まれる事を覚えないのでしょうか。mixiもTwitterも、IE6も、もう忘れたか?

寡占したら次に始まるのは何でしょう?

そう、ロックインですね。まだ逃げ出せる今のうちに、移行しておかなければ、という気持ちになったので、えいやっ!とやりました。

Github Copilot 押しが、あまりにもきな臭く感じる

右上の “Code 55% faster with GitHub Copilot” にご注目ください。

これ料理のレシピですよ?これ55%速くなります?Githubくんは、適当な事を、書いてるだけですよね?Github Copilotくんが料理を作って味見して「おいしい料理のレシピ」を、ぼくの倍速で作ってくれるんですか?

どうも観察すると、Rustだろうが、PHPだろうが、6502のアセンブリだろうが、Cubaseのプロジェクトだろうが、55%速くコーディングできるそうです。

アポロ11号のカルマンフィルタの実装も、もちろん、Github Copilot を使えば55%高速に書けるとPRしています。アポロ11号がギリギリ60年代の1969年に着陸して「遅延」したのも、NASAはGithub Copilotへの課金をケチった馬鹿野郎の集まりだからなんでしょうかね?

kotoba.phpには色々な人の、人生に裏打ちされ、丹精に込めて紡がれたであろう、そんな言葉が、たくさん含まれています。これら言葉も、みな、”Code 55% faster with GitHub Copilot” なのだそうです。ほんと、いい加減にしろよ。

これがもしできて、そして、これにお金を出せる酔狂な人は、ぜひ「Copilot Workspace自身」と「仕様を明瞭に記述」したとき、その通りに出力してくれたか教えてください。できたら、あともう料金払わなくてすみますよ。そうじゃなかったら?詐欺だよね?やっぱりもう料金払わなくて、いいよね?

「Git版Fediverse」であるForgefedに期待だ

さて、このforgejo、設定次第ではあるのですが、今建てたインスタンスではユーザー登録は基本的に管理人しかできません。2人ユーザーがいますが、わたしがアカウントを払いだしました。するとgithubのように「ふらっとやってきた人が、不具合を報告していく、直していく」とか、そういう事は基本的にできません。まぁ、それも、ほんとうに、「ごくたまに」しか、発生しないし、いや、でも、昔は掲示板でも置いとけばアカウント登録なんかしなくても不具合の報告ぐらいは、できたんですけどね。そもそもforkボタンなんか押さなくたって、gitコマンドがあればforkはできますし。よくわかんないや。

まぁいいや。しかしながら、たまには誰かが開発に参加してくれたりするのも、事実でございます。

まぁメールでもブログのコメント欄でも、連絡をくれればアカウント作るぐらいはできますよ。実際、それで十分な時もあります。それでも敷居が高い?しょうがないにゃあ・・。いいよ。そんな時の仕組みとして、今頑張って開発されているのがFederation機能、通称ForgeFedです:

プロトコルないし理念:

実装:

短文ブログに比べればかなり機能は多く、実装は難しいものの、歩みも熱量もゼロではありません。技術的にも原理的にも、不可能ではないことも分かり切っています。そのうち、なんとかなるんじゃないかなと思っています。

短文ブログのFederationがはやり始めてから、7年になろうとしています。たしかに「メインストリーム」には、なっていないかもしれませんが、だからこそ、穏やかに続いている。そんな印象です。オープンソースでfederationが出来ても、あるいは出来なくても、そんな感じに落ち着くんじゃないでしょうか。これはわたしの「夢」も半分、なのかもしれませんけどね。

Github”なんか”おっせーよなぁ

forgejoの方が速いよなぁ:

帰ってVPSでforgejo建てようぜ

githubからのbackupには、次のgithubにあるスクリプトを使わせてもらいました:

githubを以てgithubを制す。バイドを以て、バイドを制す

まぁ一周しただけなんだけどね

昔は同じドメインに建てたSVNサーバ使ってました1

git-svn-id: http://ledyba.org/svn/src/Applications/ServerSideWebApps/buffalin@1 74a9cb86-dd52-4021-9b0c-c77737e5d92d · aec3b4320d – ledyba/Buffalin – ledyba.org

githubくんはもう忘れちゃったそうですが

「GitHub」で「Subversion」プロトコルのサポートが終了 – 窓の杜

  1. たぶん自作サーバですね。そのうちVPSも厳しくなってきて、自宅サーバに戻るかもしれません。ただ、いつまで家に公開IPv4/v6アドレスが来るのだろうか…。 []

同人誌の通販始めました

Posted on

同人サークル「妖精⊸ロケット」の同人誌の通販をBooth経由で始めました。

元はデジタルデータですが、印刷すると、それはそれでなかなか迫力があるので、絵が気に入った方はぜひ。ちなみに500円なのはなぜかというと、印刷代に500円掛かったからです。

なお右に貼ってあるメールアドレスから連絡しても買えます。お互いに住所を晒しあう感じになるので1970代~1990年代後半までの、同人誌に住所が乗ってたような頃のお気持ちになりたい人向けです。決済手段は定額小為替、郵便振替、その他ご相談次第となります。

よろしくお願いいたします。

本当に信頼できる相手にしか、本物の魔法は見せてはならない―無数の解釈を許す、あの日の想い出:うらら迷路帖 第07話 「祝詞と魔女、時々覚悟」

Posted on

日本人読者の皆様におかれましては、「現代文の試験」の洗礼を受けたことかと思います。小説として商業出版されている日本語の文章の一部が、まるでまとめサイトのスレ抜粋みたいに切り貼りされた状態で印刷されてて、Togetterで赤字にするようなノリで傍線部が引かれてて、「これはどういう意味か4択の中から答えろ」ってクイズが始まるとか、そんなやつです。アレですよ、アレ。

あの「問題」が成り立つ裏には、1つの暗黙の了解、「公理」が流れています。つまり、「物語の読み方と解釈には一意性と正解があり、それがわからないお前はカスであり、知的動物ではなく、人間が食料としても何ら道徳的問題がない」ということです。

今日は、その了解が成り立たないか、あるいは成り立たなくてもよいことにした瞬間に突然面白くなる、魔女の女の子と、もっともっと小さな女の子の、魔法の秘密の物語についてお話しましょう。

物語の流れはおおよそコミックス版と同じですが、物語の主題が1つに整理されて、効果的な映像演出などが加わってより抒情的になってる(とわたしは思う)アニメ版をベースとします。

あらすじ

小さいころから、ほしいものは何でも簡単に手に入った。

「アンシャンテ、お嬢さん!」

そんなあたしが、唯一手に入れられなかったもの。

世界で一番憎らしくて、世界で一番大好きな人。

小梅の回想

主要キャラの1人、「小梅」の、今よりずっと昔、彼女がもっと幼かった頃のお話です。

小梅は巨大財閥「雪見家」の1人娘。親におねだりすれば、何でも簡単に手に入る。

そんな何一つ不自由ない暮らしをする彼女の元に、ある日「マリ・キスピルクエット」というフランスからの留学生がやってきます。

初めて出会った異国の少女。そして、魔女。

そんな彼女は、さっそく小梅をフランス語の「梅=プリュネ」から取って「プー」と呼び、そして、いきなり、おでこに、ちゅ!

「今のは呪いのキスよ!魔女流の、あいさつなの!」

「ななな、な、なにそれ!『呪い』って、わたし、どうなっちゃうの!?」

「あたしと、とっても仲良くなれちゃうのっ!」

「!?」

自由奔放ですね。そんなマリが繰り出すたくさんの「魔法」に、小梅は驚きます。

「マリって…何者なの…?」

「言ったでしょ、魔女だ、って。
 こう見えても、300歳よ!魔女は長生きなの!」

「すごい!…30歳くらいかと思ってた…」

「失礼ね!! こう見えてもまだ18歳よ!!

「なんでそんな嘘ついたの…!?」

小さな小梅は、突然やってきた「魔女」に、興味津々です。

「ねぇ、どうしたら魔女になれるの…?」

「うふふ!わたしは魔力を得るために、人魚をフライにして食べたのよ」

そんなマリとの日々が、小梅は楽しくてしょうがないご様子。

マリは悪戯好きで、いじわるで、嘘つきで、天下無敵。

物知りで、お茶目。可愛くて、お洒落。

ちいさなわたしは、マリの全部に夢中になった。

そんな不思議な力を小梅に見せてくれるマリですが、小梅のパパやママは全く信じていません。

「マリってすごいんだよ!魔術が使えるの!」

「マリは手品が上手なんだなぁ」

「ほ、ほんとだもん!」

「小梅をからかってるのよ」

「マリは本物の魔女だよっ!」

マリのすごいすごい「本物の魔法」を一切信じてくれないことに、小梅はいら立ちます。でも、マリは気にしていない様子。

「もう、頭に来ちゃう。お父さまも、お母さまも、信じてくれないの」

「いいのよ、そういうもんだし」

「えぇ!?」

「それより、あたしは勉強しないと。そのために、この国に来たんだもの」

「お勉強って、何の?」

「東洋の魔術よ」

マリは何のためにこの国に来たのか。それは勉強。では、それは何のため?

「わたしは箒で世界中を旅して、魔術を学んで、世界で一番の魔女になるの。それが、あたしの夢なのよ」

「世界で、一番の魔女…」

「でも、これは秘密事項よ!魔女はミステリアスじゃなきゃお洒落じゃないもの!
 口封じのおまじないよ!」

「世界で一番の魔女になる」という彼女の夢をかなえるため。それが目的ですから、魔法がインチキだと他人に思われたところで、彼女は一切意に介しません。

一方の小梅は、それでもやっぱり、マリが本物の魔女だと信じてもらえないことがどうしてもご不満です。あんなにすごいのに!

そこで小梅は、マリが昼寝している間に、彼女の箒を盗んで、屋敷の一番高い窓から飛び立つことで、みんなに魔術を見せて信じてもらおうと画策します。

みんなに魔術を見せれば信じてもらえるよ、マリは本物の魔女だって。

(窓の前に立つ小梅)

マリの箒があれば、飛べるはず…。

(屋敷の一番たかい窓から下を見下ろし、思わず震える)

「マリのためだもん!絶対飛べる…」

そう口に出し、小梅は顔を横に振る。

かくして覚悟を決め、箒にまたがって飛び降りる小梅。

…しかし、あれれー!?

本物の魔法の箒のはずなのに、まったく飛べません。このままでは、地面に激突してしまいます!

「マリー!助けてー!」

ぱちん!と指がはじける音がすると、箒は空を飛ぶようになり、小梅は難を逃れます。

そこに現れたのは、もちろんマリでした。

「意外と勇気があるじゃない。
 でも、ちょっとオイタが過ぎるわね、プー」

そのマリは、まったく仕方がないわね、と言わんばかりの、ちょっぴりあきれたような、でも優しい、そんな顔をしていました。

そうして「勇気」を認めてもらった小梅は、「本物の魔法の箒」に2人でまたがり、夕焼け空を散歩します。

「すごい!やっぱり飛べたね!」

「あったりまえでしょ!魔女だもの。
 …でも、魔術は本当に信頼できる人にしか見せちゃダメなの。
 だから、内緒にしておいて。じゃないと、色々厄介だから」

「なんで?すごく、かっこいいのに」

「それがわかんないなら、プーはまだまだ『プチプチプリュネ』ってことよ」

そんな楽しい毎日に、突然終わりが訪れます。

それからしばらくして、マリの言葉の意味が分かったの。

冬。原因不明で医者も匙を投げる疫病が、町で蔓延してしまいます。新聞の1面も、感染者が急増したことを危機感を持って伝えています。なお、この作品は2017年放映ですので、そこんとこはよろしく。

雪見家の主とその妻に、メイドが震える声で報告します。

「あの…奥様…。町で噂になっているんです。
 病を呼び寄せたのは、雪見家に居候している魔女じゃないか、って」

「何を、バカバカしい」

「ですが、雪見家の信用にかかわります!
 小梅お嬢様にも、悪影響があるかもしれません…」

マリはその様子を、陰からこっそり、これまでで一番真剣なまなざしで見つめます。

「わたしたちは、君のことを疑ったりはしない。だけど、このまま町に留まるのは君のためにも…」

「ええ、分かっています、旦那様。プリュネのためにも、フランスへ帰ります」

「…すまない…」

「そんな顔をなさらないで。厄介者扱いには、慣れっこですわ」

達観したような笑顔で帰国を決めたマリ。

ですが!

小梅はもちろん!

そんなの嫌に決まっています!

「やだ やだ やだ やだ!
 なんで!?
 マリは悪い事してないのに!
 マリが帰るなら、小梅も一緒に仏蘭西に行く!
 マリの弟子になって、魔女になる!!
 …お願いだから、小梅も連れてって…!」

「あのねぇ、魔女になるってそんなに簡単じゃないのよ?
 プーみたいな泣き虫は、弟子にだってなれないわ」

「なれるもん!魔女になって、マリをいじめる人の事を全員呪ってやる!」

「うっふふふ!なっかなかいい事言うじゃない!1ちょっとは素質、あるかもね」

「…ほんと!?」

「そうね…じゃあ…」

あの「箒」を、小梅に渡すマリ。

「この国で一番の魔女になること。
 それができたら、あたしの弟子にしてあげる。
 …これは呪いのキスよ。小さな魔女に、試練と困難を。
 元気でね、マドモアゼル・プリュネ。」

そして意地悪で素敵な魔女は、フランスへと帰っていきましたとさ。

今ならわかるの。マリはきっと、魔女になんかなるなって、言いたかったんだって。

だから、「この国で一番」なんて無理難題を吹っ掛けたのよ。

だけど、思い通りにあきらめてなんか、やらないわ!

だから、わたしは迷路町に来たの!

マリとの出会いと別れ、そしてマリとの約束が、小梅が「うらら」と呼ばれる占い師、しかもその中での最高位である「一番占」になるために、何不自由のない自分の家を離れ、「迷路町」で厳しい修行の道を歩むようになった、決定的なきっかけだったのでした。

「秘密にしてたのに…」

「別に隠さなくていいじゃない?」

「それじゃお洒落じゃないもん!」

そうだよね、マリが言ってたとおり、魔女はミステリアスじゃなきゃあ、いけないもんね!

魔女の秘密を根掘り葉掘り

削れる台詞が中々無くて、長くなってしまいました。演技も映像も、この回のために書き下ろされた曲「異国の魔女」「雪見家のお屋敷」「いたずらな魔法」「空のお散歩」「プリュネの想い出」(5曲もある!)も、どれもよいので、ぜひ実際に見て・聞いてみてくださいね。

ここからはこのエピソードを「解釈」していきます。

マリは誰にも心を開いていない、ただ一人小梅を除いては

このエピソードは、メタに言えば、まぁよくある、各キャラクターの自己紹介やキャラ付け、バックグラウンドの紹介のための、いわゆる「キャラ個別回」というやつになります。このエピソードを入れることでキャラクターの行動に説得力を持たせたり、キャラに深みを与えて、視聴者に小梅のことを好きになってもらおう、みたいな。そのためのエピソードです。

ですが、ですが!

この話は意図してか偶然か、そんな「お約束の枠組み」を超えた、それ単体で非常に面白いお話になってしまっています。

そうなってしまっている鍵を確認しましょう。

それは、もちろん。

小梅が箒で無謀にも空を飛ぼうとし、マリがその勇気を認めてくれた時の、この言葉です。

…でも、魔術は本当に信頼できる人にしか見せちゃダメなの。
だから、内緒にしておいて。じゃないと、色々厄介だから

このセリフから、マリのすごいすごい魔法を、どうして小梅以外、だれも信じてないのかの理由がはっきりと明らかになります。

そう。

そもそも単に、本物の魔法を、小梅以外の誰にも、見せていないから、です。

見せてないんだから、信じるわけないじゃないですか。とっても簡単な話ですよね?

そして、彼女はいくらこの国で社交的に、笑顔を振りまきながら、非常にうまくふるまっているように見えても、実は、小梅以外、だれも心からは信頼なんかしていないし、逆に小梅のことだけは心から信頼している事もわかります。

では、小梅が今まで見ていたものは?

ここで止めてはもったいない。さらに問いをつづけましょう。

マリは本物の魔法を、小梅以外には見せていない。

マリは本物の魔法を、小梅だけには見せている。

では、その小梅に、本物の魔法を見せるようになったのは、いつからでしょうか?

言い換えれば、小梅がこのシーンに至るまでに見ていたものは、本物の魔法だったのでしょうか

それとも、実はここまでのものは全部、ただの手品だったのでしょうか

すべての解釈を楽しんでしまえ

さて、日本の現代文の試験であれば、きっと「傍線部Ⅲ『魔術は本当に信頼できる人にしか見せちゃダメなの』とあるが、マリが小梅を『本当に信頼できる』と判断したのはいつか、50文字程度で説明せよ」といったクイズが始まり、そのクイズの出題者の解釈をくみ取って答えられるかどうかで、この世界の「うらら」、つまり「大学生」という「学者のたまご」にするかどうかの選抜を行うのでしょう。

ですが、今回は大学入試ではありませんから、その問いを立てるのはともかく、その正解を1つに決めるのをやめましょう

その代わりに、マリが小梅と出会ってからこのセリフが発される瞬間のすべて、それのどれもが正解でありうるとしてみましょう

すると、それぞれの解釈はどれもそれぞれに「美味しい」事に気づきます。これに気づいちゃったら、人間が求めて限りない、「唯一無二の絶対の真実」なんか、どうでもよくなっちゃいますよ?

可能性1:勇気ある行動を見て、信頼するようになった

比較的素直な解釈の1つです。「意外と勇気があるじゃない。」という言葉通り、この小梅の勇気ある行動を見て、「ふむ、こいつなら信頼できるな」と小梅のことをマリは認めて箒に乗せてくれた、とする解釈です。素直ですね。

この可能性をとると、小梅がこの瞬間までマリの使う本物の魔法だと思っていた数々の行為は、実は全部ただの手品だったことになります。漫画版には、この解釈を採用すると意味が文字通りになる、「マリが来てから毎日手品みたいに不思議で楽しくて」という独白もあります(二巻 p.87)。本物の魔法に見えるシーンはいくつかありますけれど、このお話は5歳の頃のお話を、10年以上後に回顧したものです。いくらかの「記憶の美化」だって、あるのかもしれません。別の言い方をすれば、今回の彼女は、「信頼できない語り手」なのかもしれません。2人で空を飛んだ時の、「すごい!やっぱり飛べたね!」という小梅のセリフが、今まで実際に人間を載せて空を飛んだ事はないことを暗示しているのも、傍証と言えるかもしれません2

さて、そうなると、小梅と仲良くなろうとしていたのも、「留学先の子供を懐柔しとけば親の機嫌も同時に取れるし、雪見家とご令嬢経由でコネが作れれば、この先いろいろ好都合よね~」という程度の話であって、いままでのは全部ただの「ご機嫌取り」、「仲良しごっこ」、「処世術」でしかなく、小梅のことなんか、な~んとも思ってなかった、極論すれば、「留学先の大財閥のご子息」という「ラベルの貼られた人間」「社会的ロール」を通してでしか認知していなかった、という極端な解釈だってできます。

この可能性を採用してエピソードを見返してみてください。完全に違って見えるはずです。

可能性2:最初から信頼していた(少なくとも、ある程度は)

可能性1はいくらなんでも無理があるんじゃない?留学先の子供をあしらって機嫌を取るにしてもサービスしすぎじゃない?そこまでドライでは、流石になかったんじゃないの?

そういう意見も、もちろん妥当だと思います。

さて、マリは魔女ですよね。魔女は、この作品において「西洋のうらら(占い師)」とも呼ばれる存在です。ですから、小梅と出会った瞬間に、直感的に、呪術的に、あるいは「運命」や「星の巡り」のようなものを感じて、「この子は信用できるわね」と判断して、最初から完全に、あるいは「ある程度」は信用していた、そういう可能性もありましょう。

途中で「世界で一番の魔女になるのが夢なの」「でもこれは秘密事項よ」と夢を語るシーンに関しては、こちらのほうが素直に読むことができます。

この場合、今まで小梅が見てきた「魔法」は全部ほんもので、小梅以外からは見えないよう、人払いの魔法陣や、結界なんかを張って他の人からは隠していたのでしょう。しかし、それでも一部の『魔法』は「そこまでは見せられない(信頼できない)」ということで、やっぱり手品か何かだったのかもしれません。

そして、その「信頼度」も、ずっと同じだったわけではなく、この物語を通じて、上がったり下がったりしていたことでしょう。

この「最初はどれほど信用していたのか」「この時点ではどれほど信用していたのか」はいくらでも可能性が考えられますので、色々レベルを変えて見返してみてください。その「すべて」でエピソードの印象はそれぞれ変わって見えるはずです。

可能性3:描かれてないだけで、小梅が覚えていない何かがあった(そうだ、二次創作しよう!)

このエピソードは、繰り返しますが、小梅の回想です。ですから、当たり前ですが、小梅が覚えていることしか(基本的には)登場しません。ですが、もちろんマリにはマリの意思があり、記憶があります。

ですから、「マリが小梅を信頼するようになった」のは、「実は小梅が記憶していない、この小梅の物語には出てこない、マリにとっては特別に感じられた、別のエピソードがあったからだ」、と解釈することだって可能です。ええ、一番現代文の教師が嫌いそうな解釈ですけどね。

この解釈を採用してもアニメ本編の解釈には直接の影響はありません(だって描かれてないんだから)が、二次創作してみるのにはぴったりな解釈・題材だと思います。

ぜひみなさんがその「エピソード」を紡いだら、ぜひわたしに教えてください。わたしも形にできたら、ひっそり公開しようかと思います。

もちろん、物語も魔法の1つ!、ということで、本当に信頼できる人にしか見せないのもアリかと思います。UGC 全盛で忘れ去られてる気がしますが、二次創作に限らず、べつに作ったものをみんなに公開しないといけないわけじゃ、無いんですよ?

うーん、小梅とマリの間に、何があったんでしょうね。とっても気になります。今日は寝れるかな?

アニメ版と漫画版、それぞれのアートワーク

本題とは一切関係ないのですが、この話は先述したとおり、おおむね原作漫画をなぞったうえで一部演出やセリフをカットしたり追加したものです3。 その中でも、とくにビジュアルや演出が光ったアニメ化になっていると感じました。

なかでもわたしのお気に入りは、最後に小梅が「困難と試練」を授けられるシーンです。

原作漫画はこんな感じです:

フランスへ帰る準備をするマリを止めようとするシーンになっています。

これが、アニメ版では別れ際に、雪が降り積もる中でのシーンに変わっています4

これがまたとても抒情的で、印象的な、小梅が大きくなっても忘れられないのも納得してしまう、そんな、幼い日の回想の〆にふさわしいシーンに仕上がっていると思います。

一方、漫画版だって負けてません。扉絵の次の1枚は、イラストレーターとしての「はりかも」の実力が存分に発揮された、想像を掻き立てられる、とてもすてきな一枚だと思います。単行本だと白黒なのが、本当にもったいない。

一応画集にはカラー版もあったり(セリフとの相乗効果はこれでは見れませんが…)

マリと小梅の毎日はきっとこんな感じだったんだろうな、とあれこれ想像させてくれる、落ち着いてるけど、にぎやか。言葉で表現すれば、そんな絵でしょうか。

一方で、アニメ版の冒頭に追加されているこのカットは、光の使い方も含めて、「あぁ、小梅にとってマリはそれほど特別な存在なのだな」と、初見ではなく、改めて見返した時にはじめて意味がわかる、とても印象的な一枚になっています。

いやしかし、ほんと、ここの光の使い方は本当に…とってもきれい。

アニメはいつ見ても面白いし発見がある

「今期何見てる?」もいいけどさ、好きな時に好きなようにアニメ見ようぜ。そして好きに語ろうぜ!流行りなんか気にせず、二次創作しようぜ!

蛇足:すこぶる正しい「5歳児から見た18歳」像

これどこに書くかなやんで思いつかなかったのでここにぶちこむんですが、このエピソードの「5歳から見た18歳」というものが、すこぶる正しく描写されてる感じがして、そこも好きです。そうそう、18歳と30歳の区別は、付かないですよねぇ(笑)。

  1. ここでニッコリ笑顔!…どういう気持ちなのか、君のためにもと言われながら体よく厄介払いされて、どういう気持ちだったのか、想像させてくれる、いい表情です []
  2. この可能性を取る場合、前半で人形を飛ばしているシーンには、うっすらと、美化されていくうちに消えてしまった「仕掛け糸」が見えてきますかね? []
  3. あと、どこに書くか迷いましたが、実は小梅が箒に乗って空を飛ぼうとした理由が決定的に違います。 []
  4. 個人的には、小梅が駄々をこねている最中のマリの表情が追加されているのもポイント高いです。どんな気持ちなのか想像させられるいい表情です []

ホレンテ島の魔法使い:「きらら」というカネとユメの汽水域、そしてその可能性

Posted on

何もかもがインチキだらけの「誰でも(お金があれば)『魔法使い』になれる」観光島、見えるすべてが胡散臭い、「夢と現の汽水域」。その名は、ホレンテ島。

…しかし、どうやら不思議な力は、本当に存在するらしい…。と、匂わせての二巻目、最終巻です。

二巻で終わる尺のせいかおかげか、次々に畳み込むように物語は進行していきます。
ぐんぐんと「魔法」の正体がキャラクターどうしの駆け引きの果てに明らかにされていき、これまたきれいに決めたジャンプのようにオチへと着地して、終劇!見事です。

久しぶりに、漫画を読んでいて息をのみました。
この展開やオチは一巻冒頭の残念魔法観光島漫画からは正直まったく想像できないもので、いい意味で後頭部をぶん殴られました。これも「魔法」でしょうか。

オチを見終わった後の表紙と、よく見ると一巻の英語版タイトル「Witch dream would you buy?」と違う二巻の英訳タイトルもいい味出してます。せっかくだから、どんなタイトルかは最後まで読んでから確認してみてね!

中盤の魔法の「カラクリ」がどんどん明らかになっていく展開は、ゆるい「ごちうさ」リスペクトものかと思われた一巻冒頭からは想像もつきません。心理戦も含めた構成はまるで少年漫画のようで、どんどん引き込まれていきます。一巻を読んでいた1年前のわたしにタイムスリップしてこのことを言ったとして絶対に信じないでしょう。とはいえ、1巻を見返す限り、このオチは最初からほぼ決まっていたように読めます。うーん、よくできてんな。

「カネ」と「ユメ」の汽水域、「きらら」

さて、作中でもメタ発言があるので、この記事でもメタな話をしましょう。

二巻で終わったという事はおそらく人気が出なかったのだと思います。
人気が出なければ、商業漫画は続くことができませんし、
人気が出れば、人気が出なくなるまでシリーズは続く。

それが、商業漫画…いや、商業芸術、「コンテンツ」というものの宿命です

が、しかし。二巻で終わる不人気さは、思わず引き込まれる、そんなスピード感をこの漫画に与えてくれました。

商業雑誌で連載される漫画という「商売」と、そこで展開される物語という「夢」の難しいバランス。

そのバランスの元かろうじて成り立つ「きらら」という漫画雑誌。

その連載作品たちが、先輩作品をリスペクトしながら、後輩作品へと派生・発展していく、「きらら」という文化。

その構造そのものが、「魔法の夢」と「ざんねん坂」が隣り合わせするこの島や、この漫画における「魔法」の在り様と、意図してか偶然か、見事に一致してるのも面白いです。

これは、まちがいなく怪作です。

前述したとおり二巻で終わってしまったので、きっと、万人受けするものでは無かったのでしょう。
でも、わたしには飛んでもなく突き刺さりました。
わたしもカトリネルエのように、「ホレンテ島に心を奪われ」てしまいました。

ホレンテ島の「魔法」のように、この漫画が断片となってこの世界から発散して人々から忘れ去られてしまっても、きっとわたしにとっては作中のセリフ通り、「きっとお婆ちゃんになっても忘れない」、そんな作品になるでしょう。

作中で回収しきれなかった伏線はいくつかありますが、それも、わたしの心の中でたまに「連載が続く」、そのための「魔法」なんですよ、きっとね。

暇だから会社作った

Posted on

こんにちは、とある合同会社の主任院生 (社員を当社では院生と呼ぶ。代表社員ともいう) です。社名は伏せさせてくれ。住所が出てくる。

TL; DR:合同会社の作り方

その1:次の書類のPDFを用意する:

  • 定款
  • 払込みがあったことを証する書面
  • 代表社員の就任承諾書
  • 代表社員、本店所在地及び資本金決定書の例

司法書士に頼むとお金がかかるのでGoogle docsで2時間ぐらいで作りました。テンプレがその辺に転がってるのでググってね。

その2:カードリーダーを買う

PaSoRiが無難です。e-Tax用って書いてあるやつならたぶん大丈夫です。

その3:法務省の出してるカスソフトで申請する

基本的に書かれてる通りにやるだけです。

その4:マイナンバーカードのデジタル証明書が切れてないか確認

切れてたら役所に行くと更新できるよ。証明書は5年で切れるよ。

その5:だいたい怒られるので直す

注意事項:

  • 申請だけでなくPDFにも署名が必要です
  • なぜか定款と同じことを記入させられますが、「.」の有無の表記まで一致させないと怒られます(人間に)

その6:カードリーダーが正しく認識するよう祈りをささげる

祈りながら「確定」をクリックする

「ICカードリーダの初期化に失敗しました」とほざく法務省の申請用総合ソフトの調教

その7:6万円払えと言われるので払う

ネットバンキングでオンラインでできます。ゆうちょでやりました。

その8:税理士事務所のDMが投函されたのを見て登記が完了したのを知る

法人番号はその数日後に法務局から届きます。

所感

ソフトの使い勝手はカス of カスだけど、一切紙を提出していないしマイナンバーカードの証明書の更新以外家でパソコンぽちぽちするだけで終わったので、そこはある程度「DX」ってやつは出来てると言ってよいのでは。

何するんですか

「富岳」をより簡単な申請ですぐに使える、試行課題のファーストタッチオプション開始 | 理化学研究所 計算科学研究センター(R-CCS)

これ使いたかったんですが、

 一般課題の課題代表者は、原則として法人(大学、研究機関、
 社団法人、企業等)に所属する方とさせていただいています。
 ※企業に所属される場合は、日本国内に登記された企業である
  必要がございます。

と言われてしまい、「所属」は同人サークルではダメだけど、適当に作った会社ならなんでもいいらしいので、これで富岳で遊ぼうと思います。

ちなみに、これが終わったらさっさと潰す予定です。めんどくさいね、人間社会。

まぁ、あれですよ、OS自作したりプログラミング言語自作したりレイトレーサー自作してみたりするのと一緒一緒。

維持費は?

年間7万円のサブスク代(法人住民税)が必要らしいので、とりあえずAdobeを解約しました。変な常駐ソフトが全部消えてパソコンが軽くなりました。Adobeの解約、おすすめです。

宗教法人にしなかったの?

すぐ「計算機を信仰する宗教法人にして非課税を狙おう」とかいう人居るんですけど、信者を集めて活動している実績をちゃんと証拠として求められるから、正直かなり大変だよ。大川隆法は5年麻原彰晃も4年ほど掛ってる。お前ら宗教なめてんだろ。

地方の後継者の居ない宗教法人を乗っ取るのが手っ取り速いかもしれないけど、それでもちゃんと宗教法人としての活動やってるかは継続的にチェックされるみたいだよ。

float32の中にNaNとかがいくつあるか数える

Posted on

お久ぶりでございます。最近はUnityでfloatと格闘しております(趣味で)。

ふと気になったのが、「ところで、floatの32ビットの中にNaNって何個ぐらいあるんだろう?」。

そんなわけで数えてみました。

ソースコード

#include <iostream>
#include <cmath>

int main() {
  uint64_t normal = 0;
  uint64_t subNormal = 0;
  uint64_t positiveZero = 0;
  uint64_t negativeZero = 0;
  uint64_t neutralZero = 0;
  uint64_t positiveInfinity = 0;
  uint64_t negativeInfinity = 0;
  uint64_t notANumber = 0;
  uint64_t unknown = 0;
  uint64_t total = 0;
  std::cerr << "Start" << std::endl;
  for (int64_t i = 0; i <= 0xffffffff; ++i) {
    total++;
    uint32_t const j = static_cast<uint32_t>(i);
    float const f = *reinterpret_cast<float const*>(&j);
    switch (std::fpclassify(f)) {
      case FP_INFINITE:
        if (f > 0) {
          positiveInfinity++;
        } else if(f < 0) {
          negativeInfinity++;
        } else {
          throw std::logic_error("Zero infinity?");
        }
        break;
      case FP_NAN:
        notANumber++;
        break;
      case FP_NORMAL:
        normal++;
        break;
      case FP_SUBNORMAL:
        subNormal++;
        break;
      case FP_ZERO:
        if (1/f > 0) {
          positiveZero++;
        } else if(1/f < 0) {
          negativeZero++;
        } else {
          neutralZero++;
        }
        break;
      default:
        unknown++;
        std::cerr << "Unknown: " << f << std::endl;
        break;
    }
  }
  std::cout << "Total: " << total << "(" << (((double)total)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "Normal: " << normal << "(" << (((double)normal)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "SubNormal: " << subNormal << "(" << (((double)subNormal)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "Positive zero: " << positiveZero << "(" << (((double)positiveZero)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "Negative zero: " << negativeZero << "(" << (((double)negativeZero)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "Neutral zero: " << neutralZero << "(" << (((double)neutralZero)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "Positive infinity: " << positiveInfinity << "(" << (((double)positiveInfinity)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "Negative infinity: " << negativeInfinity << "(" << (((double)negativeInfinity)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "Not A Number: " << notANumber << "(" << (((double)notANumber)/((double)total) * 100.0) << "%)" << std::endl;
  std::cout << "Unknown: " << unknown << "(" << (((double)unknown)/((double)total) * 100.0) << "%)" << std::endl;

  return 0;
}

かなり素直なコードです。40億回ループを回しても30秒もかかりません。最近のプロセッサすごい(5年前のモデルだけど)!

少しテクニックがあるとすれば…

  • std::fpclassify を使うと種類が返ってきます。知らんかった。
  • ゼロが正か負か判断するために(f == -0.0)を最初書いたのですが、これは必ずfalseらしい(CLion談)ので、1で割ることでプラスマイナスどちらかの無限大に飛んでいくことを利用して判断してます。
  • forでカウンターで回す限りはuint64_tを使わないとダメです。最初uint32_tにしたら0xfffffffの次が0になって無限ループになってしまいました。do while文ならuint32_tでも行けるかもしれない。
  • カテゴリ多すぎだろ気が狂うわ

結果

Total: 4294967296(100%)
Normal: 4261412864(99.2188%)
Sub Normal: 16777214(0.390625%)
Positive zero: 1(2.32831e-08%)
Negative zero: 1(2.32831e-08%)
Neutral zero: 0(0%)
Positive infinity: 1(2.32831e-08%)
Negative infinity: 1(2.32831e-08%)
Not A Number: 16777214(0.390625%)
Unknown: 0(0%)

使ってる環境は次の通り:

  • Ryzen Threadripper 1950x
  • Windows 10 64bit、よくしらんけどこの記事の時点で最新
  • コンパイラはVS2022、よくしらんけどこの記事の時点で最新

所感

ゼロと無限大はちょうど1つずつあるんだなぁというところに素直に関心しました。

非正規化数とnot a numberの数が等しいのも面白いです。なんでなのかは知らん。IEEE754の仕様書読んで教えてくれ。

IEE754はまぁまぁ複雑ですが、それでも変なケースを1%以下に抑えてるのはえらい…と言って良いのかな?

「ぼくのかんがえたさいきょうの浮動小数点フォーマット」を考えてみたくなりました。

まとめ

小学生の夏休みの自由研究でも許されなさそう

吉野家コピペ2022

Posted on

昨日、近所のCVE行ったんです。CVE
そしたらなんかGithub Issueに人がめちゃくちゃいっぱいで追いきれないんです。
で、よく見たらなんか垂れ幕下がってて、ロシアとベラルーシのIPアドレスだったらファイルの中身を片っ端から❤に置換、とか書いてあるんです。

もうね、アホかと。馬鹿かと。
お前らな、戦争如きで普段してないハッキングやってんじゃねーよ、ボケが。

戦争だよ、戦争。

なんかUnityHubとかもいるし。Vue.jsでデスクトップUI開発か。おめでてーな。
よーしパパ平和を祈っちゃうぞー、とか言ってるの。もう見てらんない。
お前らな、もっと純粋な悪意やるからその席空けろと。

OSSってのはな、もっと殺伐としてるべきなんだよ。
コードレビューの向かいに座った奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。チームビルディングされてる職業プログラマは、すっこんでろ。

で、やっと座れたかと思ったら、隣の奴が、これが難読化を解いたコードです、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、こんな難読化は難読化とは言わねーんだよ。ボケが。

得意げな顔して何が、難読化、だ。
お前は本当にこのコードを読んでて難しいと思ったのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、Base64って言いたいだけちゃうんかと。

OSS通の俺から言わせてもらえば今、OSS通の間での最新流行はやっぱり、
突然AGPL化、これだね。
今日からAGPLで頒布します。これが通のリリースの仕方。
AGPLってのはサーバサイドで動かしてもソース開示要求できるそん代わりAWSには勝てない。これ。
で、それに突然のリリース。これ最強。

しかしこれを行うとコミュニティにforkされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。

まあお前らド素人は、上から降ってきた仕様書読んで書いてなさいってこった。


You may also see