John Cox

Blogs · @wyome

Tagged tutorial · everything

Switching from Gmail to FastMail / Max Masnick

The author, a power Gmail user, successfully migrated to FastMail in early 2013 and documents why it's a viable alternative that actually surpasses Gmail in several ways. FastMail meets all critical requirements—fast web interface with keyboard shortcuts, generous storage, excellent IMAP support, powerful search and filtering, custom SMTP settings, and a transparent subscription model without ads—while offering advantages like faster performance, Sieve rules, and direct domain support without requiring Google Apps. The post includes practical migration steps and notes that while a few Gmail features like undo send are missed, FastMail's overall capabilities make the switch worth considering for email power users.

Permalink

Tips And Tricks - Chrome DevTools — Google Developers

This is Google's official documentation for Chrome DevTools, the browser's built-in web development toolkit. It covers features like debugging with AI assistance through Gemini, inspecting and editing resources, analyzing network activity and performance metrics, and integrating DevTools with coding agents via the Model Context Protocol. The documentation also highlights performance optimization tools like the Performance panel and Lighthouse audits, plus various debugging guides organized by task.

Permalink

One Thing Well | Remote SSH using Back To My Mac

This post explains how to use SSH to remotely access another Mac over iCloud's Back To My Mac service by connecting via IPv6, leveraging the fact that iCloud accounts are shared across multiple Macs. The author provides the technical steps to find your account number and configure SSH, then shows how to simplify the process by adding an entry to your SSH config file so you can connect with a single short command. An update notes a way to dynamically retrieve your Back To My Mac address instead of hardcoding it.

Permalink

Below are simple styles to "flatten" bootstrap. I didn't go through every control and widget that bootstrap offers, only what was required for https://commando.io, so your milage may vary.

This is a CSS snippet that strips Bootstrap's default visual styling to create a flatter, minimalist design aesthetic. It removes shadows, rounded corners, and gradient backgrounds from Bootstrap's core UI components (buttons, forms, alerts, modals, etc.) by applying !important overrides across multiple prefixed properties. The author created this specifically for Commando.io and notes it only covers the Bootstrap elements actually used in that project, so it may need customization for other applications.

Permalink

FooTable: a jQuery Plugin for Responsive Data Tables | CSS-Tricks

Brad Vincent introduces FooTable, a jQuery plugin that makes data tables responsive by hiding columns at specified breakpoints and allowing rows to expand to reveal hidden data—combining the column-hiding and row-inversion approaches from existing solutions. The plugin uses HTML5 data attributes for intuitive configuration directly in markup and features an extensible architecture with optional add-ons like sorting, allowing developers to include only the functionality they need for each project.

Permalink

Deep dive into the murky waters of script loading - HTML5 Rocks

This article explains the various ways to load JavaScript in browsers and their tradeoffs, from simple script tags to complex techniques leveraging browser quirks. The author maps out how different script-loading methods (plain tags, defer, async, dynamically-created scripts with async=false) behave across browsers and parsing states, showing that each approach makes different compromises between blocking rendering, controlling execution order, and triggering parallel downloads. The practical conclusion is pessimistic: HTML offers no way to simultaneously avoid blocking rendering, load scripts in parallel, and guarantee execution order without either repetition or JavaScript complexity, so most developers should simply place script tags at the end of the body.

Permalink

5 CSS3 features explained — Adnane Belmadiaf's Blog

This post surveys five CSS3 features that replace JavaScript-dependent workarounds: Flexbox for complex layouts like vertical centering and multi-column designs, :nth-child selectors for styling alternating table rows without extra markup, the hyphens property for intelligent text wrapping, filter effects for GPU-accelerated visual manipulations like grayscale and blur, and media queries for responsive design based on screen size and device orientation. Each feature includes browser compatibility information and practical code examples demonstrating its use.

Permalink

5 HTML5 Javascript APIs to keep an eye on — Adnane Belmadiaf's Blog

This post surveys several modern JavaScript APIs that have emerged alongside CSS improvements, demonstrating JavaScript's expanded capabilities for hardware access and system information. It covers the Battery Status API (checking device charging state and power level), Gamepad API (connecting console controllers for browser games), Device Orientation API (accessing gyroscope data for device tilt), Geolocation API (retrieving user location coordinates), and Page Visibility API (detecting when a page is minimized or backgrounded), providing code examples and browser compatibility charts for each. The author highlights useful libraries like battery.js and gamepadjs that simplify cross-browser implementation of these APIs.

Permalink

Direction-Aware Hover with CSS3 and jQuery | Codrops

This tutorial demonstrates how to build an interactive hover effect where a semi-transparent overlay slides onto thumbnail images from the direction the user's mouse is entering, then slides out in the same direction when the mouse leaves. The technique combines jQuery event handlers to detect mouse direction by dividing the element into four triangular zones, CSS3 transitions to animate the overlay movement, and fallback jQuery animations for older browsers that don't support CSS transitions.

Permalink

So You Want to Accept Credit Cards Online? - Tuts+

This tutorial explains how to integrate Stripe's payment processing into a website to accept credit cards, replacing the expensive and complicated traditional merchant account setup with a simple five-minute integration. The author walks through the complete implementation using PHP and JavaScript, covering SSL certificate installation, form creation, client-side token generation to keep card data secure, and server-side charging via Stripe's API, while highlighting key advantages like transparent pricing (2.9% + $0.30 per transaction) and the security benefit of never handling raw credit card data on your own server.

Permalink

jQuery Unveil - A very lightweight plugin to lazy load images

Unveil is a lightweight lazy-loading plugin for jQuery that defers image loading until they enter the viewport, reducing page load times on long pages. It uses data attributes to specify actual image sources and supports retina display optimization through a separate high-resolution image attribute, all in under 1KB. The plugin offers customizable loading thresholds, callback animations, and manual triggering options while maintaining fallback support for users without JavaScript enabled.

Permalink

5 HTML5 Features you need to know – Adnane Belmadiaf's Blog

This post surveys practical HTML5 features that improve web application performance and reduce development overhead, including DNS prefetching to speed up domain resolution, link prefetching and prerendering to load anticipated content in advance, the download attribute to trigger file downloads without server-side code, pattern validation for form inputs using regular expressions, and the datalist element for autocomplete functionality without requiring jQuery or database queries. The examples demonstrate how these built-in capabilities eliminate common workarounds and dependencies that were previously necessary for basic web app functionality.

Permalink

Lateral On-Scroll Sliding with jQuery

This appears to be an archive listing of web design and development tutorials from 2011, organized chronologically by month. The entries cover interactive UI components and visual effects built with technologies like CSS3, jQuery, and HTML5, including carousels, accordions, image galleries, hover effects, and animated menus. The collection represents typical front-end web development techniques from the early 2010s era.

Permalink

Statistical Formulas For Programmers

This page collects classical statistical formulas commonly needed by programmers to properly report and analyze data, organized into five categories: reporting averages (standard deviation, confidence intervals, t-tests), proportions (binomial and multinomial confidence intervals, chi-squared tests), count data (Poisson distributions), comparing distributions (Kolmogorov-Smirnov tests), and trend lines (regression). Each formula includes its mathematical expression, variable definitions, brief commentary on why it matters, and references for further learning, with the underlying argument that understanding these statistical tools helps programmers move beyond simple point estimates to make meaningful claims about underlying data patterns.

Permalink

windows

This is documentation for a jQuery plugin that creates full-screen scrolling sections with snapping functionality. The plugin provides an API for tracking scroll position, detecting which window is in view, and automatically snapping sections into place, while leaving styling to the developer's own CSS.

Permalink

Untitled (http://www.html5rocks.com/en/tutorials/workers/basics/)

Moving computationally intensive work off the main thread using web workers can make web apps feel more responsive across devices of varying capabilities, even if total execution time doesn't improve. While web workers have historically been awkward to use due to message-passing complexity, libraries like Comlink abstract away this difficulty and allow developers to separate concerns like game logic from UI rendering, ensuring that user interactions receive timely main-thread attention. The off-main-thread approach trades raw speed for reliability and perceived responsiveness, particularly benefiting constrained devices where a frozen interface is worse than a slow but continuously updating one.

Permalink