sidekiq-unique-jobs now ships with a nice util and console

Sidekiq-unique-jobs gains a utility and a console for checking and managing unique jobs more easily.

How to preview an image before uploading it

Live image previews in file upload forms improve user feedback before sending files to the server, using URL.createObjectURL with img tags or Unpoly compilers.

rroblak/seed_dump

Creates a db:seed:dump rake task that generates db/seeds.rb from the current database state for replayable sample data.

twitter responds with HTTP 401 for missing profiles

Crawling Twitter profiles can return HTTP 401 even when credentials are correct, because missing profiles also trigger Unauthorized responses.

How to use triple quotes inside a Cucumber docstring

Cucumber docstrings break when nested triple double quotes appear inside the text; escaping or a Transform can preserve embedded quote markers.

Install MySQL 5.6 in Ubuntu 16.04

MySQL 5.7 on Ubuntu 16.04 can break older applications; Oracle’s 5.6 APT repo and matching client libraries let development machines keep legacy compatibility.

Using Bumbler to Reduce Runtime Dependencies - The Lean Software Boutique

bumbler identifies slow-loading Ruby gems that inflate startup time and runtime dependencies.

Caching best practices & max-age gotchas - JakeArchibald.com

Caching headers can silently keep stale content around or trigger needless revalidation when max-age is misused. Correct cache control improves freshness, performance, and bandwidth use.

VCR: An OAuth-compatible request matcher

OAuth query parameters with nonces or timestamps make VCR request matching fail because each URI changes. A custom matcher can ignore the variable OAuth values.

Running the Awesome window manager within MATE

Run the Awesome tiling window manager inside MATE to keep tiling and multi-display features while retaining panels, menus, updates, and other desktop conveniences.

Top-level constants in BasicObject

Top-level constants are not visible inside BasicObject; unqualified names can raise NameError. Prefixing with :: accesses constants attached to Object.

Postgres Index Types

Postgres uses B-Tree indexes by default, but other index types can perform better for specialized lookup patterns and data distributions.

Test e-mail dispatch in Cucumber

Spreewald Cucumber steps can verify that e-mails were sent with arbitrary conditions, useful for testing mail dispatch logic.

Reading and writing cookies in JavaScript

Client-side cookies in JavaScript can be read and written through document.cookie, but values must be parsed and path and expiry must be set carefully.

An interactive Git shell

A dedicated shell for Git workflows reduces repetitive typing and keeps command entry focused. git config --global help.autocorrect true helps absorb accidental git prefixes inside gitsh.

How to fix: HTML5 video not working in IE9

IE9 can fail to play HTML5 video unless HTML5 mode is forced. Using an HTML5 doctype or X-UA-Compatible meta tag enables playback.

Infinitely nested hashes in Javascript (Coffeescript)

Read and write deeply nested object values without manual path checks; NestedHash recursively traverses keys and creates missing levels.

MySQL / MariaDB: Show disk usage of tables and columns

Disk space usage in MySQL or MariaDB can be measured per table and per column with simple information_schema and char_length queries.

Ever wanted man pages that actually help? Here you go

Command-line syntax is hard to read; explainshell breaks commands into parts and explains each option using parsed man pages.

Git: Delete a branch (local or remote)

Removing local or remote Git branches prevents stale feature lines and clears finished work. git branch -d and git push origin --delete handle the common cases.

Analyse short links

Short links can reveal their destination and redirect chain before you click them by adding + to the end; public stats and profile exposure can leak traffic information.

Looping through iterators in Coffeescript

Modern JavaScript APIs often return iterators, and CoffeeScript cannot use for...of for them. while with iterator.next() is needed to read iterable values.

Manually uploading files via AJAX

Binary file uploads need FormData so AJAX can send multipart payloads from file inputs without manual serialization; older browsers often need a plain form fallback.

Postgresql: trigram indexes for searching

Fuzzy string matching can be slow or inaccurate with LIKE and full text search. Trigram indexes offer a lighter approach for partial search and typo tolerance.