「何時だか解らないCanvas時計」はけっこう進んだのですが。
今年は春からずっとJavaScriptをやっていたので、一年に一回のJavaScriptの時とは違って、何かが出来るたびに「私は天才だ...」と思えなくなっているのです。
しかも、もっと上手く書けるはずと思ったりすることもあって、面白さ半減という感じです。
楽器とかと一緒で、最初の上達期間は面白いけど、そこから先がけっこう大変というか、退屈になってくるのだと思いますけど。
ついでに書くと、Canvasのアニメーションとかはいつものように年に一度なので、目立つ部分ではあまり上達が感じられないのも悲しいところ。
窓を開けっぱなしにしていたらやっと部屋の温度が30℃以下になったのですが。
いつもこの時期はこんなに暑かったかどうなのか、覚えてないですけど。
暑くて全然集中出来ないし、オマケに昨日とか一昨日は頭が悪かったし。
頭が悪かったとはどういうことか?という気もしますが、「何時だか解らないCanvas」に書いていたコードが意味不明で、上手く動くわけない感じのコードになってたりしたのです。
気付けば残り時間も少ないですし、結局ギリギリになってしまいそうですけど。
こういうエアコンをつけるほどでもない中途半端な暑さが一番困りますね。
ネットで調べた数値のデータをコピペして、JavaScriptで使えるように整形したかったので、これは久々にPerlの出番だと思ったのですけど。
久々だったので、50行もない簡単なコードでもかなり時間がかかってしまいました。
mapという関数の名前が思い出せないとかいうのもあったり。もしかするとこれは私の頭の問題かも知れませんけど。
昔はPerlがメインだったので、他の言語ではPerlとの違いを意識して書く感じでしたけど、ちょっとやらないだけでこんなに忘れるとは。
というか、忘れたのではなくて、Perlの知識がJavaScriptで上書きされたとか、そんな感覚もありますが。
なんでも出来ちゃう、っていうのは理想的だけどなかなか無理ってことのようです。
<!-- 時間はかかったけど、計算と書き込みを手作業でやるよりは断然早く終わったので、こういうスクリプトは便利なのです。-->
春からずっとJavaScriptをやっていたのですが、Canvasが出てくるとまた初心者になっている。
ということで、TauriではないJavaScriptで「何時だか解らないCanvas時計」が始まっているのです。
というか、HTMLとかJavaScriptも色々と変わってきていてCanvasじゃなくても良くなってきた気もするのですが。
いきなり違うのに手を出すとまた解らなくなるので、今のところ「何時だか解らないCanvas時計」なのです。
それとは関係なく、大学という意味のキャンパスが時々「キャンパス」なのか「キャンバス」なのか解らなくなるので、区別の仕方を考えていたのですが。
その途中でキャンパスノートって大学ノートってことなのか!というのに気付いたのです。
製品名でもあるので、あのノートは大学ノートっぽいノートにキャンパスノートという名前を付けたということかも知れませんが。
とにかく、これで迷うことはなくなると思います。
ちなみに、今回の「何時だか解らないCanvas時計」のアイディアとかを書いているのはキャンパスノートですけど。
こういうことを書いていると、またどっちがどっちなのか解らなくなりそうです。
<!-- then ってカタカナにしたら「ゼン」で良いんだよね?-->
JavaScriptでJSONファイルを読み込んでオブジェクトにしたい、というのをやるときには then というのが出てくるのですが。
fetch() で読み込んだJSON を then の中でオブジェクトにすることは出来たものの、そこからオブジェクトを return する方法が解らないので調べてみたら、そんなことは出来ないとか。
JSONを読み込む作業を関数にしたら楽になると思ったのに、これは困ったことに。
それで苦し紛れに fetch()を丸ごと return したら上手くいったり。
なんで上手くいったのかは良く解ってないのですが、出来たからこれで良いのです。
というか then を使う書き方が今風ということで、頑張ってやっているのですけど。
どういう考え方で書けばいいのかイマイチ理解出来てないのです。
というよりも、thenを使う場面がほとんどないので、調べながら書いてもすぐに忘れてしまうというのもありますが。
ちなみに、ここまでJavaScriptのことを書きながらタウリンが登場しない、ということは別の何かが始まったということでもあります。
<!-- でも tauriでやってるアレでもJSONを読み込むので、そっちでももう一回練習してみようか、どうしようか。-->
Tauri で作っているヤバいアプリの続きってことでもないですが、Mecoress で画像を変換する時に使うかも知れないダイアログが出来合いのやつだとボタンが足りなくて自作する必要がありそうなので面倒になっているのです。
それはともかく、Tauri は基本的にHTMLとJavaScriptとRustということで、ブラウザで出来るようなことは大抵出来てしまうので、画像の表示も簡単なのですが、これまで忘れていたWebPというフォーマットも同様に表示出来るので Mecoress に追加したのです。
それがなんなのか?というとWebPって「ウェッピー」と読むみたいなのですけど。
カワイイようでなんとなくイラッとする響きだと思っているのです。
無理して楽しげにしているとか、そんな感じもあるかも知れませんが。
なによりも画像っぽくないというのが気になる部分かも知れません。
(画像は「ジェイペグ!」とか「ジフ(ギフ)!」とか「ビットマップ!」とかそんな感じなのですけど。)
どうでも良いことを書いている気がしてきましたが、ついでに書くとWebPを動画にするとWebMという動画のフォーマットになるようですが。
こちらの読みは「ウェブエム」で、動画っぽいですよね。
でもウェッピー風にすると「ウェム」って気もしますが、これでも特に違和感はなさそう。
ということはやっぱりウェッピーって、モヤモヤした気分にさせるために付けられたのかと思ってしまいますけど。
どうでしょうか。
ということですが、Tauriで作っているスゴいアプリの続きですけど。
画像を変換するテストをしてみたら簡単に出来てしまって拍子抜け。
せっかくなので、変換した画像を作りかけのMecoressで表示させてみたり。

imageというcrateのドキュメントにあった例をほぼそのままという感じですが、変換する部分は数行で完成。
そして、けっこう練習していたRustで正規表現のやつですが、良く考えたら変換先でファイル名がダブったりした時にいちいちJavaScriptの方に戻ってきて警告を出さないといけなかったりするので、RustでやるのはやめてJavaScriptでやることになったりして。
まあ、とりあえずRustでも正規表現はちょっと出来るようになった、ということでこれで良いのです。
ついでに書くと、Mecoressにテストボタンが一時的に復活しています。
タウリンはやる気があるのに私の頭がついていけない、ということでTauriで作っているアレの続きなのですが。
次の機能を追加するには正規表現にもチャレンジしないといけないことが解ったのでやってみたのです。
そうしたら、良くあるやつ。

ドットから後ろを拡張子にしようとしたら、拡張子の前じゃないところにドットがあるとそこから後ろがマッチしてしまうのです。
書き方を変えたらちゃんと拡張子だけにマッチするようになったのですが。
正規表現はまあまあ理解しているつもりでしたが、言語が変わると「どうなんだっけ?」ってことになってワケが解らなくなるのです。
それとは関係なく、次の機能は画像を変換する機能なので、convert_imageという関数名なのですが、今のところ中身は正規表現の練習ばかり書かれているのです。
しかも、正規表現だけだと戻り値の型が違うというエラーが出るので、最後に適当に"ture"の変数を宣言して返しているとか。
なんとなくやってはいけないことをしている気もしますが、あとで間違えないようにしないといけません。
久々にタウリン登場ですが。
バージョン0.1に向けて新たなチャレンジをしようとしているTauriで作っているMecoressの続きと思ったのですが。
良く考えたら画像ファイルを変換して書き出したりする時には、拡張子を変えたりする作業があるというのに気付いたのです。
それってもしかすると、正規表現で元の拡張子と新しいのを入れ替えるとかしないといけない、ということなのですけど。
この部分はJavaScriptでも出来るけど、Rustの方で書いた方がコードがスッキリしそうな感じですし。
せっかく勉強したいということなのでRustでやるべきとも思っているのです。
正規表現もcrateを使ってやるみたいですが。
やり方はJavaScriptに近いというか。
やっぱりこういう作業はPerlが一番簡単だった、ということを思ってたりしますが。
でもPerlではないので頑張ってやるしかないのです。
それとは関係なく、Perlを使って色々作っていた時期が一番長いということなので、たまにPerlで何かを書いたりすると、別の言語でも変数に"$"を付けてしまったりとか、Perl脳が出てきてしまうのです。
ということで、バージョン0.1を目指しているTauriで作っているMecoressの続きですが。
0.1になるには、やっぱりRustも使わないと出来ないことが色々あるので、また調べたりしているのです。
画像を変換したりするのには、自分で一から作ると大変すぎるので、crateというモジュールみたいなのを使うのですけど。
画像をアレコレするには"image"というシンプルな名前のcrateを使うのが一般的なのに、convert imageで検索したら別のが最初に表示されたので、そっちを使ってしまうところでした。
多分どっちでやっても出来るとは思うのですが、メジャーなのがどれなのかというのは知っておきたいという感じでもあります。
というか、image の方は最初に読んだ入門書で使ってた気もしますけど。
どうも、JavaScriptの方が楽ですし、出来るだけJavaScriptで作りたくなってしまうTauriですが、Rustの方にも詳しくなりたいと思っておるのです。
<!-- あと、出来ないと思っていたことが、もしかすると出来るかも知れない、ということになってきたので、出来そうになったら何かが書かれるでしょう。-->
そろそろタウリンのネタが尽きてきたかも知れないTauriで作っているMecoressですが、私の頭の中で読み方が「メコリス」で固まってきた感じがしてきました。
というのはどうでも良いですが、最初の方に書いたJavaScriptのゴチャゴチャした感じをスッキリさせる作業。
画像を枠内に縦横比を維持したまま全体表示にする、というのはCSSを使うと簡単に出来るのですが、その他の表示方法との兼ね合いでJavaScriptでやっているのです。
その部分で、枠のサイズと画像のサイズの関係で時々変な表示になるのを直したら、なぜかコードの量を三分の一ぐらいに減らすことにも成功してしまったり。
というか、これまでのやり方が複雑すぎる上に思いどおりに動いていなかった、ということですけど。
なんというか、人間が手作業でやる感覚でプログラムを考えてしまうと変なことになる、という傾向がある気がしてきました。
最近は継続してコードを書いているので、効率の良い書き方が出来てたりするのですが、私の場合はしばらく休むとまた元に戻ってしまうので面倒なのです。
そして、ここでやっとメコリスのメの部分に関する情報ですが。
メの部分に新しい機能を思い付いたので、また一つオリジナル要素が増えるのです。
<!-- 誰も覚えてないと思いますが、メとはメディアファイルのメでもあるのです。-->
ということで、久々のTauriで作るMecoressですけど。

そろそろ動画が読み込めるような気がしてきました。
というか、読み込みは出来ていますし、サムネイルも画像用のスクリプトをちょっといじっただけで作ることが出来たりで、意外と楽だったり。
まだ拡大表示は出来ないので、やろうとするとエラーになる...。
という予定だったのですが、意外な発見もあったりして。
サムネイルをダブルクリックしたときの挙動は今のところ画像と同じなのですが。
ダブルクリックするとエラーにならずにimgタグのsrcの内容が動画ファイルの場所になって、それを表示すると再生が始まったりするのです。
音は出ないみたいですし、停止などの操作も出来ないので、このままにしないでちゃんと作るのですけど。
しかし、どうしてそんなことが出来るようになっているのか、という謎でもあります。
明け方に目が覚めた時に、良いメロディーが頭の中に流れていたので忘れないうちに五線紙に書きとめて置いたのですが。
そういうのって、実は誰かの曲だったということが良くあるので、起きてから確認してみたら最近弾き始めたクラシックギターの練習曲(F.ソル)でした。
まだ覚えるほど弾いてはいないのですが、キーが違うだけで全く一緒だったりして。
無意識のうちにメロディーは頭に入っているってことですかね。
それよりも、ちょっと嬉しかったこともあったりするのですが。
音を出して確認しないでメロディーをメモしたりしても、大抵の場合頭の中のメロディーと全然違ってたりするのですが、今日のはほぼ合っていたのです。
これがさらに出来るようになると音楽も捗るんですけどね。