Pure CSS Timeline | CSSDeck

Interactive timeline effects without JavaScript, using CSS state and radio buttons to switch visible content.

How to load only a subset of a massive MySQL dump

Large MySQL dumps can take days to import when only a development subset is needed. Filtering INSERT rows during import loads structure and selected data without editing the dump file.

Installing therubyracer and libv8 with Ruby 1.8 on OSX Mavericks

Ruby 1.8 on OS X Mavericks can fail to build therubyracer and libv8 native extensions; updating the gems or linking a Homebrew V8 build can restore bundling.

pngquant — lossy PNG compressor

pngquant compresses PNG images by converting 24/32-bit files to paletted 8-bit output, often cutting size dramatically while preserving full alpha transparency.

MySQL 5.6 slightly changes DECIMAL data type

MySQL 5.6 changed DECIMAL storage and removed the old extra-digit behavior, so columns that relied on it may now need higher precision.

How to install older versions of REE with rbenv on Ubuntu 12.04

rbenv on Ubuntu 12.04 fails to build older REE releases because of tcmalloc.cc and SSL compilation issues.

Workflows of Refactoring

Refactoring keeps code maintainable by improving structure without changing behavior, reducing technical debt and making future changes easier.

Don't use "self" as a Javascript variable

Using self as a JavaScript variable can collide with the global window alias and cause confusing bugs when capturing this in callbacks.

Support for Ruby version 1.9.3 will end on February 23, 2015

Support for Ruby 1.9.3 ends on February 23, 2015, leaving applications on that version without further maintenance or security fixes.

The new Modularity 2 syntax

Modularity 2 replaces does with include-based traits and new naming rules, with automatic migration support for existing Ruby projects.

Linux: Disable Bluetooth on startup

Bluetooth starts automatically at boot and can be stopped by disabling the service in startup scripts.

Cucumber / Selenium: Access and test document title

Verify that page titles contain expected text during browser tests with Selenium and Cucumber, avoiding mismatches in document title assertions.

Careful with '||=' - it's not 'memoize'

||= does not memoize nil values, so expensive lookups or database queries may run repeatedly when the result is absent. Use defined-instance-variable caching when nil must be cached.

Choosing the Right Size and Format for Icons

Icon sizing and file formats vary across Windows, macOS, iOS, Android, and Linux, making asset preparation inconsistent.

Prevent long strings from stretching your <table> with CSS

Long unbroken strings can stretch table columns and break layout. table-layout: fixed with set widths keeps column sizes consistent across rows.

Opal, A new hope (for Ruby programmers)

Opal compiles Ruby to JavaScript and includes a runtime and core library, aiming for broad RubySpec compatibility for browser and client-side code.

Rails always tries to use a layout with the same name as your controller

Rails automatically applies a same-named layout for a controller, which can create surprising view behavior when an unintended template is picked up.

Threads and processes in a Capybara/Selenium session

Capybara/Selenium tests involve a test process, a server thread and a browser process, so blocking, stale time, and uncommitted transactions can cause seemingly impossible failures.

Careful when writing to has_many :through associations

has_many :through associations can lose or duplicate records when written to, especially with nested forms and loaded associations. Treat them as read-only or build the join records directly.

Howto set jQuery colorbox overlay opacity

Colorbox overlay opacity set in the initializer can be overridden by an inline style, leaving the backdrop too opaque. A CSS !important rule on #cboxOverlay restores the intended transparency.

Sort a Ruby array with multiple criteria

Ruby arrays can be ordered by multiple keys with sort_by, using an array of values for primary and secondary criteria. Natural sorting also works with the same pattern.

How to fix "undefined method `name' for Array" error when running bundled commands on Ruby 1.8.7 + Rails 2.3

Bundled commands can fail on Ruby 1.8.7 and Rails 2.3 with undefined method 'name' for Array because rubygems-bundler or Bundler no longer works reliably on older setups.

Skype screen sharing: Select which monitor to share

Multiple monitors can make Skype sharing tricky, but moving the call window to the desired display before starting sharing selects the correct screen on Linux.

Auto-coerced virtual attributes with Virtus

Virtual ActiveRecord attributes can lose Rails-style type casting, causing string values, validation roundtrip bugs, and broken select boxes. Virtus restores coercion for non-persistent fields.