How to analyze the performance of your go application in production

You should definitely use chi’s middleware for running pprof and stuff in your admin panel. That’s the repo — https://github.com/go-chi/chi That’s the profiler — https://github.com/go-chi/chi/blob/master/middleware/profiler.go CPU profiling After that you can run something like this in shell: go tool pprof -png ~/Downloads/profile Or just open it in the browser: go tool pprof -http=:1234 ~/Downloads/profile If …

Read more

Using GOPROXY with go mod

GOPROXY=https:// go mod download

PostgreSQL: TOP slow queries

SELECT rolname, calls, total_time, mean_time, max_time, stddev_time, rows, query, regexp_replace(query, ‘[ \t\n]+’, ‘ ‘, ‘g’) AS query_oneline FROM pg_stat_statements JOIN pg_roles r ON r.oid = userid WHERE calls > 100 AND rolname NOT LIKE ‘%backup’ ORDER BY mean_time DESC LIMIT 15;

How to hide face with iMovie

If you want to edit a video on mac and want to hide some part of the scene, there’s one easy way I found to do it with iMovie. I didn’t find a way, I’ve found a video about that. https://www.youtube.com/watch?v=nSC_Rje68FI

Nice list of image resizer libs in go

With speedtests and other nice things. https://github.com/fawick/speedtest-resize I tried these two: https://github.com/disintegration/imaging https://github.com/bamiaux/rez They are quite the same talking about file sizes and imaging is muuch easier to use.

Simple way to detect browser’s FPS via JS

It’s dumb and dead simple but works. You can even track browser’s metrics with that. (() => { const times = []; let fps; function refreshLoop() { window.requestAnimationFrame(() => { const now = performance.now(); while (times.length > 0 && times[0] {console.log(fps);}, 1000) })();

Mocking for testing go code

If you’re testing go code and have a huge API you have to mock, you have two options: make your dummy struct with embedded interface and implement only methods you need, or use your own interface that has only methods you need (and change your code to use that). For instance, I had amazon’s s3 …

Read more

BDD Framework For Golang

There is a good one: https://github.com/onsi/ginkgo It prefers to use http://onsi.github.io/gomega/ as a matcher.

Golang, PostgreSQL and array_agg

If you have SQL like this:

Microservice architecture patterns

Why do you need a microservice architecture? Decrease blast radius of problems and increase flexibility. You want technology diversity in your company. You want to scale your app more granular according to consumer needs. You want newcomers to be productive earlier. You want your company structure to be mirrored with technical responsibilities (it’s mainly about …

Read more