Skip to content

Instantly share code, notes, and snippets.

@vladpurga
vladpurga / tpk-april-2021.md
Last active April 5, 2021 19:45 — forked from niquola/tpk-april-2021.md
how to solve it - в след.раз

1 Software Design for Flexibility

Новая книга от одного из авторов культовой SICP (Gerald Jay Sussman) и principal author of Scheme (Chris Hanson) - «Software Design for Flexibility. How to Avoid Programming Yourself into a Corner». Авторы задаются «извечным» вопросом о гибкости кода и как ее достичь. Судя по оглавлению речь пойдет о различных техниках и подходах от комбинаторов до DSL и динамического программирования. Звучит очень интересно! https://mitpress.mit.edu/books/software-design-flexibility.

https://t.me/tripovozkiknig/62

2 Domain Modeling Made Functional

Книга про то как делать DDD методами функционального программирования (на F#, но многие аспекты применимы к ЯП без статической типизации)

@vladpurga
vladpurga / sequence-lastval.sql
Last active October 1, 2019 14:25
[sequence last_value] #postgresql
select last_value from <schema>.<table>_id_seq;
SELECT setval('serial_id_seq',nextval('serial_id_seq')-1);
SELECT currval('serial_id_seq');
SELECT lastval();
@vladpurga
vladpurga / ps-ppid.sh
Created September 25, 2019 15:33
#bash
ps axf -o ppid,pid,uid,c,stime,tty,time,cmd,stat | grep '[c]ommand'
@vladpurga
vladpurga / command-line-regexp-debugger.md
Created September 20, 2019 11:35
[perl-regexp-debugger] #perl #regexp
@vladpurga
vladpurga / postgresql-grant-usage-schema.sql
Created September 18, 2019 14:29
[postgresql grant] #postgresql
GRANT USAGE ON SCHEMA <name> TO <role>;
GRANT SELECT ON ALL TABLES IN SCHEMA <name> TO <role>;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA <name> TO <role>;
@vladpurga
vladpurga / postgresql-log-line-prefix.md
Created September 6, 2019 05:51
[postgresql log_line_prefix] #postgresql

log_line_prefix = '%m (%p:%h:%d:%u:%a:%v:%x) '

2019-08-16 05:08:57.939 GMT (62842:host:database:user:[application]:16/36976788:3643551317) LOG: process 62842 still waiting for ExclusiveLock on tuple (113892,1) of relation 14028231 of database 12345 after 1000.098 ms

%p = 62842
%v = 16/36976788
%x = 3643551317

# special values:
@vladpurga
vladpurga / find-mtime-24h-ago.sh
Last active September 6, 2019 06:57
[find-mtime] #bash
# create directories
mkdir -p /tmp/test_day && cd $_ && mkdir -p today yesterday before_yesterday && cd -
# in linux change modification time
touch -d '-2 days' /tmp/test_day/before_yesterday
touch -d '-1 day' /tmp/test_day/yesterday
touch /tmp/test_day/today
# find directories with modification time older then 24 hours
find /tmp/test_day -mindepth 1 -mtime +0
@vladpurga
vladpurga / multiline_command.mk
Created August 12, 2019 11:26
[multiline command in Makefile] #bash #vim
vimrc-bg-light:
sed -i 's/^\(set background=dark\)/" \1/' ~/.vimrc; \
sed -i 's/^\(colorscheme jellybeans\)/" \1/' ~/.vimrc; \
sed -i 's/^" \(colorscheme solarized\)/\1/' ~/.vimrc; \
sed -i 's/^" \(set background=light\)/\1/' ~/.vimrc
@vladpurga
vladpurga / recovery_command.sh
Created August 9, 2019 11:39
[recovery_command] script for postgresql recovery_command
#!/bin/bash
# add next line into recovery.conf
# recovery_command = '/path/to/recovery_command.sh %f %p'
SOURCE=$1
TARGET=$2
ARCHIVE_DIR=$3
[[ $ARCHIVE_DIR = "" ]] && ARCHIVE_DIR="/path/to/wal/log/archive"
@vladpurga
vladpurga / tune2fs-space-reserved.sh
Created July 16, 2019 14:37
[tune2fs space reserved]
ssh -t host "sudo tune2fs -l /dev/sdb1 | grep -i 'block count' | cut -d':' -f2 | tr -d ' ' | awk 'BEGIN {FS=\"\n\"; RS=\"\"} {print \"/dev/sdb1 space reserved: \"\$2/\$1*100\"%\"}'"