# Today I Learned

## Today I Learned

- [README](https://til.yulrizka.com/readme.md)
- [analytics](https://til.yulrizka.com/analytics.md)
- [convert json perline to panads data frame](https://til.yulrizka.com/analytics/convert-json-perline-to-panads-data-frame.md)
- [hierarchical data format](https://til.yulrizka.com/analytics/hierarchical-data-format.md)
- [pandas format custom date in data frame](https://til.yulrizka.com/analytics/pandas-format-custom-date-in-data-frame.md)
- [bash](https://til.yulrizka.com/bash.md)
- [bash forloop](https://til.yulrizka.com/bash/bash-forloop.md)
- [parameter expansion](https://til.yulrizka.com/bash/parameter-expansion.md)
- [prompt confirmation in bash](https://til.yulrizka.com/bash/prompt-confirmation-in-bash.md)
- [db](https://til.yulrizka.com/db.md)
- [disabling foreign key when importing dump](https://til.yulrizka.com/db/disabling-foreign-key-when-importing-dump.md)
- [postgres add object to jsonb array from the same column](https://til.yulrizka.com/db/postgres-add-object-to-jsonb-array-from-the-same-column.md)
- [postgres audit log trigger](https://til.yulrizka.com/db/postgres-audit-log-trigger.md)
- [postgres naming trigger](https://til.yulrizka.com/db/postgres-naming-trigger.md)
- [postgres rename enum](https://til.yulrizka.com/db/postgres-rename-enum.md)
- [postgres reset sequence after import](https://til.yulrizka.com/db/postgres-reset-sequence-after-import.md)
- [postgres skip table from restore](https://til.yulrizka.com/db/postgres-skip-table-from-restore.md)
- [set a column with value from different table](https://til.yulrizka.com/db/set-a-column-with-value-from-different-table.md)
- [dgraph](https://til.yulrizka.com/dgraph.md)
- [dgraph docker compose whitelist ip](https://til.yulrizka.com/dgraph/dgraph-docker-compose-whitelist-ip.md)
- [docker](https://til.yulrizka.com/docker.md)
- [docker compose make sure postgres is ready before starting other service](https://til.yulrizka.com/docker/docker-compose-make-sure-postgres-is-ready-before-starting-other-service.md)
- [fish](https://til.yulrizka.com/fish.md)
- [edit last command in editor](https://til.yulrizka.com/fish/edit-last-command-in-editor.md)
- [git](https://til.yulrizka.com/git.md)
- [checkout last branch](https://til.yulrizka.com/git/checkout-last-branch.md)
- [different between two dots and three](https://til.yulrizka.com/git/different-between-two-dots-and-three.md)
- [force fail commit on master](https://til.yulrizka.com/git/force-fail-commit-on-master.md)
- [git finish helper script delete current branch and update master](https://til.yulrizka.com/git/git-finish-helper-script-delete-current-branch-and-update-master.md)
- [git mergetool and diff with p4merge](https://til.yulrizka.com/git/git-mergetool-and-diff-with-p4merge.md)
- [global gitignore file](https://til.yulrizka.com/git/global-gitignore-file.md)
- [intellij as diff and mergetool](https://til.yulrizka.com/git/intellij-as-diff-and-mergetool.md)
- [push only current branch](https://til.yulrizka.com/git/push-only-current-branch.md)
- [reset email multiple commit](https://til.yulrizka.com/git/reset-email-multiple-commit.md)
- [sign commit with pgp](https://til.yulrizka.com/git/sign-commit-with-pgp.md): We can sign our commit with PGP to get verification that it was committed by us. On github we would also get a green "Verified" check mark in our commit.
- [worktree switching branch without stash](https://til.yulrizka.com/git/worktree-switching-branch-without-stash.md)
- [go](https://til.yulrizka.com/go.md)
- [default math.rand.source is thread save while rand.new source is not](https://til.yulrizka.com/go/default-math.rand.source-is-thread-save-while-rand.new-source-is-not.md)
- [deploying go to a vpn ubuntu server with github and ssl](https://til.yulrizka.com/go/deploying-go-to-a-vpn-ubuntu-server-with-github-and-ssl.md): Deploy a go application to a small server with SSL support and Github as CI/CD
- [k8s](https://til.yulrizka.com/k8s.md)
- [copy file to pod](https://til.yulrizka.com/k8s/copy-file-to-pod.md)
- [getting cpu and memory usage for container](https://til.yulrizka.com/k8s/getting-cpu-and-memory-usage-for-container.md)
- [how cert manager and letsencrypt challenge works](https://til.yulrizka.com/k8s/how-cert-manager-and-letsencrypt-challenge-works.md)
- [kubernetes resource short name](https://til.yulrizka.com/k8s/kubernetes-resource-short-name.md): type less with the resource short name
- [scale deployment](https://til.yulrizka.com/k8s/scale-deployment.md)
- [view secret](https://til.yulrizka.com/k8s/view-secret.md)
- [linux](https://til.yulrizka.com/linux.md)
- [boot zfs root filesystem on grub](https://til.yulrizka.com/linux/boot-zfs-root-filesystem-on-grub.md)
- [clearing up swap space](https://til.yulrizka.com/linux/clearing-up-swap-space.md)
- [connect bluetooth device from cli](https://til.yulrizka.com/linux/connect-bluetooth-device-from-cli.md)
- [free and vmstat command](https://til.yulrizka.com/linux/free-and-vmstat-command.md)
- [get full argument from a process](https://til.yulrizka.com/linux/get-full-argument-from-a-process.md)
- [merge multiple pdf into a single file](https://til.yulrizka.com/linux/merge-multiple-pdf-into-a-single-file.md)
- [removing old kernel](https://til.yulrizka.com/linux/removing-old-kernel.md)
- [symbolic vs hard link](https://til.yulrizka.com/linux/symbolic-vs-hard-link.md)
- [zfs auto snapshot](https://til.yulrizka.com/linux/zfs-auto-snapshot.md)
- [zfs external backup drive with snapshot and encryption](https://til.yulrizka.com/linux/zfs-external-backup-drive-with-snapshot-and-encryption.md)
- [net](https://til.yulrizka.com/net.md)
- [dnssec](https://til.yulrizka.com/net/dnssec.md)
- [html form submit to different action depending on properties](https://til.yulrizka.com/net/html-form-submit-to-different-action-depending-on-properties.md)
- [ldap list users](https://til.yulrizka.com/net/ldap-list-users.md)
- [osx](https://til.yulrizka.com/osx.md)
- [checksum a file from a url](https://til.yulrizka.com/osx/checksum-a-file-from-a-url.md)
- [cluster ssh in iterm2 with i2cssh](https://til.yulrizka.com/osx/cluster-ssh-in-iterm2-with-i2cssh.md)
- [list open port](https://til.yulrizka.com/osx/list-open-port.md)
- [manage clipboard easily with jumpcut](https://til.yulrizka.com/osx/manage-clipboard-easily-with-jumpcut.md)
- [pipe output to clipboard with pbcopy and pbpaste](https://til.yulrizka.com/osx/pipe-output-to-clipboard-with-pbcopy-and-pbpaste.md)
- [show hidden file](https://til.yulrizka.com/osx/show-hidden-file.md)
- [sign application with self certificate](https://til.yulrizka.com/osx/sign-application-with-self-certificate.md)
- [starting program on startup with login items](https://til.yulrizka.com/osx/starting-program-on-startup-with-login-items.md)
- [python](https://til.yulrizka.com/python.md)
- [count frequency with lambda](https://til.yulrizka.com/python/count-frequency-with-lambda.md)
- [dijkstra algorithm shortest path](https://til.yulrizka.com/python/dijkstra-algorithm-shortest-path.md)
- [double slash arithmetic operator](https://til.yulrizka.com/python/double-slash-arithmetic-operator.md)
- [min and max of dict values](https://til.yulrizka.com/python/min-and-max-of-dict-values.md)
- [python3 match case](https://til.yulrizka.com/python/python3-match-case.md)
- [reduce and opeator](https://til.yulrizka.com/python/reduce-and-opeator.md)
- [react](https://til.yulrizka.com/react.md)
- [react named export vs default export](https://til.yulrizka.com/react/react-named-export-vs-default-export.md)
- [react useeffect](https://til.yulrizka.com/react/react-useeffect.md)
- [react.useref](https://til.yulrizka.com/react/react.useref.md)
- [unix](https://til.yulrizka.com/unix.md)
- [bulk renaming multiple file](https://til.yulrizka.com/unix/bulk-renaming-multiple-file.md)
- [convert pdf to text using ocr](https://til.yulrizka.com/unix/convert-pdf-to-text-using-ocr.md)
- [diff output of 2 command](https://til.yulrizka.com/unix/diff-output-of-2-command.md)
- [encryption with gpg](https://til.yulrizka.com/unix/encryption-with-gpg.md)
- [extend letsencrypt certificate with dns challenge](https://til.yulrizka.com/unix/extend-letsencrypt-certificate-with-dns-challenge.md)
- [ffmpeg monitor and restart stream when it hung or stall](https://til.yulrizka.com/unix/ffmpeg-monitor-and-restart-stream-when-it-hung-or-stall.md)
- [file size older than x days](https://til.yulrizka.com/unix/file-size-older-than-x-days.md)
- [filtering json with jq](https://til.yulrizka.com/unix/filtering-json-with-jq.md)
- [find lines that matches on 2 different sorted file](https://til.yulrizka.com/unix/find-lines-that-matches-on-2-different-sorted-file.md)
- [find out what is using swap](https://til.yulrizka.com/unix/find-out-what-is-using-swap.md)
- [fish environment variables from 1password](https://til.yulrizka.com/unix/fish-environment-variables-from-1password.md)
- [fix gpg warning unsafe permissions on homedir](https://til.yulrizka.com/unix/fix-gpg-warning-unsafe-permissions-on-homedir.md)
- [formatting or parse json in command line](https://til.yulrizka.com/unix/formatting-or-parse-json-in-command-line.md)
- [get all line except n last one](https://til.yulrizka.com/unix/get-all-line-except-n-last-one.md)
- [grep print only matched](https://til.yulrizka.com/unix/grep-print-only-matched.md)
- [grep using input file as pattern to search other file](https://til.yulrizka.com/unix/grep-using-input-file-as-pattern-to-search-other-file.md)
- [jq counting lenght of an array](https://til.yulrizka.com/unix/jq-counting-lenght-of-an-array.md)
- [jq extracting properties to arrays from json row line](https://til.yulrizka.com/unix/jq-extracting-properties-to-arrays-from-json-row-line.md)
- [keep n recent item in folder](https://til.yulrizka.com/unix/keep-n-recent-item-in-folder.md)
- [open last command in the editor with fc](https://til.yulrizka.com/unix/open-last-command-in-the-editor-with-fc.md)
- [parsing epoch timestamp to date](https://til.yulrizka.com/unix/parsing-epoch-timestamp-to-date.md)
- [pbcopy alternative for copying to clipboard](https://til.yulrizka.com/unix/pbcopy-alternative-for-copying-to-clipboard.md)
- [process pipe operator](https://til.yulrizka.com/unix/process-pipe-operator.md)
- [record a web stream to youtube](https://til.yulrizka.com/unix/record-a-web-stream-to-youtube.md)
- [regex for validating password](https://til.yulrizka.com/unix/regex-for-validating-password.md)
- [rename tmux window](https://til.yulrizka.com/unix/rename-tmux-window.md)
- [repeat content of text x time](https://til.yulrizka.com/unix/repeat-content-of-text-x-time.md)
- [replacing last command and execute it](https://til.yulrizka.com/unix/replacing-last-command-and-execute-it.md)
- [reusing last command argument](https://til.yulrizka.com/unix/reusing-last-command-argument.md)
- [sending curl post with file](https://til.yulrizka.com/unix/sending-curl-post-with-file.md)
- [send slack message from command line](https://til.yulrizka.com/unix/send-slack-message-from-command-line.md)
- [sort file inline](https://til.yulrizka.com/unix/sort-file-inline.md)
- [specify compression level in tar gzip](https://til.yulrizka.com/unix/specify-compression-level-in-tar-gzip.md)
- [zsh ctrl p same behavior as up arrow](https://til.yulrizka.com/unix/zsh-ctrl-p-same-behavior-as-up-arrow.md)
- [vim](https://til.yulrizka.com/vim.md)
- [paste yanked text on command buffer](https://til.yulrizka.com/vim/paste-yanked-text-on-command-buffer.md)
- [web](https://til.yulrizka.com/web.md)
- [this article is published to dev to with github action](https://til.yulrizka.com/web/this-article-is-published-to-dev-to-with-github-action.md)
