7200回転の音

社長:そういえば、ハードディスクってなんで7200回転なんでしょう?ずいぶん昔から。なんでそれより高速化しないんですかね?

開発:7200回転/分ていうとエンジンで言えばもうレッドゾーンですから、メカ的な限界なんじゃないですかねえ。それ以上げたらコストに合わないとか。

基盤:毎秒120回転ですからねえ。よくわからないけど凄いなみたいな。私なんて3回転と4回転の違いがスローで見ないと分からないです。60の倍数っていうのが、ひょっとしたら電源周波数との相性みたいなのを想像させますが。

開発:今時交流電源の周波数に影響される電子機器って無いんじゃ無いですかね。まあハードディスクが電子機器かっていうとちょっとイメージが違いますが。ソリッドステートじゃないからか。あ、でもモータの制御周期が20ms前後なのは、電源の50Hzから来てるという話を聞いた覚えがあります。

基盤:なんにしても、ちょうど十進数で下の桁がゼロって、デジタル時代以前の人工物だなって思いますよね。

社長:私はGPIOの出力を圧電スピーカと間違ってサーボモータに繋いだことがありますが、ちゃんと500Hzあたりのメロディが演奏できるのが笑えました。

社長:しかし120Hzっていうのは、音でいうとかなり低音ですね。A#2とB2の間くらい。車のレッドゾーンてかなり喧しい気がしますが。まあ、高音ではないのかな。ターボの30000回転の音はすごく良かったですね。クーっと始まってシューって行ってラーみたいな。行き着く先は免停ですよ。

開発:そもそも人類がこれまでに作った回るメカの中の最高回転てどのくらいですかね?めっちゃ回ってるイメージのジェットエンジンでも1万回転くらいのようです。まああれはモーメント半端ないですが。高速な遠心分離機だと40000回転超えるようですね。

基盤:遠心分機と言えばウランなんて数千Gでやるそうなんで、めっちゃ回ってるんでしょうね。

開発:そこへ行くと染太郎なんて高々100rpmくらいだよね。

社長:パルサーなんて星がミリ秒で回転してますけどね。それはそうとMEMSのジャイロてどうなってるだろうと思ったら、振動型のジャイロなんですって。中で小人さんが回ってるわけではないんだ。スイッチングレギュレータとか、ソリッドステートな発想って私の中高時代の理科では教わらなかったですね。

基盤:ところで回転数を分単位で数えるようになったのっていつからなんですかね。モーターって言えば子供の頃のプラモデルのマブチが大好きでしたが、あれも無負荷で8000rpmくらいのようです。電気自動車のモータもそんんな感じなんですかね。

開発:まあ身近なコモディティの電気モータが8000回転くらいというのは、ハードディスクの7200回転に関係しそうです。やはり安上がりに実現できる回転数なのでは。

基盤:ところでHDDのそれって、回転数の誤差どのくらいなんですかね?別に何回転にしても電子制御なんだから対応できる気もするのですが。コンピュータのクロックなんて適当にいじれるわけですが、いっそCPUのクロックアップみたいにHDDの回転数を自前でチューンしたら高速化できるかもですね。

開発:あんまり速いと磁気的に読み取れないということは無いですかね。原理的には電磁誘導なんですよね。ところで、フライホイールも2000rpmくらいらしいですが、HDDって瞬電対策のUPS代わりに使えないですかね。

基盤:とても充電池には対抗できないですね。

社長:私が最初に使った頃のPDPやVAXのディスクっていったい何回転くらいだったんでしょうね。なんか「ガー」とか「ゴー」っていう音でしたけど。60Hzくらいとか?今のは「グー」くらいな感じがします。

基盤:ひょっとしてそれ、ファンの回転音じゃないですかね。うちの台所のファンてどうして、前時代的にガーガーうるさいんでしょう?まじ不快です。まあ、築30年ものらしいですが。

社長:私はノートPCのヒーヒー言うファンの音がとても苦手で、だいぶ辛い思いもして来ました。そこへこのレノボ君が来た時、ほとんど音無しで感動しました。そしてMacMini。これってファンレス?もちろんラズパイにファンなどありませんが。

開発:扇風機の静音化は目を見張るものがあるんですけどね。あれは1000回転前後のようです。人間の可聴域下限が20Hzだそうなので、回転自体は耳から音として聞こえてないんですかね。

基盤:うるさいといえば掃除機ですよね。吸引力なんか必要なだけあればいいんで、静音の掃除機が欲しいです。どうやら東芝の掃除機のモータは12万回転とかするらしいですが。

開発:洗濯機の脱水時もだいたい1000回転くらいらしいですね。洗濯機を回すのは好きなのですが、ドラム式で回転が上がり切るまでにどう暴れるのか恐ろしいです。せっかく上がりきったなと思ったらまた休んでみたりとか、変に頭がいいやつって。

基盤:あれって、洗濯工程とか回転のあげ方とか制御アルゴリズムを自分で書いてみたいですよね。というか、パソコンからネット経由でコントロールしたい。槽内監視用のLEDが勝手に短時間で消えたり、回転数の表示が無かったり、せっかくの面白い機械が生かされてない感じがします。

社長:昔はディスクの音で、今どこまで処理が進んだかとかわかりましたよね。コンパイル走らせるとシークしまくるとでっかい計算機の筐体がキュンキュン踊るという。あれは一種のエンタメでしたね。今だとプロセスとかタスクごとに固有の音を出させたら、何かのメロディになったりして面白いんじゃ無いかな。

開発:やかましいから合成画像くらいですかね。MacのスクリーンセーバとかiTunesでやってたようなやつ。

基盤:普通にプログレスメータがいいです。

開発:しかし120Hzっても1回転8ミリ秒程度ですからねえ。ヘッドのシークだってあるでしょうし。連続的な読み書き以外はダメなのはもう宿命ですね。ランダムアクセスをミリ秒以下にするのはおそらく不可能でしょう。

基盤:これまで気にした事もなかったのですが、最近はVMの性能を縛っているHDDの応答時間目につくんです。で、タスクマネジャの簡易表示を見るんですが、単位がmsなんですよね。平均を取ってる時間が短すぎて値が暴れるのであまり意味が無いですが、10ms付近の値はよく見かけます。

基盤:一方でSSDの応答時間はおおむね 0.1ms以下で安定してますから、これはもう勝負にならないですね。

開発:でも、RAMならとんでも遅いのでも 0.001msではアクセスできるから、そこもまた勝負にならないですね。

基盤:RAMで収まる仕事ならRAMでやらなきゃ馬鹿馬鹿しいという話ですね。今、だいたい 2GB で1,000円。私たちの仕事って40GBもあれば普通収まるから、2万円程度。こここそ設備投資投入のツボかなと。

開発:HDDとかクラウドのドライブ直でVMしてみようというのは、意味の無い試みだったですね。十年以上前のRAMの価格の記憶に思考が引きずられてました。

社長:むかしなんてそもそもテープでしたからね。まじもんのtarですよ。私はオープンリールの時代も知ってます。あの、テープをあっちへこっちへ引いてセットするのって、結構楽しいんですよね。

基盤:そういえばHALの記憶媒体って何だったんでしたっけ。

開発:寒天みたいに見えるから、有機物かもね。中でニューラルネットが育ってるとか。あるいはナタデココとか?

--
2020-0611 SatoxITS

感動を与えるソフトウェア

社長:最近はもう、食べ物に感動することがなくなりました。

基盤:もしやコロナでは。

開発:しばらくカップラーメンに感動してましたね。佐野ラーメンはスープまで全部完食とか。

社長:5年以上前に日清のトムヤムクンヌードルに感動してアマゾンで箱買いしたりしてた時期はあります。用心して食べ始めるのに、必ずムセてしまうという。でも当時は他のカップ麺は目に入らなかった。まあコンビニしか行かなかったからかもしれません。最近ドラッグストアのカップ麺売り場に行くと圧倒されます。

基盤:時々非常食買い占め騒ぎ的なのが起きますが、空っぽになった商品棚の中に、例の真っ赤なカップ麺だけが手付かずにぎっしり売れ残ってる風景は、とても絵になる光景だと思います。

社長:私の中の最高傑作は子供の頃に食べてたペヤングヌードルです。まあ、あれがとびきりうまかったというより、自分のほうの感受性だとは思いますが。カップ麺の黎明期でしたしね。当時は嫌いだった日清のカップヌードルを今では結構好きですから、年齢とともに嗜好は変わるものですね。

社長:それと、最近カップ麺を美味しく感じさせさるのはあのコスパです。こんなに安くて手軽で、十分美味しくて。これが比較基準になってしまって、普通の外食とかで違和感を感じるようにもなりました。これってカップ麺何個分の価値があるのだろうかとか。

基盤:コスパなら、食べ物の中で一番安くて美味いものは納豆だと思います。あれ、もし栽培が難しい、豚が嗅ぎ回って掘り出すような珍味だったら、すごい値段で取り引きされるはずです。十分安いのにさらにPBかなんかの安物置いてくめ納豆も置いてない店舗って全般に質が低いですね。

開発:飽きるというのは人間の学習能力のせいですかね。人間の感覚はすぐに麻痺して飽きます。リスクを分散したり新しいものを取り入れるよう、そう出来てるのかも知れません。しかしヒトじゃない動物って、同じものばかり食ってて飽きないんでしょうかね?コアラとか。

基盤:飽きないといえばロボットですが、行く先々でreCAPTCHAの「□私はロボットではありません」ていうのを見て気をさぞ悪くしてるでしょうね。

社長:それで、最近新旧の色んなソフトウェアとかサービスを使ってみて、感動したり腹を立てたり、ああこういう楽しみって人間にしか出来ないなって思います。まあこっちは料理人の視点もあるので、他の料理人の作ったものを味わうという面白さもあり。

開発:他の種類のソフトウェアと違って、プログラムというのは目に見えて役に立つ。時間を節約できたり、新しい事ができるようになったり、体が楽になったり。良し悪しの客観的な尺度があるのが良いですね。

社長:ただプログラムも、単に実用の役に立つ、機能・性能があるだけで良い時代では無いですね。それはもう何十年もそうだっとは思いますが、衣食足りて、いよいよ本格的に来たか感がします。使う人を気持ちよくさせるソフトウェア。そういう意味では他の芸術系のソフトのお仲間入りですね。

開発:Appleはそっち系で育てて来た感覚を、日常系実用系にも適用しているのが強みなんでしょうね。まあ、俺の作ったものを黙って味わえ的な高圧感はありますが。それと、最近のMacMiniは変なデザインになっちゃったなーって思ってたのですが、良くみたら上下逆さまに置いてました。

基盤:ひっくり返して置いてもサマになる、Appleならそこまで拘らないと先代が草場の陰で。

開発:そういえばタワー型のPCって、上下がわからないデザインのが多くて、時々逆さまにして使ってますよね。それで、CDのトレイの出し入れが何かしにくくて。これデザインした奴何考えてんだーっ!て怒ったり。

社長:子供の頃、作った泥人形が船を漕ぎ出すみたいな話に魅きこまれたのを覚えていますが、書いたものが勝手に動き出すというのはそれに近い感動です。プログラムを書く事に飽きる事は無いでしょうね。

開発:そういやこの頃はほとんど書いてないですけど。でも、誰かが作ってくれそうだから、シャカリキになる必要は無いかなっていう気はしています。こっちは趣味で楽しんでるのがいいかなって。

営業:四半期に一つくらいは何か製品を・・・

基盤:ちょっとした事、見方や考え方で劇的に良くなるのも面白いですね。実装にかかる手間はピンキリですけど。でも一度できたらほぼエネルギーを使わずに生産できる。

開発:昔は流通にも結構お金がかかったものですが、今やそれもタダに等しいですしね。

社長:作る側にも使う側にも感動を与えるソフトウェアって、なんて素晴らしいんでしょう。

--
2020-0611 SatoxITS

いつもそこに居て欲しいそれ

社長:Mission Control で不便だなと思う事のひとつは、どのデスクトップにいてもそこにいて欲しいアプリのウィンドウというのが出来ないことです。特定のデスクトップにアプリが束縛されていると、そのアプリを開こうとすると、自動的にそのデスクトップに移動しちゃうのも不便。

開発:X Window では普通にやってましたけどね。

基盤:それ、できるようです。この All Desktops というオプションで。

社長:がーん。そうだったのか・・・ でもなんでそれがデフォルトじゃないのかな。

開発:それに、アプリケーションのインスタンス全てじゃなくて、特定のインスタンスにだけやりたいんですよね。インスタンスを作って、位置とか表示形式とかカスタマイズして、よしこれを全部のデスクトップに出そう、という使い方。できれば、永続化して。

基盤:全部のデスクトップにあって欲しいアプリってなんですかね。

社長:まずは Notes かな。は!と思った時にすぐメモができる。仕事しながら、作業記録をNotesに書き続けるとか。

経理:そうやって書き留めたドメイン名全部取ってたら破産してますね。

開発:社長の今の使い方だと、WordPress 用のブラウザが常駐していると良いということじゃないですかね(笑)

社長:まあ、Notesをウェブで形式にしてWordPressにアップロードできるならそのほうが良いかな。だって、こうやってべた文を書いて、時々画像を張り込んでるだけですから、Notes で十分なんです。ただ、クリッククリックだけアップロードできないとイヤだけど。

私のブログはNotesで十分でございます

基盤:それできちゃうと、WordPressいらなくなっちゃいますね。「さらばWordPress」て記事ができそう。

開発:社長は書いたブログを最終的にPDFにしてるから、Notesで書いてPDFにしてそれをアップロードするって使い方でも良いかも。WordPressで思い通りにならないイライラ感はなくなりますね。

社長:うーん、WordPressのエディタの唯一評価できる点は、段落・ブロックを簡単に上下に移動できることですかね。あと、HTMLの機能、dsetails くらいは使いたいですが・・・

社長:あとは、Finderですね。そこここのデスクトップで作ったファイルとかスナップショットを、一つのフォルダにファインダにぽいぽいいドラッグ&ドロップしたい。ウィンドウというよりアイコンでもいいけど、おおよその中身も見えるサムネイル的なのが良いです。

開発:Notesにはドラッグ&ドロップできますから、Notesをフォルダ代わりにできなくもないですね。コメント付きにできるし。単に軽量なWiki的エディタがあれば良いのかなとも思います。

基盤:あんまりiCloudには送りたくないところですが。

開発:Dockも構造化したいですよね。ベタにアプリがならんでるんじゃなくて、フォルダ的にまとめたい。ブックマークみたいに。これはWindowsのタスクバー使ってた時代にも欲しかった。

基盤:それ実は、ありそうな機能ですけどね。

社長:そもそも私は、Dockとかブックマークとか履歴とか、なんで全部同じように操作できないのか、理解できないんですね。ウィンドウとタブとかデスクトップもそう。所詮ツリー状した情報のビューですよね。Finder とかエクスプローラがそもそもそうですが。まあ、その辺を大統一するフロントエンドを何にするか、ずっと迷っているわけですが。

開発:まあその点、Vivaldiのウィンドウパネルがそれに近い感じになってるのはうれしかったですね。

社長:「閉じたウィンドウ・タブ」がゴミ箱アイコンで表示されて、ゴミ箱から戻すのと同じ具合に復活できるという見せ方に、感動しました。

基盤:スパッとVivaldi に移行してしまいましたねー。

社長:これは現時点で人類が手にできる最高のブラウザです。

--
2020-0611 SatoxITS

そしてUbuntu20.04 LTSへ

基盤:実はこの4月下旬に Ubuntu 20.04 LTS が出てました。Hyper/Vで新しくUbuntuをインストールしようとしたら、これがリストに出て来て気付きました。

社長:なんということでしょう。4月からずっと18.04 LTSでやって来たわが社は、世間から1ヶ月以上遅れていたのですね。

開発:まああの頃からテレビも全くつけてないですしね。クラウドのVM用に提供されているのはみんな 18.04 でしたし。

基盤:NHKのニュースになるほどのネタでも無いですし。Windowsくらいじゃないですか。

経理:そういえば、インータネットで見れるテレビ、あんまり安くも無いですね。保留してます。

広報:20.04とは、2020年4月設立の当社にとって、縁起の良い版ですね。

社長:それでは 20.04 で出直しましょう。社名も ITS more 20.04 LTS に変更しちゃおうかな。いやいっそ、LTS Co., Ltd. とか。。

開発:当社よりLong Life かもですね(笑)

基盤:早速Hyper/Vにインストールしてみました。こんな感じです。

基盤:まず、右クリックのコンテクストメニューの一番下にターミナルが無いのにびっくりしました。CLIとか使わないユーザ向けにシフトしたのかなと思ったのですが、よくみると「Open in Terminal」と出ています。

基盤:「in」てどう言う意味?と思ってクリックすると、なんとデスクトップをカレントディレクトリにしたターミナルが開くんです。これは徹底していて、一般にフォルダアイコンを右クリックして「Open in Terminal」を選ぶと、そのフォルダをカレントディレクトリにしたターミナルが開くんです。

社長:うーむ。これはありがたいです。WindowsでもMacでもコンテクストメニューをカスタマイズすればできるんだと思いますが、デフォルトでそうなってるというのが素晴らしい。CLIユーザに優しいUbuntuならではの発想ですかね。

社長:ところでその、メニューバーのど真ん中にある日付表示、これはずっと私がMacのそこに居て欲しいと言っていたものです。

社長:しかも、クリックすると、ぱっとカレンダーが開いてくれる。これも私の要望通りです。

社長:これをMacでもやりたいですね。

基盤:メニューバーには、このようにキーボード選択のタブがあって、これも素晴らしいと思ったのですが。

基盤:Japaneseを選択すると、あなたのキーボードはこのような配列ですよね、と言ってくるのです。

基盤:この、keyboard layout というアプリを開いて、キーを押すとその部分がハイライトするというすぐれものです。ただし。非常にイミフなのがこの「|」の位置です。

基盤:全体をみると、106キーボードの¥と|のある位置には、でっかいBackspaceキーが覆ってしまっているのです。

基盤:Ubuntu18で、どうもデスクトップからは「|」のキーが入らないなと思ってたところ、これが原因だったんですね。こんなキーボード配置ってありましたっけ?記憶にあるようなないような。なんにしてもJapaneseキーボードを選ぶとこれがでちゃうっていかがなもんでしょうね?しかも、キーボードの一覧にはマイナーな配列が列挙してあるのに、、、まあVMでやってる事が何か影響している可能性もなくは無いと思いますが。

社長:OSの表示言語は英語で構わないというか、英語のほうが助かることも多いのですが、キーボードだけはいけません。実際とマップが異なるだけなら知らず、そもそもそのキーの存在が知られていないとは。

基盤:おそらく、というかもちろん、日本語版のリリースをインストールすればこういうことはないでしょうし、何かをconfigurationすれば解決するのだとは思うのですが、スッピンの状態がこれはいけないなーと思いました。

社長:でも、これまでUbuntuのデスクトップにはリモートログインしかしなかったですが、これならちょっと使ってみたいという気持ちになるような進化をしてますね。

基盤:そうかもしれません。あ、それでHyper/Vお仕着せの Ubuntu 20.04 VMの構成では、/dev/sda1 root に12GB割り当て、7GB使用済み、となっています。これは16GBにして、あとはユーザ系は別のディスクに分けるという方針で、行きます。

社長:そうして下さい。

--
2020-0612 SatoxITS

陣地縮小作戦

基盤:どうもVMが100GBを超えたあたりから起動・停止・設定が異常に遅くなりまして、何とかしたいと思います。

開発:SSDの残量がわずかになったせいかもしれませんね。ファイルが大きくなってアルゴリズムが切り替わるとか、あり得るのかな?あさって来る500GBのSSDを待ってからでも良いのでは。

基盤:いずれにしても、HDDとかクラウドに保管するのに、小さいに越したことは無いです。目標は10分(600秒)以内でのナマコピー完了。最悪100MB/秒での書き込みを想定すると、60GBということになります。現在仮想ディスクが128GBに膨れていますが、ごみを捨てれば60GBに収まります。実メモリが潤沢になったので、スワップファイルも不要。

開発:今後何度か試行的に大きくしたり小さくしたりすると思いますので、アシストしてくれるツールがあると良いですね。できればGUIの。

基盤:そうですね。とりあえずやるのに一番簡単なのは、新しいVMを作ってそこに現在のVMのファイルを転送することなんですが、何度もやるなら、パーティション拡張の時の parted + resize2fs 的なノリでできるとよいな、と思います。

基盤:それで検索したところ、GPartdというのがなんかよさげな感じです。フリーソフトで、今現在アクティブなプロジェクトです。まあ、お金かかってないんで、見た目は極めて素朴というか、実直そうなイメージです。

基盤:GPartdは、ISO形式でOSとして起動する、という形です。これをやるために作者はUSBにddで書き込んでとか面倒な説明をしていますが、仮想マシンならISOファイルをDVDドライブとして指定するだけで終了です。そしてリブート。超速で起動します。

基盤:そしてGPartdのコンソールから、変更したいパーティションとサイズを指定してApplyをクリック。以上で終了です。まあ、作業の手間としては数分かからないですね。

基盤:ですが、ここで恐ろしいことが起きました。例によってSSDが満杯になってしまい、Hyper/Vが泣きを入れてきたわけです。もうパーティション内での移し替えが途中まで行ってますから、内容も壊れているでしょう。直前のバックアップもあるので、VMを破棄しようとしたんですが、その前に一応ISOを切断して立ち上げてみたら、壊れてもないんです。つまり、Hyper/Vは差分ディスクにガンガン書いてたということでしょうね。でそれは単に破棄された。

基盤:SSDは空きがないのであきらめて、HDD版のクローンのほうでやることにしました。パーティションの中のブロックの移し替えはHDDの苦手なランダムアクセスです。案の定、ディスクアクセスはほぼ100%アクティブなんですが、転送量的には読み書き10MB/秒とか20MB/秒とか、ちんたらしか進んでいません。今現在、20分経過で20%くらいですから、まあ2時間がかりかなという感じです。

基盤:ただ、今思えば、差分ディスクだけHDDに置くというのが適切な作戦だったかも知れません。というかそもそも、チェックポイントを使わないというオプションもあったと思います。ですが今30分経過して50%くらいまで来たので、このまま終わるのを待つことにします。カップラーメンでも食おう。

基盤:GPartdは、機能的には満足だし、GUIも必要に十分だと思うのですが、作者の説明の仕方がどうも、カンタンそうに思わせないところがあります。たとえば、直感的に「そのパーティション」で右クリックすると、実際コンテクストメニューが開くんですが、そういう説明はしてないんですね。

基盤:それと、これはいずれにしてもかなり時間のかかる処理ですから、待ってるユーザに何か気休めを提供するのが良いと思います。表示はプログレスバーだけなのですが、これは目に見えては進まない。なので、数字のカウンターを表示するのが良いと思います。

基盤:あるいは、仮想マシンでの利用を想定した場合、現在のパーティションを上書きするというよりは、新しいパーティションというかデバイスをマウントして、そこにシュリンクしながらコピーするのが良いのではないかとも思います。ですが、そういうことなら、VMのユーザが自分でできるという話かなともいますけどね。新しい仮想ディスクを作ってマウントして、そこに移し替えて、差し替えれば良いわけですから。

基盤:おっと、90%近く来ましたね。というか、少なくとも進捗の%表示をして欲しいものです。残り時間の推定とかも。128GBを半分に縮退するのに1時間。十分かなと思います。おそらくSSDで同じことをやれば、10分でできそうです。カップラーメンできた。最近はずっとニュータッチ凄麺でしたが、久しぶりのカップヌードルカレー味です。

基盤:GUIの表示を見て気づいたのですが、Move /dev/sda1 to the right and shrink it from 124.00GiB to 60.01GiB。要するにやっていることは、resize2fs -p /dev/sda1 62921728K というコマンドのようです。たしかに、resize2fs のマニュアルには、マウントしたままのディスクではできません、って書いてありましたね。つまり、resize2fs が動作する環境だけのミニマムなOSがあれば良い。まあつまりそれが、GPartedのやってる事ってわけですが。

基盤:うーむ、これなら手作業で、というかスクリプトでやったほうがいいかなっていう感じもして来ました。実際、昔はディスクの移し替えとかそうやって手作業でやってましたね。いわゆるシングルユーザモードに落として。うーむ、基本うちの開発用のマシンはそもそもデフォルトがシングルユーザモードで十分な気はします。

開発:待ち時間が退屈なので、リードオンリー環境で端末が使えると良いですね。実際昔はそうなってたし、今もそうできるのかも知れない。

基盤:最近、クラウドで仮想マシンをやってて気づいたのですが、この世界のデータ量は GB、MB、KBという表示では無くて、GiB、MiB、KiBという表示が主流になりましたね。要するに2のべきであるのを10進数に丸めて考える人間の認識に寄り添っている。8192KBとか書くより、8KiBと書いたほうが書きやすいし読みやすいですから。GPartedもそういう感じなんですが、徹底してないのが惜しまれます。

基盤:うーむ、100%近くなったので終わったかなと思ったのですが、またプログレスバーが元に戻りました。そうか、つまり、一旦ディスクの終わりのほうに寄せてから、ディスクの先頭のほうに移し替えるってことですかね。つまり、ただのコピーの2倍時間がかかると。

開発:しかしこうやってみてると、やはり今の世の中、必要な機能はほとんど出来ているのに、それをユーザに分かり易くカンタンに操作させるやり方と、何が起きているのかをユーザに分かり易く知らせる手段がまるで不足しているなと、つくづく思いいますね。

社長:まあ、そこに美味しい皮をかぶせて売った人が、おいしいとこを全部持ってくっていう仕組みなんでしょうね。座りしままに食うは徳川みたいな。あれ、このフレーズそのまま、20年前にMLで書いた記憶が・・・

基盤:今度こそ、あと20分くらいで終わりますかねえ。相変わらずディスクのアクティビティ100%なのに、円総量が1MB/秒を切りました。ちっちゃいファイルを移動中なのかな?

基盤:おっと、最後はカウントダウンするのか。あと11:32 ・・・ 結局2時間半かかりました。

開発:無事に小さくなってメデタシですね。

基盤:まあこんなふうにガンガン作り替えるような仮想マシンは、HDDベースでは厳しいということを痛感しました。

開発:世の中にはSSHDというものもあるようですね。ただ、キャッシュにSSDを256MB程度積んでいるだけのようなのですが。

基盤:あれって不思議なんですが、そもそもPC側にキャッシュというかバッファのRAMがギガバイト単位でとれる状況で、ディスク側にサブギガバイトのSSDバッファがあって何かいいことがあるのかということですね。価格も通常のHDDの2倍するようです。PC向けじゃないのかな?

開発:基礎体力的には、もう十年以上前の7200回転とかで、HDDの世の中は止まってしまったんですかね。

社長:私の若いころは5MB/秒くらいでしたからね。20倍以上は高速化してます。まあネットワークのほうは100倍以上速くなりましたが。

開発:思うに、例えば100GBあるプログラムやデータの中で、本当に高速にアクセスする必要なものがどのくらいあるかということなんですが。典型的には10GBくらいしかないとすると、それはもうRAMに入ってしまう。めったにシャットダウンすることもないなら、ほとんどディスクにもアクセスしないことになりますね。

社長:複数の異なる性能のメモリとディスクがあるときに、何をどこに置くかという話ですね。長期的なアクセスパターンとかから自動的に最適化できると良いですね。

基盤:あ、縮小したHDD版VMのチェックポイント統合終了です。あとはHyper/Vで仮想ディスクを小さくすれば完成。今度はHDDからSSDにクローンして、そのSSD版でやってみます。おおっと、こういう単純読み出しだとHDDでも200MB/秒出ますね。まあ、ディスクがきれいだからほぼ整列しているんでしょうけど。

--
2020-0611 SatoxITS

記憶力200%増(当社比)

基盤:さっきアマゾンから届いたメモリを増設しましょう。

社長:それが、そば屋の帰りに郵便受けから持って来たのですが、どこかにぽいっと置いたきり、お昼寝して起きたらどこに置いたのか全く思い出せないのです。

開発:社長の動線て社内では総延長7mくらいしかないから、そう複雑な隠れ方はしないのでは。

* * *

基盤:結局、台所にありました。さーて、メモリの増設なんて十何年ぶりかな。まずはレノボ君のフタを開ける。十円玉でネジをくりくりっと。よくできてますね。では、えいえい。あれ動かないですね。あー、二箇所にネジがあるのか。もひとつクリクリ。えーい、ずるずるっ、パコっと。いきなり見えてるこのスロットがそれかな?でも先客が挿さってない…幅も違うし。これPCIってやつだっけ?何にしてもがらんどう、このこは拡張性というか伸び代無限大ですね。

開発:奥のほうに見えるやつじゃないですか?先客も居るし。

基盤:おっと、するとこの光学ドライブのモジュールにどいてもらわないといけないわけですか。どこか可動部分があるはずで。えいえい。うーん、これ赤い印がヒントですかね。どうもフロントパネルが外れるらしい。三箇所ぷちぷちっとしてパコ。とれました。あとはこのモジュール。どうもここらを軸にして回転して上がるような気配ですね。赤い印をぐいぐいっと。おー、動いた。パコ。開いた。

開発:これも簡単だけど、昔の ThinkCentre はもっと簡単だったと思います。カポって開く方式で。

社長:PowerMacやMacProはもっとずっと中身がエレガントでしたね。ソユーズとスペースシャトルの内装の違いくらい。

開発:お、先住民が1枚だけで寂しそうにしてます。

基盤:これからは賑やかになりますからね。ほら、お友達の2枚が来ましたよ、よろしくね。グサ、グサ。

社長:その、かなり硬いところへ思い切りガスっと押し込んでカチッと鳴る、すごく懐かしいですね。しかしまあ、メモリ基板ていえば昔は板にびっしり石が載ってたものですが、今どきのこれって石が飾り程度にしか見えないですね(笑)。ただの板ですかっていう。

基盤:さて、モジュールを戻してフタ閉めてと。

開発:やはりこのコンパクト筐体、軽々と扱えて正解でした。いやしかし、昔はRAMが4GBあればかなりリッチなマシンて感じでしたが、この安っぽい板2枚で16GBってねえ。でも、CPUは当時も8コアの使ってたけど、そっちが増えてないのが意外な感じです。

基盤:はい。それでは電源とディスプレイとEtherとUSBを挿し直して、電源ON!・・・

* * *

基盤:立ち上がらないですね。配線は全部挿し直したんですが・・・レノボ君にはディスプレイポートが2口あるから、違う口に挿したんですかね。自動判別じゃないのか・・・こっちが正解?ブスっと。うーむ、画面が出ませんねー。どうしたかねフィリップス君。うーむ、DisplayPort信号無し。この、モニター、やたらスリープに入りたがるの、なんとかしたいですね。

開発:このこのマニュアルどこに行きましたかね。まだ買って二年も経ってないと思うんですが、サポートサイトに無いんですよね。

基盤:このタッチして出るメニューの反応が異常にセンシティブだったり鈍感だったり訳わかんないですよね。こんな設定がイミフなモニター、過去に使った事無いです。

開発:訳がわからない時はまず下のレイヤから疑うという鉄則で行きますか。昨日から抜いたり挿したりしてるんで、電気的におかしくなったとか?画像信号をセンスしないとはどういう理由があり得るのか。ケーブルに問題は無いか・・・

基盤:あ、ディスプレイポートのケーブル、モニター側に挿さって無いですね。ずっとRemoteDesktop でやってましたしたから。グサっと。

開発:そうでしたか。

基盤:で、モニタの入力をディスプレイポートに変更・・・おー、画面出ました。実装メモリ24GB!

開発:長い道のりでした(笑)

* * *

基盤:こうなるとあと16GB付けたくなっちゃいますね。8千円で。合わせて40GB。

社長: 必要であれば、全然アリです。

開発:クラウドのVMの1GBメモリっていったい何なんですかね。

経理:今度来る iMac のメモリオプション8GBは、2万円でした・・・

* * *

基盤:さてそれではお待ちかねの仮想マシン性能測定です。クローンのVMで、一台は全てがHDD上に、一台は全てがSSD上にあります。まあ当然ですが、実メモリ上で収まる処理については、2台には全く性能差がありません。一方、du -s /home (21万ディレクトリ)で走査したところ、HDD版は84秒、SSD版は14秒と出ました。ここはさすがに、ランダムアクセスに強いSSDです。

基盤:一方、これはまあ滅多にやられないことだと思いますが、巨大ファイルの書き出し。6GBのファイルを書くというのをやったところ、HDD版では53秒。つまり、約113MB/秒です。想定通り。

基盤:さて、同じ事をSSD版でやると、おおよそ500MB/秒は出ます。ですが、実験するうち、悲劇が起きました。

開発:このこのSSD容量、もうヤバイんだよね。

基盤:そうです。そもそもその前に作成した10GBのファイルを削除したのですが、Hyper/V的にはそれが削除されたファイルの中身かどうかとか、中身は知らないわけで、仮想ディスクを整理中に、作業エリアが無くなって固まった模様です。([1]その後自動回復)

基盤:教訓としては、こういったテンポラリな巨大ファイルを仮想ディスク上に置くのは、仮想ディスクを肥大化させるし、まったく馬鹿げたことであった。ということです。そもそも、仮想ドライブが100GBを超えたあたりから、Hyper/Vでの仮想マシンの停止・開始が異常に遅く、1分とか2分とかかかるようになってしまいまして。

開発:外部のドライブをマウントするとか、共有ディスク?とかにすると良い、ということですね。そもそも、SSDはもうちょっと増やした方がよいのでは。

基盤:そうなんです。それで、さっきレノボのフタを開けた時にPCIの空きスロットを見て、あれ?ここに増設メモリのノリで増設SSDの基板をさせばいいんじゃね?と思ったわけです。今時ドンガラドライブの箱とかダサいですからね。それで検索すると、PCIに直挿しのSSDって256GBで5,000円くらいのようです。こういうやつ。

開発:どんぴしゃですね。

社長:購入しましょう。

基盤:こういうものがあったらいいなと思うと必ず売ってる、しかもリーズナブルな価格で。今はそういう時代ですね。

--
2020-0610 SatoxITS

[1] 2020-0610 追記:しばらく放置しておいたら、片付けられて回復していました。

さたぽん(sathaporn)

社長:ところで「さたぽん」てどういう意味なんですかね。タイ語だとは思うんですが。私は一時期さとぽんと呼ばれていた事もあるしどうも気になります。

基盤:さあ。ああ、sataponドットコムってサイトがありますね。永遠の?どうも Sathaporn ていうほうが正統に近い綴りのような。日本語ではthaiがタイになりますが、タイでもそういう略記的な表記があるんですかね。んー、Google翻訳にかけてみると…「สถาพร แดงสี」赤色?

社長:同音異義とかですかね?店の名前にするくらいだから名詞か形容詞かどっちかの句かなと思うんですが。

開発:どうもそこにある空白が分かち書きのようでないような。タイ語って分かち書きするんですかね?さた ぽんにゃんしー?なぜサタのあとに一拍入るんでしょう。さたとぽんに分解されるんですかね。

基盤:Google翻訳させてみると「hello」と「hellow world」の間に空白は入らないですね「สวัสดีชาวโลก」。「a small step of man... 」。分かち書きは無いような。

開発:やっぱアジア圏で分かち書きは無いですかね。まして自国語の文字セットのテキストにASCIIでスペースを入れることは無いと。日本語だって正式にはそう。句点、読点に相当するものがあるかという事になりますが。

基盤:日本語の句読点はASCIIの','と'.'になるようです。自国語には無いんじゃないですかね。中国語では全角的になります。CJKはそうなのか?というとハングルは…ASCIIになるような。でもハングルって、分かち書き的な空白が入りませんか?そもそも日本語に句読点が入ったのっていつの時代からなんですかね。レ点起源とか?

開発:まあGoogle翻訳だけ信じて頼っててもねえ。しかしすごいよね、少なくとも日本語・英語間の翻訳はかなりしっかりしている。少なくとも私よりは(笑)。「同時翻訳」って新しいよね。これ、そのままWordとかふつうのエディタに組み込めないんですかね?

社長:私は、そういうサービスにこそ、しかるべきお金を払うべきだと思いますね。それはそうと、ふつうに検索エンジンで探すと良いのでは。

開発:今日は Vivaldiの顔を立てて bing で行きますか。

基盤:satapon sathaporn ... 人名にもありますね。タイって姓名どっちを先に書くんでしょう。wikipedia… サッカー選手に居るようですね。英語のWikiでこういう順序だから、first name のようですが。あー、First name : Sathapornとあります。

社長:それはそうとタイの文字って表意文字なんですかね表音ですかね?

開発:ぱっと見少なくとも英語的なアルファベットじゃないですが漢字的な表意文字とは思えないですね。そもそもどうやって入力してるんでしょう?日本語みたいにローマ字かな変換?だとすると、satapon とか sathaporn と入れたらそのタイ語に変換されるとか。

基盤:日本語の訓令式とヘボン式みたいなものかもですね。

開発:各国語のローマ字表記で検索できる辞書があると良いですね。

基盤:うーん、どうやら発音記号入力ですかね。ところでこの、国際音声記号(IPA)キーボードというの、すごく気になります。説明が超わらかします。こっちのは真面目なサイト。ASCIIに無い文字の入力を助けてくれるって事ですね。

開発:こっちのサイトは同時変換してくれますね。

社長:もうすぐお昼になっちゃいますが(笑)。その Sathaporn 選手のタイ語のページがあったら、そこに書いてあるんじゃないですかね。

基盤:まあそうですね。で Wikipedia 英語版では「Sathaporn Daengsee」。タイ語版では「สถาพร แดงสี」さん。これ、Wiki だからASCIIの空白で区切ってますね。Google翻訳にかけると「赤色」。英語では「red color」。

基盤:それで、この単語と思われる区切りを強制的に切ってやると、なんとこんなふうになるんです。

社長:なんと。さたぽんなくても red color なのか。てことは、なにか赤色にかかる強調とか枕詞的な?なんだろう。めっちゃ赤色とか。でもそういう名前ってふつう無いよね。緑と緑色みたいな関係?

基盤:てか、サッカー選手で英語名が red card だったらまずかったでしょうねw

開発:さたぽん単体では英語や日本語に翻訳できないというのが面白いですね。あるようなないような。色即是空ですかね。

社長:いずれにしても「さたぽん」=「สถาพร」=「sathaporn」 =「satapon」ということですね。それではタイ語の辞書を引きますか。

基盤:オンライン辞書とか。

基盤:bingで翻訳とか。

社長:なかなか難攻不落ですね。

開発:というか私、Google 翻訳がすごいと思ってましたが、bing の翻訳も十分よいですね。最近ちょっと Google の洗脳から冷めた気がします。これも Vivalidi のおかげ。

基盤:こっちを検索するとどうですかね?お?

基盤:おおっと!クライアント認証に電子証明書を求めてくるサイトに生まれて初めて出会いました!

開発:ほー。これはうちもやりたいですね。でも辞書検索で本人認証って、、、どっか違うアンカーを叩きましたかね。

社長:辞書が無償っていうのも、今ではふつうですが、インターネット開闢の頃は全然そうではなかったんですよね。実際、金を払う価値のあるコンテンツだと思いますし。それをただにしたら、別経路で回収できないマイナー辞書屋さんは食ってけないでしょう。

基盤:で結局、無償のオンライン翻訳辞書では無理。その言語のオンライン辞書で引いて、オンラインで翻訳する。そういうフローになりますね。このあたりがファイナルアンサーじゃないですか。

社長:うーん、結局さたぽんどっとコムに書いてあったことか。日本語名で言えば「久」かな。

基盤:赤色にひきずられちゃいました。あと、Google も Bing も、アジア系言語に対しては、大したこと無いのかなと、現状では。

開発:ちょっと応用してみますか。「わが巨人軍は永久に不滅です」…

基盤:さたぽん出てこないですね。

社長:中性的な軽い形容詞じゃなくて、願望とか祈願とか色付きの形容詞なのかもですね。タイのお坊さんウェアって赤黄色だし、それも関係あるのかも。そういう文脈でしか使われないとか。常緑ではなく常磐ですが、みたいな。

常磐(常盤、ときわ)とは永久不変なの事を指し、転じて永久不変なことを指す。[Wikipedia]

基盤:その部分、英語版の Wikiではスルーされてますね。

社長:ときわ御前は「常盤御前」です。ever green。古来日本人は「常」を好みますよね。古事記にも出て来る「常世」。竜宮城も時間の流れが違うから、たぶん常世の一種でしょう。まあ、人生がずっと短かった時代は特に、無常感が強かったでしょうから、「常」に対する憧れは強かったでしょうね。地名にも多い。

開発:私はじょうばんて読むとハワイアンセターと反射してしまう新人類です(笑)。あそこでスケートしたことあります。

基盤:「さたぽん」は日本語で言う「常」に近い、そういうことですね。

社長:うちの社名は「いつもお世話になっております」から始まったので、いつも、つねに、さたぽん。・・・あれ?つながりましたね。

基盤:珍しくオチましたね。

社長:すっきりしたのでお昼に行きましょう。今日はあの、なぜだか不滅のそば屋かな。

経理:ぶーぶー言いながらかなりのリピーターですね。かれこれ100回以上。

社長:だってうちから一番そばにある、ある意味そば屋なんです。コンセプト的には歩いて40秒で到達できる牛丼屋です。私は蕎麦にはかなりこだわりがあるんです。でも、気に入ってる蕎麦屋までは車で15分かかるし、車で行くと飲めないわけです。

開発:そういえば、あのそば屋ではめったに蕎麦は食べませんね(笑)

--
2020-0610 SatoxITS

公式Facebook停止されました

社長:なぜかこういう事になっちゃってますが。

基盤:なんか悪いアクティビティとかやらかしたんですか?どれに該当?

社長:というか、まだなんのアクティビティもないですが(笑)

基盤:審査をリクエストしてみては。

社長:そうですね。私のどこがいけないの〜っと。電話番号を入れてポチっ。おお速攻でぶぶーっと来ましたね。パスコード入力。プチプチッと。おおっと一瞬で審査終了。

社長:なんすかこれ?そういえば私はFacebookには携帯電話を(まだ)登録してなかったような気がするんですが。まんまと電話番号をFacebookに詐取されたんでしょうか?

基盤:Facebookを騙った詐欺だったりして。

社長:いや、Sign up時のメールのリンクから行ったんで。しかしなんだかむかつきますね。プンプン!どっちが怪しげな会社だっちゅうの。こちとら人様に迷惑かけるなんてこれっぽっちもしてませんけどー、個人情報をかき集めるとかさー、ってね。

開発:それはそれとして、社用の携帯は持ちたいですね。格安スマホで良いですので手配をお願いします。

--
2020-0610 SatoxITS

G Suite正式契約

経理:G Suiteから試用期間終了のお知らせが。契約するんですよね?

社長:はい。当社の.comと.jp 2つで独自ドメイン名のGmail。1TB GoogleDrive 付きで1,360円/月 x 2。妥当だと思います。

基盤:Acrobatの月1,700円を考えると、お得感が実感できますね。MS 365もExchange足したら似たような金額だし。1,500円/月って、なんかこういう今時のサブスクリプションの基準単価に思えます。抵抗感なく払える線なんでしょうね。

社長:でもねー。Acrobatって結局1日10回くらい電子署名するのにしか使ってないし、あのUIをみるたびに気持ちが塞ぐんですよ。来年は打ち切りでしょうね。

経理: この「monthlyあたりのおおよその料金」というのがお茶目ですね。プチプチっと。契約成立です。それで支払いなんですが、ちょっとあのおしとやか銀行、海外送金がダメダメですね。桁間違ってるとか、ちょっとがっかりです。ペイジーもカバー狭いし。今後は、ぶっきらぼー銀行のほうにシフトしたいと思います。

基盤:G Suite申し込む時でしたが、Googleに対してその独自ドメインが実際にうちの所有だって証明するプロセスはちょっと面白かったですね。DNSのTXTレコードをあんなふうに使うとか。index.html のmeta tagにあんなふうに仕込むとか。しかしあの時ちょっと手間と時間がかかってしまったのは、みーんなXSOのせいなわけです。1日も早く脱出したいです。

開発:片方のGoogleDriveは一般公開して、外部向けデータ配布用にすると良いかもですね。VMまるごととか。

--
2020-0610 SatoxITS

ラズパイでMonzilloをビルド

基盤:ラズパイが暇そうにしてるので、Monzilloをコンパイルさせてみることにしました。とりあえず Mercurial をダウンロドして makeして hg を作成、現在 firefox のソースをクローン中です。

基盤:Raspberry pi 4 の 4GB版を使用してますので、メモリ的にはイケると思われます。足りなかったらスワップ追加ですが、SDでスワップが使い物にならないようなら、8GB版を導入するか、SMBマウントを試すか、ということになるかと思います。ただ、そもそも Firefox がラズパイに対応してるかは不明ですが。

開発:そうですね、リソースは必要なら継ぎ足せば良いと思います。

基盤:そもそも Mercurial の make all の時点でなんかぶーたれてましたから、雲行きは怪しいです。

ディスプレイ真っ暗

基盤:それはそうと、ラズパイのHDMIを繋いだら Mac のディスプレイが映らなくなるという恐ろしい経験をしました。この999円の3口HDMIスイッチが何か悪さをしてMac様のHDMIを破壊したのではあるまいな?と深く深く疑いました。

開発:この下賤のモノめって切り捨て御免ですかね。

基盤:しかたがないのでThunderbalt からHDMIを出してそれを挿したらつながったのですが、しばらくするとまた画面が消えます。リモートログインはできてMac本体は元気なことを確認しました。なんやかやしているうちに非常に不思議な現象に出会いました。Macに挿しているマウスでラズパイのデスクトップのカーソルが動くのです。

開発:はは。つまりラズパイにVNC接続をしていて、マウスとキーボードは転送されているけど、画面は映らないって、感じ?

基盤:そうでした。VNCを繋いだ記憶がイマイチなかったのですが。いろいろやっているうちにホットコーナーに行くとカーソルが止まる。そう、Mission Control でMacに制御が移るんでしょう。ですがそれなのに、HDMIをMacに切り替えても No video inputなわけです。どうもフルスクリーンモードでMacからラズパイにVNCすると、そういうことが起き得るようです。しかも、Mission Controlに戻るショートカットが全部ラズパイにとられてしまってるから、ブラックホールからの抜け方がはっきりしない。とりあえずラズパイVNCフルスクリーンはやめました。

基盤:いずれにしても、この生産者不祥のHDMIスイッチ君には疑いをかけて申し訳なかったという気持ちで一杯です。

開発:結局、HDMIチップと電源と基盤とコネクタ、部品代的には数百円なんでしょうね。それにこの五十円くらいのプラケースをかぶせてアマゾンで900円+消費税で売ってると。この妙ちくりんなACアダプタって必要なんですかね?これで100円くらいしたりして。

基盤:アダプタは廃品利用かもですね。ある意味地球に優しい商品です。というか実質上、廃棄物質の輸出?

bingの類似画像検索

開発:ところで、Vivaldi のデフォルト検索エンジンが bing だったんで、しばらく使ってるんですが、なんか全然問題を感じませんね。というか bing って類似画像検索できるんだ。例えばうちのウェブサイトのこれで検索すると・・・

基盤:ほー。こんなふうに見事に似た画像を見つけてくれる。すごいなー。

社長:これ、色のパターンとかだけじゃなくて、何か構造的な認識も入っているんですかね・・・単色で検索してみればわかりますか。例えばこんなのとか。

基盤:なんすかこれ。

社長:あー、Previewで「あ」って描こうとしたんですけどね。あ、ってどう書くんだっけて迷ってたら、先が閉じてしまったと。それで検索するとこんな結果でした。

開発:うーむ。閉じた円を含む赤単色の線画。そんなくくりですかねー。ある種のメタなOCRでもあるのでしょうか。面白い。

社長:手書きのスケッチで検索してみたいんですが、なぜかそういう機能をつけてないみたいで不思議です。

基盤:私はロボットではありません。を手書きでぶつけてみたいですね。あ、今度来る iMac には手書き入力できるなんちゃらパッド的なものが付属しています。楽しみですね。

検索エンジン第2次大戦?

開発:検索エンジンは Google って決めてたけど、そうとも限らないのかもね。検索エンジン第二次戦国時代とか来るのかな。

社長:AltaVista はいまいずこ、ですね・・・

開発:日付でソートする機能、大文字小文字の区別、そして正規表現。Googleが席巻して諦めちゃった機能を、だれかが実現してくれるといいですね。当時は無理だったのが、今なら実現できるのかも知れない。

社長:そういえば、以前話してた画面の常時自動録画なんですが、実現性は?

基盤:全く問題ないと思いますね。CPU負荷的には1%とかのレベルですし、データ量的にも1秒に1MB程度。つまり1時間で3.6GB、1日撮っても100GBにもならないわけです。

社長:まあそりゃ、4K動画を楽勝で処理できる能力があるわけですしね。この子達は。

開発:おそらくキーになる問題は、動画からの特定シーンの検索でしょうね。

社長:まあ我々のは固定カメラだし、検索したいシーンというか事象もコンピュータが生成したものだから、ベテランの鑑識さんとか刑事さんとかはいらないよね。

基盤:あとは録画ツールがそういう風に画像を切り分けたりagingしてくれると楽ですね。できれば RemoteDesctop や VNC が録画機能を持っててくれたら、いちいちいろんなマシンで設定しなくて良いので楽かもです。

開発:ちょっと休憩しましょうか。

* * *

だからモニタの物理的切り替えは嫌

開発:ありゃ、またMacの画面が真っ暗モード。

基盤:VNCフルスクリーン起因説、破れましたね。んー、HDMIスイッチでパイの画面には切り替わると。でラズパイのキーボードからMacには入れる。でもってHDMIスイッチをMacにして見る・・・おー、Macデスクトップ画面復活した。つまり、スクリーンセーバモードとVNCの関係のような。スクリーンセーバをNeverにしましょう。

開発:うーん。つまりスクリーンセーバ状態からはキーかマウスの入力で戻るはずだけど、それがVNC経由でラズパイデスクトップに取られちゃってる、って感じですかね。でも前にはそうならなかった・・・ひょっとして、ラズパイのHDMIを抜いてないことと関係が?ラズパイはVNC経由だけにして柿の種にしましょう。

基盤:そうしましょう。それで、ラズパイはダウンロードを終えてビルドの準備に入ってます。ここで一発キャプチャー・・・あ、あれ?画面が真っ暗に。アイドルという話でもないんですね。しかたがないのでラズパイの手足を戻して、Macに入って起こす。回復。

開発:うーん、スクリーンセーバ説も外れなのかな。なんでしょうね。さすがにVNCがらみだとは思うんですけどねー。Misson Control で別のデスクトップで開いているVNCの問題とか。不可解な現象は物理層を疑ってみるという格言もありますが。まあしばらく VNC Viewer は閉じときましょう。

基盤:そのまえに現状をパシャ。

開発:この、ターミナルに残っているエスケープシーケンスって、回復中に押した何かですかね?

基盤:さあ。

開発:思うに先日ラズパイが来て遊んだ時は、いつも作業中のデスクトップの中に小さなVNC Viewer で表示するようにしてたんだよね。だから、Mission Control 説はありだと思うな。小さく表示しといてみましょう。昔はそういう、どのデスクトップに移動しても同じ位置に現れるウィンドウっていう設定ができたと思うんですが、今はどうなんですかね。

基盤:これ、VNCってウィンドウを小さくするとデスクトップがミニチュアになってしまって、それが良い時もありますが、実質的な仕事ができないんですよね。RemoteDesktopみたいな実サイズでスクロールっていうモードはあるんですかね?んー、VNC Viewer のオプション・・・Scall automatically、なんかこれっぽい。プッシュ。

開発:おー、リアルのサイズになりました。なるほど。

基盤:ちなみにこの ESC [ 25 ~ というのは、Print Screen key (F13) だったということもわかりました(笑)

マルチディスプレイとMission Control

開発:おもうに、Mission Control で物理ディスプレイを一つだけみていれば良いのはよいけど、存在する全てがいつもどっかにミニチュアで表示されてい欲しいとは思いますね。

基盤:まあ近いうちに iMac が来ますからね。現在のフィリップス君が拡張ディスプレイになりますから、そこに監視対象のウィンドウを集めとけば良いのではないかと。どうやってミニチュア化するかですけどね。Mission Controlはイマイチそういう使い方を想定してないような。

開発:そういえば私もついこないだまでそういう環境で仕事はしてたわけですけどね。一つのディスプレイだけで仕事するって、たぶん二十年ぶりくらいだと思う。でもこれが結構良いのです。目と首に優しいというか。あ、そういえばハヅキルーペを経費で購入しましょう。

基盤:Missiion Control と物理的なマルチディスプレイはどういう関係になるんでしょうね。来てのからのお楽しみですかね。

開発:そのへん、実のところまさに自分達で作ってみたいところではあるんですよね。自分の好きなように作れるデスクトップ。昔は X Window のウィンドウマネジャでみんな遊んでたよね。

基盤:まあ今は今で、プログラムを作らなくても結構できちゃうんだとは思いますけどね。

社長:それはそうと、MacのMailに乗り換えてから、新着メールがメニューバーでサクッと見えるようになったのが良いですね。

開発:ところで、UbuntuのVMのほうはどうしてますかね。

基盤:それが、ホストのRAMが8GBしか無い中、VMを2台並列で立ち上がらせるのに、VMに割り当てるRAMを2GBに制約してみたんですが、めっちゃ実行が遅いです。4GBメモリがあれば10分で終わるプロセスが、SSD版では100分、HDD版ではおそらく1000分くらいかかりそうです。ひたすらdiskI/Oしてますね。面白いので最後まで見届けようかなと。明日RAMが24GBになったら、良い思い出話になるかなと。

基盤:あ、ラズパイのMercurialが悲しい終わり方をしました。

基盤:一時的な問題っぽいですね。再チャレンジ、っと。

開発:でも、ラズパイの本命用途はブラウザじゃなくて、サーバだよね。Apatchと WordPressとか。

基盤:ああ、それは apt でとってこれるようです。少なくともバイナリは。firefoxコンパイルは 試金石ですね。

社長:たばこが切れたので買ってきます。

* * *

行き止まり

基盤:再びエラーで終わってました。

開発:これはもう、だめかもですね。

基盤:tarball から行ったほうが良いですかね・・・ 先日ダウンロードした 77.0 を使いましょう。展開してみると。

pi@raspberrypi:~ $ pwd
/home/pi
pi@raspberrypi:~ $ du -s mozilla-central
1605172	mozilla-central
pi@raspberrypi:~ $ du -s thunderbird-77.0
2882172	thunderbird-77.0

基盤:tarball を展開したのが 2.9GB、Mercurial でできたのが 1.6GB。けっこうなとこまでは行っている感じなんですけどね。

基盤:さて、tarball から build しようとすると、まず nodejs が無いと怒られます。で apt install nodejs しようとすると何かバージョンがーと言われる。それでこの際 apt upgrade 行っときます。それにしても、サーバのアドレスが IPv6なのがなかなかですね。

エラー:3 http://raspbian.raspberrypi.org/raspbian buster/main armhf libnode64 armhf 10.19.0~dfsg1-1+rpi1             
  404  Not Found [IP: 2a00:1098:0:80:1000:75:0:3 80]

基盤:ああ、apt upgrade 終わってますね。とりあえず apt install nodejs。mach build。おや zip が無い。apt install zip。rpm。autoconf。。。?libpulse.pcというものがないようだ。Ubuntu版からもらってきて真似しよう。/usr/lib/arm-linux-gnueabihf/pkgconfig/libpulse.pcっと。apt install rustc。おおっと、rustc が古すぎるとな。でも apt ではこれが最新だと言ってるし・・・

Mozilla 66に後退

開発:ちょっと古めの mozilla にしましょうか (^-^;

基盤:では、thunderbird のリリースから。。thunderbird-70.0b4.source.tar.xzあたりで・・・展開して、mozconfig をコピーして、mach build。おーっと惜しい。まだちょっと古かった。

開発:rustc -V によると、この rustcは 1.34.2。でもリリースの日付がわからないんですよね。なんで日付を表示しないんだろう? 理解に苦しみます。でも /usr/bin/rustc のファイルの日付が2019-06-21 になっているから、少なくともこれより前ですね。

基盤:ではキリのいい番号で mozilla 66 行きましょう。日付は 2019-03-08 ですね。そうこうするうちに、ラズパイの32GB SDカード、50%くらい来ました。ではビルド再開。apt install cbindgen。cargo install rustfmt。。。ふー。なんかこう、もっと若い人手が必要ですね。

社長:いや、これは年寄りの道楽というやつですから。若者と同じ体験をできる貴重な機会なのです。

手持ち無沙汰でGo

開発:なんかしばらくコンパイルが続きそうなので、Go言語でもやってみますかね。ラズパイで。

基盤:あれ、もうインストール済みですね。では、まずは Hello World!。

pi@raspberrypi:~/go $ cat hello.go
package main
import "fmt"
func main() {
    fmt.Println("Hello World!!")
}
pi@raspberrypi:~/go $ time go run hello.go
Hello World!!

real	0m1.466s
user	0m1.381s
sys	0m0.434s

開発:うーん、今は rustc がしゃかりきでCPU食ってるからな。ちょいと失礼 control-Z。再度どうぞ。

pi@raspberrypi:~/go $ time go run hello.go
Hello World!!

real	0m1.360s
user	0m1.352s
sys	0m0.475s

撤退の空気

基盤:うーん。3GHzのx86-64で real 0.25s というところだから、その5分の1位の性能って感じですかね。

基盤:おっと、rustfmt インストール終了しました。

  Installing /home/pi/.cargo/bin/rustfmt
  Installing /home/pi/.cargo/bin/cargo-fmt
warning: be sure to add `/home/pi/.cargo/bin` to your PATH to be able to run the installed binaries

基盤:ようやくここまでかって感じですね。mach build。そうですか。apt install llvmと。apt install clangと。んー、なぬ?

 0:18.12 checking rustc version... 1.34.2
 0:18.25 checking cargo version... 1.34.0
 0:19.12 DEBUG: Executing: `/usr/bin/rustc --crate-type staticlib --target=armv7-unknown-linux-gnueabihf -o /tmp/conftestc2HXAw.rlib /tmp/conftest8qU5zT.rs`
 0:19.13 DEBUG: The command returned non-zero exit status 1.
 0:19.13 DEBUG: Its error output was:
 0:19.13 DEBUG: | error[E0463]: can't find crate for `std`
 0:19.13 DEBUG: |   |
 0:19.14 DEBUG: |   = note: the `armv7-unknown-linux-gnueabihf` target may not be installed
 0:19.14 DEBUG: |
 0:19.14 DEBUG: | error: aborting due to previous error
 0:19.14 DEBUG: |
 0:19.14 DEBUG: | For more information about this error, try `rustc --explain E0463`.
 0:19.15 ERROR: Cannot compile for armv7l-unknown-linux-gnueabihf with /usr/bin/rustc
 0:19.15 The target may be unsupported, or you may not have
 0:19.15 a rust std library for that target installed. Try:
 0:19.15   rustup target add armv7-unknown-linux-gnueabihf
 0:19.31 *** Fix above errors and then restart with\
 0:19.31                "./mach build"
 0:19.31 make: *** [client.mk:115: configure] エラー 1

基盤:こっち方面は行き止まりっぽいですね。

開発:うーん、検索するとラズパイ用のFirefoxやっている人もいるみたいですけどね。というかこれ、ARM用のFirefoxだから、Androidにも通じてるわけですよね。いずれまたトライということで、今日は撤収しましょう。

打開の兆し

基盤:・・・ちょっと待った。mach bootstrap をやれって、そのAndroidの記事にありますよね。その段階からやると良いのかも。やってみます。mach bootstrap --no-interactive・・・ おっと、なんか通りましたよ。

Your version of Mercurial (5.4.1) is sufficiently modern.
Your version of Python (2.7.16) is new enough.
Your version of Rust (1.34.2) is new enough.
Rust supports armv7-unknown-linux-gnueabihf targets.
Creating global state directory: /home/pi/.mozbuild
...
Once you have such a checkout, please re-run `./mach bootstrap` from the
checkout directory.

で mach build ・・・

基盤:あこがれの compile フェーズに突入いたしました!

開発:なるほど、mach bootstrap てのをやらないといけなのかー。新しいプラットフォームに来た時とか?しかしこの、「Rust supports armv7-unknown-linux-gnueabihf targets.」。unknownをサポートするって面白いね。この部分、誰がどこで定義するんでしょう。

基盤:いずれにしても、コンパイルは3GHzのx86-64ですら90分以上かかりましたから、もし単純にこのARMが5倍遅かったら9時間掛かりですかね。まあ最後まで届けばの話ですが。

開発:果報は寝てまてですね。あーでも、メモリが厳しそう。

基盤:例によってスワップを8GBばかりプレゼントしておきますか。

SWF=/swapfile
dd if=/dev/zero of=$SWF bs=1M count=8192
mkswap $SWF
swapon $SWF

開発:これで安心して放置ですね。しかしまあ、8GBのファイルの作成に10分くらいかかりましたねー。

--
2020-0609 SatoxITS