Skip to content

Instantly share code, notes, and snippets.

View yanmhlv's full-sized avatar

Ian Mikhailov yanmhlv

View GitHub Profile
yanmhlv / cond.go
Last active January 4, 2024 17:45
Concurrency patterns
View cond.go
import "sync"
type Cond struct {
lock sync.RWMutex
changed chan struct{}
func (c *Cond) Listen() <-chan struct{} {
defer c.lock.RUnlock()
View generic_handle.go
package main
import (
func handleResponse[T any](resp *http.Response, err error, t *T) error {
if err != nil {
yanmhlv / cond.go
Last active June 14, 2023 13:12
concurrency helpers
View cond.go
package cond
type Cond struct {
lock sync.RWMutex
changed chan struct{}
func newCond() *Cond {
return &Cond{changed: make(chan struct{})}
yanmhlv / Evolution of a Python
Created August 19, 2022 14:28
Fun: Evolution of a programmer
View Evolution of a Python
#Newbie programmer
def factorial(x):
if x == 0:
return 1
return x * factorial(x - 1)
print factorial(6)
#First year programmer, studied Pascal
yanmhlv / gist:708e2c6b90f45964bab7057af2e88ed1
Created April 7, 2022 09:53
git pull over all subdirectories(depth=1)
View gist:708e2c6b90f45964bab7057af2e88ed1
find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \;
yanmhlv / authorization.ex
Created December 22, 2020 18:19 — forked from nikneroz/authorization.ex
Elixir + Phoenix Framework 1.3 + Guardian 1.0 + JWT(Refresh, Revoke, Recover) + Comeonin
View authorization.ex
# Elixir + Phoenix Framework 1.3 + Guardian + JWT(Refresh, Revoke, Recover) + Comeonin
### User model bootstrap
Let's generate User model and controller.
mix ecto.create # create DB table
mix phx.gen.json Accounts User users email:string password_hash:string # scaffold users structure
yanmhlv / .psqlrc_prod
Last active November 13, 2020 13:30
coloured PROMPT for psql
View .psqlrc_prod
\x auto
\timing on
SET work_mem='512MB';
SET maintenance_work_mem='1GB';
-- Nicer PSQL prompt
-- Prompt1 / Prompt2
-- %M : server
yanmhlv / big_float.go
Created October 10, 2019 08:45
big.Float wrapper
View big_float.go
package bigfloat
import (
func Zero() *big.Float { return big.NewFloat(0.0) }
func Sub(x, y *big.Float) *big.Float { return Zero().Sub(x, y) }
yanmhlv / user management.sql
Last active November 17, 2022 18:38
create user, set password, grand and revoke access to certain and all tables
View user management.sql
CREATE USER admin; -- create user with name 'admin'
ALTER USER admin WITH PASSWORD 'hello123'; -- set password
GRANT SELECT ON users TO admin; -- give 'select' access on 'users' table to 'admin' user
REVOKE SELECT ON users FROM admin; -- revoke access on 'users' table from 'admin' user
GRANT SELECT ON ALL TABLES IN SCHEMA public TO admin; -- give access to all tables in public schema to 'admin' user
REVOKE ALL ON ALL TABLES IN SCHEMA public FROM admin; -- revoke access on all tables from 'admin' user
DROP USER admin;
yanmhlv / psql_useful_stat_queries.sql
Created August 22, 2019 20:04 — forked from anvk/psql_useful_stat_queries.sql
List of some useful Stat Queries for PSQL
View psql_useful_stat_queries.sql
--- PSQL queries which also duplicated from
--- some of them taken from
-- I'm not an expert in PSQL. Just a developer who is trying to accumulate useful stat queries which could potentially explain problems in your Postgres DB.
-- Basics --
-- Get indexes of tables