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.