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.
333 TILs and counting...
- Aggregation Using merge-with
 - Argument Requirements For A Function
 - Evaluate One Liners With lein-exec
 - Expanding Macros
 - Get The Value Of An Environment Variable
 - Load A File Into The REPL
 - Mapping With An Index
 - Open JavaDocs
 - Pretty Print The Last Thing
 - Quick Clojure Docs
 - Reductions
 - Set Max Heap Size
 - Specify the Directory of a Shell Command
 - Splitting On Whitespace
 - Swap Two Items in a Vector
 - Try A Clojure Project In The REPL
 - Type of Anything
 - When Overflow Is Desired
 
- Aliasing An Ansible Host
 - Check The Status of All Services
 - Check The Syntax Of nginx Files
 - Determine The IP Address Of A Domain
 - Path Of The Packets
 - Push Non-master Branch To Heroku
 - Reload The nginx Configuration
 - Running Out Of inode Space
 - Wipe A Heroku Postgres Database
 
- Accessing a Lost Commit
 - Amend Author Of Previous Commit
 - Caching Credentials
 - Checkout Old Version Of A File
 - Checkout Previous Branch
 - Clean Out All Local Branches
 - Clean Up Old Remote Tracking References
 - Delete All Untracked Files
 - Determine The Hash Id For A Blob
 - Dry Runs in Git
 - Excluding Files Locally
 - Find The Initial Commit
 - Grab A Single File From A Stash
 - Grep Over Commit Messages
 - Ignore Changes To A Tracked File
 - Intent To Add
 - Interactively Unstage Changes
 - Last Commit A File Appeared In
 - List Filenames Without The Diffs
 - List Most Git Commands
 - List Untracked Files
 - Move The Latest Commit To A New Branch
 - Reference A Commit Via Commit Message Pattern Matching
 - Renaming A Branch
 - Resetting A Reset
 - Single Key Presses in Interactive Mode
 - Staging Changes Within Vim
 - Staging Stashes Interactively
 - Stashing Only Unstaged Changes
 - Stashing Untracked Files
 - Untrack A Directory Of Files Without Deleting
 - Untrack A File Without Deleting It
 - Verbose Commit Message
 - What Is The Current Branch?
 - Whitespace Warnings
 
- Character Codes from Keyboard Listeners
 - Create An Array Containing 1 To N
 - Enable ES7 Transforms With react-rails
 - Random Cannot Be Seeded
 - Splat Arguments To A Function
 - Throttling A Function Call
 - Transforming ES6 and JSX With Babel 6
 - Truthiness of Integer Arrays
 
- A Better Null Display Character
 - Adding Composite Uniqueness Constraints
 - Aggregate A Column Into An Array
 - Auto Expanded Display
 - Checking The Type Of A Value
 - Compute Hashes With pgcrypto
 - Configure The Timezone
 - Constructing A Range Of Dates
 - Count Records By Type
 - Create A Composite Primary Key
 - Create hstore From Two Arrays
 - Creating Conditional Constraints
 - Day Of Week By Name For A Date
 - Day Of Week For A Date
 - Default Schema
 - Defining Arrays
 - Edit Existing Functions
 - Escaping A Quote In A String
 - Export Query Results To A CSV
 - Extracting Nested JSON Data
 - Find The Data Directory
 - Fizzbuzz With Common Table Expressions
 - Generate A UUID
 - Generate Series Of Numbers
 - Get The Size Of A Database
 - Get The Size Of A Table
 - Getting A Slice Of An Array
 - Insert Just The Defaults
 - Integers In Postgres
 - Intervals Of Time By Week
 - Is It Null Or Not Null?
 - Limit Execution Time Of Statements
 - List All Columns Of A Specific Type
 - List All Rows In A Table
 - List All Versions Of A Function
 - List Available Schemas
 - List Database Users
 - Max Identifier Length Is 63 Bytes
 - pg Prefix Is Reserved For System Schemas
 - Pretty Print Data Sizes
 - Restart A Sequence
 - Restarting Sequences When Truncating Tables
 - Send A Command To psql
 - Set Inclusion With hstore
 - Set A Seed For The Random Number Generator
 - Sets With The Values Command
 - Sleeping
 - Special Math Operators
 - String Contains Another String
 - Temporarily Disable Triggers
 - Temporary Tables
 - Timestamp Functions
 - Toggling The Pager In PSQL
 - Truncate All Rows
 - Truncate Tables With Dependents
 - Turning Timing On
 - Two Ways To Compute Factorial
 - Types By Category
 - Use A psqlrc File For Common Settings
 - Use Argument Indexes
 - Using Intervals To Offset Time
 - Who Is The Current User
 - Word Count for a Column
 
- All or Nothing Database Transactions
 - Attribute Getter without the Recursion
 - Attribute Was
 - Autosave False On ActiveRecord Associations
 - Capybara Page Status Code
 - Code Statistics For An Application
 - Conditional Class Selectors in Haml
 - Creating Records of Has_One Associations
 - Hash Slicing
 - Ignore Poltergeist JavaScript Errors
 - Migrating Up Down Up
 - Params Includes Submission Button Info
 - Pretend Generations
 - Retrieve An Object If It Exists
 - Select A Select By Selector
 - Select Value For SQL Counts
 - Set Schema Search Path
 - Show Pending Migrations
 - Show Rails Models With Pry
 - Show Rails Routes With Pry
 
- Are They All True?
 - Assoc For Hashes
 - Block Comments
 - Colorful Output With MiniTest
 - Comparing Class Hierarchy Relationships
 - Comparing Arrays In RSpec
 - Construct A Constant From A String
 - Create an Array of Stringed Numbers
 - Defaulting To Frozen String Literals
 - Destructuring Arrays In Blocks
 - Disassemble Some Codes
 - Double Splat To Merge Hashes
 - Editing Code In Pry
 - Evaluating One-Off Commands
 - FactoryGirl Sequences
 - Finding The Source of Ruby Methods
 - Identify Outdated Gems
 - If You Detect None
 - Invoking Rake Tasks Multiple Times
 - Last Raised Exception In The Call Stack
 - Limit Split
 - Listing Local Variables
 - Next And Previous Floats
 - Override The Initial Sequence Value
 - Parallel Bundle Install
 - Pass A Block To Count
 - Passing Arbitrary Methods As Blocks
 - Passing Arguments To A Rake Task
 - Percent Notation
 - Question Mark Operator
 - Rake Only Lists Tasks With Descriptions
 - Replace The Current Process With An External Command
 - Rendering ERB
 - Returning With Sequel
 - Safe Navigation Operator
 - Set RVM Default Ruby
 - Show Public Methods With Pry
 - Squeeze Out The Extra Space
 - Summing Collections
 - Uncaught Exceptions In Pry
 undef_methodAnd The Inheritance Hierarchy- Who Are My Ancestors?
 - Zero Padding
 
- Adjusting Window Pane Size
 - Create A Named tmux Session
 - Cycle Through Layouts
 - Enabling Vi Mode
 - Jumping Between Sessions
 - List All Key Bindings
 - List Sessions
 - Open New Window With A Specific Directory
 - Organizing Windows
 - Paging Up And Down
 - Pane Killer
 - Reclaiming The Entire Window
 - Rename The Current Session
 - Swap Split Panes
 - tmux in your tmux
 
- All The Environment Variables
 - Cat A File With Line Numbers
 - Change Default Shell For A User
 - Check If A Port Is In Use
 - Clear The Screen
 - Copying File Contents To System Paste Buffer
 - Create A File Descriptor with Process Substitution
 - Do Not Overwrite Existing Files
 - File Type Info With File
 - Find Newer Files
 - Global Substitution On The Previous Command
 - Grep For Files Without A Match
 - Grep For Multiple Patterns
 - Hexdump A Compiled File
 - Kill Everything Running On A Certain Port
 - Killing A Frozen SSH Session
 - List All The Say Voices
 - List All Users
 - Only Show The Matches
 - Repeat Yourself
 - Saying Yes
 - Search History
 - Search Man Page Descriptions
 - Securely Remove Files
 - SSH With Port Forwarding
 - Switch Versions of a Brew Formula
 - Watch The Difference
 - Watch This Run Repeatedly
 - Where Are The Binaries?
 
- Absolute And Relative Line Numbers
 - Add A File Without Loading It
 - Add Custom Dictionary Words
 - Alternate Files With vim-rails
 - Amend Commits With Fugitive
 - Backspace Options
 - Beginning And End Of Previous Change
 - The Black Hole Register
 - Breaking The Undo Sequence
 - Buffer Time Travel
 - Build And Install A Go Program
 - Case-Aware Substitution With vim-abolish
 - Case-Insensitive Substitution
 - Center The Cursor
 - Check Your Current Color Scheme
 - Close the Current Buffer
 - Coerce The Current Filetype
 - Coercing Casing With vim-abolish
 - Count the Number of Matches
 - Create A New Directory In netrw
 - Create A New File In A New Directory
 - Creating Non-Existent Directories
 - Delete Every Other Line
 - Delete Lines That Match A Pattern
 - Deleting Directories Of Files From netrw
 - Difference Between :wq and :x
 - Display Word Count Stats
 - Edges Of The Selection
 - End Of The Word
 - Filter Lines Through An External Program
 - Format Long Lines To Text Width
 - Generate and Edit Rails Migration
 - Grepping Through The Vim Help Files
 - Head of File Name
 - Help For Non-Normal Mode Features
 - Highlighting Search Matches
 - Horizontal to Vertical and Back Again
 - Incremental Searching
 - Increment All The Numbers
 - Interactive Buffer List
 - Joining Lines Together
 - Jump To Matching Pair
 - Jump To The Next Misspelling
 - List All Buffers
 - List Of Plugins
 - Match The Beginning And End Of Words
 - Marks Across Vim Sessions
 - Moving To A Specific Line
 - Navigating By Blank Lines
 - NETRW Listing Styles
 - Next Modified Buffer
 - Open an Unnamed Buffer
 - Opening a URL
 - Opening Man Pages In Vim
 - Paste A Register From Insert Mode
 - Preventing Typos with Abbreviations
 - Previous Buffer
 - Previous Visual Selection
 - Quick File Info
 - Quick Man Pages
 - Quick Quickfix List Navigation
 - Re-indenting Your Code
 - Rename Current File
 - Repeat The Previous Change
 - Repeating Characters
 - Replace A Character
 - Reverse A Group Of Lines
 - Running Bundle With vim-bundler
 - Scrolling Relative to the Window
 - Searching For Hex Digits
 - Set End Of Line Markers
 - Set Your Color Scheme
 - Split Different
 - Splitting For New Files
 - Swap Occurrences Of Two Words
 - Swapping Split Windows
 - Tabs To Spaces
 - The Vim Info File
 - Unloading A Buffer
 - Verbose Commits With Fugitive
 - View Commit History of a File
 - Viewing Man Pages with man.vim
 - Vim Without The Extras
 - Whole Line Auto-Completion
 - Wrap With Some Room
 
I shamelessly stole this idea from thoughtbot/til.
© 2015-2016 Josh Branchaud
This repository is licensed under the MIT license. See LICENSE for
details.