John Cox

Blogs · @wyome

Tagged development · everything

Understanding the Principles of Algorithm Design | Nettuts+

An algorithm is a set of step-by-step instructions for completing a task efficiently—not just any function, but one designed with optimization in mind, like binary search completing in seconds what brute-force searching might take years to do. The article explains how algorithms power major tech companies and provides practical principles for everyday developers: understanding your input, knowing how your tools work under the hood, grasping how your code interacts with the larger system, and systematically reducing unnecessary operations through caching, loop optimization, and clever techniques like divide-and-conquer. Becoming proficient requires consistent study and practice with algorithm challenges to build intuition for writing performant code.

Permalink

Chrome Dev Tools: Markup and Style | Nettuts+

This tutorial introduces Chrome Developer Tools, focusing on the Elements panel for inspecting and modifying HTML markup and CSS styles in real time, and the Resources panel for viewing page assets including images, fonts, scripts, stylesheets, cookies, local storage, and cached files. It covers practical features like hovering over elements to highlight them on the page, using the box model visualization to diagnose layout issues, editing CSS properties with auto-completion, and understanding how browsers store authentication data and performance-enhancing resources through cookies and local storage.

Permalink

jwerty - Awesome handling of keyboard events

jwerty is a lightweight JavaScript library (1.5kb minified and gzipped) that simplifies keyboard event handling by allowing you to bind, fire, and assert key combinations using intuitive string syntax rather than the browser's native keyboard API. It supports global shortcuts, key sequences, optional key alternatives, regex-like key ranges, and element-specific bindings, with methods like `jwerty.key()` for binding callbacks, `jwerty.is()` for checking events, and `jwerty.fire()` to trigger keyboard events programmatically.

Permalink

PHP: Hypertext Preprocessor

The State of PHP Survey (25 Aug 2026) invites PHP developers to share their experiences and priorities in a 15-minute survey run by The PHP Foundation and JetBrains, with results to be published as an anonymized report later in 2026 and the raw dataset released for community analysis.

Permalink

Google Cloud SQL — Google Developers

I can't provide a summary of this document. The content you've shared appears to be the HTML structure and navigation elements of Google Cloud's documentation homepage rather than an actual article with substantive content to summarize. To help you, please share the text of the article or piece you'd like summarized.

Permalink

jsPDF

jsPDF is an open-source JavaScript library that simplifies PDF generation by offering an intuitive interface for creating professional documents like tickets, reports, and certificates without requiring specialized software or training. The developers released it as open-source to foster community collaboration and improvement, while offering paid support services for those needing personalized assistance with their projects.

Permalink

ChromePHP

Chrome Logger is a browser extension that displays server-side application logs directly in the Chrome developer console, eliminating the need to check separate log files. After installing the extension and a language-specific library (available for PHP, Python, Ruby, Node.js, .NET, and others), developers add log statements to their code that automatically appear in the browser console. The tool transmits logs via HTTP headers, so users must follow security practices like disabling it in production, avoiding sensitive data, and restricting access to authenticated users only.

Permalink

HTML5 download Attribute

HTML5's `download` attribute lets you specify a user-friendly filename for a link's destination file, separate from the actual server filename. This is particularly valuable for dynamically generated files that have cryptic names on the server side but need to appear meaningful to users in download dialogs. The attribute also forces browsers to download the file rather than attempting to open it, eliminating the need for server-side workarounds like PHP headers.

Permalink

PHP Best Practices, a short guide for common and confusing PHP tasks

This guide addresses common low-level tasks in PHP where multiple approaches create confusion, offering best practices for issues like password hashing, database connections, and UTF-8 handling. It focuses on PHP 7.2 running on Ubuntu 18.04 LTS and deliberately avoids high-level architectural advice, security deep-dives, or coding style preferences, instead providing introductory solutions with pointers to further research. The author acknowledges PHP's inconsistent history and evolution while attempting to cut through conflicting tutorials by recommending specific approaches—such as using PDO for databases, the DateTime class for dates, and the Multibyte String functions for Unicode text.

Permalink