いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

golang

Goメモ-163 (非同期パターンがまとまっているリポジトリ)(go-concurrency-patterns)

概要 参考資料 概要 忘れないうちにメモメモ。。 Goでの非同期パターンを纏めてくれているリポジトリがあったのでメモ。 golangexample.com このブログでも、Goの非同期メモ何個か書いているので、よかったら 参考資料 のリンクご参照ください。 参考資料 de…

Goメモ-162 (crypto/tls/generate_cert.go を使ってオレオレ証明書作成)

概要 cert.pemとkey.pemを生成 httpsサーバを起動 サンプルのHTML 起動 サンプル 参考資料 概要 知らなかったので、忘れないうちにメモメモ。 Goの標準ライブラリの中に crypto/tls/generate_cert.go というファイルがあります。 これを go run で起動してや…

Goメモ-161 (go.mod の 内容を Go 1.17 に調整する)

概要 1.17 から go mod tidy に -go フラグが追加された 参考資料 概要 Go 1.17 もリリースされたので、go.mod ファイルの中身を 1.17 向けに調整しようと思いました。 今の go.mod ファイルは以下のようになっています。 module github.com/devlights/try-g…

Goメモ-160 (8ビット グレースケール 画像を作る)

概要 サンプル download.go grayscale.go 参考資料 概要 最近画像処理をすることが多いので、8ビット グレースケール 画像をよく作っています。 ImageMagickを使えば、すぐに作れるのですが、Goでも出来るのかなってしらべてみたところ、とても簡単に作れた…

Goメモ-159 (ExcelのシートをPDFに変換)

概要 サンプル 参考資料 概要 自作のExcelライブラリに「ワークシートをPDFに変換するサンプルほしいな」ってコメント頂いたので、ちょこっと追加しました。勿体ないのでついでにここにもメモメモ。まあ、OLE経由で呼び出しているだけですがw github.com サ…

Goメモ-158 (base64 エンコードとデコード)

概要 サンプル エンコード デコード 参考資料 概要 たまに base64 でバイナリを送ったりすることがあるので、忘れないうちにここにメモメモ。 サンプル エンコード 普通の文字列をBase64することは個人的にあまり無いので、適当なバイナリファイルとして Uns…

Goメモ-157 (bytes.Bufferはとても便利)

概要 サンプル ゼロ値で利用 文字列からbytes.Bufferを生成 バイト列からbytes.Bufferを生成 io.Readerとして利用 io.Writerとして利用 参考資料 概要 bytes.Buffer 使ってますか? Goではバイト列を扱うことが多いので、この型はとても便利です。 Goを始め…

Goメモ-156 (go test で short モード時にスキップするテストを書く)(-short, t.Skip)

概要 サンプル 普通にテスト実行。 -short オプションを付与して実行。 参考資料 概要 よく忘れるのでここにメモメモ。 go test には、-short というオプションがあります。テストとしては用意しているけど、時間がかかるので、パパっとテストを実行したいと…

Goメモ-155 (StackOverflow Collectives に Go の Collective がオープン)

概要 参考資料 概要 以下、忘れないうちにメモメモ。 昨日(2021-06-23)、stackoverflow が Collectives on StackOverflow というものをローンチしましたね。 stackoverflow.blog このサービスの最初のカスタマーの一つが Go 言語 とのことで、GoのCollecti…

Goメモ-154 (go run したら unsupported VMA range って出た)(Chromebook, ARM64)

概要 こんな感じ CPUの情報 情報を探してみる 対策 参考資料 概要 以下、自分のChromebookの環境で発生しました。忘れないうちにメモメモ。 発生することは、最近のWindowsマシンとかMac使っていると無いと思いますが。。。 こんな感じ $ make run go get -d…

Goメモ-153 (Goでのファイル I/O のやり方まとめ)

概要 ファイル開いて読み込み ファイル開いて読み込み2 ファイル開いて書き込み ファイル開いて書き込み2 追記モード (Append) で開いて書き込み /dev/null のように出力を捨てる Shift-JIS なファイルを読み込み Shift-JISなファイルを書き込み EUC-JP な…

Goメモ-152 (複数の *exec.Cmd をパイプストリームでつないでコマンド実行する)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com (*Cmd)…

Goメモ-151 (mainパッケージの中でビルドタグ使って複数のmain関数を定義)(+build run)

概要 ビルドタグを付ける 参考資料 概要 ちょっとしたTIPSです。 Goでは main パッケージの中に main 関数があればそれがエントリポイントになりますね。 で、当たり前ですが複数のmain関数が定義されているとビルドエラーになります。 でも、go run で実行…

Goメモ-150 (プログラミング言語GoのKindle版が出てた)

概要 参考資料 概要 忘れないうちにメモメモ。Goのバイブル的書籍のプログラミング言語Goの日本語版で、いつの間にか Kindle 版が出ていました。 プログラミング言語Go作者:アラン・ドノバン,ブライアン・カーニハン,柴田芳樹丸善出版Amazon ずっと待ち望ん…

Goメモ-149 (Goでのループの書き方)

概要 基本形 (インデックス付き) 基本形 (foreach) 基本形 (whileループ) 無限ループ 単純に指定回数だけループ (Range Loop) スライス(Slice) をループ マップ (Map) をループ チャネル (Channel) をループ 参考資料 概要 以下、自分用のメモです。 他の言…

WSL2とVSCodeで欲しい環境を好きなだけ作る

概要 WSLにて現在実行しているものを一覧出力 WSLにて特定のイメージをインポートする 作った仮想マシンを停止したい場合 作った仮想マシンを削除したい場合 作った仮想マシンをエクスポートしたい場合 一般ユーザの作成 仮想マシンに特定のユーザでログイン…

Goメモ-148 (embed メモ (埋め込み対象を絞り込み, embed.FSで取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ5個目。 前回は以下。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com embed パッケージのドキュメントは以…

Goメモ-147 (embed メモ (複数ファイル, embed.FSで取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ4個目。 前回は以下。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com embed パッケージのドキュメントは以下。 golang.org 今回は、…

Goメモ-146 (embed メモ (単独ファイル, embed.FSで取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ3個目。 前回は以下。 devlights.hatenablog.com devlights.hatenablog.com embed パッケージのドキュメントは以下。 golang.org 今回は、単独のファイルを埋め込んで…

Goメモ-145 (embed メモ (単独ファイル, バイナリで取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ2個目。 前回は以下。 devlights.hatenablog.com embed パッケージのドキュメントは以下。 golang.org 今回は、単独のファイルを埋め込んで、その内容を []byte で取…

Goメモ-144 (embed メモ (単独ファイル, 文字列で取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ1個目。 embed パッケージは、ビルドモジュールにファイルを埋め込むことができるようになるパッケージです。 これからは外部ライブラリを利用せずにテンプレートファ…

Goメモ-143 (構造体のメンバ定義順によるメモリのパディングについて)

概要 サンプル 参考資料 概要 小ネタ。基本的にどの言語でも同じ理屈です。C言語やってる人とか通信プログラム書いてる人にはおなじみの話だと思います。 構造体を定義する際、メンバの定義順によっては想定しているよりも大きなサイズでメモリ上に確保され…

Goメモ-142 (exec.Command で パイプストリーム を使ってコマンド実行)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com (*Cmd)には、StdinPipe, StdoutPi…

Goメモ-141 (exec.Command で Context 付きでコマンド実行)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com 上の記事では 、コマンドの実行に exec.Command() を利用し…

Goメモ-140 (exec.Command で標準入力・標準出力・標準エラー出力を全部指定)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com devlights.hatenablog.com 上の記事では 標準出力と標準エラー出力を (Cmd).Output() や (Cmd).CombinedOutput() …

Goメモ-139 (exec.Command で標準出力と標準エラー出力を両方取得)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com 上の記事のサンプルでは (*Cmd).Output() を使って標準出力を取得していましたが、標準エラー出力も含めて欲しい…

Goメモ-138 (staticcheck で警告をコメントで抑制する)

概要 試してみる 参考資料 概要 よく忘れるのでメモメモ。 go lint が そのうち deprecated になるという github.com を見てから、staticcheck を利用するようにしているのですが、とても快適です。 staticcheck.io んで、たまにですが staticcheck が出して…

Goメモ-137 (exec.Command で シェルの展開機能 を利用する)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 Go の os/exec パッケージには、コマンドを実行する exec.Command() がありますが、これを使用して cmd = exec.Command("ls", "-l", "*.go") みたいな実行をするとエラーになってしまいます。 シェル…

Goメモ-136 (Exampleテストで非同期結果をテストする)

概要 その関数が非同期処理する関数の場合 参考資料 概要 よく忘れるのでメモメモ。 Goには Example関数名 という形でテスト関数を作ると、ドキュメントに使用例として載ってくれる、かつ、ついでにテストとしても利用できる機能があります。 こんな感じです…

Goメモ-135 (embedパッケージを使ってバージョン情報などを埋め込み)

概要 サンプル それぞれ別々のファイルにしておいて埋め込む 一つのファイルにバージョンとかをまとめておいて埋め込む 概要 前回、ビルド時に -ldflags を使ってパッケージ情報を埋め込むサンプルを記載しました。 devlights.hatenablog.com Go 1.16 から e…