パスワードを忘れた? アカウント作成
17571237 journal
日記

m_nukazawaの日記: 「Augmentation your ordinary world wide web」序文

日記 by m_nukazawa

技術書典15(2023/11/12(日))にて頒布する技術同人誌「JSで作るいまどきのブラウザ拡張(WebExtensions本)」の序文です。

====

# 前文:Fury、そしてブラウザ拡張機能

技術同人誌を書くには、ある種の怒りが必要だ。
では私は、ブラウザ拡張開発の何に怒っているのだろう?

『GTK/Qt/electron』を執筆したとき、私はGTK/Qtに怒っていた。
『クロスプラットフォーム・デスクトップアプリケーション・フレームワーク』という、やたらに名前が長い技術は、フリーソフトウェアに勝利をもたらし悪のWintel連合を打倒するはずではなかったのか?
そういった過去の怒りを精算するために本を書いた。

『ゼロから作るTrueTypeフォントファイル』執筆の動機は率直に言って『ある種の自己不信』への怒りだった。
フォントを売り物にしておきながら基礎技術への理解に乏しいことへの怒り。
前著『GTK/Qt/electron』では既に終わっている経験を扱い、技術的には未知への挑戦をしなかった臆病な自分への怒り。
それらの怒りを払拭するために本を書いた。

もちろん執筆動機の全てではないけれど、怒りの感情は確かに実在していて、時に進むための力になってくれる。

----

一方で、ヒトは怒りのみで生きているわけではない。

GTKは私に、自分1人で『本物の』アプリケーションを作れるという自信を与えてくれた。
『Reactで書くhello world』や『OpenCVでLenaの顔輪郭抽出をできるようになるまで』のような、小さなチュートリアルの非実用アプリケーションとは違う。
Qtやelectronでの開発も、根底にはGTKで開発できた実績が挑戦する気持ちを支えてくれた。

フォントは私に、商売を実践させてくれた。
アメリカでティーンエイジャーがレモネード売りをするような微笑ましさでも、あれは間違いなく『私のビジネス』だった。

WebExtensionsはJavaScriptでブラウザ拡張を書く技術だ。

そしてWebExtensionsは、私のネットサーフィンにおける些細な問題を解決してくれる。
実際に日常使いできるアプリを作れるようになった喜びは大きい。

怒りと分かち難い大きな感情の動き。
願い、感謝、喜びもまた、開発と執筆の動機となった。

----

そもそも、WebExtensionsにはFireFoxブラウザを作るMozillaによる公式チュートリアルがある。
にもかかわらず、技術同人誌を書くことのできる隙間が『どうして』そして『どこに』あるのか。

WebExtensionsにおいて最も有名な非互換は『広告ブロックにまつわるmanifest v3の攻防』として知られる。
将来的に、FireFoxとChromeの広告ブロッカーAPIは非互換なものとなるらしい。

けれど率直に言ってしまえば、ほとんどの開発者にとって広告ブロッカー開発用のAPIなどどうでもよい。

開発者にとって影響が大きい断絶は、『ページへWebExtensionsを挿入する方法』という根幹部分がブラウザ毎に異なることだ。
ブラウザ拡張の根幹たるmanifestファイルのフォーマットすら、FireFoxとChromeで異なっている。

そんな中で、Mozillaは2023年にChromeのmanifest v3へ対応を開始するとアナウンスした。
そうなれば問題は解決し、本書は不要なものとなるのだろうか?

残念ながら、そうはならない。
Web上の解説記事にはMV2時代など古いChromeの説明がそのまま残ってしまっている。

また、WebExtensions開発環境の構築やプロジェクト構成などは、古びることはあってもまったく役立たなくなるということはない。
FireFox(Mozilla)がmanifest v3を有効化してもなお、ブラウザが相手のストアを有効化した後も互換性問題というものは完全消滅することはおそらくない。

そしてありえない仮定だが、世界にブラウザが1つきりになったとしても、いつかの未来でWebExtensionsが廃止される日まで、本書は役に立つだろう。

----

私たちは毎日インターネットに助けられているが、同時に多くの小さな不満にも晒されている。

- ハートではなく『いいねボタン』を返せ
- amazonの嘘っぱちセール価格が許せない
- 英語読めない!!
- 皇紀ってなんだ西暦で書いてくれ(『負けた』と書くためだけに年号が必要か?)
- twitter見てたら休日終わってた
- すべてのWebサイト上で寿司が流れていないこの世界を革命したい

不足は不満であり、不満は怒りだ。
WebExtensions技術は、webでの不満を解決する力をあなたに与える。

あなたの怒りを開発力に変換し、あなたがWebExtensions開発者になって、もっとすごいインターネットエクスプローラになる一助になることを願い、本書を刊行する。

17422909 journal
日記

m_nukazawaの日記: Amazonアソシエイトからインボイス制度に関する『インタビュー』 2

日記 by m_nukazawa

のメールが来ました。

スパムを警戒してアソシエイトのコンソールからユーザ設定に入って『インタビューに答え』ました。
メールや入力ページで『設定しないと今後のアソシエイト紹介料の支払いが止まります』的なことが書いてあり、これ名前は『インタビュー』だけれど税務上必要な設定だな、と。
ちょっと日本語訳の言語感覚が私とはズレてたというか、なんというべきか。

なにやらアソシエイトから珍しく大きめの額のギフトカードが届いた直後だったので(といってもいつものギフトカード発行上限額ギリギリと比べたら大きいという程度)、ちょっと身構えましたが、滞りなく設定終了。

----

ほかにもBOOTHとか最近登録したばかりのフォトストックサイトとかもインボイス(等の税務情報)の設定項目を埋めてくれという案内が以前にありました。

----

Amazonアフィリエイトはブログに画像替わりに張っていたのですが、そのブログはGoogleがBloggerを放置しているのもあって私自身かなりブログ更新は放置気味なのですが、それでもたまにギフトカードが発行されるのは、まだブログにアクセスがあるということのようです。
アナリティクスで見るとアクセス数はずっと低空飛行なのですが。
とりあえずドメイン代の元は取れているかな...という。

16722092 journal
日記

m_nukazawaの日記: 重箱の隅 1

日記 by m_nukazawa

// 最初ツイッタに書いたのですが、アカウントの目的に合わないのでスラドへ移植。

https://www.jst.go.jp/crds/pdf/2023/RR/CRDS-FY2023-RR-02.pdf
> 最先端の基盤モデルは1回の学習に億 円超の計算費用を要する。その一方で、人間の脳の消費電力はわずか20ワット程度である。
Web上ですごいすごいと言われていたので(?)読んでみたけれど、ここはかなりミスリードな気がする。

『学習の計算コストが見るからに高いので安くしたい』という課題自体については異議ない し、1次近似レベルのごく簡単な理屈の上では『ヒト脳と同じ消費電力でヒト相当の推論が実行できるはず』なので『理論的に実現可能と思われる』実行時パフォーマンスとして目標にするのもありだとは思う。

ただ、それらの理屈をこの言い回しにすること自体には異議があるように感じて、
- 学習ではなく『実行』だけであれば組み込み端末で実行されている既存モデルもあるはず
- ヒトの学習も養育費から言えば1億くらいかかっているのでは?
- 『数億円✕数日』『20W✕20年』で比べると圧倒的短期間で学習できていることを評価できてなくない?
といったあたりが気になる。
(『ヒト脳は学習と実行を並行して実行してるんだよなぁ』という視点もあるのでこの異議もそこを包括できていないですが、概要として。)

しかしこれは出来の良い重箱の隅をつついている側面が強い話で、『既存の情報を断片的でなく(おそらく)漏れなく網羅して綺麗な文面にまとめてある』というだけで十分価値はあって、みなさんそのことを褒めているのだろうと思います。(ツイッタの文字数でそういう褒め方をするのは難しいですし)

16633452 journal
日記

m_nukazawaの日記: 【国民投票案】『プログラム』を表すアイコンといえば? 6

日記 by m_nukazawa

- 歯車イラスト
- 『</>』って描かれている
-『EXE』って描かれている
- アプリケーションウィンドウのイラスト
-『三:』横線と点のモールス信号的なもの(『ー・ーー・』)が複数行
- UML図などダイアグラムのイラスト
- 基盤のパターンのイラスト
- ヒトの脳のイラスト

16632513 journal
日記

m_nukazawaの日記: AI画像生成のタグを日本語訳するブラウザ拡張を作りました

日記 by m_nukazawa

作りました。chrome,FireFox対応です。

DanTagJa_diffusion_tags_translation_ja_webextensions[github]
それぞれのアプリストアからインストールできます。

前回 DanTagCopy として『danbooru的な画像ページから付与されたタグを一括で画像生成プロンプト風なフォーマットでクリップボードに収集する』ブラウザ拡張を作ったのですが、その姉妹的ブラウザ拡張です。
今回はdanbooru的構造のサイトだけでなく、StableDiffusionのWebUI構造のプロンプトに書かれた呪文のタグも翻訳できるのが特長です。

danbooruのwikiにはタグ毎に解説ページがあります。
解説自体は英文なのですが、pivixのへのリンクが張られています。
(タグを解説する用例としてだと思われます。)
リンクは日本語(だったり中国語だったりするの)で、それを翻訳先として掻き集めた専用の辞書を作って搭載しています。

全てのタグの翻訳を網羅できるわけではないのと、タグの意味を説明するものとしては正直イマイチなワードチョイスな項目もあるのですが、おおむね機能するのでまずは良しとしました。

ぜひお試しください。

16562974 journal
日記

m_nukazawaの日記: フォトストックサイトに登録した

日記 by m_nukazawa

ちょっとそういう気分が盛り上がるイベントが発生したため、フォトストックサイトへ登録を行いました。

とりあえず、
- PIXTA
- ShutterStock
- Adobe Stock
の手続きをして画像をアップロードまで。

ほかに良いサイトがあれば教えてください。

いわゆる『フォトストックサイト』ですが、これらのサービスは写真だけでなくイラストや動画も素材として扱っているとのこと。
とりあえず最初は、写真ではなくイラストをアップロードしました。
(イラストというか、以前にBlenderで3Dで作った震電・龍驤・桜花をレンダリングしたCG。)
写真は追々。

----

# PIXTA
いまのところ、いちばん制限が厳しい。

アップロード可能枚数に上限がある(一定期間ごとにリセット)。
イラスト・写真等の分類ごとに別々に、クリエイタ登録のためのガイドを読み内容に基づくテストがある。
(動画はさらに最初に5つ動画を用意しての審査があるとのこと。)

# ShutterStock
いまのところ、いちばん自由で審査も早い。
ただし単価も安いらしい。

PNGを受け付けていなかったので画像をJPG変換しなければならなかった。
ほかと違い、アップロード用のスマホアプリがある。

各方向をレンダリングした9枚ほどの震電の画像のうち、1枚だけが類似画像を理由にリジェクトされた。
ほかは通った。
(理屈はわからないけれどまあ良しとしました。)

# Adobe Stock
ほかを登録したあとで登録したせいか、印象が薄い。

面白かった特記事項として、
- 動画はSFTPでアップロードする必要がある(FileZilla久しぶりに触った)。
- 米国の納税書類にサインが必要だった(しなくてもいいが追加で課税されるらしい)。

----

まだShutterStock以外はアップロード画像の審査中でどうなるやら。
『Unityアセットストアへ登録編』に続く、はず。

16506644 journal
日記

m_nukazawaの日記: いまさらPCケースファン(空冷の意) 1

日記 by m_nukazawa

私の最近のPC自作(改修)。

- ノンケース派だったのがグラボ固定のためPCケースが必要になったのが前々回。
- 古いPCケースに現代グラボが収まらなくなっていることが判明したのが前回。
...くらい。

このところPCファンやエアフローをいじって楽しんでいます。

初PC購入以来、PCの冷却にはほとんど注意を払ってこず、今更な感じはありますが。
これまでの私のPC使用履歴では、GPU性能を求める必要がなかったため冷却を気にする必要があまりなかったのです。
オンボードグラフィックかロープロファイル(枯れてる・安い・性能なりの消費電力?)で済ませていたのと、CPUもPCケースの普通の冷却能力で十分だろうと判断していました。
しかし最近は機械学習のアレコレで良いグラボを積む必要があり、GPUのご機嫌をとりたくなったため、PC内部の冷却とかGPU温度を見てみています。

1000円くらいのファンを買って、付けたり向きを変えてみたりの実験。
確かにこれはちょっと楽しいかも。

いまのところGPU冷却に1番効果があったのは『PC横倒ししたうえでフタを全開放』(GPU温度が78度だったのが70度付近まで下がった)。
面白いのが、ここに扇風機の強風を当てても1度前後も効果がなかったこと。

扇風機でダメならPCケースファン程度では開放と同じ効果は得られないだろうな、とは思いました(検証中ですが)。
ただ、ホコリ対策はしたいので、開けっ放し運用はしたくない。
なので(ケース開放ほどの効果はないであろうにせよ)ケースファンの効果をもうちょっと探求するつもりです。

// ざっとgoogle検索の頭の方を見ているだけだからなのかもしれませんが、冷却効果の実測値を書いてないブログが意外と多くて「あれっ?」とはなりました。
// そういえばGPU温度と寿命の相関グラフも見かけた記憶が無い。どこかにあるのかな。

16501301 journal
日記

m_nukazawaの日記: PCケースは一生モノ(ではなかった) 13

日記 by m_nukazawa

知り合いのPCリプレースを請け負うことになり、パーツ寿命などから最終的にケース以外ほとんど全交換になったのですが。

それなりに大きいミドルケースに、グラフィックボードが入らないことが判明。
(これ自体はグラボがスペック表よりも大きかったという話なのですが。)
ケースも買い換えへ。
これで旧PCで残ったパーツはDVDドライブだけということに。

「いまどきのグラボ(ゲームで使うやつ)」はとても大きくなったようです。

この6〜8年でグラフィックボードは当時の想定よりずっと大きくなり(ファン1つ付くようになったモノをドライヤーと揶揄していた時代ははるか昔、今やほぼ鈍器)。
3.5インチHDDベイはグラボと干渉するだけの邪魔物に。

(いっそベイを切除して自分で使おうかとも思ったのですが、金属加工は詳しくないので...。それに3.5インチベイだけでなく、上の5インチベイもグラボに干渉するので取り除かないといけない。)

思い返せば6〜8年前、当時は「大きめのタワーケースを買えば将来の拡張も大丈夫」や「1番長く使うであろうPCパーツなのだから高いの買っておけ」などと言い合っていたけれど、PCケースは一生モノ(?)というのは甘い見通しだったなぁと思い返す次第。

16490202 journal
日記

m_nukazawaの日記: 文ッ字フリマ開催決定(3/25(土))

日記 by m_nukazawa

少し前の事前アンケートに続き、出展サークル募集のメールが来たので早速エントリーしました。

予定している出展内容:
- 自作ルーン文字フォントの販売(DVD版を展示しますが基本はDL販売へ誘導)
- ルーン文字グッズ(活版印刷字母風スタンプ・キーホルダー等)

他にもいろいろ準備するつもりですが、とりあえずはこのあたり。

16488837 journal
日記

m_nukazawaの日記: プリンタを買うことにしました 10

日記 by m_nukazawa

EP-714Aあたりを狙っていますが、EPSON実際どうなんでしょうか。

プリンタ、近くのコンビニを往復するのも良いのですが、何よりモチベーションに悪影響なので。
(トライアンドエラーの印刷失敗で往復10分とか繰り返したくない。)
あとDVDレーベル印刷をしたいというのが大きい。

以下、用途。

1. DVDの表面(「レーベル印刷」と呼ぶらしい。知らなかった)
文っ字フリマ(文フリではない)が開催された場合に備えて、自作フォントのディスク版を作成したい。
見本か売り物にするかは未定。

(以前調べたところ、ジャケット含め良いようにやってくれるサービスはあるのだが、最低価格5000円だったか5万円からだったかスタートだった。そこまではしたくない。)

プリンタよりもDVD側の印刷面に大きく左右されるらしい。
ディスクドライブの淘汰された現代で良いDVDが手に入る気はしないので、印刷品質はほぼ諦めている。

2. 同DVDパッケージのジャケット
おそらく写真用のA4光沢紙を購入して印刷したものをジャケットサイズに切断すればよいと考えている。

3. 模型とフィギュアのデカール
1/2000「龍驤」とか作ったわけだが、おそらく飛行甲板は印刷の方が綺麗にラインが出る。
作成中の「廣井きくり」デフォルメフィギュアも目と口を造形で彫り込んでいるが、印刷で良いのではないか。
いずれスズランなどで目のデカールを用意する必要がある。
(手書きで目入れすることは最初から考えていない。)

4. その他
商品価格のタグなど。
印刷したものを適サイズに切ってラミネートや透明ケースに入れるだけでも良い感じになる。
これも文っ字フリマ対応。
開催されなかったらまあそれはそれ、ということにする。

----

コピ本作成などは想定してないです。
安いやつで綺麗に印刷されて欲しいので、とりあえず6色プリンタを選定候補にしてます。
フィギュアのデカールは小さいものなので細かいところまで印刷されてほしいのですが、いわゆるプリンタの「解像度」欄はあまりアテにならないらしく「この機種が良いよ」という情報があれば嬉しいです。
『時間がかかってもいいから綺麗に』とかオプションがあればいいのですが、今の所現代プリンタはそういう機能があるものでもないっぽいですね(少なくともそういう機能を推してはいないらしい)。

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...