mailru/FileAPI
JavaScript tools for file handling, browser image processing, webcam access, and uploads, with Flash fallbacks when HTML5 support is missing.
danialfarid/angular-file-upload
Lightweight Angular JS file upload directive with old-IE support via FileAPI; Rails asset pipeline auto-loading can fail, so manual inclusion may be needed.
Fixing the warning Time#succ is obsolete; use time + 1
Deprecated Time#succ warnings can flood logs when time ranges are iterated or compared with include?; cover? or SQL BETWEEN avoid the issue.
English words that you cannot use in Coffeescript
CoffeeScript treats on and yes as true, and off and no as false, so variables or functions with those names trigger reserved-word errors.
Show backtrace for all Sidekiq threads
Sidekiq workers can hang at 0% CPU because one thread blocks inside select; sending TTIN to the process prints backtraces for every thread.
problem updating perl package(s) on freebsd `pkg-static: lstat(..../.packlist): No such file or directory
FreeBSD Perl package updates can fail with missing .packlist files after a ports tree bug; cleaning the ports tree fixes the pkg-static lstat error.
Angular: Keeping attributes with invalid values in an ngModel
Angular 1.2 invalid form values can disappear from ngModel, leaving old data unchanged; a directive can keep empty strings, and Angular 1.3 adds allowInvalid.
postgresql: Get all values for an enum
PostgreSQL enum values can be listed as an array with enum_range() and expanded into rows with unnest() for lookups or validation.
Heads up: LibreOffice Calc adds quotation marks when copying data from multi-line cells
Copying multi-line cell content from LibreOffice Calc can add wrapping quotes and double inner quotes, which breaks pasted text like license keys.
$setDirty for Angular 1.2
Angular 1.2 lacks ngModelController.$setDirty; calling model.$setViewValue(model.$viewValue) marks the model dirty without changing its value.
How to fix: "git diff" does not show umlauts (or other non-ASCII characters) properly
git diff can render umlauts and other UTF-8 characters as byte codes when less uses the wrong charset. Setting LESSCHARSET=UTF-8 fixes the display.
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.