Category Archives: Programming
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:
1 |
go tool pprof -png ~/Downloads/profile |
Or just open it in the browser:
1 |
go tool pprof -http=:1234 ~/Downloads/profile |
If it opens something different then your browser (sublime …
Using GOPROXY with go mod
1 |
GOPROXY=https://<some_url> go mod download |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
(() => { const times = []; let fps; function refreshLoop() { window.requestAnimationFrame(() => { const now = performance.now(); while (times.length > 0 && times[0] <= now - 1000) { times.shift(); } times.push(now); fps = times.length; refreshLoop(); }); } refreshLoop(); // output to console once per second setInterval(() => {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 …
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:
Simple online editor for javascript
Just paste it into navigation bar:
1 |
data:text/html, <html><script>window.onbeforeunload = window.onunload = function(){return 'Confirm page reload';};</script><body><button onclick="console.log(eval(document.querySelector('textarea').value.replace('<div>', '\n').replace('</div>', '\n')))">run</button><br><textarea style="width:600px;height:400px"></textarea></body><script>document.querySelector('textarea').focus();</script> |
It just outputs the result into console when you click run button. It’s simple and works. Because sometimes you just don’t need monsters like jsfiddle or jsbin.
Storybook for creating components library
It works with all popular frameworks like React, Angular, Vue, and others. https://github.com/storybooks/storybook
React, redux and redux-thunk with typescript
I tried it and it looks strange, verbose and painful. But if you want to try it, please take a look at: https://github.com/piotrwitek/react-redux-typescript-guide https://levelup.gitconnected.com/react-and-redux-with-typescript-da0c37537a79 (together with https://github.com/JonJam/react-redux-ts/tree/68e8cca4a6e6214b4acb030cf3fdb3321b636085/src)