{"id":13596159,"url":"https://github.com/jwworth/til","last_synced_at":"2025-10-11T22:38:10.995Z","repository":{"id":28592972,"uuid":"32111182","full_name":"jwworth/til","owner":"jwworth","description":"⌨️  Technical articles; needless words omitted","archived":false,"fork":false,"pushed_at":"2024-08-08T18:22:55.000Z","size":274,"stargazers_count":131,"open_issues_count":0,"forks_count":5,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-02-10T13:16:35.116Z","etag":null,"topics":["til"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwworth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-13T00:27:40.000Z","updated_at":"2025-01-06T15:05:30.000Z","dependencies_parsed_at":"2023-11-16T00:30:46.249Z","dependency_job_id":"73b13d63-ccd8-45d9-abe2-064290fc3a46","html_url":"https://github.com/jwworth/til","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwworth%2Ftil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwworth%2Ftil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwworth%2Ftil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwworth%2Ftil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwworth","download_url":"https://codeload.github.com/jwworth/til/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247289963,"owners_count":20914568,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["til"],"created_at":"2024-08-01T16:02:10.605Z","updated_at":"2025-10-11T22:38:05.959Z","avatar_url":"https://github.com/jwworth.png","language":"Vim Script","funding_links":[],"categories":["Vim Script","Vim script","General CS"],"sub_categories":[],"readme":"# TIL (Today I Learned)\n\n_Technical articles; needless words omitted_\n\nThis is a collection of short articles about things I've learned. They are\ntoo short for my [blog](https://www.jakeworth.com).\n\nI stole this idea from [jbranchaud/til](https://github.com/jbranchaud/til).\n\n📈 151 posts and counting...\n\n---\n\n### Browsers\n\n- [Block a URL in Chrome DevTools](browsers/block-a-url-in-chrome-devtools.md)\n- [Change Timezone in Chrome DevTools](browsers/change-timezone-in-chrome-devtools.md)\n- [Chrome Flags](browsers/chrome-flags.md)\n- [Chrome SameSite Updates](browsers/chrome-samesite-updates.md)\n- [Date Input Tag](browsers/date-input-tag.md)\n- [Filter Network Requests By Status Code in DevTools](browsers/filter-network-requests-by-status-code-in-devtools.md)\n- [Hide Bookmarks Bar in Chrome](browsers/hide-bookmarks-bar-in-chrome.md)\n- [Open Every Site in a Chrome Bookmarks Folder With One Click](browsers/open-every-site-in-a-chrome-bookmarks-folder-with-one-click.md)\n- [Use Display None](browsers/use-display-none.md)\n\n### GitHub\n\n- [Ignore Whitespace in a GitHub Pull Request](github/ignore-whitespace-in-a-github-pull-request.md)\n- [Link to Headers in GitHub READMEs](github/link-to-headers-in-github-readmes.md)\n\n### CSS\n\n- [Apply a Conditional Border Without Moving\n  Element](css/apply-a-conditional-border-without-moving-element.md)\n- [Preserve Whitespace in CSS](css/preserve-whitespace-in-css.md)\n- [Semicolon Breaks Everything](css/semicolon-breaks-everything.md)\n\n### Functional Programming\n\n- [Filtering By Identity](functional-programming/filtering-by-identity.md)\n\n### General\n\n- [Jira Actions Menu](general/jira-actions-menu.md)\n- [Turn off Autoformatter for New Features](general/turn-off-autoformatter-for-new-features.md)\n- [Validate CircleCI Configuration](general/validate-circleci-configuration-locally.md)\n- [RDS Breaks My Radio Clock](general/rds-breaks-my-clock.md)\n\n### Git\n\n- [Apply a Patch in Reverse](git/apply-a-patch-in-reverse.md)\n- [Delete Remote Git Tags](git/delete-remote-git-tags.md)\n- [Force with Lease](git/force-with-lease.md)\n- [Git Log With Authors](git/git-log-with-authors.md)\n- [Git Log since](git/git-log-since.md)\n- [Git Snapshot](git/git-snapshot.md)\n- [Show How A File Is Ignored In Git](git/show-how-a-file-is-ignored-in-git.md)\n- [The Alpha Commit](git/the-alpha-commit.md)\n- [Undo a Git Mistake](git/undo-a-git-mistake.md)\n\n### Go\n\n- [Go iota](go/go-iota.md)\n- [Seeding Golang's Rand](go/seeding-golangs-rand.md)\n\n### HTML\n\n- [Reading a Button's Value on Submit](html/reading-a-buttons-value-on-submit.md)\n- [Autofocus a Form Field](html/autofocus-a-form-field.md)\n\n### JavaScript\n\n- [Build URLs with Window Location](javascript/build-urls-with-window-location.md)\n- [Build a Sentence from a JavaScript Array](javascript/build-a-sentence-from-a-javascript-array.md)\n- [Sorting Numbers with JavaScript's sort Function](javascript/sorting-numbers-with-javascripts-sort-function.md)\n- [Load a Dependency in the Node REPL](javascript/load-a-dependency-in-node-repl.md)\n\n### Less\n\n- [Less Help](less/less-help.md)\n\n### MacOs\n\n- [Understanding Scrollbar Visibility](mac/understanding-scrollbar-visiblity.md)\n- [Zoom and Scroll in Figma](mac/zoom-and-scroll-in-figma.md)\n\n### Mobile\n\n- [App Store Delays](mobile/app-store-delays.md)\n- [Clear iOS Mobile Dependencies](mobile/clear-ios-mobile-dependencies.md)\n- [React Native Shake](mobile/react-native-shake.md)\n- [Scroll on XCode Simulator](mobile/scroll-on-xcode-simulator.md)\n- [TestFlight downloads latest build](mobile/testflight-downloads-latest-build.md)\n- [Xcode Run Hotkey](mobile/xcode-run-hotkey.md)\n\n### React\n\n- [Clear React Router's Location State From the Console](react/clear-react-routers-location-state-from-the-console.md)\n- [Conditional Props](react/conditional-props.md)\n- [Join React Components With Comma](react/join-react-components-with-comma.md)\n- [Link Externally With React Router's Link](react/link-externally-with-react-routers-link.md)\n- [Re-render Child Component By Changing Key](react/rerender-child-component-by-changing-key.md)\n\n### Ripgrep\n\n- [Ignore Ripgrep Ignore](ripgrep/ignore-ripgrep-ignore.md)\n\n### Ruby on Rails\n\n- [Assert About Response Body in RSpec Controller Tests](rails/assert-about-response-body-in-rspec-controller-tests.md)\n- [Bypass Basic Auth](rails/bypass-basic-auth.md)\n- [Change Column Null](rails/change-column-null.md)\n- [Classify and Constantize](rails/classify-and-constantize.md)\n- [Find or Create By With Block](rails/find-or-create-by-with-block.md)\n- [Generate a Rails Secret Key](rails/generate-a-rails-secret-key.md)\n- [Highlighted Routes Searching](rails/highlighted-routes-searching.md)\n- [How Rails Action Name Works](rails/how-rails-action-name-works.md)\n- [Inferred Controller Parameters](rails/controller-parameters-infered-from-the-model.md)\n- [Modify Attribute on Set](rails/modify-attribute-on-set.md)\n- [Multipurpose Environmental Variables](rails/multipurpose-environmental-variables.md)\n- [Parameters Filtering](rails/parameters-filtering.md)\n- [Rails destroy](rails/rails-destroy.md)\n- [Rails restore_attributes](rails/rails-restoreattributes.md)\n- [Redirect a Path](rails/redirect-a-path.md)\n- [Set Default URL Options](rails/set-default-url-options.md)\n- [Set a Default Scope](rails/set-a-default-scope.md)\n- [Show Model and Grep with Pry-rails](rails/show-model-and-grep-with-pryrails.md)\n- [Validate with Proc](rails/validate-with-proc.md)\n- [fields_for exclude ID](rails/fields-for-exclude-id.md)\n\n### Ruby\n\n- [Accessor Performance Gap](ruby/accessor-performance-gap.md)\n- [Case Insensitive Matchers](ruby/case-insensitive-matchers.md)\n- [Edit in Pry](ruby/edit-in-pry.md)\n- [Fetch Your Environmental Variables](ruby/fetch-your-environmental-variables.md)\n- [Find Stale Gems](ruby/find-stale-gems.md)\n- [Hash Equality](ruby/hash-equality.md)\n- [Ignore Rubocop Block Length Lint in RSpec](ruby/ignore-rubocop-block-length-lint-in-rspec.md)\n- [Keyword Precedence](ruby/keyword-precedence.md)\n- [Minmax](ruby/minmax.md)\n- [Object ID](ruby/object-id.md)\n- [Puts Multiple Lines](ruby/puts-multiple-lines.md)\n- [Reset a Gem](ruby/reset-a-gem.md)\n- [Ruby Regex Literal](ruby/ruby-regex-literal.md)\n- [Ruby's Kernel::abort](ruby/rubys-kernel-abort.md)\n- [Show Proc Source Location](ruby/show-proc-source-location.md)\n- [Skid Keywords](ruby/skid-keywords.md)\n- [Steps Within Steps](ruby/steps-within-steps.md)\n- [Succeed, Precede, and Surround in Haml](ruby/succeed-precede-and-surround-in-haml.md)\n- [Truthy Strings](ruby/truthy-strings.md)\n- [Upgrade Rubygems](rubygems/upgrade-rubygems.md)\n- [Variable Hoisting in Ruby](ruby/variable-hoisting-in-ruby.md)\n- [group_by with default](ruby/group-by-with-default.md)\n\n### SQL\n\n- [Cleanup Postgres Databases](sql/cleanup-postgres-databases.md)\n- [Default to Empty Array in Postgres](sql/default-to-empty-array-in-postgres.md)\n- [History of the PostgreSQL Name](sql/history-of-the-postgresql-name.md)\n- [Postgres Unlogged](sql/postgres-unlogged.md)\n- [Prepare / Execute](sql/prepare-execute.md)\n- [Psql Connect](sql/psql-connect.md)\n- [Query the Size of Postgres Array](sql/query-the-size-of-postgres-array.md)\n\n### SVG\n\n- [Install SVGO With Reasonable\n  Defaults](svg/install-svgo-with-reasonable-defaults.md)\n- [Install SVGO With Reasonable Defaults, Part\n  Two](svg/install-svgo-with-reasonable-defaults-part-two.md)\n\n### Terminal\n\n- [Append to a Write-Protected File](terminal/append-to-a-write-protected-file.md)\n- [Autojump and Open](terminal/autojump-and-open.md)\n- [Command Line Subshell](terminal/command-line-subshell.md)\n- [Create a File With `cat`](terminal/create-a-file-with-cat.md)\n- [Ctags dotfiles](terminal/ctags-dotfiles.md)\n- [Directional Commands](terminal/directional-commands.md)\n- [Finding Getters](terminal/finding-getters.md)\n- [Force ASDF Reshim](terminal/force-asdf-reshim.md)\n- [MD5 File Signatures](terminal/md5-file-signatures.md)\n- [Override Autojump's Directory Rankings](terminal/override-autojumps-directory-rankings.md)\n- [Printing with lpr](terminal/printing-with-lpr.md)\n- [Reverse a String](terminal/reverse-a-string.md)\n- [Run Previous Command](terminal/run-previous-command.md)\n- [Save Size Change to iTerm Profile](terminal/save-size-changes-to-iterm-profile.md)\n- [Screen Flashing in OSX](terminal/screen-flashing-in-osx.md)\n- [Send Processes to the Background](terminal/send-processes-to-the-background.md)\n- [Standard Output to Clipboard Buffer](terminal/standard-output-to-clipboard-buffer.md)\n- [Start Postgres.app from the Command Line](terminal/start-postgresapp-from-the-command-line.md)\n- [Watch That Program](terminal/watch-that-program.md)\n- [Read Zsh Builtin Manual Pages](terminal/read-zsh-builtin-manual-pages.md)\n\n### Testing\n\n- [Expect a Case-Insensitive Match](testing/expect-a-caseinsensitive-match.md)\n- [ExtractRSpecLet](testing/extractrspeclet.md)\n- [Testing Edit Forms](testing/testing-edit-forms.md)\n\n### Tmux\n\n- [Source Tmux Config](tmux/source-tmux-config.md)\n- [Tmux Copy Mode](tmux/tmux-copy-mode.md)\n\n### TypeScript\n\n- [Either/Or Props in TypeScript](typescript/either-or-props-in-typescript.md)\n- [TypeScript Union Type From Array](typescript/typescript-union-type-from-array.md)\n\n### URLs\n\n- [Encoding Plus Signs in URLS](urls/encoding-plus-signs-in-urls.md)\n\n### Vim\n\n- [Call a Vimscript Method in Vim](vim/call-a-vimscript-method-in-vim.md)\n- [Change Inner Tag Block](vim/change-inner-tag-block.md)\n- [Close a File](vim/close-a-file.md)\n- [Count Links in a Markdown File](vim/count-links-in-a-markdown-file.md)\n- [Current Value of a Setting](vim/current-value-of-a-setting.md)\n- [Delete Comments](vim/delete-comments.md)\n- [Delete a Line From Another Line](vim/delete-a-line-from-another-line.md)\n- [Edit the Current File Always](vim/edit-the-current-file-always.md)\n- [Explore Buffers with BufExplorer](vim/explore-buffers-with-bufexplorer.md)\n- [Find and Replace Across Files](vim/find-and-replace-across-files.md)\n- [Get help with Pathogen](vim/get-help-with-pathogen.md)\n- [Increment and Decrement Numbers](vim/increment-and-decrement-numbers.md)\n- [Jump to N Percent of a File](vim/jump-to-n-percent-of-a-file.md)\n- [Jump to the First Non-Blank Character](vim/jump-to-the-first-non-blank-character.md)\n- [Man pages in Vim](vim/man-pages-in-vim.md)\n- [Override Vim's Filetype](vim/override-vims-filetype.md)\n- [Select First Spell Suggestion](vim/select-first-spell-suggestion.md)\n- [Sort Alphabetically](vim/sort-alphabetically.md)\n- [Vim Regex Word Boundaries](vim/vim-regex-word-boundaries.md)\n\n### License\n\nThis project is released under the [MIT\nLicense](http://www.opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwworth%2Ftil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwworth%2Ftil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwworth%2Ftil/lists"}