What we know about PDFKit
PDF generation from Rails uses a WebKit-based wrapper around wkhtmltopdf, with print styling, headers, footers, and binary-version pitfalls.
Complexity in Software 3: The Constructal Law
Software complexity affects maintainability and design quality; the constructal law offers a way to think about how systems evolve toward better flow and structure.
JavaScript: Moving elements inside an array, modifying the array in place
Reordering an array element in place is awkward in JavaScript; splice-based helpers move items by offset and ignore out-of-bounds shifts.
Testing drag&drop with Selenium
Selenium webdriver cannot trigger native drag events, making drag-and-drop interfaces hard to test. jQuery-based simulation libraries can emulate sortable interactions in test code.
Linux: Get your public IP address from the shell
Quickly prints the machine’s public IP address from the shell using a simple external lookup command.
Transactional HTML Email Templates
HTML email styling is fragile across clients and devices, making transactional messages hard to build and test. Open-source templates reduce the work needed for common transactional emails.
Rails 3: Mass assignment protection and .create_with
create_with and where can bypass Rails 3 mass-assignment protection, allowing protected attributes to be set from untrusted input.
jQuery: Work with text nodes and comment nodes
contents() returns all child nodes, including text and comment nodes, and filter() can isolate non-element nodes by nodeType.
Vastly increase the usability of Thunderbird's search
Thunderbird search can be awkward when results open in faceted view and relevance sorting hides recent mail. Add-ons can switch results to list view and sort by date.
Interacting with a Microsoft Exchange server from Ruby
Connect Ruby to Exchange Web Services for mail, calendar, and meeting data when Outlook-only tasks need automation.
Rest-ORM for Angular: Restmod
Creates Angular objects for working with RESTful APIs and streamlines client-side data access through an ORM-style layer.
Alternative for Ruby singletons
Module-level methods and memoized state provide a lightweight alternative to Ruby singletons for shared access to HTTP-backed data.
Full list of Skype emoticons and icons
Hidden Skype codes trigger expressive emoticons and icons that many users miss, including call, time, film, rock, and animal symbols.
The U.S. Digital Services Playbook
Guidance for building effective government digital services with user-centered, iterative practices that improve delivery, quality, and accessibility.
DevDocs - Documentation Browser
Fast, searchable access to multiple API documentations in one browser interface, with offline use and simultaneous searching across downloaded docs.
Mac OS Fix: Opening new Terminal tabs/windows takes ages
New Terminal tabs and windows on Mac can open with long delays, usually due to shell startup or profile scripts slowing each launch.
Hexbook | A Public Library of Beautiful Hexcodes
Curated color tone collection for finding attractive hex codes and palette inspiration.
Input: Fonts for Code
Customizable programming fonts improve code readability and reduce eye strain, letting developers choose typefaces that match their workflow and preferences.
Angular directives: How to find out if you have transcluding content
Angular transcluded content cannot leave fallback text inside ng-transclude; checking the transclusion target in link lets directives show default content when nothing is projected.
MySql lost connection trouble
MySQL connection drops can stem from network issues, long queries, slow initial handshakes, or packets that exceed max_allowed_packet.
Feedjira
Ruby gem for consuming RSS feeds faster and more robustly than RSS::Parser, including tolerance for slightly malformed feeds and Feedburner URL cleanup.
Iterating over a Ruby Hash while tracking the loop index
Ruby Hash iteration can carry an index with each_with_index, but key and value must be destructured explicitly in the block.
How to undo a 'git reset --hard'
Accidentally erased work with git reset --hard? Recovery is often still possible by finding the lost commit and restoring the branch state.
Cucumber: Skipping steps in a scenario outline, based on the current example
Scenario outlines can conditionally run steps per example row, avoiding duplicated long tests when only some inputs need extra actions.