88171.net

Safariの履歴とDuckDuckGo

DuckDuckGoの検索結果一覧からリンクを辿った際、Safariに

という、明らかにおかしな履歴が保存される。 訪問したリンク先のURLは履歴に保存されない。

長いこと知られている問題ではあるものの、現在(macOS Catalina)に至るまで解決していない。 何が辛いって、アドレスバーの候補に表示されたタイトルを見て「そうそう、このページ」と思って開くとDuckDuckGo、という終わりなきストレス。

JavaScriptをオフにした状態でアクセスすると正しい履歴が保存されるし、 HTML版でも問題は起きない。 DuckDuckGo側のJavaScriptが悪さをしているかSafariと相性が悪いか、ということになるわけだけど、Safariのカスタマイズ性の低さを考えるとこれ以上追っても得るものはない気がする。

どうやら新規タブで開けば問題は起きないようなので、 DuckDuckGoの設定で「検索結果を新しいウィンドウまたはタブに開く」を有効にすることで凌いでいる。

ダークモードwith CSS

少し前に prefers-color-scheme メディアクエリを使ったダークモード対応を入れた。 ざっくりと色を反転させてみて、暗すぎると感じる部分は少し明るめに調整したり現物合わせであれこれした。 まあ、見かけ上はそれっぽい感じになってはいると思う。

内情は、色関係のSass変数の値をCSSのカスタムプロパティに突っ込んでさらにメディアクエリで上書きする、というなかなか泥臭い感じになっている。

$color-foreground: (
    body: #333,
      :
);
$color-background: (
    body: #fff,
      :
);

:root {
    --color-foreground: #{map-get($color-foreground, body)};
    --color-background: #{map-get($color-background, body)};
      :
}
@media (prefers-color-scheme: dark) {
    :root {
        --color-foreground: #{invert(map-get($color-foreground, body))};
        --color-background: #{invert(map-get($color-background, body))};
          :
    }
}

body {
    color: var(--color-foreground);
    background-color: var(--color-background);
      :
}

どうにかならんもんか、とは思うものの、いろいろと調べてみてもこれ以上スマートな方法が思いつかない。 ごちゃごちゃさせたくなくて実は色関係以外はカスタムプロパティでなくSass変数を直接参照している、というのもきまりが悪い。 もういっそSassを捨ててしまおうかとも考えたけれど、ネストなしで維持してゆける気がしない。


あんまりプリプロセッサに頼りっぱなしだと素のCSSの仕様に疎くなってしまって良くない。 正直な話、カスタムプロパティは今回の件で初めて知ることになった。 Sassを使い始めた一番の理由だった CSSに変数機構がない という点が、気づかないうちに解消されていた。

XigmaNASへ

そろそろ潮時と感じたので、自宅のNAS(HP ProLiant MicroServer N54L)をFreeNAS (11.2-U1) からXigmaNAS (x64-embedded-11.2.0.4.6625) に入れ替えた。

インストール

インストーラをLiveメディアから起動する必要があるので、転がっていた適当なUSBメモリにLiveUSBのイメージを書き込んだ。 光学ドライブは載っていないし、RACの仮想ディスクも使えない、というかたぶんmacOSに対応していない。

ベースシステムのストレージには、FreeNASで使っていたUSBメモリを流用する。 念のため dd if=/dev/zero して先頭100MBくらいを書き潰してからインストールを始めたものの、必要だったのかどうかはわからない。 まあブート順を気にせずに済んだのはメリットかもしれない。

メニューに沿って適当にインストールして初期設定して終了。

ZFSのインポート

一番の肝であるところの FreeNASで構築したZFSをimportできるか は、結果的に特に苦労もなくできた。 あまり調べずにウェブインタフェースをいじり回していたらできてしまったので、正解がよくわからないままだけれど、たぶんこれが最適解。

Preferred method:
1: Go to “Disks > Management > HDD Management” and Click on “Import Disks” and Apply.
2: Go to: “Disks > ZFS > Configuration > Synchronize” and click on “Synchronize” and apply.

Re: From freenas to XigmaNas

同じFreeBSDがベースだし、こんなこともあろうかとupgradeもしばらく控えていたので、正直あまり心配はしていなかった。 ただAFPの設定を済ませればTime Machineのバックアップデータすらそのまま引き継げてしまったことには、さすがに少し拍子抜けした。

Rsync over SSH

Services > Rsync > Client の設定はウェブインタフェースから行なえるものの、TCP直結が前提の様子。 自前でパパッとcronの設定をしてみたもののうまく動かない。

さてどうやってover SSHで定期実行させたものか、と思っていたら、 Services > Rsync > Local の設定画面からできた。 変にパスの検証とかをしていないことが逆に都合が良く、ホスト名を入れても普通に動いてしまう。 将来的にはどこかのアップデートで使えなくなるかもしれないけれど、そうなったらその時に考える。

所感

ウェブインタフェースのデザインとかには少し古さを感じるけれど、考えようによってはこれくらい枯れている方が逆に信頼がおける。 ビール代くらいはdonateしよう、と思ったけど日本からはできないらしい。 ごめん。

ちょっと込み入ったスクリプトを書こうと思ったらRubyやPython(書けないけど)はおろかPerlすらなく、PHPが唯一の選択肢でびっくりした。 仕方がないのでPHPで書いた。 実に数年ぶりに。