Plan 9とGo言語のブログ

主にPlan 9やGo言語の日々気づいたことを書きます。

2018-01-01から1年間の記事一覧

MackerelでGitHubのイシュー数推移を記録してみた

この記事はMackerelアドベントカレンダー2018の18日目です。 Mackerelはサーバ管理・監視サービスですが、取得する数値はサーバに限ったものではなく、例えば体重など、数値なら比較的なんでも記録することができて、記録した値の推移を眺めることができます…

GoのPrintfでカスタムフォーマッタを使う

Go

Goの fmt パッケージは、%s や %3.4f のような書式を使えます。基本的にはCと同じですが、%#v や %T などGo固有なものもあります。書式は基本的に %[flag][width][.precision]{verb} のように分かれていて、それぞれの数値は幅や0埋めなどを指定します。{ver…

http.RoundTripperでHTTPクライアントを拡張する

この記事はQiitaで公開されていました GoでHTTPリクエストを行いたい場合、一般的には net/http のhttp.Getやhttp.Postを使うことになると思います。もしくは少し複雑なリクエストする場合、http.NewRequestを使うかもしれません。 net/httpの公式ドキュメン…

GitHubへHTTPSアクセスする場合はトークンを使った方が良さそう

2FA

GitHubやGitHub Enterpriseで、HTTPSを経由したgit pushや git pullをするとログインIDとパスワードの入力を促されますが、二段階認証を有効にしていると、正しいIDとパスワードでも認証がエラーになります。この場合、repo スコープを有効にしたトークンを…

Go 2のgenerics/contract簡易まとめ

この記事はQiitaで公開されていました 2020年8月追記 この記事は2018年頃に出てきたGoのジェネリクスに関するドラフトを読んで、個人的に理解した内容をまとめたものです。2020年時点ですでに、contractの代わりにinterfaceが使われるなど、十分に内容が古く…

GoDocドキュメントの書き方

この記事はQiitaで公開されていました Goでドキュメントを書くとき、一般的にはGoDocを使うと思います。GoDocはシンプルにみえて、実際は色々な書き方をサポートしていますし、ブラウザで単純に表示する以外の読み方もあるので、一通りの方法をまとめてみま…

golang.org/x/oauth2で色々な認可フローや方言に対応する

この記事はQiitaで公開されていました OAuth 2.0クライアントの実装 golang.org/x/oauth2を使ってトークンを発行する際に、複数の認可フローや方言があるけれど、どうやって実装するんだろう?と思ったことを調べました。OAuth 2.0自体については、OAuth 2.0…

macOSでNixpkgsのアップグレード

この記事はQiitaで公開されていました TL;DR NixpkgsのmacOSインストーラはマルチユーザインストーラなので、rootユーザにインストールされているnixパッケージのアップデートが必要。 $ sudo -i nix-env -q nix-2.0 nss-cacert-3.35 $ nix-env --version ni…

Go & Versioning(vgo)を読んで大きな変更が入ったなと思った

この記事はQiitaで公開されていました このQiita記事は、Go & Versioningで掲載された一連の記事を読んで、自分なりのまとめと感想です。私の周りはあまり騒いでないけど、これ感覚的なものが大きく変わるなあ、と思ったので、主に表面上に現れる変更をまと…

golang.org/x/sync/semaphoreを使ってゴルーチンの同時実行数を制御する

この記事はQiitaで公開されていました 特定の処理をゴルーチンで並列実行したいけれど、サーバの負荷等を考慮して、同時実行数の上限を設定したい話です。元ネタの記事では、チャネルやsync.Poolを使って実現していて、すでに十分シンプルなのですが、x/sync…

Jenkinsfileの書き方

この記事はQiitaで公開されていました ほとんど情報がなかったので調べながら書いたメモ。基本的に、公式情報が最もまとまっている。 Using a Jenkinsfile Pipeline Syntax Pipeline Steps Reference Jenkins Job DSL API また、古い情報らしいけど、現状こ…

bashのあまり知られていないけど便利な話

この記事はQiitaで公開されていました ~と*を展開する場合はクオートしない クオートされた文字列の中にある~はそのまま文字として扱われる。扱いは*と同じようにみえる。 $ echo ~/bin /Users/kadota/bin $ echo "~/bin" ~/bin $ echo *.txt hello.txt $ ec…

Windows 10でBluetoothデバイスのPINコードが表示されない

Bluetoothデバイスを追加するときに、PINコードを入力する必要があるけど、なぜか、本来は画面に表示されるべきPINコードがまったく表示されず、ペアリングができなくなる場合があった。 PINコード入力画面 デバイス側のペアリング情報を削除しても変わらな…