いろいろ備忘録日記

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

golang

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

概要 WSLにて現在実行しているものを一覧出力 WSLにて特定のイメージをインポートする 作った仮想マシンを停止したい場合 作った仮想マシンを削除したい場合 作った仮想マシンをエクスポートしたい場合 C言語の環境を作る Goの環境を作る dotnetの環境を作る…

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…

Goメモ-134 (go build 時にバージョン情報などを埋め込み)(ldflags, -X)

概要 git からビルド番号などを取得して go のビルド時に埋め込む サンプル 参考情報 概要 前回、git でビルド番号とかを取得する記事を書いたのでついでに。 devlights.hatenablog.com Go では、ビルド時に -ldflags オプションをつかって、プログラム内の…

Goメモ-133 (PowerShell環境でビルド時にGOOSとGOARCHの指定の仕方)

概要 参考情報 概要 いつも忘れるので、ここにメモ。 PowerShell 環境で、クロスコンパイルしたい場合、以下のように GOOS と GOARCH を指定する。 $ $env:GOOS="linux"; $env:GOARCH="amd64"; go build -o xxx 参考情報 stackoverflow.com docs.microsoft.c…

Goメモ-132 (Go 1.16で追加された signal.NotifyContext())

概要 サンプル signal.Notify 何もせずに5秒経過した場合 5秒以内にCtrl-Cで割り込み入れた場合 signal.NotifyContext 何もせずに5秒経過した場合 5秒以内にCtrl-Cで割り込み入れた場合 参考情報 概要 Go 1.16 のリリース自体については以下の記事を参照くだ…

Goメモ-131 (Go 1.16 リリースで気になったところメモ)

概要 参考情報 概要 Go 1.16 のリリースノート見て、気になったところを自分用にメモメモ。 golang.org Go 1.16 のリリース自体については前回の記事を参照ください。 devlights.hatenablog.com 1.15から6ヶ月後にリリース 言語の変更なし Mac上の64ビット A…

Goメモ-130 (Go 1.16 リリース)

概要 Go 1.16 をダウンロードしてインストール (Linux)(Gitpod) 参考情報 概要 Go 1.16 がリリースされましたね。 今回は、embed パッケージが追加されていたりとちょっと楽しみなリリースです。 以下、リリースに関しての自分用の参考情報です。 blog.golan…

Goメモ-129 (ファイルのパーミッションを取得)

概要 サンプル 概要 よく忘れるので、ここにメモメモ。 os.Stat() から取得した os.FileInfo から Mode().Perm() で取得 https://golang.org/pkg/os/#Stat https://golang.org/pkg/os/#FileInfo 後は、それに調べたいパーミッションをANDして判定。例えば、…

Goメモ-128 (Go 1.16から io/ioutil パッケージが Deprecated な方向になっていく)

概要 概要 知らなかったので、メモメモ。 io/ioutil パッケージが Go 1.16 から deprecated な予定になっていくみたいですね www.srcbeat.com github.com もともと ioutil に存在していた関数とかは、それぞれ io や os パッケージ側に移動されるみたいです…

Gitpod で GUI アプリを動作 (gitpod-full-vnc)

概要 Dockerfileを用意 (.gitpod.Dockerfile) gitpod.yml を用意 サンプルアプリを用意 Makefileを用意 確認! 今回作ったサンプルリポジトリ 参考情報 概要 Gitpod で VNC を使って、GUIアプリを動作できるとのことなので、試してみました。 www.gitpod.io …

Goメモ-127 (データをバッファリングして吐き出すチャネル, Buffer)

概要 サンプル 概要 小ネタ。せっかくサンプル作ったので、ここにメモメモ。 何らかのデータシーケンスがあるとして、それを一定数貯めてから処理するというのはよくあるシチュエーションですね。 個人的には、fan-outさせる際に各非同期処理に処理してもら…

Goメモ-126 (全部完了したら完了するコンテキスト, WhenAll)

概要 サンプル 概要 以前チャネルで同じような動きするものを記事にしました。 devlights.hatenablog.com context.Contextを受けるバージョンもついでに作成。中で上の記事で作った関数を呼んでいるだけですがw サンプル package ctxs import ( "context" "…

Goメモ-125 (どれか一つが完了したら完了するコンテキスト, WhenAny)

概要 サンプル 概要 以前チャネルで同じような動きするものを記事にしました。 devlights.hatenablog.com context.Contextを受けるバージョンもついでに作成。中で上の記事で作った関数を呼んでいるだけですがw サンプル package ctxs import ( "context" "…

Goメモ-124 (画像ファイルをExcelに挿入する)

概要 サンプル 概要 小ネタ。 仕事によっては、試験のエビデンスを画像で取得しておいて、それを後からExcelに一個一個貼り付けたりするような場面もあったりしますよね。。。。 対象のファイルが5個とかそれくらいなら、まだ手でやってもいいと思いますが…

rpmのファイル名からパッケージとかバージョンとかを抽出

概要 yumのソースコードにていい関数発見 ついでなので Go で移植 ついでにプチツール作った 概要 ちょっと興味が湧いたので、調べてみました。自分用のメモ書きです。 rpm のパッケージ名って apt のやつと違って、一見どこがパッケージ名でどこがバージョ…

Goメモ-123 (selectでのチャネル選択の有効無効を切り替える)

概要 サンプル チャネルを nil にして無効にするサンプル nilなチャネルをnon-nilにして出力を切り替えていくサンプル おすすめ書籍 概要 小ネタ。select ステートメントと チャネル はよく利用される組み合わせです。 このときに、チャネルの値を nil にし…

Goメモ-122 (別ファイルのExcelシートをコピーしてもってくる)

概要 シートコピーする関数がない GoはやめてPythonでスクリプト書いちゃおう 自前ライブラリにシートコピー関数を追加する サンプル おすすめ書籍 概要 以下、自分用メモも兼ねています。 以前にExcel関連の処理をGoからいろいろ操作したりした記事を何個か…