Firehose

A point of consideration when writing about accessibility is between person-first language and identity-first language. Person-first language would take the form of ‘person with disability’, while identity-first language takes the form of ‘disabled person’. There are reasonable arguments in each direction, and different people have different preferences.

If referring to a specific person and they have a preference, then that preference should be respected – much like one would respect a person’s preferred pronouns. Age, gender, culture, language, level of education, and type of condition have all been found to influence people’s preferences.

However, that leaves the question of what language should be used for general writing and discussion or when speaking about people whose preferences you don’t know. I personally choose to use person-first language in these cases, as I think it is the most appropriate default. It emphasises the person over their disability.

The Australian Government Style Manual advises person-first language. The study Person-first and identity-first disability language: Informing client centred care (Lisa B Grech, Donna Koller, Amanda Olley) indicates that ‘it appears there is greater acceptance for person-first language rather than identity-first language when referring to others’.

While there are solid arguments to be made either way, there is unfortunately no universal consensus. The main point is that people should be addressed respectfully as people, not reduced to their disabilities.

While Microsoft establishes more data centres, my Windows install and Xbox console are pestering me in an attempt to persuade me to configure them to use less power.

Thanks, Microsoft. Glad you care so much.

Peer-to-peer (P2P) is a networking model where, instead of using a centralised server which all clients connect to, clients all connect to each other in a distributed model. Peer-to-peer is great in that there isn’t anything to host on an instance level. The onus of distribution is handled by users themselves.

So, why doesn’t Stoat use a peer-to-peer approach for voice and video streaming? Peer-to-peer was briefly considered and experimented with but ultimately deemed unsuitable for a few reasons. They are:

  • Privacy and security. As clients are communicating directly, there is high chance of leaking sensitive data, such as IP addresses. It also limits Stoat’s ability to enforce privacy protections.
  • Latency and scale. Real-time peer-to-peer streaming works reasonably well with a handful of people of close geographical proximity, but as it scales the amount of data throughput becomes larger, which increases latency. Streaming to many people is also hard on device performance. Channels can have hundreds of users in them, and peer-to-peer breaks down at that scale. Implementing peer-to-peer for small-scale situations and client-server for large-scale situations is possible, but is a significant amount of work.
  • Usability. Peer-to-peer often works great, but sometimes it doesn’t. Occasionally there will be firewall issues or devices won’t have the performance required to stream smoothly. Features like scaling video for users on lower bandwidth connections, recording chats, transcribing speech, and smoothly handling moderation are all things that become much more difficult or demanding (and in some cases impossible) in a peer-to-peer architecture.
  • Complexity. While it is possible to engineer around some of these issues, doing so introduces a lot of complexity. Stoat has a small team with limited availability, so avoiding additional overhead is important to be able to actually get something out the door that can be maintained. A server-client model is also consistent with Stoat’s behaviour as a whole.

It is rather hard to describe or explain, but whenever anything lightly touches or brushes against the skin near where I have my magnet implanted, I interpret it as a magnetic field rather than touch.

It is such a weird sensation. It feels like there is a strong invisible magnet somewhere near me.

It is a bit like if you have your phone set to vibrate and you always put it in the same pocket. Whenever you feel anything in that area, such as material sliding against your skin, you automatically interpret it as your phone vibrating.

Imagine that, but you feel a different sense entirely.

A Complete History of Stoat

Sow discord to reap success.

An in-depth history of the Stoat chat platform. From its precursor Riot, through to all the additions and changes the platform has seen and received as it has grown. Details from when it was once Revolt to the change into Stoat and details of all the bumps and successes along the way.

https://vale.rocks/posts/stoat-history

Two places I studied at and got certifications from have shut their doors now. One of them has completely scrubbed itself from the web. I’d suggest this bodes rather poorly for my resumé.

Educational institutes watching in horror as I walk through the door and they realise they’ve got four years before they’re nuked from the face of this planet.

The AT Protocol Harkens An Old Web Ethos

Out with the new and in with the old.

Love for the beauty of the AT Protocol and the older web principles it revitalises with open, public data. The opportunity for integrations and automations as seen of the web from roughly the mid-2000s through to the mid-2010s.

https://vale.rocks/posts/atproto-ethos

Each time we see a major influx of users at Stoat, blocks come with it. An influx can see hundreds of thousands of users signing up on the platform over just a few days, so I can understand it looks suspicious. That’s a huge sudden increase in emails going out and a huge increase in traffic to the site. It probably trips some heuristics somewhere which generally do a good job to remove unscrupulous actors. However, sometimes, they get things wrong.

Ideally, if you get incorrectly blocked, you contact the blocker and they remove the block for you. If you’re lucky you get to go through several levels of support until you finally get to the people who can get you unblocked, then they give you a collection of forms and systems and processes to go through. If you’re unlucky, there are no means of escalation, and you’re simply out of luck – there are no means of appeal. If you do manage to get unblocked, then it’ll only be for a little while, because eventually they’ll do it again and you’ll have to do the process over. It is a futile effort.

The most common and aggressive blockers are internet service providers, email providers, email spam lists, and web filtering services provided by anti-malware companies. Companies that maintain filters for profit seem to keep their lists to themselves, so they’re not too much of an issue. ISPs and email providers and spam listers, however, do share their lists around. Once on one block list, you propagate to them all. Then you have to try to remove yourself from them all in quick succession, because the propagation only works one way. Blocks tend to propagate; unblocks do not. If there are blocks still remaining, then they’ll return, because getting a block removed does not add you to an allow list and merely removes you from the explicitly blocked list.

It is just a sad state of affairs. It really hurts little independent operations who can’t do anything about it. It especially hurts as it comes during periods of growth, where the team is preoccupied and users are forming first impressions. Established operations are obviously far less affected, and if anything does go awry, they have greater sway and lines of contact for resolution. The web is not as open as one would hope, especially when you can be arbitrarily blocked without recourse.

The way I see it, there were a few reasons one would opt to buy a game console:

  • Convenience. Computers take more effort to configure and aren’t optimised exclusively for gaming, so there is more to go awry.
  • Physical media. Owning games in a tangible format is pleasant, especially with included extras like posters and manuals. Discs can contain the game, removing the need for the internet for licence checks or lengthy download periods. A disc also cannot be entirely revoked in the same way a digital licence can. In 50 years, assuming I can find a working Xbox 360, a physical copy of Halo 3 will be playable without strife. Also allows games to be shared or sold, allowing for the existence of a second-hand market.
  • First-class controller support. Consoles are set up for use with controllers, and everything on them can be done via controllers. You never get into a state where you must reach for a mouse or keyboard during a console session.
  • Standardised hardware for optimisation. As the details of a console are known and fixed, developers can target this hardware in particular and achieve performance that isn’t possible when targeting a wider assortment of target platforms. Consider the quality of games on seventh-generation consoles despite their low specs.
  • Hacking and custom firmware. I’ve loved exploiting consoles and customising them or installing homebrew.
  • Console personality. Console interfaces used to have such character that made using them an event.
  • Social features. Consoles make coordinating gameplay easy. Being able to see friends online, create parties, easily voice chat, send messages, and invite people to games was a big deal. Almost every game with social features supports the console’s global social features, including things such as showing achievements.
  • Price. Due to being closed ecosystems with all games being produced via the console manufacturer, consoles can be sold at a loss.
  • Game exclusivity.

However, the ninth-generation of game consoles seem to have done away with most of these reasons, and the tenth-generation looks positioned to take it further. I’m struggling to see the benefit of consoles going forward. No physical media, no personality, very few exclusives (beyond Nintendo), lessened convenience (so many updates, system instability, advertisements and pop-ups everywhere), and increasing console prices.

I struggle to justify the price of a console when my computer will respect me more as a user, now has first-class controller support, allows me to play a wider variety of games (including emulating my existing collection), and the (very slightly) increased cost is offset by my computer being a general purpose machine. The only console I can see value in is a handheld console for the form factor, but even most of those are just general-purpose computers in a handheld form, rather than true console software experiences. Nintendo are perhaps the only member of the big three (Xbox, Sony, Nintendo) who have a device worth purchasing in the Switch. It isn’t perfect, but at least offers experiences that aren’t better done by a computer.

I hope you’re hungry, because we’re serving a greatly improved experience over on PersonalSit.es. We’ve got some cleaned up data and much improved tagging, so you can filter for and check out specific niches.

PersonalSit.es OG image

I delisted a few unfortunately dead sites and such while fetching a complete new set of images, which will be up soon. Also fixed a colour-contrast issue while adding dynamic light/dark switching.

It is sad to say goodbye to things, even things that are silly to be sentimental about. I was added as the primary moderator of what was then the Revolt Lounge in mid-2023. It was my ‘in’ to working on Stoat, and as such, is a special server for me, but all things come to an end. Today, after a solid five-year run, the Stoat server upon Stoat is being overhauled to focus exclusively on the platform itself rather than being a general discussion hub.

I’ve long pushed for the server to be kept around as a melting pot of everyone on the platform. It is a great way to keep a finger on the pulse of the community, and it has led to a great deal of valuable discussions leading to great outcomes. However, Stoat is of such a size now (1.4 million users) that it is time for the server to take on a new form.

It is good and healthy for Stoat as a platform to avoid centralisation of users in one server. It lowers it as an attack vector for undesirable behaviour, freeing up more resources for platform moderation, and it also prompts users to disperse around the platform. More individual thriving servers is good. More niches, more communities, greater variety.

It is sad to see it change, but it is time for change to happen. My thanks to everyone I’ve had pleasant conversations with over the years.

I was really happy with the new loading behaviour I implemented so I’ve been eagerly showing everyone my beautiful new throbber and now human resources has scheduled a meeting with me. I can only assume they want to see it too.

The police just rolled up to check it out as well.

Years ago my father passed on to me his fishing watch, which was released by Casio and purchased by him in the ’90s. It is well worn and has a fantastic ‘fishing time’ function, which is what he bought it for. It shows the moon age, moon phase, moon angle, sun rise/set time, and optimal fishing time based on the aforementioned. This data is based on the longitude and latitude that can be set in the menu. It also has typical features: alarms, light, stopwatch, etc.

A largely grey and very well worn watch. The bottom display portion shows typical watch functions, but the upper portion shows a small moon phase graphic, a single fish, and a waving tide with one segment active. The screen is illuminated a bright blue.
My FT-200 with Movement Module No 1879

I’ve previously paid for battery replacements by professionals, but when the battery needed replacing recently, I figured I’d give it a try myself. For my future reference:

Remove the back plate and pull out the mechanism, getting leverage by depressing the watch’s buttons if needed. Once removed, unclip the metal shield from the plastic. Take care, for there is an extremely miniscule spring inside the watch that is liable to be lost.

There is a small clip holding the battery in place. Release it and replace the 3-volt CR2016 battery. Next, the movement can be reassembled (remain aware that said spring also has a tiny extension on one side which sits inside the movement to stop it moving freely), and an AC reset can be performed. Using a wire or tweezers or what have you, the AC pad (labelled) should be connected with the positive terminal of the battery. This watch face should now be populated. The watch can then be reassembled.

The usage manual with explanation of the fishing functions can be found here: https://www.casio.com/content/dam/casio/global/support/manuals/watches/pdf/18/1879/qw1879_EN.pdf

Tone is rather difficult to convey over text, unless writing dialogue where you can write ‘Person said angrily’. Unless careful with chosen message phrasing and choice of diction, it is very easy for the wrong emotion to be conveyed. In speech, intonation is a major part of effective conversation.

Multiple attempts have been made at addressing this issue. Most interesting in my opinion is assorted new punctuation. For example, the ‘snigger point’ or ‘note of cachinnation’ (◡) to be used for indicating ironic sentences or clauses, the SarcMark™ as a sarcasm full stop alternate, or the upside down exclamation point (¡) as another sarcasm indicator. Other similar attempts at new punctuation include the percontation point (⸮) for rhetorical questions or the interrobang (‽) as a combination of a question and exclamation mark.

However, much more commonly applied in actual communication are tone indicators. There are a great very many, but the ones which see frequent and common usage are:

Tone Meaning
/j or /jk Joking
/hj Half-joking
/s Sarcastic
/gen or /g Genuine
/gq or /genq Genuine Question
/srs Serious

They’re used by appending the indicator to the end of the message, like so: ‘Nice face /s’. They originate from HTML-style presentations (<sarcasm>Nice face</sarcasm>), but over time people dropped the angle brackets and opening indicator while shortening the indicator’s name to what we have today.

I try not to bloviate, but I am innately verbose in writing.

I have now had multiple people tell me that they enjoy my writing but that they feel unable to read it through to completion for their attention drifts. They cite short-form video platforms and social media for this attention-span harm.

Multiple people have independently told me this personally, so I can’t speak to how many more people have silently stopped reading long-form work, or who have never built the attention-span to discover it.

What shape does information take if it must all be attention-optimised and conveyed within a few short minutes?

Generally, short content means less nuance, more reactionary (due to less time to produce), and less in-depth research per output. I worry for the long-term impacts.

Can’t wait to see what wonderful accessibility horrors people manage with CSS’ random() in regards to focus order, colour palettes, element sizes, and other such non-human tested wonders.

There are quite a few tells that people use in online messaging which can be used to identify a user’s culture or place of origin. Beyond the obvious sentence patterns, word usage, and other language behaviours, there are some small behaviours that can be used to identify groups:

  • In Russia it is common to end messages with ) or ( to indicate expression. This comes from emoticons such as :), but colons can be hard to type on Cyrillic keyboards, so they just became opening and closing brackets. ) generally represents a smiley expression, while ( generally represents a sad expression. Multiple brackets are sometimes used to convey a stronger form of the emotion.

  • ‘XD’ is a commonly used Polish emoticon. Different capitalisations and the number of xs and ds influence the meaning. It was adopted from the West’s usage as an expression akin to 😆 when Poland properly embraced the internet in the 2000s, but unlike in the West it didn’t slide out of fashion and adopted more general, varied usage among Poles. Sometimes it is also used as a noun.

  • Japan frequently uses kaomoji. For example: (^_^) and (づ ◕‿◕ )づ. Their textual construction allows a great variety to be constructed and for them to be easily altered based on context, unlike emoji.

  • In Brazilian Portuguese, ‘kkkkk’ and ‘ksksks’ are commonly used to express laughter. ‘rsrsrs’ is also used as a shortening of ‘risos’, meaning ‘laughter’.

  • Inverted punctuation (¿ or ¡) is commonly used by Spanish speakers, even when writing English.

  • In Thai, the number 5 is pronounced ‘hâaห้า’, so Thai speakers will often write ‘5’ to indicate laughter, with more 5s increasing the intensity: ’555555’.

  • French uses a space before some punctuation, which French speakers will often bring across into English: ‘How are you ?’.

  • In some Nordic cultures, most notably Sweden, it is common to use a double caret (^^) to indicate a smile or nod. It is roughly equivalent to the 😊 emoji, though is used more casually. It is also used as a shorthand of the (^_^) kaomoji more generally across the world.

In light of the Claude watermarking text discussion, I can’t wait to see someone set up a system with Claude to automatically pipe output through a small local LLM that rewrites it to remove the text watermark.

In fact, I’d be surprised if multiple people haven’t already created this. Such a flawed marking.

I’ve got users telling me now that they’re asking AI for help with software I work on.

I’ve gone ahead and made some AI-friendly documentation tweaks to try curb these at least a little just so that hopefully fewer people contact me brandishing an LLM hallucination they’re treating as gospel.

I dunno how this’ll work out. Some people go to the point of borderline harassment to try have me help them with what the LLM has faultily told them.

Feels bad to have people put more trust in AI than my studiously written documentation. Where do these people think the AI is getting the data from?

A microscopic annoyance that forever irks me is the discrepancies between the ‘Get it on Google Play’ and ‘Download on the App Store’ badges. They use the same pure black background, the same #a6a6a6 border colour, and the same general layout, but all the finer details differ.

A badge for Google Play and a badge for the App Store. They're similar at a first glance, but the longer they're inspected, the more tiny differences there are. Size of the badges and elements, alignment of type, fonts used, borders – everything!

It is as if they made a vague, loose attempt at coordinating, then gave up. Indeed, I imagine that this is exactly what happened. Apple and Google attempted coordination, then brand adherence and marketing won out, killing any potential for cohesion. Ironically, this decision has probably harmed their marketing and brand control, because I’ve seen cases where people have modified the badges to work together as a set.

It plays like a game of spot-the-difference. The Play Store icon is larger, different fonts are used, the text is aligned differently, they’re different widths, and one reads ‘Get it on’ in uppercase while the other reads ‘Download on the’ in lowercase. These badges are so very commonly presented next to each other, and I can’t speak to the number of times I’ve seen their alignment wrong or one given precedence over another due to their variation.

At least if they were significantly differing, there’d be no illusion of them intending to match, but because they’re so close, it just looks sloppy. You really get a feel for the differences when the badges are overlayed (here I’ve recoloured the borders for illustrative purposes):

The two badges atop each other with lowered opacities. The App Store badge is more rounded, while the Play Store badge has a tighter radius. Everything is also placed slightly differently.

This style of badge isn’t just employed by Apple and Google, however. They might be the most common to use it, but it is also employed by the Amazon Appstore, the Samsung Galaxy Store, the Microsoft Store, and Huawei AppGallery.

Every now and then, I’ll come across a markup language that I genuinely consider adopting. Most recently, Djot. However, I still use Markdown. Why?

Firstly, Markdown is good enough. The vast majority of my Markdown usage is for writing italics and hyperlinks.

Secondly, Markdown works everywhere. Almost every chat platform, forum, social media platform, and blog comment section I use supports Markdown without issue. Not always the full array of features, but usually the core features I care about. Every popular programming language in which one could want to parse Markdown has a capable library.

The wide support means that content is very portable. I won’t end up with my content stuck in some format that is proprietary or unsupported by modern software.

Thirdly, Markdown is designed to map cleanly into HTML, which is the main case I need it for. I can also author straight HTML in Markdown without stress.

Markdown isn’t perfect, but it is good enough. It might not be perfect, but it is no less perfect than any alternative, and if I am already using it and must continue to use it in some places, then I may as well use it everywhere.