John Cox

Blogs · @wyome · Now · Shelf

Interesting

Redactor

Scraped text from what looks like a demo or documentation page for a rich-text editor with built-in AI features, with no real article body. It lists several capabilities: an assistant that analyzes drafts and proposes accept-or-reject alternatives, quick in-place rewrite commands (shorten, translate, change tone), block-level collaborative review with tracked suggestions and reviewer/author roles, inline word-level alternatives, and schema-based structured documents with headline, cover, tags, and body fields. Since it has no named product or argument, it's only worth keeping as a feature checklist for comparing editor frameworks, and you'd need to revisit the original page to identify which one it is.

Permalink

Color equivalents table

A reference table of the 147 SVG named colors plus rebeccapurple, the one CSS Color Level 4 added. Each keyword is listed with its decimal RGB, percentage RGB, HSL, hex, and three-digit short hex where one exists. The keyword, decimal RGB, and HSL columns can be sorted. It is useful for converting a named color to numeric values, or for finding the nearest named color to a given value, and it shows that the gray/grey spelling variants and aqua/cyan and fuchsia/magenta are exact duplicates.

Permalink

Opauth – Multi-provider authentication framework for PHP

This is the homepage of a PHP product development company operating since 2000. It pitches custom PHP services (websites, e-commerce, enterprise portals, document management, CMS, dedicated teams) and argues PHP is fast, widely hosted, and powers about 80% of websites. The page is mostly filler: the "who we are" text is vague event-hall copy that seems unrelated to the business, and much of the content is promotional blurbs linking to online casino review and bonus sites in several countries, plus a few unrelated items like wayfinding software and a website monitoring tool. It looks like a link-placement or SEO page, with a few short news posts on PHP basics and casino game development.

Permalink

thepeg/MediaTable · GitHub

A GitHub repository page for MediaTable, a jQuery plugin (jquery.mediaTable.js and CSS, bundled with respond.min.js for media-query support in older browsers) for making HTML tables adapt to different screen sizes. The page is mostly a deprecation notice: the author, Marco Pegoraro, keeps the 2011 code online only as a reminder of how he coded back then and explicitly asks people not to clone or use it because it's out of date. The only substantive pointer is a live demo hosted on GitHub Pages, and the repo has just 12 commits.

Permalink

Internet marketing company: SEO, PPC, social & analytics – Seattle, WA – Portent

This is a notice page for Portent, the digital marketing agency, which was shut down in May 2024 by its parent company Clearlink after almost 30 years. Wallaroo Media now serves many of its former clients, runs portent.com, and plans to redirect Portent's service pages, contact forms and relevant blog posts to its own site, while offering a free assessment to prospective clients. The rest is leftover agency marketing: sister brands Arvo Digital (organic) and Wallaroo Media (paid), client case studies including an award-winning SEO campaign for RealTruck.com, a list of in-house services, and a featured recession ebook and a UX frustration video.

Permalink

CheatSheet

GrandTotal ist eine seit 2008 für den Mac entwickelte Rechnungssoftware, die lokal ohne Cloud-Zwang arbeitet und auf deutsche Anforderungen zugeschnitten ist: GoBD-Konformität, XRechnung 3.0 und ZUGFeRD 2.3, DATEV-Export sowie die Übergabe von Umsatzsteuer-Voranmeldung und Zusammenfassender Meldung über die Steuererklärung.app an ELSTER. Eingangsrechnungen holt das Programm aus der Peppol-Inbox, einem überwachten Ordner oder dem Postfach und liest PDFs, Scans und Fotos per lokaler Belegerkennung aus. Daneben werden anpassbare Layouts (auch aus vorhandenen PDF-Rechnungen ableitbar), Fremdwährungen, mehrsprachige Vorlagen und ein jederzeit anpassbares Abo-Modell beworben. Es handelt sich um die Produktseite des Herstellers, mit einem Verweis auf einen Blogbeitrag, der behauptet, die letzten fehlenden 5 % Passgenauigkeit könne man sich heute selbst bauen.

Permalink

Self-updating scripts | High Performance Web Sites

Steve Souders proposes a way for third-party snippet owners (Twitter, Facebook, Google Analytics) to give bootstrap scripts long cache times without losing the ability to push updates. These scripts currently get 15-minute to 2-hour lifetimes because their hardwired URLs can't be revved, and the resulting Conditional GETs slow pages and hurt Page Speed/YSlow scores. The trick, which he credits to Stoyan, has the bootstrap script carry a version number and report it back through an existing beacon request. If the version is stale, the server replies with JavaScript that creates a hidden iframe loading a page that references the script and then force-reloads itself, so the browser revalidates and overwrites the cached copy. He includes a working four-page demo, notes that the new version only takes effect on the next page view, suggests treating the iframe page as a manifest for other resources, and lists the steps snippet owners would follow. An update at the top notes a race condition fix and an unresolved IE8 bug where the iframe opened in a new tab.

Permalink

Caching Tutorial for Web Authors and Webmasters

Mark Nottingham's long-standing tutorial on HTTP caching, written for webmasters, explains how browser, proxy and gateway caches decide whether to reuse a stored response, and argues that site owners should cooperate with caches rather than fight them. The practical core is that freshness (Expires, Cache-Control max-age) and validation (Last-Modified, ETag) are the real controls, while Pragma: no-cache and HTML meta tags are largely ignored. It then offers tips such as consistent URLs, renaming changed files instead of shortening expiry, and making scripts emit validators or max-age. It closes with setup notes for Apache, IIS, CGI, PHP, ColdFusion and ASP, plus an FAQ covering hit-count statistics, password-protected pages and forcing a refresh.

Permalink

SQL Indexing Tutorial | Use The Index, Luke!

Use The Index, Luke is Markus Winand's free web edition of his book *SQL Performance Explained*, which teaches developers (not DBAs) how to speed up queries through SQL indexing. It works from the ground up, starting with B-tree and leaf-node structure and moving through where-clause indexing, concatenated keys, function-based indexes, range and LIKE searches, and obfuscated conditions. It then covers joins, pipelined ORDER BY and GROUP BY, pagination, and the effect of indexes on inserts, updates and deletes. The approach is vendor-agnostic, with notes for Db2, MySQL, Oracle, PostgreSQL and SQL Server, so it's a good reference when you need to find or explain a specific indexing pitfall.

Permalink

Money Unlimited

Citizens United began as a narrow dispute over whether McCain-Feingold barred a nonprofit from airing an anti-Hillary documentary on video on demand. The piece argues that Chief Justice Roberts engineered its expansion into a sweeping ruling. After a government lawyer's disastrous answer about banning books at the first argument, Roberts let Kennedy turn a concurrence into the majority opinion. Then, to head off Souter's dissent accusing him of procedural manipulation, he ordered a reargument with broadened questions, which left the liberals boxed in and overturned a century of corporate-spending limits. It also sketches the longer history, from Santa Clara and Lochner through the Tillman Act and Buckley, and follows the aftermath in Super PACs and the Arizona public-financing ruling.

Permalink

Manipulating the browser history - MDN

This is MDN's overview of the History API, covering how to move through a tab's session history in JavaScript. `back()` and `forward()` mimic the browser's Back and Forward buttons, while `go()` jumps by a relative offset (negative for back, positive for forward). `go(0)` or `go()` with no argument reloads the current page, and `history.length` gives the number of entries in the stack. A worked example registers a `popstate` listener, uses `pushState()` and `replaceState()` to add and overwrite entries, then steps through them with `back()` and `go(2)`, showing the location and state object reported at each step. It's a reference page for the navigation methods and the `History` and `PopStateEvent` interfaces, not a guide to building routing.

Permalink

Money Unlimited

Citizens United began as a narrow dispute over whether McCain-Feingold barred a nonprofit from airing an anti-Hillary documentary on video on demand. Jeffrey Toobin argues that Chief Justice Roberts engineered its transformation into a sweeping deregulation of campaign money. The government's lawyer, Malcolm Stewart, stumbled under questioning from Alito, Kennedy, and Roberts about whether Congress could ban books. Roberts then had the case reargued on broader questions after Souter's dissent threatened to expose the Court's maneuvering, and he handed the opinion to Kennedy so his own fingerprints stayed off a ruling that overturned precedent and ignored the narrow issue the lawyers had actually raised. Toobin frames this within a century of corporate-rights and campaign-finance history, from Santa Clara and the Tillman Act through Buckley, and follows the fallout in Super PACs and the Arizona public-financing ruling.

Permalink