Inspired by @jbranchaud's repo and @thoughtbot's repo
This project is a collection of small things I learn about different languages, frameworks and technologies. It consists of short markdown documents summarising concepts or tips I'd like to share. The goal is to write something new everyday or as often as possible.
- 📚 TIL (Today I Learnt)
- Categories
- Applications
- Automation
- CCNA
- Crypto
- Databases
- Datatypes
- DevOps
- Excel
- Homelab
- Linux
- Git
- Github
- Go 🐹
- GraphQL
- HTML 5
- CSS
- Java ☕️
- JavaScript
- Markdown
- Monitoring
- Python
- Rust
- Terminal
- Sys Admin
- Skill requirements for all level of db engineers
- Database Developer journey
- What is ETL?
- Columnar Databases
- Inserting into tables with Python
- Install mySQL via Homebrew
- Changing a users password
- Setting a default value
- Inserting data into tables
- Auto increment IDs
- Deleting a database
- Finding & Deleting db users
- Using
SET
in SQL CAST
functionCASE
functionCOALESCE
functionHAVING
clauseSERIAL
in SQL- 'UNION' / 'UNION ALL' in SQL
- JOINs in SQL
- Decimal data type
DATE_ADD
&DATE_SUB
- Sub Queries
- SQL functions in supabase
- What's an upsert and how to use one
- Install ODBC on Ubuntu
- Counting uniques in SQL
- Visualising the SQL query execution order
- Using VIEWS in SQL
- Understanding Database Table Relationships and Their Importance
- Locating two strings in the same col
- Naming convention for Postges
- Defining a FK when creating a table
- Installing just
psql
on MacOS - Connecting to postgres via psql inside a Docker container
- Installing Postgres via Docker
- Create a custom container image for CloudnativePG
- Connecting to PrestoDB via presto-python-client
- Use of
regexp_like()
- Retuning columns names with Presto Python
- Getting data from previous days in Presto
- Deploying ArgoCD using apps of apps pattern
- Deploying KubeVIP as a cloud controller and load balancer
- Deploying a Kubernetes Talos cluster
- How to Deploy Postgres to Kubernetes Cluster
- Adding additional disks to Kubernetes with Talos
- Pod security
- init-containers and what they do
- PersistentVolume VS PersistentVolumeClaim
- Access Modes for Persistent Volume Claims
- Safely remove a node from a cluster
- Create a custom container image for CloudnativePG
- Basic build / push process
- Using Docker with Flask
- Building using x86
- Using
pipenv
with Docker images - Using Docker Compose for local development
- Docker hub my way
- How to SSH into a Docker Container
- How to always restart a container after host reboot
- Listing Ports in use
- Setting a static IP
- Installing Docker Engine Ubuntu server
- Self hosting Docker registry
- How to always restart a container after host reboot
- Setting up an OpenVPN LXC
- Installing
node_exporter
outside of Docker - Deploying ArgoCD using apps of apps pattern
- Deploying KubeVIP as a cloud controller and load balancer
- Deploying a Kubernetes Talos cluster
- How to Deploy Postgres to Kubernetes Cluster
- Adding additional disks to Kubernetes with Talos
- Pod security
- Install Windows Server in Proxmox
- Fixing the Too long: must have at most 262144 bytes
- Creating folders and files
- Moving and manipulating files
- Showing hidden files
- Yum basics - CentOS
- Getting the latest sofware center
- Stop using sudo or change user to
root
- How to change a user password
- Changing the shell of user
- How to manage Linux permissions for users, groups, and others
- Manage file permissions on Unix-like systems
- Checking IP addresses on VMs
- Connecting to SFTP via command line
- Basic SFTP commands
- How to Use SFTP Command to Transfer Files
grep
command- Checking which ports are in use
- Creating CRON jobs outside K8s
- Changing hostname
- How to mount a disk in Ubuntu SVR
- Reset the dock to standard
- How to Customize the Ubuntu Dock to Look Like macOS
- How to run commands as root without a password
- How to Install Synaptic on Ubuntu
- My fav extensions
- Setting a static IP
- Creating & Switching branches
- Pushing to a new remote repo
- Using git reset
- How to find which commit introduced a bug
- Cleaning up branches in Git
- Cloning from a certain branch
- box-sizing
- animation-fill-mode
- animation-iteration-count
- Hiding scrollbars in TailWindCSS
- Giving even rows a different bg color in TW
- Safelisting classes so they can be passed dynamically in TW
- Default arguments
- Comparing / checking arrays
- Difference between
const
&let
- Objects with functions
- String methods
- Do While loop
- Number methods
.forEach
and it's usage.splice()
and it's usage.filter()
and it's usage.map()
and it's usagesort()
and it's usage- DOM Query selectors
- Callback functions
- Getting current url of a page
- How
this
works in arrow funcs - Using JSON
.toLocaleString
- Replacing
\n
in html - Disabling Web Security (CORS) for Chrome
- Using
setTimeout()
keydown
events- reloading the page
- Handle Vercel preview and Supabase auth
- Creating a dynamic pixel
- automatically restarting the node application
- Using local env variables
- Calling Presto from Node
- Handling CORS in express
- Using Joi for schema validation
- Docker image for Node
- Rendering lists using
.map()
- How to use inline styles
- Creating a star rating
- Creating a TailWind Button
- Getting current URL
- Calling APIs when needed with conditionally
useEffect
- Posting form data to an API
- PropTypes NPM package
- Rending Multiple checkboxes
useState
lazy initialization- Using GA4 in an React App
- Theme switching using DaisyUI
- resolving global is not defined at node_modules
- Changing the public base path
- Enviroment variables
- Handling secondary pages in Vercel
- Advance set operations
- Append vs Extend with lists
- Google vs reST Docstrings
- *args and **kwargs
- Arithmetic operators
- Difference between
is
&==
- Class inhertiance
- Classes and instances
- Class methods
- Class variables
- Connecting to SFTP via Paramiko
- Prevent Conda from activating the base environment by default
- Use of
continue
in a while loop - Creating random numbers randomly
- Pipenv
- Using
.env
files within Python - f-strings
- Flow control with a while loop
- Using the
global
statement - Using
enumerate()
in loops - Use of
range()
- Using
random.sample()
- Working with JSON
- End parameter in
print()
- Dictionaries
- List Comprehension
- Dictionary Comprehension
- Lambra functions
map()
function- Floor division
- Dunder methods for classes
- Instance, Class, and Static Methods
- Files using
with
statement - Uploading files via requests POST
- Get pip installed executables into the asdf path
- Handing a ZeroDivision Error
- How to compare two files and out put difference
- Writing data on a single line to a txt file
- Connecting to PrestoDB via presto-python-client
- Removing duplicates from dictonaries
- Formatting a float
- Fixing UnboardLocalError
logging
module basics- Creating a progess bar
- Disabling pylint warnings
- Using TOML with Python
- Extracting substring with Regex
- Returning the difference between two strings
- Disable Pylance warnings in VSC
- Uploading files via a boto3 session
- Walrus operator
- Using placeholders for SQL in Python
- Getting last modified file with paramiko
- Context Managers
io
module- Reading from S3
- Creating a timer for function run times
- Retuning columns names with Presto Python
- Inserting into tables with Python the RIGHT Way.
- Fully reloading a browser to see CSS changes
- Getting user input from a form field
- Generated a SECRET_KEY with secrets
- Using
render_kw
to pass attributes in form fields - Rendering
\n
from json in Jinja2
- Installing Anaconda and using Pandas (M1 Mac)
- Differences between DataFrame & Series
- Use of
value_count()
- Creating Dataframes with multi-dimensional lists
- Access JSON in a Panads dataframe
- Merging Dataframes and removing duplicates
- Renaming cols in dataframes
- Replacing null values with None
- Replacing
NaN
/NA
with a value - Scraping table data from sites
- Creating a pivot table
- RealPython pivot tables with pandas
- Using
to_numpy
withtolist
- Plotting Pivots with Plotly
- How to prevent scientific notation in pandas
- Filtering out a DF
- Making use of
.groupby