MENU

RestHouse

音楽サイト「Little Mustapha's Black-hole」の音楽ブログということになっているはずです。

Recent Articles

Category

Monthly Archive

創作日誌 Vol.3

タウリン、積極活用されはじめる

昨日は作業をしていたので起動した状態のついでに使ってみたTauriで作ってるアレの続きですが。

今日はファイル名を一括で変更するのが使いたくて、わざわざ起動されてしまいました。
起動といっても、開発段階でコードの状態からコンパイルみたいなことをしているので、けっこう時間がかかるのですけど。
でもファイル名の変更が楽に出来ることを考えると待つ価値はあるとか。
230703_02.png
さっきの遠足記事の画像ファイルですけど。

上の方が元のファイル名で、下がRestHouse用の書式にしたがったファイル名ということです。
<!-- 本当は元の名前と新しいのが横に並ぶ予定なのですけど、それは最後の仕上げということです。-->

日付部分はテキストで追加することも出来るのですが、dateコマンドのフォーマットで"%y%m%d"みたいなことも出来るというこだわりポイント。
こだわりというか、目指しているMedia Proにもそんな感じのがあったのですけど。

なんだか、昨日やったことと、今日のこれだけで十分という気もしてきたりして。
まだ追加しないといけないこともあるのですが、完成にしたくなってきてしまいます。

<!-- というか、これで完成で良いのだったらもっと早く出来ていたはずで、それは時間の無駄ってことになってしまうので、やっぱりちゃんと完成させるのです。-->

タウリン、実戦経験を積む

ということで、ホントはタウリンじゃなくてTauriなのにタウリンだし、最近は人の名前みたいな扱いになっている、の続きですけど。

テスト用に起動してたので、いつもの写真を読み込む作業をしてみたのです。
230702_01.png
実際の作業をしてみるとかなり使いづらいですが、この辺の修正は次のバージョンという気がします。

でも、この表示されているリスト上で順番を並べ替えて、その順番で連番を付けてリネームが出来るというのは便利なのです。

上の写真は見て解るようにBBRニュース用ですけど。必ずしも撮影順に掲載されるワケではなかったりしますし。
あとは、OneDriveに保存してあるXbox Oneのスクショとかは、ファイル名にランダムな文字列が使われていたりするので、名前順に並べても撮影順にならないとかですし。

なので、自由に並び替えが出来るというのは良いことに違いないのです。

ついでに、出来なさそうでガッカリしているところもあるのですが。
新しいウィンドウを開いて、そこに元のウィンドウからファイルのドラッグアンドドロップって、普通のやり方だと無理なのに気付いてしまったのです。
何か画期的な裏技を発見するとか、あるいはRustの方で工夫したら出来るのか。
考えるのが面倒なので、これも次以降のバージョンでいいか。アハハ...。

タウリン案の定

なんで selected が使えないのか?ということになっていた Tauri だけで使えない予約語なんてあるのか?の続きですけど。

selectedという語には問題なしということが解りました。

ではselectedというクラス名が設定されているか調べると「ない」といわれる状態なのは何故か?ということになるのですが。

実は同じ場所に設定した別の関数でも似たようなことをやっていて。クリックすると一つ目の関数で一瞬だけ選択された状態になって、直後に別の関数によって選択が解除されていたので、selectedというクラス名も消されていたということですけど。

これは解りやすく説明するのが難しいというか。ここでプログラムに関することをどのくらい詳しく書いていいのかビミョーということでもありますけど。

とにかく、機能が多くなってコードが長くなってくると予期せぬエラーというミスも色々と発生するという感じです。

というか、今回直した部分って数カ月前に書いたところだと思いますが、すでにこの書き方はあまり良くないなあ、と思うところもあったりして、けっこうJavaScriptに詳しくなっている感じもあるとか。

それは良いのですが、一度に二つのことを同時進行とかあまり出来ないので、他のことが全然出来てないような感じでもあるので、早く一段落したいタウリンでもあるのです。

タウリン謎だらけ

HTML要素のクラス名に selected というのを使っていたら、上手く動かなくなったような気がするのですが。
ということで、Tauriでアプリを作ってたら、前は動いていたものが動かなくなる、の続きですけど。

画像とかを読み込んで整理するアプリということなので、ファイルの選択は重要なのですけど。
読み込んだファイルをリスト表示して、選択する時にはselectedというHTMLのクラスを追加することにしていたのです。

それで、前はちゃんと動いていたのですが。
他のところを作った後でまた動作確認してみたら何故か上手く動かなくなってたり。

あるいは、実は前から変だったけど気付いてなかったのかも知れませんけど。

フォームで項目を選択するアレでもselectedっていうのは出てきたりするので、その辺も怪しいかも知れません。

試しにクラス名を変えてみたら上手くいったのですが。これまで上手く動いていたような気もしますし、理由も解らないまま全部変えて、あとから本当の理由に気付いたということだとモヤモヤしますけど。

なにより、選択された状態という意味ではselectedが一番解りやすいですし、変えたくなかったりもしますが。

他のところではselectedというクラス名はちゃんと使えてるので、さらに謎なのです。

<!-- こういう時は、単純で致命的な間違いを犯しているにことも良くあるとか。-->

タウリン、アプリっぽくなる

ということで、時々Tauriで何を作っているのか解らなくなる、の続きですけど。

以前のスクショでテスト用のボタンだらけの状態だったのですけど、そろそろボタンを配置する場所がなくなってきたということで、メニューから色々と実行するやつを作ってみたのです。

230629_01.png
とりあえず、最初は読み込んだファイルをインデックスから消すという"Delete"の機能。(その下はネタ用なので選択しても何も起きません。)

本当はテスト用のボタンで全部やって、最後にこのメニューを作れば良いと思っていたのですが、実際にやってみるとけっこう面倒だったりして。
しかも、ボタンにJavaScriptで機能を割り当てるのとはちょっと違う感じでもあったので、早めに試しておいて良かったという気もします。

それとは関係なく、けっこう出来てきたのに、修正するところが大量にあって、制作の速度がかなり落ちている感じもあるのですけど。
多分、ユックリでも続けていればそのうち終わるということに違いないので、少しずつやるのです。

準備中...

そういえば、昔は電車の中でiPod touchとかで絵を描いて色々やっていたのですが。

久々にパソコンで絵を描いたらスゴく時間がかかって、やるって書いていたあれがなかなか出来なかったのですけど、やっと出来そうだということになってきたのです。

絵といっても色のついてない下書きみたいなやつですけど。
一度出来るようになったことでも時間が経つと全部忘れてしまうタイプなので、久々にやると時間がかかったりするようです。
まだ全部忘れてはいないので、一応前と同じぐらいの絵にはなってますけど。
上手く描くことを目的にしてない絵でもあるのでどうでも良いですけど。

多分明日とかから何かが掲載されるでしょう。

タウリン目指せ同等以上

ということで、一瞬ゴールが見えたかと思ったら、色々やることを思い出してしまって完成しないアプリをTauriで作る続きですが。

一度出来たことになっていたファイルの移動機能で、新しいフォルダを作ってそこを移動先にするっていうのが、普通 open のダイアログだと出来ないのに気付いたのです。

でも、目指しているMedia Proではそれが出来ていた気がしますし、アレコレ調べても方法は見つからず。
自分でも色々試したら save のダイアログだと新しいフォルダを作成出来るのです。

ただし、saveだとファイル名を入力しないといけないとか、余計なことがあったり。
でも新規フォルダを作成出来ない方が問題ってことで、ファイル名までのパスを取得して、正規表現でファイル名だけを消すという荒技とか。
230626_01.png
これは機能したのですが、やっぱりなんか変ということで、コメントアウトになってます。
それで他のアプリではどうなっているのか?ってことで調べてみたのです。

Media Proが使えなくなってからデジカメのファイルとかを整理するのに使っている ImageOne でファイルの移動をやってみたのですが。
いつもは、新しく撮った写真を選択して、パソコン側に日付をつけたフォルダを作ってコピーしているのですけど。
なぜかコピーしようとしても新しいフォルダを作るためのボタンがないような...。

少なくとも週に一回はやる作業なのですけど、いつもはどうやってフォルダを作っていたのか?ということになってきました。
しばらく考えてしまったのですが、フォルダを選択するダイアログが出てる時に[Command + Shift + n]を押してみたら、新しいフォルダを作成する新たなダイアログが出てくるとか。

いつもは無意識にやっていたのだと思いますけど、確認しながらやろうとするとこういうことを忘れたりするみたいです。

とにかく、open でも新しいフォルダが作成出来るのが解ったので、問題解決ですけど。


それとは関係なく、今Tauriで作っているのは Media Proがお手本なのですが、さっき登場した ImageOne というアプリは今作っているもののライバルという設定になっているのです。
ImageOneもまあまあ良いアプリなのですが、詰めの甘さみたいなのがあったりしますし。頑張ったら同等以上のものが作れそうな感じもあったりして。

<!-- どうでも良いことをミョーに長く書いてしまいましたけど。ポイントは[Command + Shift + n]で新しいフォルダを作成出来るというところです。Macの他のアプリでも同じかも知れないので、覚えておくと何かが便利になるかも知れません。-->

<!-- ついでに書くと、本当は「アプリ」じゃなくて「ソフト」って書きたいのですが、今風に「アプリ」って書いてみました。-->

タウリンついにこの時がきた

まさか完成したのか?と思った人はいないと思いますが、一応完成させる気はあるTauriでアレを作りたいの続き。

一体何がきたのか?というと、一番最初の方に作った「読み込んだ画像を大きめに表示する機能」が、このやり方だと上手くいかない!ということに気付いてしまったということです。

でも、最近の私はミョーにJavaScriptに詳しくなっているので簡単に直せるとも思っているのですけど。

だたし簡単だと思っていたことがけっこう大変ということも良くあるタウリンシリーズなのでアレなのですけど。
最近作っていた一括でファイル名を変換するというやつも簡単なつもりが、機能別のコードの長さとしては一番長くなった感じですし。

それはともかく、最初の方に作ったやつと最近作ったやつが上手く噛みあわないみたいなのが出てくると、色々とイヤな予感がしてくるのですけど。
最初から全部計画的に作っていたワケではなくて、途中で「アレも作らないと」とかいうことに気付いて追加の機能とかになっているので、危険もいっぱいな感じです。

ついでに書くと、お手本になるはずのMedia Proというソフトですが、OSアップグレードで使えなくなってから時間が経ちすぎて、どういう仕様になっていたのかとか、かなり忘れてしまっているのですけど。
古い環境で起動出来るディスクとか作っておけば良かった、とか思っているのです。

ホンモノのタウリン

[ タウリンに寿命を延ばす効果? ただしミミズとマウス、サルに限る - CNN.co.jp ]

やったー!と思ったのですが、良く考えたら私が頑張っているのはタウリでタウリンではなかったのです。

というネタですが、ついでに書いておくとまだミミズとマウスとサルに効果があっただけなので、タウリンのサプリメントの購入はお勧めしないと書いてあるので要注意です。

そして、だらだらしてきた感じもあるTauriで作ってるアレはいつになったら完成するんだ?ですが。
230611_09.png
見た目が何のアプリだか不明になってきています。

一応、画像とかのファイルを管理するアプリってことで作っているのですが。
並んでいるボタンはテスト用なので、そのうちなんとかなるのです。

あと、書いたかどうか覚えてないですけど、最初はJavaScriptだけでなんとかなりそうなスライドショーの機能だけで試作しようと思っていたので、アプリ名が「theSlide」になっているのです。
でも、途中まで作ったら分けてやる方が面倒だと気付いたので、そのまま全部の機能を追加することになったのですが。


というか、これは何の記事なのか?という感じになっていますが。
タウリンのネタだけだとあれなのでTauriの経過報告も一緒にやったら意味が解りづらくなっているのです。

略したらかぶった?

うーん...。引数名にも注意が必要って、そこはなかなか気付けないんだし。まあまあだけど。

ということで、調子が出てきたら復活している技術部ソコノこと曽古野貴美ですが。
それはともかく、Tauriで大変なのはRustのところだけじゃない!の続きのやつ。

これはRustの難しさよりも、Tauriならではかも知れないのですが。
Rustの方の関数の仮引数名に cmd というのを使って JavaScript の方から関数を呼び出したら、そんなコマンドはないというエラーとか。

エディタでシンタックスのハイライトとかをしていると、予約語みたいなのは違う色で表示されたりするのですが、cmd は普通の色だったので気付きづらいのですが。

実はシェルのコマンドを呼び出す時に cmd という仮引数名を使うようなのです。[shell | Tauri Apps]

commanndというのが何か意味のある単語かも知れない、ということでcmdと略したのですが、そっちの方が意味のあることだったようです。

こういうのは意外とハマりポイントというか。Rustが難しいという先入観のせいで難しく考えたら原因が解らなくなりそうでもあります。

それとは関係なく、このエラーのおかげで、シェルのコマンドが呼び出せるというのが解ってしまったのですが。
今作っている部分は特にシェルスクリプトとかだったら簡単なのになあ、と思ってしまうことが多いので、使いたくなってしまいますけど。
そうすると環境に依存することになってしまうので、Tauriでやってる意味がなくなるので我慢なのです。


それよりも、遠足の学級新聞はいつやるのか?ってことだけど。うーん...。まあまあだけど。

ボットー

音楽用パソコンのために買ったトラックボールが、時々ボールが引っかかってカクカクしてしまう、というのが気になって仕方がないのでLogicoolの新しいのを買ってしまったのですけど。

動きがスムーズになったら驚くほど集中出来たのです。

というか、これまで作業がはかどらなかった原因はトラックボールのカクカク問題だったに違いないということでもありますけど。

前はLogicoolのトラックボールだと「Shift+スクロール」で横スクロールが異常に遅いのがアレだったので別のメーカーのを買ったというのもありますが。
Logicoolのソフトがバージョンアップしたら解決しましたし、使い慣れているメーカーのが一番良いということみたいです。

というか、ボールが引っかかってカクカクするやつはもっと製品のテストをすべきなんじゃないかとか思ってしまいますけど。
<!-- 解決法がないか調べたら、同じ症状の人が沢山いるようなので、原因が私の手がベトベトしているからということではなさそうですし。-->

それはともかく、音楽用パソコンの前にはMIDIキーボードとかを置くことがありますし、やっぱりマウスよりはトラックボールの方が場所を取らないので良いですね。

タウリン二歩進んであまり下がらず

230602_01.png
これはただの画像ファイルじゃねえぜ。オレ様の書いたRustのプログラムがコピーした画像ファイルなのさ!
ハハハハッ!ハハハハッ!

ということですが、さらに...。
230602_02.png
そのキャラは何なのか?ってことは技術部ソコノこと曽古野貴美なんじゃないか?って事なんだけど。
うーん...。
ずっとプログラムとかやってたのに、なんで私が登場しないのか?ってことだと。
まあまあだけど。

ということで、そういえばタグにLMB技術部とか書くのも忘れていましたけど、Tauriでアレが作れたら夢のようだ!というこのシリーズはRustが難しいせいで余裕がなくてあまり細かいネタが書けてないのです。
というか、細かいネタを書く必要はないといえばないのですけど。
ただ、今回はRustの部分も解ってきてけっこう進んだ感じなので、久々に曽古野貴美も登場したりして。

ちょっとつまずいたもののファイルのコピーをする機能が追加されて、さらにRustでは基本的に同じ名前のファイルがあったら上書きされるということなので、同じ名前のファイルのがあったらどうするのかというダイアログを出す!という機能も追加出来てしまったのです。

ファイルのコピーとか、簡単に出来ると思ったらまだRustのエラーの処理みたいなのが良く解ってなくて大変だったのですけど。
しかも、ネットで調べたらお手本がありそうと思いきや、Rustをやってる人ってもっと高度なことをやってる感じなのか、ファイルのコピーみたいなのは例が出てこないとか。
なので、自分でマニュアルを読みつつ頑張って少しだけRustも進歩したのです。

ファイルの有無を調べるやつは例があったので丸写しですけど。

ここまで出来たら、もしかしてバージョン0.0はもうすぐ完成するような予感もしてきました。
完成しても公開とかはしないので安心して大丈夫ですけど。
バージョン1.0になるような事があったらあるかも知れませんが。


それから、遠足の学級日誌はいつになったら出来るのか?ってことだけど。うーん。
まあまあだけど...。

エポック

230530_01.png
オレ様の書いたRustのプログラムがファイルの情報を返してきたぜ!
ハハハハッ!ハハハハッ!

というか、いつもこういうところで満足してしまうからなかなか完成しない、という気もするのですが。

Tauri のアレで何とかしたいシリーズで難しいかと思っていたRustの部分をまた一つクリア。

ファイルの作成時間とか変更を加えた時間とかを調べる感じのやつ。
Rustの中では文字列とか数値ではなくてSystemTimeで値が得られるという事みたいだったのですが。
それをそのままJavaScriptに渡して上手くいくのか?と思ったらけっこう上手くいきました。

多分、今はまだ良く解っていないSerdeというのがよしなにやってくれてるのだと思いますけど。
[RustのSerdeの簡単な紹介 - Qiita]

それから、これだけだと記事のタイトルの意味が解らないので書いておくと、調べた時に返ってくる数値はUNIXエポックからの経過秒数ってことなので、そういうことなのです。

このエポックという言葉を聞くとなんとなく嬉しい感じがするのは、おもちゃメーカーの名前と関連しているのか、どうなのか。どうでも良いのですが。