{"id":18909974,"url":"https://github.com/jonasbn/til","last_synced_at":"2026-03-07T12:30:19.732Z","repository":{"id":5668729,"uuid":"53698167","full_name":"jonasbn/til","owner":"jonasbn","description":"Today I Learned: collection of notes, tips and tricks and stuff I learn from day to day working with computers and technology as an open source contributor and product manager","archived":false,"fork":false,"pushed_at":"2025-02-10T15:52:14.000Z","size":7370,"stargazers_count":65,"open_issues_count":4,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-15T05:27:21.727Z","etag":null,"topics":["notes","scribbles","til","tips","tips-and-tricks","today-i-learned"],"latest_commit_sha":null,"homepage":"http://jonasbn.github.io/til/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonasbn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2016-03-11T21:36:54.000Z","updated_at":"2025-02-13T20:35:52.000Z","dependencies_parsed_at":"2023-02-17T03:00:31.865Z","dependency_job_id":"d9e242a5-a885-48ef-970c-4a6834cb97a2","html_url":"https://github.com/jonasbn/til","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasbn%2Ftil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasbn%2Ftil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasbn%2Ftil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasbn%2Ftil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonasbn","download_url":"https://codeload.github.com/jonasbn/til/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239898462,"owners_count":19715212,"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":["notes","scribbles","til","tips","tips-and-tricks","today-i-learned"],"created_at":"2024-11-08T09:38:51.320Z","updated_at":"2026-03-07T12:30:19.698Z","avatar_url":"https://github.com/jonasbn.png","language":"HTML","readme":"\u003c!-- omit from toc --\u003e\n# Today I Learned\n\u003c!-- omit from toc --\u003e\n\n![Markdownlint Action Status Badge](https://github.com/jonasbn/til/actions/workflows/markdownlint.yml/badge.svg)\n![Spellcheck Action Status Badge](https://github.com/jonasbn/til/actions/workflows/spellcheck.yml/badge.svg)\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Categories](#categories)\n  - [ack - an alternative to grep](#ack---an-alternative-to-grep)\n  - [afplay - play audio files from the commandline on macOS](#afplay---play-audio-files-from-the-commandline-on-macos)\n  - [ag - also known as the Silversurfer, fast alternative to ack and grep](#ag---also-known-as-the-silversurfer-fast-alternative-to-ack-and-grep)\n  - [awk](#awk)\n  - [Bash - the Bourne Again Shell](#bash---the-bourne-again-shell)\n  - [Bootstrap - web framework for fast prototyping](#bootstrap---web-framework-for-fast-prototyping)\n  - [Bruno - an alternative to Postman](#bruno---an-alternative-to-postman)\n  - [C - compiled programming language](#c---compiled-programming-language)\n  - [carton - tools for handling Perl distributions and dependencies local to a project](#carton---tools-for-handling-perl-distributions-and-dependencies-local-to-a-project)\n  - [chezmoi - dot filer manager](#chezmoi---dot-filer-manager)\n  - [chrome - browser also known as chromium](#chrome---browser-also-known-as-chromium)\n  - [clang - project for tools for building C, C++ and Objective-C](#clang---project-for-tools-for-building-c-c-and-objective-c)\n  - [colortail - colorful variation of tail](#colortail---colorful-variation-of-tail)\n  - [CPAN - Perl packages and distributions repository](#cpan---perl-packages-and-distributions-repository)\n  - [cpanm - a fast CPAN module installer](#cpanm---a-fast-cpan-module-installer)\n  - [cpm - alternative to cpanm](#cpm---alternative-to-cpanm)\n  - [crates - Rust packages](#crates---rust-packages)\n  - [cron - schedule and repeat jobs](#cron---schedule-and-repeat-jobs)\n  - [css - cascading style sheets, used for styling HTML](#css---cascading-style-sheets-used-for-styling-html)\n  - [C# - .NET based language from Microsoft](#c---net-based-language-from-microsoft)\n  - [curl - a commandline tool for transferring data with URL syntax](#curl---a-commandline-tool-for-transferring-data-with-url-syntax)\n  - [Dash.app - an alternative browser to the built-in documentation in macOS and other resources](#dashapp---an-alternative-browser-to-the-built-in-documentation-in-macos-and-other-resources)\n  - [date - see dates and time on the command line](#date---see-dates-and-time-on-the-command-line)\n  - [Debian - popular Linux distribution](#debian---popular-linux-distribution)\n  - [diff-so-fancy - a diff alternative](#diff-so-fancy---a-diff-alternative)\n  - [DigitalOcean - a hosting provider, caring about open source](#digitalocean---a-hosting-provider-caring-about-open-source)\n  - [Docker - containerization](#docker---containerization)\n  - [DockerHub - a repository for Docker images](#dockerhub---a-repository-for-docker-images)\n  - [Dropbox - a cloud storage provider, integrates well with macOS](#dropbox---a-cloud-storage-provider-integrates-well-with-macos)\n  - [dzil - Dist::Zilla, a Perl distribution builder](#dzil---distzilla-a-perl-distribution-builder)\n  - [EditorConfig - tool for generic text editor configuration](#editorconfig---tool-for-generic-text-editor-configuration)\n  - [entr - run arbitrary commands when files change](#entr---run-arbitrary-commands-when-files-change)\n  - [exa/eza - an alternative to the ls command](#exaeza---an-alternative-to-the-ls-command)\n  - [fd - a fast alternative to find](#fd---a-fast-alternative-to-find)\n  - [FileMerge.app - a diff tool for macOS](#filemergeapp---a-diff-tool-for-macos)\n  - [find - find files and directories on the command line](#find---find-files-and-directories-on-the-command-line)\n  - [Ghostty - a fast and native terminal emulator](#ghostty---a-fast-and-native-terminal-emulator)\n  - [Git - version control system](#git---version-control-system)\n  - [git-delta - an commandline diff tool, also known as delta](#git-delta---an-commandline-diff-tool-also-known-as-delta)\n  - [GitHub - platform for hosting Git repositories](#github---platform-for-hosting-git-repositories)\n  - [GitHub Actions - automate your GitHub work and repositories](#github-actions---automate-your-github-work-and-repositories)\n  - [GnuPG - PGP tools, GNU variant](#gnupg---pgp-tools-gnu-variant)\n  - [Go - compiled programming language](#go---compiled-programming-language)\n  - [grep - see also ag or ack](#grep---see-also-ag-or-ack)\n  - [Hacking - No Comment](#hacking---no-comment)\n  - [Homebrew - package manager for macOS (and Linux)](#homebrew---package-manager-for-macos-and-linux)\n  - [HTML - HyperText Markup Language](#html---hypertext-markup-language)\n  - [httpie - an alternative to curl](#httpie---an-alternative-to-curl)\n  - [irssi - for all your IRC needs](#irssi---for-all-your-irc-needs)\n  - [iTerm.app - an alternative to Terminal.app](#itermapp---an-alternative-to-terminalapp)\n  - [JavaScript - see also Node.js](#javascript---see-also-nodejs)\n  - [Jenkins - a continuous integration server](#jenkins---a-continuous-integration-server)\n  - [Jira - issue tracking and project management](#jira---issue-tracking-and-project-management)\n  - [jq - a lightweight and flexible command-line JSON processor](#jq---a-lightweight-and-flexible-command-line-json-processor)\n  - [JSON - see also XML and YAML](#json---see-also-xml-and-yaml)\n  - [Kali - a Linux distribution focused on security and penetration testing](#kali---a-linux-distribution-focused-on-security-and-penetration-testing)\n  - [Liquid Prompt - see also Starship](#liquid-prompt---see-also-starship)\n  - [macOS - see OSX](#macos---see-osx)\n  - [Mail.app - the default mail client on macOS](#mailapp---the-default-mail-client-on-macos)\n  - [Markdown - basic markup language, great for documentation](#markdown---basic-markup-language-great-for-documentation)\n  - [markdownlint - a tool for linting Markdown](#markdownlint---a-tool-for-linting-markdown)\n  - [Mermaid - awesome tool for generating diagrams from text](#mermaid---awesome-tool-for-generating-diagrams-from-text)\n  - [Mojolicious - a Perl web framework](#mojolicious---a-perl-web-framework)\n  - [MySQL - a relational database](#mysql---a-relational-database)\n  - [Nginx - a webserver, proxy and load-balancer](#nginx---a-webserver-proxy-and-load-balancer)\n  - [NodeJS - server-side JavaScript interpreter](#nodejs---server-side-javascript-interpreter)\n  - [npm - Node.js package manager](#npm---nodejs-package-manager)\n  - [OpenAPI - a specification for describing RESTful APIs, see also Swagger](#openapi---a-specification-for-describing-restful-apis-see-also-swagger)\n  - [OpenSSL - a toolkit for SSL and TLS](#openssl---a-toolkit-for-ssl-and-tls)\n  - [Oracle - a relational database](#oracle---a-relational-database)\n  - [OSX - the operating system for Macs - now known as macOS](#osx---the-operating-system-for-macs---now-known-as-macos)\n  - [Perl - Swiss Army Knife of programming languages](#perl---swiss-army-knife-of-programming-languages)\n  - [Perlbrew - a tool for managing multiple Perl installations](#perlbrew---a-tool-for-managing-multiple-perl-installations)\n  - [Perltidy - tidy all your Perl](#perltidy---tidy-all-your-perl)\n  - [Postgresql - a relational database](#postgresql---a-relational-database)\n  - [Programming - general programming tips](#programming---general-programming-tips)\n  - [Probot - a framework for building GitHub Apps](#probot---a-framework-for-building-github-apps)\n  - [Prolog - a logic programming language](#prolog---a-logic-programming-language)\n  - [Python - an interpreted programming language](#python---an-interpreted-programming-language)\n  - [qalc - an easy to use command line calculator](#qalc---an-easy-to-use-command-line-calculator)\n  - [Regexp - regular expressions](#regexp---regular-expressions)\n  - [Renovate - a bot for automating dependency updates](#renovate---a-bot-for-automating-dependency-updates)\n  - [REST - Representational State Transfer, a popular approach to building APIs](#rest---representational-state-transfer-a-popular-approach-to-building-apis)\n  - [rm - remove files and directories on the command line](#rm---remove-files-and-directories-on-the-command-line)\n  - [Ruby - an interpreted programming language](#ruby---an-interpreted-programming-language)\n  - [Rust - a compiled programming language](#rust---a-compiled-programming-language)\n  - [sed - stream editor](#sed---stream-editor)\n  - [Shell - general shell tips](#shell---general-shell-tips)\n  - [shellcheck - a linter for shell scripts](#shellcheck---a-linter-for-shell-scripts)\n  - [Slack - a collaboration tool](#slack---a-collaboration-tool)\n  - [smartcd - a tool for running commands when changing directories](#smartcd---a-tool-for-running-commands-when-changing-directories)\n  - [Sublime Text 3 - see also VSCode](#sublime-text-3---see-also-vscode)\n  - [Subversion - do see Git](#subversion---do-see-git)\n  - [SQL - Structured Query Language](#sql---structured-query-language)\n  - [SQL Developer - a GUI tool for Oracle](#sql-developer---a-gui-tool-for-oracle)\n  - [SQLite - a lightweight relational database](#sqlite---a-lightweight-relational-database)\n  - [sqlplus - the CLI tool for Oracle](#sqlplus---the-cli-tool-for-oracle)\n  - [SSH - Secure Shell](#ssh---secure-shell)\n  - [Starship - nifty prompt and an alternative to Liquid Prompt](#starship---nifty-prompt-and-an-alternative-to-liquid-prompt)\n  - [Swagger - tool for describing RESTful APIs, see also OpenAPI](#swagger---tool-for-describing-restful-apis-see-also-openapi)\n  - [Swift - a compiled programming language from Apple](#swift---a-compiled-programming-language-from-apple)\n  - [tar - a tool for archiving files](#tar---a-tool-for-archiving-files)\n  - [Terminal.app - do see iTerm.app](#terminalapp---do-see-itermapp)\n  - [tldr - Too Long; Didn't Read, so use tldr](#tldr---too-long-didnt-read-so-use-tldr)\n  - [tmux - an alternative to screen](#tmux---an-alternative-to-screen)\n  - [tokei - language statistics - fast](#tokei---language-statistics---fast)\n  - [Ubuntu - a Linux distribution based on Debian](#ubuntu---a-linux-distribution-based-on-debian)\n  - [ufw - Uncomplicated Firewall](#ufw---uncomplicated-firewall)\n  - [vim - a text editor](#vim---a-text-editor)\n  - [VSCode / Visual Studio Code](#vscode--visual-studio-code)\n  - [VMware Fusion - a virtualization tool for macOS](#vmware-fusion---a-virtualization-tool-for-macos)\n  - [Vue - a JavaScript framework](#vue---a-javascript-framework)\n  - [WSL 1/2 - Windows Subsystem for Linux](#wsl-12---windows-subsystem-for-linux)\n  - [wtf util - a tool for the command line for visualising important information](#wtf-util---a-tool-for-the-command-line-for-visualising-important-information)\n  - [XML - see also YAML and JSON](#xml---see-also-yaml-and-json)\n  - [YAML - see also XML and JSON](#yaml---see-also-xml-and-json)\n  - [z - for jumping around in the file structures, an alternative to cd](#z---for-jumping-around-in-the-file-structures-an-alternative-to-cd)\n  - [zoxide - an alternative to z](#zoxide---an-alternative-to-z)\n  - [zsh - another shell than bash](#zsh---another-shell-than-bash)\n  - [XSLT](#xslt)\n- [About](#about)\n- [Additional TIL Collections](#additional-til-collections)\n- [License](#license)\n\n\u003ca id=\"categories\"\u003e\u003c/a\u003e\n## Categories\n\n\u003ca id=\"ack\"\u003e\u003c/a\u003e\n### ack - an alternative to grep\n\n- [Install ack](ack/install_ack.md)\n- [Define a custom search filetype scope](ack/define_a_custom_search_filetype_scope.md)\n\n\u003ca id=\"afplay\"\u003e\u003c/a\u003e\n### afplay - play audio files from the commandline on macOS\n\n- [RTFM](afplay/rtfm.md)\n\n\u003ca id=\"ag\"\u003e\u003c/a\u003e\n### ag - also known as the Silversurfer, fast alternative to ack and grep\n\n- [Use ag](ag/use_ag.md)\n\n\u003ca id=\"awk\"\u003e\u003c/a\u003e\n### awk\n\n- [Learn AWK](awk/learn_awk.md)\n\n\u003ca id=\"bash\"\u003e\u003c/a\u003e\n### Bash - the Bourne Again Shell\n\n- [Use bash](bash/use_bash.md)\n- [Implement tab completions](bash/implement_tab_completions.md)\n- [Inputting danish characters](bash/inputting_danish_characters.md)\n- [Repeating an executable continuously](bash/repeating_an_executable_continuously.md)\n- [Slimming history](bash/slimming_history.md)\n- [Reading arguments from the command line](bash/reading_cli_arguments.md)\n- [Copy a file to multiple directories](bash/copy_a_file_to_multiple_directories.md)\n- [Replace a file in multiple directories](bash/replace_a_file_in_multiple_directories.md)\n- [Create directory for own bash completions](bash/create_dir_for_own_completions.md)\n- [Edit Complex CLI in Editor](bash/edit_complex_cli_in_editor.md)\n- [Use fzf](bash/use_fzf.md)\n- [Use Colours In Terminal Output](bash/use_colours_in_terminal_output.md)\n- [How to get last return value](bash/how_to_get_last_return_value.md)\n- [Getting Process-id of a Child Proces](bash/getting_process_id_of_child_process.md)\n- [Grep STDERR](bash/grep_stderr.md)\n- [Use Bashmarks](bash/use_bashmarks.md)\n- [Use z](bash/use_z.md)\n- [Write safe shell scripts](bash/write_safe_shell_scripts.md)\n- [Glob expanding to all files in current directory recursively](bash/glob_expanding_to_all_files_in_current_directory_recursively.md)\n\n\u003ca id=\"bootstrap\"\u003e\u003c/a\u003e\n### Bootstrap - web framework for fast prototyping\n\n- [Prevent wrapping of contents of code tags](bootstrap/prevent_wrapping_of_contents_of_code_tags.md)\n\n\u003ca id=\"bruno\"\u003e\u003c/a\u003e\n### Bruno - an alternative to Postman\n\n- [Use Bruno](bruno/use_bruno.md)\n- [See Your Requests](bruno/see_your_requests.md)\n\n\u003ca id=\"c\"\u003e\u003c/a\u003e\n### C - compiled programming language\n\n- [Inspect your C using Godbolt](c/inspect_your_c_using_godbolt.md)\n\n\u003ca id=\"carton\"\u003e\u003c/a\u003e\n### carton - tools for handling Perl distributions and dependencies local to a project\n\n- [Use carton](carton/use_carton.md)\n- [Pass flags to arguments to exec](carton/pass_flags_to_arguments_to_exec.md)\n- [Update snapshot cpanfile](carton/update_snapshot_cpanfile.md)\n- [Use PERL_CARTON_MIRROR](carton/use_perl_carton_mirror.md)\n\n\u003ca id=\"chezmoi\"\u003e\u003c/a\u003e\n### chezmoi - dot filer manager\n\n- [Install chezmoi](chezmoi/install_chezmoi.md)\n- [Use chezmoi](chezmoi/use_chezmoi.md)\n\n\u003ca id=\"chrome\"\u003e\u003c/a\u003e\n### chrome - browser also known as chromium\n\n- [Add search shortcuts](chrome/add_search_shortcuts.md)\n\n\u003ca id=\"clang\"\u003e\u003c/a\u003e\n### clang - project for tools for building C, C++ and Objective-C\n\n- [Diagnostic flags in Clang](clang/diagnostic_flags.md)\n\n\u003ca id=\"colortail\"\u003e\u003c/a\u003e\n### colortail - colorful variation of tail\n\n- [use colortail](colortail/use_colortail.md)\n\n\u003ca id=\"cpan\"\u003e\u003c/a\u003e\n### CPAN - Perl packages and distributions repository\n\n- [Use CPAN](cpan/use_cpan.md)\n- [Data::FormValidator](cpan/data-formvalidator.md)\n- [File::Find](cpan/file-find.md)\n- [Test::Pretty](cpan/test-pretty.md)\n- [Parsing Gitignore](cpan/parsing_gitignore.md)\n- [Install DateTime::Astro](cpan/install_datetime_astro.md)\n- [Getopt::Long](cpan/getopt-long.md)\n\n\u003ca id=\"cpanm\"\u003e\u003c/a\u003e\n### cpanm - a fast CPAN module installer\n\n- [Use cpanm](cpanm/use_cpanm.md)\n- [Use cpanm with cpanfile](cpanm/use_cpanm_with_cpanfile.md)\n- [Use cpanm with Module::Build](cpanm/use_cpanm_with_module-build.md)\n- [Use cpanm with CPAN::Mini](cpanm/use_cpanm_with_cpan-mini.md)\n- [Use cpanm with carton](cpanm/use_cpanm_with_carton.md)\n- [Tailing cpanm build log file](cpanm/tailing_cpanm_build_logfile.md)\n\n\u003ca id=\"cpm\"\u003e\u003c/a\u003e\n### cpm - alternative to cpanm\n\n- [Use cpm](cpm/use_cpm.md)\n- [Use cpm with cpanfile](cpm/use_cpm_with_cpanfile.md)\n\n\u003ca id=\"crates\"\u003e\u003c/a\u003e\n### crates - Rust packages\n\n- [colored](crates/colored.md)\n\n\u003ca id=\"cron---schedule-jobs\"\u003e\u003c/a\u003e\n### cron - schedule and repeat jobs\n\n- [Scheduling with cron](cron/scheduling_with_cron.md)\n\n\u003ca id=\"css\"\u003e\u003c/a\u003e\n### css - cascading style sheets, used for styling HTML\n\n- [Making sure you are using alt tags](css/making_sure_you_are_using_alt_tags.md)\n- [CSS Properties](css/properties.md)\n\n\u003ca id=\"csharp\"\u003e\u003c/a\u003e\n### C# - .NET based language from Microsoft\n\n- [Problem building: \"MSBUILD : error MSB1011\"](csharp/problem_building_msb1011.md)\n\n\u003ca id=\"curl\"\u003e\u003c/a\u003e\n### curl - a commandline tool for transferring data with URL syntax\n\n- [More POST Parameters](curl/more_post_parameters.md)\n- [Handling shell sensitive characters in URL](curl/handling_shell_sensitive_characters_in_url.md)\n- [Pipe output to less](curl/pipe_output_to_less.md)\n- [Use a cheatsheet](curl/use_a_cheatsheet.md)\n- [Using curl with Graphql server](curl/using_curl_with_graphql_server.md)\n- [Specify method](curl/specify_method.md)\n- [Get statuscode](curl/get_status_code.md)\n- [Handle gzip](curl/handle_gzip.md)\n- [How to handle location header](curl/how_to_handle_location_header.md)\n- [Ignore self signed certificates](curl/ignore_self_signed_certificates.md)\n\n\u003ca id=\"dashapp\"\u003e\u003c/a\u003e\n### Dash.app - an alternative browser to the built-in documentation in macOS and other resources\n\n- [Query Dash from the CLI](dashapp/query_dash_from_the_cli.md)\n\n\u003ca id=\"date\"\u003e\u003c/a\u003e\n### date - see dates and time on the command line\n\n- [Getting time in another timezone](date/getting_time_in_another_timezone.md)\n\n\u003ca id=\"debian\"\u003e\u003c/a\u003e\n### Debian - popular Linux distribution\n\n- [How to enquire version](debian/how_to_enquire_version.md)\n- [Add user to sudoers group](debian/add_user_to_sudoers.md)\n- [Resolve conflicting values in Debian package](debian/resolve_conflicting_values_in_package.md)\n- [Install unauthenticated package](debian/install_unauthenticated_package.md)\n- [Translate release names](debian/translate_release_names.md)\n\n\u003ca id=\"diff-so-fancy\"\u003e\u003c/a\u003e\n### diff-so-fancy - a diff alternative\n\n- [use diff-so-fancy](diff-so-fancy/use_diff_so_fancy.md)\n- [One-time Disable of diff-so-fancy for Git](diff-so-fancy/one-time_disable_dsf_for_git.md)\n\n\u003ca href=\"digitalocean\"\u003e\u003c/a\u003e\n### DigitalOcean - a hosting provider, caring about open source\n\n- [Monitor billing](digitalocean/monitor_billing.md)\n- [Use doctl](digitalocean/use_doctl.md)\n- [Serving Static Files From a Go App](digitalocean/serving_static_files_from_a_go_app.md)\n\n\u003ca id=\"docker\"\u003e\u003c/a\u003e\n### Docker - containerization\n\n- [Use Docker](docker/use_docker.md)\n- [Mount shared folder](docker/mount_shared_folder.md)\n- [Use shell to inspect filesystem of layer](docker/use_shell_for_layer.md)\n- [How to read files and stdout from a running docker container](docker/how_to_read_files_and_stdout_from_a_running_docker_container.md)\n- [Use ctop](docker/use_ctop.md)\n- [Define default network addresses used for containers](docker/define_default_network_addresses_used_for_containers.md)\n- [Copy a file from your container to the host operating system](docker/copy_a_file_from_your_container_to_the_host.md)\n- [Caching Docker build step](docker/caching_build_step.md)\n- [Show layers of Docker image](docker/show_layers_of_docker_image.md)\n- [What is the difference between RUN and CMD](docker/what_is_the_difference_between_run_and_cmd.md)\n- [Automatically Clean up after Docker Daily](docker/automatically_clean_up_after_docker.md)\n- [Customize your docker ps output](docker/customize_your_docker_ps_output.md)\n- [Use docker-compose-wait](docker/use_docker-compose-wait.md)\n- [Silence Warnings from Postgres](docker/silence_warnings_from_postgres.md)\n- [Debugging a b0rken Docker build step](docker/debugging_a_broken_docker_build_step.md)\n- [exec error](docker/exec_error.md)\n- [Docker on Windows](docker/docker_on_windows.md)\n\n\u003ca id=\"dockerhub\"\u003e\u003c/a\u003e\n### DockerHub - a repository for Docker images\n\n- [Publish an image to DockerHub](dockerhub/publish_an_image_to_dockerhub.md)\n- [Use Long Names for Your Base Images](dockerhub/use_long_names_for_your_base_images.md)\n- [Use hub-tool](dockerhub/use_hub-tool.md)\n\n\u003ca id=\"dropbox\"\u003e\u003c/a\u003e\n### Dropbox - a cloud storage provider, integrates well with macOS\n\n- [Download instead of playing multimedia file from Dropbox](dropbox/download_multimedia.md)\n- [Ignore certain files](dropbox/ignore_certain_files.md)\n\n\u003ca id=\"dzil\"\u003e\u003c/a\u003e\n### dzil - Dist::Zilla, a Perl distribution builder\n\n- [Make coverage tests](dzil/use_cover.md)\n- [Use cpanfile](dzil/cpanfile.md)\n- [Run a single test](dzil/run_a_single_test.md)\n\n\u003ca id=\"editorconfig\"\u003e\u003c/a\u003e\n### EditorConfig - tool for generic text editor configuration\n\n- [Use EditorConfig](editorconfig/use_editorconfig.md)\n- [Enforce EditorConfig using eclint](editorconfig/enforce_editorconfig_config_using_eclint.md)\n- [Perl](editorconfig/perl.md)\n- [XML](editorconfig/xml.md)\n- [Markdown](editorconfig/markdown.md)\n\n\u003ca id=\"entr\"\u003e\u003c/a\u003e\n### entr - run arbitrary commands when files change\n\n- [Run arbitrary commands when files change using entry](entr/run_arbitrary_commands_when_files_change_using_entr.md)\n\n\u003ca id=\"exa\"\u003e\u003c/a\u003e\n### exa/eza - an alternative to the ls command\n\n- [Use exa](exa/use_exa.md)\n\n\u003ca id=\"fd\"\u003e\u003c/a\u003e\n### fd - a fast alternative to find\n\n- [use fd](fd/use_fd.md)\n\n\u003ca id=\"filemergeapp\"\u003e\u003c/a\u003e\n### FileMerge.app - a diff tool for macOS\n\n- [User Filemerge from the commandline](filemergeapp/use_filemerge_from_cli.md)\n\n### find - find files and directories on the command line\n\n- [Searching Found Files in Found Directories](find/searching_found_files_in_found_directories.md)\n\n\u003ca id=\"ghostty\"\u003e\u003c/id\u003e\n### Ghostty - a fast and native terminal emulator\n\n- [Unsuitable Terminal Error](ghostty/unsuitable_terminal.md)\n- [Visor](ghostty/visor.md)\n\n\u003ca id=\"git\"\u003e\u003c/a\u003e\n### Git - version control system\n\n- [Resolve conflicts involving binary files](git/resolve_conflicts_involving_binary_files.md)\n- [Delete local and remote branch](git/delete_local_and_remote_branch.md)\n- [Set your email for a repository](git/set_your_email_for_a_repo.md)\n- [Delete local and remote tags](git/delete_local_and_remote_tags.md)\n- [Create a branch from a tag](git/create_branch_from_tag.md)\n- [Correct a commit message](git/correct_a_commit_message.md)\n- [Update a branch from master](git/update_branch_from_master.md)\n- [Rename branch](git/rename_branch.md)\n- [Get a cheatsheet](git/get_a_cheatsheet.md)\n- [Update fork from original repository](git/update_fork_from_original_repository.md)\n- [Tag a specific revision](git/tag_a_specific_revision.md)\n- [Make a branch new master](git/make_a_branch_new_master.md)\n- [List merged branches](git/list_merged_branches.md)\n- [Git Alias to Show Affected Files in Last N Commits](git/git_alias_to_show_files_affected_in_last_commits.md)\n- [Output your branches and tags as a tree on the command line](git/output_branches_and_tags_as_a_tree.md)\n- [Compare a single file between branches](git/compare_a_single_file_between_branches.md)\n- [Rollback a repository to a specific commit](git/rollback_a_repository_to_a_specific_commit.md)\n- [Avoid being prompted for password](git/avoid_being_prompted_for_password.md)\n- [Rename a tag](git/rename_a_tag.md)\n- [Rewrite the last commit message](git/rewrite_last_commit_message.md)\n- [Use Git Repository Viewer: grv](git/use_grv.md)\n- [Use tig](git/use_tig.md)\n- [Update submodule](git/update_submodule.md)\n- [Squash merge](git/squash_merge.md)\n- [Maintain Multiple Git Identities](git/maintain_multiple_git_ids.md)\n- [Find Out Who Created a Branch](git/find_out_who_created_a_branch.md)\n- [See a given file at a given commit](git/see_a_given_file_at_a_given_commit.md)\n- [Create a branch from an older commit](git/create_a_branch_from_an_older_commit.md)\n- [Get Name of Current Branch](git/get_name_of_current_branch.md)\n- [Use pre-commit](git/use_pre-commit.md)\n- [Ignore Git](git/ignore_git.md)\n- [Sort git tags](git/sort_git_tags.md)\n- [Git Status Shell Prompt](git/git_status_shell_prompt.md)\n\n\u003ca id=\"git-delta\"\u003e\u003c/a\u003e\n### git-delta - an commandline diff tool, also known as delta\n\n- [Use git-delta](git-delta/use_git-delta.md)\n\n\u003ca id=\"github\"\u003e\u003c/a\u003e\n### GitHub - platform for hosting Git repositories\n\n- [Ignore whitespace changes](github/ignore_whitespace_changes.md)\n- [Test Markdown rendering before making public](github/test_markdown_rendering_before_making_public.md)\n- [How to get the email address of a github user](github/get_email_of_github_user.md)\n- [Use hub](github/use_hub.md)\n- [Use emojis](github/use_emojis.md)\n- [GitHub Action Badges](github/action_badges.md)\n- [Use dependabot](github/use_dependabot.md)\n- [Use renovate bot](github/use_renovate.md)\n- [Providing Suggestions in Reviews](github/providing_suggestions_in_reviews.md)\n- [Use CLI](github/use_cli.md)\n\n\u003ca id=\"github_actions\"\u003e\u003c/a\u003e\n### GitHub Actions - automate your GitHub work and repositories\n\n- [Use spellcheck](github_actions/use_spellcheck.md)\n- [Use macOS](github_actions/use_macos.md)\n- [Use EditorConfig](github_actions/use_editorconfig.md)\n- [Schedule runs](github_actions/schedule_runs.md)\n- [Use Dependabot for GitHub Actions](github_actions/use_dependabot_for_github_actions.md)\n- [Use Dependabot for Docker](github_actions/use_dependabot_for_docker.md)\n- [Use Dependabot for Ruby](github_actions/use_dependabot_for_ruby.md)\n- [Use Dependabot for Python](github_actions/use_dependabot_for_python.md)\n- [Detect What Files Have Changed](github_actions/detect_what_files_have_changed.md)\n- [Pin Your Action Dependencies](github_actions/pin_your_action_dependencies.md)\n- [How do I resolve the SHA checksum for pinning](github_actions/how_do_I_resolve_the_sha_checksum.md)\n- [Use checkout action](github_actions/use_checkout.md)\n\n\u003ca id=\"gnupg\"\u003e\u003c/a\u003e\n### GnuPG - PGP tools, GNU variant\n\n- [Homebrew GnuPG vs. GPG Mail](gnupg/homebrew_gnupg_vs_gpg_mail.md)\n\n\u003ca id=\"go\"\u003e\u003c/a\u003e\n### Go - compiled programming language\n\n- [Use Go](go/use_go.md)\n- [Learn Go](go/learn_go.md)\n- [Go Resources](go/resources.md)\n- [Reading Documentation](go/reading_documentation.md)\n- [Reading benchmark results](go/reading_benchmark_results.md)\n- [Skipping tests](go/skipping_tests.md)\n- [Colorful test output](go/colorful_test_output.md)\n- [Enriched test output](go/enriched_test_output.md)\n- [How to sleep](go/how_to_sleep.md)\n- [Test Main Function](go/test_main_function.md)\n- [Get to know the standard library](go/get_to_know_the_standard_library.md)\n- [structs](go/structs.md)\n- [Running specific tests](go/running_specific_test.md)\n- [Read from STDIN](go/read_from_stdin.md)\n- [Use gocritic](go/use_gocritic.md)\n- [Working with local packages](go/working_with_local_packages.md)\n- [Panic: Flag redefined](go/flag_redefined.md)\n- [Multiline strings](go/multiline_strings.md)\n\n\u003ca id=\"grep\"\u003e\u003c/a\u003e\n### grep - see also ag or ack\n\n- [Add colour to grep output](grep/add_colour_to_grep.md)\n\n\u003ca id=\"hacking\"\u003e\u003c/a\u003e\n### Hacking - No Comment\n\n- [Change password on Window 7 Using Kali Linux](hacking/change_password_on_window7_using_kali.md)\n- [Wipe a Hard Drive Using Kali Linux](hacking/wipe_a_hard_drive_using_kali.md)\n\n\u003ca id=\"homebrew\"\u003e\u003c/a\u003e\n### Homebrew - package manager for macOS (and Linux)\n\n- [Stop brew from calling home](homebrew/stop_brew_from_calling_home.md)\n- [Cleaning your homebrew cellar](homebrew/clean.md)\n- [Installing bash](homebrew/installing_bash.md)\n- [Migrate installation](homebrew/migrate_installation.md)\n- [Remove tap](homebrew/remove_tap.md)\n\n\u003ca id=\"html\"\u003e\u003c/a\u003e\n\n### HTML - HyperText Markup Language\n\n- [Add and Remove classes using JavaScript](html/add_and_remove_classes_using_javascript.md)\n- [Execute JavaScript from a button](html/execute_javascript_from_button.md)\n- [How Can I Get HTML value using JavaScript](html/how_can_i_get_html_value_using_js.md)\n\n\u003ca id=\"httpie\"\u003e\u003c/a\u003e\n### httpie - an alternative to curl\n\n- [Use httpie](httpie/use_httpie.md)\n- [Using httpie with Graphql server](httpie/using_httpie_with_graphql_server.md)\n\n\u003ca id=\"irssi\"\u003e\u003c/a\u003e\n### irssi - for all your IRC needs\n\n- [use irssi](irssi/use_irssi.md)\n- [Use password authentication on Freenode](irssi/use_password_authentication_on_freenode.md)\n\n\u003ca id=\"itermapp\"\u003e\u003c/a\u003e\n### iTerm.app - an alternative to Terminal.app\n\n- [Use themes](itermapp/use_cool_themes.md)\n- [Use it](itermapp/use_it.md)\n- [Use triggers](itermapp/use_triggers.md)\n\n\u003ca id=\"javascript\"\u003e\u003c/a\u003e\n### JavaScript - see also Node.js\n\n- [Use JavaScript](javascript/use_javascript.md)\n- [Learn JavaScript](javascript/learn_javascript.md)\n- [Use a styleguide](javascript/use_a_style_guide.md)\n- [Beware of eval](javascript/beware_of_eval.md)\n- [Default Parameters for Functions](javascript/function_default_parameters.md)\n- [Console.log](javascript/console_log.md)\n- [Dynamic properties](javascript/dynamic_properties.md)\n- [Format Numbers](javascript/format_numbers.md)\n- [SyntaxError: Unexpected token o in JSON at position 1](javascript/unexpected_token_o_in_jason_at_position_1.md)\n\n\u003ca id=\"jenkins\"\u003e\u003c/a\u003e\n### Jenkins - a continuous integration server\n\n- [Use a script for freestyle projects](jenkins/use_a_script_for_freestyle_projects.md)\n\n\u003ca id=\"jira\"\u003e\u003c/a\u003e\n### Jira - issue tracking and project management\n\n- [Get a List of Linked Issues](jira/get_a_list_of_linked_issues.md)\n- [How to escape curly brackets within code tags](jira/how_to_escape_curlys_within_code_tags.md)\n\n\u003ca id=\"jq\"\u003e\u003c/a\u003e\n### jq - a lightweight and flexible command-line JSON processor\n\n- [Use jq](jq/use_jq.md)\n- [Concatenate two fields](jq/concatenate_two_fields.md)\n- [Sort using jq](jq/sort_using_jq.md)\n- [Count elements](jq/count_elements.md)\n- [Find and Extract object](jq/find_and_extract_object.md)\n- [Specify Colours](jq/specify_colours.md)\n- [Generate CSV file](jq/generate_csv_file.md)\n- [Convert a number to a string](jq/convert_a_number_to_a_string.md)\n\n\u003ca id=\"json\"\u003e\u003c/a\u003e\n### JSON - see also XML and YAML\n\n- [Beware of eval](json/beware_of_eval.md)\n- [Check out JSON Schema](json/check_out_json_schema.md)\n- [Prettify JSON on the command line](json/prettify_json_on_the_command_line.md)\n\n\u003ca id=\"kali\"\u003e\u003c/a\u003e\n### Kali - a Linux distribution focused on security and penetration testing\n\n- [Set Keyboard Layout](kali/set_keyboard_layout.md)\n\n\u003ca id=\"liquid-prompt\"\u003e\u003c/a\u003e\n### Liquid Prompt - see also Starship\n\n- [Install Liquid Prompt](liquidprompt/install_liquidprompt.md)\n\n\u003ca id=\"macos\"\u003e\u003c/a\u003e\n### macOS - see OSX\n\n\u003ca id=\"mailapp\"\u003e\u003c/a\u003e\n### Mail.app - the default mail client on macOS\n\n- [Mail file from the commandline](mailapp/mail_file_from_cli.md)\n\n\u003ca id=\"markdown\"\u003e\u003c/a\u003e\n### Markdown - basic markup language, great for documentation\n\n- [Use Markdown](markdown/use_markdown.md)\n- [How do I escape a backtick](markdown/how_do_i_escape_backtick.md)\n- [How do I escape a numbersign](markdown/how_do_i_escape_numbersign.md)\n- [How do I escape asterisk and other characters](markdown/how_do_i_escape.md)\n- [Read Markdown in terminal](markdown/read_markdown_in_terminal.md)\n- [Use Markdownlint](markdown/use_markdownlint.md)\n\n\u003ca id=\"markdownlint\"\u003e\u003c/a\u003e\n### markdownlint - a tool for linting Markdown\n\n- [Issue with enabledrules](markdownlint/issue_with_enabledrules.md)\n\n\u003ca id=\"mermaid\"\u003e\u003c/a\u003e\n### Mermaid - awesome tool for generating diagrams from text\n\n- [Diagram with Mermaid](mermaid/diagram_with_mermaid.md)\n\n\u003ca id=\"mojolicious\"\u003e\u003c/a\u003e\n### Mojolicious - a Perl web framework\n\n- [Redirecting from one URL to another](mojolicious/redirecting_from_one_url_to_another.md)\n- [Setting up a new application](mojolicious/setting_up_a_new_app.md)\n- [Enable logging](mojolicious/enable_logging.md)\n- [Mojolicious::Controller respond_to and template parameter](mojolicious/respond_to_and_template_parameter.md)\n- [Enable syntax highlighting for configuration files](mojolicious/enable_syntax_highlighting_for_configuration_files.md)\n- [Mojolicious::Plugin::Config](mojolicious/mojolicious-plugin-config.md)\n\n\u003ca id=\"mysql\"\u003e\u003c/a\u003e\n### MySQL - a relational database\n\n- [Setting the prompt](mysql/setting_the_prompt.md)\n\n\u003ca id=\"nginx\"\u003e\u003c/a\u003e\n### Nginx - a webserver, proxy and load-balancer\n\n- [Install Nginx](nginx/install_nginx.md)\n- [Listen on both IPv4 and IPv6](nginx/listen_on_both_ipv4_and_ipv6.md)\n- [Serve static files and proxy](nginx/serve_static_pages_and_proxy.md)\n- [Limit served HTTP methods](nginx/limit_served_http_methods.md)\n\n\u003ca id=\"node\"\u003e\u003c/a\u003e\n### NodeJS - server-side JavaScript interpreter\n\n- [Use Node](node/use_node.md)\n- [Use env files](node/use_env_files.md)\n- [Use nodeenv](node/use_nodeenv.md)\n- [Use nvm](node/use_nvm.md)\n\n\u003ca id=\"npm\"\u003e\u003c/a\u003e\n### npm - Node.js package manager\n\n- [Install dependencies from package-lock.json](npm/install_dependencies_from_package-lock_file.md)\n- [Specify Lag to Prohibit Upload to NPM](npm/specify_flag_to_prohibit_upload_to_npm.md)\n- [xslt-processor](npm/xslt-processor.md)\n\n\u003ca id=\"openapi\"\u003e\u003c/a\u003e\n### OpenAPI - a specification for describing RESTful APIs, see also Swagger\n\n- [Validating OpenAPI and Swagger definitions](openapi/validating_openapi_definition.md)\n\n\u003ca id=\"openssl\"\u003e\u003c/a\u003e\n### OpenSSL - a toolkit for SSL and TLS\n\n- [How to get information from a P12 file](openssl/how_to_get_information_from_a_p12_file.md)\n\n\u003ca id=\"oracle\"\u003e\u003c/a\u003e\n### Oracle - a relational database\n\n- [Convert string to date](oracle/convert_string_to_date.md)\n- [ORA-21561: OID generation failed](oracle/ora-21561.md)\n- [Beware of force for creation](oracle/beware_of_force_for_creation.md)\n- [How to see Oracle version](oracle/howto_see_oracle_version.md)\n- [Executing a function or procedure](oracle/executing_a_function_or_procedure.md)\n- [Comments in tnsnames.ora](oracle/comments_in_tnsnamesora.md)\n- [See grants for a specific user](oracle/see_grants_for_specific_user.md)\n- [See What a Record Looked Like](oracle/see_what_a_record_looked_like.md)\n\n\u003ca id=\"osx\"\u003e\u003c/a\u003e\n### OSX - the operating system for Macs - now known as macOS\n\n- [Lock screen shortcuts](osx/lock_screen_shortcuts.md)\n- [Speak when long running job is done](osx/speak_when_long_running_job_is_done.md)\n- [List available voices for speechsynthesis](osx/list_available_voices_for_speechsynthesis.md)\n- [Set hostname permanently](osx/set_hostname_permanently.md)\n- [Access iCloud from the cli](osx/access_icloud_drive_from_cli.md)\n- [Install Homebrew](osx/install_homebrew.md)\n- [Debugging Issues with Dynamic Libraries](osx/debugging_issues_with_dynamic_libs.md)\n- [Uninstall MacPorts](osx/uninstall_macports.md)\n- [Scheduling Timed Jobs](osx/scheduling_timed_jobs.md)\n- [Enabling at](osx/enabling_at.md)\n- [Playing Sound from the Command Line](osx/play_sound_from_cli.md)\n- [Keyboard Symbols](osx/keyboard_symbols.md)\n- [Use JavaScript](osx/use_javascript.md)\n- [Set Default Browser From the Command Line](osx/change_default_browser_from_cli.md)\n- [No telnet use netcat](osx/no_telnet_use_netcat.md)\n- [What ports are listened on](osx/what_ports_are_listened_on.md)\n- [Reset Bluetooth](osx/reset_bluetooth.md)\n- [Inspecting dynamic libraries](osx/inspecting_dynamic_libraries.md)\n- [Install OpenSSL using MacPorts](osx/install_openssl.md)\n- [Translate Release Names](osx/translate_release_names.md)\n- [Find timezones](osx/find_timezones.md)\n- [Remove backgrounds from images](osx/remove_backgrounds_from_images.md)\n\n\u003ca id=\"perl\"\u003e\u003c/a\u003e\n### Perl - Swiss Army Knife of programming languages\n\n- [Use Perl](perl/use_perl.md)\n- [View generated SQL when using DBIx::Class](perl/view_generated_sql_when_using_dbix-class.md)\n- [Create Test Coverage Report Using Dist::Zilla](perl/create_test_coverage_report_uzing_dist-zilla.md)\n- [Avoid issues with META.yml with Module::Install](perl/avoid_issues_with_metayml_with_module_install.md)\n- [Install XML::LibXML on MacOS](perl/install_xml_libxml_on_macos.md)\n- [Get ExtUtils::MakeMaker to install in local/ like carton](perl/get_extutils-makemaker_to_install_in_local_like_carton.md)\n- [Mojolicious::Plugin::OpenAPI Tutorial](https://github.com/jonasbn/perl-mojolicious-plugin-openapi-tutorial-hello-world)\n- [Read Input via Pipe](perl/read_input_via_pipe.md)\n- [Find out if a given Perl distribution is included in core](perl/find_out_if_a_given_perl_distribution_is_included_in_core.md)\n- [Find out what your perl minimum version requirement is](perl/find_out_what_your_perl_minimum_version_requirement_is.md)\n- [Use cpm](perl/use_cpm.md)\n- [Format numbers](perl/format_numbers.md)\n\n\u003ca id=\"perlbrew\"\u003e\u003c/a\u003e\n### Perlbrew - a tool for managing multiple Perl installations\n\n- [Install perlbrew](perlbrew/install_perlbrew.md)\n- [Eliminate compilation warnings on OSX](perlbrew/eliminate_compilation_warnings_on_osx.md)\n- [Uninstall perlbrew](perlbrew/uninstall_perlbrew.md)\n- [Install a new perl and clone modules from an existing installation](perlbrew/install_a_new_perl_and_clone_modules_from_an_existing_installation.md)\n- [Using perlbrew in Shell scripts](perlbrew/using_perlbrew_in_shell_scripts.md)\n\n\u003ca id=\"perltidy\"\u003e\u003c/a\u003e\n### Perltidy - tidy all your Perl\n\n- [Tidy a file inline](perltidy/tidy_file_inline.md)\n\n\u003ca id=\"postgresql\"\u003e\u003c/a\u003e\n### Postgresql - a relational database\n\n- [Setting the prompt](postgresql/setting_the_prompt.md)\n\n\u003ca id=\"programming\"\u003e\u003c/a\u003e\n### Programming - general programming tips\n\n- [Round float to 2 decimals](programming/round_float_to_2_decimals.md)\n\n\u003ca id=\"probot\"\u003e\u003c/a\u003e\n### Probot - a framework for building GitHub Apps\n\n- [Probot: auto-assign](probot/auto-assign.md)\n- [Probot: delete merged branch](probot/delete_merged_branch.md)\n- [Probot: todo](probot/todo.md)\n\n\u003ca id=\"prolog\"\u003e\u003c/a\u003e\n### Prolog - a logic programming language\n\n- [Prolog resources](prolog/prolog.md)\n\n\u003ca id=\"python\"\u003e\u003c/a\u003e\n### Python - an interpreted programming language\n\n- [Use Python](python/use_python.md)\n- [Old-school string formatting](python/old-school_string_formatting.md)\n- [What is wheel](python/what_is_wheel.md)\n- [How to detect pipe](python/how_to_detect_pipe.md)\n- [strptime: Convert a string representing date and time to an object](python/strptime.md)\n- [strftime: Convert a DateTime object to a string in a given format](python/strftime.md)\n- [Zen of Python](python/zen_of_python.md)\n\n\u003ca id=\"qalc\"\u003e\u003c/a\u003e\n### qalc - an easy to use command line calculator\n\n- [Calculate Download Time](qalc/calculate_download_time.md)\n- [Eliminate Locale Warnings](qalc/eliminate_locale_warnings.md)\n\n\u003ca id=\"regexp\"\u003e\u003c/a\u003e\n### Regexp - regular expressions\n\n- [Regex Posix](regexp/posix.md)\n- [Prime Numbers](regexp/prime_numbers.md)\n\n\u003ca id=\"renovate\"\u003e\u003c/a\u003e\n### Renovate - a bot for automating dependency updates\n\n- [Use Renovate](renovate/use_renovate.md)\n- [Use Renovate for Perl](renovate/use_renovate_for_perl.md)\n- [Hide the config](renovate/hide_the_config.md)\n\n\u003ca id=\"rest\"\u003e\u003c/a\u003e\n### REST - Representational State Transfer, a popular approach to building APIs\n\n- [Prototype with dummy APIs](rest/prototype_with_dummy_apis.md)\n- [Use proper headers](rest/use_proper_headers.md)\n- [Check out OpenAPI](rest/check_out_openapi.md)\n- [Use verbs](rest/use_verbs.md)\n\n\u003ca id=\"rm\"\u003e\u003c/a\u003e\n### rm - remove files and directories on the command line\n\n- [Delete files with names resembling cli options](rm/delete_files_with_names_resembling_cli_options.md)\n- [Are you sure?](rm/are_you_sure.md)\n\n\u003ca id=\"ruby\"\u003e\u003c/a\u003e\n### Ruby - an interpreted programming language\n\n- [Use Ruby](ruby/use_ruby.md)\n- [Dump objects attributes](ruby/dump_object_attributes.md)\n- [Use rbenv](ruby/use_rbenv.md)\n- [Use rvm](ruby/use_rvm.md)\n- [Use bundler](ruby/use_bundler.md)\n- [ignore in Git](ruby/ignore_in_git.md)\n- [Division](ruby/division.md)\n- [Split an integer into an array](ruby/split_an_integer_into_an_array.md)\n\n\u003ca id=\"rust\"\u003e\u003c/a\u003e\n### Rust - a compiled programming language\n\n- [Setting Up a Rust Development Environment](rust/setting_up_a_rust_dev_env.md)\n- [What is an empty parens](rust/what_is_an_empty_parens.md)\n- [Get a Cheatsheet](rust/get_a_cheatsheet.md)\n- [Installing Dependencies](rust/installing_dependencies.md)\n- [Learn Rust](rust/learn_rust.md)\n- [Formatting code](rust/formatting_code.md)\n- [Declaring a constant](rust/declaring_a_constant.md)\n\n\u003ca id=\"sed\"\u003e\u003c/a\u003e\n### sed - stream editor\n\n- [Test Command Using echo](sed/test_command_using_echo.md)\n- [Remove empty lines](sed/remove_empty_lines.md)\n- [Remove comments](sed/remove_comments.md)\n- [Chaining actions](sed/chaining_actions.md)\n\n\u003ca id=\"shell\"\u003e\u003c/a\u003e\n### Shell - general shell tips\n\n- [Suppress Coloring via env](shell/suppress_coloring_via_env.md)\n- [Get your shell command explained visually](shell/explain_shell.com.md)\n- [Nifty aliases](shell/nifty_aliases.md)\n- [Testing Using Bats](shell/testing_using_bats.md)\n- [stat](shell/stat.md)\n\n\u003ca id=\"shellcheck\"\u003e\u003c/a\u003e\n### shellcheck - a linter for shell scripts\n\n- [Use shellcheck](shellcheck/use_shellcheck.md)\n- [Ignore shellcheck error](shellcheck/ignore_error.md)\n\n\u003ca id=\"slack\"\u003e\u003c/a\u003e\n### Slack - a collaboration tool\n\n- [Mark all as read](slack/mark_all_as_read.md)\n\n\u003ca id=\"smartcd\"\u003e\u003c/a\u003e\n### smartcd - a tool for running commands when changing directories\n\n- [Install smartcd](smartcd/install_smartcd.md)\n- [Use smartcd with tabs](smartcd/use_with_tabs.md)\n- [Silence smartcd](smartcd/silence_smartcd.md)\n\n\u003ca id=\"sublime-text-3\"\u003e\u003c/a\u003e\n### Sublime Text 3 - see also VSCode\n\n- [Set colour scheme per language](sublimetext3/set_colour_scheme_per_language.md)\n\n\u003ca id=\"subversion\"\u003e\u003c/a\u003e\n### Subversion - do see Git\n\n- [Do something with every repository](subversion/do_something_every_repo.md)\n- [See in what revision a branch was created](subversion/see_in_what_revision_was_a_branch_created.md)\n- [Use Filemerge as diff tool](subversion/use_filemerge_for_diff.md)\n- [Use commit message from file](subversion/use_commit_message_from_file.md)\n\n\u003ca id=\"sql\"\u003e\u003c/a\u003e\n### SQL - Structured Query Language\n\n- [Counting NULL and non-NULL values in a single query](sql/counting_null_and_non_null_values_in_a_single_query.md)\n- [How to group by month in a year](sql/how_to_group_by_month_in_a_year.md)\n- [How to query data where you are unsure of the casing](sql/how_to_query_data_where_you_are_unsure_of_the_casing.md)\n\n\u003ca id=\"sql-developer\"\u003e\u003c/a\u003e\n### SQL Developer - a GUI tool for Oracle\n\n- [Setting UI fontsize](sqldeveloper/setting_ui_fontsize.md)\n- [Setting dateformat](sqldeveloper/setting_dateformat.md)\n- [View Compilation Log](sqldeveloper/view_compilation_log.md)\n- [Creating folders](sqldeveloper/creating_folders.md)\n- [View text instead of Worksheet](sqldeveloper/view_text_instead_of_worksheet.md)\n\n\u003ca id=\"sqlite\"\u003e\u003c/a\u003e\n### SQLite - a lightweight relational database\n\n- [Emulate schemas](sqlite/emulate_schemas.md)\n- [Inserting dates](sqlite/insert_dates.md)\n- [Defaulting to now for date](sqlite/default_now_for_date.md)\n- [VARCHAR is just text](sqlite/varchar_is_just_text.md)\n\n\u003ca id=\"sqlplus\"\u003e\u003c/a\u003e\n### sqlplus - the CLI tool for Oracle\n\n- [Output to a file](sqlplus/outputting_to_a_file.md)\n- [How to pass hostname and port parameters](sqlplus/how_pass_host_and_post_parameters.md)\n\n\u003ca id=\"ssh\"\u003e\u003c/a\u003e\n### SSH - Secure Shell\n\n- [Permissions on SSH folder and files](ssh/permissions_on_ssh_folder_and_files.md)\n- [Hardening SSH server](ssh/hardening_ssh_server.md)\n- [fail2ban](ssh/fail2ban.md)\n\n\u003ca id=\"starship\"\u003e\u003c/a\u003e\n### Starship - nifty prompt and an alternative to Liquid Prompt\n\n- [Use Starship](starship/use_starship.md)\n- [Increase Interval for Slow Commands](starship/increase_interval_for_slow_commands.md)\n\n\u003ca id=\"swagger---see-also-openapi\"\u003e\u003c/a\u003e\n### Swagger - tool for describing RESTful APIs, see also OpenAPI\n\n- [Edit and Validate online](swagger/edit_and_validate.md)\n- [Making PR against a Swagger UI repo](swagger/making_prs_against_a_swagger_ui_repo.md)\n- [Deprecating API Endpoints](swagger/deprecating_api_endpoints.md)\n\n\u003ca id=\"swift\"\u003e\u003c/a\u003e\n### Swift - a compiled programming language from Apple\n\n- [Learn Swift](swift/learn_swift.md)\n\n\u003ca id=\"tar\"\u003e\u003c/a\u003e\n### tar - a tool for archiving files\n\n- [Using tar](tar/using_tar.md)\n\n\u003ca id=\"terminalapp\"\u003e\u003c/a\u003e\n### Terminal.app - do see iTerm.app\n\n- [Opening files in an application from the command line](terminal/opening_files_in_applications_from_the_cli.md)\n\n\u003ca id=\"tldr\"\u003e\u003c/a\u003e\n### tldr - Too Long; Didn't Read, so use tldr\n\n- [use tldr](tldr/use_tldr.md)\n\n\u003ca id=\"tmux\"\u003e\u003c/a\u003e\n### tmux - an alternative to screen\n\n- [Use tmux](tmux/use_tmux.md)\n- [Install tmux](tmux/install_tmux.md)\n- [Standard Layouts](tmux/standard_layouts.md)\n- [Use tmux Resurrect](tmux/use_tmux_resurrect.md)\n- [Use tmux plugin manager](tmux/use_tmux_plugin_manager.md)\n\n\u003ca id=\"tokei\"\u003e\u003c/a\u003e\n### tokei - language statistics - fast\n\n- [use tokei](tokei/use_tokei.md)\n\n\u003ca id=\"ubuntu\"\u003e\u003c/a\u003e\n### Ubuntu - a Linux distribution based on Debian\n\n- [Install updates via command line](ubuntu/install_updates_via_cli.md)\n- [How to enquire version](ubuntu/how_to_enquire_version.md)\n- [Translate release names](ubuntu/translate_release_names.md)\n- [How to add a user to sudoers](ubuntu/how_to_add_sudoers.md)\n- [How to add a user](ubuntu/how_to_add_user.md)\n- [How to check if a package is installed](ubuntu/how_to_check_if_a_package_is_installed.md)\n- [Missing Signed-By in the sources.list](ubuntu/missing_signed-by_in_the_sources.list.md)\n\n\u003ca id=\"ufw\"\u003e\u003c/a\u003e\n### ufw - Uncomplicated Firewall\n\n- [Use ufw](ufw/use_ufw.md)\n- [How to set up ufw](ufw/how_to_set_up_ufw.md)\n- [Enable or disable IPv6](ufw/disable_or_enable_ipv6.md)\n- [Allow HTTPS](ufw/allow_https.md)\n- [Allow HTTP on another port](ufw/allow_ssh_on_another_port.md)\n\n\u003ca id=\"vim\"\u003e\u003c/a\u003e\n### vim - a text editor\n\n- [Use vim-plug](vim/use_vim-plug.md)\n- [Cannot install vim plugin](vim/cannot_install_vim_plugin.md)\n\n\u003ca id=\"visual-studio-code\"\u003e\u003c/a\u003e\n### VSCode / Visual Studio Code\n\n- [Stop vscode from calling home](vscode/stop_vscode_from_calling_home.md)\n- [Integrate vscode with Shell / CLI](vscode/integrate_with_cli.md)\n- [Synchronize Setttings across machines](vscode/sync_settings.md)\n- [Use Markdownlint](vscode/use_markdownlint.md)\n- [Todo Tree Extension](vscode/todo_tree_extension.md)\n- [Issue with integrated terminal on macOS](vscode/issue_with_integrated_terminal_on_macos.md)\n- [Themes](vscode/themes.md)\n- [Use Markdown All in One](vscode/use_markdown_all_in_one.md)\n- [Perl Language Server Extension](vscode/perl-language-server_extension.md)\n- [Search and Replace Empty Lines](vscode/search_and_replace_empty_lines.md)\n\n\u003ca id=\"vmware-fusion\"\u003e\u003c/a\u003e\n### VMware Fusion - a virtualization tool for macOS\n\n- [Install VMware Tools](fusion/install_vmware_tools.md)\n- [Configure Debian 7](fusion/mount_shared_folder.md)\n\n\u003ca id=\"vue\"\u003e\u003c/a\u003e\n### Vue - a JavaScript framework\n\n- [Get Started with Vue](vue/get_started_with_vue.md)\n\n\u003ca id=\"wsl\"\u003e\u003c/a\u003e\n### WSL 1/2 - Windows Subsystem for Linux\n\n- [Configure Git](wsl/configure_git.md)\n- [Developing in Visual Studio Code](wsl/developing_in_vscode.md)\n- [Up and Downgrade WSL](wsl/up_and_downgrade_wsl.md)\n- [bashrc not being sourced](wsl/bashrc_not_being_sourced.md)\n\n\u003ca id=\"wtf-util\"\u003e\u003c/a\u003e\n### wtf util - a tool for the command line for visualising important information\n\n- [Play around with wtf](wtf/play_around_with_wtf.md)\n- [Placing elements](wtf/placing_elements.md)\n\n\u003ca id=\"xml\"\u003e\u003c/a\u003e\n### XML - see also YAML and JSON\n\n- [Avoid entity expansion](xml/avoid_entity_expansion.md)\n- [Fast XML/XSD validation on the command line](xml/fast_xml-xsd_validation_on_cli.md)\n- [Prettify XML on the command line](xml/prettify_xml_on_the_cli.md)\n\n\u003ca id=\"yaml\"\u003e\u003c/a\u003e\n### YAML - see also XML and JSON\n\n- [Learning YAML](yaml/learning_yaml.md)\n- [How to syntax check a YAML file](yaml/howto_syntax_check_a_yaml_file.md)\n\n\u003ca id=\"z\"\u003e\u003c/a\u003e\n### z - for jumping around in the file structures, an alternative to cd\n\n- [Jumping Around Using z](z/jump_around.md)\n\n\u003ca id=\"zoxide\u003e\n### zoxide - an alternative to z\n\n- [Use zoxide](zoxide/use_zoxide.md)\n\n\u003ca id=\"zsh\"\u003e\u003c/a\u003e\n### zsh - another shell than bash\n\n- [Use zsh](zsh/use_zsh.md)\n- [Set Environment from File](zsh/set_environment_from_file.md)\n\n\u003ca id=\"xslt\"\u003e\u003c/a\u003e\n### XSLT\n\n- [Learn XSLT](xslt/learn_xslt.md)\n\n\u003ca id=\"about\"\u003e\u003c/a\u003e\n## About\n\nI have for a long time maintained notes in a public wiki, finding the TIL of\nJosh Branchaud [jbranchaud/til](https://github.com/jbranchaud/til) was an\neye-opener and I immiediately wanted to try it out, so after a few months I have\nfinally set it up.\n\nI plan to migrate my earlier notes, so they are more easily accessible here as\nTIL snippets, this will be done when I have the time, one TIL at a time :-)\n\n\u003ca id=\"additional-til-collections\"\u003e\u003c/a\u003e\n## Additional TIL Collections\n\n- [Today I Learned by Hashrocket](https://til.hashrocket.com)\n- [jwworth/til](https://github.com/jwworth/til)\n- [thoughtbot/til](https://github.com/thoughtbot/til)\n\n\u003ca id=\"license\"\u003e\u003c/a\u003e\n## License\n\n\u0026copy; 2016-2024 jonasbn\n\nThis repository is licensed under the MIT license. See [LICENSE](LICENSE) file\nfor details. Much is lifted from elsewhere and might by copyrighted under other\nlicenses by the respective authors. I will mention this where applicable and I\nwill link to original sources when and if possible.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonasbn%2Ftil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonasbn%2Ftil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonasbn%2Ftil/lists"}