Rails: Postgres Partial Indexing
PostgreSQL partial indexes reduce index size and write overhead by indexing only rows that match a condition, useful for conditional uniqueness and large tables.
How to fix "Command "webpack" not found"
Deployment asset precompilation can fail with Command "webpack" not found when Yarn dependencies are missing. A bin/yarn binstub lets yarn install run during deploy.
InfoQ: How to Design a Good API & Why it Matters
Well-designed APIs improve adoption and maintainability for both library authors and users; Joshua Bloch presents practical guidance and examples of good and bad API design.
Rails: How to use custom flash types in controllers
Custom flash types let controllers use extra redirect messages such as success, useful for Bootstrap-style alerts beyond notice and alert.
Git: Parsing large diffs as a human
Large codebase diffs can become unreadable after migrations, renames, and mass file moves; git options help isolate moved code and reduce review noise.
Ruby: How to load a file with a known encoding
Ruby can misdetect a file’s encoding; specifying it manually keeps the resulting string in the expected Encoding and avoids hidden byte conversion.
Fixing memory leaks in the browser
Browser memory leaks often come from forgotten listeners, timers, observers, unresolved promises, global stores, or unbounded DOM growth.
How to communicate between processes in Ruby with sockets
Interprocess communication in Ruby can use UNIX sockets for parent-child coordination, parallel test synchronization, and waiting for child cleanup after fork.
ExceptionNotification: Fix DNS lookup before plugins call external APIs
External notification plugins can stop delivering exceptions when DNS lookup fails, affecting Slack or Microsoft Teams alerts. Loading resolv-replace before ExceptionNotification forces Ruby DNS resolution to work reliably.
Call original method when monkey patching
Ruby monkey patches can reuse the overridden behavior by calling super from a prepended module, letting extensions wrap existing methods instead of replacing them outright.
Transporting blank values in URL queries
Blank query values are not equivalent to missing parameters in URLs: foo= is an empty string, foo is null, and /path has no key.
How to build a fully custom TinyMCE 5 dialog
TinyMCE 5 can host fully custom dialogs through a toolbar button and a separate view, with editor interaction handled via postMessage.
How to test inside iframes with cucumber / capybara
Cucumber and Capybara ignore iframes by default, so tests must switch into the frame to interact with its content. Frame-aware step definitions can reduce repeated setup.
Ruby < 2.4: Downcasing or upcasing umlauts
downcase and upcase on umlauts and accented letters stay unchanged in Ruby before 2.4, causing failed string comparisons. ActiveSupport::Multibyte::Chars handles Unicode case conversion correctly.
Ruby: How to keep split delimiter (separate, or as part of substrings)
Ruby String#split normally drops delimiters, which makes reconstruction from regex splits awkward. Capture groups or look-behind can keep separator characters in the result.
SSHKit 1.9.0 failure for Capistrano deploy
Capistrano deploys can crash in sshkit-1.9.0 with NoMethodError in pretty.rb; upgrading SSHKit to 1.21.0 resolves the failure.
Whenever requires you to set the application attribute in the Capistrano config
Whenever needs application set in Capistrano so cron entries keep a stable identifier and do not accumulate duplicate jobs across deploys.
HowVideo.works
Video playback, delivery, processing, and capture are core parts of how online video works.
Missing certificates for rubygems and bundler in Ruby 1.8.7
Ruby 1.8.7 can no longer connect to rubygems.org with Rubygems 1.8.30 and Bundler 1.17.3 because of expired server certificates. Local proxying or disabling SSL verification can restore installs.
A few recent CSS properties
Modern CSS features improve progressive enhancement, visual effects, touch handling, and scroll behavior across browser support levels.
liquidprompt: A full-featured & carefully designed adaptive prompt for Bash & Zsh
Adaptive shell prompt for Bash and zsh surfaces useful status only when it changes, reducing clutter and making important changes easier to notice.
Configuring Webpacker deployments with Capistrano
Rails deployments with Webpacker and Capistrano often need asset-path, manifest, and compile-time tweaks to avoid slow releases and unused compression output.
How to remove entries from the bash history
Accidentally stored commands, including secrets, can be removed from Bash history by deleting specific numbered entries.
How to have a target=_blank link open with DevTools open
Open Chrome DevTools automatically for target=_blank popups so the new tab starts with inspection tools ready, making request headers and popup behavior easier to debug.