Effectively Using Materialized Views in Ruby on Rails ยท pganalyze
Large SQL queries become hard to maintain as joins, subqueries, and filters pile up. PostgreSQL views and materialized views can encapsulate that complexity in Ruby on Rails.
A Migration Path to Bundler 2+
Bundler 2 introduced compatibility issues and confusing behavior, with further changes after release. Upgrading can break dependency management and require a migration path.
Howto: Change the keyboard shortcut for the emoji-picker
Ubuntu's ibus emoji picker can conflict with existing shortcuts such as Ctrl+Shift+E, especially in terminal apps. The binding can be removed in ibus-setup.
jQuery promises: done() and then() are not the same
jQuery done() and then() differ in promise chaining: then() waits for returned promises, while done() ignores them and can resolve too early.
How to run a small web server (one-liner)
Quickly serve a local folder for testing, or boot a Rack app, with one-line commands in Ruby, Python, Passenger, or Puma; HTTPS is possible too.
RSpec: Running examples by name (or running a single shared example)
Shared RSpec examples can be rerun by --example substring match or example ID when rspec file:line cannot target them directly.
Rspec 3: what to do when `describe` is undefined
RSpec 3 can raise undefined method 'describe' for main:Object when DSL methods are not exposed globally; disable_monkey_patching! turns them off, and expose_dsl_globally = true restores them.
Linux Performance Analysis in 60,000 Milliseconds
A Linux server with a performance issue needs fast triage in the first minute. Core commands reveal load, memory, CPU, disk, network, and process bottlenecks.
Understanding grid sizes of (SVG) icons
SVG icons stay crisp only when their viewBox grid matches the rendered size; odd scaling triggers antialiasing, blur, and thicker strokes.
Automated wordbreaks for long words
Long compound words can overflow small screens when CSS wrapping is insufficient. Replacing selected text with soft hyphens enables controlled line breaks in user input.
Geordi 2.7.0 released
Geordi 2.7.0 tightens command behavior: cucumber now fails early on @solo feature failures, and commit warns on empty commits while showing progress.
Resources for working with the Youtube API
Working with the YouTube Data API requires API keys and quota awareness; request costs vary by query type, so testing requests and understanding the domain model helps.
Defining "partials" in pure HTML without additional rendering helpers
Define reusable page fragments directly in HTML without server or client rendering helpers; a tiny JavaScript snippet enables custom elements and partial-like reuse.
Can I Email: Check what styling email clients support
Email client styling support is fragmented, so feature checks help avoid unsupported CSS but cannot replace real-client rendering tests.
Coffeescript: Caveat when cloning objects with fat-arrow methods
Fat-arrow methods in CoffeeScript stay bound to the original instance after cloning, so copied objects can keep using the wrong state. Custom clone() logic with new avoids the issue.
Bundler: How to release a gem with 2FA enabled
Bundler releases can hang or fail when RubyGems two-factor authentication is enabled, especially with older versions and legacy Ruby runtimes.
Minified JavaScript and CSS
Production assets should be minified for faster delivery and smaller payloads. Rails 3.1+ handles this through the asset pipeline; older Rails versions need compressed JavaScript libraries.
Linux, Arial and Helvetica: Different font rendering in Firefox and Chrome
Firefox on Linux may resolve Helvetica to a different installed font than Chrome, causing text to shift and render poorly. Overriding the font alias can make browsers prefer Arial.
Guideline for moving from jQuery to vanilla JavaScript
Practical equivalents for common jQuery patterns in vanilla JavaScript, useful when modern browser support makes dependency-free code feasible.
Ruby: The YAML safe_load method hides some pitfalls
YAML.safe_load can reject symbols and aliases in Ruby, causing Psych::DisallowedClass or Psych::BadAlias unless classes and aliases are explicitly permitted.
Don't open user-supplied links with target="_blank"
Opening user-supplied links with target="_blank" can expose window.opener, enabling script access or location changes that support phishing. rel="noopener" reduces the risk in modern browsers.
Email validation regex
Ruby email checks can be simplified with URI::MailTo::EMAIL_REGEXP, while stricter web forms often need a top-level domain and looser validation may use Devise's pattern.
Unicorn: How to force a single threaded boot in development
Limit Unicorn to one worker in development to keep debugging output manageable and prevent concurrent requests like ActionCable from flooding the console.
How to fix webpack-dev-server not found
bin/webpack-dev-server can fail with Yarn's "Command "webpack-dev-server" not found" error when dependencies are missing; yarn install --check-files restores the command.