Ruby: required keyword arguments in the pre-2.1 era

Required named parameters were not available in Ruby 1.8; a hash-based fallback can enforce mandatory options before Ruby 2.1 keyword arguments.

How to avoid raising RestClient exceptions for 4xx or 5xx results

RestClient raises on expected 4xx and 5xx responses, but a block can return the RestClient::Response instead of throwing exceptions.

Die Grenzen von SEO: was Suchmaschinenoptimierung nicht ist

Suchmaschinenoptimierung ist eine Querschnittsfunktion mit Einfluss aus vielen Abteilungen; entscheidend ist die Abgrenzung, welche Aufgaben wirklich zu SEO gehören und welche nicht.

Don't use migrations to seed default data

Seeding rows in a Rails migration breaks tests that expect an empty database and creates maintenance pain. Use db/seed.rb or a script in lib/scripts for default application data.

GitHub Actions: Manually running a workflow

Manual workflow runs in GitHub Actions require workflow_dispatch; eligible workflows then appear in the Actions tab with a Run Workflow button.

GitHub Actions: Retrying a failing step

Flaky commands in GitHub Actions can fail intermittently; nick-invision/retry reruns them with a timeout and limited attempts.

Find an ActiveRecord by any column (useful for Cucumber steps)

Finds a record by any string or number across columns, making Cucumber step definitions more flexible. The bang variant raises ActiveRecord::NotFound when nothing matches.

Undefined method log for Selenium::WebDriver::Remote::W3C::Bridge

Integration tests can fail with undefined method log on Selenium::WebDriver::Remote::W3C::Bridge after enabling Selenium W3C mode; upgrading Capybara restores browser log access.

Upgrading Capybara with deprecated Integer selectors

Capybara warns when selector locators are integers instead of strings or symbols, often in pagination links and numbered clicks.

Geordi 6.0.0 released

Geordi 6.0.0 keeps geordi commit running when some projects are inaccessible and drops VNC browser support and @solo serial execution.

Chromedriver: Disabling the w3c option might break your integration tests with Chrome 91

Chrome 91 can break Selenium integration tests when w3c is disabled, changing input values to nil and causing unexpected assertion failures.

RubyMine / IntelliJ: How to increase UI and fonts for presentations

Larger fonts and scaled UI make coding readable during presentations on smaller screens or low-quality connections. RubyMine supports Presentation Mode and manual zoom settings.

Capistrano: Speeding up asset compile during deploy

Reducing Capistrano deploy time by persisting asset compiler caches across releases can skip repeated Sprockets or Webpacker work. esbuild has no comparable cache directory.

Webpack: Automatically generating an icon font from .svg files

Vector icons are easy to use but tedious to build; webpack plugins can automate SVG-to-icon-font generation and keep icons aligned, scalable, and JavaScript-free.

IE11: Trigger native mouse events with Javascript

IE11 needs real DOM mouse events for code that listens to native handlers as well as jQuery .on; synthetic clicks from trigger are not enough.

Let the browser choose the protocol

Protocol-dependent links break mixed-content embeds and tests; protocol-relative URLs let the browser pick http or https from the page context.

Heads up: Byebug has problems with zeitwerk

Byebug 11.1.3 can trigger NameError with Rails 6 zeitwerk autoloading; binding.pry, eager loading, or another debugger avoid the issue.

How to: "git log" with renamed files

File renames can hide earlier revisions from git log; git log --follow preserves the full history for a single renamed file.

How to create memory leaks in jQuery

Detached jQuery elements with event handlers or data can stay in memory because cache entries survive native DOM removal and old IE circular-reference limits.

RestClient / Net::HTTP: How to communicate with self-signed or misconfigured HTTPS endpoints

HTTPS requests fail against self-signed certificates or broken certificate chains unless the correct CA, intermediate cert, or certificate store is configured.

Ruby: Fixing strings with invalid encoding and converting to UTF-8

Invalidly encoded external strings can break UTF-8 handling; trying several conversions and replacing unknown bytes helps salvage readable text.

Disabling client caching with Cache-Control: no-store

Browser caching can show stale state in apps like time trackers or SPAs. Setting Cache-Control: no-store forces a fresh response instead of reusing cached pages.

Pre-releasing an npm package

Publish npm pre-release versions on a separate tag so stable users do not receive alpha or beta builds by default.

Pre-releasing a Ruby gem

Release candidate and beta gem versions are treated as pre-releases and are ignored unless explicitly requested; RubyGems converts dash-separated SemVer pre-release tags to dot-separated versions.