1password 3年版のライセンスを購入

最近1Passwordの3年版を購入しました。長年、ローカルのテキストファイルでパスワード管理をしていましたが、先日急にPCが起動しなくなってしまい、流石にクラウドに移行したほうがいいだろうと思い立ってライセンスを購入しました。


1Passwordとは?

1Passwordは、強力なパスワード管理ツールで、すべてのパスワードや重要な情報を安全に保管・管理することができます。一つのマスターパスワードだけで、すべてのアカウント情報にアクセスできるので、とても便利です。

3年版を選んだ理由

  • コストパフォーマンスが高い:長期契約することで、月々の料金が割安になります。
  • 安心感:3年間のサポートとアップデートが保証されているので、安心して使い続けられます。

既存アカウントからの移行

もともと体験版としてアカウントを作成していたので、そのアカウントをアクティベートして利用できるようにしました。

ソースネクストで購入すると、メールで登録用のURLが送られてきたので、そのURLにアクセスすると、サポートから日本語メールで連絡がありました。 アカウントとして登録するメールアドレスを聞かれたので、もともと登録しているアカウントを利用したい旨を返信したら、数分で有効になり、すぐに利用することができました。

その他

家族ライセンスにするか迷いどころでしたが、今回は個人ライセンスにしました。 まずは自分で使ってみてよかったら家族にも展開しようと思います。

usb-c電源アダプタ

追加でmacbookの電源アダプタが欲しくなったけど、正規のアダプタは高いので一般的なUSB-Cの電源アダプタを買って試してみる。


(追記) MacBook Pro 15インチ(2017年モデル)でもちゃんと充電できました! f:id:billiejoe:20200507223252p:plain

値段も手頃で満足してます。

git push --force-with-lease を使う

リポジトリにpushしてPRを作ろうと差分を確認していると、よく実装漏れやコメントの記載漏れに気づく。 追加でコミットするとコミットログが分かりづらくなるし、ブランチを作り直してpushするのに面倒なときがあるけど、 git push -f だとお作法的によろしくないので、git push --force-with-lease を使う。

git push --force-with-lease origin some_branch

ローカルrefとリモートrefを比較してローカルが最新だったらPushに成功し、 最新でなければPushが失敗するので、他の人のコミットを上書きしたり消してしまうことを防げる。


play.google.com

Android Studio 3.6.1にしたらDataBindingで参照解決できないときの対処

Android Studio3.6.1にアップデートしてから、DataBindingで自動生成されるBindingファイルの参照ができなくなってしましました。 f:id:billiejoe:20200323215108p:plain

ビルド自体はできるのですが、こんな感じでActivityMainBindingへの参照ができなくなってしまい、コード上でBindingに対する補完も効かなくなってしまった大変不便です。 AndroidStudioを再起動してRebuildしてもMacを再起動しても参照絵エラーは解決しません。

調べてみると、実際にはBindingファイルは生成できているのに、パスが通ってなくて参照できていない様子です。

こちらの内容を参考にapp/build.gradleに以下の内容を追加したら参照エラーが解消できました。

sourceSets {
        debug {
            java.srcDirs += "build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out"
        }
}

開発用にHTTPリクエストを表示するPHPスクリプト

テストでHTTPリクエスト内容をダンプしたいので、以下のgistを参考にPHPスクリプトを開発サーバに設置。

https://gist.github.com/magnetikonline/650e30e485c0f91f2f40

phpコード

class DumpHTTPRequestToFile {

    public function execute($targetFile) {

        $data = sprintf(
            "%s %s %s\n\nHTTP headers:\n",
            $_SERVER['REQUEST_METHOD'],
            $_SERVER['REQUEST_URI'],
            $_SERVER['SERVER_PROTOCOL']
        );

        foreach ($this->getHeaderList() as $name => $value) {
            $data .= $name . ': ' . $value . "\n";
        }

        $data .= "\nRequest body:\n";

        file_put_contents(
            $targetFile,
            $data . file_get_contents('php://input') . "\n",
            FILE_APPEND | LOCK_EX
        );

        echo("<pre>\n");
        echo("$data\n\n");
        echo("</pre>\n");
    }

    private function getHeaderList() {

        $headerList = [];
        foreach ($_SERVER as $name => $value) {
            if (preg_match('/^HTTP_/',$name)) {
                // convert HTTP_HEADER_NAME to Header-Name
                $name = strtr(substr($name,5),'_',' ');
                $name = ucwords(strtolower($name));
                $name = strtr($name,' ','-');

                // add to list
                $headerList[$name] = $value;
            }
        }

        return $headerList;
    }
}


(new DumpHTTPRequestToFile)->execute('./dump.txt');

設置コマンド

$ vim index.php
$ touch dump.txt
$ chmod 666 dump.txt

表示例

GET /dev/test/ HTTP/1.1

HTTP headers:
Host: xxx.example.com
X-Real-Ip: x.x.x.x
X-Forwarded-Proto: http
Listen-Ipaddr: x.x.x.x
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: ja,en-US;q=0.9,en;q=0.8
Cookie: __utma=80399112.18719; __utmb=80399112; __utmc=80399112; __utmz=80399112.1584945883.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)

Request body:

play.google.com

mac os(mojave)でファイルを消しても空き領域が増えなかったので、Time Machineのスナップショットを削除してみた

ディスクの空き容量が5%くらいになったときにmacを起動するたびに警告が出るようになったのだけど、しばらくは無視して使っていました。その後、少し大きめのアプリをインストールしようとしたら、空きが足りないと怒られたので、サイズの大きい不要なファイルを削除してひたすら空きを作っていきました。

f:id:billiejoe:20200309002057p:plain

ある程度ファイルを削除したところで見た目上は空きが出ているはずなのに、それでも空きが足りないという警告でアプリがインストールできず。

そこで、「このMacについて」のストレージを見てみると、利用可能の部分は65GB以上はあるのに、それでもアプリはインストールできない。 空きが65GBはあるはずなのに、ターミナルのdfコマンドで確認すると、空きが5GBくらいしかなった。   いくつか検索したら、どうもTimeMachineが自動でスナップショットをとっているのが悪さしているようで、実際に以下のコマンドを実行したらスナップショットが作られていた。

$ sudo tmutil listlocalsnapshots /

com.apple.TimeMachine.2020-02-24-200516
com.apple.TimeMachine.2020-02-24-210515
com.apple.TimeMachine.2020-02-24-220619

  以下のコマンドでスナップショットを削除してみる

$ sudo tmutil deletelocalsnapshots 2020-02-24-200516

これでも思うように空きが増えなかったので、以下のようにしたらdfでも空きが確認できるようになった。

$ sudo tmutil thinlocalsnapshots / 21474836480 4

$ df -h
Filesystem      Size   Used  Avail Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   233Gi  181Gi   48Gi    80% 3078541 9223372036851697266    0%   /

play.google.com

トヨタ生産方式

「超高速開発が話題になってるけど、心動かされている人は大野耐一トヨタ生産方式―脱規模の経営をめざしてを読んだ方が良いよ。開発が遅いのではなく、ムダなモノを作っているから遅いんだという認識がまず必要」というわけだけど、この認識が欠落してた。

トヨタ生産方式―脱規模の経営をめざして

トヨタ生産方式―脱規模の経営をめざして