ということで、多分半分ぐらいは出来ているTauriを使ってアプリを作ってみたい!の続きですけど。
完成する前に以前作ったところの修正というか、改善作業みたいなのをしてたりして。まるでこの記事のタイトルのアレみたいなのです。
色々と苦労しているうちにJavaScriptに詳しくなってきた、というのは前に書きましたけど、それで気付いたところがあったので早めに修正なのです。
この修正によってコードの中身はけっこうスッキリしたりして、前進はしてないけど次に進む気力が少し出てきた感じはします。
ただ、ここからはまたRustが出てくるのですけど。Rustはエラーが出ると気分的に振出しに戻される感じがあるので覚悟が必要なのです。
というか、前にネットにあったコードを参考にして書いたRustの部分は、読み直してもどうしてそうなるのか?というのが良く解らなかったりしますし。
しかも、同じ内容でも色んな書き方が出来るようなところもあるので、色んなコードを見て勉強しようとしてもなかなかピンと来ないとかもあったりして。
とりあえず言い訳ばかり書いたので、しばらく停滞する準備は出来たということでもあります。
<!-- そういえば「カニ本」買ったのここに書いたっけ?(カニ本ってなんだ?という感じですが、Perlのリャマ本に対して、Rustのカニ本ってことです。どうでも良いですけど。)-->
ということで、Tauriで作れたらうれしいなあと思っている、画像を管理したりするアプリの続きなのですが。
良く考えたらドラッグアンドドロップでフォルダを開くことが出来ないので、Rustのコードに挑戦。
やっぱりエラーが出たのですが、エラーの内容を良く読んでみると「expect("REASON")」を使ったらどうか、というようなことが書いてあったのです。
なんだか解らないまま、とりあえずそのまま書いてみたら成功。
でも、解らないままなのは気持ち悪いので、調べてみたらexpectについては何となく解りました。しかし「REASON」って何だろう?ってことなのですが。
良く考えたら、ここは「REASON」って書くのではなくて、コードにあった文章を自分で考えて書き込むところなのでした。
expectというのがエラーが発生した時にエラーの内容を表示するみたいなものなので、このままだとエラーが出た時に「理由があってエラーです」って感じの表示になって間抜けな感じです。
それはどうでもイイのですが、Rustのコンパイラは正しい書き方を提案してくれたり、良いですね。
その分書くのは難しいというか。難しいからエラーの内容が詳しく出せたり出来るってことかも知れないですけど。
そんな感じですが、今のところ自分で考えてRustのちゃんとしたプログラムが書ける気がしなかったりしてます。
音楽の作業を再開していると書いたのですが。
続きをやろうと思ったら、楽器が音痴すぎるのです。
またしても良いタイミングでMIDIキーボードが壊れたということみたいです。
勝手にピッチベンドのデータが送信されて音がズレるやつなのですが。
これが起きると自分の耳が変になったんじゃないか?とか思ってスゴく不安になるので困るのです。
というか、実際に耳が変になったとういか、そういう感じだったことがあって。
面白い響きを追求していたら音がコードとしてちゃんと響いているのか解らなくなったりで。
その時は、理論的に正しいから多分大丈夫だろうとか、そんな感じで曲を作ってたりしてましたけど。
この話はMIDIキーボードが音痴なのとは関係ないですけどね。
それにしても、どうしていつもやる気を出したタイミングで壊れるのか?ということですが。
なんとかして欲しいです。
<!-- 思い切って88鍵のを買うか迷っているのですが、また良いタイミングで壊れるはずなので、これは難しい決断になりそうです。-->
ということで、タイトルがネタ優先でタウリンじゃなくなってますが、Tauriでアレが作りたいだけなのに...というやつの続きです。
最近ものすごく体調が悪かったのですが、それでも頑張って以前の続きのJavaScript部分を書いていたら、何を書いたのか解らなくなったとかいう状態でしたけど。
とりあえず、オマケになるはずなのに一番の難所になったかも知れないスライドショーの設定画面は出来たことになっているのです。
そして、意味もなくスクショですが。

全部テスト用のボタンですが、その中にもTESTという名前のボタンがあるとかはどうでも良いのです。
それよりも、問題はこのボタンの中にまだない「SAVE」(保存)をどうするのか?という感じなのですけど。
たとえばJPEGファイルを読み込んでPNGに変換して保存、という感じのSAVEのやり方はあるのですが、アプリ独自の書類を保存とかどうすればいいのか。
その他にも、細かいところでアレってどうやるんだ?というのが色々とあって大変なのですけど。
頭の中で考えてた時はすぐに出来そうなアプリだったのですが、容易いことではなさそうです。
マーティ・フリードマンがベイスターズのユニフォームを着て登場して盛り上がったこととに影響されたワケではないですが、音楽の作業をちょっと再開。
パソコンが新しくなったこともあって、ソフトも色々と新しくなってたりするのは前にも書いたか、どうだったか。
でもMODO DRUMというのを買ったのはまだ書いてないはず。
というか、買ってから全然使ってなかったですし。
なかなか良いものという気がしていたのですが、単体で鳴らしていてもかなり動作が重い。
しかも、ちゃんと作業を始めて他の楽器の音と一緒に鳴らしたら重すぎて作業にならないのです。
どういうことか?という感じですが。
もともとM1チップには対応してなかったみたいで。
今ではサポートされているのですが、その辺の関係でちょっと無理があるような感じも。
Macの新しいCPUも登場してからけっこう経つのですが、こういう問題はまだあるということですかね。
ついでに書くと、SC-88Proが壊れたのでPIANOBOX PROとか買ってみたり。
惜しい部分は色々あったりしますが、今時あまりないMIDI音源モジュールですし、昔は凄いものだと思っていたE-MUの音が入ってるとか。しかも安いのでまあまあ満足ではあります。
あるいは或る御リズム。
ということですが、四角い枠が重ならない限り自由にレイアウト出来るやつのアルゴリズムみたいなのを考えてたら、パコベーに部屋の電気を消されたので終了。
実はもっとシンプルにしたら上手くいくような気がしたので、昨日頑張って違うやり方のコードを書いてみたのですけど。
上手くいくと思ったのに、いくつかの条件では変になるとか。
目で見たら重なってるって明らかなのに、なんで解らないんだ!とか、プログラムを書く人が思ってはいけない事を思ってしまいたくなるのですけど。
でもノートに大量の□を書き込んで考えた末に、また新しいやり方を思い付いたので、そろそろなんとかなって欲しいところです。
<!-- タイトルにタウリンが付かなくなっただけでなくて、Tauriでやってるアレとかいう説明もなくなってきていますが、ここを乗り越えたらまたTauriな感じになるので頑張りたいと思います。-->
ということで、タウリンが増えそうにないのでタイトルにタウリンが付かなくなったTauriでアレを作りたい、というのの続き。
アレとは何かというと、MacOSをアップグレードしたら使えなくなった画像や動画、音声のファイルを管理する感じのMedia Proというソフトの代わりになるもの、ということなのです。
そして、最近ずっと進めなくなっているのは、そのソフトの中ではオマケって感じもするスライドショーの機能の部分なのですが。
でも複数の画像を(ある程度)自由なレイアウトでスライドショーできる機能が面白くて好きだったので、これは再現すべきだと思ってやっているのです。
問題なのがスライドショーのレイアウトを設定するやつ。
テスト作った時には上手く動いていた気がしたのですけど、どうもダメだったようで、場合によって予期せぬ動作になったり。

画像が重ならない限り大きさを自由に変えられるはずなので、上の画像だと一番左の枠はもっと右側まで広げられるはずなのにあの位置で最大ということになってたり。
でも左から二番目の枠は右の方に大きく出来たりするんですよね。
どこかで単純なミスをしているに違いないのですけど。
何度みても合ってるような気もするし、間違っているような気もするというか。上手くいってないので間違っているんですけど。
こうなってくると別の方法で作り直す方が早いような気がしてきました。
そうすると、昨日書いた二日がかりで原因が解った部分とかもやる必要がなかったということになりますけど。
まあ、苦労すればするほどJavaScriptには詳しくなってきたような気がしているので、めげずにやるのです。
<!-- そして、Rustの方には全然手を付けられないのでそっちは詳しくなれません。-->
タイトルにタウリンと書いてないですが、Tauriで大変なやつの続き。
TauriというよりもJavaScriptですが。
ある要素の幅を調べようとすると何故かゼロになっているとか。
説明によると非表示になっている要素はゼロになるらしいのですが、JavaScriptのコード的には表示されていることになっているのです。
と思い込んでいて昨日からずっとアレコレ試していたのですが。
調べたい要素のさらに上位の要素がまだ表示されていない状態だっということにやっと気付いたのです。
大量のコードの時にはどこで何をしたのか覚えてなかったりするのですけど。
もう少し解りやすく書く事も出来そうなので、何とかしたいですが。
でも、スッキリしたコードになるようにあれこれ計画して書き始めても、途中で上手く動かなかったりして結局ゴチャゴチャになるというのもあったりして。
それはともかく、非表示になっているのに気付かないで色々とコードをいじったおかげで、何がどうなっているのか解らなくなってきてたりもするのです。
これはけっこうヤバいという感じですが、全部書き直しにならないように頑張りたいと思います。
もうタイトルがワケが解らないですが、Tauriでどうするのか?というやつの続きというか。
JavaScriptとRustでデスクトップアプリを作れちゃうということなのですが、Macの場合はJavaScriptの部分はほぼSafariと同じ仕様ってことになっているのです。
なのですが、私はここまでいつも使っている方のFirefoxでテストをしていたのです。
でもJavaScriptはどのブラウザでも動くように決められた規格みたいなのがあるので、問題ないはずということだったのですけど。
テストで作ったJavaScriptの関数とかをTauriの方に移植(というかコピペ)したら上手く動かなかったり。
前にもちょっと書いたモジュール化みたいなのもやっているので、原因はそっちなのかも知れませんが。
その辺はテストの時もSafariでやっていたら原因が解りやすくて良かったということなのです。
最近はかなりJavaScriptしてたので、上手く動かないところは修正出来たりしたのですけど。
JavaScriptって、初心者でもブラウザだけで実行出来たりするので敷き居は低いような感じがありますが、やればやるほど謎が増えていくような気もします。
というか、私の超便利アプリはいつになった完成するのでしょうかね。
Tauri でゴー!のアレの続きですが。
JavaScriptでテストしてみて大体出来そうということで、最終段階の最初になってきたのですけど。
そのままJavaScriptを一つのファイルで書くとコードが大量になるので、複数ファイルに分けてモジュールっぽくするようにしたのです。
これでコードの内容がスッキリするはずだったのですが、一つのファイルで書いている時と何かが違うというか。
要領が解らなくなっているようなことになっているのです。
というか、JavaScriptって同じ事をやるのにも色んな書き方が出来たりするので、その辺も原因な気もしますが。
この場面はこの書き方がイイに違いないとか思って書いていくと、途中で先に進めなくなったり。
<!-- 先に進めなくなるコードってなんだ?って感じでもありますが。書いているのは私なので仕方ありません。-->
最終的にはRustも書かないといけないのですが、その前の段階で混乱してきましたし、大変なのです。
<!-- でも、タイトルにはタウリンが復活しているのです。-->
ということで、ナントカ応援団のデータベース、あるいはデータベースターズに、やっと今シーズンの試合データが登録されました。
まだその他の作業は急ピッチということになってるのですが、失敗すると面倒な作業はこれでオシマイなのでとりあえず大丈夫。
それとは関係なく、データベースをあれこれするのにJavaScriptを使い始めたのはいつからだったか?という感じなのですけど。
JavaScriptの中身をちょっと見てみたら、今ならそうは書かないという部分が色々とあったり。
多分修正したらスッキリした内容になるとは思うのですが、今からやると開幕してしまうので、ちょっとずつ改良していきたいと思っております。
というかJavaScriptは最近かなり頑張っていたので急成長という事になっていますが、これがしばらくするとまた元に戻ってしまうので困ってしまいます。
やっぱり思ったとおりだ。
ということで、昨日のシフト+クリックの謎の挙動のやつですが。
間違ってないはずだと思っていた場所は間違ってなかったのですけど、最後に選択した場所の記録方法が変だったのです。
<!-- けっこう興味深い間違いという気もするのですが、詳しく書こうとするとかなり長くなりそうなので省略。-->
こういう時には、気になるところを片っ端からconsole.logに出力してみると原因が解ったりします。(バグというかうっかりミスに近いので、もっと高度なデバッグの方法では逆に解らないということもあったりして。)
これまではTerminalで起動するスクリプトとかがメインでしたし、クリックに反応して動くとかいうのは年に一回の「何時だか解らないCanvas時計」で時々使うぐらいでした。
なので、こういうグラフィカルなのは頭でイメージするのが難しかったりしますけど。
とにかく、今回の問題な部分も解決して、JavaScriptでやろうとしていたところは大体出来てきたような感じになって来たのです。
なので、これまでバラバラに実験してきたのをまとめて完成に近づけたいのですけど、以前に書いたコードを見直したら自分で書いたのに理解するのに時間がかかったりして面倒なことになっております。
<!-- タイトルに「タウリン」が付かなくなってしまってますが、気にしない。-->
Tauriで何かは作れるのか?ということでやっているやつですが。
まだこの前のJavaScriptの続きをやってたりするのです。
並んだアイテムを選択する機能なのですが。
1から10までのアイテムが並んでいたとして、最初に3をクリックして選択したあとに、シフトを押しながら7をクリックすると3から7までが一気に選択されるというやつですけど。これがかなり謎です。
最初に選択されているアイテムが一つとは限らないので、どういう挙動が正しいのか解らなかったのですけど。
とりあえずMac の Finderではどういうことになるのか、リスト表示にして色々とクリックしてみたのです。
そうしたら場合によってどういう風に選択されるのかが決まっていないというか。
操作する側で予想できないような挙動になっていました。
Findeでそんな感じですし、このシフトを押しながら選択というのはけっこう複雑なのかも知れません。
結局正解が解らなかったので、最後に選択したところからシフトを押しながらクリックしたところまでが選択されるようにしてみたのです。
ただし、私が作ったものなので、上の例みたいに3から7を選択という感じだと上手くいくのですが、7から3みたいな順番でクリックすると、なぜか3から最後までが選択されてしまうとか。
さっきからずっと上手くいかない原因を探ろうとコードを見ているのですが、間違ってないはずだ、と思って見ているので原因は解らないですね。
多分、すごい基本的な何かを見落としているとか、そんなことになりそうですけど。