2026/02/23(月) [n年前の日記]
#1 [ruby] libuiとglimmer-dsl-libuiをRuby 3.4.8 x64にインストール
せっかく Windows11 x64 25H2上に Ruby 3.4.8 x64 (RubyInstaller版) をインストールしたので、各ライブラリの動作確認中。
◎ libuiをインストール :
RubyでGUIアプリを作れるライブラリ、libui をインストールしてみた。.dll が同梱されているので gem install 時にビルド処理をせず、すぐ使える。らしい。
_kojix2/LibUI: A portable GUI library for Ruby
_libui | RubyGems.org | コミュニティのgemホスティングサービス
インストールは以下。
examples/ 内のほとんどはすんなり動いてくれた。ただ、以下のスクリプトは正常動作しなかった。
Ruby 32bit版で試した時は .dll の差し替えが必要だったけれど、Ruby 64bit版ならすんなり動いてくれるっぽい。
_kojix2/LibUI: A portable GUI library for Ruby
_libui | RubyGems.org | コミュニティのgemホスティングサービス
インストールは以下。
gem install libui
> gem list | grep libui glimmer-dsl-libui (0.13.1) libui (0.2.0 x64-mingw-ucrt)
examples/ 内のほとんどはすんなり動いてくれた。ただ、以下のスクリプトは正常動作しなかった。
- basic_table_image.rb は何も表示されなかった。
- spectrum.rb は ffi-portaudio が cannot load such file とエラーが出た。
- turing_pattern.rb は numo/narray が cannot load such file とエラーが出た。
Ruby 32bit版で試した時は .dll の差し替えが必要だったけれど、Ruby 64bit版ならすんなり動いてくれるっぽい。
◎ glimmer-dsl-libuiをRuby 3.4.8 x64にインストール :
Windows11 x64 25H2 + Ruby 3.4.8 x64上で glimmer-dsl-libui をインストールしてみた。RubyでGUIアプリを作成できる libui を更に使いやすくしてくれるライブラリらしい。
_glimmer-dsl-libui | RubyGems.org | コミュニティのgemホスティングサービス
_AndyObtiva/glimmer-dsl-libui: Glimmer DSL for LibUI
githubのリポジトリを git clone で入手して examples/ 以下でそれぞれ実行してみたら色々と動作してくれた。
後で知ったけれど、そもそも以下を動かせばサンプルを選び放題だった…。
_glimmer-dsl-libui | RubyGems.org | コミュニティのgemホスティングサービス
_AndyObtiva/glimmer-dsl-libui: Glimmer DSL for LibUI
gem install glimmer-dsl-libui
> gem list | grep glimmer-dsl-libui glimmer-dsl-libui (0.13.1)
githubのリポジトリを git clone で入手して examples/ 以下でそれぞれ実行してみたら色々と動作してくれた。
git clone https://github.com/AndyObtiva/glimmer-dsl-libui.git cd examples ruby basic_area.rb
後で知ったけれど、そもそも以下を動かせばサンプルを選び放題だった…。
glimmer examples
◎ 利用してるlibuiのバージョンについて :
2026/02/23現在、libuiの現行バージョンは 0.2.0 だけど、glimmer-dsl-libui が要求する libui は 0.1.2 だった。
libui 0.2.0 だけがインストールされてる状態では、glimmer-dsl-libui はエラーを出して動作しなかった。
> gem install glimmer-dsl-libui Fetching libui-0.1.2-x64-mingw.gem Successfully installed libui-0.1.2-x64-mingw Successfully installed glimmer-dsl-libui-0.13.1 Parsing documentation for libui-0.1.2-x64-mingw Installing ri documentation for libui-0.1.2-x64-mingw Parsing documentation for glimmer-dsl-libui-0.13.1 Done installing documentation for libui, glimmer-dsl-libui after 3 seconds 2 gems installed > gem list | grep libui glimmer-dsl-libui (0.13.1) libui (0.2.0 x64-mingw-ucrt, 0.1.2 x64-mingw)
libui 0.2.0 だけがインストールされてる状態では、glimmer-dsl-libui はエラーを出して動作しなかった。
◎ exe化は難ありかもしれない :
glimmer-dsl-libui 関連ページを眺めていたら、おそらくは作者さんが「パッケージングまで視野に入れているなら glimmer-dsl-libui はおススメしない。その場合は glimmer-dsl-SWT がおススメ」と言及していた…。
_AndyObtiva/glimmer-dsl-swt
JRuby上で使えるGUIライブラリだろうか。JavaのSWTを呼び出して使えるのかな…。
glimmer-dsl-libui は動作に必要なファイル群が既にインストールされてる状況で使うことを想定して作ってる、との言及もどこかで目にしたような…。つまりexe化して利用することは想定外ということかもしれない…。
_AndyObtiva/glimmer-dsl-swt
JRuby上で使えるGUIライブラリだろうか。JavaのSWTを呼び出して使えるのかな…。
glimmer-dsl-libui は動作に必要なファイル群が既にインストールされてる状況で使うことを想定して作ってる、との言及もどこかで目にしたような…。つまりexe化して利用することは想定外ということかもしれない…。
[ ツッコむ ]
#2 [ruby] 日付とRubyバージョンでファイル名を作って保存
Ruby の gem list を、日付とRUbyバージョンでファイル名を作ってテキスト保存するスクリプトをAI(Google Gemini)に作成してもらったのでメモ。
savegemlist.rb
このくらいのスクリプトならさっくり作成してもらえるなんて凄い時代になってきた…。しかも「コメントをつけて」とお願いすると細かく説明してくれる…。
savegemlist.rb
dnum = Time.now.strftime('%Y%m%d')
vnum = RUBY_VERSION.delete('.')
filename = "#{dnum}_Ruby#{vnum}.txt"
filename_nover = "#{dnum}_Ruby#{vnum}_no-versions.txt"
File.write(filename, `gem list`)
gem_list_clean = `gem list`.gsub(/\s\(.*\)/, "")
File.write(filename_nover, gem_list_clean)
puts "Save : #{filename}"
puts "Save : #{filename_nover}"
このくらいのスクリプトならさっくり作成してもらえるなんて凄い時代になってきた…。しかも「コメントをつけて」とお願いすると細かく説明してくれる…。
# 1. 現在の日付を「YYYYMMDD」形式(例:20260224)で取得して変数dnumに代入
dnum = Time.now.strftime('%Y%m%d')
# 2. 実行中のRubyのバージョン(例:3.2.1)から「.」を取り除き(例:321)、変数vnumに代入
vnum = RUBY_VERSION.delete('.')
# 3. 保存するファイル名を生成(例:20260224_Ruby321.txt)
filename = "#{dnum}_Ruby#{vnum}.txt"
# 4. バージョン番号を含まない保存用ファイル名を生成(例:20260224_Ruby321_no-versions.txt)
filename_nover = "#{dnum}_Ruby#{vnum}_no-versions.txt"
# 5. バッククォート「` `」でシェルコマンド `gem list` を実行し、
# その標準出力を filename に指定したファイルへ書き込む
File.write(filename, `gem list`)
# 6. `gem list` の結果から、正規表現を用いて「 (1.2.3)」のようなバージョン表記部分を
# 空文字に置換(削除)し、変数 gem_list_clean に代入
# ※ \s は空白、\(.*\) は括弧で囲まれた任意の文字列にマッチ
gem_list_clean = `gem list`.gsub(/\s\(.*\)/, "")
# 7. 加工したクリーンなリストを filename_nover に指定したファイルへ書き込む
File.write(filename_nover, gem_list_clean)
# 8. 完了メッセージをコンソールに表示
puts "Save : #{filename}"
puts "Save : #{filename_nover}"
[ ツッコむ ]
#3 [movie] 「この動画は再生できません THE MOVIE」を視聴
昨日BS12で放送されていた版を録画していたので視聴。実写映画。TVドラマの映画版。ホラー作品、いや、ミステリー作品だろうか…。探偵モノでもあるのだろうか…?
面白かった。TVドラマ版と変わらぬ安定したクオリティ。
BS12で日曜日にアニメ映画が放送されたすぐ後にTVドラマ版が放送されていて、たまたまチャンネルをそのままにしていたら設定や脚本の優秀さに唸ってしまったわけで…。前半でネット配信動画やビデオ作品の類を流すのだけど、見ていて気付かない部分に実は奇妙なものがしっかり撮影されていて、後半で謎解きをしていく構成で…。「えー。そこにそんなものが映ってたんかい。これは気づかなかった…」と何度も驚かされたというか…。見るからに低予算っぽいのだけど脚本の上手さで見れてしまうシリーズだなと…。
映画版も基本的にはTVドラマ版と同様の構成で、 一見すると全く関係なさそうな各エピソードがラストに近づくにつれて一気に収束していく、その脚本の作りにこれまた唸ってしまった。しかも、 そこに映画への情熱があったが故に、という展開を映画作品の中で見せているわけで…。映画をテーマにした映画と言えば「ニュー・シネマ・パラダイス」あたりを思い出すのだけど、ああいった作品のベクトルを180度回してみせたような映画だなと…。
ところどころで出てくる映像編集業界事情っぽい話も聞いていて面白いけれど、デジタル撮影機器やスマホにまつわる技術的な話が事件に絡んでくるあたりは上手いなと…。携帯電話の登場で、もう脚本なんて書けないと言い出した脚本家さん達が居たらしいのだけど、そういう方々とは真逆に、現代のデジタル機器を上手に取り込んで話を作り上げていくその手管には感心することしきり。
主演の二人はお笑いコンビの方らしいのだけど、どこか抜けてる感じのやり取りがこれまたイイ感じで…。正真正銘のコントになってるというか…。
何にせよ、この作りは上手いなあと…。映画版も感心させられました。上手い。実に上手い。
書き忘れてた。 16:9と4:3を利用した謎には「これはやられた…」と…。アニメなどで過去回想を 4:3で流すシーンを目にして感心した記憶があるのだけど、まさかこんな使い方までできるとは…。この発想は無かった…。脱帽です…。
面白かった。TVドラマ版と変わらぬ安定したクオリティ。
BS12で日曜日にアニメ映画が放送されたすぐ後にTVドラマ版が放送されていて、たまたまチャンネルをそのままにしていたら設定や脚本の優秀さに唸ってしまったわけで…。前半でネット配信動画やビデオ作品の類を流すのだけど、見ていて気付かない部分に実は奇妙なものがしっかり撮影されていて、後半で謎解きをしていく構成で…。「えー。そこにそんなものが映ってたんかい。これは気づかなかった…」と何度も驚かされたというか…。見るからに低予算っぽいのだけど脚本の上手さで見れてしまうシリーズだなと…。
映画版も基本的にはTVドラマ版と同様の構成で、 一見すると全く関係なさそうな各エピソードがラストに近づくにつれて一気に収束していく、その脚本の作りにこれまた唸ってしまった。しかも、 そこに映画への情熱があったが故に、という展開を映画作品の中で見せているわけで…。映画をテーマにした映画と言えば「ニュー・シネマ・パラダイス」あたりを思い出すのだけど、ああいった作品のベクトルを180度回してみせたような映画だなと…。
ところどころで出てくる映像編集業界事情っぽい話も聞いていて面白いけれど、デジタル撮影機器やスマホにまつわる技術的な話が事件に絡んでくるあたりは上手いなと…。携帯電話の登場で、もう脚本なんて書けないと言い出した脚本家さん達が居たらしいのだけど、そういう方々とは真逆に、現代のデジタル機器を上手に取り込んで話を作り上げていくその手管には感心することしきり。
主演の二人はお笑いコンビの方らしいのだけど、どこか抜けてる感じのやり取りがこれまたイイ感じで…。正真正銘のコントになってるというか…。
何にせよ、この作りは上手いなあと…。映画版も感心させられました。上手い。実に上手い。
書き忘れてた。 16:9と4:3を利用した謎には「これはやられた…」と…。アニメなどで過去回想を 4:3で流すシーンを目にして感心した記憶があるのだけど、まさかこんな使い方までできるとは…。この発想は無かった…。脱帽です…。
[ ツッコむ ]
以上、1 日分です。