jbranchaud/til

đź“ť Today I Learned

Vim Scriptwritingtiltoday-i-learnedlearn-in-public
This is stars and forks stats for /jbranchaud/til repository. As of 25 Apr, 2024 this repository has 11380 stars and 661 forks.

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 things I've picked up by Learning In Public™ and pairing with smart people at Hashrocket. For a steady stream of TILs, sign up for my newsletter. 1341 TILs and counting... Categories Ack Amplify Ansible Chrome Clojure CSS Deno Devops Elixir Gatsby Git GitHub Actions Go GROQ Heroku HTML HTTP Internet JavaScript jq Kitty Linux Mac MongoDB MySQL Neovim Netlify Next.js Phoenix Planetscale pnpm PostgreSQL Prisma Python Rails React React Native React Testing Library ReasonML Remix RSpec Ruby sed Shell Streaming Tailwind CSS tmux TypeScript Unix Vercel Vim VSCode Webpack Workflow XState YAML Zod Ack ack --bar Case-Insensitive Search List Available File Types Amplify Sign Up User With Email And Password Ansible Loop Over A List Of Dictionaries Chrome Access A Value Logged To The Console Chrome Supports Many Unix Keyboard Shortcuts Copy Some Data From The Console Duplicate The Current Tab Easier Access To Network Throttling Controls Keybinding To Focus The Address Bar Pause JavaScript From The Source DevTools Panel Navigate The Browser History With Vimium Pretty Print Tabular Data Reference The Selected Node Selecting DOM Elements Faster Than Ever Simulating Various Connection Speeds Toggle Device Mode Toggle Open The Console Drawer View Network Traffic For New Tabs Clojure Aggregation Using merge-with Argument Requirements For A Function Combinations Of Items From A Sequence Define Something Only Once Evaluate One Liners With lein-exec Expanding Macros Get The Value Of An Environment Variable List Functions For A Namespace 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 CSS Add Fab Icons To Your Site With FontAwesome 5 Animate Smoothly Between Two Background Colors Apply Multiple Box Shadows To Single Element Apply Styles Based On Dark-Mode Preferences Apply Styles To The Last Child Of A Specific Type Change The Orientation Of An Image Circular Icons With A Massive Border Radius Clean Up Repetition With :is() Pseudo-Class Conditional Styling For Unsupported CSS Features Create A Pulsing Background With CSS Animation Define CSS Custom Properties With CSS Variables Define HSL Colors With Alpha Values Display Responsive iframe Maintaining Aspect Ratio Dry Up SCSS With Mixins Give Elements The Same Width With Flexbox Let Pointer Events Pass Through An Element Lighten And Darken With CSS Brightness Filter Lighten And Darken With SCSS Make A Block Of Text Respect New Lines Parameterized SCSS Mixins :root Has Higher Specificity Than html Style A Background With A Linear Gradient Using Maps In SCSS Deno Read In The Contents Of A File Devops Aliasing An Ansible Host Allow Cross-Origin Requests To Include Cookies Allow HTTPS Through Your UFW Firewall Check For Cached Site Assocation File For iOS Check The Status of All Services Check The Syntax Of nginx Files Connect To An RDS PostgreSQL Database Determine The IP Address Of A Domain Path Of The Packets Push Non-master Branch To Heroku Reload The nginx Configuration Resolve The Public IP Of A URL Running Out Of inode Space SSH Into A Docker Container SSL Certificates Can Cover Multiple Domains Wipe A Heroku Postgres Database Elixir All Values For A Key In A Keyword List Append To A Keyword List Assert An Exception Is Raised Binary Representation Of A String Check For A Substring Match Check List Membership Comparing DateTime Structs Compute Intermediate Values In A With Construct Compute md5 Digest Of A String Counting Records With Ecto Create A Date With The Date Sigil Create A List Of Atoms Creating A PID Creating Indexes With Ecto Defining Multiple Clauses In An Anonymous Function Determine The Latest Release Of A Hex Package Do You Have The Time? Do You Have The Time? - Part 2 Documentation Lookup With Vim And Alchemist Dynamically Generating Atoms Execute Raw SQL In An Ecto Migration Expose Internal Representation Include Captures With String.split Inspecting The Process Message Queue List Functions For A Module Listing Files In IEx Match On A Map In A With Construct Passing Around And Using Modules Pattern Matching In Anonymous Functions Pipe Into A Case Statement Quitting IEx Range Into List Using Comprehensions Refer To A Module Within Itself Referencing Values In IEx's History Remove One List From Another Replace Duplicates In A Keyword List Requiring Keys For Structs Reversing A List Reversing A List - Part 2 Root Directory Of A Project Round Floats To Integers Run ExUnit Tests In A Deterministic Order Run The Test At A Specific Line Number Same Functions Should Be Grouped Together Skip A Specific Test String Interpolation With Just About Anything Unique Indexes With Ecto Updating Values In A Map Using When Clauses In A With Construct Virtual Fields With Ecto Schemas When Things Don't Match The With Statements Word Lists For Atoms Gatsby Add JavaScript To Body Of The Document Git Accessing a Lost Commit Add A Range Of Filename To gitignore Amend Author Of Previous Commit Auto-Squash Those Fixup Commits Caching Credentials Change The Start Point Of A Branch Checking Commit Ancestry Checkout Old Version Of A File Checkout Previous Branch Cherry Pick A Range Of Commits Clean Out All Local Branches Clean Out Working Copy With Patched Restore Clean Up Old Remote Tracking References Clone A Repo Just For The Files, Without History Clone A Repo Locally From .git Configure Global gitignore File Configuring The Pager Copy A File From Another Branch Create A New Branch With Git Switch Delete All Untracked Files Determine The Hash Id For A Blob Diffing With Patience Dropping Commits With Git Rebase Dry Runs in Git Exclude A File From A Diff Output Excluding Files Locally Find And Remove Files That Match A Name Find The Date That A File Was Added To The Repo Find The Initial Commit Get The Name Of The Current Branch Get The Short Version Of The Latest Commit Grab A Single File From A Stash Grep For A Pattern On Another Branch Grep Over Commit Messages Ignore Changes To A Tracked File Ignore Files Specific To Your Workflow Include A Message With Your Stashed Changes Include Or Exclude Remaining Patch Changes Include Some Stats In Your Git Log Intent To Add Interactively Unstage Changes Last Commit A File Appeared In List All Files Changed Between Two Branches List Branches That Contain A Commit List Commits On A Branch List Different Commits Between Two Branches List Filenames Without The Diffs List Just The Files Involved In A Commit List Most Git Commands List Untracked Files List Untracked Files For Scripting Move The Latest Commit To A New Branch Pick Specific Changes To Stash Pulling In Changes During An Interactive Rebase Push To A Branch On Another Remote Quicker Commit Fixes With The Fixup Flag Rebase Commits With An Arbitrary Command Reference A Commit Via Commit Message Pattern Matching Rename A Remote Renaming A Branch Resetting A Reset Resolve A Merge Conflict From Stash Pop Review Commits From Before A Certain Date Run A Git Command From Outside The Repo Set A Custom Pager For A Specific Command Set Default Branch Name For New Repos Shorthand To Force Push A Branch Show All Commits For A File Beyond Renaming Show Changes For Files That Match A Pattern Show Changes In The Compose Commit Message View Show File Diffs When Viewing Git Log Show List Of Most Recently Committed Branches Show Only Commits That Touch Specific Lines Show The diffstat Summary Of A Commit Show The Good And The Bad With Git Bisect Show What Is In A Stash Single Key Presses in Interactive Mode Skip A Bad Commit When Bisecting Skip Pre-Commit Hooks Staging Changes Within Vim Staging Stashes Interactively Stash A Single Untracked File Stash Everything Stashing Only Unstaged Changes Stashing Untracked Files Switch To A Recent Branch With FZF Transition A Branch From One Base To Another Turn Off The Output Pager For One Command Two Kinds Of Dotted Range Notation Unstage Changes Wih Git Restore Untrack A Directory Of Files Without Deleting Untrack A File Without Deleting It Update The URL Of A Remote Using Commands With A Relative Date Format Verbose Commit Message Viewing A File On Another Branch What Changed? What Is The Current Branch? Whitespace Warnings GitHub Actions Cache Playwright Dependencies Across Workflows Capture An Output Value For Use In A Later Step Disable A Workflow With The gh CLI Reference An Encrypted Secret In An Action Trigger A Workflow Via An API Call Go Access Go Docs Offline Build For A Specific OS And Architecture Not So Random Replace The Current Process With An External Command Sleep For A Duration Upgrading From An Older Version On Mac GROQ Grab Multiple Values From A Reference Grab Values From An Array Of References Include Attributes When Conditional Check Passes Include Type Of Operation In Webhook Response Heroku Deploy A Review App To A Different Stack Diagnose Problems In A Heroku Postgres Database Set And Show Heroku Env Variables SSH Into Heroku Server Hosting App HTML Adding Alt Text To An Image Determine Which Button Submitted The Form Disable Auto-Completion For A Form Input Prevent Search Engines From Indexing A Page Render Text As Superscript Submit A Form With A Button Outside The Form HTTP What Counts As Cross-Origin With CORS? Internet Add Emoji To GitHub Repository Description Enable Keyboard Shortcuts In Gmail Exclude Whitespace Changes From GitHub Diffs Figure Out Your Public IP Address Focus The URL Bar Get Random Images From Unsplash Search Tweets By Author Show All Pivotal Stories With Blockers JavaScript Accessing Arguments To A Function Basic Date Formatting Without A Library Character Codes from Keyboard Listeners Check Classes On A DOM Element Check If A Number Is Positive Or Negative Check If File Exists Before Reading It Check If Something Is An Array Check The Password Confirmation With Yup Compare The Equality Of Two Date Objects Computed Property Names In ES6 Conditionally Include Pairs In An Object Configure Jest To Run A Test Setup File Create A Cancelable Promise With PCancelable Create An Array Containing 1 To N Create An Object With No Properties Create Bootstrapped Apps With Yarn Create Future And Past Dates From Today Custom Type Checking Error Messages With Yup Default And Named Exports From The Same Module Define A Custom Jest Matcher Destructure With Access To Nested Value And Parent Value; Destructuring The Rest Of An Array Enable ES7 Transforms With react-rails Ensure Shell Can Find Global npm Binaries Easy Date Comparison With DayJS Expand Emojis With The Spread Operator Fill An Input With A Ton Of Text Find The Version Of An Installed Dependency Find Where Yarn Is Installing Binaries for...in Iterates Over Object Properties Format A Decimal To A Fixed Number Of Digits Formatting Values With Units For Display Freeze An Object, Sorta Generate A V4 UUID In The Browser Generate Random Integers Get The Location And Size Of An Element Get The Response Status From An Axios Error Get The Time Components Of A Date Get The Time Zone Of The Client Computer Globally Install A Package With Yarn Globally Install Specific Version Of PNPM Immutable Remove With The Spread Operator Initialize A New JavaScript Project With Yarn Install The Latest Version Of Node With Nvm Interpolate A String Into A Regex ISO-8601 Formatted Dates Are Interpreted As UTC Link A JavaScript Package Locally List Top-Level NPM Dependencies Make The Browser Editable With Design Mode Matching A Computed Property In Function Args Matching Multiple Values In A Switch Statement Mock A Function With Return Values Using Jest New Dates Can Take Out Of Bounds Values Numbers Are Empty Object Initialization With Shorthand Property Names Obtain Undefined Value With The Void Operator Parse A Date From A Timestamp Pre And Post Hooks For Yarn Scripts Purge Null And Undefined Values From Object Random Cannot Be Seeded Reach Into An Object For Nested Data With Get Render An Array Of Elements With React 16 Resolve And Pass Multiple Values From A Then Running ES6 Specs With Mocha Scoping Variables With A Block Statement Sleep For A Bit In Async Code Sorting Arrays Of Objects With Lodash Splat Arguments To A Function Spread Merging Objects Includes Nil Values Spread The Rest With ES6 Start Node Process In Specific Timezone String Interpolation With Template Literals Support Nested Matching In Custom Jest Matchers Tell Jest To Focus On Running Only One Test Tell Node To Treat JS Files As ESM Tell Prettier To Not Format A Statement Test Coverage Stats With Jest Test Timing-Based Code With Jest Fake Timers The Comma Operator Throttling A Function Call Timing Processes Transforming ES6 and JSX With Babel 6 Truthiness of Integer Arrays Turn An HTMLCollection Into An Array Turn Off Console Error Messages In A Test Waiting On Multiple Promises Who Am I: NPM Edition Write A JavaScript Object To A JSON File Yarn Commands Without The Emojis Yup Schemas Are Validated Asynchronously jq Combine An Array Of Objects Into A Single Object Count Each Collection In A JSON Object Count The Number Of Things In A JSON File Extract A List Of Values Find All Objects In An Array Where Key Is Set Find All Objects With A Matching Key Value Pair Get The First Item For Every Top-Level Key Reduce Object To Just Entries Of A Specific Type Turn A List From A Command Into JSON Kitty Set The Title Of A Window Use The Built-In Emoji Picker Linux Check Ubuntu Version Configure Your Server Timezone List The Statuses Of All Upstart Jobs Show Current System Time And Settings Show Used And Available System Memory Upgrading Ubuntu Mac Access All Screen And Video Capture Options Access System Information On OS X Access Unsupported Screen Resolutions With RDM Clean Up Old Homebrew Files Convert An HEIC Image File To JPG Default Screenshot Location Disable Swipe Navigation For A Specific App Display A Message With Alfred Find The Process Using A Specific Port Gesture For Viewing All Windows Of Current App Insert A Non-Breaking Space Character List All The Say Voices Open Finder.app To Specific Directory Quickly Type En Dashes And Em Dashes Require Additional JS Libraries In Postman Resize App Windows With AppleScript Resizing Both Corners Of A Window Run A Hardware Check Run AppleScript Commands Inline In The Terminal Set A Window To Its Default Zoom Level Specify App When Opening From Command Line Use Default Screenshot Shortcuts With CleanShot X View All Windows Of The Current App MongoDB Determine The Database Version Dump A Remote Database Dump And Restore With A Single gzip File Get Size Stats For A Collection List Size Stats For All Collections MySQL Change Existing Column To Not Null Default Username And Password For New Instance Display Output In A Vertical Format Doing Date Math Dump A Database To A File Ignore Duplicates When Inserting Records List Databases And Tables Show Create Statement For A Table Show Tables That Match A Pattern Show Indexes For A Table Neovim Allow Neovim To Copy/Paste With System Clipboard Create User Command To Open Init Config Run A Lua Statement From The Command Prompt Set Up Vim-Plug With Neovim Netlify Override The Default Yarn Version Next.js Create Files And Directories For Dynamic Routes Define URL Redirects In The Next Config Make Environment Variable Publicly Available Push A Route With A URL Object Remove A Query Param From The URL Ship Public Assets With A Next.js App Phoenix Bypass Template Rendering Check The Installed Version Generate New App Without Brunch Render A Template To A String Serve Static Assets From Custom Directory Specifying The Digest Directory Specifying The Server Port Planetscale Seed Production Data Into Another Branch pnpm Execute A Command From The Workspace Root Install Command Runs For Entire Workspace List The Installed Version Of A Specific Package PostgreSQL A Better Null Display Character Add Foreign Key Constraint Without A Full Lock Add ON DELETE CASCADE To Foreign Key Constraint Adding Composite Uniqueness Constraints Aggregate A Column Into An Array Assumed Radius Of The Earth Auto Expanded Display Between Symmetric Capitalize All The Words Change The Current Directory For psql Change The Owner Of A Sequence Check If The Local Server Is Running Check If User Role Exists For Database Check Table For Any Oprhaned Records Checking Inequality Checking The Type Of A Value Clear The Screen In psql Clear The Screen In psql (2) Compute Hashes With pgcrypto Compute The Levenshtein Distance Of Two Strings Compute The md5 Hash Of A String Configure The Timezone Constructing A Range Of Dates Convert A String To A Timestamp Count How Many Records There Are Of Each Type Count Records By Type Count The Number Of Trues In An Aggregate Query Create A Composite Primary Key Create A Table From The Structure Of Another Create An Index Without Locking The Table Create Database Uses Template1 Create hstore From Two Arrays Create Table Adds A Data Type Creating Conditional Constraints Creating Custom Types Day Of Week By Name For A Date Day Of Week For A Date Default Schema Defining Arrays Determine Types Of JSONB Records Determining The Age Of Things Difference Between Explain And Explain Analyze Different Ways To Define An Interval Dump All Databases To A SQL File Dump And Restore A Database Dump The SQL Needed To Recreate A Table Duplicate A Local Database Edit Existing Functions Enable Logging Of Database Activity Escaping A Quote In A String Escaping String Literals With Dollar Quoting Export Query Results To A CSV Extracting Nested JSON Data Find Duplicate Records In Table Without Unique Id Find Records That Contain Duplicate Values Find Records That Have Multiple Associated Records Find The Data Directory Find The Location Of Postgres Config Files Fizzbuzz With Common Table Expressions Force SSL When Making A psql Connection Generate A UUID Generate Random UUIDs Without An Extension Generate Series Of Numbers Generating UUIDs With pgcrypto Get A Quick Approximate Count Of A Table Get The Size On Disk of An Index Get The Size Of A Database Get The Size Of A Table Get The Size Of An Index Getting A Slice Of An Array Group By The Result Of A Function Call Idempotent Inserts Include All Queries In The Log File Include Multiple Tables In A pg_dump Insert A Bunch Of Records With Generate Series Insert Just The Defaults Inspect Progress Of Long-Running Create Index Install Postgres With uuid-ossp Using asdf Integers In Postgres Intervals Of Time By Week Is It Null Or Not Null? Label Dollar-Quoted Strings With A Tag Limit Execution Time Of Statements List All Columns Of A Specific Type List All Rows In A Table List All The Databases List All Versions Of A Function List Available Schemas List Connections To A Database List Databases Available For Connecting List Database Objects With Disk Usage List Database Users List Various Kinds Of Objects Lower Is Faster Than ilike Max Identifier Length Is 63 Bytes Open Heroku Database In Postico From Terminal pg Prefix Is Reserved For System Schemas Prepare, Execute, And Deallocate Statements Pretty Print Data Sizes Pretty Printing JSONB Rows Prevent A Query From Running Too Long Print The Query Buffer In psql Remove Not Null Constraint From A Column Renaming A Sequence Renaming A Table Restart A Sequence Restarting Sequences When Truncating Tables Salt And Hash A Password With pgcrypto Send A Command To psql Set Inclusion With hstore Set A Seed For The Random Number Generator Set A Statement Timeout Threshold For A Session Sets With The Values Command Shorthand Absolute Value Operator Show All Versions Of An Operator Show The Hidden Queries Behind Backslash Commands Sleeping Special Math Operators Storing Emails With citext String Contains Another String Switch Non-Castable Column Type With Using Clause Switch The Running Postgres Server Version Temporarily Disable Triggers Temporary Tables Terminating A Connection The nullif Function Timestamp Functions Toggling The Pager In PSQL Track psql History Separately Per Database Truncate All Rows Truncate Tables With Dependents Turning Timing On Two Ways To Compute Factorial Two Ways To Escape A Quote In A String Types By Category Union All Rows Including Duplicates Use A psqlrc File For Common Settings Use A Trigger To Mirror Inserts To Another Table Use Argument Indexes Use Not Valid To Immediately Enforce A Constraint Use Rename To Hot Swap Two Tables Use Variables In An Anonymous Function Using Expressions In Indexes Using Intervals To Offset Time Who Is The Current User Word Count for a Column Write A Query Result To File Prisma Apply Separate Formatting With A Blank Line Batch Insert Records With createMany Execute A Raw SQL Query Grab A Limited Set Of Records Open Connections To Multiple Databases Specify Alternate Location For Prisma Schema Python Access Instance Variables Create A Dummy DataFrame In Pandas Test A Function With Pytest Rails Add A Check Constraint To A Table Add A Foreign Key Reference To A Table Add A Reference Column With An Index Add ActiveRecord Error Not Tied To Any Attribute Add React With Webpacker To A New Rails App Add timestamptz Columns With The Migration DSL Access Secrets In A Rails 5.2 App ActiveRecord Query For This Or That Advance The Date Allow Associations To Be Optional Allow List Params Anywhere With Strong Params All or Nothing Database Transactions Alphabetize Schema Columns To Keep Them Consistent Assert Two Arrays Have The Same Items With RSpec Attach A File With Capybara Attribute Getter without the Recursion Attribute Was Autosave False On ActiveRecord Associations Bind Parameters To ActiveRecord SQL Query Build A Hash Of Model Attributes Capture Development Emails With Mailhog Capybara Page Status Code Cast Common Boolean-Like Values To Booleans Change The Nullability Of A Column Change The Time Zone Offset Of A DateTime Object Check If ActiveRecord Update Fails Check If Any Records Have A Null Value Check Specific Attributes On ActiveRecord Array Code Statistics For An Application Columns With Default Values Are Nil On Create Comparing DateTimes Down To Second Precision Conditional Class Selectors in Haml Convert A Symbol To A Constant Count The Number Of Records By Attribute Create A Custom Named References Column Create A Join Table With The Migration DSL Creating Records of Has_One Associations Custom Validation Message Customize Paths And Helpers For Devise Routes Customize The Path Of A Resource Route Delete Paranoid Records Demodulize A Class Name Different Ways To Add A Foreign Key Reference Disambiguate Where In A Joined Relation Ensure A Rake Task Cannot Write Data Ensure Migrations Use The Latest Schema Ensure Record Saved With after_commit Callback Find Or Create A Record With FactoryBot Find Records With Multiple Associated Records Force All Users To Sign Out Generating And Executing SQL Get A Quick Approximate Count Of A Large Table Get ActiveRecord Attribute Directly From Database Get An Array Of Values From The Database Get An Empty ActiveRecord Relation Get Help With A Rails App Update Get The Column Names For A Model Get The Current Time Grab A Random Record From The Database Handle Named Arguments In A Rake Task Hash Slicing Ignore Poltergeist JavaScript Errors Include Devise Helpers In Your Controller Tests Inspect Previous Changes To ActiveRecord Object Link To The Current Page With Query Params List All Installable Rails Versions List The Enqueued Jobs Load A File When Starting Rails Console Load Records In Batches With find_each Log SQL Queries Executed By ActiveRecord Mark A Migration As Irreversible Make A String Attribute Easy To Inquire About Make ActionMailer Synchronous In Test Make Remove Column Migration Reversible Manually Run A Migration From Rails Console Mark For Destruction Mask An ActiveRecord Attribute Merge A Scope Into An ActiveRecord Query Migrating Up Down Up Mock Rails Environment With An Inquiry Instance Order Matters For rescue_from Blocks Params Includes Submission Button Info Params Is A Hash With Indifferent Access Parse Query Params From A URL Parse Request Params In Rack::Attack Block Perform SQL Explain With ActiveRecord Polymorphic Path Helpers Pretend Generations Prevent Writes With A Sandboxed Rails Console Query A Single Value From The Database Read In Environment-Specific Config Values Read-Only Models Remove A Database Column From A Table Remove The Default Value On A Column Render An Alternative ActionMailer Template Render The Response Body In Controller Specs Replace An Index With A Unique Index Rescue From Rescue From With A Separate Method Respond With JSON Regardless of Content Type Retrieve An Object If It Exists Rollback A Specific Migration Out Of Order Rounding Numbers With Precision Run A Rake Task Programmatically Run Some Code Whenever Rails Console Starts Schedule Sidekiq Jobs Out Into The Future Secure Passwords With Rails And Bcrypt Select A Select By Selector Select Value For SQL Counts Serialize With fast_jsonapi In A Rails App Set A Timestamp Field To The Current Time Set default_url_options For Entire Application Set Schema Search Path Set Statement Timeout For All Postgres Connections Set The Default Development Port Show Pending Migrations Show Rails Models With Pry Show Rails Routes With Pry Skip Validations When Creating A Record Specify New Attributes For #find_or_create_by Temporarily Disable strong_params Test For A Subset Of Attributes On A Model Test If An Instance Variable Was Assigned Test If deliver_later Is Called For A Mailer Test Out URL And Path Helpers In The Console Truncate Almost All Tables Update Column Versus Update Attribute Upgrading Your Manifest For Sprocket's 4 Use IRB And Ruby Flags With Rails Console Verify And Read A Signed Cookie Value Where Am I In The Partial Iteration? Why Redirect And Return In Controllers Wipe Out All Precompiled Assets Write Reversible Migration To Set Default Write Safer Where Clauses With Placeholders React A Component Is Just A Bag Of Data Access The Latest Lifecycle Methods In An Old App Accessing Env Vars In create-react-app Accessing Location Within @reach/router Allow md As An Extension With gatsby-mdx Alter The Display Name Of A Component Building A React App In The Browser Check The Type Of A Child Component Conditionally Including Event Handler Functions Create A Snowpack-Bundled React App Create Dynamically Named Custom React Components create-react-app Comes With Lodash create-react-app Has A Default Test Setup File CSS !important Is Not Supported By Inline Styles Debug Jest Tests In create-react-app Defining State In A Simple Class Component Destructure Variables As Props To A Component Details Tags Are A Controllable Component Dispatch Anywhere With Redux Dynamically Add Props To A Child Component Dynamically Create HTML Elements Enforce Specific Values With PropTypes Focus An Input With useRef Hook Force A Component To Only Have One Child Forcing A Child Remount With The Key Prop Formik Connected Components Formik's Validation Schema As A Function Inactive And Active Component Styles With Radium Inline Style Attributes Should Be Camel Cased Manage State In A Functional Component Mapping Over One Or Many Children Mock A Function That A Component Imports Navigate With State Via @reach/router Pairing A Callback With A useState Hook Pass A Function To A useState Updater Passing Props Down To React-Router Route Prevent reach/router Redirect Error Screen In Dev Proxy To An API Server In Development With CRA Quickly Search For A Component With React DevTools @reach/router Renders To A Div Read Only Input Elements Rendering Multiple Nodes With Fragments Set The Type For A useState Hook Specifying Dependencies Of A useEffect Hook Spelunking Through Components With Enzyme's Dive Sync Your react-router State With Redux Test Files In create-react-app Test That Element Does Not Render In The Component Trigger Effect Only When The Component Mounts Update Formik Initial Values When Props Change Upgrading To The Latest React In CodeSandbox Use A Ref To Autofocus An Input Use React 16 With Gatsby Use withRouter To Pass Down React-Router History Visually Select A React Element For Inspection Who Is Your Favorite Child? Wrap The Root Of A Gatsby App In A Component React Native Avoid The Notch With SafeAreaView React Testing Library Check That A Component Renders As Null findBy* Queries Have Async Built In Pretty Print Some DOM To Debug A Test Test A Component That Uses React Portals ReasonML Break Out Of A While Loop Compile Reason To Native With Dune Compile Reason With An OCaml Package Using Dune Create A Map Of Strings Create A Stream From An Array Creating A 2D Array Data Structures With Self-Referential Types Defining Variants With Constructor Arguments Dynamically Create A Printf String Format Exhaustive Pattern Matching Of List Variants Format The Current File Within Vim Generate A Native ReasonML Project With Pesy Generate Starter Reason Projects Helping The Compiler Help Us With Variants Inline Component Styles With Reason React Is This A Directory Or A File? Making Things Mutable Modifying A String With blit_string Multi-Argument Functions As Syntactic Sugar Pattern Match On Exceptions Quickly Bootstrap A React App Using Reason Seeding And Generating Random Integers Stream A File Line By Line String Interpolation With Integers And Sprintf String Interpolation With Quoted Strings Trying Out ReasonML In CodeSandbox Two Ways To Find An Item In A List Using Optional Labeled Function Arguments Wrapping A Component For Use In JavaScript Remix Get Query Params From The Request URL Markdown And MDX Files Are Rendered To Routes Relative And Absolute Paths In Links Run The Development Server From Another Port Set The Title Of A Page RSpec Check Specific Arguments To Received Method Find Minimal Set Of Tests Causing A Flicker Format Test Results As A JSON File Run Tests With Documentation Formatting Use Specific Cache Store In A Single Test Ruby A Basic Case Statement A Shorthand For Rerunning Failed Tests With RSpec Add Comments To Regex With Free-Spacing Add Linux As A Bundler Platform Are They All True? Assert About An Object's Attributes With RSpec Assoc For Hashes Block Comments Build HTTP And HTTPS URLs Chaining Multiple RSpec Change Matchers Check For Any Overlaps In List Of Ranges Check If A URL Resolves To 200 Check If An Object Includes A Module Check Return Status Of Running A Shell Command Click On Text With Capybara Colorful Output With MiniTest Comparing Class Hierarchy Relationships Comparing Arrays In RSpec Construct A Constant From A String Convert A Unix Epoch Timestamp To A Time Object Create an Array of Stringed Numbers Create a CSV::Table Object Create A Hash From An Array Of Arrays Create Listing Of All Middleman Pages Create Named Structs With Struct.new Create Thumbnail Image For A PDF Defaulting To Frozen String Literals Define A Custom RSpec Matcher Define A Method On A Struct Destructure The First Item From An Array Destructuring Arrays In Blocks Disassemble Some Codes Double Splat To Merge Hashes Edit Previous Parts Of The Pry Buffer History Editing Code In Pry Encode A String As URL-Safe Base64 Enumerate A Pairing Of Every Two Sequential Items Evaluating One-Off Commands Exclude Values From An Array Exit A Process With An Error Message Expect A Method To Be Called And Actually Call It Extract A Column Of Data From A CSV File FactoryGirl Sequences Fail Fetch Warns About Superseding Block Argument Find The Min And Max With A Single Call Finding The Source of Ruby Methods Generate A Signed JWT Token Generate Ruby Version And Gemset Files With RVM Get Info About Your RubyGems Environment Get The Output Of Running A System Program Identify Outdated Gems If You Detect None Iterate With An Offset Index Include Extra Context In A Honeybadger Notify Ins And Outs Of Pry Invoking Rake Tasks Multiple Times IRB Has Built-In Benchmarking With Ruby 3 Jump Out Of A Nested Context With Throw/Catch Last Raised Exception In The Call Stack Limit Split List The Running Ruby Version Listing Local Variables Make An Executable Ruby Script Map With Index Over An Array Mock Method Chain Calls With RSpec Mocking Requests With Partial URIs Using Regex Named Regex Captures Are Assigned To Variables Navigate Back In The Browser With Capybara Next And Previous Floats Or Operator Precedence Override The Initial Sequence Value Parallel Bundle Install Parse JSON Into An OpenStruct Parsing A CSV With Quotes In The Data Pass A Block To Count Passing Arbitrary Methods As Blocks Passing Arguments To A Rake Task Pattern Match Values From A Hash Percent Notation Precedence Of Logical Operators Question Mark Operator Rake Only Lists Tasks With Descriptions Read The First Line From A File Rendering ERB Replace The Current Process With An External Command Require Entire Gemfile In Pry Session Rerun Only Failures With RSpec Retry A Block After An Exception Return The Thing Being Printed Returning With Sequel rexml Is A Bundled Gem As Of Ruby 3.0.0 Run An Older Version Of Bundler Running A Single MiniTest Example Safe Navigation Operator Scripting With RVM Scroll To Top Of Page With Capybara Set RVM Default Ruby Shift The Month On A Date Object Show Public Methods With Pry Silence The Output Of A Ruby Statement In Pry Single And Double Quoted String Notation Skip Specific CVEs When Auditing Your Bundle Specify Dependencies For A Rake Task Split A Float Into Its Integer And Decimal Squeeze Out The Extra Space String Interpolation With Instance Variables Summing Collections Triple Equals: The Case Equality Operator Turn Key And Value Arrays Into A Hash Turning Any Class Into An Enumerator Turning Things Into Hashes Uncaught Exceptions In Pry undef_method And The Inheritance Hierarchy Uninstall Specific Version Of A Ruby Gem Unpacking Strings Into Binary Up And Down With Integers Update The Gemfile Bundled With Version Use A Case Statement As A Cond Statement Use dotenv In A Non-Rails Project Use Tap For Better Test Data Setup Using BCrypt To Create And Check Hashed Passwords What To Do When You Don't Rescue Who Are My Ancestors? Wrap Things In An Array, Even Hashes Zero Padding sed Apply Multiple Substitutions To The Input Equivalence Classes Of Repetition MetaChars Extract Value From Command Output With Sed Grab All The Method Names Defined In A Ruby File Grab The First Line Of A File OSX sed Does Regex A Bit Different Output Only Lines Involved In A Substitution Reference A Capture In The Regex Use An Alternative Delimiter In A Substitution Shell Check If The First Argument Is Given Format And Print The Current Date And Time Streaming Monitor An Audio Input Device In OBS Tailwind CSS Base Styles For Text Link Specify Paths For Purging Unused CSS Use Tailwind Typography Prose In Dark Mode tmux Access Past Copy Buffer History Adjusting Window Pane Size Break Current Pane Out To Separate Window Change Base Directory Of Existing Session Change Base Directory Without Detaching Change The Default Prefix Key Create A Named tmux Session Create A New Session In A New Server Cycle Through Layouts Display Titles For Each Pane In A Window Enabling Vi Mode Get Mouse Copy/Paste Working In Kitty Hiding The Status Bar Jumping Between Sessions Kill All Your tmux Sessions Kill Other Connections To A Session Kill The Current Session 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 Remove The Delay On The Escape Key Rename The Current Session Reset An Option Back To Its Default Value Set Environment Variables When Creating Session Set Session Specific Environment Variables Show The Current Value For An Option Swap Split Panes Switch To A Specific Session And Window tmux in your tmux Toggle Between Two Common Sessions TypeScript Add Generic Typing To An Anonymous Function Add Types To An Object Destructuring Compiler Checks For Unused Params And Variables Create A Non-Empty Array Type Create A Union Type From An Array Create Union Type From Constants Extract Object Type Keys Into A Union Type Extract Object Type Values Into A Union Type Generate An Initial tsconfig File Generate Inferred Type From Zod Schema Get The Return Type Of An Async Function Interfaces With The Same Name Are Merged Narrow The Type Of An Array To Its Values Re-Export An Imported Type Type Narrowing With Const VS Let Strings Type Narrowing With Similarly Shaped Objects Type Promise Results With The Awaited Type Use An Array Check For Type Narrowing Zero-Config Environments For Trying Out Types Unix All The Environment Variables Cat A File With Line Numbers Cat Files With Color Using Bat Change Default Shell For A User Change To That New Directory Check If A Port Is In Use Check If Command Is Executable Before Using Check SSH Key Fingerprints Of Known Hosts Check The Current Working Directory Check The Installed OpenSSL Version Clear The Screen Command Line Length Limitations Compare Two Variables In A Bash Script Configure cd To Behave Like pushd In Zsh Copying File Contents To System Paste Buffer Copying Nested Directories With Ditto Count The Lines In A CSV Where A Column Is Empty Count The Number Of Matches In A Grep Count The Number Of ripgrep Pattern Matches Create A File Descriptor with Process Substitution Create A Sequence Of Values With A Step Curl With Cookies Curling For Headers Curling With Basic Auth Credentials Different Ways To Generate A v4 UUID Display All The Terminal Colors Display Free Disk Space Display The Contents Of A Directory As A Tree Do A Dry Run Of An rsync Do Not Overwrite Existing Files Enable Multi-Select Of Results With fzf Exclude A Command From The ZSH History File Exclude A Directory With Find Exclude Certain Files From An rsync Run Figure Out The Week Of The Year From The Terminal File Type Info With File Find All Files Matching A Name With fd Find All Files With A Specific Extension With fd Find A File Installed By Brew Find Duplicate Lines In A File Find Files With fd Find Newer Files Find Occurrences Of Multiple Values With Ripgrep Fix Unlinked Node Binaries With asdf Forward Multiple Ports Over SSH Generate A SAML Key And Certificate Pair Get Matching Filenames As Output From Grep Get The Unix Timestamp Global Substitution On The Previous Command Globbing For All Directories In Zsh Globbing For Filenames In Zsh Grep For Files Without A Match Grep For Files With Multiple Matches Grep For Multiple Patterns Hexdump A Compiled File Ignore A Directory During ripgrep Search Ignore The Alias When Running A Command Interactively Browse Available Node Versions Jump To The Ends Of Your Shell History Kill Everything Running On A Certain Port Killing A Frozen SSH Session Last Argument Of The Last Command Less With Style List All The Enabled ZSH Options List All Users List Files Ordered By Modification Date List Names Of Files With Matches List Of Sessions To A Machine List Parent pid With ps List Stats For A File List The Available JDKs List The Stack Of Remembered Directories Load Env Vars In Bash Script Look Through All Files That Have Been Git Stashed Map A Domain To localhost Negative Look-Ahead Search With ripgrep Occupy A Local Port With Netcat Only Show The Matches Open The Current Command In An Editor Output The Last N Bytes Of A Large File Partial String Matching In Bash Scripts PID Of The Current Shell Print A Range Of Lines For A File With Bat Print Milliseconds In Human-Readable Format Print Out Files In Reverse Print The Current Date In Human-Readable Format Produce A Lowercase V4 UUID Provide A Fallback Value For Unset Parameter Remove A Directory Called -p Repeat Yourself Replace Pattern Across Many Files In A Project Run A Command Repeatedly Several Times Run A cURL Command Without The Progress Meter Safely Edit The Sudoers File With Vim Saying Yes Search Files Specific To A Language Search History Search Man Page Descriptions Securely Remove Files Set The asdf Package Version For A Single Shell Show A File Preview When Searching With FZF Show Disk Usage For The Current Directory Show The Size Of Everything In A Directory Skip Paging If Output Fits On Screen With Less SSH Escape Sequences SSH With Port Forwarding Specify The Language For A File With Bat Sort In Numerical Order Switch Versions of a Brew Formula Touch Access And Modify Times Individually Undo Some Command Line Editing Update Package Versions Known By asdf Plugin Use fzf To Change Directories Use Regex Pattern Matching With Grep View A Web Page In The Terminal Watch The Difference Watch This Run Repeatedly Where Are The Binaries? xargs Default Command Is echo xargs Ignores Alias Substitution By Default Vercel Add Web Server Layer Redirects Deploy An App Without Pushing An Empty Commit Naming Of The Vercel Config File Pin Specific pnpm Version For Builds Share Development Environment Variables Via CLI Vim Aborting Git Commits And Rebases Absolute And Relative Line Numbers Add A File Without Loading It Add Custom Dictionary Words All The Ways To Write And Quit In Vim Almost The End Of The Line Alternate Files With vim-rails Always Keep The Gutter Open Amend Commits With Fugitive Backspace Options Beginning And End Of Previous Change The Black Hole Register Blank Lines Above And Below 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 For An Executable Check Your Current Color Scheme Clear Out The Jump List Close All Other Splits Close All Other Windows Close the Current Buffer Coerce The Current Filetype Coercing Casing With vim-abolish Configure FZF To Use fd For File Finding Count the Number of Matches Create A New Directory In netrw Create A New File In A New Directory Creating Non-Existent Directories Default netrw To Tree Liststyle Delete Every Other Line Delete Lines That Match A Pattern Delete To The End Of The Line Deleting Buffers In BufExplorer Deleting Directories Of Files From netrw Detect If You Are On A Mac Difference Between :wq and :x Display Word Count Stats Edges Of The Selection Edit A File At A Specific Line Number Edit A File Starting On The Last Line End Of The Word Escaping Terminal-Mode In An Nvim Terminal Filter Lines Through An External Program Find The Nth Character Position In A File Fix The Spelling Of A Word Fold A Visual Selection And Expand It Back For When That Escape Key Is Hard To Reach Format Long Lines To Text Width From Ruby Variables To JavaScript Variables Generate and Edit Rails Migration Get The pid Of The Session Go Back To The Previous Window Go To File With Line Number 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 Increment All The Numbers Incremental Searching Interact With The Alternate File Interactive Buffer List Joining Lines Together Jump Back To The Latest Jump Position Jump Between And Stage Git Hunks With Fugitive Jump To Matching Pair Jump To The Next Misspelling List All Buffers List autocmds Configured For The Current Buffer List Of Plugins Load A Directory Of Files Into The Buffer List Make Directories For The Current File Marks Across Vim Sessions Match The Beginning And End Of Words Moving To A Specific Line Navigate To The Nth Column On A Line Navigating By Blank Lines NETRW Listing Styles Next Modified Buffer Normal Node Binding To Just Quit Open A Tag In A Split Window Open an Unnamed Buffer Open FZF Result In A Split Open Routes File With vim-rails Open The Directory Of The Current File Open The Fugitive Git Summary Window Open The Gemfile Open The Latest Rails Migration Open The Selected Lines In GitHub With Gbrowse Open Vim To A Tag Definition Opening a URL Opening Man Pages In Vim Paste A Register From Insert Mode Preventing Typos with Abbreviations Previous Buffer Previous Visual Selection Print The Relative Path Of The Current File Print Version Information Quick File Info Quick Man Pages Quick Quickfix List Navigation Quickly Fix A Misspelled Word Quickly Switch To A Buffer By Number Quit When There Is An Argument List Re-indenting Your Code Read In The Contents Of A Rails File Rename A File Through netrw Rename Current File Repeat The Previous Change Repeating Characters Replace A Character Reset Target tslime Pane Reverse A Group Of Lines Rotate Everything By 13 Letters Rotate The Orientation Of Split Windows Running Bundle With vim-bundler Scrolling Relative to the Cursor Search Backward Through A File Searching For Hex Digits Select Several Results From An FZF Search Set End Of Line Markers Set Your Color Scheme Setting Filetype With Modelines Show All Syntax Highlighting Rules Show Matching Entries For Help Specify The Line Height Of The Quick Fix Window Split Different Split The Current Window Splitting For New Files Source Original vimrc When Using Neovim Swap Occurrences Of Two Words Swapping Split Windows Swap The Position Of Two Split Windows Tabs To Spaces The Vim Info File Toggle Absolute And Relative Paths In BufExplorer Toggling Syntax Highlighting Turning Off Search Highlighting Unloading A Buffer Use Active Window With BufExplorer Use The Terminal Inside A Vim Session Using vim-surround With A Visual Selection Verbose Commits With Fugitive View Commit History of a File View The Current File In GitHub Viewing Man Pages with man.vim Vim Without The Extras What Is On The Runtime Path? Whole Line Auto-Completion Wrap With Some Room VSCode Add The VSCode CLI To Your Path Advance Through Search Results Enable Breadcrumbs For Version 1.26 Release Open An Integrated Terminal Window Toggle Between Terminals Webpack Better Module Imports With Aliases Debugging With Full Source Maps Run ESLint As A Preloader Specify Port Of CRA's Webpack Dev Server Use A Specific Config File Workflow Change Window Name In iTerm Convert An ePub Document To PDF On Mac Create A Public URL For A Local Server Enable Dev Tools For Safari Forward Stripe Events To Local Server Get Your Public IP Address Import A Github Project Into CodeSandbox Interactively Kill A Process With fkill Open Slack's Keyboard Shortcuts Reference Panel Prune The Excess From node_modules Rotate An Image To Be Oriented Upright Set Recurring Reminders In Slack Toggle Between Stories In Storybook Update asdf Plugins With Latest Package Versions View The PR For The Current GitHub Branch XState Always Use Inline Functions With Assign Custom Jest Matcher For XState Machine States Define Event That Does Internal Self Transition Events Stop Propagating Once Handled Inline Actions vs Actions In Machine Options Make Immediate And Delayed Transitions Simple States And Composite States Start A Machine In A Specific State Use An XState Machine With React YAML Create Multi-Line Strings Without The Line Breaks YAML Is A Superset Of JSON Zod Check If An Object Is Empty With Zod Create A Schema That Matches On Any Object Create Union Type Of Nearly Identical Objects Incorporate Existing Type Into Zod Schema Usage The .vimrc file for this project contains a function CountTILs that can be invoked with <leader>c. This will do a substitution count of the current number of TILs and display the result in the command tray. About I shamelessly stole this idea from thoughtbot/til. Other TIL Collections Today I Learned by Hashrocket jwworth/til thoughtbot/til License © 2015-2022 Josh Branchaud This repository is licensed under the MIT license. See LICENSE for details.
Read on GithubGithub Stats Page
repotechsstarsweeklyforksweekly
prettier/vim-prettierVim ScriptJavaScriptDockerfile1.7k01380
tpope/vim-obsessionVim Script1.6k0690
pangloss/vim-javascriptVim Script3.8k-1392+2
42Paris/42headerVim ScriptShell22401030
RRethy/vim-hexokinaseVim ScriptOther9610220
junegunn/fzf.vimVim ScriptShellOther9.1k+9572+1
jlanzarotta/bufexplorerVim Script4920950
HerringtonDarkholme/yats.vimVim ScriptMakefileJavaScript6400650
vimwiki/vimwikiVim ScriptShellCSS8.3k+56200
python-mode/python-modeVim ScriptPythonShell5.4k09220