{"id":22026129,"url":"https://github.com/curiouslearner/til","last_synced_at":"2026-04-10T07:18:11.270Z","repository":{"id":81377668,"uuid":"599767517","full_name":"CuriousLearner/til","owner":"CuriousLearner","description":"Collection of my daily learning","archived":false,"fork":false,"pushed_at":"2024-04-03T03:23:45.000Z","size":56,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-13T21:57:48.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CuriousLearner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-02-09T20:52:28.000Z","updated_at":"2023-07-29T19:38:12.000Z","dependencies_parsed_at":"2024-04-13T13:10:44.707Z","dependency_job_id":null,"html_url":"https://github.com/CuriousLearner/til","commit_stats":{"total_commits":76,"total_committers":3,"mean_commits":"25.333333333333332","dds":0.4736842105263158,"last_synced_commit":"680ad631112bcf7af19f429f21ab493773cdedd3"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuriousLearner%2Ftil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuriousLearner%2Ftil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuriousLearner%2Ftil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuriousLearner%2Ftil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CuriousLearner","download_url":"https://codeload.github.com/CuriousLearner/til/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245090874,"owners_count":20559298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-30T07:25:22.270Z","updated_at":"2026-04-10T07:18:11.264Z","avatar_url":"https://github.com/CuriousLearner.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TIL (Today I Learned)\n\n\"Byte-sized\" 😏 snippets of things I learned 🤔\n\n**\u003c!-- count starts --\u003e97\u003c!-- count ends --\u003e** TILs 🤓 so far.\n\n\u003c!-- index starts --\u003e\n## AWS\n\n* [IGW vs. NAT – Understanding Private to Public IP Mapping](https://github.com/CuriousLearner/til/blob/main/aws/igw-vs-nat-gateway.md) - 2025-02-28\n* [AWS reserves five IPs per subnet](https://github.com/CuriousLearner/til/blob/main/aws/reserving-five-ips-per-subnet.md) - 2023-02-12\n* [No self-signed certificates in Cloudfront's SSL connection](https://github.com/CuriousLearner/til/blob/main/aws/no-self-signed-certificate-cloudfront.md) - 2023-02-12\n* [ACM certificate should always be in us-east-1 for Cloudfront](https://github.com/CuriousLearner/til/blob/main/aws/acm-cloudfront.md) - 2023-02-12\n\n## Bash\n\n* [Bash trap with ERR and EXIT for Error Handling](https://github.com/CuriousLearner/til/blob/main/bash/trap-err-exit-status.md) - 2025-09-18\n\n## CLI\n\n* [Creating user accounts with expiration dates](https://github.com/CuriousLearner/til/blob/main/cli/useradd-with-expiration.md) - 2026-01-25\n* [Using `getent passwd` to query user accounts](https://github.com/CuriousLearner/til/blob/main/cli/getent-passwd.md) - 2026-01-25\n* [Using pkill with -f flag for full command line matching](https://github.com/CuriousLearner/til/blob/main/cli/pkill-with-full-pattern-matching.md) - 2025-09-22\n* [`apt-get distclean` for complete package cleanup](https://github.com/CuriousLearner/til/blob/main/cli/apt-get-distclean.md) - 2025-09-12\n* [Netcat (`nc`) and Raw TCP Communication](https://github.com/CuriousLearner/til/blob/main/cli/netcat-and-raw-tcp-connection.md) - 2025-03-01\n* [Unzip overwrite and place content in a directory](https://github.com/CuriousLearner/til/blob/main/cli/unzip-overwrite-specify-directory.md) - 2025-02-10\n* [`envsubst` command for substituting values in config files](https://github.com/CuriousLearner/til/blob/main/cli/envsubst-command-for-config-files.md) - 2024-07-28\n* [Pass Arguments From Previous Command](https://github.com/CuriousLearner/til/blob/main/cli/pass-arguments-from-previous-command.md) - 2023-07-19\n* [Execute last command with sudo](https://github.com/CuriousLearner/til/blob/main/cli/execute-previous-command-with-sudo.md) - 2023-02-13\n\n## CSS\n\n* [Select by attr in list of values](https://github.com/CuriousLearner/til/blob/main/css/select-by-attr-in-list-of-values.md) - 2024-04-22\n\n## Django\n\n* [Dynamic related_name in Abstract Models](https://github.com/CuriousLearner/til/blob/main/django/dynamic-related-name-abstract-models.md) - 2026-01-07\n* [Override Migration Locations with MIGRATION_MODULES in Django](https://github.com/CuriousLearner/til/blob/main/django/migration-modules-setting.md) - 2025-10-08\n* [Using EXPLAIN and EXPLAIN ANALYZE for Django QuerySets](https://github.com/CuriousLearner/til/blob/main/django/queryset-explain-analyze.md) - 2025-10-03\n* [Random ordering with order_by(\"?\") in Django](https://github.com/CuriousLearner/til/blob/main/django/order-by-random.md) - 2025-10-02\n* [Using `_refresh_after_create` in model_bakery](https://github.com/CuriousLearner/til/blob/main/django/model-bakery-refresh-after-create.md) - 2025-09-23\n* [Understanding Django ForeignKey Fields](https://github.com/CuriousLearner/til/blob/main/django/foreign-key-attrs.md) - 2025-05-16\n* [Managing Schema-less Migrations in Django with `SeparateDatabaseAndState`](https://github.com/CuriousLearner/til/blob/main/django/separate-db-and-state-migration.md) - 2025-05-16\n* [Speed Up Django Admin with `list_select_related`](https://github.com/CuriousLearner/til/blob/main/django/admin-list-select-related.md) - 2025-05-16\n* [Isolate Redis cache for parallel tests](https://github.com/CuriousLearner/til/blob/main/django/isolate-redis-cache-for-parallel-tests.md) - 2025-02-20\n* [Fixing Coverage for Django's `manage.py test --parallel`](https://github.com/CuriousLearner/til/blob/main/django/coverage-on-parallel-tests.md) - 2025-02-20\n* [Using `add_q` in Django Queries](https://github.com/CuriousLearner/til/blob/main/django/add-q-in-django-queryset.md) - 2024-06-23\n* [Add Multiple Objects In Queryset In Many To Many Relationship](https://github.com/CuriousLearner/til/blob/main/django/set-whole-queryset-in-m2m-relationship.md) - 2024-06-23\n* [Generate random secret key](https://github.com/CuriousLearner/til/blob/main/django/generate-random-secrety-key.md) - 2024-06-03\n* [Empty database](https://github.com/CuriousLearner/til/blob/main/django/empty-database.md) - 2023-07-08\n* [Use `defer()` to limit fields fetched from models](https://github.com/CuriousLearner/til/blob/main/django/defer-fields-for-performance.md) - 2023-02-12\n* [Redundant all chaining in queryset](https://github.com/CuriousLearner/til/blob/main/django/redundant-all-in-queryset.md) - 2023-02-12\n\n## Django Extensions\n\n* [Print SQL on ORM queries](https://github.com/CuriousLearner/til/blob/main/django-extensions/print-sql-on-orm-queries.md) - 2025-02-28\n\n## Docker\n\n* [Filter list of docker containers](https://github.com/CuriousLearner/til/blob/main/docker/filter-list-of-containers.md) - 2025-02-28\n* [Target in Docker Compose File](https://github.com/CuriousLearner/til/blob/main/docker/target-in-docker-compose.md) - 2024-07-28\n* [Get rid of persistent volumes in `docker compose down`](https://github.com/CuriousLearner/til/blob/main/docker/get-rid-of-persistent-volume-docker-compose.md) - 2024-06-23\n\n## Git\n\n* [Show file contents from a specific branch](https://github.com/CuriousLearner/til/blob/main/git/show-file-from-branch.md) - 2025-12-13\n* [Remove Files from Git History](https://github.com/CuriousLearner/til/blob/main/git/remove-files-from-git-history.md) - 2025-12-08\n* [Git Garbage Collection](https://github.com/CuriousLearner/til/blob/main/git/git-garbage-collection.md) - 2025-12-08\n* [Rewrite Git Commit Metadata](https://github.com/CuriousLearner/til/blob/main/git/rewrite-git-commit-metadata.md) - 2025-12-08\n* [Stash Selective Changes in Git](https://github.com/CuriousLearner/til/blob/main/git/stash-selective-changes.md) - 2025-02-20\n* [Finding Git Commits That Touched a Specific File or String](https://github.com/CuriousLearner/til/blob/main/git/finding-commits-changing-a-file.md) - 2025-02-20\n* [Revert file(s) state to one in diff branch](https://github.com/CuriousLearner/til/blob/main/git/revert-files-to-state-in-diff-branch.md) - 2024-07-28\n* [`git rev-parse` for parsing Git revision information](https://github.com/CuriousLearner/til/blob/main/git/rev-parse-for-revision-information.md) - 2024-04-18\n* [`git diff --name-only` for file names only](https://github.com/CuriousLearner/til/blob/main/git/diff-name-only.md) - 2024-04-18\n* [`git merge-base` for common-ancestor commit](https://github.com/CuriousLearner/til/blob/main/git/merge-base-for-common-ancestor-commit.md) - 2024-04-18\n* [Ignore commits in git-blame view](https://github.com/CuriousLearner/til/blob/main/git/ignore-commits-in-git-blame.md) - 2023-02-13\n\n## Github\n\n* [Add Funding Information to GitHub Projects](https://github.com/CuriousLearner/til/blob/main/github/add-funding-info.md) - 2025-10-21\n* [See git-blame for a file](https://github.com/CuriousLearner/til/blob/main/github/show-git-blame-for-a-file.md) - 2023-02-13\n\n## Github Actions\n\n* [Understanding Permissions in GitHub Actions](https://github.com/CuriousLearner/til/blob/main/github-actions/permissions.md) - 2024-10-10\n* [`paths` and `paths-ignore` filter for optimized Workflow run](https://github.com/CuriousLearner/til/blob/main/github-actions/path-filter.md) - 2024-10-10\n* [Enable automatic inline annotations in PR using Ruff](https://github.com/CuriousLearner/til/blob/main/github-actions/ruff-github-comments.md) - 2023-02-13\n* [Permissions for pushing to a repository](https://github.com/CuriousLearner/til/blob/main/github-actions/push-to-repo.md) - 2023-02-12\n\n## Go\n\n* [Using `go doc` to Read Package Documentation](https://github.com/CuriousLearner/til/blob/main/go/go-doc-command.md) - 2025-11-26\n* [Import package without using it via underscore (`_`)](https://github.com/CuriousLearner/til/blob/main/go/import-unused-package.md) - 2024-06-23\n* [Build tags in Golang](https://github.com/CuriousLearner/til/blob/main/go/build-tags.md) - 2024-06-23\n\n## Html\n\n* [Server-Sent Events (SSE)](https://github.com/CuriousLearner/til/blob/main/html/server-sent-events.md) - 2026-02-26\n* [Subresource Integrity (SRI) Hashes](https://github.com/CuriousLearner/til/blob/main/html/sri-hashes.md) - 2026-01-07\n\n## Make\n\n* [Control `make` Behavior with `MAKEFLAGS`](https://github.com/CuriousLearner/til/blob/main/make/default-options-as-makeflags.md) - 2025-02-20\n* [Improve `make` Output Readability with `--output-sync` for Parallel Jobs](https://github.com/CuriousLearner/til/blob/main/make/sync-output-for-parallel-jobs.md) - 2025-02-20\n* [Speed Up Builds with `make -j` and Auto-Detect CPU Cores](https://github.com/CuriousLearner/til/blob/main/make/parallel-jobs.md) - 2025-02-20\n\n## Markdown\n\n* [Markdown Alerts](https://github.com/CuriousLearner/til/blob/main/markdown/markdown-alerts.md) - 2024-07-28\n\n## Mastodon\n\n* [Sending direct message on Mastodon](https://github.com/CuriousLearner/til/blob/main/mastodon/send-direct-message.md) - 2023-02-14\n\n## NPM\n\n* [`npm ci` (clean install) for CI pipelines](https://github.com/CuriousLearner/til/blob/main/npm/clean-install-for-ci-pipelines.md) - 2025-02-28\n\n## PDF\n\n* [Reduce file size of PDF files](https://github.com/CuriousLearner/til/blob/main/pdf/compress-pdf.md) - 2023-03-15\n* [Remove PDF Password](https://github.com/CuriousLearner/til/blob/main/pdf/remove-pdf-password.md) - 2023-03-15\n\n## Poetry\n\n* [Editable installation for a package](https://github.com/CuriousLearner/til/blob/main/poetry/editable-installation-for-package.md) - 2025-02-28\n* [Generate requirements without hashes](https://github.com/CuriousLearner/til/blob/main/poetry/generate-requirements-without-hashes.md) - 2025-02-28\n* [Clear cache for resolving dependencies faster](https://github.com/CuriousLearner/til/blob/main/poetry/clear-cache-for-resolving-dependencies-faster.md) - 2023-02-16\n\n## PSQL\n\n* [Partial Index](https://github.com/CuriousLearner/til/blob/main/psql/partial-index.md) - 2026-02-26\n* [VACUUM ANALYZE in PostgreSQL](https://github.com/CuriousLearner/til/blob/main/psql/vacuum-analyze.md) - 2025-10-03\n* [Restore database via template](https://github.com/CuriousLearner/til/blob/main/psql/restore-via-template.md) - 2024-06-23\n* [Dump and Restore database](https://github.com/CuriousLearner/til/blob/main/psql/dump-and-restore.md) - 2023-07-08\n\n## Pytest\n\n* [Understanding pytest pythonpath and import-mode configuration](https://github.com/CuriousLearner/til/blob/main/pytest/pythonpath-import-mode-configuration.md) - 2025-09-18\n* [`caplog` vs `syslog` in pytest – What’s the Difference?](https://github.com/CuriousLearner/til/blob/main/pytest/caplog-vs-syslog.md) - 2025-05-16\n* [Run only failed tests and stop at first failure in pytest](https://github.com/CuriousLearner/til/blob/main/pytest/run-failed-test-and-exit-at-first-failure.md) - 2025-03-04\n* [Autouse fixtures for common test dependencies](https://github.com/CuriousLearner/til/blob/main/pytest/fixture-autouse.md) - 2025-02-28\n* [Run tests that match substring in their name](https://github.com/CuriousLearner/til/blob/main/pytest/run-filtered-tests-by-substring.md) - 2025-02-28\n\n## Python\n\n* [`timedelta.total_seconds()` vs `timedelta.seconds` – A Critical Difference](https://github.com/CuriousLearner/til/blob/main/python/timedelta-total-seconds-vs-seconds.md) - 2025-11-26\n* [Handle CORS in a Simple HTTP Server](https://github.com/CuriousLearner/til/blob/main/python/handle-cors-simple-http-server.md) - 2025-02-28\n* [Update dependencies in requirements.txt](https://github.com/CuriousLearner/til/blob/main/python/update-dependencies-in-requirements.md) - 2025-02-28\n* [Expand home directory paths in `pathlib.Path`](https://github.com/CuriousLearner/til/blob/main/python/pathlib-path-expand-user.md) - 2024-06-23\n\n## React\n\n* [Not to use \u0026\u0026 for conditional rendering](https://github.com/CuriousLearner/til/blob/main/react/conditional-rendering.md) - 2023-02-12\n\n## SSH\n\n* [Setup SSH Tunneling](https://github.com/CuriousLearner/til/blob/main/ssh/setup-ssh-tunneling.md) - 2023-07-08\n\n## Terraform\n\n* [Reading directly from environment variables](https://github.com/CuriousLearner/til/blob/main/terraform/get-environment-variables.md) - 2025-02-28\n* [Zip Lambda code](https://github.com/CuriousLearner/til/blob/main/terraform/zip-lambda-code.md) - 2024-09-06\n* [Lifecycle Ignore changes](https://github.com/CuriousLearner/til/blob/main/terraform/lifecycle-ignore-changes.md) - 2024-07-03\n\n## Terragrunt\n\n* [Force unlock state file](https://github.com/CuriousLearner/til/blob/main/terragrunt/force-unlock-state.md) - 2024-09-06\n\n## VIM\n\n* [Open a file on a particular line](https://github.com/CuriousLearner/til/blob/main/vim/open-file-on-line.md) - 2023-02-13\n* [Indent and De-indent lines in Vim.](https://github.com/CuriousLearner/til/blob/main/vim/indent-deindent-line.md) - 2023-02-13\n* [Open file on a particular pattern in file](https://github.com/CuriousLearner/til/blob/main/vim/open-file-on-pattern.md) - 2023-02-13\n* [Use text objects to make efficient changes](https://github.com/CuriousLearner/til/blob/main/vim/text-objects-to-make-efficient-changes.md) - 2023-02-13\n* [Remove lines matching a pattern](https://github.com/CuriousLearner/til/blob/main/vim/remove-lines-matching-pattern.md) - 2023-02-13\n\n## VLC\n\n* [Cast video to chromecast](https://github.com/CuriousLearner/til/blob/main/vlc/cast-video-to-chromecast.md) - 2023-02-13\n\n## Wagtail\n\n* [Lazily Refer Snippet in blocks](https://github.com/CuriousLearner/til/blob/main/wagtail/lazily-refer-snippet.md) - 2025-02-28\n* [Get blocks in StreamBlock using `blocks_by_name` \u0026 `first_block_by_name`](https://github.com/CuriousLearner/til/blob/main/wagtail/get-blocks-in-streamblock.md) - 2024-04-25\n* [Many to Many relationship in Wagtail](https://github.com/CuriousLearner/til/blob/main/wagtail/many-to-many-relationship.md) - 2024-04-25\n\n## Yml\n\n* [YAML Anchor Tags using `\u003c\u003c:` and `*` Syntax](https://github.com/CuriousLearner/til/blob/main/yml/anchor-tags.md) - 2024-10-10\n\u003c!-- index ends --\u003e\n\n* * * * *\n### Resources\n\nThis repository is inspired from the following respositories:\n\n- [Lacey Williams Henschel's TIL](https://github.com/williln/til)\n- [Simon Willison's TIL](https://github.com/simonw/til)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcuriouslearner%2Ftil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcuriouslearner%2Ftil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcuriouslearner%2Ftil/lists"}