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.
Simple database lock for MySQL
MySQL can coordinate multiple Rails processes with a database-backed mutex when code must not run concurrently. It is for model-level synchronization, not record locking.
Cucumber: Clear localStorage after each scenario
Client-side storage can persist between Cucumber scenarios even when cookies are cleared, causing test leakage in Selenium-driven browser runs.
Geordi 1.3 released
Geordi 1.3 adds Cucumber support with @solo handling, Capistrano 2/3 deployment fixes, and updated Firefox setup for selenium testing.
How to: Upgrade CarrierWave to 3.x
CarrierWave 3.x changes upload allowlists, inactive versions, version recreation, and processing paths, breaking older uploader logic and custom transcoders.
Imperative vs Declarative Scenarios in User Stories
Imperative and declarative user-story scenarios suit different situations; declarative phrasing offers advantages in RSpec Story Runner and Cucumber testing.
Run a POP3 server on a directory of mail files with popthis
Serve a directory of generated mail files as a local POP3 mailbox for testing clients and inaction_mailer output.
Bash script to list git commits by Linear ID
Bash helper for finding git commits by Linear issue ID, including IDs extracted from Linear URLs, and passing options through to git show.
Spreewald: Content-Disposition not set when testing a download's filename
Public file downloads may miss Content-Disposition, so filename checks fail in Spreewald. Matching only Content-Type or testing the downloaded file avoids flaky download assertions.
OpenAI TTS: How to generate audio samples with more than 4096 characters
OpenAI TTS requests are capped at 4096 characters, so longer text needs chunking and MP3 merging to generate complete audio.
How to open files from better_errors with RubyMine on Linux
RubyMine rubymine:// links can fail on GNOME/Linux, blocking better_errors from opening source files in the editor. A custom desktop handler and BETTER_ERRORS_EDITOR_URL make file jumping work.
Debug Ruby code
Interactive Ruby debugging lets you pause execution, inspect variables and stack frames, and step through code from a shell or RubyMine.
RSpec matcher to compare two HTML fragments
Compare two HTML snippets in RSpec while ignoring whitespace, comment nodes, quote style, and attribute order.
RSpec: Tagging examples and example groups
Tagging RSpec examples and groups lets you filter slow or special cases, assign values, and trigger hooks or module includes by metadata.
Managing Rails locale files with i18n-tasks
i18n-tasks helps keep Rails locale files complete by finding missing and unused translation keys and reducing manual YAML bookkeeping.
List of Chromium Command Line Switches « Peter Beverloo
Extensive Chrome startup options help build custom browser drivers and automate testing with Capybara.
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.
Interacting with a Microsoft Exchange server from Ruby
Connect Ruby to Exchange Web Services for mail, calendar, and meeting data when Outlook-only tasks need automation.
Jasmine: Mocking API requests in an Angular service spec
Angular service specs can hit real routes unless uiRouter startup is disabled; ngMock and $httpBackend let API requests be intercepted and asserted in Jasmine.
Speed up RSpec by deferring garbage collection
Deferred Ruby garbage collection can speed up RSpec examples by reducing GC overhead, though gains vary and may be negligible in newer Ruby versions.
Capistrano 3: Running a command on all servers
Capistrano 3 can execute an arbitrary shell command across all app servers, useful for grepping logs or bulk remote checks.
Run Chrome in a specific resolution or user agent with Selenium
Testing web apps at mobile-like sizes or with a custom browser identity reveals layout and behavior bugs before release.
Case Study: Analyzing Web Font Performance
Web font loading can delay first paint and cause FOIT, especially on slow connections. Delivery choices, fallback handling, and reduced font variants improve perceived performance.
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.