@kyanny's blog

My thoughts, my life. Views/opinions are my own.

iPhone のストレージ容量が再びおかしくなった

iPhone のストレージ容量がおかしくなった - @kyanny's blog

iPhone のストレージ容量おかしい問題が解決した - @kyanny's blog

iPhone を初期化して iCloud バックアップから復元した。

初期化前の iPhone を Mac に接続した状態

f:id:a666666:20200914134501p:plain

初期化・復元後の iPhone を Mac に接続した状態

f:id:a666666:20200914225854p:plain

初期化前の iPhone ストレージ

f:id:a666666:20200914225352j:plain

初期化・復元後の iPhone ストレージ

f:id:a666666:20200914225410p:plain

Go: golang.org/x/time/rate の burst について

golang.org/x/time/rate については以下の記事に詳しい。

blog.lufia.org

NewLimiter の第二引数の burst 値について調べたメモ。

burst は「一度に消費できるトークン数の最大値」。「貯められるトークンの最大値」と考えても良いが、やや不正確(「溜まっているトークンは一度に全部利用する」という前提を踏まえれば真)

rate=10/sec, burst=1

https://play.golang.org/p/pFDkrz8MX63

  • トークンは一度に1個消費できる
    • ≒トークンは最大1まで貯められる
  • 起動直後にトークンを1消費する(000 2009-11-10 23:00:00 +0000 UTC m=+0.000000001)
  • 以後0.1秒毎にトークンが1貯まる
  • 50回処理し終わるまでに4.9秒かかる
    • (起動直後に1消費して残り49回、0.1秒で1回なので*49で4.9秒)

rate=10/sec, burst=10

https://play.golang.org/p/hSaoHpVx8AO

  • トークンは一度に10個消費できる
    • ≒トークンは最大10まで貯められる
  • 起動直後にトークンを10消費する(000 ~ 009 2009-11-10 23:00:00 +0000 UTC m=+0.000000001)
  • 以後0.1秒毎にトークンが1貯まる
  • 50回処理し終わるまでに4秒かかる
    • (起動直後に10消費して残り40回、0.1秒で1回なので*40で4.0秒)

rate=10/sec, burst=100

https://play.golang.org/p/aYpZQqOp8cM

  • トークンは一度に100個消費できる
    • ≒トークンは最大100まで貯められる
  • 起動直後にトークンを50消費する(000 ~ 049 2009-11-10 23:00:00 +0000 UTC m=+0.000000001)
  • 50回処理し終わるまでに0秒かかる
    • (起動直後に50消費して残り0回なので)

エジソンズ・ゲーム

ウェスティングハウスのことを知らなかったし直流と交流の違いも忘れていたけど面白かった。歴史を知っていればなお楽しめただろう。音楽がまた良かった。テスラモーターズはニコラ・テスラから名前をとったのだろうか。

エジソンズ・ゲーム(字幕版)

エジソンズ・ゲーム(字幕版)

  • 発売日: 2020/08/07
  • メディア: Prime Video

GoLand: goimports を適用させる

1. Sorting style を goimports にする

Preferences -> Editor -> Code Style -> Go -> Imports タブ -> Sorting Type で goimports を選択する(デフォルトは gofmt になっていた)。

2. File Watcher を追加する

Preferences -> Tools -> File Watchers -> Add -> goimports を追加する。設定はデフォルト値のままで良い。

Auto-save edited files to trigger the watcher オプションを ON にするとファイル編集するたびに goimports が走ってファイルを上書きし、非常にうざったいので使わない方が良い。考え事をしながら空行を追加することはよくあるが、即座に空行を削除されて仁義なき戦いになる。

3. Unsorted imports の警告レベルを上げる

File watcher がうまく動作しない場合の保険として、 import 順序が狂っている場合の警告レベルを上げて気付きやすくする。

Preferences -> Editor -> Inspections -> Go -> Code style issues -> Unsorted imports の Severity を Weak Warning から Warning に変更する。

参考リンク

Go: pass by pointer vs pass by value

goinbigdata.com

公式っぽい文書↓

CodeReviewComments · golang/go Wiki · GitHub

  • ポインタで渡さなければいけない場合
  • 構造体が大きい場合
    • How large is large? Assume it's equivalent to passing all its elements as arguments to the method. If that feels too large, it's also too large for the receiver.

Passing by value often is cheaper らしいので(コンパイラの最適化が効くから)、必要でなければ pass by value で良いのかもしれない。