前に上手くいったので、これは結構早く終わるかも知れないとか思ったのですが、そんなことはなかった次世代Mecoress。
最初に作った時に一番苦労したのはどこかというのは、苦労しすぎて覚えてないですが、恐らく苦労したベストスリーに入るドラッグ・アンド・ドロップでリストの順番を入れ替えるやつ。
Tauriのドラッグ・アンド・ドロップの仕様が変わったかも知れなくて、もしそうだとするとかなり書き換えないといけない感じです。
でも、実は途中で無言のエラーが出てるだけで、そこを直せば書き換えないで済むかも知れないですけど。
原因がどこにあるか解らないまま書き換えたりしたら一番面倒なので、また先に進めなくなりそうな事になってきました。
そういえば、今動いているMecoressを作った時に、すでに音楽用のパソコンはIntel MacじゃなくてApple Siliconの方だったので、それようにどっちのCPUでも起動出来るのをコンパイルしようと思ったのですけど、面倒だったのでやらなかったんですよね。
なんとなく悔やまれるのです。
ということで、書かなくても良いのですが、上手くいくと嬉しいので書いてしまうMecoressの次世代バージョン、あるいは新しいMacOSでも起動出来るバージョンですけど。
やっと画像だけ読み込めるようになっています。

テスト用の画像は最初にMecoressを作った時に用意したものなので、ネコ蒲団君などもいて懐かしいのですけど。
その前に、設定ファイルを書き出すのにテキストファイルの書き出し方がTauriのバージョン2でビミョーに変わっているのに気付かないでかなり時間がかかりました。
この辺はエラーでもどこにもエラーと表示されないやつなので大変なのです。
それとウィンドウのタイトルが"mecoress_one"ですが、今のところバージョンは0.2です。
とりあえず完成して、その後にTauriのバージョン2で出来るようになったことと、私が少しRustを書けるようになったので追加される機能を作ったらやっとMecoressバージョン1になるのですけど。
今は何かをやる度に止まる感じなので、なかなかそこまで辿り着けそうにないのです。
次世代Mecoressこと最新のMacOSでも起動出来るバージョンのMecoressの続きですが。
前回の日誌だとどこまでやっていたのか良く解らないですけど、元のコードをざっと確認しながら新しい方にコピペしていった感じで、だいたいできたと思ったのでテストしてみたのです。
見た目はこれまでどおりのアプリにはなっているのですが、何をしても無反応で。
前にTauriのmigration機能で失敗したのと同じ事になってしまいました。
でも今回はざっと確認しながらのコピペですし、ちょっとは前に書いたコードも思い出しているので、とりあえず裏の方から少しずつ一つずつ確認していくことに。
Tauriだと普通のJavaScriptと違うので、コンソールでエラーにならないことも良くあるので、そういうのを見つけていくのはかなり大変な気がしてきました。
でもこれをやれば、次からは修正とかのしやすいコードになるはずなので、ここは少しずつでもやらないといけないのです。
<!-- でも、何もないところにコードを書くよりは楽という気もしますが。前のバージョンのコードも大量過ぎて、我ながらよく書いた思っていますけど。-->
ついでに書くと、Zedを使うと間違いを教えてくれたりしてスゴいのですが、メモリを大量に使っているのに気付きました。ここは高性能なアプリなので仕方ないということですかね。
それと同時に、これまでは簡単なスクリプトを書くのがメインだったので解らなかったですが、開発にハイスペックなパソコンが必要なのも納得ということです。
タイトルに「一日一歩」と入力したら前に書いた「一日一歩、三日で一歩」のタイトルが表示されたりしたのですが。
今回は悪魔デバイス・第2ステージではなくて次世代Mecoressの準備版の話。
Tauriをバージョンアップしたために以前のコードをそのまま使うことが出来なくて、色々と修正しながら作り直す必要があるのですけど、バージョンアップとは関係なく直したいところも沢山あったりして、三日ぐらい前からやっているのに全然進んでないのです。
Tauriで最初に作ったアプリなのに大がかり過ぎなところもあるので、こういう修正をしようとすると問題が出てきたりして。
もう少しTauriに慣れてからこういうのを作っていれば、修正しやすいコードになっていたかも知れませんが。
頑張って五日で二歩目ぐらいまで進めたら良いですね。
<!-- ちなみに悪魔デバイス・第2ステージの方もなかなか進まないですが、この前色を変えられるLEDをブワーってするコードを一つ書きました。-->
ということで悪魔デバイス・第2ステージの文字が入力出来るようになったやつをデーモン化してみました。
スクリプトの内容は変わってないので、すぐにやろうと思えばやれたことなのですが、上手く行かないとスゴく時間がかかるので、何かをやる度に気持ちの準備が必要だったりして、なかなか先に進めないのです。
それはともかく、「でーもんか」まで入力したら「デーモン閣下」が候補に出てきてしまいましたが。
この場合のデーモンは元の意味でも役割的にもあまり悪魔っぽくはないのです。
でも悪魔デバイスの悪魔OS用のデーモンなので悪魔っぽいのですが、意味が解らないのでどうでもイイのです。
くだらないことを書いていたら、元々書こうとしていたことを忘れそうになっていますけど。
デーモン化されたので、なんとなくtopコマンドでどのくらいのCPUの使用率になっているか見てみたのです。
そうしたら常時6%前後とか。
常に動いている物としては結構多めだと思って、何か変えないとダメなのか?と思ったのですけど。
他はどうなのか?と思ってパコベーことパコリタ・ナラ・ズイルベー・Zero(あるいはRaspberry Pi Zero)の方を調べてみたら、実はこっちでは9%前後が常に動いていたようです。
それならそういうものなのか、ということでもありますけど。
他のSSHの待ち受けみたいなデーモンは1%以下だったりしますし、これのせいで消費電力が増えてたりしたらアレですが。
消費電力の少ないRaspberry Piではありますが、ちょっと気になるので、そういうのを調べられる装置とかも欲しくなってきました。
ということで悪魔デバイス・第2ステージの悪魔OS部分を頑張っている事になっているのですけど。
やっと本体のボタンが機能する感じになっているのです。
最終的には悪魔デバイス・第2ステージの本体に付いている三つのボタンで全てを操作出来るキオスク端末的なアプリが作られる予定なので、ボタンがキーボードの代わりになるのかのテスト。

テキストエディタを開いた状態でボタンを押したらちゃんと文字が入力されました。
更に長押しで大文字にもなったり。

簡単に書いていますが、大文字を入力出来るようにするのに異常に時間がかかってしまいました。
Pythonに慣れてないのと、大文字を入力するには 'U' を指定するのではなくて 'shift+u' で指定するという罠があったりして。
キーボードをシミュレートするライブラリなので、当たり前なのかも知れませんが。
<!-- どうでもイイですが、'u'と'd'なのは'up'と'down'ということです。もう一つのボタンは決定ボタンなので、悪魔OSは上下にしか動けないのです。-->
色々調べて、またPythonも思い出してきたのですが、慣れてきた頃にまたTauriでJavaScriptとRustになってしまうので、もったいない感じもあります。
ということで、まだ出来ていないけど、完全体になるにはどれだけかかるか解らないので予告編で悪魔デバイス・第2ステージです。
[#214 「悪魔デバイス・第2ステージの予告」]
今回はあまり悪魔とか古文書とかのネタはないですけど、それは特に意味が無いのでどうでもイイのです。
というか、なんで「悪魔デバイス」という名前になったのかも今となっては謎なのですが。
ここまでのワケの解らない苦労の数々を考えたら悪魔的でも良いのです。
それとは関係なく、追加情報として、前に書いた問題のうちの一つは多分大丈夫ということになっています。
そして、悪魔OS部分を作るためにTauriもインストールされたりしています。
その前に、モタモタしていたらRaspberry Pi OSが新しくなってるのでそっちのアップグレードとかもしないといけない感じですけど。
正式公開出来るように頑張りたいと思います。
久々に悪魔デバイス・第2ステージですけど。
何も書かれないからもう諦めたかと思われそうですが、実はハード部分は一応完成ということになって、とりあえずBlack-holicに予告編が書かれる感じにはなったのです。
でもなんかまだ早いような気がして公開されてないのですけど。
その間にRaspberry Pi部分の調整を始めたらやっぱり公開しないで良かったということで、気付いてなかった問題点が色々あるのです。
というか、やっぱりモニタがスリープ状態にならないのが全ての原因という気もしてきましたが。
モニタの仕様上、スリープにならないのでリレーを使って電源をオンオフするのは成功しているのですけど。
オフの状態で起動するとシステムがモニタを認識していないので、起動後にモニタを使おうと思ってもデスクトップが表示されないとか。
更に、キーボードを使わずにボタンから操作するのに良さそうなPythonのモジュールを見つけたのですが、それもモニタがないと使えないということで。
その他にも細かいことが色々あって、解決法はあることにはあるけど、ちゃんと考えてやらないと、一つ直すと別のところがおかしくなりそうだったりしますし。
悪魔デバイスの名に恥じない面倒な難易度の高さなのです。
完成直前に壊れている事に気づいた悪魔デバイス・第2ステージのアンプモジュールですけど。
前とは違う数百円高い方を買ったら結構良いものだっただけでなく、まさかの結構いい音。
これはアンプモジュールだけでなくて、スピーカーとか他の要素もあるはずですけど。
初代悪魔デバイスの時は筐体が100均のMDF材でちょっとスカスカ感でしたけど。
今回はちゃんとした材木なので、その辺も良いのかも知れません。
というか、思っていたよりも良い、ということなので、ちゃんとしたスピーカーと比べたらそれほどでもない音なのですけど。
そして、ここまで来たら、あとはデモニックOSの調整をして悪魔デバイス・第2ステージが始動することになるのです。
私専用のLMB Wikiの代わりに使い始めたObsidianですけど。
目次を作ってページ内にリンクを貼ろうと思って、角括弧二つと「#」を入力したら、ページ内の見出しが一覧で表示されたりして。
これはスゴいと思ったのです。
でも良く考えたらWikiだと見出しを抽出して目次が自動的に作られていたのを思い出しましたが。
それはともかく、さらに使いこなしていくとかなり便利かも知れないと思ったりしました。
同期が専用の有料サーバでしか出来ないということでメモアプリとしては候補から外されてましたけど。
他の端末と同期が必要ない事に使えば嬉しいアプリなのです。
<!-- ついでに書くと、Obsidianにまとめるべきこれまでのネタなどが大量にあって、面倒だなあ、とも思っていますけど。-->
あぁぁぁぁぁぁ......。
ということで、悪魔デバイス・第2ステージが悪魔的になってきたのですが。
パーツ同士をつないでいる電線の長さが足りなくてやり直しになっていた部分を何とかして配線し直したのです。
最初にやった時は、机の上で電線とパーツを固定する道具も使って半田付け出来たのですが、今回は他の部分が色々なところにつながっていたりするので、かなりの難易度の半田付けになりました。
でもそこは上手くいって、完了した時に半田キモーヌさんの半田付けレベルが上がった音楽が鳴ったような気がしたりしたのですけど。
それとは関係なく、修正したその箇所は、他のパーツと近かったりして、何かの拍子にショートするような感じもあったので、今回は熱で縮まる絶縁チューブを使うことにしたのです。
一応、通電も確認したりして、もう万全という事になったのでヒートガンを使ってチューブを収縮させたのですけど。
その時の熱がネジ経由で3Dプリンタで作ったパーツに伝わって、パーツを固定するネジ穴が溶けてユルユル。
なんとまた3Dプリンタの作業をやり直しになったのです。
でも、そのパーツもちょっと手直しすればさらに良くなるということもあったので、ここは前向きに捉えてデータを作り直してからプリントしたのですけど。
そうしたら、今回は2時間ぐらい頑張ったところで失敗とか。
パーツを配置して固定るするだけ、という状態になってから時間かかりすぎなのですけど。
やればやるほど何かが上達しているということもあるので、このまま頑張りたいと思います。
<!-- ついでに書くとヒートガンは別のある目的のために買ったのですが、悪魔デバイス・第2ステージが出来ないので、そっちの目的はまだ何もやってないのです。-->
ということで悪魔デバイス・第2ステージですけど。
アンプモジュールが壊れていたので新しいのを買ったということは書いたか覚えてないですけど、壊れたのと同じのを買ってまた壊れたらアレなので別のを買ってみたのです。
アンプモジュールを取り付ける方法は前と一緒だったのですが、アンプモジュールの形が変わったせいで、アンプモジュール取り付ける部品を取り付ける方法を変えないといけなくなったのです。
ということで、また更に3Dプリンタなのです。

<!-- 少し残っている古い方のフィラメントでやったら、一つずつなら上手く行くけど、まとめてやろうとすると何故か失敗とか。原因がフィラメントなのかは解らないですけど、なかなか成功が続かないのです。-->
完成に近づいてからの変更なので、けっこう無理のある事になってたりするのですけど。
これで上手く行ってくれるか、どうなのか。
それから、新しく買ったアンプモジュールはボリュームをゼロのところから更に回すとカチッとなって電源をオフに出来るので、かなり良いです。

ということで、新しいフィラメントが良かったのか設定を変えたのが良かったのか解らないけど、なんとか最後までプリント出来た悪魔デバイス・第2ステージの部品です。
昨日は全然ダメだった外の枠みたいな部分と、餃子の羽根っぽいところとかは何とか剥がれずに最後まで出来たという感じになっていますけど。
このパーツは裏側が平坦でなかったりするので、ちょっと浮かせたり斜めにしたりで、土台がしっかりしてないような事になりがちだったり。
というか、プリンターのクセみたいなものなのか、最初の方はノズルの温度が安定しないので、最初の方にプリントされる下の方が怪しくなってる事が多いです。
今回はギリギリセーフということで、メインの部分は予定どおりの形になっていますが、端の方はビミョーだったりします。
とりあえずプリントは出来たけど、まだパーツをはめて試してないので、これで完成に近づいたかどうかはまだ解らないのです。