MENU

RestHouse

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

Recent Articles

Category

Monthly Archive

創作日誌 Vol.3

準備の準備が恥ずかしい

ということで、何のためかは内緒ですがRestHouseの全記事を抜き出す作業の準備段階がやっと終了。

NASで簡単インストールしたMariaDBが上手く行かなかったり、その他の普段とはちょっと違う環境での作業で遠回りしてましたけど。

Pythonのモジュールは mariadb というそのままの名前のやつをインストールしようとして失敗してたのですが、実は PyMySQL というのを使えば、インストールする環境にMariaDBがなくても大丈夫だったとか。

なので、こっちのパソコンからPythonスクリプトを使ってリモートでNASのMariaDBにアクセス出来るようになっているのです。

そんな感じなので、まずは適当な記事のID番号を設定して読み出してみたのですけど。
かなり初期の頃の記事で、内容が恥ずかしいというか。
なんか変なテンションで気持ち悪いとか思ってしまいました。

もしかすると、何かのネタでそういう書き方なのかも知れないですが、そういうのが解ってないと変だとしか思えないようです。
もうかなり昔の話なので、今とテンションが違うのは仕方ないですが。

それはともかく、やっと準備の準備まで出来たので、これから書き出すスクリプトを書けば良いのですが、慣れてないPythonを選択したのでまた大変になるでしょう。

<!-- なんで慣れてないPythonを使うのか?ということですが、その後の作業でも必要になることがあるので、書き方を思い出す意味でもここで使っておくのです。-->

悠々アイディー

そろそろ次の音楽作品をなんとかすべきなのに気分がのらないので、周辺のことからやってみたりしたのですが。
240403_01.png
何を作ったのか?というクイズでもあります。

というか、答えは書いてあるのですけど。
音楽作品なのになぜかEPUBの電子書籍を検証してみたり。

そんな感じなのですが、EPUBも久々なので、規格どおりになるように色々調べることになったのです。
その中で以前は良く解ってなかったUUIDというのがあって、なぜか今回は解ったので使ってみたりしたのです。

別にEPUBにUUIDを使わないといけないワケではないですけど。
専用のアルゴリズムでUUIDを作成すると、他と被ることがほぼないということなのです。
詳しいことは解らないですけど、Perlのモジュールを使ったら簡単に作成できました。

なので、今回のEPUBはIDが誰かの作品と一緒かもしれない、という心配もなくて悠々としていられるUUID!
と、書きたかっただけでもありますけど。

ついでに書くと、EPUBの書き出しにはPerlが活躍ました。
ちょっと前に、久々にPerlを書いたらややこしいことになった、というようなことも書いたのですが、こういう作業にはやっぱりPerlが良いとも思いました。
<!-- どういう作業なのか?というと、下書きを読み込んでEPUB用のXHTMLに変換する感じです。-->

<!-- ちなみに、作ったEPUB書籍の公開はまだ先になります。-->

最終調整

なんか3月がスゴく早いと思う理由についてはまだ書かれませんが、そろそろということでRestHouseナントカ応援団のデータをアレコレするデータベースターズのスクリプトを仕上げないといけない感じになってきました。

それで試しに架空の試合を保存してみたのですが、保存されたあとにカレンダーにその試合が掲載されるはずなのに出てこないとか。

なんでかと思ったら、今回から新しく使い始めた日付用のインプットが原因でした。(正確には私が原因ですけど。)

ブラウザの機能なので、このカレンダーは私の作ったカレンダーとは別のものなのですが、この日付用のインプットだとこのようにカレンダーから日付が選べるので入力が楽なのです。
240321_02.jpg
なのですが、これで日付を指定すると、月とか日が一桁の場合最初に0が追加されているのを忘れていたのです。
本当は3月の「3」で登録されてるはずなのに、「03」で登録されていたのでカレンダーでは表示されてなかったということですけど。

なので、このまま本番で保存作業を続けていたら、試合が終わって保存する度にカレンダーから試合が消えていくという事態になっていたので危ないところでした。

これは直ったのですが、あと一つ以前のコードの使い回しだと上手く行かない箇所があって、そこを作り直すのか無理やりなんとかするのか考え中でもあります。

ついでに書くと、一番大変という気もする写真撮影はすでに終わっているので、間に合わないということはないはず。

こんなんだったけ?

完成間近と思ってたけど色々とやることが残っている新しいRestHouseナントカ応援団データベースターズ・アプリ風のアレですが。

そろそろ今シーズンの日程等のデータを登録しようということになって、せっかくなので登録用のPerlスクリプトもバージョンアップ。

バージョンアップというか、毎年変更部分だけスクリプト内のデータを書き換えて使っていたのを、書換が必要な部分を外部のJSONで管理すれば、JavaScriptの方と共有できるので、そうなるように書き換えてみたのです。

それほど難しいことではないと思ったのですが、PerlでJSONを読み込んでデータを取り出そうとしたらなかなか上手くいかなくて。
keys %{$$json_data{members}}というややこしいやり方でやっと上手くできました。

Perlは久々なので、他にもっと簡単なやり方があったかどうかも思い出せませんけど。動いているのでこれであってるに違いないのです。

JavaScriptの方は世の中の需要もあったりして、常に進化しているのでついていくのが大変という感じはありますが、こういうことがあると、JavaScriptの方は今風という気もしてきます。

<!-- 関係ないですがPerlを書く時にはコード内のコメントなどに良く曽古野貴美が登場します。なぜかは知りません。-->

一つだけど大量

RestHouseナントカ応援団のデーターベースターズのアレはかなり出来上がってきました。
あとは今年用の写真とかも用意しないといけなかったりするので、調整しながら準備ということになりそうです。

それとは関係なく、古いバージョンで使われていたHTMLのclass名に"cel"というのがあって、今回もそのまま使っているのですが。
数年前に考えたclass名なのでどういう意味か覚えてないのですけど、使われている場所からすると、もしかすると"Select"の"sel"を間違えて"cel"にしてしまって、それがそのままという気もするのです。

データを入力するものなので、相手チームを"select"とか、球場を"select"とか使う場面がたくさんあるのですけど、いちいち間違っているかも知れないということで、気になってしまうのです。

といっても、実際に使う時には見えない場所だから良いのですけどね。

ついでに、昨日の風邪の状態で作ったところは一番複雑なところだったのですが、ボーッとしていたのでどうやって書いたのか覚えてなかったり。
最近は飲みながらコードを書くことはなくなったのですが、同じ理由で風邪の時もコードを書いてはいけないということのようです。
<!-- 酒を飲みながらだとミョーな集中力で捗ることもあるのですが、捗っても何を書いたのか覚えていないコードが大量になるだけなのでアレなのです。(というか、最近は飲みながらそういうことをする体力があまりないですけど。)-->

カィセキチュ...

ということで、ナントカ応援団のデーターベースターズ・ウェブアプリ風のアップデート作業の続きですが。

昨日の記事を書いている時に気づいたダブルヘッダー対策として一時しのぎの機能を追加。
追加というか、コレまでのに似ているのですが、カレンダーだとダブルヘッダーが表示されるかビミョーなので、試合一覧のリストを表示できるようにしてみたり。

これはついでに作った感じで、見た目はビミョーなので、今日はスクショはないのですけど。

それとは関係なく、sqlite3のデータベースとやり取りをするのに使っているPerlの方でエラーが出たりして。
Perlは久々なので、何を間違えたのか解らなかったのですけど。
実はPerlの書き方じゃなくてデータベースのカラム名が違っていただけでした。

<!-- ホントは"id"で良かったのに、"game_id"に設定しているので、たまにいじると必ず間違えます。-->

というか、またタイトルについて書き忘れてますが。
データを読み込むまでのあいだ、コルタナ団員の「解析中...」という台詞が表示される機能も作ったのです。
なのですが、ネット上のサーバじゃなくて自分のパソコンのデータベースからの読み込みなので、一瞬で終了してしまって、読み込み中の解析中画面も一瞬しか表示されないのです。

ということで、こっちもスクショなしですけど。

今日は苦労したワリにはスクショチャンスはゼロでしたね。

新機能は難しい

ということで、新バージョンにするのはけっこう大変なRestHouseナントカ応援団のデータベースターズにカレンダーなんだし!
240227_01.jpg

最近ではめったに使わなくなってしまったTableタグを使ったりしたので、この状態にするまでにかなり時間がかかりました。
しかもNPB仕様ということで、月曜始まりだったりするのも少しややこしい感じでしたが。

ついでに書くとHTMLで"colspan"と書くところをJavaScriptでやる時はなぜか"colSpan"という罠もあったり。
CSSの"font-size"みたいなのはJavaScriptで"-"が引き算になってしまうので"fontSize"というのはあるのですが、"colspan"がそうなる理由は謎です。

画像では今月のカレンダーですが、試しに去年のデータを使って試合のあった月を表示させたらちゃんとデータも表示できましたし。
これまで過去のデータを呼び出す時に、どれがどの試合だったか?とか探すのが大変だったので、カレンダー形式では楽になるに違いありません。

そして、せっかく作っても使うのは私だけで誰も見ることが出来ないというのはアレなので、積極的にスクショは載せていくのです。


<!-- もしかしてTauriでカレンダーアプリとか作れるんじゃないか?とちょっと思ったのですが、すでに世の中に大量にあるカレンダーアプリなので、そういうのは作る気にならないとかも。-->

<!-- 今思い出しましたが、まだダブルヘッダーには対応していないデータベースターズなのですが、対応させるべきか、どうかなのか。-->

けっこう大掛かり

春も近いので始まったRestHouseナントカ応援団のデータベースターズの新バージョン作りですけど。

以前のコードを流用できると思ってたら、思った以上に柔軟性がないというか。
流用するほうが面倒なので、結局新しく書いてたりするのです。

前に作った時には非同期処理みたいなのはワケが解ってなかったですし。
さらにデータベースターズの膨大な120KBものデータベース(?)を全部読み込んだりして大丈夫なのか?とか思ってたこともあったりで。
<!-- 実際に全部読み込む必要はないのですが、多分余裕で読み込めるはず。-->

なんだかミョーに時間がかかる感じがしてきましたが、次はさらに新機能が追加されるので、ややこしいことになるに違いありません。

バージョンアップするんだし

また寒くなってますが、もうすぐ春ってことでRestHouseナントカ応援団のデータベースターズ編集ページを大幅リニューアルできるのか?!

ということで、始めたのです。
240224_02.jpg
まだ何もない感じですが。

最初に作ったのが3年ぐらい前でしたけど。
その時もまあまあ出来ているつもりでしたが、去年から始めたTauriのアレでJavaScriptが色々と解ってきたので、もっとちゃんとした感じにしたかったのです。

とりあえず、形の出来たHTMLを使うのではなくて、パーツをJavaScriptで書き出すようにして、色々と柔軟に表示できる感じで。
ということでさっきの画像ですが。
夜になってやっとここまで書き出せるようになりました。
240224_03.jpg
手書きのHTMLだと簡単なのですが、JavaScriptでやると結構ややこしいのです。
その代わり、ここから先は色々とアレンジできてしまうはずなのですけど。

とりあえず一つ書き出せるようになったのですが、タブ風表示で4つのコーナーがあるので、さらに3つやらないといけませんが。
それはどうでもイイのですが、オリジナルのJavaScriptは謎のオブジェクト指向の部分があったり。
どうしてそうしたのか?という感じです。
とりあえず、新しいバージョンでは意味がなさそうなので、普通の書き方でやるようにしています。

バージョン管理

TauriでMecoressを作ったりするようになってから、バージョン管理をすべきかどうか考えていたのですが。

でも調べるとGitみたいな大掛かりなのばかりな感じだったり。
でも、その中でFossilというのが丁度良さそうということで、使い方とかを調べていたのです。

そうしたら、バージョン管理のソフトって私の思ってたのとかなり違う、という事になってきて結局これまでどおりのバックアップで良いという事になっているのです。

私のイメージではMacのバックアップのTime Machineみたいに、変更を常に監視しているとか、そんなのがバージョン管理だったのですけど。
そうではなくて、ある程度新しいコードが書けたら自分で新しいのをcommitするという感じでした。

やらないよりはやった方が良いかも知れないのですけど、途中からやるのも面倒な感じもあったりするので、使うとしたら次の何かからになるでしょう。

それとは関係なく、commitってカタカナで書くと違う意味になってしまいそうなのですけど、こういう時のcommitって日本語ではなんて言うのか?とかも。

バグではなくて技術部ソコノです

Mecoressはインターナショナルなアプリなので、Googleの翻訳なども活用して表示されるメッセージなどは英語で頑張っているのですが、この前コードを確認してたら曽古野貴美発見。

実行するとこんなことになります。
240218_10.jpg

どうしてプログラム中にこんなキャラが出てくるのか?という感じでもありますが、こういうことをしていると上手くいかなくてイライラしがちな時にちょっと落ち着けるので、LMB技術部の存在は重要なのです。

というか、後で直す予定がそのままになっているという事でもあるのですが。
ここを作っていた時にはやることが多すぎて、なんだかワケが解らない状態だったので、こういうのが沢山あるかも知れないです。

とりあえず書く

ということでMecoressの続きもやっていたりするのですが。
Tauriの仕様上不可能だと思っていたウィンドウ間でのファイルのやり取りが出来るようになって、まるで本物のアプリみたいになっているのです。

なにがスゴいか、あるいは実はスゴくないのかという感じでもありますけど。
基本的にTauriのドラッグ・アンド・ドロップはファイルを読み込む時に使う感じなので、一つのウィンドウから別のウィンドウにドラッグ・アンド・ドロップしても何も起きないのですが、一応ドロップされた側はドロップされたという反応があって、元のウィンドウではドラッグしている途中にウィンドウの外にカーソルが移動すると"Cancel"が返ってくるということで。

その辺を利用して裏技的にやってみたのです。

書いたところで解る人はあまりいない気もしますけど。
こういう瞬間が楽しいのでプログラムは結構ハマります。

それはともかく、裏技的なので挙動はちょっと怪しいかも知れないとかもあるのですけどね。

余計なものかは知らない

ということで面倒な機能が保留になったことでバージョン0.2.0が完成間近のMecoressですが。

今バージョンの予定になかったテキスト読み込み機能が追加されてしまいました。
240124_01.jpg
確か、お手本となったMedia Proにはなかったですが、その前のiView MediaPro ではテキストの読み込みが出てきたはずなので、そのうちやろうとは思っていたのです。

こういうソフトでテキストファイルが読み込めて嬉しいかどうか?ということだとビミョーかも知れませんし、それもあってMediaProでは削除された可能性もありますけど。

テキストファイルだってメディアといえばメディアなので、メディアをあれこれするソフトのMecoressでは読み込めるようにするのです。

ついでにLMB仕様なので台詞っぽいやつの名前のところが太字になってたりとか、コメントっぽいところでは色が変わるとかもやってたりします。
こういうところの正規表現はややこしいので何度もやり直しましたけど。

プログラムをやり始めたのはPerlでこういうテキストをHTMLに変換するのが目的だったので、正規表現も最初からやっているという事でもあるのですが、なぜか全然進歩しないようです。

<!-- 今気づいたのですが、テキストファイルとかオーディオファイルはスライドショーで再生するタイプのファイルではないですが、どうするのか決めてなかったりして。-->