ZSH Oh My
Install Oh My Zsh and plugins with one command
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended && \
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \
git clone https://github.com/MichaelAquilina/zsh-you-should-use.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/you-should-use && \
sed -i.bak 's/^plugins=(.*)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting you-should-use)/' ~/.zshrc && \
chsh -s $(which zsh) && \
exec zsh
Double Entry Accounting DB Design
A Refined Database Schema for Double-Entry Accounting
Various blog posts have emerged introducing double-entry accounting to developers. In this article, a simple yet elegant database schema for recording and analyzing ledger entries in a way that aligns with conventional accounting practices.
Accounting Terminology in Development
Developers often sidestep accounti...
Handy Commands
Find a process by port
lsof -i :[port number]
Close a stubborn process
kill -9 $(pgrep -f [process name] -u $USER)
Upgrade postgres in docker
sudo docker stop appname-postgres
sudo docker rm appname-postgres
sudo docker run -d --cpus=".8" \
-p 0.0.0.0:5432:5432 \
--restart unle...
David Heinemeier Hansson
Perhaps the best piece of advice I ever got from Jeff Bezos was this: Invest in things that don't change.
If you can keep your cool, and not thrash about reacting to every dip or peak, you usually make out pretty well in the end.
Joe Armstrong
Make it work, then make it beautiful, then if you really, really have to, make it fast. 90% of the time, if you make it beautiful, it will already be fast, so really, just make it BEAUTIFUL.
Derek Alexander Muller (Veritasium)
The 4 things it takes to be an expert: repeated attemps with feedback, valid environment, timely feedback, and don't get too comfortable.
Marty Cagan
Delivery teams are not cross-functional (basically just developers plus a backlog administrator product owner), they are not focused on outcome (they are all about output), and they are not empowered (they are there to code and ship).
Product teams are cross-functional, focused and measured by outcome, and empowered to come up with solutions that work.
Carl Gustav Jung
Where wisdom reigns, there is no conflict between thinking and feeling.
Jeff Sutherland
Estimating tasks will slow you down. Don’t do it. We gave it up over 10 years ago.
Today we have good data from Rally on 60,000 teams. The slowest estimate tasks in hours. No estimation at all will improve team performance over hour estimation.
Best teams have small stories and do no tasking. They move to acceptance test driven development.

Edsger Wybe Dijkstra
Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.
IBM 1979
A computer can never be held accountable.
Therefore a computer must never make a management decision.
Larry Wall
There are three great virtues of a programmer; Laziness, Impatience and Hubris.