Materialized views with Sequel

Materialized views in PostgreSQL provide precomputed query results for faster reads; Sequel can map them cleanly for ORM-based applications.

Github: Search for a repo you've starred

Find a starred GitHub repository again when the name is forgotten. Astral offers split-screen browsing with README previews for starred repos.

How to circumvent Firefox's "Document expired" page in Selenium tests

Firefox blocks back navigation to POST results with a “Document expired” page, which can disrupt Selenium tests that need to verify recovery from this browser protection.

ImageMagick: Cropping images

ImageMagick cropping can preserve aspect ratio by default, and ! forces exact dimensions when a fixed-size image is needed.

flag-icon-css: Scalable country flags

Country flag icons for inline and block display with CSS classes, useful for language selectors, location labels, and compact visual markers.

Falsehoods programmers believe about addresses

Address data is full of edge cases that break naive assumptions about location, format, and identity. Postal and street addresses often vary by country, purpose, and delivery system.

Jasmine 2 cheat sheet for RSpec lamers

Quick RSpec-to-Jasmine 2 reference for matching expectations and mock assertions when switching test style; Jasmine 1.x uses different syntax.

Jasmine: Reset the location when testing code that uses pushState / replaceState

Browser navigation during pushState or replaceState tests can leave Jasmine on the wrong URL and break test reruns. Saving and restoring the location keeps the suite on the spec page.

velesin/jasmine-jquery

Jasmine DOM testing is easier with matchers like toBeVisible() and toHaveCss(css), plus fixture loading for temporary HTML setup and cleanup.

Installing the typhoeus Rubygem on Ubuntu 14.04

Native Ruby HTTP client setup can fail when the libcurl development package is missing. Installing the curl headers on Ubuntu 14.04 allows typhoeus to build and install.

Cucumber: More patience for Selenium features

Parallel Selenium features can time out when Capybara waits too little for browser-server interactions; a support file increases patience for @javascript scenarios.

How to upgrade Cucumber on Rails 3+

Updating Cucumber on Rails 3+ requires refreshing cucumber, capybara, and cucumber-rails, then restoring any custom support setup after installation.

yaronn/blessed-contrib

Build terminal dashboards with ASCII and ANSI art in JavaScript for visual monitoring and lightweight text-based interfaces.

Making Sass talk to JavaScript with JSON | CSS-Tricks

A workaround for passing data from Sass to JavaScript through JSON, later extracted into a library.

puppet: Beware of the Fake False!

Puppet facts are strings, so the value false is still truthy unless converted to a real boolean before an if condition.

AngularJS: Binding to Perl-style getter/setters functions

AngularJS 1.3+ can bind ng-model to accessor functions instead of plain properties, enabling getter/setter style state with ng-model-options.

Testing focus/blur events with Cucumber

Firefox and Selenium can delay real blur events in Cucumber tests, making focus-dependent listeners hard to exercise; ChromeDriver and a custom event workaround avoid the issue.

Magnific Popup: Responsive jQuery Lightbox Plugin

Responsive JavaScript lightbox for single images and galleries, with optional animations and straightforward setup.

pgcli - Postgres command line interface

Command-line tool for Postgres databases with auto-completion and syntax highlighting, making interactive SQL work faster and less error-prone.

jQuery: Get a promise for the end of an animation

animate is chainable, so it does not return a completion handle. promise() provides a way to run code after the animation finishes.

Make jQuery.animate run smoother with almost no code changes

jQuery .animate() can feel choppy because it relies on JavaScript timers, while CSS transitions deliver smoother motion with nearly the same API.

Databound

Provides JavaScript with a simple API for Ruby on Rails model CRUD, useful when direct browser access to create, read, update, and delete operations is needed.

Angular: Binding strength in ngRepeat (aka operator precedence)

ngRepeat with track by can silently prevent filters from running when placed before them; putting track by last preserves ordering.

Researching a new form of HTTP caching optimization - Phusion BlogPhusion Blog

Caching HTTP responses in the server based on an individual cookie can speed delivery, but cache invalidation remains unresolved.