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.
338 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
- Fail
- 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_method
And 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 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
- Open Routes File With vim-rails
- 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 Cursor
- 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.