Handbook
đź“”

Handbook

Tags
Software Development
Productivity
Published
September 17, 2023
Last Updated
Last updated February 2, 2025

Git

Remove files already added to git after you update .gitignore

git rm -r --cached . git add . git commit -m "remove useless files"

Push empty commit

git commit --allow-empty -m "empty commit" git push

Set new remote origin

git remote set-url origin new.git.url/here

Revert commits from merged PRs

git revert HEAD -m 1

Linux

List crontab for specific user

# run crontab command for specific user crontab -l -u <user> # find crontab from spool cat /var/spool/cron/crontabs/<user>

Find out size of directories in the /home directory

sudo du -sh /home/* | sort -h
  • s: Display only a total for each argument.
  • h: Print sizes in human-readable format (e.g., 1K, 234M, 2G).

Edit files in terminal without nano, vim, vi, etc.

I was helping a friend fix some issues but didn’t have access to the code repository so I had to figure out how to edit files directly inside a deployed docker container with no nano or vim. This worked like a charm. Also, in order to apply the changes, I had to exit out of the container and run docker restart container-id so it would apply the updated configurations without triggering a new build so the changes are not lost.
cat filename
Copy the entire text, change what you need to, then copy it again
cat >filename
Paste the edited text and hit CTRL + D to save and quite

Jupyter Notebook

Using kernelspec

jupyter kernelspec list jupyter kernelspec install jupyter kernelspec uninstall

In notebook commands

%pwd # print working directory %cd # change directory
 

Python

Using secrets module

  • To generate a random password you should use the secrets module
 

PostgreSQL

Backup & Restore Dockerized Postgres

Backup your databases

docker exec -t your-db-container pg_dumpall -c -U postgres > dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql

Restore your databases

cat your_dump.sql | docker exec -i your-db-container psql -U postgres

Show triggers

select event_object_schema as table_schema, event_object_table as table_name, trigger_schema, trigger_name, string_agg(event_manipulation, ',') as event, action_timing as activation, action_condition as condition, action_statement as definition from information_schema.triggers group by 1,2,3,4,6,7,8 order by table_schema, table_name;
Columns
  • table_schema - name of the table schema
  • table_name - name of the trigger table
  • trigger_schema - name of the trigger schema
  • trigger_name - name of the trigger
  • event - specific SQL operation: Insert, Update or Delete
  • activation - trigger activation time: After, Instead of or BEFORE
  • condition - trigger activation condition
  • definition - definition of trigger - in postgreSQL it is always EXECUTE PROCEDURE function_name()
Rows
  • One row represents one trigger
  • Scope of rows: all triggers in a database
  • Ordered by schema name, table name

Strapi

Running a project from your host machine

You can also use strapi/strapi to run a project you already have created (or cloned for a repo) on your computer.
First make sure to delete the node_modules folder if you have already installed your dependencies on your host machine. Then run:
cd my-project docker run -it -p 1337:1337 -v `pwd`:/srv/app strapi/strapi
Â