🖊️
Today I Learned
  • Home(ish) for Things I've Learned
  • 🦄General
    • Agile Development
      • Tips for dealing with Humans
      • Definition of Done (DOD)
      • Inclusiveness
      • OKRs
      • Roles
      • 12 Principles of Agile
      • Zettel
      • Cognitive Bias
        • Present Bias
        • Sunk cost fallac
        • Ikea Effect
    • Architecture Development
      • Architectural-"ilities"
      • Architectual Considerations
    • Devops
      • Check The Status of All Services
      • Running Out Of inode Space
      • SSL Certificates Can Cover Multiple Domains
    • Documentation
      • 🧜Mermaid
        • 🧜Mermaid-Flowchart
        • 🧜‍♀️Mermaid-Sequence
        • 🧜‍♂️Mermaid-Gnatt
      • ⬇️Markdown
      • MediaWiki
    • Networking
      • Applications
        • NMAP
        • Scappy
        • TCP Dump
        • Wireshark
      • Common Ports
      • Cabling
      • Protocols
        • BGP
        • EIGRP
        • First Hop Redundancy
        • IEEE 802.1X
        • IEEE 802.11 WLAN
        • IP Security
        • IPv4 Multi-cast
        • IPv4 Subnetting
        • IPv6
        • IS-IS
        • OSPF
        • Point to Point
        • RIP
        • Spanning Tree
      • Technologies
        • Frame Mode MPLS
        • IOS (Cisco)
        • Network Address Translation
        • Quality of Service
        • VLANs
        • VOIP Basics
      • Resolve The Public IP Of A URL
      • Path Of The Packets
      • Determine The IP Address Of A Domain
      • Allow HTTPS Through Your UFW Firewall
      • Allow Cross-Origin Requests To Include Cookies
    • Virtualization
      • Ubuntu
        • Ubuntu Quick Install
        • Hyper-V - Setup an Ubuntu 20.04 vm
        • Virtual Box - Setup an Ubuntu 20.04 vm
        • Virtual Box - Setup an Ubuntu 22.04 vm
      • RedHat
        • Setup RHEL 9.2 Linux vm
      • Fedora
        • Setup Fedora 38 Linux vm
      • Transfer files from Windows to Linux VM
    • Security/Hacking
      • Reference
        • Big Data Security
        • Cryptography
        • Code Reviews
        • Forensic Challenges
        • PenTesting Challenges
        • PKI
        • VOIP
        • Virus Classification
        • VMs and Live CDs
        • Worm Classification
      • Forensics
      • Tests
        • Browser Plugins
        • Infrastructure tests
        • Security Tests
        • Securing Home Computers
        • Web Application Security Test
        • VPN
        • Wireless Network Review
      • Tools
        • Metasploit - 4.5
  • 💻os
    • 🐧linux
      • Reference
      • ubuntu-specific
        • Upgrading Ubuntu
        • Check Ubuntu Version
        • Config ubuntu 20.04 vm for rdp
      • alias
        • Ignore The Alias When Running A Command
      • crypto
        • Generate A SAML Key And Certificate Pair
      • datetime
        • Figure Out The Week Of The Year From The Terminal
        • Show Current System Time And Settings
        • Configure Your Server Timezone
        • Get The Unix Timestamp
        • Touch Access And Modify Times Individually
        • Format And Print The Current Date And Time
      • disk
        • Display Free Disk Space
        • Show Disk Usage For The Current Directory
      • directory
        • Change To That New Directory
        • Check The Current Working Directory
        • Configure cd To Behave Like pushd In Zsh
        • Display The Contents Of A Directory As A Tree
        • Copying Nested Directories With Ditto
        • Globbing For Filenames In Zsh
        • Globbing For All Directories In Zsh
        • Use fzf To Change Directories
        • Show The Size Of Everything In A Directory
        • List The Stack Of Remembered Directories
      • file
        • Copying File Contents To System Paste Buffer
        • Do Not Overwrite Existing Files
        • File Type Info With File
        • Find Files With fd
        • Find Newer Files
        • Get Matching Filenames As Output From Grep
        • Hexdump A Compiled File
        • List Files Ordered By Modification Date
        • List Names Of Files With Matches
        • List Stats For A File
        • Create A File Descriptor with Process Substitution
        • Print Out Files In Reverse
        • Securely Remove Files
        • Print A Range Of Lines For A File With Bat
      • http
        • Curl With Cookies
        • Curling For Headers
        • Curling With Basic Auth Credentials
      • history
        • Jump To The Ends Of Your Shell History
        • Last Argument Of The Last Command
        • Global Substitution On The Previous Command
        • Search History
      • java
        • List The Available JDKs
      • networking
        • Check If A Port Is In Use
        • Kill Everything Running On A Certain Port
        • Map A Domain To localhost
        • List Of Sessions To A Machine
      • package management
        • Get Repo's
        • Hold package version - do not upgrade
        • Install a Specific Version of Package
        • Switch Versions of a Brew Formula
        • Switch between Local & remote packages
      • process
        • PID Of The Current Shell
        • Open The Current Command In An Editor
        • List Parent pid With ps
        • Check If Command Is Executable Before Using
        • Exclude Certain Files From An rsync Run
        • List The Statuses Of All Upstart Jobs
        • Do A Dry Run Of An rsync
        • Where Are The Binaries?
        • Watch This Run Repeatedly
      • shells
        • Change Default Shell For A User
      • terminal
        • Clear The Screen
        • Cat Files With Color Using Bat
        • Display All The Terminal Colors
        • Cat A File With Line Numbers
        • Less With Style
        • View A Web Page In The Terminal
        • Undo Some Command Line Editing
        • Command Line Length Limitations
        • Saying Yes
        • Watch The Difference
      • string
        • Repeat Yourself
      • ssh
        • Killing A Frozen SSH Session
        • Forward Multiple Ports Over SSH
        • SSH Escape Sequences
        • Specify The Language For A File With Bat
        • SSH With Port Forwarding
      • search/query
        • Count The Number Of Matches In A Grep
        • Enable Multi-Select Of Results With fzf
        • Exclude A Directory With Find
        • Find A File Installed By Brew
        • Grep For Files With Multiple Matches
        • Grep For Multiple Patterns
        • Grep For Files Without A Match
        • Partial String Matching In Bash Scripts
        • Only Show The Matches
        • Search Files Specific To A Language
        • Search Man Page Descriptions
        • Show A File Preview When Searching With FZF
        • Use Regex Pattern Matching With Grep
        • Skip Paging If Output Fits On Screen With Less
        • Sort In Numerical Order
      • user
        • List All Users
      • variables
        • All The Environment Variables
        • Compare Two Variables In A Bash Script
        • Provide A Fallback Value For Unset Parameter
        • Check If The First Argument Is Given
    • 🍎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
      • 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
    • 🪟win
      • Windows Reference
      • powershell
        • Formatting
        • Base64
        • Environment Variables
        • Modules
          • Pwsh Profile
          • Logging.psm1
        • Setup console with posh-git
    • 🚇wsl
      • Install Jupyter in WSL
  • 👩‍💻programmy
    • azure
      • Setup Azure VM Ubuntu Server to be Desktop
      • Azure Cli
        • Azure Repos Export
        • Azure Keyvault
        • Azure Functions
        • Azure Networking
          • Setup VPN Certificates
        • Azure Subscriptions
        • Azure Roles
          • Azure Storage Ac
    • aad
      • AzureAD.Get-Devices
      • Desktop Joining/Trust
    • databases
      • mysql
        • Display Output In A Vertical Format
        • Doing Date Math
        • Dump A Database To A File
        • List Databases And Tables
        • Show Create Statement For A Table
        • Show Tables That Match A Pattern
        • Show Indexes For A Table
      • mongodb
        • Determine The Database Version
        • Dump A Remote Database
        • Get Size Stats For A Collection
        • List Size Stats For All Collections
      • mssql
      • postgres
        • commands
          • Triggers
          • Use A psqlrc File For Common Settings
          • Switch The Running Postgres Server Version
          • Track psql History Separately Per Database
          • Toggling The Pager In PSQL
          • Temporarily Disable Triggers
          • Sets With The Values Command
          • Set A Statement Timeout Threshold For A Session
          • Send A Command To psql
          • Sleeping
          • Set Inclusion With hstore
          • Prepare, Execute, And Deallocate Statements
    • linux
      • Limit Execution Time Of Statements
      • Install Postgres With uuid-ossp Using asdf
      • Find The Location Of Postgres Config Files
      • Find The Data Directory
      • Create hstore From Two Arrays
      • Insert Just The Defaults
      • Stop a Service
      • Is App Installed?
        • Change The Current Directory For psql
        • Check If The Local Server Is Running
        • connections
          • Connect To An RDS PostgreSQL Database
          • Terminating A Connection
          • List Connections To A Database
          • Force SSL When Making A psql Connection
        • Crypto
          • Salt And Hash A Password With pgcrypto
          • Set A Seed For The Random Number Generator
          • Generating UUIDs With pgcrypto
          • Compute The md5 Hash Of A String
          • Compute Hashes With pgcrypto
        • Database Operations
          • List Database Objects With Disk Usage
          • List All The Databases
          • Get The Size Of A Database
          • Dump All Databases To A SQL File
          • Duplicate A Local Database
          • Dump And Restore A Database
          • Create Database Uses Template1
        • DateTime Operations
          • Timestamp Functions
          • Using Intervals To Offset Time
          • Turning Timing On
          • Intervals Of Time By Week
          • Convert A String To A Timestamp
          • Day Of Week For A Date
          • Determining The Age Of Things
          • Day Of Week By Name For A Date
          • Constructing A Range Of Dates
          • Configure The Timezone
        • Functions
          • List All Versions Of A Function
          • Group By The Result Of A Function Call
          • Edit Existing Functions
        • File Operations
          • Extracting Nested JSON Data
          • Export Query Results To A CSV
        • IDE/Display
          • Auto Expanded Display
          • Clear The Screen In psql
          • Clear The Screen In psql (2)
        • Indexing
          • Use Argument Indexes
          • Using Expressions In Indexes
          • Adding Composite Uniqueness Constraints
          • Add Foreign Key Constraint Without A Full Lock
          • Create A Composite Primary Key
          • Create An Index Without Locking The Table
          • Add ON DELETE CASCADE To Foreign Key Constraint
        • Math Operations
          • Two Ways To Compute Factorial
          • Integers In Postgres
          • Generate Series Of Numbers
          • Count The Number Of Trues In An Aggregate Query
          • Count Records By Type
          • Count How Many Records There Are Of Each Type
          • Assumed Radius Of The Earth
          • Compute The Levenshtein Distance Of Two Strings
        • Queries
          • Write A Query Result To File
          • Union All Rows Including Duplicates
          • Truncate All Rows
          • Use Not Valid To Immediately Enforce A Constraint
          • Storing Emails With citext
          • Print The Query Buffer In psql
          • Prevent A Query From Running Too Long
          • Insert A Bunch Of Records With Generate Series
          • Find Records That Have Multiple Associated Records
          • Find Records That Contain Duplicate Values
          • Between Symmetric
          • Difference Between Explain And Explain Analyze
          • Creating Conditional Constraints
          • Aggregate A Column Into An Array
        • Schema
          • pg Prefix Is Reserved For System Schemas
          • List All Columns Of A Specific Type
          • Default Schema
        • Sequence
          • Restart A Sequence
          • Renaming A Sequence
          • List Available Schemas
        • String Operations
          • Two Ways To Escape A Quote In A String
          • Word Count for a Column
          • String Contains Another String
          • Pretty Printing JSONB Rows
          • Pretty Print Data Sizes
          • Escaping String Literals With Dollar Quoting
          • Escaping A Quote In A String
          • Capitalize All The Words
          • A Better Null Display Character
        • Table Operations
          • Restarting Sequences When Truncating Tables
          • Temporary Tables
          • Renaming A Table
          • Truncate Tables With Dependents
          • List All Rows In A Table
          • Get The Size Of A Table
          • Get A Quick Approximate Count Of A Table
          • Fizzbuzz With Common Table Expressions
          • Find Duplicate Records In Table Without Unique Id
          • Create Table Adds A Data Type
          • Check Table For Any Oprhaned Records
        • Types & Operators
          • Special Math Operators
          • The nullif Function
          • Types By Category
          • Shorthand Absolute Value Operator
          • Show All Versions Of An Operator
          • Switch Non-Castable Column Type With Using Clause
          • Remove Not Null Constraint From A Column
          • List Various Kinds Of Objects
          • Max Identifier Length Is 63 Bytes
          • Lower Is Faster Than ilike
          • Is It Null Or Not Null?
          • Getting A Slice Of An Array
          • Get The Size Of An Index
          • Generate A UUID
          • Generate Random UUIDs Without An Extension
          • Determine Types Of JSONB Records
          • Defining Arrays
          • Creating Custom Types
          • Checking The Type Of A Value
          • Checking Inequality
        • User Operations
          • Who Is The Current User
          • List Database Users
      • pgbouncer
        • Backup Databse
        • pgbouncer
    • c#
    • 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
      • 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
    • 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
    • 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
    • heroku
      • Wipe A Heroku Postgres Database
      • Push Non-master Branch To Heroku
    • html
      • Adding Alt Text To An Image
      • 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
    • 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 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 Where Yarn Is Installing Binaries
      • for...in Iterates Over Object Properties
      • Formatting Values With Units For Display
      • Freeze An Object, Sorta
      • Generate Random Integers
      • Get The Location And Size Of An Element
      • Get The Response Status From An Axios Error
      • Get The Time Zone Of The Client Computer
      • Globally Install A Package With Yarn
      • 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
      • 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 The Rest With ES6
      • Start Node Process In Specific Timezone
      • String Interpolation With Template Literals
      • Support Nested Matching In Custom Jest Matchers
      • 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
      • Yarn Commands Without The Emojis
      • Yup Schemas Are Validated Asynchronously
    • ml
      • 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
    • node
      • asdf
        • Fix Unlinked Node Binaries With asdf
        • Interactively Browse Available Node Versions
        • Set The asdf Package Version For A Single Shell
        • Update Package Versions Known By asdf Plugin
    • php
    • 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 List Params Anywhere With Strong Params
      • All or Nothing Database Transactions
      • 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 Migrations Use The Latest Schema
      • Find Or Create A Record With FactoryBot
      • Force All Users To Sign Out
      • Generating And Executing SQL
      • Get An Array Of Values From The Database
      • Get An Empty ActiveRecord Relation
      • 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 Records In Batches With find_each
      • Log SQL Queries Executed By ActiveRecord
      • Mark A Migration As Irreversible
      • Make ActionMailer Synchronous In Test
      • 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
      • Order Matters For rescue_from Blocks
      • Params Includes Submission Button Info
      • Parse Query Params From A URL
      • 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 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
      • Retrieve An Object If It Exists
      • Rollback A Specific Migration Out Of Order
      • Rounding Numbers With Precision
      • 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 If An Instance Variable Was Assigned
      • Test If deliver_later Is Called For A Mailer
      • Truncate Almost All Tables
      • Update Column Versus Update Attribute
      • Upgrading Your Manifest For Sprocket's 4
      • Verify And Read A Signed Cookie Value
      • Where Am I In The Partial Iteration?
      • 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
    • regEx
    • 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 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
      • 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
      • Expect A Method To Be Called And Actually Call It
      • FactoryGirl Sequences
      • Fail
      • 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
      • 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
      • 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
      • 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
      • 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
      • Show Public Methods With Pry
      • Silence The Output Of A Ruby Statement In Pry
      • Single And Double Quoted String Notation
      • Squeeze Out The Extra Space
      • String Interpolation With Instance Variables
      • Summing Collections
      • 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
    • typescript
      • Add Types To An Object Destructuring
      • Compiler Checks For Unused Params And Variables
      • Re-Export An Imported Type
      • Type Narrowing With Similarly Shaped Objects
      • Use An Array Check For Type Narrowing
      • Zero-Config Environments For Trying Out Types
  • 🛠️Tools
    • ack
      • ack --bar
      • Case-Insensitive Search
      • List Available File Types
    • ansible
      • Getting started with Ansible
      • Setup Ansible on WSL1
      • aliasing-an-ansible-host
    • docker
      • Docker Cheat Sheet
      • SSH Into A Docker Container
      • Pulling & Publishing Images
    • git
      • Accessing a Lost Commit
      • 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 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
      • Run A Git Command From Outside The Repo
      • Set A Custom Pager For A Specific Command
      • 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
      • 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
      • Import A Github Project Into CodeSandbox
      • View The PR For The Current GitHub Branch
    • github actions
      • Capture An Output Value For Use In A Later Step
      • Reference An Encrypted Secret In An Action
    • hashicorp vault/consul
      • Vault
        • Export Vault Store
        • Vault CLI Basics
        • Vault HA Configuration
        • Vault Unseal
      • Consul
        • Export Consul Store
        • Consul CLI Basics
      • Install Vault/Consul
        • Setups Azure Hosted Consul
        • Setup Consul
        • Setup Vault
      • Intro to Hashi
    • hashicorp terraform
    • jq
      • Extract A List Of Values
    • kubernetes
      • K8S Cheat Sheet
      • Loading Credentials
      • Lets Encrypt
      • Configure Ingress
      • Get all Images running in cluster
      • Benefits of K8S
    • nginx
      • Check The Syntax Of nginx Files
      • Reload The nginx Configuration
    • openssl
      • Generate a new CSR
    • rspec
      • Check Specific Arguments To Received Method
    • 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
    • seq
      • Create A Sequence Of Values With A Step
    • slack
      • Set Recurring Reminders In Slack
      • Open Slack's Keyboard Shortcuts Reference Panel
    • statsd
    • vercel
      • Add Web Server Layer Redirects
      • Deploy An App Without Pushing An Empty Commit
      • Naming Of The Vercel Config File
      • Share Development Environment Variables Via CLI
    • vim
      • Change/Commit
        • Aborting Git Commits And Rebases
        • Amend Commits With Fugitive
        • Beginning And End Of Previous Change
      • File
        • Add A File Without Loading It
        • Alternate Files With vim-rails
      • Line
        • Almost The End Of The Line
        • Absolute And Relative Line Numbers
        • Wrap With Some Room
        • Whole Line Auto-Completion
      • What Is On The Runtime Path?
      • Add Custom Dictionary Words
      • All The Ways To Write And Quit In Vim
      • Allow Neovim To Copy/Paste With System Clipboard
      • Always Keep The Gutter Open
      • Backspace Options
      • 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
      • 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 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
      • Set Up Vim-Plug With Neovim
      • 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
      • 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
      • Viewing Man Pages with man.vim
      • Vim Without The Extras
    • 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
      • Use A Specific Config File
      • Better Module Imports With Aliases
      • Debugging With Full Source Maps
      • Run ESLint As A Preloader
      • Specify Port Of CRA's Webpack Dev Server
    • workflow
      • Update asdf Plugins With Latest Package Versions
      • Toggle Between Stories In Storybook
      • Rotate An Image To Be Oriented Upright
      • Prune The Excess From node_modules
      • Get Your Public IP Address
      • Forward Stripe Events To Local Server
      • Enable Dev Tools For Safari
      • Create A Public URL For A Local Server
      • Convert An ePub Document To PDF On Mac
      • Change Window Name In iTerm
      • Interactively Kill A Process With fkill
    • yaml
      • Create Multi-Line Strings Without The Line Breaks
      • YAML Is A Superset Of JSON
    • xstate
      • Use An XState Machine With React
      • Start A Machine In A Specific State
      • Simple States And Composite States
      • Make Immediate And Delayed Transitions
      • Inline Actions vs Actions In Machine Options
      • Events Stop Propagating Once Handled
      • Define Event That Does Internal Self Transition
      • Custom Jest Matcher For XState Machine States
      • Always Use Inline Functions With Assign
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. programmy
  2. rails

Set A Timestamp Field To The Current Time

PreviousSerialize With fast_jsonapi In A Rails AppNextSet default_url_options For Entire Application

Last updated 3 years ago

Was this helpful?

To set a timestamp field to the current time, you could reach for the #update method like you would when modifying any other field.

MagicLink
  .find_by(token: some_token)
  .update(used_at: Time.zone.now)

This works, but it's more verbose than is necessary and requires that you construct the right timestamp for now (time zones and all).

Rails has a more concise and idomatic way of doing this: .

MagicLink
  .find_by(token: some_token)
  .touch(:used_at)

Updating a timestamp to the current time is a common action in web applications, so Rails offers the #touch method as a shorthand for doing it. This will set the given field, in this case :used_at, to the current time. This will also set the updated_at/on field.

👩‍💻
#touch