go
背景 転職するので、個人のパソコンも新調しました。MacBook Air M3 です 当方、Goに縁があるので、Goの環境整えたいです Goのバージョンマネージャ Goはパッケージマネージャは公式の go mod を駆使したらいいんだと思うんですが、Go自体のバージョンマネー…
このエントリはGoのカレンダー | Advent Calendar 2022 - Qiitaの13日目です。多種多様なGoに関する記事を見ることができて、とても刺激になってます。ありがとう、クリスマス。ありがとう、アドベントカレンダー。当方はというと、最近ふつうにハマった問題…
問題 cloud.google.com/go/datastore datastore package - cloud.google.com/go/datastore - pkg.go.dev を使ってDatastore | Google CloudにデータをPutしていて、掲題のエラーを得た。 ev := models.Event{/* なんらかの値 */} if _, err := tx.Put(key, e…
このエントリは Go 2 Advent Calendar 2020 - Qiita の8日目です。 背景 もう2年前になりますが、ソフトウェアを主業としない業界に転職しました 最近はストレス解消にコードを書いています。仕事ではいっさいコード書かない ameshコマンド、amesh-botは便利…
背景 一応GoもやってるしWebのフロントエンドもある程度やっているのに、WASMなにも触ったこと無いのはよくないので触りたい WASMというものが一体何なのか、何ができるかも知らない tl;dr Goで書いたコードをwasmにするフラグをつけてビルドすると.wasmが手…
tl;dr これの通りです Quickstart for Go 1.11 in the App Engine Standard Environment | App Engine standard environment for Go 1.11 docs | Google Cloud うごくやつです GitHub - otiai10/gae-go-sandbox 作業環境 % gcloud -v Google Cloud SDK 235.0…
背景 自分が関わっているイベントのホームページをGitHubで管理、GitHub Pagesでホストしているんですが、 masterブランチが更新されたら自動でデプロイしたい ホームページの更新内容ってほとんど「イベントに関する新しい情報」に他ならないので、これを自…
前回これをやったので、 otiai10.hatenablog.com 今回は、これをGoのSDKからやる。 結果だけくれ はい github.com 以下ペライチ全文 package main import ( "flag" "fmt" "log" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "g…
注意: EC2インスタンスローンチ直後はPublicIPAddressがassociateされていないので、再帰的に時間とりつつDescribeInstanceしています。(func ensureの部分) package main import ( "flag" "fmt" "log" "time" "github.com/aws/aws-sdk-go/aws" "github.co…
やりたいこと 複数立ち上がっているgoroutineの中で、それぞれ独立にSIGINT捕捉できるだろうか?という素朴な疑問 ソースコード 期待されるアウトプット「各goroutineのidとinterruptedというログが出る」 package main import ( "fmt" "os" "os/signal" "sy…
問題 deferを使って後処理をしたい場合に、プロセスがCtrl+cなどSIGINTで中断されるとdeferしたものが発火しない。プロセス自体が中断されるのであたりまえなんだけども。 問題の再現 package main import ( "fmt" "time" ) func main() { defer teardown() …
tl;dr docs.aws.amazon.com 動くコード package main import ( "fmt" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ec2" ) func main() { sess := session.Must(session.NewSessionWithOpt…
tl;dr bufio.ScannerでScanが終わってもErrはちゃんと見ましょう。以上。 問題 継続的に書き込みのあるTCP接続からの読み込みを、bufio.Scannerをつかって華麗に逐次読み込みしていた。が、どうやらそれが静かに切断され、クライアント(こちら)側のローカ…
このエントリはGo2 Advent Calendar 2017 - Qiitaの4日目です。 2017年は、着実にエロリツイート先生として実績を上げた1年でした、otiai10です。WETな方もよろしくお願いします。 Cgoを使った文字認識ライブラリがv2になりました Go言語には、Cgoという、…
をつくって、こういう知見がたまったよ、みたいなの書こうと思ったんですが、Goの準標準パッケージである golang.org/x/net/websocket が便利すぎて「あ...できたわ」以上の感想が無いっていう現象になりました。 成果物はこちらです。ご査収ください。HTML…
invalid case []byte literal in switch (can only compare slice foo to nil) switch response[:4] { case []byte{0,0,0,0}, []byte{1,0,0,0}, []byte{2,0,0,0}: fmt.Println("do something") } // これ動かないやつ 可変長であるsliceはnilとの比較だけが…
jsonでいうとこんな感じの { "id": 48, "name": "foo", "entry": { "id": 36, "name": "bar", "entry": { "id": 24, "name": "baz", "entry": { "id": 12, "name": "qux" } } } } 問題 コンパイル時のinvalid recursive typeエラーは、ポインタ型にすれば解…
2017/06/19 追記 エラーハンドリングにバグがあったので修正しました channelに何か流したとき、channelから取り出されないと流し込んだ側をブロックするのを忘れていました - errored <- err + go func() { + errored <- err + }() 前回までで以下のことを…
追記 2018/08/01 gcloud components update 来てたので、した。 goapp serve の "There are too many files" Warning は無くなったけど、代わりに hot rebuild もなくなってる?% goapp versiongo version 1.9.4 (appengine-1.9.74) darwin/amd64— エロリツ…
$ cd $ mkdir -p opt/src $ cd opt/src $ wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz $ tar zxvf go1.8.1.linux-amd64.tar.gz $ mv go ~/opt/.go # GOROOT用 $ mkdir -p ~/proj/go # GOPATH用 $ export GOROOT=~/opt/.go $ exp…
追記 2018/07/26 このプロジェクトはDocker on Herokuに移行したので、一時的に「Deploy to Heroku」ボタンは動かなくなってます。Dockerでデプロイ可能なので、以下をご参考ください。 github.com 以下原文 このエントリはGo (その2) Advent Calendar 2016 …
追記 2017/11/29 この記事を書いた時点で無かったような気がするんですが、今はHerokuでDockerが動きます。無料で。すばらしい。 たとえばこのプロジェクトは完全にDockerでruntime定義してHerokuにホストしてあります。 github.com 以下原文 かつてこれ↓を…
What is this document for? "gosseract" is a Tesseract-OCR wrapper for Golang, and this document is for an issue reported to "gosseract" github.com Reproduce the issue Set up environment for simulating CentOS # because I'm using MacOS % doc…
参考 JSON Web Tokens - jwt.io GitHub - dgrijalva/jwt-go: Golang implementation of JSON Web Tokens (JWT) jwt - GoDoc GitHub - slok/go-jwt-example: Golang & jwt (Jason web token) example ← なんかこれ今時点で動かなかったので package main impo…
なんかいつの間にこんなrepoあったの go - Git at Google git clone https://go.googlesource.com/go とりあえず現状確認 % go version go version go1.6.2 darwin/amd64 % echo $GOROOT /Users/otiai10/.go/1.6.2 % ls /Users/otiai10/.go 1.4.3 1.5.3 1.6.2…
参考 http - The Go Programming Language javascript - How to prevent browser to invoke basic auth popup and handle 401 error using Jquery? - Stack Overflow 実装 main.go package main import ( "fmt" "net/http" "github.com/otiai10/marmoset" ) …
問題 AppEngineなアプリケーションをGoで開発していて、もちろんコントローラとかモデルとかは、initがあるところとは別のディレクトリ切って作ったりするんだけど、意気揚々とgoapp serve ./すると以下のように叱られる % goapp serve ./ # 中略 ERROR 2016…
追記(2016/12/22) 任意のパッケージがインストールされた環境をHerokuにつくりたい、という目的でDockerを選択したけれど、Dockerfileに書かれているinstallコマンドは有効に動かない、みたいな情報を得ました。で、どうやらさいきんはbuildpackをうまいこ…
このエントリはGo その2 Advent Calendar 2015 - Qiitaの8日目です。 7日目のS_Shiomtoriさんの記事もコマンドラインツールの話でした。 % go get github.com/otiai10/amesh/amesh % amesh -g 思ったことや詰まったこと書きます Goでコマンドラインツールを…
package main import ( "encoding/base64" "io/ioutil" "os" ) func main() { f, err := os.Open("./hoge.png") if err != nil { panic(err) } defer f.Close() b, _ := ioutil.ReadAll(f) out, _ := os.Create("out") base64.NewEncoder(base64.StdEncoding…