@kyanny's blog

商品にならぬ技術は役に立たない - トーマス・エジソン

TENET

気分転換のために、久しぶりに映画館へ行って観た。 クリストファー・ノーラン、しかも時間逆行ものと聞いて期待が膨らんだせいか、やや期待外れだった。時間逆行というキーワードで「時砂の王」を連想してしまったので、イメージと違った。 帰宅途中にネタ…

読書メモ停滞

うまくいっていない。ハイライトが多くなると転記だけで飽き飽きしてくるし、ハイライト箇所は本の要点とは限らないので、要点をまとめるためには目次を読み直したり余計な作業が増える。目次だけでは何がどこに書いてあったかわからないこともある。 読みな…

IFTTT Pro

とりあえず既存 Applet を動かし続けるためにも Upgrade が必要なので。 ifttt.com ifttt.com 初年度は $1.99 から $9.99 までの間の好きな値段で Pro に Upgrade できる。最安値の $1.99 を選んだ。 Pro の新機能の一つ、 Filter で Skip した場合、 Retry …

やり抜く力

副題も含めたタイトルは、 やり抜く力 GRIT(グリット)――人生のあらゆる成功を決める「究極の能力」を身につける TED Talk でも有名な話。 グリット・スコア 「やり抜く力」をはかるための「グリット・スケール」というツールが紹介されていて、これを使うと…

日本一カンタンな「投資」と「お金」の本

Prime Reading に入っていたので読んだ。長期分散投資を勧める本。その割に「おすすめ投資信託」にアクティブファンドを入れたりしてるのは忖度を感じた。長期分散投資のメリットを知っていれば読む必要は無い(無かった)。 日本一カンタンな「投資」と「お…

9人の翻訳家 囚われたベストセラー

結構前に観た。暗く、あとストーリーがやや意味不明で、本(文章)で読みたかった気がした、けど本だったら読み終えなかったかもしれない。 9人の翻訳家 囚われたベストセラー(字幕版)発売日: 2020/07/03メディア: Prime Video

キャプテン・フィリップス

日本では劇場公開されなかったっぽい。 トムハンクスがソマリアの海賊と戦う映画。実話に基づく。観ながらつい「すしざんまいが彼らを救うのか」と考えてしまった。時系列的にはこの事件の後にすしざんまい、らしい。 キャプテン・フィリップス (字幕版)発売…

New Evernote for iOS: the elephant is back

CEO 交代からずっと伝えられてきた「基本に立ち返る」改善を経て、ついに Evernote アプリの新バージョンがリリースされた。 Evernote for iOS が新しくなりました | Evernote 日本語版ブログ Evernote の可能性を解き放つ | Evernote 日本語版ブログ Unlock…

Microsoft Authenticator と iCloud バックアップ

勤務先の Office 365 アカウントや各種 SaaS アカウントの二要素認証のために Microsoft Authenticator を使っていて、バックアップを有効にしたときの覚え書き。 やり方や注意事項 Back up and recover accounts with the Microsoft Authenticator app - Az…

Google アプリ

また UI や機能の AB テストでもしているのだろうか。 ここ数日、検索結果からウェブ閲覧してるとき、アドレスバーの右側に「ページを読み上げる」ボタンが出現していた(どんなアイコンか忘れたが、見慣れなかった)。 しかし今日はまた UI が変わって、ア…

Go: if err := expr; err != nil { } // initialization statement

戻り値が error 一つの関数を呼び出してエラーチェックする際、以下の二種類の書き方がある。 err := expr で受け、改行し、 if err != nil { } でエラーチェックする if err := expr; err != nil { } とワンライナーでエラーチェックする このうち 2 のやり…

ssh: Too many authentication failures

scrapbox.io [ssh-add] に4つ以上の鍵を登録している これに該当した。 ssh-add -D で鍵を消すと、試行回数が0になるので解決する で対応した。 事情により鍵を四つ以上登録することは必須なので、 sshd 側で対応すべきではあるが、対処法が分かっていれば大…

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

iPhone のストレージ容量がおかしくなった - @kyanny's blog iPhone のストレージ容量おかしい問題が解決した - @kyanny's blog iPhone を初期化して iCloud バックアップから復元した。 初期化前の iPhone を Mac に接続した状態 初期化・復元後の iPhone …

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

golang.org/x/time/rate については以下の記事に詳しい。 blog.lufia.org NewLimiter の第二引数の burst 値について調べたメモ。 burst は「一度に消費できるトークン数の最大値」。「貯められるトークンの最大値」と考えても良いが、やや不正確(「溜まっ…

エジソンズ・ゲーム

ウェスティングハウスのことを知らなかったし直流と交流の違いも忘れていたけど面白かった。歴史を知っていればなお楽しめただろう。音楽がまた良かった。テスラモーターズはニコラ・テスラから名前をとったのだろうか。 エジソンズ・ゲーム(字幕版)発売日: …

GoLand: goimports を適用させる

1. Sorting style を goimports にする Preferences -> Editor -> Code Style -> Go -> Imports タブ -> Sorting Type で goimports を選択する(デフォルトは gofmt になっていた)。 2. File Watcher を追加する Preferences -> Tools -> File Watchers ->…

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 f…

GoLand にもキーボードマクロがある

Emacs の キーボードマクロ みたいなもの。 ↓の例だとキーボードショートカットが割り当てられている機能の組み合わせでしかマクロを組み立てられないように見えるが、普通のカーソル移動なども記録してくれる。 pleiades.io 実行例 関数名をコピーして定型…

Go: named return values, naked return, mixed named and unnamed function parameters

A Tour of Go: Named return values にあるように、関数の戻り値の型に加えて変数名も書ける。これを named return values と呼ぶ。 Named return values を使っている関数内では引数無しで return できる。これを naked return と呼ぶ。 しかし、関数定義で…

Go: 型変換した値を変数に入れずにアドレスを得ることはできない

&string(byteArray) のように直接ポインタを得ることはできない。変数に代入してから & 演算子を使う必要がある。 package main import "fmt" func myLen(s *string) int { return len(*s) } func main() { b := []byte(`hello`) //NG: cannot take the addr…

Ruby: WEBrick で HTTPS サーバを立てる

WEBrick::HTTPServer.new() に SSLEnable: true と SSLCertName を渡す SSLCertName: [['CN', WEBrick::Utils.getservername]] とすると起動時に証明書を自動生成する srv = WEBrick::HTTPServer.new({ :DocumentRoot => './', :BindAddress => '127.0.0.1',…

GoLand: fmt.Printf() の中身は折り畳める

このように表示されていたものが、 このように、あたかも Ruby の式展開(string interpolation)のように表示されることがある。 これは「コードの折り畳み(Code Folding)」によるもの。マウスクリックか Cmd + "+" (Cmd と + を同時に押す)で上の見た目…

golint の About に笑った

[minor] ってのがいいセンスしてる。

Go: struct リテラルを返す関数

戻り値の型も同じものを書けば(冗長だが)いける。 package main import "fmt" func f() struct{Msg string} { return struct{ Msg string }{ Msg: "Yo", } } func g() *struct{Msg string} { return &struct{ Msg string }{ Msg: "Go", } } func main() { …

Go で PostgreSQL の JSON/JSONB データ型を扱う

PostgreSQL 側で JSON/JSONB 型としてフィールドが定義されていれば、 Go プログラムからは string なり []byte なりを INSERT するだけで良い。 dataString := `{"a":"A","b":"B"}` _, err = db.Exec("insert into t (dataType, json, jsonb) values($1, $2…

Go を書き始めて二週間ほど経つ。現時点では総じてつらい。わからないことが多すぎる。何がわからないのか言語化できないので思いつくキーワードで調べた結果をひたすら読むしかなく、効率が悪い。わからないことが芋づる式に出てくるので読めば読むほどイン…

Go: json Encode() は末尾に改行文字がつく

go - Why does json.Encoder add an extra line? - Stack Overflow *json.Encoder はストリーム処理用で、区切りとして \n をつけると。そういうものらしい。 改行文字を取り除くには strings.TrimSuffix() を使う。 ドキュメントにも書いてある。 https://g…

Go: json & や < や > をエスケープしない 

SetEscapeHTML() を使う。 b = new(bytes.Buffer) enc = json.NewEncoder(b) enc.SetEscapeHTML(false) enc.Encode("&<>") fmt.Println(b.String()) //=> "&<>" Go の json パッケージは &, <, > をエスケープする。 *json.Encoder.SetEscapeHTML() に false…

Go で chomp (末尾の改行文字を取り除く)

strings.TrimSuffix() を使う。 strings.TrimSuffix(s, "\n") s := " hello, world!\n" fmt.Printf("%#v\n", strings.TrimSuffix(s, "\n")) //=> " hello, world!" https://golang.org/pkg/strings/#TrimSuffix TrimRight() も \n だけを取り除くのであれば…

Go: json struct 大文字小文字

JSON and Go - The Go Blog The json package only accesses the exported fields of struct types (those that begin with an uppercase letter). Therefore only the the exported fields of a struct will be present in the JSON output. json.Marshal: …