RulersGuides.js demo
Adds Photoshop-like rulers and guides to a web page with a JavaScript library; also available as a bookmarklet for quick browser use.
TypeScript: Get in Shape with Structural Typing
TypeScript uses structural typing and strict checks for fresh object literals, union types, type assertions, satisfies, and narrowing to prevent runtime errors.
Understanding the Selenium error "Modal Dialog Present" (aka Selenium::WebDriver::Error::UnhandledAlertError)
Intermittent Cucumber failures can come from a leftover browser alert blocking Selenium commands after an unfinished AJAX request.
thoughtbot/capybara-webkit
Capybara driver for browser testing with QtWebKit when JavaScript support is needed.
HTTP 302 redirects for PATCH or DELETE will not redirect with GET
Browsers may keep PATCH and DELETE on 302 redirects instead of switching to GET, breaking AJAX flows. Use 303 See Other or POST method override to force a GET follow-up.
How to avoid multiple versions of a package in yarn
Duplicate package versions in Yarn can break shared globals like window.jQuery, leaving plugins such as datepicker unavailable. resolutions can force one version across dependencies.
Apprise - The attractive alert alternative for jQuery
A lightweight jQuery alert and dialog replacement with full control over styling, content, position, and behavior, without a full UI framework.
Hoptoad and Javascript, Sitting in a Tree, S-E-N-D-I-N-G - GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS
We didn’t want to leave front-end developers in the dark when their Javascript throws errors, so we’ve added a Hoptoad notifier for Javascript!
Delay your Jasmine tests until the document is ready
Jasmine specs can run too early when the DOM is not ready, causing setup to fail. $(done) inside beforeAll waits for document readiness before the suite starts.
Rails: Fixing ETags that never match
Rails default ETags often never repeat because rotating CSRF tokens and CSP nonces change response bytes, blocking cache hits and 304 responses.
Jasmine: Mocking ESM imports
Imported ESM functions are hard to spy on in Jasmine; several workarounds keep call counts testable, including wrapper objects, dependency injection, and test runners with module mocking.
zClip :: jQuery ZeroClipboard
Lightweight jQuery clipboard-copy plugin built on Zero Clipboard, using an invisible Flash movie compatible with Flash Player 10 and below.
wmd - The Wysiwym Markdown Editor
Lightweight browser text editor for comments, forum posts, and basic CMS text with live preview and minimal setup.
A restrictive (but still practicable) CSP for Rails projects
A strict Content Security Policy for Rails limits scripts to nonce-approved sources while keeping styles, images, forms, and fonts workable.
SASS: Adding, removing and converting units
Sass unit arithmetic makes it easy to attach, strip, and convert measurement units when working with CSS values and timing data.
How to make changes to a Ruby gem (as a Rails developer)
Ruby gems need manual file loading, multi-version support, and their own release workflow, unlike Rails apps. Safe changes depend on understanding structure, tests, versioning, and packaging.
Capybara: Testing file downloads
File downloads are awkward to verify with Selenium because browsers may prompt, auto-save, or render binaries instead of HTML. Alternative approaches use request specs, Rack::Test, or the browser download folder.
Google Analytics: Changing the tracked URL path
Google Analytics can record a custom path instead of the current URL, useful for hidden tokens, grouped pages, or interactions without a request.
Upgrading a Rails app to Cucumber 3
Rails apps upgrading to Cucumber 3 often need gem updates, new tag syntax, and step-definition fixes to avoid parser and argument-mismatch errors.
Toggling a maintenance page with Capistrano
Capistrano can switch an app into maintenance mode by publishing a static page on each web server, with customizable message, timing, and template.
Lightning Talk: Coverage based Test Case Prioritization in Ruby on Rails
CLI test case prioritization for Ruby on Rails using coverage data can surface failing specs earlier and reduce regression testing time.
Implementing upload progress and remove button with ActiveStorage DirectUpload
In-place file uploads with ActiveStorage DirectUpload can show progress and support removing a chosen file before form submission.
Upgrading Rails 2 from 2.3.8 through 2.3.18 to Rails LTS
Rails 2.3.x upgrades fix security vulnerabilities and API changes across patch levels, with extra CSRF, XSS, and JSON gem updates needed on some releases.