近未来的居酒屋風景

社長:飲んできました。

経理:領収書は?

社長:いや、あそれこはデフォでは出さないし。今日はやり残した仕事が気になったので40分で帰ってきました。おとおし+季節の野菜系つまみx4+キリン生中+竹鶴ハイボールx2で3,950円。なんか計算上3,949円だったようなんですが、切り上げてましたね(笑)。私は財布を持たないので現金、特にコインてほんと嫌いなんで四捨五入は良いですが、あそこもカード使えるようになったらお釣りの単位は1円未満でもウェルカムなのに。

基盤:40分で4,000円て、時間単価的にはうちのレンタルサーバの2,000倍ですね。

開発:例の、外装が万年クリスマスというかナイアガラのようになってしまった居酒屋ですか。

社長:そう、数日ぶりに行ったんですが、入った時にハッとしました。

基盤:めっちゃ可愛いバイトの子が居たとか。

社長:いや、そういうのじゃなくて、いつもはすすけた感じの内装が、今日はまばゆいほどにケバケバになってたんです。竜宮城ですかってくらい。

基盤:クリスマスにはまだ半年以上ありますけど、内装の切り替え早過ぎませんか?

社長:それで、一体どうしたんですか?ってマスターに聞いたら、あ、いけね切り替え忘れてましたって、何かスイッチをプチってしたら、一瞬でいつもの内装に戻ったんです。

開発:ああ、内装が液晶とかで出来てるわけですか。

社長:まあ液晶ではなくて、電子インクというか電子ペーパーですね。最近安くなったので、まさに紙として壁紙に使ってるそうです。

経理:この頃は1平米3千円くらいで買えるようですね。ちょっと高めの壁紙程度。

社長:それで、もしやひょっとしてこの木目のテーブルも?って良く見たら、やはり電子ペーパーでした。こっちは強度の問題もあるし、ちょっと値がはる4Kの電子ペーパーだそうです。

開発:ならそれ、ディスプレイとして使えそうですね。

社長:ええ、そう聞ききました。そしたら、いやー社長さんはそっち系詳しいでしょうけど、おいらトンとそういうことは苦手でって。でも、なんか機能をイネーブルすれば普通にディスプレイとして使えるそうです。料金も最初の720時間は無料だとか。しかもですよ、よく聞くとあれ、ディスプレイとかそんな単純なものじゃなくて、どうやらかなり総合的なITシステムらしいのです。もとは店内のオーダーシステムとして作り始めたらしいんですが。せっかくあるのになんで活用しないんですか、私がちょっと使ってみせますよってことになりまして。

基盤:インターネット喫茶の居酒屋版みたいな感じですかね。

開発:いやー、私たちの世代だと、喫茶店のテーブルが全部インベーダーゲーム卓になっちゃった経験をしてますからねー。違和感無いです。

社長:基本、店内に見えるもの全体が、穴あきの仮想デスクトップ的にべたコントロールされてて、あの店の壁面規模だと16,000 x 32,000 ピクセル程度の解像度だそう。入力は不定数のマルチポイントなんですね。だから何人かで共有する大きいウィンドウを作ったり、お一人様用のディスプレイを切ったり、自由自在なんです。YouTubeとかはもちろん無料。テレビとかの有償コンテンツも見れますが、秒単位での課金だそうです。

開発:あの映画に出てくる「私からです、よかったらどうぞ」ピっ、みたいな使い方もできるんですか。

社長:はい。今日見た操作方法は、自分のメニューから人のテーブルにメッセージ付きでドラッグ&ドロップするみたいな感じで、見栄え的にイマイチでしたが。オプション料金取られるので入れてないそうですが、カメラシステムも入れると人のジェスチャを分析してそういう意味に割り当てるこもとできるみたいです。

社長:となりの人と将棋さしたりとか、まあ普通にパソコンやらスマホやらでできることは、当然にできるわけです。空間的に広いので、ダーツみたいなゲームアプリも臨場感ありました。やはりそういうのって、自室で一人で出来たとしても、つまらないですからね。

広報:フィーリングカップル5x5みたいな感じのアプリもあると良いですね

基盤:パブリックビューイングとかの世界も変わりそう。

開発:なんか、スマホ持ち歩く必要なくなりましたね。もはや無用の短物。

経理:ポケベルみたいに歴史の中に消えてなくなるのですね。

社長:そうね。これからは、行った先々の目に入るもの触るものが全てパソコン。みたいな世界になるでしょう。自分で携帯する必要がない。5Gとか6Gとかもいらないですね。手ブラコードレスです(笑)。天動説への回帰ですね。

開発:それで、そいつらってやっぱり、ラズパイでできてるわけですね。

経理:持って歩くのはマイナンバーカードのみってなるんですかねー。

基盤:もしくはQRコードの刺青とか。

--
2020-0603 SatoxITS

WordPress仮想マシンの作成

開発:だいぶ様相も見えてきたので、そろそろ本気の開発環境を作りましょう。

基盤:要件は。

開発:ブラウザとサーバの開発環境がまるっとはいる一番手間いらずの標準的な開発環境ですね。

基盤:やはりLinuxですかね。

開発:ですね。昨日、macOSにMozilla開発環境インストールしかけたんですが、suで/usr/localとかいじりたがるので勘弁して欲しいわ。生活環境と隔離しましょう。まあ、chroot とかする手もあるけど副作用もありそう。ここは社長のMacへのこだわりはおいといて。

仮想マシンの作成

基盤:ではUbuntu 18 の仮想マシンで、まともなリソースを割り当てたやつを作りましょう。といっても、30GBあれば十分でしょうけど。

基盤:もちろんVMホストは信頼と実績の Hyper/V で行きます。ゲストは ITS more 2020 標準の Ubuntu 18.04.4。手元にある ubuntu-18.04.4-desktop-amd64.iso で行きます。今回はクイック作成じゃなくて普通に作成。ん?この第1世代、第2世代ってなんですかね?まあうちは過去との互換性は不要だから第2世代で。起動メモリは1024MBですかね。どうもこの動的メモリを使用っていうのが、メモリ不足で立ち上がらなくなるシャットダウンもできない原因のような気もしますが。。仮想ハードディスクは最大32GBでよろしくと…

基盤:あれ、ブートできないですね。どうも第2世代というのがダメくさい。どうせうちは旧世代ですよと。プチっ。おー、立ち上がった。ホスト名とユーザ名を決めてGo。。

基盤:あらかじめどう構成するか決まってれば、ここまで10分はかからないですね。5分かな。

開発:そのへんは、クラウドでも同じですね。でも、やはりデスクトップが見えるというのは、ローカルに作るVMの圧倒的な強みというか安心感ですねえ。というかこのHyper/V、VMwareより好きになりました。RemoteDesktop もバッチリだし。

経理:Windows 10 Pro入り Lenovo機カッコ消耗品、めっちゃモトが取れましたね。

基盤:で sudo halt して停止してスナップショットとか… あれあれ?停止で固まりますね。うーぬ、su shutdown now。これならいいのか。

開発:その、動的メモリ割り当ての最大値の意味が不明ですね。1048576MBっていったい…

基盤:「メモリが足りなくて起動できません」とかいうエラー、こいつのせいかもですね。とりあえずmax 2048MBにしときましょう。で、さて、この時点でVMファイルのサイズ、8.6GB となりました。

開発:これが第1基準線ですね。記念写真をパシャ。

基盤:VMファイルを圧縮してみましょう、… 時間かかりますね。というか何故全くプログレスしないのか…CPUは食っているのに。おっといきなり進行・終了。5分くらい?で結果がこれですか。

開発:おー、8GB が 2GBになりましたか。1/4。まるごとたくさんアーカイブしとくのには良いですね。

基盤:外からアクセスしたいのでブリッジ型のネットワークアダプター付けときましょう。

開発:このへんはVMwareならデフォでついてるのにね。

基盤:で ifconfig。おおー、無い!最近はこれは使わないのかなぁ。sudo apt install net-tools。無いと。netstat も無い。廃止されたのか。ふむ。なるほど、ip a でみろと。

開発:IPAみたいですね (^-^)。というか、もうGUIでみようよというオチとか。

基盤:で、外向け ssh は繋がりますよね。と。OK。あれ?外からコネクト出来ないですね・・・自分からも Connection refused。どうするんでしたっけ?man sshd、ありゃ無い。sudo apt install ssh。で ssh localhost。つながった。で、公開鍵で認証するようにして・・・OK 。自動認証したいので、ssh-agent 起動して、ssh-add -s xxxx。ssh。OK 。

開発:自動認証はMacだと .ssh/config に一言書いておけばOKなんですけど、どうれやればそうなるんでしょうね。

基盤:さあ。・・・あ、.ssh/config に Host * AddKeysToAgent yes って書くだけで良いみたいですね。らくちんらくちん。

開発:とりあえずVMのファイルがちょうど10GBになりました。一旦パワーオフして 、zipに固めて。その間に一服しましょう。

基盤:ところで、鍵をVMの中に置いときたくないんですが、リモートの鍵ストアみたいなのはないんですかね?

開発:さあ。とりあえずSMBマウントでいいかなって気もしますが。

基盤:あ、du で見ると du vm は 11GB、du vm.zip は2.2GBになりました。 ゲストで見ると df / は 5.8GB で 19%。

Golangインストール

開発:いい感じですね。では Golang を。あれれ?なにか警告されますね。

基盤:まあ捨ててもいいVMですし。sudo snap install go --classic。えいっ。一瞬でできましたね。Goちっちゃ!。でも600MBくらい食ったか。

$ go version
go version go1.14.4 linux/amd64

開発:Macの上のが go1.14.3 だから、ひとつ新しいですね。

SMBインストール

基盤:昨日のSMB経由GoogleDriveのマウントしてみますか。sudo apt install cifs-utils・・・おや?obsolete だとか。

$ sudo apt install cifs-utils
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package cifs-utils is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

開発:Azureお仕着せの18.04.4にも、Hypver/V用の18.04.3にもあったんですけどね。SMBがなくなるってことないですよね・・・

apt-get update実行

基盤:apt search cifs・・・なんかありますね。sudo apt install smbclient ・・・あ、なんかうごいた。Not Fund ... apt-get update してはいかがとメッセージが。そういえば前にもそんなことを言われましたね。パッケージのデータベースが更新されて無い的な・・・

% sudo apt-get update
・・・どどどど・・・

開発:なるほど (^-^;

基盤:なんで apt install golang とか cifs-utils の時にこういう事を教えてくれないんですかね。まあいいや。これで、cifs-util も golang もふつうに apt install できました。ディスク使用 23%、7.1GB 到達。

GoogleDrive / SMB マウント

基盤:でもって、$ sudo mount.cifs //192.168.10.10/G $HOME/GoogleDrive -o user=・・・。OK。問題無しですね。

開発:zip して一服しますか。

基盤:さて、終わってるかなと・・・げ?

基盤:あ、終わった。おどかしやがって。でも・・・

開発:いきなりでかくなりましたね。

基盤:実態は7.4GBですからね。GoogleDriveをマウントした時にディスクが汚れたんですかね。なにかのキャッシュとか。ゼロを詰めるとかやればいいんでしょうけど。

開発:いずれ検討しましょう。ではわたし的にはいつものDeleGateのコンパイルで性能を測定・・・おお、所要1分25秒。ほぼ最速ですね。

WordPressサーバの構築

WordPress

開発:さて、それでは WordPress 行ってみましょうか。何をどうインストールすればいいんでしょうね?

基盤:さあ。とりあえず apt search wordpress ・・・なんか、プラグイン的なものばかり・・・あれ、でもこれ、その名も wordpress とありますね。

wordpress/bionic,bionic 4.9.5+dfsg1-1 all
  weblog managerwordpress-theme-twentyseventeen/bionic,bionic,now 4.9.5+dfsg1-1 all [installed,automatic]
  weblog manager - twentyseventeen theme files

社長:われらが愛しの TwenteenSeventeen がありますね。インストールしといてください。

開発:これはさすがに先人の知恵をお借りしましょう。

基盤:Ubuntu 18.04 にWordPress ・・・何人か書かれてますね・・・2020年05月16日updateとあるので、このQiitaの方のにしましょう。まず Apache・・・ああもともと入ってますね。起動するだけか。つながった。

基盤:つぎはPHP。OK。次は、、MariaDB ?なんですかねこれ? apt -y install ・・・。おや、エラーが。バージョンが不整合とな。

開発:なんかそれSQLみたいですから、手作業でmySQLを設定すればいいんじゃないですかね。

社長:SQLは他の用途にも使うので、GUIのを入れといてもらえるといいな。

開発:そうですか。Ubuntu SofotwareをmySQLで検索・・・いくつかありますね。mariadb で検索。いくつかありますね。うーん、このBeeKeeper Studioが2020-05-05版で、★★★★☆みたいだからこれにしてみますか。インストールして起動。んー?rootユーザのパスワードってなんですかね?

基盤:mysql のコンフィグに書いてあるんじゃないですかね。んー、cd /etc/mysql; sudo grep -i pass * ・・・ debian.cnf にありますね。でも、管理者は root じゃなくて、debian-sys-maint みたいですが。

開発:どれどれ debian-sys-maint ログイン。ああ、入りました。それで CREATE ほにゃらら SQL 文を食わせて。SHOW。おー、できてる。

開発:ということであとはWordPress本体ですね。

基盤:えーと、wget。12MB?ちっさ!展開しても49MBです。

開発:4月30日付けってのは、うちで使ってる5.4.1のことですかね。

開発:さあ。それで wp-config.php にデータベース名とユーザを設定して、おもむろにアクセス!

開発:おーっ、ぱちぱちぱち。出ましたね。

基盤:でサイトを作ってダッシュボードへ!

開発:おーっ、5.4.1 ですね。

基盤:仕上げの TwentySeventeen!

開発:やったー!パチパチパチ。

社長:おー、我がオンプレミスの TwentySeventeen ですね。

開発:もうさっさとXSOから撤収しましょう(笑)

基盤:ここまで工数的には、Ubuntu VMの作成に2時間、WordPressのインストールに2時間、という感じでした。まあ、慣れてれば全部で1時間という感じでしょうか。

社長:でも、慣れてないと1日では終わらないよね。いっそこういう仮想マシンごと配布してくれちゃえば良いのに。まあうちでやっちゃっても良いけど。

開発:ライセンス的にどうなんですかね。

基盤:サイズ的には、df で 7.98GB、VMとしては、ZIPして4GBになりました。

開発:でもおそらく、ファイルのキャッシュとかディスクのゴミが1GB以上あるから、ISOにしたら3GBくらいになるでしょうね。

基盤:とりあえず必要そうなファイルのサイズだけ見てみましょうか。

$ time sudo tar cfzv - --exclude=kcore --exclude=cache --exclude="*snap" --exclude=swapfile / | wc
6103048 35076761 1702021288

real	4m43.588s
user	4m1.118s
sys	0m17.548s

基盤:1.7GBですね。まあでも、この手動でやった一連のインストールを自動的にやるスクリプトを配るだけでいいんじゃないですかねぇ。

めっちゃスケーラブル・ラズパイクラスタ

社長:さてさて。それで次なる興味は、これが同じようにラズパイで動くかなんですが。ちょうどいまゆうパックで2つ届きました。長野県から。

経理:また買ったんですか?

社長:いやー、4GB版というのも試してみたくてですね・・・2GB版のほうは4,620円でしたし。それと「ラズパイ・クラスター」とかやったら面白そうだなーって。

開発:ノンストップ・コンピュータってやつですね。高信頼WordPressサーバクラスターとか。

広報:イメージ湧いてきました。キャッチコピーは「めっちゃスケーラブル」とかどうでしょうか。

社長:我社のライバルはAzureとAWSです(笑)

経理:まとめ買いを割引してくれると良いですね。

ブラウザ開発環境

開発:さて、本題のブラウザ開発環境なんですが。

基盤:ちょっと休みましょう。

社長:そろそろ飲みたくなって来たのですが。

経理:まだ5時前なので、店が開いてないでしょう。

開発:その前に作業机の上の、この10年ものの青いキシメンを一掃したいですね。まともなケーブルに変えてネットの性能測定も早くやりたいのですが。

経理:今日アマゾンからCAT6Aが届くはずなですが。

基盤:あ、いま外に出たらドアに立てかけてありました。

社長:なにー!最近のクロネコはけしからんな。ピンポンすらしないのか。しかも宅配ボックスにすら入れないというのはどういう了見?

開発:例のあれで甘やかされ過ぎましたかね。

社長:そういえば佐野ラーメンどうなったかな。

基盤:開封!おお、なんだこれは。ふやけ系のうどんのような。お伊勢参りですか。

開発:CAT6の太いよりひとまわり以上太いですね。

基盤:それでまず熟成キシメン5eだとこう。

基盤:で、ふやけうどんだとこう。

基盤:あれ?

開発:いや、これは再現性は低いんで。ばらつき大。ベストの値を見たいです。

基盤:これとか。

開発:きしめんでもこれくらいまでは行きましたね。MTUはどうなってますか?

基盤:9000ですが。

開発:うーむ。ちょっとこの、20個も開いているOperaを閉じて図りましょう。

基盤:代わり映えしないですね。これってどうやって測ってるかわからないですが、たぶんサンプリングだと思うんで、まあ目安の数値みたいな感じなのでは。

開発:実質的なデータ転送をGoogoleDriveとの通信でやってみますか。例のやつ。

基盤:こんな感じですかね。

基盤:アップロードで35MB/sつまり280Mbps出ています。並列にやってみたりすると。

開発:450Mbps出ますね。このへんはもう、ネットワークじゃなくてサーバの処理能力かディスクI/Oで律速されてる可能性がありますね。まあ4月に計測した時もそうでしたから、最高速度的には、こういう事なんでしょう。

社長:キシメンにも良いのと悪いのがあったということですね。確かに、4月頃に使ったやつは、ちゃんと使えてた実績のあるやつでした。

開発:後はこのv6おまけルータより外でやったらどうかということですね。ただ、まあこれで十分だという気はしますが。

経理:ところでこのインターネット通信て、従量制じゃないですよね?

一同:ドキッ

社長:まあいずれにしても、Macの通信が遅いなどということは全く無かった、という結論ですね。

開発:ただ、ノイズにデリケートで、Etherの通信速度の自動認識を低めに設定しがちという可能性は否定しきれいませんけど。

基盤:Macの性行ですかね。わたくし、腐ったキシメンなどお相手できませんのオホホみたいな。

社長:そういえば、うちも光テレビというのにすると良いかも。

経理:今現在、ケーブルテレビに月4,400円払ってますから、めっちゃ削減できるかと。月額基本料金1,500からのようです。

社長:CSのゴルねというのを見てみたいです。

基盤:浮いたぶんでもう一本ギガビット回線引けますね。どのくらいバンド幅食うのかな。え?20Mbpsで十分なの?・・・まあ確かに、動画ってそんくらいか。

Firefox

開発:さてそれでは、問題のFirefoxです。昨日はどこだったからかえっちらおっちらしましたが、せっかくなのでこれも apt でやりたいですね。

基盤:apt search firefox する。これですかね?

firefox/bionic-updates,bionic-security 76.0.1+build1-0ubuntu0.18.04.1 amd64 [upgradable from: 72.0.2+build1-0ubuntu0.18.04.1]

開発:さっき更新する前のがそれだったみたいですね。更新したら、今の最新は77.0となりました。

基盤:じゃ問題なさそう。sudo apt install firefox。あれ?50MBしかない。ああ、これってバイナリかな(笑)firefox-dev。あれ、これも250KBしかない。もともと入ってたとか?firefox-dbg。おっとこれは、462MBある。でもあっという間にダウンロード。うーん、ソースっぽいの入ってない。

開発:機能落としてきたやつでやりましょう。

基盤:じゃ、./mach bootstrap ... うおー、なんかすごいぞろそろと… Mercurial から名前聞いてきましたけど?

社長:私の本名とEメールで。

基盤:ラジャー。。。うー、いったいくつ質問に答えればいいんだ。。。なんか30問くらい聞かれましたね。途中から読まずにYes になりました。ふー。では Mercurial のレボジトリーを自分のホームのクローンすると。Go!

開発:これは時間かかりそうですね。一服しましょう。

社長:こういうQ&Aこそ、アクティブなフォームになってれば良いのにねえ。。。あ、ひらめいた。ドメイン名とっとこう。うーん、.app は2,480円か。高嶺の花ですね。

経理:くれぐれも .inc はクリックしないでください。

社長:いつかは .inc、取ってみたいね。

基盤:終わりました。30分くらいかかりましたね。

開発:df は 63%到達。さすがにVMもデカくなりました。まあ、エクスポートかなんかすれば身綺麗になって小さくなるでしょう。

開発:で、ここからどうするのかな?ただ変更して make すればいいのだろうか?

社長:ちょっと待った。このままずるずるとやってると今日も飲みに行きそびれてしまいます。ここで一旦、アルコール・ブレイクにしましょう。

Mircurial

社長:与太話を書いてたら戻るのが遅くなりました。それで、どうなりました?

開発:いえ、我々も今再開するところです。

基盤:それはそうと、今日届いたギガビットのハブですが、電源コードが15A行けそうなぶっといやつで、全然昔から進化してないですね。100Vで4Wなんですけど。電源系は、昔からACアダプタ乱立とか電池形状とか、どうにもなりません。

開発:まあきっといずれ、全ての電源はUSB-Cになるんでしょう。丸型プラグのACアダプタってもうなくなるなるんじゃ無い?情報ラインとの統合もされるのかな。まあでも、スターじゃなくてリニアバスがいいんだけど。

社長:それでそもそも、Mercurialて何なんですか?Firefox的には、Gitのオルタナティブらしいから、バージョン管理システムなんでしょうけど。

開発:Wikiにも、分散型VCSだって書いてありますね。「その一方で、Mercurial には、統合された Web インターフェイスが含まれており、グラフィカルユーザインタフェースの拡張機能が利用できる。」。それ使いたいな。でも、とりあえずソースをちょこっといじってmake してみたいだけなんだけど。

社長:まず make しましょう。

基盤:make しようとするとまず rustc が無いと言ってきますね。サビシー。sudo apt install rustc。次は cbindgen が無いと行ってくる。うーん、このあたりは昨夜、Macでやるとして通った道なんですがやり直しですか。apt にはない。ああ、cargo install cbindgen ですか。Go!。うわ、めっちゃなんかやってる。休憩しましょう。

開発:やれやれ。あ、まだやってる。

基盤:ていうかこれ、Marcurialでやればコマンド一発なんじゃないですかね。んー、でもそのためのセットアップなのかな。あ、終わった。10分くらいかかりましたかね。

Installed package `cbindgen v0.14.2` (executable `cbindgen`)
warning: be sure to add `$HOME/.cargo/bin` to your PATH to be able to run the installed binaries

開発:ああ、これ昨夜Macで見ましたね。

基盤:PATHに入れてと。./mach build。あそうですか。cargo install rustfmt。。。またまた時間かかりそう。それにしても、$HOME/.xxx/bin てどういう感覚ですかね。隠れて開発したいとか?

開発:たぶん、かなり進んで来ているとは思うんですが、ここまでインストールするのに既に2時間くらいかかってますよね。開発環境まるっと入った仮想マシンがあればいいのに。あ、というかあるっていうんで取りに行ったら、サイトごとなかったというわけでした。

基盤:あ、終わった。./mach build。今度は cargo install bindgen。ていうか、なんでこれ、エラーメッセージ出すだけで、自動的にやってくれないんですかねえ。

開発:ひとつひとつ、ありがたく頂戴しろよって感じなのかな。

基盤:clang と libclang が not found ってどういうことでしょうね。想定しているパスが違うのかな?PATHを検索してくれればいいのに。おや?こんなこと言ってますね。

Please install the necessary packages, run `mach bootstrap`, or use --with-clang-path to give the location of clang.

開発:ぐぐりましょう。

基盤:ありました。https://bugzilla.mozilla.org/show_bug.cgi?id=1557030

***

基盤:いろいろ調べ回って、.mozconfig の事を少し理解しましたが、結局 clang というコマンドが見つからない。インストールされてなかったから。ということでした。sudo apt install clang。で前進。./mach build

0:07.56 ERROR: nasm 2.14 or greater is required for AV1 support. Either install nasm or add --disable-av1 to your configure options.

% sudo apt install nasm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
nasm is already the newest version (2.13.02-0.1).

基盤:とほほ。.mozconfig に --disable-av1 を追加。./mach build。

開発:おおっと、通過しましたね。なんかバリバリはじめましたよ。

基盤:一服して来ます。。。

基盤:お、ついにコンパイルをはじめた!Warning出まくり(笑)

開発:ほとんどが int と unsigned int のミスマッチですね。

基盤:そういえば昨日、ああもう一昨日になってしまいましたが、やった回線速度の測定の時に、ラズパイが遅いのが気になったんです。あれもキシメンのせいかなと思うんで、この時間にまた測ってみます。

基盤:あれ?VNCがつながらない。。ああ、ルータをリブートしたんでDHCPでアドレスが変わったんですかね。直にHDMIで見ますか。。。あれ?映らない。キーにもマウスにも反応しませんね。HDMIの信号は出ているようですがスリープしてるんでしょう。真っ暗。

開発:スリープとか意味ないですよね。切っときましょう。

基盤:しかしつながらないですね。画面が反応しない。この999円のプラケーススイッチ、ちゃんとHDMI通してるんですかねぇ?メーカ名も生産国も書いてないというこの怪しさ!どうせあのコロナを輸出した国製なんでしょうけど・・・ムッカー!!

開発:まあ、こういう時って、往々にして物理層がキレてますよね。。。

基盤:あ、USB抜いてました。VNCにしたし、もういらないかなって(笑)。さて fast.com で測定と。。あれー、70Mbpsくらいしか出ないですね。ifconfig によれば、接続は1000Mbpsだって認識してるんですが・・・

開発:Firefoxのコンパイル、いったいいつまで続くんですかね。

基盤:何をどういう順番でコンパイルするのか知りませんからねー。もう34分経ちました。それにしてもあのバグトラッキングシステム、読んでて頭痛くなりました。切れ切れの憶測コメントの連鎖みたいな。そのうえ結論を誰かがまとめてるようでも無い。昔からああいうBTSとかITSとかってどうも苦手なんです。そもそも「どうしてそういうエラーが出るか」を追跡する手段を明確に提供してくれれば、あとはこっちで追跡するんで、その方法を一言書いてくれればいいんですよ。憶測はいいんで。なぜそういうエラーを出したかは、そのエラーを出したシステムが知ってるわけだから、そこをちゃんとわかりやすく作るだけで、どんだけ人間の労力が減って生産性が上がることか。

開発:まあ一般論としてはそうだけどね。今回われわれは、Mozilla どころか Linux の apt に経験も知識もなくやって来て、憶測で作業をやっているわけですからねえ・・・

基盤:あ、コンパイル止まった。44分15秒地点。

開発:人間向けのエラ〜メッセージではないですね(笑)

基盤:error: could not compile 'style' って、あの <style> の処理系ですかね。どきどき。とりあえずもいっちょ./mach build。。あれ?違うところでエラーが出た。

 0:08.54 error: failed to run custom build command for `webrender v0.61.0 (/home/ysato/mozilla-central-9c1b2859111c/gfx/wr/webrender)`
 0:08.55 Caused by:
 0:08.55   process didn't exit successfully: `/home/ysato/mozilla-central-9c1b2859111c/obj-x86_64-pc-linux-gnu/release/build/webrender-973279d8005d2f44/build-script-build` (exit code: 101)

基盤:exit code: 101 ってなんですかね。なんか、コールスタックのトレースまでしてますが。

開発:ひょっとして、メモリが足りなくてメモリの allocに失敗したとかじゃ無いでしょうね。まあ、だったらその時点でエラーを出すだろうとは思いますが。コアダンプしている感じもなく。でも再現性がないというのがどうも。2GBじゃ足りないのかも。もうちょっと足してやりましょう。あれ?そもそもVMホストPCのディスクがもう満タン近いですね。。これが原因かも。でっかいファイルをOneDriveにどんどこ移しましょう。ぽいぽいぽいぽいっと。おー、OneDriveへのアップロードも、並列にやると500Mbps出ますね。

基盤:OneDrive にしろGoogleDrive にしろ、高速に使いたかったら並列転送にしろということですね。ファイルの前半と後半を並列転送するなんていうcopyコマンドがあると良いかも。

基盤:それでいつになったら作業再開できますか?

開発:いやそれがね、VMを止めてその40GBをZIPを始めたらいつまでたってもプログレスしないんですよ。ずーっとディスクにアクセスしてるんですが。。。うーん、直線的に読んでるだけなのに何で直線的に進まないんだろ。一体どういう圧縮アルゴリズムなんだ?すげー圧縮のウィンドウとか辞書がでかいとかですかね?今諦めて gzip にしてみました。これは着々と進んでます。それにしてもさすがにSSD、読み出しは100MB/秒超出ますね。Macのファイルシステムだとどうなだろう。

基盤:右クリックのコンテクストメニューに、zip じゃなくて tgz を作るメニューを入れると良いですね。

開発:しかしあれだよね。ディスクを暗号化していると圧縮が聞かないからこういうことは出来ないね。

基盤:暗号強度が保たれてて圧縮が効くみたいな暗号があったら面白いでしょうね。原理的になさそうですけど。

開発:おっと、おわりました。では、VMを起動します。

基盤:同じところにひっかかりますね。

開発:ビルド環境をインクリメンタルに作ってきたから、何か変な状態の中間生成物ができてしまってる可能性もありますね。一旦、生成物をクリアしてからやり直しませんか?

基盤:そうしましょう。では、make clean; ./mach bild。結果が出るのは1時間以上先ですね。

開発:また明日やりましょう。

基盤:そうしましょう。

--
2020-0603 SatoxITS