unless’s blog

日々のちょっとした技術的なことの羅列

Go

Fixing For Loops in Go 1.22

Go

今更ですが、年明けに社内のGo勉強会で登壇した時の資料を置いておきます speakerdeck.com

OpenAI APIを使ってサクッと生産性を上げるツールを作ってみた

みなさんもご存知のように、ChatGPTによる台頭が生成AIブームを引き起こしています せっかくなのでこの波に乗ってみようと思い、OpenAIのAPIを使用して簡単なツールを作成しましたので紹介します OpenAI API OpenAI APIは、ChatGPTで有名なOpenAIが提供して…

なぜGolangが一部のBinary Toolを自前で実装しているのか

これはなに? これはKyash Advent Calendar 2022 21日目の記事です KyashでBackend Engineerをしている @uncle__ko です お金の入出金を司るチームや決済領域を司るチームなどを経験したあと、現在はTechチームの生産性向上に向けた取り組みを行うチームのリ…

Go 1.19 でruntime/pprofのgoroutine profileにおいてSTWの時間が大幅に軽減されたらしいので調べてみた

これはなに? Go 1.19のRelease Notesを眺めていたら、runtime/pprof でgoroutine profileを取得する際のSTW(Stop-the-world)の一時停止時間が大幅に短縮され、アプリケーションに対する全体的なレイテンシーの影響が軽減されたという記述を見つけました runt…

Datadog Profilerで継続的なProfilingを実施できるようにした話

おまえだれ? 株式会社Kyash でサーバサイドエンジニアをしている @uncke__ko です Fundsチームに所属していて主にお金の入出金部分を担当しています これは何? Kyashではシステムの監視やモニタリングにDatadogを使用しています www.datadoghq.com Datadogに…

Goのhello worldを小さくする

これはなに? ふとGolangのbinaryを小さく出来ないかなと思い立ったのでhello worldをスリムにしていこうと思う hello world Golangでのhello worldはこちら package main import "fmt" func main() { fmt.Println("hello, world") } 普通にbuild これを普通…

CとGoのhello world時のシステムコール数

特に何かの役に立つわけでもないが取得する機会があったのでここに置いておく 環境 # cat /etc/os-release NAME="Ubuntu" VERSION="20.04.1 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.1 LTS" VERSION_ID="20.04" HOME_URL="ht…

goenvでGOPATHの間にversionが入ってしまう場合の対処法

Golangの環境構築をしていてハマった箇所があったので解決法を書いておく goenvを使ってGolangをインストールした時にGOPATHにversionが入ってしまって困った goenv/CHANGELOG.md at master · syndbg/goenv · GitHub Changed goenv's bootstrap (eval $(goen…