John Cox

Blogs · @wyome · Now · Shelf

Interesting

Syncthing

Syncthing's homepage pitches it as an open-source, peer-to-peer tool that keeps folders in sync across your own devices or with other people, with no central server holding your data. It rests its case on three claims: privacy (files live only on your machines), TLS encryption with perfect forward secrecy, and certificate-based device IDs so only devices you approve can connect. It also stresses ease of use, with a browser-based interface, support for most major operating systems, and setup that avoids manual IP or port configuration by relying on device IDs and UPnP. It notes that Kastelo provides commercial support and development sponsorship.

Permalink

10 jQuery snippets every designer should know | Webdesigner Depot

A roundup of ten short, reusable jQuery snippets for everyday front-end tasks, each with a brief explanation of how it works. They include an animated back-to-top scroll, checking whether images have loaded, swapping in a fallback for broken images, hover class toggling, disabling and re-enabling submit buttons, and preventing default link behavior. The list also covers fade/slide toggles, a minimal accordion, matching div heights with min-height, and zebra-striping list items. It's a bookmarkable cheat sheet of copy-paste code rather than a tutorial, and it invites readers to share their own go-to snippets.

Permalink

The right way of caching AJAX requests with jQuery

Caching jQuery AJAX responses is cleaner if you store the promise that `$.post` returns instead of the response data. The post starts with a hand-rolled null-flag cache, then replaces it with a short version that keeps `cache[id] = $.post(...).promise()` and calls `.done(callback)`, which works whether the request is pending or already resolved (a done callback on a resolved promise fires immediately). It also shows `$.when(...)` with `.then` as a way to wait on several parallel requests without nesting callbacks, though the example code has some typos.

Permalink

Home — Google Web Fundamentals

This is the landing page for web.dev, Chrome's hub for web development guidance, not a single article with an argument. It says the site's aim is to help developers build accessible, fast, secure, cross-browser sites, with content from the Chrome team and outside experts. The page mostly serves as a directory: free Learn HTML and Learn CSS courses, plus topic areas on AI and the web, Baseline, CSS and UI design, Core Web Vitals, Progressive Web Apps, accessibility, and payments and identity. It also points to a blog for news and a developer newsletter. It's worth keeping as a bookmark to the starting point for those resources, not for any specific claim or finding.

Permalink

How to Fuel for Your First Marathon | Runner's World

A Q&A-style fueling guide for a first-time marathoner who keeps hitting the wall around mile 15 of long runs on only water and a few chews. The advice is that she is taking in far less than the recommended 30-60 grams of carbohydrate an hour (the answerer aims for 45), so she should use the GUs that worked in her half-marathons, spread small amounts every few miles, chase them with water, and build up her gut's tolerance gradually to avoid stomach trouble. It also stresses trial and error and logging what works in a training journal, and includes carb counts for gels (~25g), chews (4-8g), and sports drink (~15g per 8 oz) plus a sample four-hour schedule that totals 45g an hour.

Permalink

ilya-dev/belt · GitHub

Belt is a PHP utility library (installable via Composer as ilya/belt, version 2.0.0) that brings Underscore/Lodash-style helpers to PHP, with over 60 functions covering collections (map, reduce, groupBy, sortBy, pluck), array manipulation (flatten, union, zip, range), function wrappers (once, compose, cache, after), object inspection, type checks (isDate, isNumber, etc.), and small utilities like id and escape. The README lists every function signature and marks all feature groups as done, with the only stated plan being PHP 5.6 support to take advantage of variadic functions. It's worth keeping as a quick reference for a functional-style toolkit and its full function list, released under the MIT license.

Permalink

shine.js

Shine.js is a small dependency-free JavaScript library, installable via Bower or direct download, that makes an element cast a shadow as if lit from a movable light source. You create a `Shine` object for a DOM element, then update `shine.light.position` (typically from mouse movement) and call `draw()` to recompute the shadow, which is rendered as text-shadow or box-shadow depending on the content. It supports customizable shadows, works with AMD, and auto-prefixes for browsers that need it; it was coded by Benjamin Bojko, designed by Naim Sheriff, and made at Big Spaceship.

Permalink

Trucking used to be a ticket to the middle class. Now it’s just another low-wage job.

Port truckers at the Port of New Jersey, most of them now classed as independent owner-operators since deregulation in the 1980s, earn about $28,000 a year after covering fuel, tolls, insurance and repairs, and they get no benefits or unemployment protection. The piece follows Miguel Tigre, who is broke and may have to sell his truck, and Joey Centeno, who spends hours in terminal lines that go unpaid. It also gives space to Edisson Villacis, a former Teamster who fights the union's misclassification bill, which would presume drivers are employees, because he values his independence and the immigrant businesses that depend on drivers like him. The Teamsters argue the misclassification costs drivers while letting port delays go unpunished, and Villacis imagines alternatives like a driver-owned company, though no one yet seems ready to back them.

Permalink

Vegas Background jQuery Plugin

Landing page for Vegas 3, Jay Salvat's background slideshow plugin, whose headline change is that it has been rewritten in vanilla JavaScript instead of depending on jQuery. The page points to a "Sin City" demo built with Unsplash photos, documentation, a GitHub fork link, and a download for the older 2.1.x version. It also promotes paid support at $24 per question, which returns a zip with a commented working example, plus a tip-jar "buy me a beer" option. There's little technical detail beyond the announcement, so it's mainly useful as the pointer to the library and its docs.

Permalink

Solar Solutions & Solar Panels for Home, Business & Utility-Scale, Photovoltaic Systems | SunPower

This is the landing page for SunPower's residential and commercial energy offering, pitching a bundled system of solar panels, intelligent batteries, and smart management that turns a property into a responsive energy environment. Its case rests on the brand's decades of solar history, high-efficiency panels tested for durability, custom solar-plus-storage design, support from consultation through installation, and a 25-year manufacturer warranty. It's marketing copy rather than analysis, with no pricing or technical specifics, though a note directs former SunPower Corporation customers to separate information, which suggests the current company is a successor to the original.

Permalink

12 Little-Known CSS Facts

A SitePoint listicle of twelve obscure CSS details meant for newer developers, with live demos for each. The items include `color` also tinting alt text, list markers, borders and `hr`; `visibility: collapse` behaving differently in Chrome than in other browsers; vertical padding and margin percentages resolving against container width; `clip` working only on absolutely or fixed positioned elements; and the expanded `background` shorthand with its slash-separated size syntax. The rest cover nested border shorthands, the `text-decoration` shorthand (then Firefox-only), `border-width` keywords, `empty-cells`, `oblique` versus `italic`, and `word-wrap` being an alias of `overflow-wrap`. The author also questions whether anyone really uses `border-image`. Browser support notes date it to the IE8–IE11 era.

Permalink

Seven JavaScript Quirks I Wish I’d Known About | Telerik Developer Network

A developer who moved from C# to full-time JavaScript walks through seven quirks that tripped him up: `==` vs `===`, bracket notation (used to turn switch statements into dispatch tables), function declarations vs expressions, named vs anonymous functions, IIFEs, and `typeof` vs `Object.prototype.toString`. The longest section covers how `this` is determined, using Back to the Future examples. It goes through the global default, method calls, detached or asynchronously invoked handlers, and constructors, and shows how `call`, `apply` and `bind` fix it. Along the way it argues for strict equality, for IIFEs as a way to avoid polluting global scope, and for `toString` when you need to distinguish arrays or regexes, and it ends with a list of further reading on each topic.

Permalink

jQuery Spellchecker demos

The jQuery spellchecker plugin is a lightweight tool for checking spelling inside a form field or across a DOM tree, and this page is its demo hub. It lists examples for plain HTML, textareas, multiple fields, different backend drivers (Google and PSpell), and multiple languages. It also shows integrations with rich-text editors including MarkitUp, jHtmlArea, Bootstrap-wysihtml5, Redactor, TinyMCE, and CKEditor. It reads as a reference for choosing which spellcheck setup and editor integration to copy, rather than as an explanatory article.

Permalink

SonicWall NetExtender for OS X Mavericks - The Hiltmon

A workaround for getting SonicWall's NetExtender VPN client to run on Mac OS X 10.9 Mavericks when your company's SonicWall appliance only serves an outdated version (6.0.719) that breaks on the new OS. Rather than upgrading the company device, the author, a CTO who refuses to do so, downloads the latest client from SonicWall's public demo site, installs it, then switches from the demo connection back to his saved company settings. Later updates note that the demo login has stopped working, so he hosts a DMG copy, and point Mavericks-and-later users to the Mobile Connect app on the Mac App Store or to MySonicWall.com for current downloads.

Permalink

50 Must-have plugins for extending Twitter Bootstrap | Tutorialzine

A Tutorialzine roundup of about 50 plugins that extend Twitter Bootstrap, sorted by purpose: galleries and lightboxes, dialogs and notifications, form controls (tags, switches, selects, validation, WYSIHTML5 and Markdown editors), date/time and color pickers, table enhancers, interface widgets like tour guides and tab dropdowns, and AJAX tools such as X-editable and Typeahead. Each entry gets a short description, links to its site and GitHub, and sometimes an alternative, which makes it a handy catalog for finding the Bootstrap-styled version of a common widget. It opens with a plug for the paid Bootstrap Studio drag-and-drop builder and also covers the Fuel UX and Jasny collections.

Permalink

Imagine no SSL encryption, it’s scary if you try | Agile Blog

1Password's maker explains that the Heartbleed bug in OpenSSL doesn't touch 1Password's own encryption, which doesn't rely on SSL/TLS, but that nearly everyone's logins to HTTPS and IMAPS services may still have been exposed. The advice for ordinary users is to wait rather than rush to change passwords, since changing one before a service patches OpenSSL and replaces its certificate means the new password can be captured too. The post also explains how session keys and public/private keys work, and why a leaked server private key lets attackers read traffic and impersonate the site. For sysadmins, it adds that patching isn't enough: they must issue new certificates (with keys of at least 2048 bits), tell users, and can check exposure with Filippo Valsorda's testing tool. Updates from April 12 note that Agile Bits and Dropbox have installed new certificates.

Permalink