There’s no need to guess the number of negative pixels for a text-indent to create a list item marker or hanging punctuation. Use this CSS technique instead! | Continue reading
Apple wants you to use Safari real bad and send aggressive marketing notifications if you’re using a third-party web browser. | Continue reading
A decade ago, the Opera web browser shipped a virtual fridge and a built-in web server right inside its web browser. Why did it fail to decentralize the web? | Continue reading
Microsoft doubles-down on its user-choice hostile web browser behavior; blocks competitors from opening links from many Windows apps and web experiences. | Continue reading
I needed medication to preserve my sight, and it had to be injected directly into my eyeball. It’s a real thing and not just something they do in horror films. | Continue reading
The HTML standard doesn’t provide web authors the tools required to embed small video files in a screen and bandwidth responsive way. This needs to change. | Continue reading
Android Customization Service provides some extra features in exchange for your personal information. However, you can minimize the data it shares with Samsung. | Continue reading
Web browsers don’t yet support (text-wrap: balance). Adobe and the NYTimes have offer free JavaScript alternatives. I improved the latter to suit my needs. | Continue reading
Brave and Firefox implement support for the microsoft-edge: URL scheme. Brave to hijack Bing search links. Plus, the history of all this anti-competitive crap. | Continue reading
The Brave browser has significantly cut the page load time overhead of its adblocker. Brave loaded pages slower than competing browsers without adblockers. | Continue reading
A new promo message for Microsoft Teams broke the Windows desktop shell and the taskbar for Windows 11 Insider users. Why can cloud services break Windows PCs? | Continue reading
Always use the ‘.home.arpa’ top-level domain (RFC 8375,) and don’t use the special-purpose ‘.local,’ or made-up undelegated domain names like ‘.lan’ or ‘.home.’ | Continue reading
Google Chrome for Android gives Google Search (when set as the default search engine) a network performance-boost over competing search engines. | Continue reading
EdgeDeflector stops Windows 10 from forces-opening links in Microsoft Edge, and makes Windows respect the system-wide default web browser setting instead. | Continue reading
Google hasn’t turned Chrome into a feed reader, but it does use Atom and RSS feeds to let visitors follow any website. Here are more details on how it works. | Continue reading
Bing preferred XML and machine-readable file formats over human-readable ones in its search results. How link canonicalization helped rectify the situation. | Continue reading
Firefox for Android “forgets” to send SameSite=Strict cookies to websites, causing them to log you out and forgot you ever visited them in the past. | Continue reading
Rollerblade-style wheels don’t resist movement and help you stay slightly less inactive while spending hours in your office chair. | Continue reading
An automated naming scheme intended to rid the security research field of “sensational names” predictably creates sensational, ambiguous, and suggestive names. | Continue reading
A configuration error made the TeamViewer RPM repository vulnerable to an attacker-in-the-middle substituting TeamViewer with its own GPG keys and software. | Continue reading
Your computer’s thermal compound (paste/grease) is slowly displaced by the “push-out” effect. It must be replaced periodically to maintain high performance. | Continue reading
Twitter tried to reduce load times for external links, but made things slower instead. It mistakenly normalizes domain to a point where they’re no longer useful. | Continue reading
Take manual control of your Linux system’s DNS resolution and keep programs from interfering with and overwriting your resolv.conf file. | Continue reading
Microsoft insists on rebooting your PC every day. Active Hours control gives users up to eight hours a day without reboots. Is this enough? | Continue reading
How to troubleshot and fix issues with laptops not suspending on critically under low battery conditions. As a bonus, learn how to prolong your battery life. | Continue reading
The new Firefox version for Android comes with big changes under the hood, but also drops support for thousands of extensions, and is less configurable. | Continue reading
I browse for items on Amazon UK, ordered through Amazon Germany, items get shipped from the UK through Denmark, and somehow still arrive in Norway in two days. | Continue reading
I got impressive results when comparing AVIF and WebP images at the same visual quality (using DSSIM). AVIF’s 85th percentile was the same as WebP’s 15th! | Continue reading
Batch encoding images into WebP? Enable Sharp YUV for higher visual quality results at only a tiny increase in file sizes at a one-time cost to processor time. | Continue reading
Websites are port-scanning your localhost. Here’s how to stop random websites from knowing what services are running on your device. | Continue reading
I made a new program for embedding XMP sidecar files (.xmp/.xml) into JPEG, PNG, SVG, and WebP image files. | Continue reading
Night mode in Samsung browser explained. How it breaks page contrast and accessibility, pastelify SVG colors, and why web developers can’t do anything about it. | Continue reading
A bug caused 30 minutes of work on an email to disappear. However, I was able to recover it by poking around in the process memory using gdb/gcore. Here’s how. | Continue reading
Unicode 13 introduced new Creative Commons license symbols. Here’s a small font with just the new characters so you can use them on your computer or website. | Continue reading
Verizon Media’s search engines promises “unbiased” search results, but serves results clearly favoring the parent company’s media websites. | Continue reading
The various web browsers focus on different priorities and user experience trade-offs in their lazy-loading image implementations. | Continue reading
Plan for the day your password manager stops working. Backing up your password manager is harder that it sounds. | Continue reading
OpenSMTPD recently had a critical remote code execution vulnerability. I look at how you can limit impact with systemd-service security directives. | Continue reading
You can’t fit 80 cpl. of preformatted code onto a narrow mobile screen. Here are three tips on how to make your code fit without horizontal scrolling. | Continue reading
A comparison of features, security, performance, and limitations of Firefox browser running in isolated sandboxes provided by Flatpak vs. Snap. | Continue reading
YouTube should focus on its primary asset: its creators. Give them the money and viewers an ad-free experience. Unbundle YouTube Premium. | Continue reading
I wasn’t happy with MailChimp, and phpList didn’t do a good-enough job. So I developed my own automated RSS-to-email newsletter system instead. | Continue reading
I’ve explored a number of web browser quirks with and compare it to rel="preconnect". | Continue reading
Your ISP and internet services may not be happy with you if you rent our your PC and IP through FluidStack. An effortless $50/month sure is tempting, though. | Continue reading
You’re the one paying for Grammarly. However, you’re also the one spending your time training and improving its machine-learning algorithm. Is that okay? | Continue reading
How do you keep up with all the new webpages talking about your favorite niche interests? There are few options but Google Discover. | Continue reading
You wouldn’t have been able to discover any published pages on Ctrl blog with Bing in September. I can only speculate as to what I did to offend Bing. | Continue reading
New windows opened from your website can redirect the opener tab to a new destination. Applying mitigations break window.open() functionality like sizing and positioning in Google Chrome. | Continue reading