Firefoxのコンパイル

開発:やれやれディスクも広々となりました。再開しましょう。

基盤:mach build。。。今度はここで引っかかりました。

 0:08.71 cargo:rerun-if-changed=res/cs_clip_image.glsl
 0:08.71 --- stderr
 0:08.71 thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Custom { kind: InvalidData, error: "stream did not contain valid UTF-8" }', src/libcore/result.rs:1188:5

。。。

 0:04.41 .../mozilla-central-9c1b2859111c/config/makefiles/rust.mk:293: recipe for target 'force-cargo-library-build' failed
 0:04.41 make[4]: *** [force-cargo-library-build] Error 101

開発:このメッセージ、ぐぐっても何だかよくわからないね。最近起きてる問題みたいにも見えるんだけど。そもそもこれ force なんちゃらって、いかにもオプションなものみたいなニュアンスだよね。これを呼んでる rust.mk:293 のあたりをコメントアウトしちゃいましょう。

基盤:ラジャー。コメントアウト。再度 mach build。。。お、先に進みました。

開発:本体を通過してtoolkitに入った模様。

基盤:終わった?あ、エラーか。

15:19.10 make[4]: *** No rule to make target '.../mozilla-central-9c1b2859111c/obj-x86_64-pc-linux-gnu/x86_64-unknown-linux-gnu/release/libgkrust.a', needed by 'libxul.so'.  Stop.
15:19.10 .../mozilla-central-9c1b2859111c/config/recurse.mk:74: recipe for target 'toolkit/library/build/target' failed
15:19.10 make[3]: *** [toolkit/library/build/target] Error 2
15:19.10 make[3]: *** Waiting for unfinished jobs...

基盤:コメントアウト。再度 mach build。

 0:04.01 /home/ysato/mozilla-central-9c1b2859111c/config/recurse.mk:101: recipe for target 'js/src/build/misc' failed
 0:04.01 make[3]: *** [js/src/build/misc] Error 2
 0:04.01 /home/ysato/mozilla-central-9c1b2859111c/config/recurse.mk:32: recipe for target 'misc' failed
 0:04.01 make[2]: *** [misc] Error 2
 0:04.01 /home/ysato/mozilla-central-9c1b2859111c/config/rules.mk:390: recipe for target 'default' failed
 0:04.01 make[1]: *** [default] Error 2
 0:04.01 client.mk:125: recipe for target 'build' failed
 0:04.01 make: *** [build] Error 2
 0:04.01 49 compiler warnings present.

基盤:コメントアウト。再度 mach build。

 0:00.99 ./buildid.h.stub
 0:00.99 ./source-repo.h.stub
 0:01.55 49 compiler warnings present.
 0:01.57 Overall system resources - Wall time: 1s; CPU: 73%; Read bytes: 0; Write bytes: 1191936; Read time: 0; Write time: 13
To view resource usage of the build, run |mach resource-usage|.
 0:01.58 Your build was successful!
To take your build for a test drive, run: |mach run|
For more information on what to do now, see https://developer.mozilla.org/docs/Developer_Guide/So_You_Just_Built_Firefox

Your build was successful!

基盤:通った。

開発:通りましたね一応。「was」successful ってのがちょっと嫌な感じ。

基盤:どれどれ、わくわく、mach run!

u18$ mach run
 0:00.33 .../mozilla-central-9c1b2859111c/obj-x86_64-pc-linux-gnu/dist/bin/firefox -no-remote -profile .../mozilla-central-9c1b2859111c/obj-x86_64-pc-linux-gnu/tmp/profile-default
Couldn't load XPCOM.

Couldn't load XPCOM.

基盤:ズルっ。。

開発:なんですかね XPCOMって。DISPLAYみたいな環境変数かな?検索。「Cross Platform Component Object Model (XPCOM) is a cross-platform component model from Mozilla」。。あんだこれ?

開発:なんか設定というか、-profile で指定しているそれが変なのかな。しかし、ひどいエラーメッセージだねえ。それに、ただ mach run しろってビルドの完成祝賀メッセージにあるのに。

基盤:一つのマシンに一つだけみたいなのも嫌ですよね。いろんな版並行して走らせたいし。

開発:そもそもプロファイルって何なんですかね。ls -l。

u18$ ls -l tmp/profile-default
total 0
-rw-r--r-- 1 ysato ysato 0  6月  5 04:24 prefs.js
-rw-r--r-- 1 ysato ysato 0  6月  5 04:49 user.js
u18$ 

基盤:JavaScriptで書くみたいですね。デフォは空っぽなのか。なんか入っていないとまずいんでしょう。これも mach で生成してくれたりしないのかな。とりあえず、お手本を探しましょう。

u18$ sudo find / | grep firefox | grep prefs.js

開発:ふーん。

基盤:少し飽きたので、いたずらでもしますか。我が社のFirefox改良の第一歩!

開発:One giant leap for mankind WWW。で、どこで出してるんでしょう。

基盤:適当に grep。ああ、ここですか。

u18$ grep 'Couldn.t load XPCOM' */*/*.cpp
browser/app/nsBrowserApp.cpp:    Output("Couldn't load XPCOM.\n");

開発:ところで、一昨日リリースされたMozilla 77なんですが、証明書の管理がしやすくなったんだとか。どれどれ。

基盤:Anonymous User?

開発:なんだ、delegate.org のか(笑)。これ、何とかしないとね。

基盤:さて、もうビルドに必要なツールは完備したので、この環境でゼロからビルドしてみましょう。まず .mozconfig に ac_add_options --disable-av1 入れときます。

* * *

基盤:エラー出てました。

78:58.45 .../Firefox/mozilla-central-9c1b2859111c/config/makefiles/rust.mk:293: recipe for target 'force-cargo-library-build' failed

開発:でも、ここまで78分一気通貫でしたね。

基盤:コメントアウトしてmake。あ、config/recurse.mk出たのでこれもコメントアウトしてmake。通った。つまり、問題は3点だけでした。たぶん、マイナーな問題。

u18$ mach run
 0:00.34 .../Firefox/mozilla-central-9c1b2859111c/obj-x86_64-pc-linux-gnu/dist/bin/firefox -no-remote -profile .../Firefox/mozilla-central-9c1b2859111c/obj-x86_64-pc-linux-gnu/tmp/profile-default
--- MyMozilla (^-^)/(Jun  5 2020 12:17:04)
Couldn't load XPCOM.

開発:おー、仕込んでおいたメッセージが出ましたね。我が社初のMozillaソースコード改変。

--
2020-0605 SatoxITS

驚くほど簡単になってたディスク拡張

社長:Firefoxのmakeはどうなりましたか?

開発:それが、makeを走らせておいたら1時間くらい走った後にディスクフルで終わってまして。それでどうやってこの仮想マシンで使えるディスクを拡大しようかということであれこれ、1日潰してしましました。

基盤:そもそもがこれ作る時に、まあ32GBあれば足りるだろうと思って、Hyper/Vで仮想ディスクの最大サイズを32GBに設定してしまったのが敗因ではあります。Hyper/Vの、使ってる分しか割り当てないモードで作ってるので、上限を厳しくする必要はなかったのですが。

開発:ディスクを大きくするのって、バックアップして差し替えてリストアするとか、すごく面倒臭いイメージがあるので、何かもっと簡単な方法はないかなーと。別の仮想ディスクをつけたほうが良いかなとか、この際リモートドライブにしたほうがにしたほうが良いだろうかとか。

基盤:で、バックアップも含めていろいろ作業しようとしたら、そもそもあちこちの物理ディスクが満タンになってしまって身動きがとれなかくなってたんです。作業スペースとして50GB程度は欲しかったのですが、Hyper/VホストのLenovoのSSD 250GBも満杯、MacMiniの250GBも満杯。Googleドライブも今のところ100GBしかなくて満杯。あれって、1TB付きのサブスクリプションてまだ契約してないんでしたっけ?あと、Macには一応、3年前に買った4TBのHDDがついてて3TBばかり空いてるんでしすが、リモートにHDDというのにどうも抵抗感があり・・・

開発:1TBのOneDriveは十分空いてるのですが、どうも様子が変で。結果的に気づいたのは、OneDriveはマウントするとローカルにキャッシュを持つので「OneDriveに移動した」はずのデータが実はローカルディスク上にあったというオチでした。これを消して80GBくらいローカルSSDが空いたので、ようやく作業に着手できました。

基盤:念のためVMごとバックアップしてはおきましたが、実はバックアップ作業不要でした。必要な作業はこれだけです。所用時間約5分。

1. Hyper/Vで仮想ディスクのサイズ上限を変更する
 1.1 チェックポイントをマージして単一ディスクにする
 1.2 ディスクの上限サイズを変更
2. 仮想マシン(Linux)でパーティションを拡大する
 2.1 parted コマンドでパーティションをリサイズ (resizepart)
 2.2 resize2fs コマンドでファイルシステムに反映
1.1.1 チェックポイント削除前
1.1.2 チェックポイント削除後
1.2 仮想ディスクの最大サイズ変更
2.1.0 ディスク 満杯ですわ
2.1 parted コマンド起動
2.1、2.2 コマンド2発でインスタント拡大

社長:ひゃー、マウントしたまま拡張できるですか。まあ長年、そうあって欲しいものだと思ってましたが、イマドキのOSではそうなってるんですね。良い時代になりました。

開発:いずれやってみますが、縮小するとどうなるかですね。

基盤:デフラグ的に前のほうに詰変えするでしょうから、きっと時間がかかるでしょうね。でも、データ転送量的には数ギガバイトなら、まあ1分仕事かなという気もします。

開発:VMごと配る時に、中身がちょうど収まるサイズにしたら、ゴミの入る余地がなくなって、多少小さくなるかなとは思いますね。

--
2020-0604 SatoxITS

さらばIPv4

社長:IPv4をやめようと思います。

一同:えええええ!

社長:もうDHCPとかかったるいし。DNSだけでやりたいです。世の中ほとんどIPv6で通るようになっているのに、IPv4にこだわる必要はもう無いと思います。

開発:ですが、IPv4でしか通じないサイトもありますよね。

社長:それはプロキシなりなんなりでゲートウェイすれば良いと思います。少なくとも、社内、イントラネットではIPv6はもう、いらないと思います。

近未来的居酒屋風景

社長:飲んできました。

経理:領収書は?

社長:いや、あそれこはデフォでは出さないし。今日はやり残した仕事が気になったので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

LinuxにGoogleDriveをマウント

基盤:Linux用のプログラム開発環境、Hyper/Vの上のUbuntuですが、仮想ディスクをちっちゃくし過ぎて。開発用のデータが入り切らなそうで。

開発:あちこちへ持って回ったりスナップショット取るのを考えて小さめにしといたと。

基盤:なんかさっき、ホストをリブートした時に壊れて立ち上がらなくなっちゃって。自動チェックポイントとやらで救われましたが。容量の問題もあり、壊れる怖さもあるので、開発するプログラムは外部のドライブに置きたいかなと。

開発:いっそGoogleDriveにという計画でしたが。

基盤:そう、それやってみました。

FUSEマウントはダメっぽい

基盤:とりあえず先人のメモのとおりやって、GoogleDrive をUbuntuにマウントできました。

UbuntuからGoogleDriveをマウント

基盤:ここで気づいたんですが、GoogleDriveは接続時の認証のためにブラウザを(Firefox)を起動しようとするわけです。ところがSSHで入ってるとディスプレイは無いです。するとこんなエラーを出してきます。

u18% google-drive-ocamlfuse
Error: no DISPLAY environment variable specified

開発:DISPLAY環境変数!懐かしいですね。Xにも対応していると。あれ?そういえば10年前も、MacにXサーバ走らせて、DeleGateでXをトンネルしてリモートのFirefoxとかデスクトップ撮影とかしてた記憶が。

基盤:この場合は認証のためにだけに使っているので、特にGUIのブラウザでなくても良さそうですけどね。認証専用のCUIのHTTPクライアントがあると便利そうです。まあ、きっとあるでしょうけど 🙂

開発:ところでこれは、FUSEを使って実現してるんですね。以前試した時、SCP用のMacFUSEでしたけど、異常に遅くてビビったんですが。モデムですか?みたいな。

基盤:そう、それで恐る恐る測ってみたところ、スループット自体は3MB/秒くらい?出る感じなので、まずまずかなと思います。ところが、一つのファイルを作るのに(開くのに)数秒かかるという感じで、コンパイルとかこの上でするのは無理ですね。

開発:どうもFUSEってそういう感じのものなんですかね。

さすがのSMBマウント

基盤:それではということで、ホストマシン上でマウントしたGoogleDriveをSMBでマウントしてみようかと。まず、WindowsのGドライブにマウントされてるGoogleDriveを共有にします。

基盤:でこれをたとえばMacからマウントしてやると、こんなふうに問題なく見えます。

基盤:でここにデータがガンと書き込んでやると、80MB/秒くらいでイケます。

基盤:まあ実際GoogleDriveまで届いてるわけではなく、単にSMBサーバしているWin機に送り終えてるだけですが。でも割と速攻で、前にも測定しましたが10秒くらいしてsyncしてくれるようです。↓

開発:やはり、ローカルで書き込みがあるとすぐに、背景色のついた受信が起きて何やらクラウドとネゴして、10秒後くらいに転送を始める、というパターンですね。

基盤:GoogleDrive上で直に書き込むと、毎秒35ファイルくらい作れますから、FUSEでマウントした場合の1ファイル5秒(0.2ファイル/秒)の100倍以上は速いということになります。作業用のドライブとしても十分使い物になりますね。

基盤:ただどうも、APPLEのCCがハードリンクでも使ってるんでしょうか?ファイルのリネームに失敗してコンパイルできないですね。

開発:まあ、Ubuntuの gcc で出来ればとりあえず良いのでは。

Linux ー SMB ー GoogleDrive

基盤:で、まずSMB(CIFS)がデフォでは入ってないので入れて、マウントします。

u18% sudo apt install cifs-utils
u18% sudo mkdir /GoogleDrive
u18% sudo mount.cifs //192.168.10.10/G /GoogleDrive -o user=xxxx

基盤:で DeleGate を make と… おや?

ar cr libteleport.a teleportd.o vehicle.o qzcode.o
ar: unable to rename 'libteleport.a'; reason: No such file or directory

基盤:おや?

% touch xxx
% mv xxx yyy
mv: cannot move 'xxx' to 'yyy': No such file or directory
% strace mv xxx yyy
...
rename("xxx", "yyy") = -1 ENOENT (No such file or directory)

基盤:renameシステムコール、通らないですね。

開発:確かにリンクの書き換え系全般はダメな感じはあるよね。ハードリンク関係くさい。

基盤:Windows上では通りますしね。

$ pwd
/cygdrive/g/マイドライブ/gdtest
$ echo aaa > a1
$ mv a1 a2
$ strace mv a2 a3
...
mv 328 rename2: 0 = rename(a2,a3)
...
$

開発:うーむ。同じCIFSマウントで、Unix - SMB - WindowsHD なら通り、Unix - SMB - GoogleDrive ではとおらない。クライアント側でのSMBの使い方の問題じゃなく、SMBサーバとGoogleDrive との間の問題みたいですね。

基盤:とりあえずこのくらいにしときますか。

--
2020-0602 SatoxITS

ようこそMac Mail

社長:まあ一応 Outlook も検討するとして。私はもう以前から、メールは Mac Mail で行くと決めています。実際、Macでも iPhone でも Gmail のサブとしてMail アプリを使ってきた結果、とても満足していますし。

複数アカウントの統合

なぜかというとまず私は、複数のアカウントのメールを同時に見る必要があります。ひとつのアドレスに転送して読み書きするのが適切でない事が少なくないからです。 Gmail ではそれを「アカウントを切り替える」ことで行います。同時には(一つのウィンドウ・タブの中では)見られないのです。この切り替えにはかなりストレスを感じます。

一方 Mac Mail では「複数のアカウントのメールが同時に見える」ようになっています。統合されているのです。一人が複数のアカウントを持つ事を当前の事として設計されているのです。まあこれはThunderbird などでも似たようなものですが、Thunderbirdではあくまでも各アカウントごとにツリービューが分離されているのです。

スレッドのスクロール表示

次にスレッドの表示です。スレッドの中のメールの中身を表示するウィンドウですが、ここにはスレッド内のメールのウィンドウが整列していて、それらはスクロールすることで順次読めるようになっています。メールが小さければ同時に複数のメールが表示されて読めるのです。

スレッド内の複数のメール表示

これは「一つのメッセージを表示するウィンドウ」というこり固まった概念からは出てこない発想です。

開発:これって是非Finderの「プレビュー」でもやってほしいですね。ブラウザの「履歴」とか「タブ一覧」なんて、これがあればすごく便利だと思います。

基盤:てか、そしたらタブってほぼいらなくね?的な。

思い通りのメール作成

Gmailで非常に嫌なのは、メールを書くウィンドウが、もとのウィンドウ内に束縛されて非常に窮屈だということです。ウェブアプリとしてブラウザの枠にはめられているという制約は大きいと思います。生まれつき無理ゲー的な。ですが、Ccがデフォでは隠れてるとか。サブジェクトが編集しにくいとか。本当になんの嫌がらせなんでしょうか?テキストのフォントを変えたいことも多いですが、そのUIがまたかったるい。

Mac Mail ではそのへんが全部、私の直感的期待通りに(思い通りに)ごく自然にできるわけです。それは基本、他のアプリでできることが、Mailでも同じようにできるという、ごく当たり前な事のおかげだと思います。

とても自然で快適なメール作成

テキストの操作にしても、インデントをしたいとか、引用レベルを変えたいとかも、Gmailではどうももっさりしていてめちゃくちゃになることもありますが、Mailならサックサクなのです。

昔のメールのインポート

Mac Mailでは Outlook などからエクスポートしたメールも見れますが、さらになんと mbox 形式まで見られるのです。

MBOX 形式を知っている Mac Mail

私は1987年に書いた自分のメールを Mac Mail で読んで、感動しました。日本語のコードは懐かしの ISO-2022-JP だったり EUC だったりですがへっちゃらです。そしてもちろん、それらの中身の検索もできてしまうわけです。インクリメンタルに(!)。まあ昔のメールはテキストだけだから、1万通で100MBくらいしかないわけですが。

開発:電子メール開闢から、メールボックスファイルといえば MBOX 形式でしたからね。Googole の中の若い人たちは、MBOX形式なんて知らないんじゃ無いですかね。

Mailの不満なところ

とはいえ、もちろん、100%マンセーなわけではなく、色々となんとかして欲しいところはあります。たとえば、やはり一つのアカウントだけに集中して見たい事はある。ひょっとすると、そういうフィルターをするモードはあるのかもしれませんけど。たとえば、スレッド内のメールをまとめて印刷したいとか。GmailやOutlookに比べて表示があっさりしすぎていて不安になるとか(笑)

残念なのは、Appleはこの素晴らしいアプリを、Macの中に囲って出さないんだろうという事です。Windows版があったら世の中に大きな一石を当時られるかもしれないのに・・・あれ?でもSafari のWindows版は出してるから、Mailもあるのかな?

まとめ

私は昔から、苦痛なユーザーインターフェイスを見ると、ああこれは作っている人は自分では使ってないんだろうな、と思っていました。苦痛は人ごとだから改善もされない。でも、さすがに Gmail を作っている人達は、Gmail を使っているんじゃないかと思われます。となると、彼らはあれが良いと思って作っている。だからもうこれは根本的な価値観の相違。それ以前に人間工学的な解離。そういう意味でももう、Gmailに戻る事は無いなと思います。

Mailは、というかMac全般について言えると思いますが、「おおよそ思い通り」に操作できる。人間工学的に練られていて徹底されている。ごく当たり前か、考えてみれば当たり前というように作られていて、時には驚くような発想の転換もある。結果としては納得して使える。Mailはその代表であり得るかも知れない。そう感じました。

--
2020-0602 SatoxITS

さらばGmail

社長:Gmailをやめることにしました。

基盤:故郷のアニーローリー今君ーはどーこへー♪

開発:もちろん、UIのほうですよね。メールサーバ側はもう Gmail で固めましたよね。実績と現状から今後当面、最善のインフラだということで。

社長:もちろんです。インフラとしてのGmailは最高です。ですが、当社が採用するメール基盤の要件は以下。
(1)安定安心のメールサーバ
(2)リーズナブルな費用
(3)らくらく電子署名
(4)気持ちの良いUI
Gmail のブラウザUIは(2)以降に適合しないため、却下します。ただ今後も、緊急避難と保守のためには使用します。

基盤:つまりこういうことです。まず(2)費用。当社ドメインをGmailで使うために有償契約が必要なので、月1,360円のBusinessクラスとしました。独自ドメインが使えて、ドライブ1TB付きですから、十分にリーズナブルと言えます。これに伴い、現在使用している別ドメインのGドライブ100GB/250円/月は解約します。

基盤:ところがここで落とし穴があります。Gmailでデジタル署名する(3)には、Enterprise契約でないといけないんです(!)。ただメールに電子署名するためだけに、月1,740円支出するなどあり得ましょうか?

経理:あり得ません。なのでボツ。

社長:もともとGmailは電子署名に対して異様に消極的というか冷淡な感じです。これはもう私の憶測ですが、Googleって・・・

(妄想)

電子署名による認証が完全に普及すると、GoogleがメシのタネにしているメールのセキュリティとかSPAMフィルターとかの機能を無用にしてしまう可能性があるので、意図的にサポートしないでいるんじゃないかとすら思っちゃうわけです。

社長:致命的なのは、(4)あのウェブGmailのUIに金を払う気になるか?ということです。私は全くなりません。タダだから我慢して来たのです。改善が見込めるか?すでに10数年あれですし、Googleのフォームやサイトのとほほデザインしかも着実に劣化しているという状況を見ると、まあ期待しないほうが良いだろうと。

基盤:で、メールを読み書きするアプリですが。MacのMail、Thunderbird、Outlook、候補はこれだけですかね。

開発:・・・

開発:いっそ原点まで巻き戻して、Exchange + Outlook も再検討してみたらどうでしょう? look and feel 的には Gmail よりまともですよね。検索はタコだけど。Officeアプリは必須なので M 365 は契約済だし、リーズナブルな費用でOneDrive 1TB付きです。あれに Exchange の契約を足して独自ドメインを貼り付ければ。

社長:む・・・

基盤:それ、ありかも。

社長:・・・そうですね。検討しましょう。比較対象を持つ事は有益です。

基盤:当社の .com ドメインのほうでやってみます。あれ、Gmailでやるかどうか迷っていたところです。

社長:え?さすがに「当社.com」は取って無いですよ。おもしろそう。お、まだ取られて無いですね。速攻でポチっと。取れました(笑)

経理:・・・XSO曰「クレジットカード支払いの場合、即時完了となるためキャンセルできません。」。間違って .inc とかクリックしないで下さいね。くれぐれも。

--
2020-0601 SatoxITS

名刺交換

社長:昨日おそい昼食をうなぎ屋でとりまして・・・

秘書:うな上3,600+ビール650と領収書に。

基盤:当社のレンタルサーバ費2ヶ月分ですね。

経理:どういうことでしょう?お一人様で出張でも無く経費では無理かと。

社長:いや、飲みに行くより安いじゃないですか。うな特でもないです。ビールについてですが、あの店は大瓶しか置いてないんです。本当は中瓶のほうがいいんですけどね。

基盤:会社でやってる1円/時間単位の経費節減とどうバランスするのかなのですが。

社長:私は前々から思っているのですが、欲しいものを我慢して5,000円けちるより、1日呑みに行くのを我慢すれば良い事。700円けちるより、つまみを一品減らせば良い事。我慢はストレスになりますし、何より欲しいものをタイムリーに手にしなかった結果、別の大事なもの、可能性を失うリスクが大きい。

開発:といいつつ、酒を我慢したことは1日も無かったですけどね。

社長:いや、昨夜は実際、飲みに行きませんでした。まあ我慢したわけではなく、もっと面白い仕事にはまってしまい、行けなかっただけですけど。最近では何日も連続で飲みに行くのを忘れてしまうこともあります。かかりつけのお医者さんには規則正しい飲酒を約束しているのですが。

社長:以前の飲み代は、ストレス解消に必要なコストだったんです。入院したら5,000円じゃすみませんし。バランスしていたと思っています。ですが、自分の会社を作ってやりたいことをやりたいようにできるようになって、全くストレスが無くなった。お酒が不可欠では無くなったのです。

秘書:深夜の飲食が減ったためか、体重も標準体重に近づいて来ましたね。

* * *

社長:まあそれでですね。うなぎ屋で座ったテーブルの斜め前の席に二人連れの先客がいて、やはりビールを飲んでました。

開発:昼間から飲んでる人種って限られますよね。自由な人達というか。まあ昨日は休日でしたが。

社長:国や地域の文化にもよるんでしょうね。メルセデスのお膝元の街に逗留したことがありますが、昼間から外で飲んでますがそれが何か的な。タバコのポイ捨てとか壁の落書きとかも目立つ街ではありましたが。というか、研究所の自販機にビンビールがあるんです。一瞬天国かと思いましたよ。地獄のようにくそまずかったけど。

社長:日本の場合、特に車移動が必須の地域ではこの十数年で状況が一変しました。私の場合体質上も、食事する時にアルコールを伴わないというのはあり得ないわけです。基本は飲むついでに食事をする。それで飲んで帰るには代行か徒歩かということになる。代行は夜しか動かない。そもそも一応勤め人でしたから、職務規定で昼間からは飲めない。いろんな制約上、飲むのは夜と制約されていたわけです。

社長:食事=飲む、飲めるのは夜だけとすれば、つまり1日1食という帰結にもなります。これだと飲むのがゼロになると食事もゼロで餓死のリスクが発生しますが、これには対応して最近はカップラーメン通になりました。特にニュータッチ。あの騒動にひかれて佐野から入りましたが、その後は仙台、今は横浜とか。もやしvsネギですね。これを続けると一月の食費≒1日の飲み代相当です。私の経費調整は極めて柔軟、如意棒です。

社長:といいますか、昼間から飲んではいけないという縛りから開放されたので、昼食かつ飲むで1日一食に移行しつつあります。ただ問題は、昼食に酒のつまみになるものを食べられる店が徒歩圏内に無い事です。会社を移転する必要性を感じています。

経理:定款の変更が必要ですね。

基盤:飲んで運転したら懲戒ですよね。6ヶ月間役員報酬ゼロとか。

社長:そうか、うちも服務規定作らないとね。

経理:その場合、会社が支払う社会保険料ですが、報酬ゼロでも最低の保険料は発生します。茨城県だと22,808円/月ですね。社長の現状の役員報酬だと、大きな差は無いです。

開発:この、標準報酬等級1で月額が58,000円って、該当範囲が報酬 〜63,000円となっているのは、報酬ゼロでも58,000円と見做されて、保険料折半で11,404円取られるということですよね。

社長:健康保険料分の3,352円は十分もとがとれますけど。

基盤:いろんな意味で無敵の人になっちゃいましたね(笑)

経理:報酬ゼロだと折半分の天引きができないですね。どういう扱いになるのやら。

* * *

社長:それでその二人連れの会話が、ごく自然な音量なのですが、店内は静かだし席が2mも離れてないので、ほぼ明瞭に耳に入ってくるわけです。

開発:店中に響きわたるような大声で話をしている客っていますよね。特に大陸系の方達とかジモティとか。例外なく、聞きたくもない話をしている(笑)

社長:それでつい聞き入ってしまったのですが、ああ、こういう内容の会話って自分ではもう、何年もしてなかったなって。

基盤:どんな内容ですか?

社長:うーん。おおむね世間話というか雑談。たとえば CDG、茨城、成田の空港のネーミングとか。ただ個別内容というより、ものの見方というか視点が、当たり前のところからいい感じでズームアウトぎみにオフセットしているところに。かすかな皮肉が、ふきのうとうを薬味にするとこんな感じだろうかくらいに。ファクトと感情の羅列じゃなくてざっくりとした推論の筋がある。話題が移っても一貫して。

基盤:社長の場合視点が90°近くオフセットして不連続に飛びますからね。

社長:若い頃、特に学生の頃とかは、しゃかりきに発想飛ばし競ったりする会話が多いんですが、そういう感じではなく。お仕事関係の話でもなく。おだやかで、くすぐられるというか、軽くマッサージされているような。

社長:お話のベースにある考え方とか知識とか体験とかを適切にお持ちで、深すぎず浅すぎず自然体。無理にウケ狙いとかも無い。ときおり情報をスマホでぴっと検索して補足して話を続けていらしたのも、今風だなと。

社長:特に私はずっと雑談的会話を聞いたりしたりする場がほぼ飲み屋・飲み会だったので。こういう自然体の会話はとんと、したり聞いたりしてなかったですね。滲み入るようでした。

社長:それでどういう人達なんだろうって。大学院の学生さんあたりだろうか?と思ったんですが、お一人はもう少しお年な感じで。かといって先生と学生という感じでも無い。だから、お二人がどういう関係なのかなという点も興味を持ちました。

社長:そうこうするうちに30分〜40分くらいでしょうか、お二人が食事を終えて席を立つのですが。あー、なにかこの人達と繋がりを持ちたいという衝動がこみ上げて来まして。ですが何と言ってお声掛けして良いものかと。躊躇しているうちに、会計を済ませて出て行ってしまわれた。

基盤:日常リアルの世界で見知らぬ他人といきなり繋がりを持つのは心理的バリア高いですね。

開発:しかも飲み屋じゃなくてうなぎ屋ですしね。

営業:いや、そこで躊躇していては事は始まりません。

社長:それで、一期一会が流れて去って行ったなーと思ってため息をついてたところ、会計を済まされた後に店の外の喫煙所におられる姿が見えたのです。小学校だか中学校だかの国語の教科書にあった、歩道橋を荷物をかかえて登っていくお婆さんに話かけようとして話かけられなかった心残り、あの話がフラッシュバックしたんです。で、反射的に自分も会計を済ませて店を出ました。

社長:それで「あのー、さっき隣で食事をしていたものですが、お二人の会話が…」。「あ、うるさかったでしょうか、ごめんなさい」という流れになります。「いえ、とても面白いというか興味深く…」。「え?何か面白いことを言ってましたか?どのような?」。「いえそのー、なんというか全般的にすうっとするというか和むというか…」

基盤:かなりヤバイですね。不審者というか。

社長:それで私もつまったので「あ、私こういうものでして」と反射的に名刺を差し出して。この近くで小さな会社をやってましてとか。それで逃げようかと思ったのですが(笑)。すると先方も「では私も名刺を…」と名刺をくださったのです。その後短い立ち話をしてお別れしました。わかったのはお二人は親子連れで、お子さんは学生さん、ということでした。

基盤:つまり家庭内での会話だったんですね。

社長:ホームページを拝見すると、お父さんは空港関係の行政書士をされている方でした。ブログの中に、中国人の団体=騒がしいという認識、ところがスマホをいじっていると静かになるという発見、「中国人の団体を静かにさせるスマホ」という表現。うーん、やはり私の目に狂いは無かったなと、にんまりしました。

開発:その人にしか書けないひと言、というやつですね。

--
2020-0601 SatoxITS

Macのネットアクセスが遅いのだが?

社長:以前からMacのネットワークが遅いのが気になっています。100Mbpsくらいしか出てない感じなんです。

基盤:いつもの fast.com で測ってみましょう… …

左より Mac, Win20, Ubuntu, Raspberry Pi4 各ネットアクセス速度

基盤:Macだけ、100Mbps出てないですね。

開発:MTUの設定がおかしいとかですかね?ソケットのバッファが小さいとか、妙なアンチウィルス的タッピングやってるとか…

社長:もしそうだとすると、もっと全世界的なブーイングが起きていると思うのですが。検索すると実際、ブーイングはたくさんあるみたいだけど、素人さんの都市伝説的な。

開発:妙に100Mbpsギリっぽいのも気になりますね。まさか…

基盤:ifconfig 見たらこんな事になっちゃってますが…

開発:100baseTX!

社長:見たの何年ぶりですかね (^-^;

基盤:システム環境設定でもこのように。

基盤:うーん、さっき ifconfig で MTUをいじってみたりした余波でしょうかね。

社長:いえ、この子はうちにやって来た日から100めがしか出ませんでした。

基盤:垢もたまってるしとりあえずリブートしてみます。

基盤:直ってみたり、接続できなくなったり、不安定ですね。

開発:ハブとの相性とか?自動判定がおかしくなるって一体いつの時代の話ですかね…

社長:まあ10Mbps から10Gbps まで自動判定ですからね。なんか事情もあるのでしょう。

基盤:手動で1000BaseTに固定してみましょう…

開発:出た!

社長:出ましたね。そうこなくっちゃ。MTUを9000にするとどうでしょう?

基盤:260出ましたね。

基盤:ただ、さっきから設定を変えた後に切れたり繋がったりすることが多いです。こんなことに…

基盤:それでもってネットワーク設定がエンタメ化してます。

開発:これってひょっとして…

一同:ネットワークケーブルのせいじゃない?

社長:10年前のフラットケーブルでした。Cat.5e ですけど。どこかにCat.6があるはず…

基盤:Cat.6ケーブル発見しました。プチプチっプチっと。

開発:出ましたね。

社長:世は満足じゃ。

基盤:それで実は、光のコンセントからルータまでがやはり、フラットで10mのCat.5eなんです。巻いてある光ケーブルを伸ばすのが面倒だったんで。

社長:うーむ、我が社の物理層は10年前の状態だったんですね。これからは10ギガビットだと思うし、ケーブルは新しくしときましょう。Cat.6でいいんでしょうか?

基盤:10Gbpsだとカテゴリ6A以上ですね。カテゴリ7はかなりお高いみたいですから6Aで良いのではないかと。といいますか、現状うちには1Gbpsの機器しか無いですし。

経理:では、6Aの短いのと長めの、6本発注します。アマゾンで… あ、あとこの省電力のハブも入れときましょうか。ではカートに入れてプチプチプチッ。明後日来ます。

基盤:性能の測定はそれが来てから改めてやります。物理的根底がおかしかったので、遠隔ネットワークドライブの性能とかも全部調査し直しですね。

社長:疑ってごめんねMac。

--
2020-0531 SatoxITS