なぜソフトパイプ入りの枕は体積が減るのか

10年以上使用している枕があって、この枕が購入時の半分以下の体積になっている。ソフトパイプが入っている枕だ。知らなかったのだが、ソフトパイプの枕は使用していくうちにドンドン体積が減っていくものだそうだ。原因はソフトパイプが割れるからだそうな。ソフトパイプが割れたら体積が減るというのはまあ、もっともな話だろう。中空の円柱を裂けば少し癖のついた平面になるというのは理解しやすい。でもそんなにきれいに裂けるものなのかね、、、とか思いつつ、しょうがないので、補充用と記載されたソフトパイプをAmazon屋で発注した。

しかし、枕の中を覗き込んでも、割れて平面になったソフトパイプはそれほど見受けられない。割れてはいるんだけれど、円柱の形状を保っている。割れることで弾性が減るというのは理解できるけど、ここまで体積が減るものなのかと思い、ソフトパイプをよく見ると原因が分かった。

枕の中のソフトパイプの直径はすべて同一なので、通常の枕ではソフトパイプが別のソフトパイプに入り込んでしまうことはない。しかし、割れたソフトパイプは、容易にほかのソフトパイプを包んでしまう。よくよく観察するとすでに「重なっていないソフトパイプの方がレア」で、2重3重に重なっているものが多く観察された。平均で2重に重なってしまえば、体積は半分くらいになってしまう。当たり前といえば当たり前だけれども、よく観察してみないとわからないものだ。

その後、発注したソフトパイプが家に届いた。補充用だけれどソフトパイプを今の枕に「補充」すると体積はすぐ減ってしまうだろう*1。しょうがないので、補充ではなくて詰め替えてみたところ、全然足りない。体積が半分になった枕の補充用として購入したパイプは、当たり前だけれど詰め替えたら半分くらいの体積にしかならない。再度同じソフトパイプを買ったが、結局「詰め替え用のソフトパイプの方が枕本体より高い」という意味不明な結果になってしまったのであった(笑)。

まあ、面白かったので良かったのだ。

*1:入っているのは大多数が割れたソフトパイプなので、新しいソフトパイプを覆うか、ソフトパイプに入り込んでしまうので

(物理的に)耳の痛い話

人間の備えるセンサー(五感)のうち、視覚、聴覚、味覚、嗅覚は頭部にしか存在しない。さらには「酸素」「水分」「栄養」の摂取も頭部からしか行えない。

センサーや、摂取口は極めて重要な器官であって、しばしば何らかの形で補助か保護される。視覚なら眼鏡、サングラス、聴覚なら耳栓、補聴器。イヤホン、嗅覚および酸素の摂取においてはマスクなどだ。問題は、どの保護装置も、着用を「耳の形状」に依存していることだ。

最近自宅に到着して、イヤホンとマスクを外そうとした際に、イヤホンとマスクと眼鏡が干渉して、うまく外せないという事象が発生する。これは、これらの保護装置がすべて「耳の形状」に依存しているから発生するのだ。ということは、もしも耳がなくなってしまった場合、センサー保護がまともに行えなくなることを意味する。

なんとなくだが、耳に依存しない不織布マスクがあったほうがいいんじゃないかなと思ったのであった。いや、不織布マスクを耳にかけないような補助装置の存在は知ってるんだよ。それを使うと人生が複雑になりすぎる*1気がするので。

*1:管理せにゃならんデバイスが増えるのは嫌なので

Windows365はどのような技術を用いているのか

以前から噂されていたCloudOS、「Windows365」が発表された。ブラウザで操作可能なクラウド側のWindowsだ。


Windows365発表が、Windows11が発表されてから間もない時期だったことから考えると、WindowsのクライアントOSは「クラウドファースト」に移行するよ、純粋なクライアントOSとしてのWindowsは終わりにするよ、というメッセージのように思われる*1


まあそれはそれとして。実は2020年、MicrosoftクラウドであるAzureに、Windows365の伏線になるような機能が設けられていたのはあまり知られていない。その名もAzure Bastionという技術だ。もともとWindowsSeverのRD Gatewayという機能を使うか、Azure Virtual Desktop環境を構築すれば、Azure環境のWindows10をブラウザ経由で操作することはできたのだけれど、そのためだけにWindowsServerを構築しなきゃいけないという、お金も手間もかかりそうな手法であった。Azure Bastionは、おそらくWindowsServerから「RD Gateway」機能を抜き出して、単体の機能としただけのもの。もちろんAzureになじむようにいろいろ改良は加えただろうけれど。

Azure Bastionの機能はざっくり言えば、リモートデスクトッププロトコル(RDP)とHTTP over TLSというプロトコル(HTTPS)を相互置換してくれる機能だ。これはHTTPSという「プロキシを通過できるプロトコル」をRDPという「プロキシを通過できないプロトコル」に置き換えてくれる。大企業であればまず間違いなくプロキシを使用しているのでらクラウド側のOSを操作するためには、プロキシを使用しない別のセキュアな回線を用意しなければならない。しかしHTTPSでプロキシを通過した後、そのプロトコルをRDPに変換できるなら、プロキシの影響を受けずにクラウドのOSを操作できる。

プロキシを使用していない環境ならば、クラウドOSはRDPで操作したいけれど、そもそもRDPをインターネットにさらすのはセキュリティ上好ましくない。たとえばRDPに脆弱性が発見された場合、OSが完全に乗っ取られてしまうかもしれない。しかし、Azure Bastionを用意すれば、Azure BastionがRDPの脆弱性を攻撃してこない限り安全だ。Azure Bastion自体にSSH接続に関する脆弱性が見つかっても、Azure Bastionだけ修正すればよい*2

多分Windows365はAzure BastionとWindows11で完成を見たサービスだ。
※もしかするとAzure Virtual Desktopを簡単にしただけなのかもしれないけど。


Windows365が発表された翌日に、Azure Bastionを試してみたところ、Azure上のWindows10を簡単にブラウザで操作できた。さらに言えば、Windows365が必要としているAAD(Azure Active Directory)の所有要件を満たさなくてもよい。Azureを知らないと構築は少し難しいけれど*3、Windows365気分を味わうためにAzure Bastionを試してみてもよい。

尚、注意点がいくつかある。

  1. Azure上にWindowsを構築すると「英語版」が構築されるが、languageで検索して日本語機能をインストールすればよい。さらにkeyboardで検索して日本語キーボードにして、時刻を+9.00エリアに設定しておくとよいだろう。
  2. Azureはクラウドなので、世界中の誰もがきっとアクセスできる。Azure上の仮想マシンは「グローバルアドレスを持たせない」ほうがよい。また、グローバルネットワークに対して3389ポートをあけるという設定があるが、これはONしてはいけない。VNetという仮想ネットワーク内にサブネットを「インターネットから隔絶」した形で構築し、仮想マシンはそのサブネットに接続しておこう。
  3. Bastionには専用のサブネットが必要。WindowsはBastionからRDP接続できれば良いので、BastionとWindowsは同じVNet内に構築しよう。

*1:多分MSのCEOサティア・ナデラ氏は、次のWindowsクラウド上に存在すべきであることをWindows10リリース時点での目標としており、Windows10はユーザのPC上にあるべき「最後のWindowsです」と表現したのだろう。

*2:数万台~数億台のWindowsPCのRDP脆弱性をユーザに修正させるより、MS社が管理しているBastion機能を修正する方が早くて安全。

*3:それでもAzure Virtual Desktop環境を構築するよりは100倍楽な気がする

今更WindowsPCのSSDの換装をやったよ

自宅で使用しているWindowsPCのSSD(256GB)が手狭になったので、500GBのSSDに換装することにした。

そういえばWindowsPCのSSDの換装について、今の常識は昔の常識と様変わりしているので、「総合的に」記載しようと思う。

準備するもの(物理):
換装するSSD、DVDドライブ、DVD-R、PCのSSD容量より大きなUSB-SSD/USB-HDD(中身を消去してもよいもの)

①今代表的なSSDは3種類あるから、注意しよう。HDDから換装する場合は2.5型のSATA SSDで大体大丈夫だけれど、問題はM.2規格のSSDで、なんとM.2のSSDには2種類ある。ちょっと昔のノートPCはM.2のSATAタイプ、今のノートPCはM.2のNVMe(PCI)タイプがある。間違えると動作しないことが多いのです。
②DVDドライブはUSBタイプのものでよいですが、BIOS/UEFIでUSB-DVD起動できるかどうか確認しておきましょう。

準備するもの(論理):
パーティションいじるツール(AOMEI Partition Assistantなど)

手順:
0.ドライブを暗号化している場合、暗号化を解除しましょう。
1.コントロールパネルを開き「バックアップと復元(Windows7)」を開きます。
2.システム修復ディスクの作成を選びます。
3.DVDドライブにDVD-Rを入れて、システム修復ディスクを作成します。尚、システム修復ディスクはWindowsのインストールDVDで代用可能ですが、わかりづらくなるので割愛します。
4.USB-SSDをPCに接続し、フォーマットがNTFSかどうか確認します。exFATだった場合にはNTFSでフォーマットします(データは消えます)。
5.もしも換装先のSSDが換装前のHDDより容量が小さい場合、AOMEI Partition Assistantなどを使用して、パーティションサイズを縮め、さらにパーティションを前寄せして「換装先のSSDより小さいパーティションサイズ」にします*1
6.再度「バックアップと復元(Windows7)」を開きます。
7.システムイメージの作成を選びます。
8.イメージの作成先として、USB-SSDが選択されていることを確認します。
9.イメージ作成が完了するまで待ち、USB-SSDを外します。
10.上記3で作成したDVDをDVDドライブに入れておきます。
11.PCをSHIFTキーを押下しながらシャットダウンします。
12.SSDを交換します。
13.PCをDVD起動します。DVD起動のやり方はPCによって異なるので、PCのマニュアルを参照してください。尚、以下がヒントです。
・F11、F12キーを押下しながら起動でBIOS/UEFI設定を起動できることが多い。
・DVD装置はBIOSUEFI上では「ODD」という名前であることが多い。
BIOS/UEFI以外にもBoot Menuが用意されているPCがあり、この場合はODDを選べばよい。
14.DVD起動できたらUSB-SSDを接続します。
15.トラブルシューティングの詳細オプションで、「イメージでシステムを回復」を選び、新品のSSDに先ほどのバックアップ内容を書きこみます。
16.DVDを取り出し、USB-SSDを取り外し、PCを再起動します。
17.無事OSが起動したら、パーティションいじるツールで好きなパーティション構成に変更します。
18.必要なら再度暗号化します。

*1:Windowsの報告するパーティションサイズは「ギビバイト」、SSDのパッケージに記載されているサイズはギガバイトなので注意してください。ギガバイトギビバイトは7%程度サイズが異なります。1000ギガバイトは930ギビバイトくらい。同様にテラバイトとテビバイトは10%程度サイズが異なります。1テラバイトは0.91テビバイトくらい

バックアップとバックアップとバックアップとミラーとスナップショットと変更履歴

この世には6つの概念をすべてバックアップで済ませてしまうおじさんというのが存在する。実現できることが全く違うのでちゃんと理解しておくといいよ!!

①完全バックアップ
ある時点の全データの複製をつくっておくことを完全バックアップといいます。当然ながら、複製の時点までデータを復旧することができますが、「複製以降に発生したデータ」は戻すことができません。全データ複製をできるだけ頻繁にすることを考えますが、大きなデータの複製には非常に時間がかかるので、しばしば頻繁な完全バックアップは現実的な解ではありません。
できるだけデータ損失を防ぐためには、以下②⑥と組み合わせる必要があります。

差分バックアップ
完全バックアップは非常に時間がかかるため、頻度を減らしたいところです。そこで「最後に完全バックアップを採取した後に発生した変更点」のみを複製するという機能が生まれました。この機能を差分バックアップといいます。例えば完全バックアップを週に1回、差分バックアップを1日1回とすることで、日々のバックアップ時間が非常に長いという状態を防ぐことができます。とはいえ、最後に取得したバックアップから、次回の差分バックアップまでに発生したデータが損失した場合、復旧できません。

③バックアップ
同じことができる機材、環境、人材をあらかじめ用意しておくことをバックアップといいます。当然ながら、データ損失には対応できません。データの損失が問題にならない、データ損失対応は別途用意されている場合に使用される概念です。

④ミラー
「HWが故障してもシステムが動作し続ける」ことを目的としています。③の概念と近いため、バックアップと呼ばれることがありますが、非常に危険です。ミラーは「HWの障害でデータ損失する可能性」を大幅に減らすことができますが、SWの問題でデータ損失する可能性は削減できません。人間のミスによるデータ損失も防げません。データ損失を防ぎたいのであれば、①、②、⑥と組み合わせる必要があります。

⑤スナップショット
「一瞬で複製を行ったかのように見せかける技術」をスナップショットといいます。上記①のバックアップはどうやっても時間がかかってしまい、かつバックアップの最中にも新しいデータが発生してしまいます。スナップショットは「採取した時点の状態を複製せずに固定」することができます。
よく用いられるのは、スナップショット採取以前のデータを「更新禁止」に、採取以降のデータを「差分データ」として管理し、現在の状態は「更新禁止データ」と「差分データ」のサマリ、スナップショット採取時のデータは「更新禁止データ」から取得する方法です*1
本手法の弱点は「データの複製は実際には行われていないため、更新禁止データが破壊されてしまうと、スナップショットも現在のデータもどちらも破壊されてしまう」点になります。
上記①と組み合わせて「スナップショット」→「スナップショットのバックアップ」とすることで、ある時点のデータをシステムに負荷をかけずにバックアップすることが可能となります。

⑥変更履歴、バージョン履歴
ファイルシステムやアプリケーションが提供してくれる機能。ファイルの変更が行われた際に、ファイルの変更履歴を記録しておく機能。ユーザは「記録が残っている限り」ファイルを過去の状態に戻すことができる。よってファイルサーバにて強力な効果を発揮する。人為的ミスによるデータ損失リスクやSW原因のデータ損失リスクを大幅に軽減することができる。



特にミラーをバックアップと言っちゃうおじさんはヤバいよ!!

*1:またはスナップショット採取時点で差分データの作成を開始し、スナップショット採取時のデータは現在のデータから差分データを減算して作成する

コーディング無しでアプリが作れます。

エンドユーザがコーディングなしでアプリを作成する試みはいままで死ぬほど行われている。

商用アプリであれば
EXCELのマクロ記録
ACCESSマクロ
・RPAツール

ゲームであれば
RPGツクール
FF12ガンビット
マリオメーカー

あたりが有名なところだとおもう。

ただし、ほぼすべてのコーディング無しアプリケーションは「後方互換」を犠牲にして成り立っている。後方互換とはそのアプリが動作する土台の仕様が変わっても、ユーザ作成のアプリが動作する事だ。例えば、windows7用に作成したアプリがWindows10で動作する場合、このアプリはWindows10に対して後方互換性があると言えるが、Excel95で作成したアプリがExcel2007で動作しない場合は、後方互換性が無いと言える*1


動作環境の後方互換が無い場合、バージョンが変わるたびに、アプリの移植作業が必要になる。そもそも移植というのはより低レベル(コンピュータ寄り)な理解が必要になってくるため、コーディング無しでしかアプリを作れないメンバーにはハードルが高くなってしまう*2


大体の職場において、「先人が作成した偉大なEXCELマクロ」は、とにかくマクロの記録に依存しており、余計な記載が多い。さらに言えば、EXCELマクロは「キーストロークの記録」に過ぎないものも多くEXCELの仕様が少し異なっただけで動作しなくなってしまう。

ACCESSに至っては、そもそも世代違いでACCESSファイルに互換がなくなって、最新のACCESSでは古いACCESSファイルを使用できなかったり、マクロをVBAに変換していた環境*3では日本語関数名、日本語変数名が正しく移行されなかったり、まあいろんなトラブルが発生する。

それでもEXCELACCESSならばMicrosoft社の製品なので、(移行不具合が多く発生しようとも)使い続けるのは不可能ではない。しかし、コーディング無しツールはMicrosoft社だけが作成しているのではなく、いろんな会社が作っている。その会社が5年後存在するか?そのツールは5年後存在するか?をあらかじめ考えてから手を出すべきだろう。または「プロトタイプ作成」と割り切ってツールを使用するのも一つの手だろうと思う。

コーディング無しで作成されたアプリは「プロトタイプとしては優秀」だが寿命が短い。延命するためにはコーディングできるレベルの担当者が必要になる。そのような担当者を継続的に確保できないなら、外注するなり、プログラマを雇うなりして「寿命を迎える前にコーディングで別途アプリ化しておく」必要がある。

今後、問題になりそうなのはRPAツールだろう。コーディング無しで作れるかもしれないけれど、どうやって維持していくのかということを、ツールの選定と維持するための運用方法を制度化しておくべきと思われる。

*1:Excelがプラットフォームとして後方互換性が無いと言っているわけではない。あるExcel95アプリケーションがExcel2007に対して後方互換性が無かったというだけ

*2:例えばExcelの仕様で、新規Bookが作成される際、Excel95では10個のシートが作成される。Excel 2007あたりでは3つのシートが作成され、現行のExcelでは1つしかシートが作成されない。シートがデフォルトで3シートあるか、10シートあることに依存するマクロは、1つしかシートが作成されない現行のExcelでは動作しない。

*3:ACCESSではマクロとVBAが異なる存在、マクロでは細かい制御ができないのでVBA変換が可能だが、勝手に関数名やコントロール名に日本語が使用されたりする。その結果https://docs.microsoft.com/ja-jp/archive/blogs/office_client_development_support_blog/ver1708-issue-japanesenamevbamoduleこんなことが起こったりする。

他人の言葉の使い方を非難するときは調べてからにしましょう

結構な昔話。確かアナウンサーの生島ヒロシ氏だったと思うが、宮沢りえ氏インタビューの言葉に突っ込んでいた。
「りえさんは全然大丈夫と言っていますが、本来全然は否定の時に使う言葉です」

そう言われてみれば、私もマンガ雑誌の裏に「全く簡単だ」という言葉が記載されていた時に、「全くって、否定の時に使うんじゃないの?」と思っていた。全然と全くは同義だろうから、生島さんの言葉が正しいんじゃないかと思った。しかし、よく考えてみると、全くという言葉は結構な頻度で肯定に使われているような気もする。調べようもないので、なんとなくモヤモヤした感じを抱えたまま何年か経過した。

インターネットが普及して、Googleが現れることによって、調べるコストが非常に下がった頃に「全然は否定にしか使えないのか」問題を調べてみたところ、使っても構わないというのが現状の通説のようだと判明した。明治時代には既に全然を肯定で使用している例はあり、我々が違和感を感じるのは、昭和期の教育の中で培われた言葉の感覚に依存しているようだった。
言葉のスペシャリストであるアナウンサーが、自分で調べたわけでもないのに、昭和期の教育をベースに「本来」とか言っちゃうのは、そこそこカッコ悪いような気がする。


ライフラインという言葉があり、阪神大震災からよく耳にするようになった。耳にする様になってから暫く後に、新聞のコラムにこんな内容が載っていた。

ライフライン和製英語扱いする人がいるが、それは誤りで、アメリカで用いられはじめた、ちゃんとした工学用語だよ」

このことも長い間気にはなっていたのだが、Googleの出現によって調べられるようになった跡に、日本のサイトを漁っても、あまり詳しい情報は見つからないので、earthquake lifeline で検索したところ
・そもそも米国発祥のライフライン地震工学というのがある。
・サンフェルナンド地震をきっかけに生まれた比較的新しい工学分野。
というのがわかった。たしかに和製英語ではない。
ということで、当時和製英語扱いしていたWikipediaを更新したりしてみたのであった。今の版記載のutilityと同義というのには賛成できない*1が、正確性は上がっているような気がする。
ネイティブスピーカーが知らない言葉や言葉の用法なんて腐るほどあるのに*2、ネイティブスピーカーが知らない用語を和製英語だというのは余りにもアホなのではないかと思う。


個人的には「百歩譲って」という言葉と「有言実行」という言葉に少し抵抗がある。どちらもパロディっぽい言葉なのに、元となった言葉「一歩譲って」「不言実行」を駆逐しそうに見える為だ。とはいえ、「大幅に譲歩する」「言ったことを実行する」に該当する言葉が世の中に望まれており、にもかかわらずそんな言葉が存在しなかったのかも知れず、非難すべき内容ではないだろう。


以上のように、他人の言葉の使い方を非難するのはなかなか難しいのだ。


ただし、「中抜き」だけはダメだと思うので積極的に非難しておこうと思う。本来、「生産者と消費者間で業者を用いずに直接取り引きする」だった言葉が、「生産者と消費者の間に業者が入り込んで、本来生産者が得るべき報酬を業者が抜き取ってしまう」という意味になってしまっている。全く逆の意味を持つ同じ言葉*3は流石に存在しちゃいけないんじゃないだろうか。中間搾取でいいじゃないか。まあ、中間搾取という言葉は非常に強いので、マスコミ屋さんが中間搾取業者様に忖度して、言い換えを行っているのだろうけれども。

*1:lifelineは災害を想定した用語なので

*2:全然関係ないがパタリロという漫画の「剔抉という言葉を知っていますか」というネタを思い出した

*3:同音対義語とでもいうべきだろうか。