Zinnia hacks tomorrow. (2021/1)

2021/01/01 (Fri)


= こんにちわ

_ 本年もよろしくお願いいたします。

_ 2021年になって気付いたことがひとつあり、それは今はもう2021年であることは 分かっていて2021と入力したいんだけど、私の中にはまだ2020回路が残っており… というより単に日付けが変わっただけでその回路がなくなるわけがないので、 気付くと20201と入力している、という現象 (長い) だ。 2019年はもう終わっているのにすっかり忘れてて2019と入力しちゃったよ、 といったことではなくて、私は2021と入力したいんだよ、 でも気付いたら2020と入力していてその後に1が入力されているんだよ、という 感じで、これは初めての体験なので興奮を覚えつつ一生懸命書いているのだけど、 伝わる努力をしていないので熱量の行き場に困っている

_ …今日は寒いなー (天気の話)


_ 起床1時間くらい前からエアコンで余熱して、着脹れの準備が終わったら消す… としておけば日中はだいたい凌げていたのだけど、 今日は昼過ぎたあたりで冷気が染みこんでくる感じでつらい

_ 仕事にならんのでエアコンつけるか…


= 左足 13日目

_ 昨日は年内最後の買い出しでけっこう歩いた。家に戻ってくる頃には わりと痛みが復活していたので無理は禁物だ。昨日はお店もいろいろ混んでいて 入場制限がかかっていた。ただ買物を済ませて帰ろうとした際に 制限解除になっていたので単に一番混雑する時間帯に行っただけなのかもしれない

_ 今日もわりと痛いような気がする。


_ なんだか体調が悪くて足の痛み云々以前に集中できなんだ

_ ただエアコンのおかげで洗濯物がよく乾くのはよい


2021/01/02 (Sat)


= 左足 14日目

_ 痛みは大きく変わらず、室内ではよっぽど変な段差や、フトンなど柔らかいところを 踏まない限りは痛みがない。室内で使っているもこもこスリッパがよいのだろうか。 外で歩く際は普通に歩けば痛いままだが、10日前のように神経質に踵着地をしなくても 多少は許容範囲が広がっているので歩くときの負担はだいぶ減っている。 そして内出血も薄くなってきた。


= 今日のChromiumOS

_ 使いものになるかどうかはしばらく使いこんでみることで判断できるだろうとは 思いつつ、傍らにUbuntuが入っているdynabookがあるので身が入らない。 なんか工夫が必要だな…

_ 今更ながらChromiumOSのドキュメントを読みはじめた。 中で動くLinuxについてはRunning Custom Containers Under Chrome OSというドキュメントに記載があった。 Crostini というらしい。 以前はChromeOSでLinux動かすためにCroutonというのがあったようだが、それに かわるものらしい。

_ それにしてもChromiumOSで動くアプリケーションというのは どういう形をしているのだろうか?ということがよくわからない。 Linuxの中で動くものはそれでよいし、Webアプリもまあそれでよいだろう。 ChromiumOSではだめだけどChromeOSならAndroidアプリが動くのも分かる。 で、それ以外に なんかアプリの形はなんかないのだろうか… たとえばElectronみたいな仕組でローカルでアプリが入るとか?

_ High-Level Developer FAQによると Native Clientというのがあるらしい。 ってこれNaClのことか。

_ ローカルでアプリ作りたかったらDockerの中でWebサービス作ってそれをChromiumからアクセスさせるといった形になるのかな。 なんだかハードウェアに密着した話とか、OpenGLいじりたいとか、 そういった希望がなければもはやChromiumOSでいいんじゃないかという気持が より強くなるなあ〜あとはZFSさえ使えれば… みたいな発想をすぐにしてしまうので 本当にChromiumOSに私自身が合っているのかどうかと言われると大変に疑わしい。


2021/01/03 (Sun)

_ 気付けば冬休みも最終日か… 例年通り仕事しながらだらだらしたという 感じなのだけど例年より休みが短かかったような感覚。


= 左足15日目

_ とくに変化なし。室内にいる限りは痛いと感じることが減ってきたので、 それは喜ばしいことである一方、この手の怪我が途中で悪化する原因として 一番大きいのは油断なので、こういうときに気を抜いて またおかしなことになるわけにはいかない


_ 禍禍しいハードウェアならびにファームウェアが謎ポートを開いて 通信している様子なのでそれを見てみないと評価にならんなーという 気持になってきており、RasPiに無線LAN I/Fひとつ追加してNATで中継しつつ キャプチャ…ということをやろうとしている。しかし普段使いのRasPi3は SmartestHomeなどのために確保しているので、もうひとつ余らせている RasPi2を使ってみたい…と思ったのだが、不意に電源が落ちてしまうという 症状が解決していない。USB端子の追いハンダをしたりしたのだけど改善せずで ずっと放置していた機械だ。

_ もうひとつ買うか〜? と、考えながら改めて見てみるとRasPiって けっこう高いんだよな…これだけ楽しめるものが6〜7000円そこそこで買えるというのに 高いなどと言ってはバチが当たる気がするものの、特定の用途に特化した用事を させたいと考えるとぽんぽん買うのはためらわれるレベルだ。 ZeroWも決して安くないし…

_ やはりネットワークに関係する部分を活用したいと思うとLinuxのような OSが入っていてほしいわけなので、こういう小さいLinuxマシンというのは 他に選択肢がないものか…

_ まあRasPi4持ってないしこの機会に買ってもいいのかなー ZFSも いっぺん試してみたかったし、今の環境はいろいろいじりすぎたせいで 再現性がないので組み直すチャンスなのかもしれない。 しかしやっぱり高いなー(エンドレス)さすがにスターターキット的なものはいらないが、 本体とケースですでに1万近い金額になってしまう。 RasPi4Bレベルだともうパソコンと大差ない気がするので、もっと他の用途に 使わないと勿体ない…と考えてしまう。 そういえばChromiumOSって動くのかな? …どうやら動くらしい。まあ RasPiをChromiumOSで動かしてもたいして面白くないような気もするが…


= RasPi2B

_ もう1回追いハンダしてみたが変化なし。家にはフラックスもないので 細かいハンダの盛りなおしが難しいけど…

_ 以前は起動してしばらくすると…とか、何かケーブルに衝撃が加わると…みたいな タイミングで電源が落ちていたような気がするのだけど、 あらためて試してみるとPWRのLEDが数秒点灯した後にもう消えてしまっている感じだ。 その状態でたとえばmicroSDカードを抜き挿しなどしてみると隣のACTという LEDが点滅したりするので、まるで動いてないわけではないような気もするが、 なんだかこの挙動を見ると電源投入時のセルフチェックでもうだめなんじゃないかという 気がしないでもない。 Raspberry Pi Status LEDs Explained - Raspberry Pi Spyという サイトの記述によると電圧が規定の範囲にないと点滅するらしい。 以前は回路図が公開されていたような気がするが見当たらないな…

_ そういえば、昔のRasPiは基板に光が当たるとおかしくなっちゃうぅみたいな不具合が あったような気がする。…散々検索したところ「キセノン・デス・フラッシュ問題」という 通称らしい。カメラのストロボみたいな強い光のときの問題らしいので 今回は関係なさそう



= USBのWifiアダプタ

_ ↑の構築にあたりUSBのWifiアダプタが最低1つは必要なので買おうかなと 思っている。今となってはWifiはあたりまえのように内蔵されている機械が ほとんどなので、わざわざUSBのアダプタを買っても無駄に終わる気もしつつ、 家にあるRasPi Zeroに流用できないこともないので まあ1台くらいはあってもいいか…b/g/nなら1000円前後で買えるみたいだし…

_ しかしなんか昔に同じような機械を持っていたような記憶が微かにある。 R40eで無線LANをやる際に、CardBusのほかにはUSBを使うほかなかったので 1台買ったはずなのだ。たしかBuffaloの白いやつ… 記録を調べなおしてみたところ たしかに買っていたようだ。 今も家にあるなら再利用すれば無駄な出費がなくてよいのだが、 まあ今買いなおしても1000円そこそこなわけだし、15年近く前に買ったものを 必死になって探すというのもどうかという気がするのでひとつくらいは買っておくか…


= 知事からのメッセージ 令和2年12月28日 | 和歌山県

_ こういう文書が行政側から出てくるのを目撃したのは初めてなので驚いた。 よい内容だと思う。牽強附会・我田引水の傾向が皆無なのかどうかは分からんが、 そういうのは他の立場・視点からの地に足のついた評論が出てくればよいのだろう。

_ そしてここで示されているデータの中で、やはり中心的な位置を占めている 後ろ向きの追跡について、 これだけ徹底的な行動履歴の追跡を経ても 感染経路として「公共交通機関」が挙がっていないのが意外だった (G図)。 私自身は感染経路不明で終わっている追跡については、かなりの部分が 公共交通機関の利用に関係しているのではないかと勘繰っていたので、 経路が確定している部分について公共交通機関での感染が確定しているものが 1件もないというのは意外というほかなかった (「県外」に含まれている可能性はあるのかもしれんが)。 和歌山の公共交通機関の利用状況と、都心の状況が同じということはもちろん ないだろうが、別に和歌山に満員電車やバスがないわけではないはずだが… (私自身は和歌山には15年くらいに 1回訪れたきりなのだが)… 飲食店経由での感染の比率が少ないのも都内の 状況とはだいぶ異なるのか


2021/01/04 (Mon)

_ 1/2までは年末に買ったものや作ったものを食べたり飲んだりで過ごし、 冬休み最終日はあらためて買物に出たり…といってもコンビニとかだが、 そのあたりで 済ませた。妙に品揃えが悪かったのはちょうど補充前のタイミングで 来てしまったから? と思ったのだが、その数時間後に別の用事で再度コンビニに 行くことになった際に見てもやはり品揃えが悪い。

_ そして今日の晩に妻が仕事の帰りにスーパーに寄ったらそこの品揃えもとても 悪かったそうだ。年頭の動きで1都3県に緊急事態宣言が再度出るかもという 話になっていたのだが、早々と買占め?それにしても弁当や生鮮食品類を 買い占めるというのは直観に反する… 単に年明けで物流が滞っていたなどの 理由なのだろうか?いずれにしても気味の悪い話だ。


= Linux

_ 昨日の話のつづき。tp-linkのWifiアダプタ (TL-WN725N) を試しに買ってみた。 800円。最近のUbuntuではとくにドライバを入れなくても使えるらしい。 インターフェースが複数あるときの設定画面の癖に慣れるのに時間がかかった (そんなところに選択のためのボタンがあるの!?!?!?!的なやつ)。 そして解析対象の2つの機器の間をこの機械で中継させた。全部の通信が 通ったわけではない… のはネットワークの全貌が理解できていないからだろう。 今のところ片方のSource NATしかかけていない。いずれにしても一部の通信については キャプチャがとれるようになった。

_ 毎回設定を直したりサービスを起動しなおしたりが億劫だし、そもそもこの 禍禍しいハードウェアとファームウェアがセキュリティ的にガバガバなので LANにそのままの形で参加させたくない… なのでせっかくNATをかけるなら ついでにフィルタもかけるようにしてヘンな通信を遮断させたい…という気になってきた。

_ 試しにこのTL-WN725NをRasPi3Bにつなげたところ、普通にインターフェースが 生えてきたのでたぶん使えるんだろう。となるとこの禍禍しいセットの親になる ルータをこれで構築してしまおうかという気になってきた。


= iptables

_ これまでほとんど触ったことがなかったのだが折角の機会なので勉強して 自分で面倒が見られるようになることにした。

_ Linux iptables Pocket Reference という書籍がO'Reilly Online Learningで 読めた。コンパクトで分かりやすい本だった。古いカーネルが対象らしいが 今でも特に問題なく通用する部分ばかりのようだ。


= RasPi

_ RasPi4の最上位は8GBのメモリを搭載しているらしい。それはすごい… けど、 Raspberry Pi OS (Raspbianが改名したらしい) の 64bit版は未だに正式公開されていない。そう遠くない将来に出るのだろうけど

_ 8GBで64bitとなると、いよいよZFSが現実的なものになるのかもしれない。


2021/01/05 (Tue)

_ 入眠に失敗した。今日は寒いな…と思ったときにちょうど寝入る直前という 感じだったらしく、はっと気付いたら眠気が一気に覚めてしまった。 こういう目の覚めかたをするとそれっきり数時間は眠れないのでやむなく起きた。 もともと最近は睡眠のリズムが乱れがちで、3:00AMくらいにならないと 眠れないような生活になっていたので、やむなく起きたときにはもう5時前だった。 そのまま7時過ぎまで作業をして仮眠

_ 眠れなかったのでコンビニに買物に出たところとくに品揃えが極端に 悪いということもなく (よいわけでもない) 普通に買物ができた。 そして日中に別のところに買い出しに出た際も特に品揃えについて不審な 点は見当たらなかった。1/3〜1/4はいろいろ不幸な偶然が重なっただけなのかもしれない


= RasPi2B

_ 原因が分からないまま放置というのも気持のよいものではないし、せっかく 目が覚めてしまったので調べてみることにした。起動後3秒くらいするとPWRの LEDが消えてしまい、画面には何も出てこない…というのが症状だった。 USBの電源がPWRに直結しているらしいので、普通に電源が切れてしまっているの だろうか?もちろん画面には何も出てこない。それにしても microSDを抜き挿しするとACTのLEDが点滅するので電源が入っていないというわけでは ない気がする。

_ あれこれとっかえひっかえして、最終的に判明したのはHDMIのケーブルが 死んでいるということだった。つまりきちんと起動しているにもかかわらず 画面が出ていないだけだった………。なぜPWRが消灯していまうのかは よくわからん。ブート時の設定でそういうことになっているのかもしれない。

_ ともあれ普通に使えたのでセットアップをしてみた。最近はNOOBSではなく Raspberry PI ImagerというアプリでホストOS側でmicroSD側に初期インストールを してしまうという方式が第一選択になっているらしい。個人的にはこの手の ツールはあまり好きではない… 制御上または操作上の問題があってホストOS側を 潰してしまうようなことがあったらショック死してしまいかねない

_ なのでNOOBSで入れてみた。1時間ほどでインストールが終わった。とくに 途中で怪しく電源が落ちるといったこともなく、再起動→Updateと続いた。 Update中にマシンの様子を見てみる。…… RasPi2BにはビルトインのWifiはないんだったか…すっかり忘れていた。 ということはこれで目的を果たすにはもう1つUSB-Wifiアダプタが必要ということに

_ やっぱりRasPi4買うかなーなどと悩んでいたらUpdateが終わったので 再起動かけてみたところ起動しなかった。microSDの読み込みでとらぶっているらしく ブートの途中でファイルが読めない的なログがたくさん流れた末に止まった。 このmicroSDカードは買いおきのもので (Zinnia家はmicroSDカードとUSBメモリを 買いおきしておく習性がある)、とくに出所が怪しいものでもないのだが、 初期不良なのだろうか? いったい何年前に買ったものなのかもわからないので 今のこれを初期と呼ぶのはさすがの私でも躊躇するところがあるが

_ しょうがないので別の買いおきのmicroSDカードに切り替えて試すことにした。 今回はRaspberry PI Imagerを使ってみた。インストールそのものが 速くなったという感じはしない。現在Update中なのでこれで再起動後などに おかしなことにならなければいいのだが


= RasPi4B

_ 2Bで構築が終わるかどうかも分からないしさっさと手配してしまえばいいと 頭では分かっているのだけどどうもふんぎりがつかない。 2Bとか3B+を買った頃というのはどちらかというと安くて小さいARMマシンが 手に入ってしあわせという感じだった。その後GPIOであそんだりすることが 楽しいことに気付いて、Linuxが動きつつそういうこともできる RasPiはいいものだなあという思いを新たにしたわけだが、一方で4になると… ちょっとしっくりこないものを感じる。価格… は、高いと言ったらバチが 当たるのかもしれんが、それ以外では発熱と消費電力のでかさに違和感がある。 ヒートシンクや金属製ケースくらいならともかくファンが必要になってしまうのは もうRasPiらしくないという感じがしてしまう。

_ まあ下調べだけでもしておくか…と3以前との違いを確認した。 電源供給がUSB Type-Cになったのと、USB 3.0が使えるようになったのと、 HDMIがmicro端子になって、かつ2つになった、といったあたりが大きな違いらしい。 40pinの並びなどはとくに大きく変わらないようだ。


_ RasPi2Bでルータ兼ファイアウォールを作る話。TL-WN725Nをもう1つ買ってきた。 起動直後に電圧降下の警告が出ているがその後は出ていない。とはいえ 電源はもう少し工夫をしたほうがよさそうだ

_ で、設定をまとめながら試行錯誤してどうにかネットワークの設定を終えることが できた。Ubuntuでも経験したがネットワークの設定方法については時代が 進むにつれ大小さまざまな変化が起きているので、つまり今はどれなのかというのが 難しい。附属のドキュメントを第一に見れば分かるのかというと、 そんな気もするような、そうでもないような…

_ で現在は/etc/network/interfacesをいじらずにdhcpcdの方でどうにかするらしい。 /etc/network/interfaces にエントリがないと動かないコマンド類もあるんだが そういうもんだと諦めるほかないのだろうか。

_ そしてdhcpcdを中心にした場合、 wpa_supplicantの関係がいまいちよくわからない。どうもDbusが仲介しているようにも 見えるんだが… 症状としては、例えばMaking wpa_cli and wpa_supplicant Work With dbusなんてページの 記述に一致している。 そしてそれ以前に、今回買ったTL-WN725N (Ver 3.0) はデフォルトのドライバでは いろいろうまくないらしい。 TL-WN725N no joy on Buster - Raspberry Pi Forumsというエントリを参考に、 MrEngmanというひとが公開しているドライバを入れなおしたところ詰まっていたところが 解消された。2つあるIFのうち1つのIPがきちんとアサインされないなーと さらに悩んだが、単にIPアドレスが重複していただけだった

_ これでようやくNATやらフィルタやらの設定に入ることができる… が、今日は 睡眠不足でとても眠いのでこのくらいにしておこう…


2021/01/06 (Wed)

_ 今日はかなり寒い。そして妙にだるい


= RasPi

_ Wifi2つをひとつに見せかけたネットワークを作りたかった… そのときに使うのはNAT?VPN?bridge?と、経由してようやく Proxy ARPで十分であることに気付いた。どうせ相手1台しかないしな…

_ あとクロスケーブルが手元になかったので久しぶりに1本作った。 買うと高いしなあ〜


= ネットワークまわり

_ なおiptablesについてはIptables-tutorial : Frozentuxというドキュメントが大変によかった。

_ ネットワークまわりは決して苦手ではないのだが、 かといってすごく得意というわけでもなく、道具とその用途が きちんと整理できていないので無駄な試行錯誤が多い。 そして物事がうまく進んでいるか確認するためのスキルが不足しているので 無駄な時間を過ごすことも多い。大変によろしくない

_ このあたりをきちんと練習するのに適した環境はないもんかなあ〜 回路シミュレータみたいな、 こういうネットワークを作ってね、みたいな問題があって、機器にコマンドを 打ちこんでフムフム、みたいなやつ。たしかCiscoの勉強するひとが 使ってるSimulatorがあった気がするな…

_ GNS3EVE-NG、 あとはVIRL、Packet Tracerなんて名前が出てきた。 学習サイトとしてはping-tの名前が よく出てくる。 フリーのシミュレータの場合、 対象のネットワーク機器のエミュレーションをするにはファームウェアを入手する 必要があるとかで敷居が高い。 その分本当にシミュレーションしてくれるんだろうけども… もっとゆるふわなものは ないものか

_ 別に特定の機器に詳しくなりたいわけでもないのでVyOSあたりを入れてしまえば 済む話なのかな?

_ なんか作りかけだったり壊れていたりするプロジェクトがあって、これを完成 させましょうねみたいな問題集はないもんかな… GNS3はMarketplaceという アプライアンスを公開するためのサイトがあるようだ。


2021/01/07 (Thu)

_ 日中はあまり寒くなかったが朝晩は寒い


= 緊急事態宣言

_ 左足の経過を見てもらうために年明けに通院を予定していた。 年明け早々は混むからパス、週開けまでは湿布の在庫がもたないし、3連休明けは それはそれで混むだろうし… と考えると今週末かな、と思い描きつつ金曜を 待っていたところ緊急事態宣言が出てしまった。 4月以来2度目。

_ 都内の一日あたりの新規感染者数が過去最高を更新しつづけて、 年末に900人超えたと思ったらもう2400人になってしまったらしい。 新規感染者数、重症者数、Active case、いずれも過去最高なのに、 生活について気を遣う度合はあきらかに昨年の3〜5月と比べて劣っていると 我ながら思う。 これは私だけに起きている現象ではなく、今の新規感染者数増は 年末年始の休みの結果が出ているはずであり、帰省の自粛等を含めた呼びかけは あちこちから行われているにもかかわらず、それを3〜5月当時ほどまともに 受けとめていないということなのだと思う。 当時よりは分かってきたことがあって、それほど気を遣わなくて よくなった部分ももちろんあるんだろうけど、全体的に鈍感になっているというか 弛緩した反応が目立っている。

_ それにしてもいつかかってもおかしくないという 状況は継続しており、 一方で国内で感染を経験した人が20万人を超えた現在でも 身のまわりにほとんど感染者がいない状態なので、 「感染したこと」が 個人レベルで特定可能な時期に感染しないで済むかどうかというと、 まだそこまで身近なものではない。墨田区は都内でもかなり感染者が多い地域に 入るし、 先日挙げた特集でも墨東病院は COVID-19に関係する災害の最前線ともいえる場所らしいのだが、そういった 地域にいてもこんな感じなのか… という、規模に関する感覚のずれを感じる。

_ それはそれとして通院はどうしたものか (今日は19日目)。 もちろん通院は不要不急の外出ではないが、 あとは安静にして治るのを待つしかないのであれば、それは通院をしたところで 経過に大差があるわけではない…と思えてくる。 まあ、今後の経過のことを聞いておきたい気持はあるし、湿布も 補充が必要なので、最低あと1回は行かなければと思っているのだが、 年始早々、3連休明けと同程度に、緊急事態宣言の翌日の混雑具合も それなりではないかという気がする。


2021/01/08 (Fri)

_ 今日はとても寒い。寒さが身体に染みついてくる感じだ。 夜になって洗濯物を干すついでにエアコンをつけてみたところ、 あまりに寒いせいか、エアコンの強度がおかくなっているようだ。 冷房のときにも同様なことがあり、当時は外の気温が高いときは設定温度を 高くしてもやたら寒くされていたのに対し、今回は設定温度を低くしても やたら暖かくされている。設定温度は19度なのに、手元の温度計では26度まで 上がっている。普段は20度前後で安定するのだが


= 左足 20日目

_ 病院は結局行かずにしばらく様子見にした。湿布は、買いおきのもので 流用したりで何日かはこなせるだろうし。

_ 通院のために半休とっていたのだが行かないことにしたのでただの休みになった。 妙にだるくてめし喰ってすぐ寝たりしたらもう仕事の時間になってしまった。

_ 痛みについては、あまり減っていないような気もしつつ、しかし今までよりも 歩きかたはだいぶ保守的ではなくなっていることもあり、つまり無茶をして 痛いだけなのかもしれない。あと洗濯物を干している最中に柔らかいものの上に 左足を載せてしまい鋭い痛みが走った。こういうのを油断というのだろう


= Wifiのブリッジ

_ ProxyARPでとりあえず必要な通信はできるようになったのだけど、 ちょっと気に入らない点 (行きと戻りでルートが違う+戻りの多段NATがそれを 返してくれるのは偶然のような気がする、DHCPのリレーをしていないので もう1つ立てないといけない、など) があり、やはりちゃんとした ブリッジを作るかなあ〜という気になって試行錯誤した。 そして実はけっこう難しい話だったらしいと気付いた。 Manual:Wireless Station Modes - MikroTik Wikiとか、 Client Mode Wireless [Old OpenWrt Wiki]を読んで、 WifiのL2ブリッジをするにはEthernetの発想でMAC入れ替えればいいだけでは ないらしいことを知った。 brctl addif できない→ 4addrを有効にして云々、ということが書いてあったり、 それを試して結局通信できなくなっている人が多いのはこのあたりの話が 原因のようだ。WDSやら4addrというのはそういう意味だったのか〜

_ ただProxyARPでいっぺんは用を足すことができているのも事実なので、 私の手元の状況とは少し異なるのだろう。WifiのAPとClientが 同じマシンにあるというのがそのひとつかもしれない。 実際に4addrにしていない状態 (通称3addrらしい) でMACの変遷を確認すれば それが分かるだろう…しかしもう目も頭も限界なので寝る


= relayd

_ ↑のOpenWrtのドキュメントを辿るとrelaydというデーモンの名前が出てくる。 これの正体がよくわからない。OpenBSDやFreeBSDにも同名のデーモンがあるが 別物だと思う。あちこちの 記事をまわってみた結果、 GitHub - stoops/relaydが それなのかなあ? という気がしているが定かではない。 そのまま使いたいというよりは、 何をやっているのかを知りたいというところなのだが…iptables/ebtables や それとあわせて使うツールたちとやっていることに違いがあるのかどうか?


2021/01/09 (Sat)

_ 休みになると昼前まで寝てしまうので睡眠不足なのかもしれない。 しかしいつも3:00AMくらいまで寝つけないし、仕事をする日は5時間そこそこしか 眠れないので、もっと日中すっきり起きていられて夜にさっさと眠くなるような 生活を取り戻さないといけないのだと思う。


= 口内炎

_ 今週は食生活が乱れぎみで、いつもの ミューズリ+豆乳・そばうどん、たまにCOMPといった生活をまったくできなかったので そのせいか口内炎がかなり増えてきている。

_ まあ口内炎が5個やそこら出来たところで、わざわざZHTで皆様にお伝えしなければ いけないようなボルテージの高いエピソードでもないのだけど、最近 英語のドキュメントを音読しながら読むという健気な取組をしているので さすがに四六時中声を出すとなると憂鬱になる痛みになるのは確かだ…


2021/01/10 (Sun)

_ わりと寒い。日本海側はかなりひどい雪になっているようだ。


= 左足 22日目

_ 初日からここまで、回復したなあ〜と実感するのは、 〜〜をすると痛い、というものが減ったことを自覚したときになっている。 この変化は、昨日までは〜〜すると痛かったのに今日は痛くない、というくらいの、 寝て起きたらそうなっていたというような変化なのでわかりやすい。

_ 今日は、外を歩くときに、ほぼ負傷前と同じような歩き方をしても痛くない…ことが 多いということに気付いた。もちろん飛んだり跳ねたりできるわけではないし、 歩きつづければ痛くなるのだけど、ちょっとした距離なら負傷前とほとんど 変わらないスピードで歩くことができるようになりつつあるらしい。


= 今日のRasPi

_ あらすじ: ある禍禍しいデバイスAと、別の禍禍しいデバイスBがWifiで ペアリングされており、その禍禍しさをきちんと調べたい。 デバイスAはStation、デバイスBはAPとして動作しているので、 RasPiにUSB-Wifiアダプタを2つつなげて、ひとつ (wlan0) は デバイスAにAPとして接続、もうひとつ (wlan1) はhostapdを動かして デバイスBに接続させる、というようにした。 ひとまずA⇔B間の通信を見ることができるようになったが、デバイスA側の もともとの処理(Source NATとDestination NATを両方やっているらしい)を きちんと通すようにするとか、IPアドレス体系も合わせておかないとデバイスB側の 動作がいやんになってしまうことがある、などがあり、RasPiの間でブリッジ的なことを しなければいけなくなった。

_ 色々な理解不足や誤解がありかなり回り道をしてしまったが、最終的に、

以上4点の設定で現時点では必要な要件をすべて満たした納得の行く設定となった。 ここに至るまでにかかった時間を考えるとなさけない気分になるが、 ともあれこれで禍禍しいデバイス同士の通信の様子を見ることができるようになり、 かつnatやfilterで余計な通信を遮断できるようになったので、ようやく 安心して室内LANに接続できるようになった気がする。


= Raspberry Piは本当に壊れやすいのか

_ 数年前にRasPiを検査時のモニターとして利用するための設定をしたことがあった。 検査対象の機械と定期的に通信し、応答がなくなったらLチカさせるという 初歩的なものだったのだけど、検査作業自体は別の会社さんにお願いしていたので、 設置や撤収の手順をできるだけシンプルにする必要があり、 その際にRasPiのシャットダウンの手順をいちいち伝えるのは双方にとって ストレスだったので、いきなり電源を切ったらどうなるんだろう… と出荷前に 実験したことがあり、ものの数回でファイルシステムが壊れてしまい 起動しなくなってしまったのを覚えている。手元に記録がないので 詳細は覚えていないが、最終的に 起動後はSDカードにアクセスしなくてよいように設定した。

_ ファイルシステムはext4だった。 NOOBS経由で入れたことが影響しているのかどうかは、 NOOBSの実現内容を理解していないので不明。

_ 出荷前に何度も(といっても100回に満たない程度だけど)実験して問題ないことを 確認し、その後壊れたという話は聞いていないので、microSDのファイルシステムが 壊れやすい、けど、それ以外はわりと大丈夫というのは私の印象であり、表題の リンク先の記述ともだいぶ合っていると思う。

_ なおその検査では静電気試験を含むそこそこ苛酷なことをするものだったが、 検査対象の機器はともかくRasPi側がやられたということもなかった。 配線上の工夫は多少はしていたし、検査してくれている会社が うまいことやってくれたのかもしれないが


= 節分

_ 昨日スーパーで買物をしていたら恵方巻きの受付がはじまりました云々という アナウンスをしていて、その最中に今年の節分は2月2日です、と繰り返していたので、 なんのこっちゃと思ってWikipediaを見てみたところ、 節分というのは2月3日と決まっているわけではなく、 今年から4年に1回は2月2日、残りは2月3日といった周期になるらしい。 私が生まれてからしばらくの間も、4年に1回は2/4だったようだ。が、まったく 覚えていない。


= 玉寿々 と 入船

_ 孤独のグルメの大晦日スペシャルで衣笠の玉寿々が出てきたらしい。 商店街のところにあるあのお店か…入ったことはない。 私の通っていた高校は、衣笠駅とは衣笠十字路を挟んで反対側にあったし、 子供の頃は衣笠で食事をするということはまずありえなかったので、どっちにしても 縁はない…

_ 同じ衣笠付近のお店でも入船の方が私には馴染がある (といいつつそんなことは すっかり忘れていて、今回の件でいろいろ思い出してきた)。 まず高校に近かったというのもあるし、 高校時代に高校の近くに住んでいた友人の家にお邪魔した際、 けっこう店屋物をふるまってくれることがあって、 そのときに入船の出前でカツ丼などをよく食べさせてもらっていた。


2021/01/11 (Mon)

_ 3連休であることに直前に気付いたのは幸いだった。仕事をすることには 変わらんが

_ 今日は久しぶりにルイボスティではなくとうもろこしのひげ茶にしてみた。 煮出しではなく急須で抽出をしており、普段は700mlくらいを1回抽出して ポイしていたのだが、試みに2回目に500mlくらいを抽出してみたところ 1回目とほとんど変わらないくらいの抽出結果になった。今までなんと もったいないことをしていたのか… そして3回目、300mlくらい抽出してみたところ、 さすがに少々薄くなっていたけど全然飲めるレベルだった。まあ煮出しで1L以上 簡単に抽出できるので当然といえば当然なのかもしれんが。 とうもろこしのひげ茶は冷めてもぜんぜんおいしいのだが身体が 冷えてしまうのが難点だ…


= adb screenrecord

_ adbはスクリーンショットをとるほかに動画をとる機能もあるんだが、とった 動画はスマホ側に保存されるし、連続では3分までしか撮れないように なっているので、リアルタイムで画面の様子が見たいという要求を満たすのは難しい。 細切れにしてPC側に送りつけるしかないだろうか?

_ GitHub - isonic1/flick: A CLI with helpful QA tools for Android (Devices & Emulators) and iOS (Devices). は、そのあたりをうまいこと処理しょうとしているように見える。


= STF

_ もともとはSTF | Smartphone Test Farmならびに STF - GitHub で 公開されていたものが、今は OW2 - devicefarmer - DeviceFarmerならびに Device Farmer - GitHubで 管理されているらしい。もともとは サイバーエージェントが内製していたものをオープンソース化したもののようだ。 たくさんのスマホを物理的に管理しつつ遠隔操作しつつテストをさせるといった アプライアンスらしい。すばらしい。私が関わってきた端末の世界ではこういった デバッグ・検証用の仕掛というのは全部手作りをしなければいけなかったので、 自分以外の力で、ひとりでによい環境が出来上がっているというのは 今までにない経験だ。ありがたいことだなあ〜


= UI Automator | Android デベロッパー | Android Developers

_ 自動でボタン押させたりするUIテスト用のAPIがすでにそなわっているらしい。 複数のアプリの UI をテストする | Android デベロッパー | Android Developersも参考になる。


= appium

_ UIテスト向けのフレームワークらしい。ホスト側はmacOSじゃないとだめ? そうでもないのかな


2021/01/12 (Tue)

_ そういえば口内炎は知らないうちに減っていた。


= 今日のErlang

_ 久しぶりに使った。 最近はKotlin、C#、たまにF#という生活を続けてきたが、 ちょっとした通信をするとかバイナリをどうにかするというときには やはりErlangが一番手に馴染む。


= トランプのアカウントなど

_ 以前作ったタイムラインとグラフが連動する 資料というのは今でも更新をつづけており、イベントに関する記述には トランプのTweetをけっこうな数引用していたのだが、 アカウントが停止されてしまい 参照できなくなってしまった。この停止に先立って、 Twitterが問題としている発言3つ、つまり停止のきっかけになった Tweetについては非表示になるといった対応もあり、トランプが先日の 議事堂への侵入・暴動を扇動したという各方面からの主張を検証するために 元の発言を確認することもできなくなっている。

_ ただ発言するための場所を提供しているだけ、 サービスを作っているだけ、アプリを提供しているだけ、 といった立ち位置は許されなくなっているというのは感じているが、 そこまで面倒見る責任を負っているのかーという違和感は残る。

_ 一方でそういったことをやらないかわりに参加する際に通常のSNSよりも 多くの個人情報を求めるParlerは、 AWSから排除されてしまった…のはともかく、 管理者権限のあるアカウントを不正に作成して中身全部持っていかれた というがあるようで、 これは本当なの…??


2021/01/13 (Wed)

_ 日中はけっこう気温が上がった。厳しい寒さもひと段落らしい。


= 思い出がよみがえる!ロゴ書き初めのススメ :: デイリーポータルZ

_ 内容以前にベースとなる北村さんの字のうまさにびびった。 毛筆に慣れている上にタッチまで 自由自在というのは、ちょっとやそっとではできない芸当のような…


2021/01/16 (Sat)

_ いろいろいそがしい。まあ仕事が進むこと自体は、 いつかやらなきゃいけないものなので別によいんだが、いろいろダメージが 蓄積している気がする。なにしろ運動らしい運動をしていないというのもあるし、 それによって食生活がすごい慎しくなったということもない… そして 肩こり頭痛が絶好調だ。幸いカゼっぽい症状はない。

_ 今日はなんだかかなり暖かい。20度近くまで上がったようだ。 そして明日は10度前後までしか上がらないらしい。なかなかの高低差だな…


= Windows 10 bug corrupts your hard drive on seeing this file's icon

_ 特定のパスに対してアクセスを試みるだけでファイルシステムが破壊されるらしい。 恐すぎるだろ…もちろん手元では試していない


= UIAutomation

_ ビルド→デプロイの過程で利用するツールの中でGUIでしか操作できないものが あって、それのせいで手作業が入り自動化の妨げになっている。 なぜこういう基本的なところにGUIを使わなきゃいけないのか理解に苦しむが、 苦しんだところで仕方がないのでそのGUIを自動的に操作するような仕掛を 考えることになる。

_ 数年前に自動化の仕掛を用意してそれなりに楽になったんだが、最近対象の ツールが大幅にバージョンアップしたようで、MFCベースだったのが Qt5ベースになったらしい。なので自動化の手順も変えなければいけない… と思いながら先送りにしていたが耐えきれなくなったので再度試みることにした。

_ 数年前に作ったのは、Win32APIを使いつつところどころ UIAutomation (System.Windows.Automation) を使う…というハイブリッドな やりかただった。当時は試行錯誤の末実装していたので、 余計だったり無駄だったりするコードも多く見通しが悪い。ということもあり 今回書きなおすことにした。 ついでにC#→F#に変更。.NET5 で作る必要もなかったので.NET Framework 4.8ベースで

_ いろいろ悩まされた。 まずSpy++でQtのコントロールが拾えなかった。 c# - Spy++ doesn't reach button in Qt application - Stack Overflowを見て、 inspect.exe というツールがあることを知る。Windows Driver Kitの中に 入っていたのでそれを使ってみたところうまく取れた。

_ 次にAutomationElement.FindAll で例外が出る。 automated tests - UI Automation White framework "NonComVisibleBaseClass was detected" exception - Stack Overflowによると、 中で出てしまうのはしかたないのでデバッガで止めないようにしましょうね、 ということらしい…んなあほな、とは思うがひとまず従うことにした。

_ そしてボタンを押す操作がうまくできなかった。従来の実装ではAutomationElementを とってきて SetFocus した後に SendKeys.SendWait でスペースを送る、という やりかたをしていたのだが、Qt5のボタンに対してSetFocusすると怒られる。 Target element cannot receive focus -Issue #388 - TestStack/White - GitHub に 書かれているのと同じ。最後に捨て台詞的に書かれている通り、 別にフォーカスがなくても押す方法は他にもあるので、 まずマウスカーソルをボタンの真中に持っていってクリックさせることを 試してみた後に、素直にAutomationElementの中の仕掛を使って クリックさせることにした。マウスクリックはマウスカーソルが突如ワープするので あまりうれしくない。自動操縦中はフォーカスに気をつけつつ次に 触る画面のそばに (結局UIはまだ残っている) マウスカーソルを移動させるといった ことをしているので、移動している自分も、クリックしようとしている プログラム側も双方困ることになる。

_ そしてひと通り組み上がって期待通りの動きをするようになったが、今度は 遅いという問題が。AutomationElement.FindAll() があほみたいに遅いようだ。 c# - AutomationElement.FindAll() performance issue - Stack Overflow で 扱っている。遅いにもいろいろ原因があるようで結論らしい結論は 出ていないようだ。が、深い階層を対象にした FindAll が遅いのは避けがたいようだ。AutomationElement は HWNDから作ることも できるので、別の方法で対象のHWNDを探してくることでFindAllを回避しよう… と思ったのだがうまくいっていない。 Spy++がQt5のコントロールを見つけてくれないのと同じ原因なのだろうか。 Windows APIに関する知識が中途半端なのでなかなか原因究明に至っていない。 いずれにしてもボタンを押したりコントロールを選択するまでに 都度3〜4秒かかるので、いくら自動化できたといってもちょっと耐えがたい遅さだ。


= BinaryFormatter security guide | Microsoft Docs

_ BinaryFormatterは本質的にセキュリティ上の問題を抱えているのでもう使うなという お話らしい。BinaryFormatterをセキュアにすることはできないんだってさー

_ と言われて別に意外というほどのことではないし、内外のやりとりのために これを使うことはまずありえないのだけど、なにしろ手軽なので ちょっとした保存のためにガンガン使いがちでもある… のでどこまで 受け入れてどこから妥協するかを考えなければいけない


= 【閲覧注意】るいに手を噛まれていました。これからについて思うこと - YouTube

_ めはまどchannelと並んで常にチェックしている こゆきchannelのママさんが、 保護犬の「るい」に噛まれていたという動画を上げている。 昨年、手を負傷したという話が出ていたので、ひょっとして噛まれたのかな… と思っていたのだが案の定だった。 負傷した個所の多さから考えると、 怯えた末の行動とはいえその直後にかなり攻撃的に なっていることを伺わせる。

_ 私も保護犬に噛まれた経験は一度や二度ではないし、ジョンに至っては 数えきれないくらい噛まれたうち、いくつかの傷跡はもう消えないだろう… というような感じだけど、そのジョンにしたって 怯えた末に一度噛んだとしても、 双方距離を置けばその上で追いうちをかけてくるようなことはしてこなかった。 追いかけてまで攻撃してくる…というと、ミミ子がその傾向があったような気がするが、 なにしろ動作はとろいし目も不自由な子だったので、 追いうちが成功することはなかった。なので、るいの行動は私の 乏しい経験とは比較にならない強度だったのだろうと想像している。 ここ最近、るいが普通に触らせてくれるようになったり、 撫でているうちにお腹を見せるようになったり…といった 様子が出ていたが、ほんの数ヶ月前にそんな事件があったのに 双方乗り越えてきたのか…と思ったら、ただ見ているだけなのはいつも通りだけど とても感慨深い。



= 左足 28日目

_ 今日は28日目なのでだいたい4週間。 外を歩いていても痛みを感じなくなったような気がする。 昨日までは、だいぶ楽になってきたとはいえ、歩いていれば痛みを感じるし、 あまり長い距離を歩きたくない感じがしていたのだが、今日は歩いていても 痛みを感じなかった。


= UIAutomationつづき

_ いろいろ試行錯誤を続けている。 TreeWalkerを使って、なおかつ全部舐めるのを やめるような工夫をしたり、といったことをしてみたのだが、結局秒単位で 時間がかかってしまうのは回避できなかったので、Inspectであらかじめ ツリー構造を確認しておいて、ChildのSiblingのSiblingの… みたいなことを 指定して目的のコントロールに辿りつくように変更した。 結果かなり速くなった。

_ で、逆にタイミングによって動かなくなるケースが出てきた。 つまり今までは遅かったことによりうまいこと待ち時間ができていたのが、 速くなったことにより問題になるという感じ…ad-hocなsleepだらけだった部分を、 きちんと準備できるまで待つというように修正する必要がある…のだけど、 ウインドウが出てきてから… みたいな処理だとウインドウ内のコントロールの 準備がまだできていないといったことも起きうるので、どこまでゆけば 準備完了なのかというのを知るのは けっこうむずかしいような気がする。ウインドウメッセージを 見てどうにかする…の? (誰に聞いてる)


2021/01/17 (Sun)


= 左足 29日目

_ 普通に歩いていても痛みを感じなくなったので妻の散歩についていったところ、 夜になって少し痛くなった。やはり無理は禁物ですなあ〜


= 今日のF#

_ UI自動操作のやつ、 ひとまず数年前に作ったものと置き換えられるレベルまで組んでおかないと また細かいことをいろいろ忘れて次回困りそうなので少し集中してやっつけた。 AutomationElementの選択がだいぶ速くなったので以前のバージョンよりも 速くなった…のだけど、一点だけ、ボタンを押してから制御が戻ってくるまでに 10秒くらいかかるものがあり、まあ有名な話みたいでモーダルなダイヤログを 中で開くようなボタンに対してinvokeするとそういうことになるらしい。 10秒というのはタイムアウトの時間のようだ。

_ 数年前に作ったものはけっこうSendKeys.SendWaitを多用しており、 テキスト入力も含めてわざわざそんなことをしていたのは、結局 System.Windows.Automation のカオスぶりに撃退されていたせいなのかもしれないと 今更のように理解した。当時もかなりの修羅場だったからなあ〜 (いつなら修羅場じゃないのか) じっくり理解してどうにかするより、 さっさと先に進まなきゃいけなかったのだろう… たぶん。当時は 作業記録もほとんど残せないくらい忙しかったなあ〜 2015年10月〜12月頃の話

_ あとはコマンドラインアプリに仕立ててひとまず完成… getopt的なものはないのかしら…? というところで、 以前読んだF# を知ってほしい - Qiita のひとが FSharp.CommandLineというのを書いているようだったので試してみた。 まずREADME.mdにあるサンプルがそもそもコンパイルできないが、 これはF#5の不具合らしい。 12/1にDon Symeが自身のtaskとしてassignしているがそれっきり動きはない?ようだ。

_ ドキュメントが少なくコード内のコメントもあまり多くなく、サンプルも少ないので こういうときはどうするの? という疑問が発生したときに調べる手がかりが なくて大変… ただサンプルはリポジトリの中にあるtest.fsxがそれに相当すると 気付いたのでそちらを見て少し分かってきた。 それにしてもcomputation expressionsはうまく書けなかったときに出てくる コンパイルエラーから原因を探るまでにかなり困難を覚えるなあ… 慣れてないせいももちろんあるんだろうが

_ そして妙に遅い… とくにVisual Studio内でデバッグ実行すると極端に遅い。 オプションの解析が終わるのに5秒くらいかかっている。 直接起動すればそんなに遅くない (1秒弱) し、.NET5で作ったプロジェクトでは 一瞬なので、実運用上はさほど問題ない。 そしてデバッグ実行しているとFSharp.CommandLine内で 大量の例外が出ていることがわかる。実際コードを見てみると 解析の途中でたくさん例外を出していて、それで制御しているように見える。 OCamlとかでイテレーションを中止するときに例外を使うというのはよくある 話らしい (あまり知らない) けど、そういう感覚なのだろうか…? 私は C#生活が長かったので、通常フローで例外前提の処理を書くというのはどうも 違和感がある。

_ あとVisual Studioでデバッグ実行している最中にImmediate Windowで ちょっとしたコードを書くということがあるが、F#で開発しているときも Immediate WindowはC#で書くものみたいなので、C#とF#が入り混じっていて 倒錯した気分になってきてよい。


= 【繁殖犬】地下室から保護された犬30数匹の内の1匹をお世話。人の優しさを知らず5年も繁殖を続けて来てカラダはボロボロ。 - YouTube

_ おすすめに唐突に出てきた。サムネイルを見て驚愕した。 整った顔立ちと背中〜腰にかけての毛並はつぼみを思い出させるし、 眉間〜鼻筋にかけてコパンの面影を感じる。男の子みたいなので やはりコパンの面影をより強く感じる。 若い頃のコパンはこんな感じだったのかな?と思えてくる。

_ あまりに過去に家にいた犬達の面影を兼ね備えている子だったので、 これ妻が見たら引き取りたいと始まるんじゃないか…と思ったが、 アメリカでのお話みたいなので、遠く離れた保護犬の幸せを祈るほかないだろう


2021/01/18 (Mon)


= 左足 30日目

_ だいぶ先送りになっていたが病院に行ってきた。緊急事態宣言出ておよそ10日、 混雑具合は、いつもより多少少ないかな…という程度だった。

_ 経過観察のためレントゲン。ひび割れている部分はまだ残っている / ひびの橋渡しみたいなのができるのにはもう1ヶ月くらいかかるだろう / ひびが完全にくっつくのは年単位 (2〜3年) かかるが、痛みがなくなり普通に 歩けるレベルに達するのはもう1ヶ月くらいだろう… というお話を聞きつつ私の目はレントゲンの写真にはっきり映っているひび割れに 釘付けになっていた。先月は拡大してコントラストをいじってもらわなければ 見えなかったひびが、そんな手当をしなくてもばっちり見えているし、 半開きになったパックマンの口みたいなひび割れ具合ではないか (わかりづらい例えだな)

_ まあ痛みは確実におさまっているし、骨がずれているといったこともないようなので このままバンドで固める生活を継続して、また1ヶ月後に経過観察になった。 こりゃー走ったりできるまでにかなり時間がかかることになるんだろうなあ〜 別の運動手段を本気で考えないといけないかもしれない

_ なお薬はとくに処方されなかった。塗り・飲みともに不要のようだ。なので あとはバンドだけでどうにかする生活ということになるなあ〜 洗いがえが欲しくなったのでamazonで同製品を探してみたところ1000円前後らしい。 主要な用途は…足首の固定…? まあ装着方法から考えればそうか… 私のように小指側の側面を骨折した人間にとっては、 バンドの弾性で押さえつけるくらいの役にしか立っていないのかもしれない。 わりとマッシブな回復過程なのかもしれない


2021/01/24 (Sun)

_ 週末は雪が降るんじゃないかというお話があったがさほど寒くなく ただ雨だった。まあ雨自体も久しぶりだった。私が足を痛めて以来ずっと TEVAのサンダルで通してきたので、もう1ヶ月以上ぶりくらいの雨ということになるか

_ 平日にやろうやろうと思いつつ先送りにしていたケーブルづくりをやった。 RJ11のジャックが残り20個くらいになってしまった。このRJ11のジャックは かしめてもあまりきちんと固定してくれないのでしんどい。RJ11のジャックに CAT5のEthernetケーブルを刺しているので厚さは十分なはずなのだが


= 左足 36日目

_ 30日過ぎたあたりから一進一退で、痛みをほぼ感じない日もあれば、 痛い日もあれば… という感じだ。


= 最近のARROWS TAB

_ 会社PCでYouTubeをラジオがわりに流しているが、どちらかというと再生専用の 環境があったほうがいいかなあと思いはじめたので、ARROWS TABを久しぶりに ひっぱり出してきた。スピーカーはBluetooth経由RasPi経由I2S経由で鳴らしている。 タッチ操作以外にも、Synergyでつなげているのでそのままキーボードと トラックボールで操作することができてよい。

_ ARROWS TAB (QH55/M) は10インチで高解像度、64ビットのプロセッサだった気がするが OSが32bitで(UEFIも32bitで) メモリが3GBしか使えていない。ということもあり やはりWindows10ではいろいろ重く感じる。こういう環境にChromiumOSを入れたら 面白いのかもしれないが…


= お菓子の話

_ 兼ねてから記している通り私はお菓子が大好きで、その中でもとくに 自分の中では好きすぎて禁止しているものがあり、ひとつはサッポロポテト (バーベQあじもさることながら、やはりベジタブルが危険すぎる)、もうひとつは キャベツ太郎だ。キャベツ太郎といえば昔は20円か30円くらいの小袋だったので 食べすぎることはなかったのだけど、最近コンビニで100円ちょっとでばかでかい キャベツ太郎が手に入ってしまうのでとても危険だ。

_ そんなキャベツ太郎を食べていたところ (禁じていたのでは?) 袋の裏に製造者の「やおきん」の所在地が書かれており、 すぐ近所であることに気付いた。Mapsで様子を見てみると… オリナス(モール側)から北に伸びる道路、救世軍とかがある通りを進んで 右手にある緑色のビルがそうだったのか。何度も通りかかっていたのに 気付かなかった。そういえばあのあたりにはMoltenもあるし、 子供の頃から馴染のあった会社の名前が身近にあるのはなんだか妙な 感動があるな


= USB on Ethernet的な技術

_ リモートにあるUSB接続の機器をどうにかする場合、キーボードやマウスなら Synergyがとても便利だし、同時に使わないなら切替器という手もあるだろう。 ここのところかなり無理筋な技術(というほど大層なものでもない)で 遠隔につながっている機器を利用している様子を目撃したり、それをどうにか 制御しようとして絶望的な気分になったりしていたのだけど、、 ディスクにおけるiSCSIやATA on Ethernetみたいに、 USBの信号線をネットワークに載せるような技術があってもいいのでは? と 思えてきた。

_ 調べてみるとそういう技術はすでに存在するようで、 そのための機器も売られているようだ。 ソフトウェアで実現するものではVirtualHereというのが有名らしい。 ハードウェアだと「USBデバイスサーバ」みたいな商品カテゴリーで 売られているらしい。 IO DATAはnet.USBという名前にしているようだ。


= Android Studio の設定 | Android デベロッパー | Android Developers

_ お前の環境でビルドが遅いのはウイルス対策ソフトのせいだと思うぜーといきなり メッセージが出てきて、ああそうなのかーと思った。という話。 管理画面にアクセスできないので無効にすることはできないんだよね〜


= Introduction to recursive types | F# for fun and profit

_ 1年近くずっと積んでいたものをようやく読んだ。勉強になるなあ〜 foldのaccumulatorに関数を渡すというのは今まで考えたことがなかった。


2021/01/26 (Tue)

_ 昨日の夜からなんだか頭痛がひどいなあ〜耳鳴りもいつもより音が大きい


= Asciidoc

_ 存在を知ったのは4年半前、 これでついにマークアップ漂流の旅も終わりだろうかという予感を抱きつつ 機会があるたびにいじっているが… やはり使い続けるといろいろと不満が出てきて、 また旅が続きそうな気がしてきた。

_ マークアップ言語としての出来に関する部分はさほど大きな不満はない。 passでどのプロセスを通してどれを通さないかを細かく指定できるのは、 それ自体は悪くない気がしつつ、結局全貌が見えづらくて望み通りの 結果を得ることができないケースが多い。というのが不満といえば不満だが、 それは私の理解力のなさに対する不満なのかもしれない

_ プロセッサについては昨今はasciidoctor系一択になるんだろうけども、 asciidoctor-pdf は、やはりいまひとつな感がある。 見た目をカスタマイズしたいとなると、roleを使うことになるんだが HTMLのときはそれがclass/spanになっているのでCSSでどうにかすることになり、 またclass/spanになってくれれば後はわりとどうにでもなるとも言えるのに対して、 asciidoctor-pdfのときはthemeでどうにかすることになる。 で、roleでいじれるスタイルがあまり豊富ではないので、結局できることがほとんどない。 そして全体的にasciidoctor-pdfはかなり遅く、 WSL2の中のDockerの中で動かしているので、その点は不利なのかもしれないが、 30ページを超える規模になってくると 1回の変換に30秒以上かかり、わりと我慢ならない遅さに感じる。 そして組版の品質を見てもやはりTeXを経由したソリューションと比べると だいぶ劣るように感じる。 作りがシンプルなので手を入れやすいというのはあるかもしれないが

_ asciidoctor関係はカスタマイズが簡単〜というのも特徴のひとつのようなのだが、 文書交換用のマークアップ言語として見た場合、 プロセッサ側でカスタマイズし放題というのは自殺行為に見えてしまう。 それに関係するような、あまり関係ない話として、VSCodeでプレビューすると 問題ないのに、それをasciidoctorで変換した結果のHTMLではなんかうまくない、 というケースがあって混乱した。VSCodeのextensionも 内部でasciidoctorを使っているはずなのだが…

_ そういう自分にとってのマイナス面を考えると、大部分はプロセッサ側の問題とはいえ このままAsciidocで蓄積していっていいんだろうかという迷いが出てくる。 かといってSphinxに満足しているわけではないし、 Markdownがよいともまったく思わないし、もちろんLaTeXに戻る気もないのだけど…

_ Re:VIEWは、 気になりつつ触ったことがない。Asciidocで気に入っている要素である、 VSCodeでプレビューできる、Dockerのイメージがある、などはこちらにも 揃っているようだ。プロセッサが外部呼び出ししやすい形で 提供されているかどうかという点ではasciidoctorの方が勝っているようにも 見えるが、まあ変換結果をどうにかするということで割切ればそれまでかもしれない。 関係されている方は私でも知っているような有名な方々ばかりだし、 実際にこのシステムで書籍を作ってゆくようなこともしているのだから、 この方々が関心を保っている間はメンテナンスも続くのだろう


= ARROWS TAB

_ YouTube視聴用端末として稼働を始めたのだけど、 どうも具合がよろしくない。具体的には、Bluetoothで音を飛ばしているやつが 知らないうちに止まってしまう。数分で切れてしまうこともあれば、 数十分もつこともある、が、いずれにしても気付いたら切れていて、 無効→有効にしないとだめという症状なので大変によろしくない。 同じ設備でスマホ経由だとそのような症状はまったくないので、 これはARROWS TAB側の問題なのだろう。こまったもんだ

_ ARROWS TABで動いているWindows10はいろいろと問題が多く、 また重いのでこの機会に別のOSでも入れてみようかしら?という気になってきた。 何年も前に試みて挫折したやつだ。 32bit UEFI云々の件は、 32-Bit UEFI Boot Support - Ask Ubuntuに書かれている コメントの手順がわりとゴールデンスタンダード (誤用?) みたいなので、 これを試してみたらよいかもしれない。OSは… ChromiumOSもいいが 別にUbuntuでもいい気がする。


= The XY Problem

_ 探しものをしている最中に「XY Problem」という用語を見掛けた。 初心者が「Yをしたい」と質問をしてきて、それを聞いた熟練者がその要望に 不自然さを感じつついっぺんは答えるのだが、よくよく聞いてみると 本当にやりたかったのはXであって、 初心者がXをするためにはYが必要だと理解していたということに過ぎなかった、 つまり「Xをしたい」と質問していれば双方無駄な時間を費さずに済んだのに、 Xをするための手段として誤ったYについて質問したばっかりに無駄な 時間を費すことになってしまった… というような問題 (要約←になってない) のことを 指すらしい。

_ これは以前奥山さんが書かれていた柘植のソロバンの例え話の やつだなと思った。 okkyの銀河制圧奇譚: 良い転職先の見つけ方 -4- お客様にとって価値のある成果の提供 の中で 紹介されていたそのエピソードは私にとってとても印象的で、以後自分の 物の考えかたに大きな影響を与えている。


= 【Hothotレビュー】小さいことはいいことだ。世界最小のFeliCa対応スマホ「Jelly 2」 - PC Watch

_ すごい。私が今使っているスマホより全然高性能だ。 兼ねてよりスマホの大型化には閉口しており、5インチ未満のモデルが 欲しかった。しかしここまで小さいといくらなんでも…という感じがしてしまうな。 今後口にするのも憚られるあれ (老眼) が進行することを考えると、あまり 小さすぎる端末というのも考えものだ。それに5.5インチくらいのサイズに なんだかんだで慣れてきてしまったというのもあるし、そもそもいつまで Androidなんですかねえーともう5年以上言いつづけているような気がする


= 負けイベント

_ 負けイベントがRPGをだめにしたという持論があって、 つまり絶対に負けるようになっているやつで、FFで顕著に見るあれだ。 ラスト付近で負けイベント、みたいなのはとくにひどいと思う。 この手の負けイベントの起源は何なのだろう? というとこれがよくわからない。 FFで良く見るやつだけど、そういえば英雄伝説1にもあったか…

_ どういうものがだめで、どういうものは特に問題ないと 思っているのかの整理をしておく必要を感じている (適宜更新) まず 私が問題にしているのは、 「通常の戦闘と同じシステムで」「負けることでしか終了できない」もの、 とひとまず定義可能だと思っている。なので以下はとくに問題ないと思うもの:

_ なんで負けイベントを許せなく思うかというと、 戦って成長してゆく、負けたらゲームオーバー、 というRPGにとって基本的な了解事項2つを破っており、かつそれを意図的に 破ったことに対して別にたいした演出上の効果があるとは思えない、 というあたりだろうか。


= 最近のCOVID-19

_ 先日書いた 規模に関する感覚のずれについて、うまく表現ができないなあと悩んでいたのだが、 つまり今自分が新型コロナウイルスに感染していない (と思われる←このあたりの 確信が持てないのももう一つの問題だとは思うが今回はおいておく) のは、 自身の対策が十分だったからではなく、 単に自分の行動範囲に新型コロナウイルスが存在しないからではないのか? という 疑念が晴れないからだ、ということに思い至った。もちろん 感染対策、とくに衛生上の問題については気を配っているが、それでも 天衣無縫とは言い難いので、身のまわりにありふれた存在として ウイルスがあったとしたら、やはり防ぐことはできない気がしており、それでも 今の状態があるのは、「ない」から…じゃないの? というような

_ それがはっきりしたところで行動に変化が出るわけではないものの、 あっても感染していないのか、ないから感染していないのか、は、対策の意義や効果にも 関わるので、事後であっても知りたいところだと思う。


2021/01/27 (Wed)

_ 今日はあまり寒くない。


= 最近のF#

_ コードは書いていない。

_ Understanding map and apply | F# for fun and profitを読んだ。 面白いが手ごわい。読むだけでは分からないので手を動かす必要がありそうだ。

_ Understanding Parser Combinators | F# for fun and profit。 これは面白かった。Parser Combinatorsは過去に何度か使ったことがあるが 雰囲気というかフィーリングで使っていたのであまりよくわかっていなかった。 この連載ではstep by stepでParser Combinatorを作ってくれるので、 Parser Combinatorとして完成しているものが何をどのように提供しているのかが よく分かった。これも読むだけでは本当に身についたとは言えないので 実際に手を動かしてFParsecを日常生活に取り入れてみたいと思う。 Parser Combinatorsはテキストを対象にすると無意識に考えていたが、 バイトやビットを扱ったって何も悪くないわけで、そういう使いかたをしたときに Erlangと使い勝手がどのように違うのかは知っておいたほうがよい気がしている。

_ 後者の連載を読んでいる途中で、ようやくこのひとが繰り返し説明している Elevated World というものが少ししっくり来たような気がする。動画でも 図を用いて繰り返し説明してくれているのだけど、どうしても関数の形を中心に 物を考えるということに慣れておらず、入力と出力の型ばかりを気にしていたのが 理解を妨げていたようだ。


2021/01/28 (Thu)

_ 今日はかなり寒いようだ。あと雨?


= targetつきのリンクの挙動のはなし

_ 一昨日くらいからだろうか、スマホ (AndroidのChrome) 経由で 見ているサイトで、リンクは別タブで開くようになっているはずなのに、 リンクをタップしたときに新しいタブが開かない感じで、あれ target="blank" やめたのかな… と、そのときはそれで納得していたのだが、別のサイトでもやはり同じような 挙動をしている。複数のサイトが同時にtargetをやめる、というのは考えづらいので、 あらためてよく挙動を観察してみたところ、新しいタブが開くタイミングが 違うようだということに気付いた。これまでは、リンクをタップした直後に 新しいタブが開き、そこでページの読み込みが始まっていたのに対し、 今はページの読み込みが進んでから、新しいタブが開いてそちらに遷移するという 動きになっているらしい。

_ なんでこんなことをするのだ? と、調べてみて、 その理由はよくわからなかったのだけど、 target="blank" についてはここのところ別の理由で挙動が変更に なっているようだ。 target="blank" で開いた先のページは window.opener で元のウインドウを手にすることができてしまうので、 元のウインドウに対してなんでもやりたい放題であぶないよ、という話らしい。 そしてデフォルトで rel="noopener"に相当する動きになったらしい。 サーバ違うのにwindow.openerを渡しちゃうというのは危ねえなあと、言われてみれば 確かに思うし、実際知っている人は昔から知っている挙動だったようだが、 ブラウザ側の挙動が変わったのはここ1年くらいの話らしい。

_ そしてこのnoopenerの話と、タブを開くタイミングが変わった話が関係するのか? というと…とても関係あるとは思えないんだが…


= 最近のF#

_ とくにコードは書いていない。WindowsではLaunchyを愛用しており、 しかしLinuxでは使っていない。Qt4を(今更)求められたりで心理的なハードルが 高いというしょうもない理由だ。

_ 愛用しているとはいえ使っている機能は表面的なものばかりで、 特定のディレクトリにまとめてあるショートカット経由でアプリを起動したり、 googleの検索をはじめたり、あとは数式入れられる電卓として使っている程度だ。 この程度なら自分で作ってもそれまでかなあという気がしてきた。 で、F#というか.NET Coreや.NET5以降の世界でクロスプラットフォームな GUIを作るにはどんなものがあるのか?と軽く調べてみたところ いろいろありすぎて混乱した。

_ .NET5には間に合わなかったようだが MAUIは MAUIはXamarin.Formsの進化系みたいな感じに見える。今後主流になる…のか? Uno platformというのもあるようだ。 一方でAvaloniaというのもあるらしい。 どれも特徴として挙げているものは目指しているとしているものが似ていて、 実際に触ってみないとよくわからん… 今回のケースではUWPとの親和性みたいなものはとくに求めていないし、 ウインドウ出すだけでバイナリが数十MBでメモリは1GBですみたいなのは 嫌だなあという程度の判断基準しかないのでなおさらだ。

_ なおF#のサイト内のページを 見る限りでは、クロスプラットフォームとして挙げられているのは Avaloniaだけのようだ。 Avalonia.FuncUIは、Elmishみたいな DSLでMVUで書けるらしい。たしかにコードの見た目がそっくりだ。 コントロールの配置もそうだし、dispatchしてupdateで受けるところもそっくり。

_ そういえばFabulousというのもあった。 これはこれで特定のUIフレームワークに依存しないようなので、 内部でXamarin.Formsを使ったりすることになるんだろう。


_ 日中は雪だったらしい。作業やら打ち合わせやらで忙しくて外を見る暇もなかった。 そして室温が普段より極立って低いということもなく、夜に外に出たときには すっかり雨になっていたので雪の痕跡はもうなかった。

_ キャベツ太郎はソースのかかり具合にムラがあるのが愛おしい。 そんなキャベツ太郎といえば思い出すのは小野さんのDPZ記事の中でも 布団に並ぶマスターピースである (私見) 俺がキャベツ太郎だ!だ。 なおキャベツ太郎は芽キャベツの形状からインスパイアされた名称らしい


= 読書

_ An introduction to property-based testing | F# for fun and profitを読んだ。 FsCheckはF#のことをほとんど知らないときにC#で使っていた程度なので、 あらためて読んでみていろいろ得心するところがあった。とはいえ Parser Combinatorの件と比べるとそこまで道具づくりに深入りせず FsCheckの話に進んでおり、またFsCheckでできることを網羅しているわけではないし、 そもそもあまりボリュームが大きくないのであとはドキュメント見て自分でいじってね というお話なのかもしれない。というより未完なのかも。

_ Reflections on Trusting Trustも読んだ。 ThompsonがTuring awardとったときの記念講演でloginに バックドア仕掛けたときの話をした、という話 (Thompson hack) は、話としては 知っていたが実際にThompson自身が記述したものを読むのは初めてだった。 Quineのの冒頭で ThompsonがQuineは一度書くことをおすすめする的なことを言っていたらしい、と 書いていたがこのレポートの話だったらしい。

_ レポートは仕掛の概要しか書かれていないし、あまり長くない。なので さらっと読んでしまうとそのすごさが分かりづらい…というか中途半端な 理解になってしまいがちだ。 自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報は、 実際にそれを試してみた内容を解説してくれており非常に勉強になった。


2021/01/29 (Fri)

_ 今日はさほど寒くない。そして天気もよい。


= UIのはなし

_ そういえばReact Nativeというのもあった。もともとReact自身あまり 好きになれないところがあり、それにNativeがくっついたから好きになるということもなく、 好き嫌いを言うほど中身を理解しているわけでもなく (言ってるけど)、つまり あまりいい印象がなくて近寄っていない。

_ SAFE Stackのときに触った ElmishFableは React Nativeにも対応しているようなので、SAFE Stackに馴染んでいれば その知見がそのままスマホやデスクトップアプリに使える…かも? というのは 大きいかもしれない。

_ それにしてもザッカ〜バ〜グがHTML5が云々と言っていた頃に、 着々とこういうものを作っていたんだなあ〜と思うと私の反応は随分と能天気だったもんだ


= 左足 41日目

_ まだ痛みから完全に解放されたわけではないし、 ジョギングなどができるようになるのは、もっとずっと先だろう。 これまで運動不足解消のために行っていた運動はジョギングしかなかったので、 当分は歩いたり他の運動によって補ってゆくことになるだろう。 歩くにしても、運動のために歩くということができるようになるのはまだ 半月以上先なので、今のうちにいろいろと準備というか算段をしておきたい。

_ ジョギングの場合は毎日同じコースであっても別に苦痛を 覚えることはないのに対して、歩き、散歩の場合はどうも苦痛に思える。 長距離を歩いて移動するというのは決して嫌いではないが、 それを繰り返し行うことを考えるとちょっと億劫に感じる。 歩いて距離を重ねること自体に対する喜びはある。 なので近所を繰り返し歩きまわる (不穏な表現) をするにあたり、それが 何らかの実績として蓄積されてゆくのであれば、 苦痛が逆転して快感になる (不穏) 可能性は十分にあると思う。 てくてくエンジェルもけっこう長いこと使っていたからなあ。なつかしい

_ といった調子なので、普段から歩くことに対して何らかのフィードバックを 必要としている。ひらたく言えばゲームみたいなものだろう。 歩くことがゲームになるというとIngresとかポケモンウォークとかがあるのだろうが、 どうもあの手のものにはさほど関心がない (てくてくエンジェルは?)。 もっと素気ない、単に歩いた道路が塗りつぶされていって、 距離が加算されていって、というのが 可視化されるような感じの方が好ましい。ちょうどキクニさんが 著書で書いていたような、 地図の道路を塗りつぶしてゆくような感じ

_ 今ならスマホを持って歩くのは当たり前のような感じなので、自分の気が済むような アプリを作ってみようかなあ〜という気になっている。 仕事でAndroid関係のアプリを書くことはあるが、UIに関する部分を徹底的に 忌避しているのでちっともそのあたりのスキルが上がってゆかないという問題もあるし… まあいざやろうと思うとまたReactNativeだとかなんだとか、いろんなものが 気になって、気が散るんだろうし、結局スマホ側はデータロギングに専念して、 PCでなんかする、という話になりがちな気がしないでもない。それならそれでよい



= 読書

_ Six approaches to dependency injection | F# for fun and profit。 そもそもOO系の言語で使われるDIというやつのことをよくわかっていなかったので ついでに理解できるかとちょっと期待したのだが… そういうわけにもいかなかった。 わかっていないといっても、DIが何をしようとしているのかはさすがに理解しており、 わかっていないのはDIコンテナが何を解決しようとしているのかというあたりだ。


2021/01/30 (Sat)

_ 今日はかなり寒いようだ。毎日変化が激しい


= Tiny Core Linux

_ この先の人生でUSBメモリにブートイメージを書き込んで、 うまくいかなくて (いかないのか) … というようなことを あまりしたくなくなってきたので、最後の1回としてiPXEのUSBメモリを作ることにした。 公式の手順ではディスクイメージを ddしなさいと書いてあるが、稼働中のマシンでddのofに/dev以下を指定することが できるほど人類は進化していないので、VMを起動してその中で実行したい。 UbuntuのISOとかはでかいのでもっと小さいものはないのか…といろいろ探した結果 Tiny Core Linux というものを見つけた。ほどほどに使える感じのものが11MBという サイズですばらしい。起動の速さに驚く。 そしてアプリを起動するとマウスカーソルがその付近に引越す、 チューチューマウス (懐) 的な動きに二度驚いた。個人的にはただでさえ 見逃しがちなマウスカーソルを勝手に動かされてしまうのは苦痛なのであまり 好む動きではない。

_ そしてVMware がうまいことUSBメモリをGuest側に見せてくれないようで VMの中でメモリを作る計画は失敗した。うぬぬ



= iPXE

_ その後紆余曲折の後iPXEのUSBメモリを作ることができた。 ソースからビルドしてx86_64とx86を両方作って、 ARROWS TABでもブートできるようになった。 そしてそのへんに転がっていたUSB-EthernetアダプタをUSBハブ経由でつなげてみたところ ifstat できちんとそいつが出てきたので、あとは以前作ったdnsmasq環境経由で どうにでもできる…はず。 なおTiny Core Linux では後からアプリを追加するにはどうすりゃいいの? という 悩みを解決する意思が乏しく結局Ubuntu Desktopで済ませてしまった。 11MBで済んでいたはずのものが気付けば2GBに… 手順は Making a UEFI bootable iPXE USB drive - GitHubを参考にしたが、 まあFAT32のパーティションつくっているだけといえばそれだけだな…

_ それにしてもARROWS TABは解像度が高いので文字が小さくてたいへんだ。 ともあれこれでARRWOS TABで別の何かを起動する算段がついたので、 ひとまずCloneZillaでバックアップとって、その後にUbuntuでも入れてみようかなー




Zinnia (zinnia@risky-safety.org)
Back