Time Machine のスナップショット、つまり /Volume/Time Machine/Backups.backupdb/[Machine Name]/2016-05-05-002654/ みたいなやつを手動で削除したいとします。

これを Finder 経由で、ごみ箱に入れてごみ箱を空にするという手順でやると、時間がかかるうえに、途中で「ロックされている項目を削除してもいいか?」と一度確認まで入ります。さっさと削除してくれよという感じがします。

ということで、めんどいなので rm -rf するかと思いきや、これは削除するパーミッションがあっても、 operation not permitted となって失敗します。どうしてかというと Time Machine のスナップショットは専用のカーネル拡張で守られているからです。守られているにはそれなりの理由があるので rm -rf は素直に諦めましょう。

ということで、tmutil delete を使います。

$ cd /Volumes/Time Machine/Backups.backupdb/Alice
$  sudo tmutil delete 2016-05-05-002654/
Password:
Deleting: /Volumes/Time Machine/Backups.backupdb/Alice/2016-05-05-002654

こんな感じで使えます。スナップショット1つ消すのに結構な時間がかかりますが、特に確認は入らないので放置すれば終わります。

余談:なぜ rm -rf がダメか

Time Machine は差分バックアップのためハードリンクを活用します。これはディレクトリに対してもそうで、内容に変化のないディレクトリはハードリンクになります。 (ちなみにディレクトリのハードリンクは標準 ln では作れないので、brew install hardlink-osx で入る hln で試すことができます)

このとき、違うスナップショット間でも同じディレクトリエントリとなるわけなので、このディレクトリエントリ中のファイルエントリを削除 (unlink) してしまうと、このディレクトリにハードリンクしているスナップショット間でもファイルが消えてしまいます。なので rm -rf が禁止されています。

$ mkdir foo bar
$ touch foo/a.txt
$ ls
foo/ bar/
$ ls foo
a.txt
$ hln foo bar/foo
$ ls bar/foo
a.txt
$ rm -rf foo
$ ls
bar/
$ ls bar/foo
# a.txt が消える
  1. トップ
  2. tech
  3. Time Machine のスナップショットをコマンドラインで削除する

コネクタのペアの極性のことをジェンダーといい、それぞれオス(male)とメス(female)に呼びわけられる。変換コネクター(アダプター)はジェンダーチェンジャー(gendar changer)と言う。海外サイトで高周波コネクタを買いたいときはこれで検索するのが確実。

ただどうも結構よくどっちがどっちかわからなくなる。コンセントみたいに単に突起が出てるだけ/受ける側は穴が開いているだけなら簡単だけど、SMAコネクタにようにハウジング(ピンを保護したりするための囲い)がついているとややこしくなる。

しかも SMA コネクタの場合 RP-SMA というオス型ピン+メス型ハウジング/メス型ピン受け+オス型ハウジングというカオスな組み合わせがあるのって、どっちがオスでどっちがメスなのかわかりにくい。考えかたとしては内部にピンが立っているほうがオスであっているはずだけど自信がなくなる。

ユーザーが増えると嬉しいものだ!というのはわかるし、そうなんだろうけど、自分に正直に考えてみると、自分はそのことがそれほど嬉しくないようだ。

むしろ、ユーザーが増えるとミスしたときの影響範囲が広くなるので、どんどんコード書くことに対して嫌になっていく。プログラミングは「てこ」であって、小さな労力で大きなことをやることができるが、すなわち負の面では小さなバグで大きな影響を与える。当然、ほとんどの場合は良い方向に作用するし、そうするように作っているつもりだが、バグのないコードを書くことは不可能なので、コードを書けば書くほど、負の作用に怯えることとなる。

「自分のプロダクトがたくさん使われてるのってすごいと思わへん?」と聞かれると、理性の上ではそうですねと思うが、直感的にはまずは辛いという気持ちがでる。

根幹にあるのは、「たくさんの人に使われる」ことが自分の中の承認システムに組み込まれておらず、それを天秤にかけたとき、嬉しさの方に傾かないということだ。

たくさんの人に使われるからといって、技術的にすごいとはいえない、というのもあるかもしれない。ただこの考えかたは美化しすぎで、たくさんの人に使われてバグが見つかってバカにされるのが嫌なだけというのが正直なところだという気がする。

エンジニアの年収がナントカみたいな記事が胸糞悪いので、出てくるエンジニアが担当している全てのサーバが同時に落ちればいいのに。

結局、ああいう劣等感を煽るようなものに付随するなにもかもというのは気にするに値しないはずだけど、劣等感は自動的に反応するので、ここでは攻撃的になるという形で消費しておく

  • ストップザワールド!
  • コンカレントマークアンドスイープ!
  • ジェネレーショナルガベージコレクト!
  • レイジースウィープ!
  • コンパクション!

2016 Q2 には (すなわち6月中には) アップグレードするという話だったのですが、どうやら遅延しているようです。以下はフィリピン版の ZenTalk のスレです。

There has been some changes in the upgrade timeline [ source], they have changed the initial timeline to "from 2nd quarter of 2016" (April onwards). We apologize for any delays that may occur on the update rollout for the following ASUS ZenFone models:

  • PadFone S (PF500KL)
  • ZenFone 2 Laser 6-inch (ZE601KL)
  • ZenFone Selfie (ZD551KL)
  • ZenFone 2 5.5-inch (ZE550ML, ZE551ML)
  • ZenFone 2 Deluxe (ZE551ML)
  • ZenFone 2 Deluxe Special Edition (ZE551ML)
  • ZenFone Zoom (ZX551ML)


The Android M (6.0) upgrade has arrived for these ZenFone models:

  • ZenFone 2 Laser 5-inch (ZE500KL)
  • ZenFone 2 Laser 5.5-inch/5.5 S (ZE550KL)
  • ZenFone Max (ZC550KL)
http://www.asus.com/zentalk/thread-55985-1-1.html

どこが最新の情報なのかよくわかりませんが、このトピックは6/27に更新されていて Sticky にも設定されているので、たぶんこれは最新の情報なのでしょう。一部モデルについてはリリース済みですが、他のモデルは遅延するみたいです。ここで "they have changed..." と言ってますが、これを投稿しているのはフィリピンの担当者のようなので、たぶん they というのはアップグレード担当部門のことを言っていると思われます (違う?)


Global 版 ZenTalk だと特別新規のアナウンスはなくて、27/06/2016 . no Android M. というスレで約束は守られるのかとちょっと燃えてます。というのも、元々アップグレードプランのスレの文言は以下のようなものでした。

The following ASUS ZenFone models will receive the Android M (6.0) upgrade in Q2 of 2016

http://www.asus.com/zentalk/thread-68552-1-1.html

これが

The following ASUS ZenFone models will receive the Android M (6.0) upgrade starting from Q2 of 2016:

http://www.asus.com/zentalk/thread-68552-1-1.html

と変わっており (フォーラムのタイムスタンプを見ると 2016/6/28 04:59)、Q2 以降という内容に変わっています。フィリピン版のスレの冒頭はこの文言変更についての言及のようです。

遅延自体はともかく、アナウンスするのに元スレッド書き変えというのはいただけないと思います。普通に考えると新規にスレ立ててアナウンスすべきでしょう。フィリピン版は担当者の裁量?で一応まともなアナウンスが出てるので、Global 版もそのようにしてほしい感じがします。


ここ半月ぐらい毎日アップグレードの確認をしてきましたが、どうも無駄だったみたいなので残念です。いつになるんでしょうね。

  1. トップ
  2. tech
  3. ASUS ZenFone 2 の Android M (6.0) アップグレードは遅延

PC関係だとよく VRM (Voltage Regulator Module) フェーズ数という用語にでくわす。マザーボードやグラフィックボードのレビューを見ると「電源は6+1フェーズ」とかと書いてある。特に説明もないので意味不明である。

結論

先に結論を書くと、フェーズ数は多ければ多いほど良いというものではない。それに電源回路の良し悪しはフェーズ数で決まるわけではない。そういうものなので、こういう表記を見ても無視して良い。

マルチフェーズ同期整流

フェーズ数を理解するためには、マルチフェーズ同期整流について理解しないといけない。そもそもここでいう「電源回路」は定電圧 DC/DCコンバータのことで、外部供給の12Vを3.3Vや1.8Vなど安定した低圧大電流に変換することを言っている。

同期整流はローサイドもハイサイドもFETでスイッチすることによって高効率に整流を行うことをいう。このとき、スイッチングによって出力にリプルが発生する。そこで、ハイサイドFET・ローサイドFETのスイッチのセットを複数に増やして、それぞれのスイッチを少しずつ位相(フェーズ)をずらして整流させることで、よりリプルが少なく安定した定電圧電源とすることができる。

つまり「VRM フェーズ数」の「フェーズ」とは「位相」のことになる。1フェーズにつき少なくともFET 2つと、スイッチングコントローラ回路が1つと必要になる。(ただしフェーズが増えてなくてもFETのペアの数をフェーズとしてカウントする間違った宗派もあるっぽい)

基本的にはフェーズ数が多いほうが高級とされている。部品点数が増えるので価格が高くなる。フェーズ数が多いことの利点としては

  • 電源供給が安定する
  • FET 1つあたりの電流を減らせる
    • 発熱が分散するので放熱しやすい
    • 部品の高さを抑えられる

欠点は

  • 部品点数が多いので
    • 価格が高くなる
    • 故障率が上がる
  • スイッチング損が増え、効率が下がる (特に低電流時)

回路まわりは、これが図ありでわかりやすい

6+1 とか 8+2 って表記は何なの?

マルチフェーズ同期整流についてわかっても、この表記は意味不明。

結論からいうと前の数字がCPU(GPU)コア用の電源のフェーズ数 (大電力) で、後と数字はCPU(GPU)のコア以外用のフェーズ数のようだが、この表記を誰が決めて使ってるのかさっぱりわからない。(ソースを探したけどわからなかった)

フェーズ数以外のVRMの要素

  • FETの数や性能
    • 具体的にはオン抵抗、並列にすれば減らせるが部品は増える
  • 同期整流コントローラの性能
    • 負荷追従性など
  • PWM 周波数
    • 高いほどコイルが小さくでき負荷追従性が上がるが、FETでのスイッチング損失が増えて効率が下がる。ノイズにも関係ある。
  • コイルの性能 (Q値)
    • コイルの直流抵抗値が低いほど低損失だが部品が大きくなる
    • コアの材質でも損失が出る
  • コンデンサの性能
    • ESR (等価直流抵抗) が低いほど負荷追従性が高く、リプルが減る

ちょっと考えただけでもいろいろ要素がありすぎるので、フェーズ数だけで何かを判断することはできない。

所感

最近のマザーボードは重要な機能はチップセットに殆ど統合されたしまったので、表面にほとんど部品が載ってない。そうすると見た目的にインパクトがあるのが電源回路だけになる。

マルチフェーズにするとFETとコイルが並んでかっこいいので、マルチフェーズがもてはやされるみたいなところがありそう。インターフェイス (M2 とか PCI-E とか) が進化しても、マザーボードの見た目的にはインパクトがないんで、電源を盛るみたいなことだと思う。

  1. トップ
  2. tech
  3. 電源 VRM フェーズ数ってなんなのか