John Cox

Blogs · @wyome

Tagged development · everything

Animate.css - a bunch of plug-and-play CSS animations

Animate.css is a ready-to-use CSS animation library that provides pre-built animations for web projects, installed via npm or CDN and applied by adding class names like `animate__animated` and `animate__bounce` to HTML elements. Version 4 introduced breaking changes, most notably prefixing all classes with `animate__`, though a compatibility file is available for migration from older versions. The library uses CSS custom properties for flexible customization of animation duration, delay, and iteration count, and includes utility classes for common timing adjustments and best practices guidance on using animations meaningfully without degrading user experience.

Permalink

jQuery Tokeninput

Tokeninput is a jQuery plugin which allows your users to select multiple items from a predefined list, using autocompletion as they type to find each item. You may have seen a similar type of text entry when filling in the recipients field sending messages on facebook.

Permalink

Responsive News - Responsive CSS that scales

The piece outlines practical strategies for implementing responsive web design across multiple languages, drawing on the BBC News team's experience building a single codebase that serves 30 languages across all devices. It covers challenges specific to multilingual responsive sites and how to adapt layouts, content, and navigation to work effectively regardless of language or screen size.

Permalink

Fully Understanding the this Keyword | Nettuts+

This tutorial from Cody Lindley's "JavaScript Enlightenment" explains how the `this` keyword works in JavaScript by linking functions to the objects they operate on, and how its value is determined by the context in which a function is called at runtime. It covers common scenarios including method calls on objects, nested functions (where `this` unexpectedly refers to the global window object in pre-ES5 code), and how to override `this` using `call()` and `apply()` methods or the `new` keyword in constructor functions. The guide also demonstrates how `this` behaves differently in prototype methods, where it refers to the specific instance invoking the method rather than the global scope.

Permalink

MacRuby: The Definitive Guide

This is a marketing page for O'Reilly's learning platform, promoting its training services for organizations seeking to upskill their workforce in technology, AI, and management. The platform offers expert-led content, live events, and AI-powered guidance (through "Expert Intelligence") that connects enterprise clients to practitioner knowledge across various business functions. O'Reilly serves over 5,000 organizations and positions itself as a solution for closing skill gaps and accelerating AI adoption across all employee levels.

Permalink

Ben Alman » jQuery doTimeout: Like setTimeout, but better

doTimeout is a jQuery plugin that simplifies managing delayed code execution, polling loops, and debouncing by maintaining an internal cache of timeout IDs so developers don't have to track them manually. It offers a cleaner API than native setTimeout while remaining fully jQuery chainable, allowing for easy cancellation, forced execution, and complex behaviors like polling until a condition is met or debouncing repeated events. The plugin is tested across major browsers and provides practical examples for common use cases like window resize handlers and typeahead search inputs.

Permalink

Can Your Programming Language Do This? - Joel on Software

This essay explains how first-class functions—the ability to pass functions as arguments and create anonymous functions inline—enable powerful abstractions like map and reduce that can dramatically improve code reusability and scalability. The author traces how this capability allows optimization of common patterns (iterating through arrays, combining values) to happen once in well-written library code, then benefits all applications using those libraries, and demonstrates how this principle underlies Google's MapReduce algorithm that powers massive parallel computation across thousands of servers. Languages like JavaScript, Lisp, and modern functional programming environments support this naturally, while older languages like Java force awkward workarounds like functors, limiting the abstractions developers can discover.

Permalink

jQuery Grid Plugin

Guriddo jqGrid JavaScript version 5.9.0 introduces critical security and performance improvements by removing all eval-based code execution to enable Content Security Policy compliance, completely rewriting the virtual scroll module to support variable row heights, and rewriting state management to eliminate unsafe function parsing while maintaining backward compatibility. The release also includes numerous bug fixes and accessibility enhancements across frozen columns, pivot grids, tree grids, and form editing, plus the addition of ARIA labels and improved screen reader support throughout the interface.

Permalink