Today I Learned
Table of Contents
- Table of Contents
- Categories
- ack - an alternative to grep
- afplay - play audio files from the commandline on macOS
- ag - also known as the Silversurfer, fast alternative to ack and grep
- awk
- Bash - the Bourne Again Shell
- Bootstrap - web framework for fast prototyping
- Bruno - an alternative to Postman
- C - compiled programming language
- carton - tools for handling Perl distributions and dependencies local to a project
- chezmoi - dot filer manager
- chrome - browser also known as chromium
- clang - project for tools for building C, C++ and Objective-C
- colortail - colorful variation of tail
- CPAN - Perl packages and distributions repository
- cpanm - a fast CPAN module installer
- cpm - alternative to cpanm
- crates - Rust packages
- cron - schedule and repeat jobs
- css - cascading style sheets, used for styling HTML
- C# - .NET based language from Microsoft
- curl - a commandline tool for transferring data with URL syntax
- Dash.app - an alternative browser to the built-in documentation in macOS and other resources
- date - see dates and time on the command line
- Debian - popular Linux distribution
- diff-so-fancy - a diff alternative
- DigitalOcean - a hosting provider, caring about open source
- Docker - containerization
- DockerHub - a repository for Docker images
- Dropbox - a cloud storage provider, integrates well with macOS
- dzil - Dist::Zilla, a Perl distribution builder
- EditorConfig - tool for generic text editor configuration
- entr - run arbitrary commands when files change
- exa/eza - an alternative to the ls command
- fd - a fast alternative to find
- FileMerge.app - a diff tool for macOS
- find - find files and directories on the command line
- Git - version control system
- git-delta - an commandline diff tool, also known as delta
- GitHub - platform for hosting Git repositories
- GitHub Actions - automate your GitHub work and repositories
- GnuPG - PGP tools, GNU variant
- Go - compiled programming language
- grep - see also ag or ack
- Hacking - No Comment
- Homebrew - package manager for macOS (and Linux)
- HTML - HyperText Markup Language
- httpie - an alternative to curl
- irssi - for all your IRC needs
- iTerm.app - an alternative to Terminal.app
- JavaScript - see also Node.js
- Jenkins - a continuous integration server
- Jira - issue tracking and project management
- jq - a lightweight and flexible command-line JSON processor
- JSON - see also XML and YAML
- Kali - a Linux distribution focused on security and penetration testing
- Liquid Prompt - see also Starship
- macOS - see OSX
- Mail.app - the default mail client on macOS
- Markdown - basic markup language, great for documentation
- markdownlint - a tool for linting Markdown
- Mermaid - awesome tool for generating diagrams from text
- Mojolicious - a Perl web framework
- MySQL - a relational database
- Nginx - a webserver, proxy and load-balancer
- NodeJS - server-side JavaScript interpreter
- npm - Node.js package manager
- OpenAPI - a specification for describing RESTful APIs, see also Swagger
- OpenSSL - a toolkit for SSL and TLS
- Oracle - a relational database
- OSX - the operating system for Macs - now known as macOS
- Perl - Swiss Army Knife of programming languages
- Perlbrew - a tool for managing multiple Perl installations
- Perltidy - tidy all your Perl
- Postgresql - a relational database
- Programming - general programming tips
- Probot - a framework for building GitHub Apps
- Prolog - a logic programming language
- Python - an interpreted programming language
- qalc - an easy to use command line calculator
- Regexp - regular expressions
- Renovate - a bot for automating dependency updates
- REST - Representational State Transfer, a popular approach to building APIs
- rm - remove files and directories on the command line
- Ruby - an interpreted programming language
- Rust - a compiled programming language
- sed - stream editor
- Shell - general shell tips
- shellcheck - a linter for shell scripts
- Slack - a collaboration tool
- smartcd - a tool for running commands when changing directories
- Sublime Text 3 - see also VSCode
- Subversion - do see Git
- SQL - Structured Query Language
- SQL Developer - a GUI tool for Oracle
- SQLite - a lightweight relational database
- sqlplus - the CLI tool for Oracle
- SSH - Secure Shell
- Starship - nifty prompt and an alternative to Liquid Prompt
- Swagger - tool for describing RESTful APIs, see also OpenAPI
- Swift - a compiled programming language from Apple
- tar - a tool for archiving files
- Terminal.app - do see iTerm.app
- tldr - Too Long; Didn’t Read, so use tldr
- tmux - an alternative to screen
- tokei - language statistics - fast
- Ubuntu - a Linux distribution based on Debian
- ufw - Uncomplicated Firewall
- vim - a text editor
- VSCode / Visual Studio Code
- VMware Fusion - a virtualization tool for macOS
- Vue - a JavaScript framework
- WSL 1/2 - Windows Subsystem for Linux
- wtf util - a tool for the command line for visualising important information
- XML - see also YAML and JSON
- YAML - see also XML and JSON
- z - for jumping around in the file structures, an alternative to cd
- zoxide - an alternative to z
- zsh - another shell than bash
- XSLT
- About
- Additional TIL Collections
- License
Categories
ack - an alternative to grep
afplay - play audio files from the commandline on macOS
ag - also known as the Silversurfer, fast alternative to ack and grep
awk
Bash - the Bourne Again Shell
- Use bash
- Implement tab completions
- Inputting danish characters
- Repeating an executable continuously
- Slimming history
- Reading arguments from the command line
- Copy a file to multiple directories
- Replace a file in multiple directories
- Create directory for own bash completions
- Edit Complex CLI in Editor
- Use fzf
- Use Colours In Terminal Output
- How to get last return value
- Getting Process-id of a Child Proces
- Grep STDERR
- Use Bashmarks
- Use z
- Write safe shell scripts
- Glob expanding to all files in current directory recursively
Bootstrap - web framework for fast prototyping
Bruno - an alternative to Postman
C - compiled programming language
carton - tools for handling Perl distributions and dependencies local to a project
chezmoi - dot filer manager
chrome - browser also known as chromium
clang - project for tools for building C, C++ and Objective-C
colortail - colorful variation of tail
CPAN - Perl packages and distributions repository
- Use CPAN
- Data::FormValidator
- File::Find
- Test::Pretty
- Parsing Gitignore
- Install DateTime::Astro
- Getopt::Long
cpanm - a fast CPAN module installer
- Use cpanm
- Use cpanm with cpanfile
- Use cpanm with Module::Build
- Use cpanm with CPAN::Mini
- Use cpanm with carton
- Tailing cpanm build log file
cpm - alternative to cpanm
crates - Rust packages
cron - schedule and repeat jobs
css - cascading style sheets, used for styling HTML
C# - .NET based language from Microsoft
curl - a commandline tool for transferring data with URL syntax
- More POST Parameters
- Handling shell sensitive characters in URL
- Pipe output to less
- Use a cheatsheet
- Using curl with Graphql server
- Specify method
- Get statuscode
- Handle gzip
- How to handle location header
- Ignore self signed certificates
Dash.app - an alternative browser to the built-in documentation in macOS and other resources
date - see dates and time on the command line
Debian - popular Linux distribution
- How to enquire version
- Add user to sudoers group
- Resolve conflicting values in Debian package
- Install unauthenticated package
- Translate release names
diff-so-fancy - a diff alternative
DigitalOcean - a hosting provider, caring about open source
Docker - containerization
- Use Docker
- Mount shared folder
- Use shell to inspect filesystem of layer
- How to read files and stdout from a running docker container
- Use ctop
- Define default network addresses used for containers
- Copy a file from your container to the host operating system
- Caching Docker build step
- Show layers of Docker image
- What is the difference between RUN and CMD
- Automatically Clean up after Docker Daily
- Customize your docker ps output
- Use docker-compose-wait
- Silence Warnings from Postgres
- Debugging a b0rken Docker build step
- exec error
- Docker on Windows
DockerHub - a repository for Docker images
Dropbox - a cloud storage provider, integrates well with macOS
dzil - Dist::Zilla, a Perl distribution builder
EditorConfig - tool for generic text editor configuration
entr - run arbitrary commands when files change
exa/eza - an alternative to the ls command
fd - a fast alternative to find
FileMerge.app - a diff tool for macOS
find - find files and directories on the command line
Git - version control system
- Resolve conflicts involving binary files
- Delete local and remote branch
- Set your email for a repository
- Delete local and remote tags
- Create a branch from a tag
- Correct a commit message
- Update a branch from master
- Rename branch
- Get a cheatsheet
- Update fork from original repository
- Tag a specific revision
- Make a branch new master
- List merged branches
- Git Alias to Show Affected Files in Last N Commits
- Output your branches and tags as a tree on the command line
- Compare a single file between branches
- Rollback a repository to a specific commit
- Avoid being prompted for password
- Rename a tag
- Rewrite the last commit message
- Use Git Repository Viewer: grv
- Use tig
- Update submodule
- Squash merge
- Maintain Multiple Git Identities
- Find Out Who Created a Branch
- See a given file at a given commit
- Create a branch from an older commit
- Get Name of Current Branch
- Use pre-commit
- Ignore Git
- Sort git tags
git-delta - an commandline diff tool, also known as delta
GitHub - platform for hosting Git repositories
- Ignore whitespace changes
- Test Markdown rendering before making public
- How to get the email address of a github user
- Use hub
- Use emojis
- GitHub Action Badges
- Use dependabot
- Use renovate bot
- Providing Suggestions in Reviews
- Use CLI
GitHub Actions - automate your GitHub work and repositories
- Use spellcheck
- Use macOS
- Use EditorConfig
- Schedule runs
- Use Dependabot for GitHub Actions
- Use Dependabot for Docker
- Use Dependabot for Ruby
- Use Dependabot for Python
- Detect What Files Have Changed
- Pin Your Action Dependencies
- How do I resolve the SHA checksum for pinning
- Use checkout action
GnuPG - PGP tools, GNU variant
Go - compiled programming language
- Use Go
- Learn Go
- Go Resources
- Reading Documentation
- Reading benchmark results
- Skipping tests
- Colorful test output
- Enriched test output
- How to sleep
- Test Main Function
- Get to know the standard library
- structs
- Running specific tests
- Read from STDIN
- Use gocritic
- Working with local packages
- Panic: Flag redefined
- Multiline strings
grep - see also ag or ack
Hacking - No Comment
Homebrew - package manager for macOS (and Linux)
- Stop brew from calling home
- Cleaning your homebrew cellar
- Installing bash
- Migrate installation
- Remove tap
HTML - HyperText Markup Language
- Add and Remove classes using JavaScript
- Execute JavaScript from a button
- How Can I Get HTML value using JavaScript
httpie - an alternative to curl
irssi - for all your IRC needs
iTerm.app - an alternative to Terminal.app
JavaScript - see also Node.js
- Use JavaScript
- Learn JavaScript
- Use a styleguide
- Beware of eval
- Default Parameters for Functions
- Console.log
- Dynamic properties
- Format Numbers
- SyntaxError: Unexpected token o in JSON at position 1
Jenkins - a continuous integration server
Jira - issue tracking and project management
jq - a lightweight and flexible command-line JSON processor
- Use jq
- Concatenate two fields
- Sort using jq
- Count elements
- Find and Extract object
- Specify Colours
- Generate CSV file
- Convert a number to a string
JSON - see also XML and YAML
Kali - a Linux distribution focused on security and penetration testing
Liquid Prompt - see also Starship
macOS - see OSX
Mail.app - the default mail client on macOS
Markdown - basic markup language, great for documentation
- Use Markdown
- How do I escape a backtick
- How do I escape a numbersign
- How do I escape asterisk and other characters
- Read Markdown in terminal
- Use Markdownlint
markdownlint - a tool for linting Markdown
Mermaid - awesome tool for generating diagrams from text
Mojolicious - a Perl web framework
- Redirecting from one URL to another
- Setting up a new application
- Enable logging
- Mojolicious::Controller respond_to and template parameter
- Enable syntax highlighting for configuration files
- Mojolicious::Plugin::Config
MySQL - a relational database
Nginx - a webserver, proxy and load-balancer
NodeJS - server-side JavaScript interpreter
npm - Node.js package manager
OpenAPI - a specification for describing RESTful APIs, see also Swagger
OpenSSL - a toolkit for SSL and TLS
Oracle - a relational database
- Convert string to date
- ORA-21561: OID generation failed
- Beware of force for creation
- How to see Oracle version
- Executing a function or procedure
- Comments in tnsnames.ora
- See grants for a specific user
- See What a Record Looked Like
OSX - the operating system for Macs - now known as macOS
- Lock screen shortcuts
- Speak when long running job is done
- List available voices for speechsynthesis
- Set hostname permanently
- Access iCloud from the cli
- Install Homebrew
- Debugging Issues with Dynamic Libraries
- Uninstall MacPorts
- Scheduling Timed Jobs
- Enabling at
- Playing Sound from the Command Line
- Keyboard Symbols
- Use JavaScript
- Set Default Browser From the Command Line
- No telnet use netcat
- What ports are listened on
- Reset Bluetooth
- Inspecting dynamic libraries
- Install OpenSSL using MacPorts
- Translate Release Names
- Find timezones
- Remove backgrounds from images
Perl - Swiss Army Knife of programming languages
- Use Perl
- View generated SQL when using DBIx::Class
- Create Test Coverage Report Using Dist::Zilla
- Avoid issues with META.yml with Module::Install
- Install XML::LibXML on MacOS
- Get ExtUtils::MakeMaker to install in local/ like carton
- Mojolicious::Plugin::OpenAPI Tutorial
- Read Input via Pipe
- Find out if a given Perl distribution is included in core
- Find out what your perl minimum version requirement is
- Use cpm
- Format numbers
Perlbrew - a tool for managing multiple Perl installations
- Install perlbrew
- Eliminate compilation warnings on OSX
- Uninstall perlbrew
- Install a new perl and clone modules from an existing installation
- Using perlbrew in Shell scripts
Perltidy - tidy all your Perl
Postgresql - a relational database
Programming - general programming tips
Probot - a framework for building GitHub Apps
Prolog - a logic programming language
Python - an interpreted programming language
- Use Python
- Old-school string formatting
- What is wheel
- How to detect pipe
- strptime: Convert a string representing date and time to an object
- strftime: Convert a DateTime object to a string in a given format
- Zen of Python
qalc - an easy to use command line calculator
Regexp - regular expressions
Renovate - a bot for automating dependency updates
REST - Representational State Transfer, a popular approach to building APIs
rm - remove files and directories on the command line
Ruby - an interpreted programming language
Rust - a compiled programming language
- Setting Up a Rust Development Environment
- What is an empty parens
- Get a Cheatsheet
- Installing Dependencies
- Learn Rust
- Formatting code
- Declaring a constant
sed - stream editor
Shell - general shell tips
- Suppress Coloring via env
- Get your shell command explained visually
- Nifty aliases
- Testing Using Bats
shellcheck - a linter for shell scripts
Slack - a collaboration tool
smartcd - a tool for running commands when changing directories
Sublime Text 3 - see also VSCode
Subversion - do see Git
- Do something with every repository
- See in what revision a branch was created
- Use Filemerge as diff tool
- Use commit message from file
SQL - Structured Query Language
- Counting NULL and non-NULL values in a single query
- How to group by month in a year
- How to query data where you are unsure of the casing
SQL Developer - a GUI tool for Oracle
- Setting UI fontsize
- Setting dateformat
- View Compilation Log
- Creating folders
- View text instead of Worksheet
SQLite - a lightweight relational database
sqlplus - the CLI tool for Oracle
SSH - Secure Shell
Starship - nifty prompt and an alternative to Liquid Prompt
Swagger - tool for describing RESTful APIs, see also OpenAPI
Swift - a compiled programming language from Apple
tar - a tool for archiving files
Terminal.app - do see iTerm.app
tldr - Too Long; Didn’t Read, so use tldr
tmux - an alternative to screen
tokei - language statistics - fast
Ubuntu - a Linux distribution based on Debian
- Install updates via command line
- How to enquire version
- Translate release names
- How to add a user to sudoers
- How to add a user
- How to check if a package is installed
ufw - Uncomplicated Firewall
vim - a text editor
VSCode / Visual Studio Code
- Stop vscode from calling home
- Integrate vscode with Shell / CLI
- Synchronize Setttings across machines
- Use Markdownlint
- Todo Tree Extension
- Issue with integrated terminal on macOS
- Themes
- Use Markdown All in One
- Perl Language Server Extension
VMware Fusion - a virtualization tool for macOS
Vue - a JavaScript framework
WSL 1/2 - Windows Subsystem for Linux
wtf util - a tool for the command line for visualising important information
XML - see also YAML and JSON
YAML - see also XML and JSON
z - for jumping around in the file structures, an alternative to cd
<a id=”zoxide>
zoxide - an alternative to z
zsh - another shell than bash
XSLT
About
I have for a long time maintained notes in a public wiki, finding the TIL of Josh Branchaud jbranchaud/til was an eye-opener and I immiediately wanted to try it out, so after a few months I have finally set it up.
I plan to migrate my earlier notes, so they are more easily accessible here as TIL snippets, this will be done when I have the time, one TIL at a time :-)
Additional TIL Collections
License
© 2016-2024 jonasbn
This repository is licensed under the MIT license. See LICENSE file for details. Much is lifted from elsewhere and might by copyrighted under other licenses by the respective authors. I will mention this where applicable and I will link to original sources when and if possible.