yanom blog

様々な技術について書きます

Go言語

GoでActor Model入門(Proto.Actor)

はじめに 皆さんにゃっはろー。お元気ですか? 最近ホロライブにハマっているyanomです。最近のイチオシはぺこーらです! 可愛いので皆さんもぜひ見てみてください! っと、全然脈絡はないですが、一応この記事はGo 3 Advent Calendar 2020 13日目の記事です…

tviewを使ってFileViewを作ってみた

最近、Fukuoka.go#16でGoで作るTUIツールという発表を見て、 tviewの存在を思い出したのでちょっと使ってみました。 (発表でも書いてありましたが、tviewはちょっとしたTUIを作るには最高にお手軽なのでTUIに興味がある方は是非) 作ったもの github.com Todo…

Go言語でつくるインタプリタを読んだ

たまに、見かける本で個人的に興味があったGo言語でつくるインタプリタを読み終わりました。 そして、無事にMonkey言語を実装し終わりました。 言語を実装したのは初めてでしたが、動くところまでいけて良かった。 (12月末から始めて、2月は殆どやれてい…

gsxも、作ってます

前回の記事で、go-scrapboxというGo言語製のAPIクライアントライブラリを作成した話をしました。 今回はそれを使ったgsxというcliを作っているという話です。 (今週かけて作っていこうと思っています) (名前の由来は、go-scrapboxから取りました、安直ですね…

go-scrapbox、作りました

この記事は、Go2 Advent Calendar 2019の14日目の記事です。 皆さんこんにちは。 Goしてますか? 私は最近、pythonやらRustやらReactやらを書いてまして、ここ半年くらいGoしてませんでした。 そんな折、12月になりまして、恒例のAdvent Calendarが始まった…

逆引きGoによる静的解析入門

今週は、tenntennさん/knsh14さんの逆引きGoによる静的解析入門を読みました。 一言で言うと最高ですね。静的解析ツールを自作したい気持ちが高まりました。 Goの標準パッケージ、特に静的解析のパッケージについて理解が深まる プロジェクトで、ソースコー…

PrometheusでNewMetricWithTimestampを使って時刻指定する

会社でPrometheusのexporterを作っているんですが、Gauge型でいくつかのlabel付けつつtimestampも指定するサンプルの情報があまりなかったので記事にしておきます。 以下のサンプルでは現在時刻を指定しているのであまり意味がありませんが、 そこはデータの…

みんなのGo言語 改訂2版買いました

みんGoの改訂2版が出版されたということで、1版を持ってますが当然2版も買いました。 Go Moduleについて新たに加筆されていたり最新のGoに対応しています。 これから始める人にも、中級者の人にもおすすめなのでぜひ買ってください! みんなのGo言語

kibelasync使ってみた

Go Conference'19 Summer in Fukuokaでも登壇されていた、 songmuさんがkibelasyncを公開されていたので使ってみました。 使い方について上記記事に記載あるのでここでは割愛します。(といっても環境変数にKIBELA_TOKENとKIBELA_TEAMを設定するだけです) ち…

GoCon19に参加してきた話

福岡でGo Conference'19が開催されたので行ってきました! 総じて、レベルが高くとても楽しいカンファレンスになっていたと思います。 このような素晴らしいカンファレンスを開催してくれたfukuoka.goの皆様を始め、スポンサーの方々には感謝です!! せっか…

go-manがhttp post使えるようになりました

最近、コミット出来ていませんでしたが、http postに対応しました。 ただ、body部がjson形式に対応していなかったりとまだイマイチなところがあります。 とりあえず、あとputに対応したら一通り使えるようになるので、その後シナリオで動くように対応入れた…

go-manの開発を再開

仕事が忙しくなってしばらく更新出来ていませんが、 Go言語でAPIテストツール作ってます。(地味にhttpのheadには対応しました) go-man 仕事が少し落ち着いてきたので開発を再開したいと思います。

go-manというツールを作っている話

この記事はGo3 Advent Calendar 2018の17日目の記事です。 はじめに 今年のAdvent Calendarで何を書くか色々迷ったんですが、直前に出張が入ったりあまり時間がとれなかったので、 作りかけのgo-manというツールについて書きます!(言い訳) 動機と目的 最近…

Go言語のインターフェース

個人的に思ったことをメモしておきます。 構造体はできることをまとめたもの。 インターフェースはどんなことができるかをまとめたもの。 イメージとしては、構造体は縦でインターフェースは横串で機能をまとめたもの。 使うときはインターフェースを利用す…

Goでdocker SDKを試してみる 1

参考 Develop with Docker Engine SDKs and API go docs 試してみる 基本的には、Develop with Docker Engine SDKs and API を参考に進めれば良いです。 今回は以下のようなコードを作成しました。 package main import ( "context" "fmt" "github.com/docke…

Go言語の並行処理(orチャネル)について

はじめに 最近、オライリーから出ているGo言語による並行処理の本を読んでます。 Go言語の並行処理について様々なことが書かれているので、並行処理について詳しく知りたい方にはおすすめです。 その中で、個人的に知らなかったことをpostします。 orチャネ…

godocがproxyに阻まれていい感じに使えない

最近仕事でWeb APIをGo言語で開発していました。 せっかくなのでドキュメントをgodocで残そうかと考え試行錯誤していたのでここの書き残します。 結論から言うといい方法がまだ見つかっていません。proxy滅びろ~。 やりたいこと docker-compose up したとき…

知っているようで知らなかったGo言語のdefer

tl;dr ここを読みましょう これどういう動作になるか分かりますか? package main import "fmt" func trace(s string) string { fmt.Println("entering: ", s) return s } func un(s string) { fmt.Println("leaving: ", s) } func a() { defer un(trace("a"…