滅するまでの記録

滅するまでの記録

滅するまでの記録です

プログラミング学習日記 2025/12/06 LoneWolfテストプレイ&Kiroインストール

話題その1 LoneWolfテストプレイ

 

とっとと次へ行きたいところだけど、まだ仕事が残っている。そう、LoneWolfのデバッグですね。果たして最後まで到達できるのだろうか?発表はしないことになりましたけど、一応ケリをつけないとな

 

 テスト用にHPを強化

 

 ついでに戦闘力も強化

 

 プレイして思ったけど・・リアルの本みたいに簡単にはやり直しが出来ないので、選択肢では結構真剣に考えてしまう。つまり、結構楽しんでいるのでした

 

 アイテムゲットもちゃんと働いている。

 

 そうこうしてると・・おおっとパニック!でもどうせアイテムのインスタンスを作ってないとかでしょ?とチェック

 

 原因はAIに書いてもらったWeaponget部分、AIには武器とアイテムの区別がつかなかったので「〜を手に入れた」という文章で手に入れるものは全部アイテム扱いにしてしまうのだった

 

 Gemについても同様で、アイテムとしてTOMLに記述されてるのでおかしなことに。修正する

 

 と、ここでミス発見。戦闘前に武器をゲット出来るパターンがあったのか・・ということはやっぱりHandleStoryNodeじゃなくてHandleNodeの部分でGet系を発動させるべきだった。まあ、この一箇所だけなんですけどね!

 

 あと、ここで「巻物」をゲットするはずが記述なし。このままではクリア不可能か?とビビりながらプレイ

 

 戦闘では絶対に負けないので

 

 とにかく敵を殲滅する選択肢ばっかり選ぶ

 

 と、油断していたらランダムで絶対に死亡するルートにはまり込んでゲームオーバー。

 

 とにかく王城へ向かうルートをストレートに目指したところ・・あっさりとゲームクリアとなってしまった(^_^;) まあ、普通のステータスだと敵に勝てないルートだったと思うんで、本来は戦闘を回避したりで回り道をして楽しむゲーム性なんだろうな・・と。

 とりあえず一度全部のItemgetbeforeをザッとチェックして、巻物を追加、ItemgetbeforeをHandlenodeに置き直す・・って程度で問題はなくなるんじゃないかな?

 遊んでみた感想は・・そこそこ面白かったけどコードを書いてる時の楽しさには及ばんよなぁ!という感じ。AIにデータを作らせて、人間はシステム部分をニヤニヤしながら実装する・・これが一番幸せなんじゃないかな?

 

 なんかアマゾンのAIエディタKiroが紹介無用で使えるようになったというので試しにインストール。見た目は良いね!気になるのはお金がかかるのかどうかだが・・

 

 無料で1月50クレジットか・・ちょっとした質問をしてみたら0.07クレジットだったけど、実際にコードを書いてもらったり翻訳を頼んだらどのくらいになるのか・・今のところ、量はあるけど単純作業ってのはGrokのWEBで無料無制限にやらせて、コードの質問なんかはAntigravityを使うってのが良いと思うけど果たして?

 

 Grokで同様のIDEが出れば言うことないかも?と思ったので質問。あれ?拡張機能APIとして利用できるのか!

 

 でも無料じゃない!うーん、じゃ駄目w

 早く核融合発電か、月面での太陽電池→マイクロウェーブ送電で無尽蔵のエネルギーが使えるようになって人類が等しく無料でAIのサポートを受けられるようになると良いですね! 



プログラミング学習日記 2025/12/05 昼間の仕事が入ってたのでやってません

 番外編として関連事項をちょっと・・・

 

話題その1 例の返事が来た

 例のLonewolf関係者への「CLIプログロム化したLonewolf1を公開しても良いかな?」と言う質問へのお返事が来ました!

 結果・・出版の権利は持ってないので権利を持ってる会社に問い合わせをしてくれ!というものでした(・_・;)

 じゃもう面倒だから良いや。でも折角なのでデバッグしてプレイ動画をニコニコにでもアップしようかな?

 

話題その2 AIで古いPDF書籍をまるごと読み込ませてOCR処理を行いテキストファイル化出来るか?実験

 仮にこういうOCR処理されていない画像として記録されてるだけのPDFファイルが存在したとして、そのPDFをまるごとアップロードして全文をテキスト化出来るか?という実験。これが出来たら・・大昔のゲームブックを根こそぎデジタルゲーム化する事が出来る!わけだが?

 

 GPTだとなんだかんだと処理の下ごしらえでトークンを使用されてしまい、実際の処理を行う前に制限が来てしまいました。

 一方でGrokでは・・途中で処理が止まったり、表示されたテキストはパラグラフがずれていたりと不安になる出来だったのに、最後にひとまとめにしてテキストファイルとして出力して欲しいと依頼したところ、なぜかおかしかったところは完全に修正された見事なテキストファイルが出力されました!

 結論!単純で量がある作業はGrokにお任せ!これなら手持ちのアニメージュ付録「巨神兵を倒せ!(ナウシカ)」や「飛行石の謎(ラピュタ)」などのゲームブックCLIで作り直すことが可能だな、やらんけど(Racketの無理やり画像表示方式も味わいがありますからね)。



プログラミング学習日記 2025/12/04 質問を続けた

 謎の型Runnnableについての質問。うーん、まあ大体正解。実行処理Run()を持つという決まりのインターフェイスだと。

 

 ただの関数みたいなものなので呼び出し側によって変わってくるわけだな

 

 後の解説で分かるんだけど、Handler.はメインスレッドに処理を渡す役割で、Threadは別のスレッドを新しく立てるメソッドなのでそっちに渡されるとそっちで実行されるだけの話と

 

 これ名前が悪くないかい?Oerrideなんて言うから・・。で、元のメソッドを使おうと思ったらSuper.で呼び出すと言うだけの話でした。

 

 なるほどね、はいはい。

 

 ということはこのOverrideの仕組みはAndroidでアプリを作ろうと思ったら必須の作業だろうから、まあ自然に覚えるだろう。

 

 これも仕組みを知ってしまったら「そっすね」って話。最初にアンドロイド上での基本的なループの流れみたいなのを聞いてれば疑問にも思わなかったんだろうけどね

 

 なるほどね。OS自体のループの中で勝手に呼び出しを受けるメソッドがあって、その中に対応の行いたい処理を書いておくと。

 

 なるほどねぇ

 

 言われてみれば確かに別のタイミングじゃないと困りますよね

 

 確かにアプリが多重で起動しててもバックグラウンドで働く機能は限られてますね(DLとか)。そういう切り替えを行ってるってことか

 

 そういうバックグラウンドに回った時にちゃんと止まるようにするのはOSじゃなくてアプリ側に委ねられてるってことかな

 

 Intentの疑問はほぼ予想通りでOSを介して呼び出す別プロセスへの連絡を行うのがIntentだと

 

 

 ああ、実行時には強制的に値が入るのでコンパイルでエラー起こすなという契約なのか

 

 実行時に作られる例、なるほど

 

 ?.問題も了解。上位にNullの余地があるなら自動で下位にもあるということなので、以降は全部?.にしないといかんということで

 

 だから別にメイン内でやっても良いけど、外部で処理してそれを反映させるためにMainスレッドへ送るのがHandlerって事だと

 

 なるほどね。絶対にMainスレッドに送って実行させないといけないわけでもないんだけど、画面表示なんかはMainスレッドでしかやらないのでHadleで送ってたわけだと

 

 質問後にGPTから上の3つのことを更に説明しましょうか?と言われたので、この際スッキリさせようと思ってお願いする

 

 お〜HandleThreadはLooperを持つ別スレッドを作るのか!ま、確かにそうじゃないとバックグラウンド処理が煩雑だもんな。この別スレッドにCPUの別スレッドとかコアを割り当てると平行プログラミングってのになるのかな?

 

 WorkerスレッドにもLooperがあるということは、Handleはメインに送るだけでは無いのか?ワーカースレッドで処理とかってのが用途にあるってことは、そのときにもHandlerを使うのかねぇ?答えは次の画像にありました

 

 なるほど!これでかなりスッキリした。そして、このLooper付きのスレッドって結構良いんじゃないか?この別ループで延々と計算をして、その結果をMainにHandlerする仕組みにしておけばリアルタイムストラテジーみたいなゲームを作れんじゃないかなぁ?なんとなくオブジェクト指向よりも複雑なロジックを独立して回せる気がする

 

 へぇ〜こんなのもあるのか。ゲームなんかで多数のスレッドを使って処理とかしようと思ったらこっちになるのかねぇ

 

 要するにUI周りを受け持ってるのがLooperか

 

 ふーん、この書き方から見るとGo func(で書いた処理が<-で延々と受け取られて実行されるってことか・・Goの勉強になるわ

 

 は!?何ぃ?ここまで引っ張っておいてHandlerとかは既に時代遅れとな?

 

 「地獄」ワロタ。

 

 なにーっ!?まあでも本格的に学習を始める前に判明して助かった、とも言える。

 

 ほお〜・・って事はGoでの並行処理の学習はKotlinでも流用が効くということ事ですな?これは朗報。どうせ学習にコストかけるなら他の環境でも応用できる方がトクだからなぁ。ちょっと並行処理周りの学習が楽しみなってきたワイ

 

 続いて匿名オブジェクトに関する質問。ふーん、なるほど・・結局の所インスタンスを作るわけだから、その場でメソッドを拡張したものを書いて実体化するところまでやってしまおうと

 

 これも狙いとしては同じだな。少数しかインスタンス化しないのにわざわざ別のファイルとかに飛んで構造体を作るって超面倒っぽいもんな〜 覚えておこう

 

 はいはいコレはおなじみ

 

 おーっ!なるほど!今日延々と質問して来て最後に繋がった感じがした!しかし、これだけの事でコルーチン実装できるって・・Goってすごくない?問題はCPUの別コア・別スレッドの割り振りがどうなるのか?だけど

 

 なるほど、でもKotlinのこれってThreadを使ってるってことは古い書き方ってことだよな?もっとNowいの教えてくれ

 

 うわ、コレは楽だろうなぁ〜・・いきなり実行したい部分だけを書けるのか

 

 いや、大変勉強になりました

 

 あとはItとThis問題。ThisはGoだったかのメソッド(だったっけ?)でのSelfみたいなもんか

 

 というかPrintlnの文法の方が気になる・・便利っぽいやん

 

 あ〜長かった!最後に途中気になったCoroutineのゲームへの応用についてGPTに質問

 なるほど〜・・いや、確かにOOPみたいな感じで大量のインスタンスをリストにして、それぞれがメソッドで処理をして、延々と全部をイテレートするっていくらなんでも大変じゃないか?と思ってたので・・これはちょっとシンプルな作りのRTSっぽいの作りたくなってきたなぁ・・「イデオン」を題材に出来んもんかな?

 

 結構興味があるところだけど、ここらへんはまた次の機会に。とっととお金の問題を無くして趣味のプログラミングに没頭したいもんですな〜

 

プログラミング学習日記番外編 AIに音感養成プログラムを作ってもらう

 AIに欲しいツールを書いてもらうってのが思いの外うまく行ったので、今度はもうちょっと複雑なものを書いてもらおうかい!

 プログラミング学習開始当初、いつか作りたいな・・と思っていた音感養成ソフト。要するに音階を歌詞にして、好きな曲を聞き続けてたらいつか音感がつくんじゃないか?という理屈を元に、MIDIファイルから好きなだけ音源を作成するソフトだ!

 

 まずはトークン枯渇を防ぐためにGPTに相談

 

 まあ、可能かどうかで言えば可能だろうな・・って所を狙ってますから

 

 難しいかな?と思っていた主旋律部分の特定も可能だとか。もちろんGUIにして選択できればそれに越したことはない

 

 これも簡単な仕組みで出来るよね、と

 

 これも問題なし

 

 Vocaloidが良さそうだけどお金をかけないってのがポイントだからなぁ・・UTAUか?

 

 よしよしこれで宿願の(でも何も努力をしてない)、「知ってる曲ならその場で弾き語り出来る」が可能になるんじゃないのか!?

 

 一番手軽なWindowsGUI実行形式でMIDIを読み込み、Utau用ファイルを作成、UtauでWavファイル生成・・ってのが安価で手軽だな、と。全自動オールインワンだと一番良いけど、ま、それはこのテスト版の出来次第って事で

 

 ということで、上のやり取りをまるごとコピーしてAntigravityの該当フォルダ内にて指示ファイルとして設置、読み込ませて「このやり取りのヤツ書いてよ」と雑に依頼。出来上がったPythonのバッチファイルを使ってEXEファイルをビルドする

 

 エラー発生

 

 でもエラーメッセージをそのままAntigravityに投げて自己修正させる。結果・・・

 

 分かりやすいGUIアプリ来た!MIDIフィアルを読み込むと(ネットで適当に探した「およげたいやきくん」)

 

 全トラックが表示されて、多分要素数が一番多いのがデフォルトで選択済みとなっている。選択後、下のGeneration USTでUSTファイルを作成

 

 UTAUソフトを無料ゲットしてインストールしたんですけど・・なんか文字化けで意味不明。古いソフトですもんねぇ・・。なんか代替ソフトないのか?

 後継ソフトと言えるOpenUTAU発見、インストール

 

 で、USTファイルを読み込ませるとエラー。おい、どうなっとんねん!と。エラーをそのままコピーしてAntigravityへ流し込む。

 

 えらいもんで、ちゃんと原因を見つけてくるんですよね

 

 というわけで無事に読み込み成功。でも音が出ない・・なんかSingerデータが必要だとか

 

 ネットで探すといくつかあったので一番上に出たこのデータを選択し

 

 うーん・・多分Utau形式じゃないのか?と設定。でも音が出ない!

 

 歌詞はちゃんと設定されてるしなぁ・・でもこれ、アルファベットで良いのかねぇ?ちゃんと1音になってるのか?(音が出ないのとは別件で怪しい)

 

 結果、上のような設定にしたところ音が出ました!Singerも変えて、内蔵されてるレンダラーの設定を使えるようにするには上のようにしないといかんっぽい。

 

 結果!なんか全然およげたいやきくんのメロディが見つからないんだが(全トラック試した)。やっぱり歌詞がアルファベット2文字なのが良くないんじゃないのか?(音要素に対して歌詞要素が多すぎる?)。まあ、歌詞データはテキストエディタの一括変換でひらがなに出来るので、今後やるとして・・Antigravityにツールを書かせる今回の作戦、成功と言ってよいだろう!

 

 

電子書籍変換ソフト「Calibre」のファイル名ローマ字化問題が解決した

 手持ちのEpub書籍をPDFに変換したい・・誰でもそういう事ありますよね?そういう時に頼りになるのが無料の変換ソフト「Calibre」なんですけど、日本語ファイルを読み込んだ後変換してみると・・新しいファイル名が漢字を音読みしたローマ字の羅列になっててガックリ!

 これは誰でも経験しますよね・・

 僕も長年この問題で悩んでたんですけど遂に謎が解けたのでここに共有します!ちなみにコレはReditでも生成AIでも解決できない難問なんですぞ!

 

 まず右上の設定を開いてテンプレートをチェック。大丈夫だとは思うけど右下のカーキ色の文字列部分"strictly_alphabetic"になってるのを確認しよう!

 

 そしたら変換元のファイル(適当なEpubが見つからなかったのでここではPDFファイルだが)をメイン画面にD&&で追加。上のメニューから「文書変換」を選ぼう。個別でもまとめてでも大丈夫。

 

 変換先の形式を右上のメニューでPDFにして実行、しばらくしてタスクが終了する。

 

 すると、(通常は)My documentのCalibreフォルダに新たにフォルダが作られる。このフォルダ名が問題の「音読みをローマ字にしたもの」になる・・が、今回はもともと英語タイトルの本だったので、そこはそーなってると思っておいてもらおう。中身は変換されたフォルダと同名の文書ファイル(PDF)になってるわけだ。これがネットで調べてもAIに尋ねても全く改善できない。どーしてか!

 

 そこで環境設定から「ディスクに保存」を選んでもらおう

 

 そして設定の中でもし入ってたら「英語に存在しない文字を英語の相当する文字に変換」のチェックだけは外しておこう

 

 そしてメイン画面の上部にある「ディスクに保存」の三角を押して「指定形式をディスクに保存」を選ぶ

 

 すると・・・形式の選択肢に「さきほど”変換”した形式」が現れる。そーなのだ!最初の変換で下手に求めた形式が生成されるので勘違いしてしまうのだけど、変換は途中ファイルを作るだけで最終的な出力は変換を行った後に、「ディスクに保存」を選ぶことで、ちゃんと目的通りの日本語そのままのファイルが生成されるのだ!

 

 たったこれだけの事だったなんてーッ!

 知ってしまえば「ちゃんと説明読んでないだけでしょ?」と思うだろうが、同様の相談がネットに多数上がっており、回答者が的外れかつそれっぽい事を書いたり、「不可能です」と断じたり、バージョン違いのせいだとか、これはずっと放置されてるバグですと自信満々に書いてる奴までいるせいでAIでも回答不能な問題と化しているのです。多分、ちゃんと使ってる人にとっては当たり前すぎてこの2段階生成の仕組みで引っかかってるなんて想像もできてないんじゃないかなぁ?

プログラミング学習日記 2025/12/02 質問回

話題その1 Cametanさんからのコメント

 なるほど、ガワがJavaで中身はLinuxだったんですか・・Kotolin、関数言語ってことならより面白そうですね!

 そう言えばMITのビジュアルプログラミングの話ありましたね!

 ってことで訪ねてみました。おお、WEBベースでアンドロイドとIphoneのアプリが作れるとな!

 

 Scratchはもう懲りました(ノートパソコンの画面が狭すぎる!昔のPC-100みたいな縦長モニタだったら楽しいかも)のと、Android StudioのAIサポートを味わった後ではちょっと厳しいですかねぇ・・。やっぱりコーディングへの憧れた強いんでねぇ・・でも折角だし、そのうち一度くらいはやってみますかね!

 

話題その2 PDFスライドショーのコード解説で分からなかったところに追い打ちの質問

 へぇ〜・・というか、Goってこんな書き方でTypeの継承が出来たのかw ちょっと覚えておく努力をしよう。

 

 えっ!変数をNullに出来ない?ん〜じゃあしょうがないな!確かにGoのErrチェックとNullチェックは面倒だった印象はある。逆にNullかどうかを判定に利用するということも出来ないという事だけど・・。ValとVarの使い分けは並行処理うんぬんってのがあるならしょうがないか・・

 

 うーん、こんな簡単そうに言われてもなぁ。他のプログラムでの使い方とかで比較すればもっと分かるかも知れない(GoのChanも知らんし)。マルチスレッドなプログラミングをやらんことには理解出来なさそう。続けて質問しよう

 

 ここでも平行処理に関係する話か・・。要するに内部でメインスレッドとは別チャンネルで実行可能なオブジェクトを持ってる構造体の型がRunnableって事かなぁ?これも質問する

 

 ここも並列処理がらみ。これも質問する

 

 まずライフサイクルメソッドが分からねぇ・・上書きするけど、メソッドを個別で定義しなくてもOverrideすると親のOnCreateも消えてるってこと?それだったらOverrideするしないで継承して別で欲しいのを追加したほうが良くないか?これも質問する

 

 ふーん、包んでるKotlinから内部のLinuxへの命令書ってことなんだろうけど、それってどんな命令でもそうじゃない?なにかIntentじゃないと駄目な基準があるんだろう。上の例でのアプリ間連携とファイル選択、メールは、なんとなくOSを介してじゃないと届けられないようなイメージがあるから分かるかな。でも別Atibityとは?同じアプリだけど別のメインスレッドを立てる場合ってことかなぁ(ファイルエクスプローラーを複数起動するようなイメージ?)

 

 質問の回答になってないぜ・・それにNullは許されないんじゃなかったのかいな?遅延初期化をしてるから必要な処理ってこと?

 

 うーん、全体的に答えた簡潔すぎる。Handlerはメインスレッドに処理を渡すわけだから、Runnable型の処理の中でHanderを呼び出して特定の処理を実行するように依頼するって感じかねぇ

 

 まずGoの無名Structも知らんし!ちょっとスマホのGPTで聞きましたけど・・うーんまあ、予め定義してなくてもその場で作れるってだけかな?

 

 ?? 

 

 まあ、スリープ機能関連では無いよなw うーん、任意のタイミングで勝手に動作させる仕組みか?別スレッドを一定間隔で動かすためのwaitみたいなもんか?とにかく平行処理を学習せんと話にならんわ 

 

 ふんふん、これは何となく分かる気がしてきた

 

 うーん、なるほど。Mainにはストップとスタートのボタン操作があって、スライドショーで画像を表示して一定間隔で次の画像を表示ってのは別のスレッドで非同期で行われ、その操作をするためにRunnableな構造体のメソッドとしてHandleを介してMainに返して実行するって事か?

 

 じゃあ次回は更に質問します

プログラミング学習日記 2025/12/01 PDFリーダーアプリのコード読み編

 なるほど~。効率化されたJAVAって事ならいつか挑戦してみても良いなぁ。というか、アンドロイドアプリ作るなら一択なのかな?正直、先日触ったAndroidStudioのAI機能があれば個人的に欲しいちょっとした必要ツールくらいは作れそうな気がする。でも、ちょっとは慣れてるGoで作れるのに越したことはないのだが?

 

 なにィ!?ここでまたもや新たな候補。うーんiPhoneってAndroidみたいに適当なapkファイルを作ってインストール・・とか出来なさそうなイメージ。ま、そもそもAppleは好きじゃないしなぁ・・でも同じ労力で可能性が増えるならコッチが良いのか?でもAndroidStudioでFlutterをサポートしてるとは思えないし

 

 ではGPTにAntigravityで書いてもらったコードを読んでもらって解説をしてもらおう!なんかちょっと心苦しいがw

 

 基本の画面表示?クラスを継承してオリジナルのクラスを作るってことだな?

 

 遅延初期化・・変数の宣言みたいなものか?可変と不変で宣言が違うのは・・見える・・全部可変で良いじゃないかとvarしか使わない未来が見える

 Nullableも全部?をつけてしまいそう

 

 UIでの入力待ち状態がメインループって話かな。Runnableはビルトインの型なのかなぁ?疑問をメモしておいて後で質問しないと

 

 ここは質問しないと全く分からん。アプリの目的とAPIの名前から推理すると何らかの入力があった場合に次のアクションをするか、それともあれか?次のページがまだあるなら続けて表示するとかかなぁ?

 

 これPDFスライドショーのアプリではどの部分の処理です・・って解説を入れてくれないと全然イメージ湧かんわ

 

 いや、これもっと詳しく聞かないと分からんね。でも別に今アンドロイドアプリ作りを学習しようと思ってるわけでもないからなぁ・・何と言うか全体の流れを知りたいんだよなぁ

 

 まあ、これは分かる

 

 Uriの意味がようやく分かったな。PdfRendererは作法として覚えるしか無いか。Elvis演算子良いじゃないか。例外処理、なるほどね。Goだと常にIFでErrが起きるかをチェックしてるけど、Kotlinだと同じスコープの中で処理する感じ・・って、そもそもRacketだとこっちだったのでGoのErr処理は面倒だと違和感があったんだな、と今更気付いた

 

 前から出てるけどpdrRenderer?.openPage(index)?.let { ... 条件の後にラムダ実行というのはなんとなく分かるけど、?. ... ?.ってどういうことだろうか。pdfRederer?時点でNullかチェックしてるのか、下位のメソッド(?)のNullチェックをする場合にはこのように記述するのか?

 後はPDF表示の作法っぽいのでスルーで

 

 秒数の入力、メソッド名からすると文字列扱いっぽいが?

 Runnnableはやっぱり型ってことだろうけど解説が欲しいところ。もっと基本的なところでなんでRunnnableを遅延実行しないといかんのか?Goの例は分かりやすい、って言うか、そういうタイマーを使ってそういうテクニックがあるのか!って驚き。

 匿名オブジェクト、なんで匿名じゃないと駄目なのか?

 

 さっきからthisとかitとか代名詞が出てるけどこれも聞かないとなぁ

 

 終了処理って事ですか。まあ、これは良いかな

 

 非Null断言がよく分からん、何のために?

 スコープ関数については詳しく聞いてみよう

 

 GPTからの駄目出し。そうするって言うとGPTの方がコーディング性能は高いのか?1も2もアドバイスを聞いておいたほうが良いだろうな

 

 3はもっと詳しい説明を聞かないと謎・・スリープってもしかして画面の消灯を防ぐって事かねぇ?Runnableもスリープ回避のためのものだったとか?

 5についても質問せねば。非同期処理を導入するとどうなる?今でも普通にスタートとストップは機能してるが?

 6の理由も知りたい。というか非Null断言って何なんだ?

 って感じで結構ボコボコにされてるなAntigravity

 

 おお、こういうのを求めていた!知ってる言語で擬似コードを書いてもらうってアリやな・・Ticker+Goroutineって事は決まったタイミングで非同期の並列処理(PDF再生中や切り替え中にStartとかStopの処理)を可能にするってことか?

 

 Coroutineを活用するのが現代的ってのは気になるな・・

 

 ってことで、次回は今回湧いた質問をぶつけてみよう!