Dynamic conditions for belongs_to, has_many and has_one associations

Runtime association filters are hard in Rails because :conditions cannot take a lambda; a string-interpolation hack or proc can evaluate date-based rules.

Traveling Ruby: self-contained, portable Ruby binaries

Self-contained Ruby binaries run on any Linux distribution and OS X machine, letting app developers ship one package without requiring Ruby or gems on the user’s system.

AngularJS Performance in Large Applications

Large AngularJS screens slow down when many watchers and bindings trigger digest work; reducing watcher-heavy patterns improves rendering performance.

Underscore / LoDash: How to extend (or merge) into a new object

_.extend, _.assign, and _.merge mutate the destination object; passing {} first creates a new object and leaves the originals unchanged.

Installing Adobe Reader on Ubuntu

Adobe Reader is no longer supported on Linux, but some PDFs and forms still need acroread when Ubuntu's default viewer fails.

Managing vendor libraries with the Rails asset pipeline

Rails asset pipeline issues make vendor libraries hard to keep separate; custom asset paths and rewritten font URLs preserve clean library folders and correct references.

"controller as" syntax for AngularJS 1.2+

AngularJS controllers can avoid $scope by binding data to this and using a controller alias in templates for clearer model access.

Asset Pipeline Basics

Rails asset delivery relies on manifests and explicit requires; precompilation output helps verify URLs and troubleshoot missing or misplaced assets.

AngularJS: How to hook to the end of a digest cycle (before the browser redraws)

Forced layout work in a $watch can cause flicker and scroll jumps; deferring it until the current digest finishes avoids repaint glitches.

LibreOffice Writer prints text frames as black areas

LibreOffice Writer text frames can print as black blocks when background fill is enabled. Setting the frame background to no fill prevents the printing defect.

Install or update Chromedriver on Linux

Chromedriver on Linux often falls out of sync with Chrome, causing test failures. Official downloads, geordi chromedriver-update, or package-based installs can keep the driver current.

Enqueue sidekiq jobs dynamically

Sidekiq::Client.push can enqueue a job with a worker class and arguments, matching WorkerClass.perform_async for dynamic job creation.

josephschmitt/Clamp.js

Truncates overflowing HTML content with an ellipsis, including multi-line text. Useful when CSS text-overflow is limited to single lines and -webkit-line-clamp lacks broad support.

Resolving Angular not updating an image src when ng-src is empty

Angular ngSrc leaves src unchanged when the bound value becomes empty; using //:0 forces an invalid blank image source so the browser clears it.

vague puppet error messages with broken yaml files

Broken Hiera YAML can cause Puppet catalog failures with vague parser or nil errors, often after an upgrade or an unquoted facter interpolation.

tel_to Rails helper for linking phone numbers

tel: links let smartphone users call phone numbers from web pages, and a small Rails helper turns human-readable numbers into clean clickable dial links.

BubbletreeJS: A Javascript data visualization library

Interactive visualization of hierarchical data in bubble trees, built on jQuery and RaphaelJS, for exploring spending and other nested datasets.

RaphaelJS: A Javascript vector graphics library

Small JavaScript library for drawing scalable graphics on the web; useful for custom charts and image manipulation widgets.

igor-alexandrov/wiselinks

Opt-in alternative to Turbolinks for partial page updates, AJAX form submission, and redirect handling without full page reloads.

Readme Driven Development

Undocumented software can be as useless as solving the wrong problem; writing the README first aligns the implementation with how people will use it.

Vim: How to write a file you opened without sudo

Permission error in vim can block saving an edited file opened without sudo; :w !sudo tee % or a :w!! shortcut writes it with elevated privileges.

jpmcgrath/shortener

Rails engine gem for creating branded short URLs on your own domain, resolving them for visitors, and collecting basic usage metrics.

Rubymine 7: Howto disable backspace deletes lines instead of whitespaces

Backspace in RubyMine can delete whole lines instead of whitespace when smart indentation is enabled; adjusting the editor's smart key settings restores normal deletion behavior.

Bower complains about missing NodeJS on Ubuntu

bower may fail on Ubuntu when /usr/bin/node is missing; using Ubuntu’s node package can also leave bower unresponsive. A symlink to nodejs fixes the mismatch.