1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 15:18:01 +00:00
Files
til/README.md
2015-12-24 11:56:15 -06:00

359 lines
19 KiB
Markdown

# TIL
> Today I Learned
A collection of concise write-ups on small things I learn day to day across a
variety of languages and technologies. These are things that don't really
warrant a full blog post. These are mostly things I learn by pairing with
smart people at [Hashrocket](http://hashrocket.com/).
---
### Categories
- [Clojure](#clojure)
- [Devops](#devops)
- [Git](#git)
- [Go](#go)
- [JavaScript](#javascript)
- [Linux](#linux)
- [Mac](#mac)
- [Postgres](#postgres)
- [Rails](#rails)
- [Ruby](#ruby)
- [tmux](#tmux)
- [Vim](#vim)
---
### clojure
- [Aggregation Using merge-with](clojure/aggregation-using-merge-with.md)
- [Argument Requirements For A Function](clojure/argument-requirements-for-a-function.md)
- [Evaluate One Liners With lein-exec](clojure/evaluate-one-liners-with-lein-exec.md)
- [Expanding Macros](clojure/expanding-macros.md)
- [Get The Value Of An Environment Variable](clojure/get-the-value-of-an-environment-variable.md)
- [Mapping With An Index](clojure/mapping-with-an-index.md)
- [Open JavaDocs](clojure/open-javadocs.md)
- [Pretty Print The Last Thing](clojure/pretty-print-the-last-thing.md)
- [Quick Clojure Docs](clojure/quick-clojure-docs.md)
- [Reductions](clojure/reductions.md)
- [Set Max Heap Size](clojure/set-max-heap-size.md)
- [Specify the Directory of a Shell Command](clojure/specify-the-directory-of-a-shell-command.md)
- [Splitting On Whitespace](clojure/splitting-on-whitespace.md)
- [Swap Two Items in a Vector](clojure/swap-two-items-in-a-vector.md)
- [Try A Clojure Project In The REPL](clojure/try-a-clojure-project-in-the-repl.md)
- [Type of Anything](clojure/type-of-anything.md)
- [When Overflow Is Desired](clojure/when-overflow-is-desired.md)
### devops
- [Check The Status of All Services](devops/check-the-status-of-all-services.md)
- [Check The Syntax Of nginx Files](devops/check-the-syntax-of-nginx-files.md)
- [Push Non-master Branch To Heroku](devops/push-non-master-branch-to-heroku.md)
- [Reload The nginx Configuration](devops/reload-the-nginx-configuration.md)
- [Running Out Of inode Space](devops/running-out-of-inode-space.md)
- [Wipe A Heroku Postgres Database](devops/wipe-a-heroku-postgres-database.md)
### git
- [Accessing a Lost Commit](git/accessing-a-lost-commit.md)
- [Amend Author Of Previous Commit](git/amend-author-of-previous-commit.md)
- [Caching Credentials](git/caching-credentials.md)
- [Checkout Old Version Of A File](git/checkout-old-version-of-a-file.md)
- [Checkout Previous Branch](git/checkout-previous-branch.md)
- [Clean Out All Local Branches](git/clean-out-all-local-branches.md)
- [Clean Up Old Remote Tracking References](git/clean-up-old-remote-tracking-references.md)
- [Delete All Untracked Files](git/delete-all-untracked-files.md)
- [Determine The Hash Id For A Blob](git/determine-the-hash-id-for-a-blob.md)
- [Dry Runs in Git](git/dry-runs-in-git.md)
- [Excluding Files Locally](git/excluding-files-locally.md)
- [Grab A Single File From A Stash](git/grab-a-single-file-from-a-stash.md)
- [Grep Over Commit Messages](git/grep-over-commit-messages.md)
- [Ignore Changes To A Tracked File](git/ignore-changes-to-a-tracked-file.md)
- [Intent To Add](git/intent-to-add.md)
- [Last Commit A File Appeared In](git/last-commit-a-file-appeared-in.md)
- [List Filenames Without The Diffs](git/list-filenames-without-the-diffs.md)
- [List Untracked Files](git/list-untracked-files.md)
- [Move The Latest Commit To A New Branch](git/move-the-latest-commit-to-a-new-branch.md)
- [Reference A Commit Via Commit Message Pattern Matching](git/reference-a-commit-via-commit-message-pattern-matching.md)
- [Renaming A Branch](git/renaming-a-branch.md)
- [Resetting A Reset](git/resetting-a-reset.md)
- [Single Key Presses in Interactive Mode](git/single-key-presses-in-interactive-mode.md)
- [Staging Changes Within Vim](git/staging-changes-within-vim.md)
- [Staging Stashes Interactively](git/staging-stashes-interactively.md)
- [Stashing Only Unstaged Changes](git/stashing-only-unstaged-changes.md)
- [Stashing Untracked Files](git/stashing-untracked-files.md)
- [Untrack A File Without Deleting It](git/untrack-a-file-without-deleting-it.md)
- [Verbose Commit Message](git/verbose-commit-message.md)
- [What Is The Current Branch?](git/what-is-the-current-branch.md)
- [Whitespace Warnings](git/whitespace-warnings.md)
### go
- [Not So Random](go/not-so-random.md)
- [Replace The Current Process With An External Command](go/replace-the-current-process-with-an-external-command.md)
### javascript
- [Character Codes from Keyboard Listeners](javascript/character-codes-from-keyboard-listeners.md)
- [Splat Arguments To A Function](javascript/splat-arguments-to-a-function.md)
- [Throttling A Function Call](javascript/throttling-a-function-call.md)
- [Truthiness of Integer Arrays](javascript/truthiness-of-integer-arrays.md)
### linux
- [Check Ubuntu Version](linux/check-ubuntu-version.md)
- [Configure Your Server Timezone](linux/configure-your-server-timezone.md)
- [Upgrading Ubuntu](linux/upgrading-ubuntu.md)
### mac
- [Default Screenshot Location](mac/default-screenshot-location.md)
### postgres
- [A Better Null Display Character](postgres/a-better-null-display-character.md)
- [Adding Composite Uniqueness Constraints](postgres/adding-composite-uniqueness-constraints.md)
- [Aggregate A Column Into An Array](postgres/aggregate-a-column-into-an-array.md)
- [Auto Expanded Display](postgres/auto-expanded-display.md)
- [Checking The Type Of A Value](postgres/checking-the-type-of-a-value.md)
- [Configure The Timezone](postgres/configure-the-timezone.md)
- [Count Records By Type](postgres/count-records-by-type.md)
- [Create A Composite Primary Key](postgres/create-a-composite-primary-key.md)
- [Create hstore From Two Arrays](postgres/create-hstore-from-two-arrays.md)
- [Default Schema](postgres/default-schema.md)
- [Defining Arrays](postgres/defining-arrays.md)
- [Edit Existing Functions](postgres/edit-existing-functions.md)
- [Export Query Results To A CSV](postgres/export-query-results-to-a-csv.md)
- [Extracting Nested JSON Data](postgres/extracting-nested-json-data.md)
- [Find The Data Directory](postgres/find-the-data-directory.md)
- [Fizzbuzz With Common Table Expressions](postgres/fizzbuzz-with-common-table-expressions.md)
- [Generate A UUID](postgres/generate-a-uuid.md)
- [Generate Series Of Numbers](postgres/generate-series-of-numbers.md)
- [Getting A Slice Of An Array](postgres/getting-a-slice-of-an-array.md)
- [Insert Just The Defaults](postgres/insert-just-the-defaults.md)
- [Integers In Postgres](postgres/integers-in-postgres.md)
- [Intervals Of Time By Week](postgres/intervals-of-time-by-week.md)
- [Limit Execution Time Of Statements](postgres/limit-execution-time-of-statements.md)
- [List All Columns Of A Specific Type](postgres/list-all-columns-of-a-specific-type.md)
- [List All Versions Of A Function](postgres/list-all-versions-of-a-function.md)
- [List Database Users](postgres/list-database-users.md)
- [Max Identifier Length Is 63 Bytes](postgres/max-identifier-length-is-63-bytes.md)
- [Restart A Sequence](postgres/restart-a-sequence.md)
- [Send A Command To psql](postgres/send-a-command-to-psql.md)
- [Set Inclusion With hstore](postgres/set-inclusion-with-hstore.md)
- [Special Math Operators](postgres/special-math-operators.md)
- [String Contains Another String](postgres/string-contains-another-string.md)
- [Temporarily Disable Triggers](postgres/temporarily-disable-triggers.md)
- [Temporary Tables](postgres/temporary-tables.md)
- [Timestamp Functions](postgres/timestamp-functions.md)
- [Toggling The Pager In PSQL](postgres/toggling-the-pager-in-psql.md)
- [Truncate All Rows](postgres/truncate-all-rows.md)
- [Truncate Tables With Dependents](postgres/truncate-tables-with-dependents.md)
- [Turning Timing On](postgres/turning-timing-on.md)
- [Types By Category](postgres/types-by-category.md)
- [Use A psqlrc File For Common Settings](postgres/use-a-psqlrc-file-for-common-settings.md)
- [Use Argument Indexes](postgres/use-argument-indexes.md)
- [Using Intervals To Offset Time](postgres/using-intervals-to-offset-time.md)
- [Who Is The Current User](postgres/who-is-the-current-user.md)
- [Word Count for a Column](postgres/word-count-for-a-column.md)
### rails
- [All or Nothing Database Transactions](rails/all-or-nothing-database-transactions.md)
- [Attribute Getter without the Recursion](rails/attribute-getter-without-the-recursion.md)
- [Attribute Was](rails/attribute-was.md)
- [Autosave False On ActiveRecord Associations](rails/autosave-false-on-activerecord-associations.md)
- [Capybara Page Status Code](rails/capybara-page-status-code.md)
- [Code Statistics For An Application](rails/code-statistics-for-an-application.md)
- [Conditional Class Selectors in Haml](rails/conditional-class-selectors-in-haml.md)
- [Creating Records of Has_One Associations](rails/creating-records-of-has-one-associations.md)
- [Hash Slicing](rails/hash-slicing.md)
- [Ignore Poltergeist JavaScript Errors](rails/ignore-poltergeist-javascript-errors.md)
- [Params Includes Submission Button Info](rails/params-includes-submission-button-info.md)
- [Pretend Generations](rails/pretend-generations.md)
- [Retrieve An Object If It Exists](rails/retrieve-an-object-if-it-exists.md)
- [Select A Select By Selector](rails/select-a-select-by-selector.md)
- [Select Value For SQL Counts](rails/select-value-for-sql-counts.md)
- [Show Pending Migrations](rails/show-pending-migrations.md)
### ruby
- [Are They All True?](ruby/are-they-all-true.md)
- [Assoc For Hashes](ruby/assoc-for-hashes.md)
- [Colorful Output With MiniTest](ruby/colorful-output-with-minitest.md)
- [Comparing Class Hierarchy Relationships](ruby/comparing-class-hierarchy-relationships.md)
- [Comparing Arrays In RSpec](ruby/comparing-arrays-in-rspec.md)
- [Construct A Constant From A String](ruby/construct-a-constant-from-a-string.md)
- [Create an Array of Stringed Numbers](ruby/create-an-array-of-stringed-numbers.md)
- [Destructuring Arrays In Blocks](ruby/destructuring-arrays-in-blocks.md)
- [Disassemble Some Codes](ruby/disassemble-some-codes.md)
- [Double Splat To Merge Hashes](ruby/double-splat-to-merge-hashes.md)
- [Editing Code In Pry](ruby/editing-code-in-pry.md)
- [Evaluating One-Off Commands](ruby/evaluating-one-off-commands.md)
- [FactoryGirl Sequences](ruby/factory-girl-sequences.md)
- [Finding The Source of Ruby Methods](ruby/finding-the-source-of-ruby-methods.md)
- [Invoking Rake Tasks Multiple Times](ruby/invoking-rake-tasks-multiple-times.md)
- [Last Raised Exception In The Call Stack](ruby/last-raised-exception-in-the-call-stack.md)
- [Limit Split](ruby/limit-split.md)
- [Listing Local Variables](ruby/listing-local-variables.md)
- [Next And Previous Floats](ruby/next-and-previous-floats.md)
- [Override The Initial Sequence Value](ruby/override-the-initial-sequence-value.md)
- [Parallel Bundle Install](ruby/parallel-bundle-install.md)
- [Passing Arbitrary Methods As Blocks](ruby/passing-arbitrary-methods-as-blocks.md)
- [Passing Arguments To A Rake Task](ruby/passing-arguments-to-a-rake-task.md)
- [Percent Notation](ruby/percent-notation.md)
- [Question Mark Operator](ruby/question-mark-operator.md)
- [Rake Only Lists Tasks With Descriptions](ruby/rake-only-lists-tasks-with-descriptions.md)
- [Replace The Current Process With An External Command](ruby/replace-the-current-process-with-an-external-command.md)
- [Set RVM Default Ruby](ruby/set-rvm-default-ruby.md)
- [Squeeze Out The Extra Space](ruby/squeeze-out-the-extra-space.md)
- [Summing Collections](ruby/summing-collections.md)
- [Uncaught Exceptions In Pry](ruby/uncaught-exceptions-in-pry.md)
- [`undef_method` And The Inheritance Hierarchy](ruby/undef-method-and-the-inheritance-hierarchy.md)
- [Zero Padding](ruby/zero-padding.md)
### tmux
- [Adjusting Window Pane Size](tmux/adjusting-window-pane-size.md)
- [Create A Named tmux Session](tmux/create-a-named-tmux-session.md)
- [Cycle Through Layouts](tmux/cycle-through-layouts.md)
- [Enabling Vi Mode](tmux/enabling-vi-mode.md)
- [Jumping Between Sessions](tmux/jumping-between-sessions.md)
- [List All Key Bindings](tmux/list-all-key-bindings.md)
- [Organizing Windows](tmux/organizing-windows.md)
- [Paging Up And Down](tmux/paging-up-and-down.md)
- [Pane Killer](tmux/pane-killer.md)
- [Reclaiming The Entire Window](tmux/reclaiming-the-entire-window.md)
- [Swap Split Panes](tmux/swap-split-panes.md)
- [tmux in your tmux](tmux/tmux-in-your-tmux.md)
### unix
- [All The Environment Variables](unix/all-the-environment-variables.md)
- [Cat A File With Line Numbers](unix/cat-a-file-with-line-numbers.md)
- [Change Default Shell For A User](unix/change-default-shell-for-a-user.md)
- [Check If A Port Is In Use](unix/check-if-a-port-is-in-use.md)
- [Clear The Screen](unix/clear-the-screen.md)
- [Copying File Contents To System Paste Buffer](unix/copying-file-contents-to-system-paste-buffer.md)
- [Create A File Descriptor with Process Substitution](unix/create-a-file-descriptor-with-process-substitution.md)
- [Do Not Overwrite Existing Files](unix/do-not-overwrite-existing-files.md)
- [File Type Info With File](unix/file-type-info-with-file.md)
- [Find Newer Files](unix/find-newer-files.md)
- [Global Substitution On The Previous Command](unix/global-substitution-on-the-previous-command.md)
- [Hexdump A Compiled File](unix/hexdump-a-compiled-file.md)
- [Kill Everything Running On A Certain Port](unix/kill-everything-running-on-a-certain-port.md)
- [Killing A Frozen SSH Session](unix/killing-a-frozen-ssh-session.md)
- [List All The Say Voices](unix/list-all-the-say-voices.md)
- [List All Users](unix/list-all-users.md)
- [Only Show The Matches](unix/only-show-the-matches.md)
- [Repeat Yourself](unix/repeat-yourself.md)
- [Saying Yes](unix/saying-yes.md)
- [Search History](unix/search-history.md)
- [Search Man Page Descriptions](unix/search-man-page-descriptions.md)
- [Securely Remove Files](unix/securely-remove-files.md)
- [SSH With Port Forwarding](unix/ssh-with-port-forwarding.md)
- [Switch Versions of a Brew Formula](unix/switch-versions-of-a-brew-formula.md)
- [Watch The Difference](unix/watch-the-difference.md)
- [Watch This Run Repeatedly](unix/watch-this-run-repeatedly.md)
- [Where Are The Binaries?](unix/where-are-the-binaries.md)
### vim
- [Absolute And Relative Line Numbers](vim/absolute-and-relative-line-numbers.md)
- [Add A File Without Loading It](vim/add-a-file-without-loading-it.md)
- [Add Custom Dictionary Words](vim/add-custom-dictionary-words.md)
- [Alternate Files With vim-rails](vim/alternate-files-with-vim-rails.md)
- [Amend Commits With Fugitive](vim/amend-commits-with-fugitive.md)
- [Beginning And End Of Previous Change](vim/beginning-and-end-of-previous-change.md)
- [The Black Hole Register](vim/the-black-hole-register.md)
- [Buffer Time Travel](vim/buffer-time-travel.md)
- [Case-Aware Substitution With vim-abolish](vim/case-aware-substitution-with-vim-abolish.md)
- [Case-Insensitive Substitution](vim/case-insensitive-substitution.md)
- [Center The Cursor](vim/center-the-cursor.md)
- [Check Your Current Color Scheme](vim/check-your-current-color-scheme.md)
- [Close the Current Buffer](vim/close-the-current-buffer.md)
- [Coerce The Current Filetype](vim/coerce-the-current-filetype.md)
- [Coercing Casing With vim-abolish](vim/coercing-casing-with-vim-abolish.md)
- [Count the Number of Matches](vim/count-the-number-of-matches.md)
- [Create A New Directory In netrw](vim/create-a-new-directory-in-netrw.md)
- [Create A New File In A New Directory](vim/create-a-new-file-in-a-new-directory.md)
- [Creating Non-Existent Directories](vim/creating-non-existent-directories.md)
- [Delete Every Other Line](vim/delete-every-other-line.md)
- [Delete Lines That Match A Pattern](vim/delete-lines-that-match-a-pattern.md)
- [Deleting Directories Of Files From netrw](vim/deleting-directories-of-files-from-netrw.md)
- [Display Word Count Stats](vim/display-word-count-stats.md)
- [Edges Of The Selection](vim/edges-of-the-selection.md)
- [End Of The Word](vim/end-of-the-word.md)
- [Filter Lines Through An External Program](vim/filter-lines-through-an-external-program.md)
- [Format Long Lines To Text Width](vim/format-long-lines-to-text-width.md)
- [Generate and Edit Rails Migration](vim/generate-and-edit-rails-migration.md)
- [Head of File Name](vim/head-of-file-name.md)
- [Help For Non-Normal Mode Features](vim/help-for-non-normal-mode-features.md)
- [Horizontal to Vertical and Back Again](vim/horizontal-to-vertical-and-back-again.md)
- [Incremental Searching](vim/incremental-searching.md)
- [Increment All The Numbers](vim/increment-all-the-numbers.md)
- [Interactive Buffer List](vim/interactive-buffer-list.md)
- [Joining Lines Together](vim/joining-lines-together.md)
- [Jump To Matching Pair](vim/jump-to-matching-pair.md)
- [Jump To The Next Misspelling](vim/jump-to-the-next-misspelling.md)
- [List All Buffers](vim/list-all-buffers.md)
- [List Of Plugins](vim/list-of-plugins.md)
- [Match The Beginning And End Of Words](vim/match-the-beginning-and-end-of-words.md)
- [Marks Across Vim Sessions](vim/marks-across-vim-sessions.md)
- [Moving To A Specific Line](vim/moving-to-a-specific-line.md)
- [Navigating By Blank Lines](vim/navigating-by-blank-lines.md)
- [NETRW Listing Styles](vim/netrw-listing-styles.md)
- [Next Modified Buffer](vim/next-modified-buffer.md)
- [Open an Unnamed Buffer](vim/open-an-unnamed-buffer.md)
- [Opening a URL](vim/opening-a-url.md)
- [Opening Man Pages In Vim](vim/opening-man-pages-in-vim.md)
- [Preventing Typos with Abbreviations](vim/preventing-typos-with-abbreviations.md)
- [Previous Buffer](vim/previous-buffer.md)
- [Previous Visual Selection](vim/previous-visual-selection.md)
- [Quick File Info](vim/quick-file-info.md)
- [Quick Man Pages](vim/quick-man-pages.md)
- [Quick Quickfix List Navigation](vim/quick-quickfix-list-navigation.md)
- [Re-indenting Your Code](vim/reindenting-your-code.md)
- [Rename Current File](vim/rename-current-file.md)
- [Repeat The Previous Change](vim/repeat-the-previous-change.md)
- [Repeating Characters](vim/repeating-characters.md)
- [Replace A Character](vim/replace-a-character.md)
- [Reverse A Group Of Lines](vim/reverse-a-group-of-lines.md)
- [Scrolling Relative to the Window](vim/scrolling-relative-to-the-window.md)
- [Searching For Hex Digits](vim/searching-for-hex-digits.md)
- [Set End Of Line Markers](vim/set-end-of-line-markers.md)
- [Set Your Color Scheme](vim/set-your-color-scheme.md)
- [Split Different](vim/split-different.md)
- [Splitting For New Files](vim/splitting-for-new-files.md)
- [Swap Occurrences Of Two Words](vim/swap-occurrences-of-two-words.md)
- [Swapping Split Windows](vim/swapping-split-windows.md)
- [Tabs To Spaces](vim/tabs-to-spaces.md)
- [The Vim Info File](vim/the-vim-info-file.md)
- [Unloading A Buffer](vim/unloading-a-buffer.md)
- [Verbose Commits With Fugitive](vim/verbose-commits-with-fugitive.md)
- [View Commit History of a File](vim/view-commit-history-of-a-file.md)
- [Viewing Man Pages with man.vim](vim/viewing-man-pages-with-man-vim.md)
- [Vim Without The Extras](vim/vim-without-the-extras.md)
- [Whole Line Auto-Completion](vim/whole-line-auto-completion.md)
- [Wrap With Some Room](vim/wrap-with-some-room.md)
## About
I shamelessly stole this idea from
[thoughtbot/til](https://github.com/thoughtbot/til).
## Other TIL Collections
- [Today I Learned by Hashrocket](https://til.hashrocket.com)
- [jwworth/til](https://github.com/jwworth/til)
- [thoughtbot/til](https://github.com/thoughtbot/til)
## License
© 2015 Josh Branchaud
This repository is licensed under the MIT license. See `LICENSE` for
details.