Firehose

This is everything, all in one place, coming ’atcha!

This firehose contains a record of all my micro posts, articles, photography, and other web doings. If you’d like to subscribe to feeds to stay up-to-date with things, then you can do so via my syndication page.

2026’s Google I/O (Google’s annual developer conference) has been a disaster for the web. The conference-driven development’s forcing through of the Prompt API, a set of Modern Web Guidance skills for AI systems to use that are already showing major accessibility shortcomings, and a whole ton more AI-spangled sloppery, is rushed and unwelcome.

I think the most damaging announcement is the changes coming to Google Search. Rather than a list of relevant links, a search on Google will be more aggressively prioritising the LLM-generated summary, now complete with vibecoded tables, graphs, and interactive elements.

There has until now been a social contract. Website owners let Google scrape their sites and present them in Google Search, and, in exchange, Google Search sends traffic back to those sites. Google wins via adverts on the search page, and sites win due to however they monetise traffic. More largely, everyone wins because there is a financial incentive to create and produce new content.

However, Google killing their side of the contract ends this. If Google only takes and never gives, then sites cannot profit. What is the incentive to publish if the only outcome is feeding Google’s AI with no return? What sources will LLMs have to pull from if all the sources are defunct? How far will Google go folding adverts into their AI output?

I can see the huge short-term gain for Google, but I see no long-term path – not even an unsustainable one. This feels like the end, but of exactly what I’m uncertain.

All of my peers (bar the ones that work at Google) are shattered in a way I’ve never seen before. I don’t know where we go from here.

Lessons From Tech Support

Tech support support.

Details and knowledge pertaining to providing tech support for people on a professional basis. Various tips and tricks, as well as advice on effectively communicating with clients to effectively provide help with minimal confusion and without needless effort, while ensuring a smooth and productive outcome.

https://vale.rocks/posts/tech-support

I need write some words coherently proper please. Grant me strength to word put together into sentence so can read well and goodly. Brain all frazzled can’t word readable way thank you. Oh dear. Too many language.

EmDash caught my eye when Cloudflare released it at the start of April. April 1st, no less. It is a simple content management system built upon the lovely Astro web framework. EmDash looked like a solution to some problems I encounter, those being that WordPress is too much to manage for simpler sites and is too complex for less computer-adept folks to manage. I love static sites, but a CMS is a must for people without much tech experience. A bespoke static site is also a much greater undertaking than an off-the-shelf offering.

WordPress and I get on as well as any developer can get on with WordPress. We might not be the best of friends, but we are amicable. However, I sometimes yearn for something simpler I can plonk in front of an older or less technically inclined client. Something that is easy to host, easy for people to update content on, and looks decent out of the box is the dream. Sure enough, someone who could barely manage their Mac managed to figure out EmDash. Hooray!

Unfortunately, EmDash isn’t ready for prime time. It is primarily AI authored, and that shows. Some UI elements overflow off the screen. Many features lack documentation or have documentation that is ambiguous in a way that only an LLM can manage. ‘Failed to publish. Failed to publish content.’ is an error as frustrating as it is vague. It also isn’t triggered by some unknown edge case, as I can replicate it with the CMSonline playground.

There is no polish here, and it is an exercise in frustration. I can’t in good faith put EmDash in front of a client. EmDash will probably improve (it is only a month and a half old), but it isn’t fit for use yet. Far from it.

Playing around with training a small language model exclusively on my own writing and work again.

I love this output: https://www.com/wiki/posts

It is trained on links and the presence of URL parts like ‘https’, ‘www’, ‘com’, and ‘wiki’ (from Wikipedia) in association but doesn’t quite manage to put them together correctly. This mode of failure really represents how language models work under the hood.

A far from perfect little table, but one that hopefully gets the point across and works as a reference. Scripts ≠ languages, with many scripts being used by many languages.

Script Indicators Example
Chinese Dense, complex, and boxy. 这里的门在哪?
Japanese Mixes dense Chinese-style characters with simpler curved kana symbols. 明日も仕事です。
Korean Highly geometric; lots of circles and straight lines. 어디로 가야 하죠?
Thai Tall, narrow letters with tiny loops/circles at the start of strokes. ตรงนี้มีอะไรขาย?
Khmer Similar to Thai but busier with wavy, ornate tops and more horizontal connection. ខ្ញុំមិនយល់ទេ។
Burmese Extremely round; looks like a collection of interlocking circles. Very few straight lines. ဘယ်လောက်ကြာမလဲ?
Devanagari (Hindi) Distinct horizontal bar connecting letters at the top. बस कब आएगी?
Bengali Has a top bar like Hindi, although segmented. Letters are more triangular/pointy. আমি এখনই আসছি।
Tamil No top bar. Curvy with blocky loops and square shapes. எனக்கு புரியவில்லை.
Sinhala Very curvy and ornate with spiral-like curves. මට ඒක දෙන්න.
Tibetan Top-heavy characters with a horizontal line and long, sharp vertical descenders. ག་རེ་བྱེད་ཀྱི་ཡོད།
Vietnamese Latin alphabet with lots of diacritics (often multiple on the same character). Cửa hàng đóng cửa rồi.
Arabic Flowing connected cursive written right-to-left; many dots above/below letters. هل هذا صحيح؟
Cyrillic Similar to Latin alphabet but with distinctive letters including Ж, Д, Ы, Ф. Как это работает?
Lao Similar to Thai but rounder and less vertically tall. ເຮັດຫຍັງຢູ່?
Gurmukhi Straight top line like Devanagari but with more open rounded forms. ਮੈਨੂੰ ਪਤਾ ਨਹੀਂ।
Telugu Very round with many hanging curves and circular shapes. నాకు అర్థం కాలేదు.
Kannada Rounded like Telugu but more compact and angular. ಇದು ಎಲ್ಲಿ ಸಿಗುತ್ತದೆ?
Hebrew Blocky right-to-left script with compact letters and few curves. מה השעה עכשיו?

Trying to kill WordPress is like trying to kill a god. You will be made an example of, humiliated, and quite possibly smote by powers otherwise unknown in this realm.

I love dark mode, but it mustn’t be the only option. For a lot of people, white text upon a dark background is illegible.

Common eye conditions like astigmatism, myopia, and presbyopia can make content look foggy, become hard to focus on, and cause eye strain.

Pure white text on a pure black background, blurred in a manner representative of what some people with astigmatism might see. It is difficult to read and focus on due to halation, with the bright text appearing to bleed into the dark background.

The above effect is especially exacerbated by strong contrast, like pure white on pure black. However, different conditions benefit from different levels of contrast. For example, people with conditions such as cataracts, aniridia, and achromatopsia can benefit from low-contrast visuals. The prefers-contrast CSS media feature is fantastic for tailoring to your user’s needs.

I got jumpscared by John Lennon’s face appearing on my computer screen, but it was actually my own reflection. It was late ’60s John Lennon I thought I saw as well, so evidently my hair is looking dishevelled.

You can’t put important links exclusively in your site’s footer if you have infinite scroll.

You can’t have infinite scroll if you put important links exclusively in your site’s footer.

Please stop.

A lot of developers mistakenly think that the code is the product. In reality, for most businesses the product is the product, and the code is merely means to an end.

I think this explains why so many developers’ efforts are so horribly misguided by modern technologies. They’re building the code, not the product.

I’m trying to reduce my reliance on the increasingly unstable United States of America and move to more ethically run services. As part of that, I’m moving from GitHub. I’ve been steadily moving off GitHub for months. I’ve moved lots of site hosting off of GitHub Pages, removed GitHub-based comments from this site, and have been rearchitecting systems to avoid being GitHub-specific.

Unfortunately moving to another Git forge is a big effort – in part due to choice. Though I am comfortable and capable of self-hosting, I don’t want to have to self-host my Git forge. That isn’t a maintenance burden I want, and unless federated, it adds unwanted friction for contributors.

  1. GitLab: I’ve been on GitLab for ages. It is pretty fully featured but has an identical vibe to GitHub. If they had the chance, I think they’d make the exact same mistakes.

  2. SourceHut: So complicated yet so lacking of comfort features. The interface is too finicky and email workflows are clunky.

  3. Gitea: A tad shady for my liking.

  4. Forgejo: Fantastic, but I don’t want to self-host.

  5. Codeberg: Pretty good hosted version of Forgejo, and I’d probably be happy with it.

I’ve ended up with Tangled. Tangled is built on the AT Protocol, which is nice given my adoption of the ecosystem. However, it also introduces my biggest gripe, which is the lack of private repositories, meaning I won’t be able to leave GitHub entirely. I very much do like that you can self-host Git repositories with ‘knots’ and CI runners with ‘spindles’, allowing better data portability in future. Simple repo migration is also on the roadmap.

Tangled also unfortunately isn’t supported by a lot of build tools and systems I use, which is a shame from the perspective of ease-of-use. I won’t be able to make a full migration until Tangled adds support for releases and private repositories and until other services get support for Tangled, but I’ve already moved over what I can. Most notably, I’ve moved my Stoat bots.

The $25 MacBook Pro

Kernel panics for the price of lunch.

Buying a second-hand 2020 MacBook Pro for twenty-five dollars, upgrading from Catalina to Sequoia, and identifying the problems with the laptop's non-functional screen and Touch Bar. Diagnosing and troubleshooting the issues causing the problems, which is hopefully of value to others.

https://vale.rocks/posts/25-dollar-macbook

Popular short-form video creator Zack D Films uploaded a video in 2024 titled ‘Biohacking With A Magnetic Implant 😳’. It has been seen by a lot of people. Currently it sits at almost 29 million views and 1.4 million likes on YouTube alone, having also been posted on many other platforms, including TikTok and Facebook. It has also spread via reuploads by other accounts.

I have a magnet implanted in my hand. I’ve written about it at length and published my own short-form videos. Unfortunately, people cite this video at me all the time, blindly believing the claims it makes and even trusting it over me. Here are some debunks:

  1. ‘The magnet vibrates slightly, allowing you to detect hidden electronics or wires.’ Kinda. You’re certainly not feeling anything from a cable under a piece of fabric charging a phone as depicted. The vibration you feel is alternating current (AC), so you’d never feel it from a length of phone cable, which will always be direct current (DC). You can legitimately feel a flutter from, for example, a computer power supply, however.

  2. ‘Connecting it to an infrared device would let you feel the distance of objects.’ What? How are you ‘connecting’ a magnet to an infrared device? How are you feeling the distance of objects? The animation shows a mobile phone, but modern phones don’t have IR capabilities (the phone depicted appears to be an iPhone, which doesn’t). If you’re making a separate device for detecting distance via IR, why not just make the device alert you another way? How does a magnet come into this? None of this makes any sense.

  3. ‘Eventually though, the magnet will lose its strength’. There are a few conditions under which magnets lose their strength. Heat, trauma, and corrosion can demagnetise a magnet. However, if your implant is reaching the Curie temp or encountering other such significant damage, your fleshy human form has much bigger problems. Proper implants are always coated, usually with glass, resin, titanium or gold, and while tactile nerve displacement can lessen the effectiveness of a magnet implant, it won’t demagnetise it.

Publishing pixel art on the web? Don’t let it get blurred and smushed.

Apply image-rendering: crisp-edges to the image with CSS. Alternatively, export your pixel art at a higher resolution, so each visual pixel is made of many pixels, minimising impact from scaling and compression.

Remember to also use a good file format. Formats like JPEG are optimised for photos, not pixel art, and can introduce artefacts. PNG and GIF are good choices.

A collection of 88x31 buttons. One set is blurry and rendered with image-rendering: smooth. The other is sharp, and each individual pixel can be seen. It is rendered with image-rendering: crisp-edges.

Vale.Rocks appears to be almost entirely functional in Ladybird now. Few tiny little hiccups, but I’d say ~95% of it works. Performance still has a bit to go, but Ladybird has come a long way since my last test.

Servo still has a bit further to go but has made some significant progress recently.

I love that the same brands which once carefully curated their identity and adhered to stringent brand guidelines are now slopping out brand resources with random image generators that smush their wordmark and butcher their logo.

Junior designers used to be crucified for lesser failings.

So, the web has better responsive images now. That’s great.

But, when will the web be getting responsible images? I’m sick of all the delinquents roaming the web like they own the place.

For most of the world, Google Search is the search engine. So much so that it has become a verb in conversation – to ‘Google’ something. Even if you use another option, you still likely think of Google Search first.

However, there are many countries where Google has fierce competition and is even sometimes surpassed. In China, Baidu Search is the standard, with Bing holding a fairly significant market share as well. In Russia, Yandex dominates the search market. Popular in South Korea is Naver.

There are also some countries where non-Google search engines have a significant hold, but not quite as substantial. Yandex is popular in Russia’s neighbouring countries: Belarus, Kazakhstan, Uzbekistan, and Turkey. Yahoo! and Bing are both rather popular in Japan. Seznam remains rather popular in the Czech Republic, and Cốc Cốc does reasonably in Vietnam.

A common reason for these engines being popular is their handling of local languages using non-Latin scripts. Censorship and compliance with government regulations also influence their success.

These search engines are worth keeping front of mind if you’re targeting an aforementioned country or localising for them.

I’m looking for a device I can use for WebKit/Safari testing. However, I can’t justify splashing too much cash on a Mac that I’ll scarcely use.

I’m looking at something with Apple Silicon so that it won’t be dropped by the next software update. Currently considering a 2020 M1 MacBook Air with a broken screen, which I can use headless. Maybe a Mac Mini, but they’re pretty scarce on the second-hand market. People seem to hang onto iMacs long-term, so they aren’t really around.

Thinking the Neo down the line, perhaps.

Any thoughts?

AI Terminology is Poorly Defined and Oft Misused

Did that stand for 'Apologetic Interface' or 'Algorithmically Incoherent'?

Words and terms used when describing artificial intelligence are often misused, inaccurate, or generalised to the point of losing all meaning. How terms like 'LLM', 'Agent', and 'AGI' have lost meaning and turned into semantically meaningless buzzwords that are applied liberally without care or appropriate intent, leading to unnecessary confusion and unnecessary need for clarification.

https://vale.rocks/posts/ai-terminology

Communism works on paper but fails in practice. Wikipedia fails on paper but works in practice. All my ideas fail on paper and then are proven failures in practice.