2021年09月20日

3番ショート紅林19歳!

 バファローズ、正念場ですねえ。正直、マリーンズに追いつくのは難しいんじゃないかな。負け数が6も多いからね……なんとかAクラスは確保したい。

20210920-1.jpg

 しかし、故障離脱中の吉田正尚の代役に紅林とは驚いた。本人も驚いたそうです。2割1分のバッターですからねえ。でも、3番に抜擢されてから4試合で、15打数4安打5打点、本塁打2本。打率も上げてるけど、5打点が立派ですよ。中嶋監督の眼力はすごいな。

 9/16から3番に座ってるけど、あれですかね、前日イーグルス戦の9回2死、7点ビハインドの場面で、17球鬼粘りした執念が買われたのかな。なんとか一矢報いようとする姿勢がすごいよね。19歳だよ?

20210920-2.jpg

 Tは帰ってきたけど(昨日の中嶋監督の「Tよくやった!いつもやってくれ!」は笑った。まったくその通りだ)、ジョーンズはいなくなっちゃったし、苦しい戦いが続きますね。最後まで走りきってください。応援していますよ。

タグ:野球
Posted at 2021年09月20日 20:18:38

2021年09月16日

Raspberry Pi Desktop for PC で LuaAppMaker をビルドする

 Raspberry Pi Desktop for PC で、LuaAppMaker をビルドしました。いろいろ未完成だけど、一応できた。

20210915-2.jpg

 まず、wxWidgets をビルドする。なるべく新しい方がよかろう、ということで、この機会に 3.1.5 に上げました。Mac 版は 10.11 以降のみ対応となります。10.6〜10.10 のために、3.0.3 を使った Legacy バージョンも作ります。以下、Raspberry Pi Desktop for PC でのビルド。

$ cd path/to/wxWidgets-3.1.5
$ sudo apt install libgtk-3-dev  #  gtk3 のビルド用
$ sudo apt install freeglut-dev  #  OpenGL に必要
$ sudo apt install libwebkit2gtk-4.0-dev  #  wxWebView に必要
$ export BASEDIR=$PWD
$ mkdir build-debian; cd build-debian
$ ../configure --disable-shared --enable-monolithic --prefix=$BASEDIR/build-debian | tee configure.log
$ make | tee make.log
$ make install

 できました。build-debian/lib 以下にライブラリが入っている。

 LuaJIT-2.1.0-beta3 のビルドは、特に問題はなかった。ただし、デバッグ中に判明した問題点として、エラーメッセージの中にマルチバイト文字(ファイル名など)が入っているとき、短縮して不正な文字列になるケースがあったので、パッチを当てる必要があった。これは Mac でも Windows でも当てはまる問題なので、見つかってよかった。

--- lj_debug_orig.c	2021-09-03 23:09:40.000000000 +0900
+++ lj_debug.c	2021-09-03 23:55:57.000000000 +0900
@@ -327,6 +327,7 @@
     src++;  /* Skip the `@' */
     if (len >= LUA_IDSIZE) {
       src += len-(LUA_IDSIZE-4);  /* Get last part of file name. */
+      while (*src != 0 && (*src & 0xc0) == 0x80) src++; /* Skip UTF-8 non-boundary chars */
       *out++ = '.'; *out++ = '.'; *out++ = '.';
     }
     strcpy(out, src);
@@ -337,6 +338,7 @@
     strcpy(out, line == ~(BCLine)0 ? "[builtin:" : "[string \""); out += 9;
     if (src[len] != '%%%%% BODY %%%%%') {  /* Must truncate? */
       if (len > LUA_IDSIZE-15) len = LUA_IDSIZE-15;
+      while (len > 0 && (src[len] & 0xc0) == 0x80) len--; /* Skip UTF-8 non-boundary chars */
       strncpy(out, src, len); out += len;
       strcpy(out, "..."); out += 3;
     } else {

 LuaAppMaker のビルドは、リンクするライブラリを網羅するのに手間取った。wx-config --libs とやっても、なんか漏れがあるんだよね。あと、引っかかったのが、せっかく LuaJIT を自前でビルドしたのに、システムの libluajit-5.1 がリンクされてしまうこと。リンク時に -L で指定しても、実際に探すときはライブラリのロードパスを探してしまうので、うまくいかない。 -Wl,-rpath='$$ORIGIN/lib' を指定することで解決した。こうすると、実行ファイルのあるディレクトリ直下の "lib" をライブラリのサーチパスに加えてくれる。

 一応実行ファイルがビルドできた。ターミナルから起動すると実行できるんだけど、デスクトップでダブルクリックすると「共有ライブラリです」と言われる。なんで?

20210915-1.jpg

 イマドキの Linux アプリは AppImage という形式にするのがよさそう。ライブラリの依存関係も全部込みで、実行形式のファイル1個で、いろいろなディストリビューションに対応しているらしい。次はこれにチャレンジだな。

20210915-3.jpg

Posted at 2021年09月16日 00:06:01

2021年09月04日

VMWare に Raspberry Pi Desktop for PC を入れた

 LuaAppMaker の Linux 対応にそろそろ挑戦しようと思った。最初は Debian でやり始めたんだけど、どうせならラズパイへの移行も見据えて、Raspberry Pi Desktop for PC を入れることにしました。

20210904-1.jpg

 まず、VMWare をアップグレードする。今まで使っていたのは VMWare 8 で、これは Linux とのファイル共有に難があった。一気に VMWare 11 に上げました。最新版は VMWare 12 で、これは個人利用だと無料なんだけど、うちの Mac は 10.14 なので、動作要件を満たさないのです。仕方がないので、VMWare 12 の有償版を購入して、そのライセンスキーで VMWare 11 をアクティベートしました(このやり方のダウングレードは公式に認められています)。ちょっと高かったけど、VMWare はよく仕事してくれてるんで、これぐらいの投資は必要です。

20210904-2.jpg

 インストール手順は下の通り。簡単です。

  • VMWare Fusion で、新規仮想マシンを作成
  • Debian 10.x (64ビットじゃない方)を選ぶ
  • ダウンロードしたディスクイメージを選んで実行
  • "Graphical Install" を選ぶ。

 まずは ssh を生かす。「Raspberry Pi の設定」にある。ただ、今のところあまり使わないで済んでいる。同じパソコン上なので、VMWare に切り替えて直接 xterm 叩いた方が早い。

20210904-3.jpg

 IP アドレス(172.16.62.XXX)を固定する。これを設定する前は sudo がいちいち遅かったのだが、この設定を行うと解消された。

$ sudo nano /etc/dhcpcd.conf
...
interface wlan0
static ip_address=172.16.62.134/24
static routers=172.16.62.2                # 1じゃなくて2。172.16.62.1 は Mac を表す
static domain_name_servers=172.16.62.2    # 同上

 パッケージ情報をアップデートして、open-vm-tools をインストールする。これは VMWare Tools の代わりで、公式にこちらの方が推奨されている。インストールした後は、念のために再起動する。

$ sudo apt update
# 何度か確認を要求されるが、すべて y と答える。
# 257 個のパッケージがアップグレード可能な模様。全部アップグレードしておく。
$ sudo apt upgrade
$ sudo apt install open-vm-tools
$ sudo apt install open-vm-tools-desktop

 共有フォルダを設定する。

20210904-4.jpg

 /mnt/hgfs 以下にマウントされる。(見えない場合は、ログアウト→ログインすると見える。)

20210904-5.jpg

 けっこうさくさく動くので、わりと快適。Linux 系のデスクトップも、ずいぶん良くなりましたよねえ。

 さて、wxWidgets は入ってるんかい?

$ ls /usr/lib | grep wx
(何も出力されず)
ls /usr/lib/i386-linux-gnu/ | grep wx
(何も出力されず)

 デフォルトでは入ってない。パッケージには 3.0.4 がありますね。

$ apt search wxwidgets
ソート中... 完了
全文検索... 完了  
...(中略)...
libwxbase3.0-0v5/oldstable 3.0.4+dfsg-8 i386
  wxBase library (runtime) - non-GUI support classes of wxWidgets toolkit

libwxbase3.0-dev/oldstable 3.0.4+dfsg-8 i386
  wxBase library (development) - non-GUI support classes of wxWidgets toolkit

libwxgtk-media3.0-0v5/oldstable 3.0.4+dfsg-8 i386
  wxWidgets Cross-platform C++ GUI toolkit (GTK+ media library runtime)
...(後略)...

 しかし、apt get ... が必須なのは、使う側からすると面倒なのです。LuaAppMaker はなるべく単独のアプリとして配布したいので、Mac や Windows の時と同じように、自前でビルドして静的リンクする、というのが良さそう。というわけで、次は wxWidgets のビルドからだな。(つづく?)

Posted at 2021年09月04日 22:39:19
email.png