@kyanny's blog

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

2020-08-01から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: …

リモートワーク時代に再認識したいコミュニケーションの同期・非同期

「リモートワーク」「テレワーク」「在宅勤務(Work From Home)」など呼び方は様々だが、 オフィス以外の場所から、同期的に働くこと オフィス以外の場所から、非同期に働くこと どちらの意味だと解釈しているか?一緒に働く人と認識を合わせておいた方が良…

プロジェクト型 vs プロダクト型

友人と、人にも組織にもプロジェクト型とプロダクト型があるよね、という話をした。 プロジェクト型 仕事 = 締め切りまでに終わらせるべきもの、という価値観 所与の条件下でいかに良い成果を出すか?という考え方 優先順位は 納期 > 質。間に合わせるためな…

Bash 現在の編集モードを確認する

set -o shopt -o bind -V | grep editing-mode emacs - How to set and determine the command-line editing mode of Bash? - Unix & Linux Stack Exchange set -o bash-3.2$ set -o allexport off braceexpand on emacs on errexit off errtrace off functr…

寄付

donation.yahoo.co.jp 余っていたTポイント 80 ポイント + 1000 円。

Grammarly の iOS アプリ(キーボード)を削除した

いまいち安定しないのと、標準の英語キーボードと比べて自動スペル補正などの挙動に不満があったので。 ないと思うが iOS 端末で他人が読む英語の文章を頻繁に書くようになったら再検討する。

Signing HTTP Messages について

このブログ記事の説明が網羅的でわかりやすい。 HTTPメッセージに署名をするSignatureヘッダの標準化 - ASnoKaze blog 仕様は移り変わっており、版も何度も変更されている。ライブラリや API がどの版に基づいているかによって相性問題が発生する。新しい仕…

漫画バビロン大富豪の教え 「お金」と「幸せ」を生み出す五つの黄金法則

黄金に愛される七つ道具 収入の十分の一を貯金せよ 欲望に優先順位をつけよ 貯えた金に働かせよ 危険や天敵から金を堅守せよ より良きところに住め 今日から未来の生活に備えよ 自分こそを最大の資本にせよ 「お金」と「幸せ」を生み出す五つの黄金法則 家族…

Bash で C-p が効かないときの調べ方

$ bind -p | grep previous-history "\C-p": previous-history "\eOA": previous-history "\e[A": previous-history [ubuntu@ip-xxx-xx-xxx-x:~]$ bind -p | grep previous-history "\eOA": previous-history "\e[A": previous-history C-p が無ければ、キー…

Google Discover その後

知人から「暇つぶしには Google ニュースのアプリもあるよ」と教えてもらい、試しにそちらを使い始めた。 以前試したときは、出てくる記事が Discover と似ていて重複も多く(同じ Google アカウントなので当然だが)、あえて別アプリを使う必要性を感じなか…

iOS スマート句読点をオフにした

設定→一般→キーボード→スマート句読点 をオフに。 半角ハイフンを2連続で入力すると全角ダッシュに自動変換されてしまうやつ。鬱陶しくて困っていた。 iPadで英字入力しているときにで2回連続半角ハイフン"-"を打つと全角ハイフン"—"に勝手に変換されてしま…

TIL: 数値をあえて文字列型で保存することがある

列1 列2 列3 列4 eb2c0958-991c-5f26-4d99-8214518fbb8a a 20000 5000 66a08082-ebd0-6de2-c4e8-6388df00e4e5 b 20000 5000 このようなデータを持つ CSV ファイルをパースして RDBMS のテーブルに保存する。列2の値がaならテーブルAに、bならテーブルBに保存…

mackerel で cron ジョブの所要時間を監視するアイデア

cron ジョブを監視したい。監視したい項目は以下。 cron ジョブの実行が開始されたかどうか cron ジョブが正常終了したかどうか cron ジョブの所要時間 このような課題を解決するソリューションとして Dead Man’s Snitch を使ったことがあるが、他にも複数の…

ssh_config で設定した Host から HostName (IP) を引く

ssh -G の結果をフィルタすれば良い。 Host mysite HostName 203.0.113.200 $ ssh -G mysite | grep -E '\bhostname' hostname 203.0.113.200 awk - Given the Hostname, get Host from ~/.ssh/config - Stack Overflow 203.0.113.200 は Reserved IP addres…

ssh WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! を解決する

$ ssh-keygen -R hostname # 例 $ ssh-keygen -R 203.0.113.200 エディタで ~/.ssh/known_hosts から該当行を消すのでも良いが、コマンドを使う方がスマート。 「SSHホスト鍵が変わってるよ!」と怒られたときの対処 - Qiita ssh-keygen(1) - Linux man page…

愚行録

暗くて救いがなかった。「悪人」とかと同じ吉田修一かと思ったが、貫井徳郎だった。 function showSpoiler173fc7f86a3() { if(window.confirm('ネタバレを含む感想文を読みますか?')) { document.getElementById('showSpoiler173fc7f86a3').innerHTML = "妻…

OWNDAYS で眼鏡を買った

破天荒フェニックス オンデーズ再生物語 (幻冬舎文庫)は読んでないけど、何かと話題の*1 OWNDAYS で新しい眼鏡を買った。ここ数年は惰性で JINS で買っていた。 Ray-Ban のチタンフレームのやつもかけ心地が独特で悪くなかったけど、奥さんが「これが一番似…

Google アプリの Discover をオフにした

Digital Wellbeing 活動その二。 実は Google アプリの Discover が一番の時間泥棒だった。何かというとすぐ検索したくなる癖があり、しょっちゅう開くので Dock に入れているくらい。スクリーンタイムでも常に上位に入っている。 Discover は実によくおれの…

Twitter と Facebook のアプリからログアウトした

I have logged out from Twitter/Facebook app on my phone for Digital Wellbeing.— kyanny (@kyanny) August 14, 2020 Buffer は「投稿に対する反応が気になってしまうこと」への対処にはなるが、「タイムラインを眺めて時間を潰してしまうこと」への対処…

取引先とのシステム連携の開発タスクにアサインされた。 Production 環境の API にアクセスするためには審査が必要で、ビデオ会議中にアプリケーションを実行してテスト環境の API を呼び出すデモをしろという。先方のエンジニアによるアクセスログの確認も…

Go の time.Second について

Constants のところに定数はまとめて表示される。 https://golang.org/pkg/time/#pkg-constants https://pkg.go.dev/time?tab=doc#pkg-constants time.Second の型は time.Duration で、 time.Duration の実体は int64 。 https://golang.org/pkg/time/#Dura…

note の IP アドレス

芸能人とかは興味ないけど、どういうデータ構造で露出してたのか気になったので調べた。 調べ方 http://web.archive.org/ で https://note.com/ を検索する 適当に数日前まで wayback する 今回は http://web.archive.org/web/20200811074150if_/https://not…