算数:九九からやり直し

小学生の頃、引き算の繰り下がりが理解できずに挫折して以来、数字、算数はほんと駄目でそのまま駄目な爺さんになってしまった。
あらためて、九九もまともに覚えてないことを痛感。
2x3が6、7x8 56
みたいに、小さい数字に大きい数字を掛けるのは問題ない。
だけど9x7 63とか8x6 48
みたいに、大きい数字に小さい数字を掛けるのがまるでダメ。頭の中で式を置き換えてる。
→9x7だったら7x9に置き換え
たしか大昔の子供の頃に
「どっちでも一緒なんやから先のやつだけ覚えたらええやん」
と舐めたことを思いついて得意になった記憶あるのが困ったもんだ
てことで、九九で暗記が怪しいところをランダム表示させるページを作った(ローカルで表示させればいいので、Javascriptでやっつけた)

いちおう、答えは伏せて表示していて、やっぱり大きい数字が最初にあると「えーっと」が生じる…。
というのが今回のエントリ。
なんでまた九九の暗記?というのはポケモンGOの対人戦なんだけど。
ポケモンGOの対人戦をもう6年ぐらいやってるのに相変わらず初心者レベル。
もう少し勝つためには「ゲージ管理」をする必要がある。
ポケモンGOの対人戦は
「通常技」と「特別技」の2種類あって、「通常技」を何度か打つとゲージがたまって「特別技」を撃てるようになる。
「通常技」は種類ごとで1回の攻撃でゲージがいくつ貯まるかが違うし、「特別技」が撃てるゲージ量は技ごとで違う。
ゲージ量40で撃てる特別技、ゲージが7貯まる通常技をいくつ撃ったら特別技が撃てるようになるのか?
7x6 42
てことで、6回通常技が飛んできたら、相手の特別技はいつでも飛んでくる、という九九の暗算が求められる。
逆に6回までは特別技が飛んでこないんだから、こちらとしても通常技を撃って少しでもゲージ量を貯めてこちらも特別技を撃てるようにしておきたい。
相手の通常技の回数とその増加ゲージ量、特別技が必要とするゲージ量を計算しないといけない。
対人戦は忙しい。えーっと、8の技が5回だから相手はゲージが40貯まってる。という九九。
8x5は…えっと5x8、に置き換えてるヒマなんかない。

ボケ防止にもなるだろうとポケモンGOの対人戦をやっていて、まさか九九もまともに暗記してないことに気づかされるとは。
LAN内の別PCからWSLにログイン

やりたいこと
LAN内のPC間でrsyncを使ってファイルの同期
前提として
WINDOWS PCはLAN内の別PCからport番号10022でsshアクセスされることにする(port番号はWSLの他サービスで使わない番号ならなんでもOK)
・10022を受けつけるようにFIREWALLを設定する
・10022へのアクセスをWSLの10022に転送する
大雑把に
→WINDOWS PCのLANでのIPアドレス(192.168.XX.XXX)が外からの玄関
→仮想環境のWSLは仮の?IPアドレス(172.XXX.XXX.XXX)が中での窓口
玄関から奥にある客間に案内するためにfirewallやport forwardを設定する。
玄関に来た客がポート番号10022を指定してたら、WSLの窓口に10022でご案内するみたいな…わかったようなわからないような例えですみません。
準備するのは以下
WINDOWS側
・Firewallの設定
・port転送の設定
↑WINDOWSで、Powershellで設定
WSL側
・sshdの設定と起動
↑WSL、ubuntuでの設定
【Firewallの設定】WINDOWS側
適当なディレクトリにpowershellのシェルスクリプトを書く。
$port=10022;
port番号は「10022」
まずは以前設定していたかもしれないfirewallのルールを削除
iex "Remove-NetFireWallRule -DisplayName ’WSL 2 Firewall Unlock’ ";
最初は設定もなにもないところを削除しようとするのでエラー表示されるけど、無視して大丈夫。
iex "New-NetFireWallRule -DisplayName ’WSL 2 Firewall Unlock’ -Direction Outbound -LocalPort $port -Action Allow -Protocol TCP";
iex "New-NetFireWallRule -DisplayName ’WSL 2 Firewall Unlock’ -Direction Inbound -LocalPort $port -Action Allow -Protocol TCP";
これは呪文。外向け(outbound)内向け(inbound)の通信を許可する。たぶん、DisyplayNameを揃えておけば大丈夫じゃないかな。
【port転送の設定】WINDOWS側
port転送するためにはWSLに割り振られたIPアドレスを知る必要がある。
$wslip = (wsl -e hostname -I).trimend()
hostname -I
だけだとケツに空白がついてるっぽいのでtrimendする。これで「$wslip」にWSLのIPアドレス(172.XXX.XXX.XXX)が入る。
これでまずは以前設定していたかもしれないport転送設定を削除
iex "netsh interface portproxy delete v4tov4
listenaddress=* listenport=$port"
これも設定されてない時点だと「見つからない」というエラーが出るけど問題はないっぽい。
削除したら改めてポート転送の設定をする
iex "netsh interface portproxy add v4tov4
listenaddress=* listenport=$port
connectaddress=${wslip} connectport=$port";
listenで監視するアドレスとポートを指定。connectで接続するアドレスとポートを指定。
iex "netsh interface portproxy show all";
で、設定したものを確認する
Address Port Address Port
* 10022 ********** 10022
以上をまとめたものをシェルスクリプトとして保存。
実行する時は管理者権限が必要。
【sshdの設定と起動】WSL側
WSL側というかubuntuでsshdの設定。やることは2つ。
1)
opensslのインストール
sudo apt install openssl
↑これでインストールすればOK
/etc/ssh/sshd_config
という設定ファイルを編集更新。
Port 22
→10022
最初の行にあるport番号を、転送されてくる「10022」番に変更すればOK。
2)
WSLのubuntuの初期状態だと systemd が動いていない(今日時点)のでsystemctlを使えるようにする。
/etc/wsl.conf
というファイルを作って以下を記載する
[boot]
systemctl=ture
systemdを起動させる。この設定(ファイルを配置)をしたらWSLの再起動が必要。
以上で設定は終了。sshを起動する
sudo sytemctl enable ssh
sudo sytemctl restart ssh
これでsshサービスは起動する…本当にちゃんと起動してるか確認
sudo service ssh status
「Active」の項目が「active(running)」になっていれば大丈夫。
以上で準備は整ったはずなので、別PCでWINDOWS PCのWSLにアクセスしてみる。
sftp -P 10022 USERNAME@192.168.XX.XXX
ポート番号を指定してアクセスして、WSLのユーザー名でログインできればOK。
ちなみに、WSLではなくて、WINDOWSにsshでログインしたり、sftpでファイル転送するならWINDOWSのOpenSSLサーバサービスを起動するだけでok。
「wsl2 で立てたサーバーにローカルネットワーク内の他の端末からアクセスする」
https://qiita.com/kentomo1002/items/82234030e712c44c2e40
↑こちらのページにすべてがあります(多謝)

今日この頃のクソ暑さ対策としては、きちんと良い睡眠をとる、のが一番らしい。ということは。
・寝酒、夜に酒を飲むとアルコール分解の負荷が質の良い睡眠を妨げるので、夜に酒を飲んではいけない
・となると、昼酒が暑さ対策の最適解となる
今西清兵衛商店の春鹿シリーズはどれも大好き!
GBLシーズン「楽しい日々」でACE到達

どうにか今日、GOバトルリーグでACEに到達。
何度も同じことを書いちゃうけども。
ACEという称号はビギナーレベル。ある程度GOバトルリーグで強いと言われるポケモンを育成して、GOバトルリーグで対人戦を続けてれば誰でも届く。
んだけど、毎シーズンごとに、これが厳しくなってる…ような気がする。
もしかするとGOバトルリーグの人気はそれほどでもなくて、新規参入=新人さんが減ってきていて、いま、GOバトルリーグをやってるようなユーザーは知識もスキルもみんなそれなりにレベルが上がってきている説。
今期もACE到達に七転八倒の右往左往だった。
ランク戦の終了時点で出た初期レートが1758と過去最低レベル。そこからレート戦が始まる。
1758のレートに見合うお相手と対戦して勝ったり負けたりを記録して、勝率が5割を超えるようになるとレートが上がってまたそのレート帯での勝ったり負けたり、となる。勝率が5割に満たなければ当然またレートが下がる。
の、繰り返し。
数をこなしていけば、それなりの「適正レート」というヤツに落ち着くのがレート戦でのマッチング。
これまでは、レートの上下でいちいち一喜一憂してたんだけど、この「適正レート」という言葉でなんかちょっと悟った、ような気がした。
いまの自分のレベルで遊ぶのにちょうど良い加減のところ、ってこと。お相手のレベルと自分のレベルが同じようなところにいて、同じもの同士でやってて楽しいからきっといいんだろうなぁ。

ポケモンGOは今年でまる9年。これだけ続けていて飽きないんだからびっくり。
linux mintのローカル環境でApache2

Mac miniのlinux mint環境にApache2を設定したのでメモ。
2005年ぐらいに同じようなエントリを何度か書いていて、さらに最近だと2022年頃にも書いている…設定まわりはほんと覚えてないので、くどいけど書き残しておこう。
Apache2のインストールは簡単
$ sudo apt install apache2
↑これだけ。
設定がディストリビューションで微妙に違ってたり、そもそも時代も違っていて昔のうろ覚えが通用しない。毎度毎度グーグル先生。
設定ファイルは
「/etc/apache2/」以下にある。
・apache2.conf
サイトを展開するディレクトリの指定
170行目あたりに指定されているで自分のサイトを追加設定。
___LT___Directory /home/t2akii/doncha.net/___GT___
Options -Indexes +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi .pl
AllowOverride None
Require all granted
___LT___/Directory___GT___
基本、どれも呪文だけど
CGIを使うので
「+ExecCGI」
「AddHandler cgi-script .cgi .pl」
を追加。
・sites-available/000-default.conf
WEBサイトの設定ファイル
ServerName doncha.net
ServerAdmin t2akii@doncha.net
DocumentRoot /home/t2akii/doncha.net
VirtualHostの受付portはデフォルトの80のまま。
・sites-available/default-ssl.conf
SSL接続のための設定ファイル
ServerName doncha.net
ServerAdmin t2akii@doncha.net
DocumentRoot /home/t2akii/doncha.net
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
VirtualHostの受付portはデフォルトの443のまま。
SSLCertificateFileとSSLCertificateKeyFileの2行はデフォルト設定されているものをコメントアウトして自分で作ったSSLの自己認証のキーの場所をここに入れる。自己認証証明書の作り方は以下。
opensslが必要なのでインストールする
$ sudo apt install openssl
秘密鍵と自己署名証明書を作成する
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
-keyout /etc/ssl/private/apache-selfsigned.key
-out /etc/ssl/certs/apache-selfsigned.crt
コマンドを叩くと以下の質問が出てくるのでテキトーに入力する。
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:local
Locality Name (eg, city) []:Tokyo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Free
Organizational Unit Name (eg, section) []:Free
Common Name (eg, YOUR name) []:doncha.net
Email Address []:
自分だけしか使わないので、ここは何でもOK
以下のディレクトリにキーファイルが作られる。
/etc/ssl/private/apache-selfsigned.key
→秘密鍵
/etc/ssl/certs/apache-selfsigned.crt
→証明書
*-available/にある設定を本番に反映させるために*-enable/にシンボリックリンクを作成する。
available ←用意してある設定
enable ←反映して生きてる設定
上記したサイト設定のためのふたつの設定ファイル
000-default.confとdefaut-ssl.confをリンク
SSLとCGIを使えるようにするためのモジュールを本番反映用のディレクトリにリンクする必要がある。
mods-available/にある以下のファイルをmods-enable/にリンク
cgi.load
socache_shmcb.load
ssl.conf
ssl.load
デフォルトで使うならこれでOK
わたしの場合、サイトを展開するのが自分のHOME以下なので、Apacheには閲覧したりCGIを走らせる権限がなくて403エラーとなる。
・envvars
apache2.confで使う変数を定義したファイル。
export APACHE_RUN_USER=t2akii
export APACHE_RUN_GROUP=t2akii
デフォルトではApacheは「www-data」というユーザー、グループで実行されることになってるので、ここを自分のユーザー名に変更する。
設定ファイルを編集更新して、各種設定ファイルを本番反映するためのディレクトリにリンクしたらApacheを再起動。
$ sudo systemctrl restart apache2
再起動でエラーが出たら設定ファイルの記述ミス。エラーメッセージが具体的で丁寧なので、メッセージを確認して対応。
ブラウザでlocalhostにアクセス。

平成の頃のPCゲーマー御用達、片手で操作できるトラックボール。
飲み食いしながらでもゲームができる逸品。
10年以上前のMac miniをlinuxで復活

ずっと塩漬けになっていたMac mini Mid 2011にlinux mintをインストールしたのでメモ。
もう10年ぐらい立ち上げてなかったし、仕事のデータなんかはバックアップ済み。Macの環境を残す意味もないんで、Mac環境は削除してlinuxとして使う、という前提。
・インストール用のUSBメモリを作成
・USBメモリから起動
・インストール
・用意するもの
インストール用のUSBメモリ(テキトーに8GのUSBメモリ)
USBキーボードとマウス(念のため有線のUSBキーボードとマウス)
…久しぶりのOSのインストールだし、対象が10年以上前のIntel Macだし、インストールできず失敗して鉄の箱になってもしょうがないか、ぐらいだったのに、やってみたらびっくりするほど簡単だった。
・linuxのインストールイメージをUSBメモリに焼くためのツールをダウンロード
「balenaEtcher」
Mac版もあるけど、Mac mini Mid 2011だとOSが古くて対応していない。
ということでWINDOWS11でUSBメモリ作成
・インストールするlinuxのダウンロード
「linux mint」
軽いと評判のlinux mintのXfce Edition版にした。最新バージョンの22.1をダウンロード
8GのUSBメモリをフォーマットして、Etcherを立ち上げてメニュー通りにポチっとやってインストール用USBを作成。少し時間がかかる。
・USBメモリをMacに挿して起動
1)WINDOWS用キーボードなので「ALT」を押しながら電源ボタンをポチる。
2)起動メディアを選択する画面で、EFI Boot(USBメモリ)を指定して起動。
(EFIがふたつ表示されたけど、デフォルトっぽい最初のものを選択した)
3)linuxの起動メニューが表示される
4)デフォルトっぽい一番上を選択して起動
しばらくするとlinux mintが立ち上がる。あっさりさくっと何の問題もなくあっけないぐらい。
画面左上にインストールするというアイコンがあるので、インストールを始める。
出てくる選択肢には
・日本語
・キーボードはJapanese
・マルチメディアコーデックあり
・「ディスクを削除してLinux Mintをインストール」
・地域はTokyo
・名前やユーザー名は念のため英数字
・パスワードはテキトー
※パスワードは、sudoなど認証が必要な場面でしょっちゅう聞かれて入力することになる。おもてに持ち出して使うならともかく、ウチのLANで使う程度なら短いパスワードの方がなにかとラクだと思う。
以上で進んでインストールが始まる。10分ぐらいだったと思う。
インストール終了のポップアップが出たら「再起動」する。
USBは挿したままにしておく。
インストール直後のデフォルト状態だとWiFiを認識していないのでWiFiのドライバが必要。
最初に表示されている「ようこそ画面」で「ドライバーマネージャー」を選択
BroadcomのWifiドライバを有効にして再起動するとWiFiを認識してネットワークに繋がった。
以上でインストール完了。
インストールが終わったら初期設定
「ようこそ画面」で「アップデートマネージャー」を選択して、とりあえず表示されているものはすべてアップデートしておく。
ターミナルを立ち上げてDebian linuxのお約束、aptを使ってupgrade各種とソフトのインストール
「chromeOSのlinux環境を再設定」
https://t2aki.doncha.net/?id=1711605506
細かい設定なんかまだいじってないのでこれから。
Bluetoothキーボードの接続が面倒くさい、というか、起動時のパスワード入力時点で接続されないっぽいんで、起動時だけはいちいちUSBのキーボードを使うことになる…ほんとかなあ(要調査)
[2025/06/18 07:21:38] 追記
嘘だった。起動して、Bluetoothキーボード側の電源を入れたら当たり前のように接続&認識してパスワード入力ができた。
とはいえ、一度「bluetooth接続〜ペアリング〜信頼する」で登録?しないと駄目なんだろうな。
aptでopen sshをインストールした。
普段使いのChromeOSのlinux開発環境にあるスクリプトやデータなどのファイルをrsyncでまとめてコピー。
当たり前の話、linux開発環境で使ってるものはlinux mintでそのまま動く。
もう大昔とか言われちゃうんだろうけど。
PC UNIXをFreeBSD-2〜4ぐらいまで使ってた頃、XFree86とウィンドウマネージャーやデスクトップ環境で日本語を使うのに苦労させられたし、動作も不安定だった。
それが21世紀のOSは全然問題がなくて、ただただ驚き。
これが10年以上前の古いMacで動いてるいうことにもまた驚き。
未来にきちゃったなあ。

「古い機種を活用する!! MacにLinux をインストール」
https://www.maclab.tokyo/document/linuxmint_install/5385/
↑スクリーンショットつきで丁寧な解説なのでオススメ
「SSHサーバーが動かない」
https://note.com/matsui192/n/n7fa0b841642a
↑同じ現象でハマって、この記事で助かりました
「Mac mini Mid 2011」
https://support.apple.com/ja-jp/112007
インストールしたMacの仕様詳細

