バイク故障

購入してから大して乗りもせずに車検を通してきたバイクだがとうとう拗ねてしまった。というのはキャブからガソリンが漏れてきたのだ。これは厄介な問題だ。というのもバイクはVツインエンジン。ある意味では4気筒エンジンよりキャブの取り外しが困難なタイプである。前回は水冷系のオーリングを変える必要があったから外したのだが、今回はキャブの一部のつまりであると思われできれば分解せずに治したいがどうも無理そうな予感である。他の故障ならとりあえずやってみてと思えるがガソリン漏れは直ってない場合はガソリンをばらまくことになりとりあえずやってみることのハードルが高い。結局はばらさなければいけないのだろう。

微妙にバイク屋に引き取り修理をお願いしたい気持ちが出てくるが、それをやったら乗らないバイクの維持が趣味ではなくなってしまうという変なこだわりがある。そこで今回は前回やり損ねた修理を込みでやるということでモチベーションアップすることにする。具体的にはフロントフォークのねじれ修正と灯火類の完全LED化である。フロントフォークのほうは前回緩めて圧縮することで少しは直ったと思うのだがまだ微妙に直進時のハンドルの向きがまっすぐでないような気がしている。これはおそらく緩めてもう少し強く強制すれば治るのではないかと思う。次のLED化であるが、まず前回抵抗を入れてごまかしたウインカーリレーを変更するのと、ヘッドライト、ブレーキライトをLED化しようと思う。それと次いでだが、走行中にヘッドライト付近でカタカタ音がするのも対策したい。前回手に入らなかったラジエーターパイプの一部が手に入らないか再度確認してもし手に入るならそれも変更する。

キャブと関係する修理がほとんどないので一緒にやるメリットがほとんどないが、気持ちを上げていくしかない。無事に修理して、次からはキャブが詰まらないように注意して保存しておきたい。

消えたブログのなぞ

毎年、更新の時期が来るたびに5000円払う価値があるのか悩むのであるが、非常にレアな設定方法をここにしか残していない場合があるため結局は更新していた。ただ今年はカード自動課金だと勘違いしていたのだ。ある日、レアな設定方法を見返そうかと思ってみるとアクセスできなくなっているではないか。しかも同時にロリポップのユーザーアカウントも消えてしまったらしく、ユーザー画面にアクセスすらできなくなっている。仕方ないのでサポートに問い合わせたところ幸いまだデータはあるのでアカウントを仮復旧するので課金するようにと指示があった。そこでもまた5000円の価値に悩むのであったが結局更新してしまった。

やはり書き溜めたレアな設定が惜しいというのと何をメモしたか忘れたため覚えていないだけで非常にレアで貴重なメモが残っているかもという思いがあった。おそらくそれは正しく、いくつかはネットでも見つけることができない貴重なメモがあった。正直なところブログ形式にしなくてもよいのではと思うが、データがローカルに無いというのが良いのだ。Evernoteみたいな感覚だろうか。もちろんメモ目的のみならもっと安いサービスがあるのは知っているが、Wordpressを自由自在に使いこなしてみたいという気持ちもある。

初めてのオープンソースのなぞ

最近とあるオープンソースを使うためにバグ修正のためにプルリクエストを出したりしていたのだが、とうとう自分で拡張モジュールを公開するに至った。といっても、似たようなモジュールがあったのでそれを見ながら日本で使うように仕立て直したという感じなのだが、本家のモジュールより使いやすくなるように工夫したつもりである。ここでそれが何なのかは言わないが、誰かの目に留まってご利用いただけると幸いである。

githubというのはプログラマーのSNSみたいなところがあるのだなと思った。よく考えるとコメント機能やフォロー機能などがありSNSによく似ている。今まで見るだけで投稿したり公開したことが無かったので気づかなかっただけで新しい世界に一歩足を踏み入れたような気がしている。願わくば無茶な修正要求が来ないことを祈りたい。また、無茶な修正要求はしないように気を付けようと思った次第である。

仕様が仕様でないOpenTypeのなぞ

OpenTypeというコンピューターのフォントの規格?がある。昔はTrueTypeだったのが、いろいろあってOpenTypeに進化したらしい。規格書がどこにあるのかよくわからないが、ネット情報でみると、いろいろな機能が内包されているらしい。仕事で必要になってOpenTypeの書体作成を行ったときにハマったのでメモとして残しておくことにする。

いろいろハマったのだが、その原因として大きいのはOpenTypeの規格で決められている通りに設定しても機能しないということだろうか。正確な理由はわからないのだが規格が決まってからだいぶたっており、コンピューターのOSもOpenTypeの書体を読み込めるようになって久しいのだが、OpenTypeに存在する機能への対応がOSやアプリケーションによってまちまちだといういうことである。OpenTypeでは文字の並びで字形を変えたりすることができ、そのためにいくつかプリセットされた条件がある(例えば、単語の先頭文字や最後の文字の字形を変える)のだが、その対応状況がまちまちであるのだ。自分は最後の字形を変えたいのでそれ用に用意された”fina”というコマンド文字を使って字形変換テーブルを定義したのだが機能しないので設定ミスかと思ったらどうやら未対応機能らしく無駄に時間を取ってしまった。

もともとあまり関係者が多くなさそうな世界だからかもしれないが、OpenTypeにいろいろ詰め込みすぎた結果、規格に定められた追加機能的なものが実装されないまま放置されている感じである。高い目標を掲げてはみたものの6割くらい達成して熱が冷めた感じだろうか。最近のWindowsでCPUやGPUのスペックが進化した割に印刷したときにWysiwyg(これも死語か)が全然達成されていないと思っていたが、これも同様なのかもしれない。

令和に蘇るポートピアのなぞ

某有名ゲーム会社が技術プレビューとして大昔のアドベンチャーゲーム(もはやこの言葉で意味が通じるのは中高年だけだが)にAI機能を付与して復活させたらしい。ブログマスターもChatGPTとおしゃべりして、これがゲームに搭載されたらネット廃人ならぬAI廃人が生まれるのではと思っていたので大いに興味があって公開と同時にダウンロードしてみた。ダウンロード時にSTEAMの評価が悪かったのが気になったが、公開日なのでまだ正確な評価ではないのだろうと思っていた。ダウンロードサイズは10Gくらいで、さすがにチャットできるAIモデルが入っているんだからこれくらいは必要だよねと思っていた。まだこのころまでは。

起動したら状況説明がものすごい勢いで流れていきなり現地で聞き込みすることになったが、これはゲームとしてまだオープニングを作りこんでいないんだから仕方がないと思ったのだが、問題はここからだった。ChatpGPTに話しかける感覚でヤスに話しかけてみたら「エッ」とか聞き返してくる。こんにちはといわれたらこんにちはとか、よろしくお願いしますとか言えよと思ったが、捜査に関係ないことはダメなのかと思いなおし、次にまわりを見ろといっても「エッ?」である。自分では見渡せないんだからヤスに見ろと言っているのだが、全く理解してくれない。AIのはずなのだが全く会話力がないのだ。ヤスと話しながら操作するのだと思っていたのが期待外れもいいところであった。

某巨大企業はいったい何を思ってこのような低レベルなゲームを公開したのだろうか。確かに説明に不適切な会話をする可能性があるため技術開発が進むまではチャット機能をOFFにしてあると書いてあるのだが、それにしてもひどい。チャット機能をOFFにしたためにこうなってしまったのだろうか。ダウンロードサイズからするとチャット機能用のデータは含まれていると思われる。きっと誰かが機能をONにする方法を発見してくれるのではと思う。それまで楽しみに待つことにする。

なぜか2がでたRPGのなぞ

最近オクトパストラベラーというくそげーを少しプレイした。少しなのにくそげーというのかといわれそうだが、くそげーだから少しなのだ。このゲームにファンがいるというのが正直理解できない。HD-2Dはよく頑張ったとは思うが、ピクセルで頑張るよりはボクセルで頑張ってほしかったというのが正直なところ。しかしくそげー評価なのはそこではない。ストーリである。ネタバレというほどプレイしていないので大丈夫だと思うが、まず最初に主人公を選択する。しかしその後、各主人公を仲間にして都度その主人公のストーリを見なければいけない。もちろん、最低限の人数だけ仲間を増やしてプレイすることも可能だが、主人公の次のストーリの推奨レベルが20後半なのだ。マップには推奨レベルがあるのでどこまでも旅ができるわけではなく同じ道を周回するか、仲間を増やしてその仲間のストーリをやりながらレベルを上げるかの選択となる。なんで今の時代こんな無駄なレベル上げしなきゃならんのよ。まだくだらないお使いクエスト盛りだくさんのゲームのほうがまし。何しろお使いすらないんだから。しかも仲間のストーリが仲間の有無で変わらない。ストーリパートになると急に一人旅に戻って、ストーリ中の戦闘になるとフルパーティになるのである。誰を主人公に選んでどの順番で仲間にしようが関係ないなら主人公選ばなくてもよくない?てっきり主人公の人数の回数楽しめるゲームなのかと思ったよ

しかも仲間が集まる理由がない。各自全く別の目的で旅を始めたのに何でお前ら仲間になってるの感がすごい。足を洗っていない盗賊と神に仕える神官?がなんで一緒に旅してるの?神官は義理の父親が死にかけてるのに盗賊の手助けしてる暇あるの?それに加えて町の普通の人から盗みまくれるシステムは不快でしかない。盗みまくると善行値が下がって最後の試練がとかそういうわけでもなさそう。このシステムを開発した人間は頭のネジが悪いほうに外れてると思った。一応2つ目のストーリーが進められるくらいまでレベルは上げたが、この出来のゲームに時間を使うのがむなしくなって中断。正直ロマサガを見た後ではゴミでしかない。ロマサガもいろいろ問題はあったし、最初から楽しめたかというとそうではないけど、システム設計、シナリオ設計を頑張ったというのはよくわかった。戦闘回数で時間が進んだり、その結果敵が強くなったり(これでドラクエのラスボス近くの町の敵が強いのに生活できるのかという疑問を解決したし)クリアしても全く知らないストーリがあちこちに存在する世界の広がり感があった。うまく機能していないところもたくさんあったと思うがたくさんの主人公がいてその中から選んでロールプレイするというのに必要なことは何かを真剣に考えてシステムを作ったのが伝わってきた。

それに対してオクトパストラベラーはいったい何なんだ。適当に8人のストーリを作ってそれをただ同じソフトに入れて無理やり全員のストーリを追わないと進めにくいシステムにするという。同じ会社が作ったソフトには思えないレベルの低さ。スクエアエニックスはどんどんダメになってくるなとつくづく感じる。なんか最近ゲーム、とくにRPGをやれなくなったのは自分が変わったのではなくてゲームから何かが失われたんじゃないかと思うのであった。

初めてのオープンソースのバグ報告のなぞ

オープンソースのAPIでドキュメントの説明が少ないととっかかりが困難な場合がよくある。それでも必死に食らいついているとなんとなく理解できるようになってくるから不思議なものだが今回はどうやってもうまくいかなかった。何の話かというとある文字を入力してその文字の異体字リストを取得するという関数を作っていたのである。使用したAPIは以前文字と文字の間隔を調整するのに使ったHarfbuzzというAPIである。あまりにうまくいかないので入力する数値を0から99999999までループさせて確認したりしたくらいである。普通はここまでやるとたまたま動いた設定があってそこからミスを発見して修正して完了となるのだが、今回はどうにもこうにもうまくいかったので恥ずかしながらGitのレポジトリにあるQAで関数の使い方を聞いてみた。いくつか事前準備で間違いを指摘されたが、それは0から99999999までループしてればどこかで正しい値が返ってくるはずで、指摘された事前準備を直しても案の定思ったような結果は得られなかった。そこまで行ってようやく相手も本腰を入れてくれたようでレスポンスが早くなり、こちらからフォントのファイルをアップロードすることで解決した。結局のところ、フォントの異体字登録の仕方が2つあり、APIが片方にしか対応していなかったらしくあっという間にバージョンが上がって自分のプログラムも動くようになったのだ。

ということで最初はQAから始まったのだが最終的にはバグレポートになったというお話である。よくよく考えるとここまで大きい(自分的に)機能修正にかかわるレポートは初めてで少し承認欲求が満たされたような気がしたのである。昨今の馬鹿な炎上系動画をやってる人は有り余った力をオープンソース開発にでも注いでくれたらいいのではと思ったのである。

Harfbuzzメジャーバージョンのなぞ

久しぶりに確認したら文字をうまく配置するためのライブラリHarfbuzzのメジャーバージョンがすごいことになっていた。Harfbuzzというのは書体に登録されている文字の配置データを読み取って文字をどう並べて表示したらよいかを教えてくれるライブラリである。日本語は結構等間隔でイメージしにくいかもしれないが、一番簡単な機能としては文字と文字の間隔をすべての任意の文字の組み合わせで取得する(書体による)という機能がある。このライブラリを2年ほど前から使っていたのだが、最近ふとホームページを確認したら見たことのない関数が大量にあることに気づいた。最新バージョンはいくつだろうとみるとバージョン7で手元のバージョンが2に対してメジャーで5も上がっている。どうも2022年に入った時はまだ3だったのがそれ以降数か月に一度メジャーが上がっているようである。バージョン2から3になるのに3年以上かかったのに一体どうしたという感じである。バージョン管理の人が変わったのだろうか。自分の使いたい関数がどのバージョンなのかを確認しないといけなくなったのであった。

Adobeの異体字セレクタのなぞ

最近異体字を使う必要があっていろいろ調べている。まず自分のような古い人間にとって異体字というのは外字であって各メーカーが勝手に使っているイメージだった(違ったらすまん)。しかし調べてみるとユニコードがとうとう異体字を認めたということに今更気づいた。UTF8というのは文字によって長さが違うというかなり扱いたくない感じになっているらしい。つまりアルファベットは1バイトだけど、漢字は2バイトの場合もあれば3バイトの場合もあるというような具合だ。どうやって処理しているのか知りたくもないが、幸い、賢い人が書いたライブラリなどがあるのでよくわからないまま処理できる。で、昔ユニコードができた当初に似た漢字を無理やりまとめていたのをUTF8ではきちんと登録できるようになっており、きちんとある漢字の異体字はこれとこれみたいに登録するようになっていた。しかもたくさんの異体字をどうやって選択するのかというのもAdobeのソフトは異体字セレクタというものがあって、候補文字を表示して選べるようになっているらしい。(自分のPCには入っていないので確認できないが)そこで、自分も異体字を書体に登録して異体字セレクタを使いたいと思ったのだ。

最初UTF8のIVSという仕組みにのっとって異体字を登録すればよいのだろうと思っていたがどうやらそうではないらしい。というのもIVSは異体字はどこかの機関が管理しておりIVSでいう異体字はあくまでユニコード上に登録が漏れてしまった字形ということらしく、例えば高と髙(はしご高)は自分的には異体字だが、IVSでは別文字コード割り当て済のためIVSに沿って異体字選択機能を作っても選択肢に出てこないことになる。もちろん自分専用で使う分にはIVSの仕組みを使って異体字として登録してしまえばよいのだが、Adobeの異体字セレクタはIVSを使っていないようで選択肢にでてこない。

いろいろ調べていくと、異体字にはIVSでの登録とaaltテーブルでの登録という2種類あるらしくAdobeの異体字セレクタはaaltテーブルを使用しているらしい。こちらはIVSと違って文字コード上の一貫性ではなく同じ文字の字形違いを登録できる。

ここで問題となるのは自分で異体字セレクタを作るにあたってである。今回の用途的にはIVSのほうがやりやすい。というのもIVSはベースの文字の後ろにセレクタ文字を付ける形になるので異体字を選択しているというのがわかりやすい。というか、元の文字列とセレクタ文字を別で覚えておけばどの文字が異体字選択中かがわかる。ところが異体字セレクタの場合は選択した後は文字を異体字の文字コードに入れ替えることになる。今回の用途では異体字を選択したのを覚えておいて後でわかるようにしたいのである。なにか良い方法は無い物か悩むのであった。

Bingが考えたゲームシナリオのなぞ

BingのAI検索エンジンにかまいたちの夜みたいなミステリーを書いてと頼んでみた。実は正確にどう頼んだかは忘れてしまった。次の日に同じように頼んだつもりだが、私は小説家ではありませんと断れてしまったのである。もしかするとBingの設定が変わったのかもしれない。

一度は成功したBing先生のミステリーであるが、なかなか面白いというか普通にありそうな内容で興味深かった(もしかしたら著作権侵害のパクリだった可能性もあるが)。主人公は友人の実家の家に男2人、女1人でやってきたらしい。どうやら友人が実家を相続して一緒にリフォームしようぜみたいなのり。で、その実家には何か謎があるというストーリであった。謎が何なのかとか一緒にリフォームするかどうかなどといったときにBing先生は選択肢を表示してくれてその選択肢通りに話が進んで、正直このまま最後?まで見てみたいとかそのまま絵を付けてゲームにしたいと思ったくらいである。しかし無情にもBing先生の質問回数制限にかかって途中で終了してしまった。ちなみにChatGPT先生にも頼んでみたが、最初の導入は書いてくれるのだが、選択肢を表示して続きを書いてくれることは無かった。

これをテストしていて思ったのだが、AI先生の息を吐くように嘘を吐ける能力はこの用途には向いていると思った。なにしろ自然に感じる文章を書くのに特化しているので荒唐無稽なミステリー設定でもごくごく自然に書いてくれる。前提条件を指示できるのであれば、かまいたちの夜のようにいろいろなシナリオに分岐するゲームのアイデアを無限に作ってくれる予感がする。正確さが求められる用途に使わなければ現状無敵かもしれないと思ったのであった。