Edit: I didn’t notice that this article is from last June.

Farewell to autumn: Danish Digital Ministry turns its back on Microsoft.

At the Danish Digital Ministry, all employees should be able to do without Microsoft. Instead, Linux and LibreOffice will be used, says the minister.

heise.de/news/Von-Word-und-Exc…

This entry was edited (2 hours ago)

Thank you for using FastSM! We update the app hourly to keep your experience running smoothely! For best results, keep your app up to date!
FastSM will never ask you to review the app. Mainly because it can't, because there is no review system attached to GitHub.
Anyway, This update includes but is not limited to bugfixes, performance improvements, new bugs, unintentional performance degradations, issues, disappointments, problems, issues, and many more issues. Please keep your updates turned on to experience all of this, and more! Our developers will never tell you that they are taking a nap, or mowing the lawn, unless, of course, they are indeed taking a nap, or mowing the lawn. Why our developers would be mowing the lawn in a changelog, who actually knows. Anyway, more bugfixes and performance improvements time! Please keep your updates turned on for more bugfixes and performance improvements! Thank you for using FastSM! We promise that as we continue to add more bugfixes and performance improvements, eventually we will add so many bugfixes and performance improvements that we will be forced to rename the app to SlowSM, or potentially even BuggySM. So stay tuned for this eventuality. Anyway, again we hope you enjoy using FastSM!

reshared this

I don't think I like this new world, you guys. Every time Youtube Music plays me a song I haven't heard before, I wonder if it's AI. Hmm, that's a lot of releases in a short time. Is the voice quality a bit odd because the track quality is low, or because I'm imagining it, or because it's AI? Wait, those rhymes are really weak. Did an LLM just spit those out?

There are two primary reasons I like watching the output from Claude or Gemini, or any model for that matter: #1. you can learn some really cool shell tricks, #2. I love watching how it transforms my thoughts, e.g. from a markdown spec file, into a plan. Even the most careful planning on my part always has some gaps, high verbosity, etc. For that reason, I always request the model to ask followup questions.
#1 #2

In today's world of autocorrect, why do so many places where people write from their phones always include contractions with missing apostrophes? You'd think any modern operating system would see "isnt" and immediately correct it to "isn't". Same for "ive", "dont", and so on. I can understand the apostrophe being multiple taps away, and so not getting added manually, but why wouldn't software put it back in?

#TimeToTehOn...Good morning. I like FastSM rather more than tc, only probably because it loads faster, and takes up less RAM space. However, I won't be running it networkly like I can TC, for the simple reason that I cannot localise user data, or not that I know of. I don't use Telegram that much on the pc anyway, because most who have my details there, also follow me on mastodon, so no use boring people on telepaw if I already posted here anyway. BlueSky I don't have, and probably will never have either...Between my facebook/mastodon.africa/fluffy.family accounts I already have 3 social media related accounts, and that seems to be enough for now. However, knowing me, I may just fall for Bluesky, like I fell for the Seika Mini2 Smart Braille Notetaker...so I'll never say never, simply because I know myself well enough to know that curiosity might indeed push me to get bluesky regardless of the current reluctance. Anyway, have a nice day on this humpday.

It occurs to me that I haven't yet tested FastSM's ability to upload media to Mastodon. So I hereby present something which I call, "Girl, You Know it's False." I take the intro to the Milli Vanilli song "Girl, You Know it's True," where a man and a woman are talking to each other on opposite stereo channels, then I deliberately use and normalize the channel where each person is *not* talking. What you hear is a really echoy conversation, with almost certainly tape hiss and even some 50 Hz hum in the background. Then at the end the two orchestra hit type things also sound weird. Anyway here goes.

Well, I got GPT5 Pro mode again, asked it to help refactor my driver because I don't do a good enough job myself of that, and now it's been thinking for 88 minutes. Either it's going to give me a big disaster pile, or I somehow got it stuck. Longest time I've seen it think was like 65 minutes haha. But what the heck can you do for 88 minutes! This better be good. I feel like I'm asking a real coder to do the work, but worse, because it's not an actual real coder but a program, so it's more disappointing.
in reply to Brandon

@serrebi @FreakyFwoof @stormproductions @xogium oh interesting! May give it a try at work, we have access to both. I have Google One plan which I share with my partner so we both get Gemini, they prefer it and honestly OpenAI has never allowed for family sharing like that, quite unfortunate. I feel like I need both in my toolbox. OpenAI (pro for now, we'll see if I make enough use of it this month to count) for those "think through and patch files direct inside container for you" moments, Gemini for the "review my code I wrote and that it's not trash and passable to an AI to work on", and they both look at different areas of the code. GPT will get it done even if you give it a bad idea to get done, Gemini's for sure a lot more cautious. So I can't decide on either these days, usually my workflow is augmenting one's response with the answer of the other, which makes me wonder what a powerful tool could be built if it just passed your prompt between the 2 AIs to solve, I'm sure someone's thought of that by now.
in reply to Brandon

@serrebi @stormproductions @FreakyFwoof @xogium yeah, even in the "AI pro" plan :) + the 2 TB Gmail is nice, well, that's why I was initially subbed to it but they migrated people over with a slight price bump. economically speaking I think if I wanted to get the most use out of AI, Gemini does win by a longshot, even if GPT's now trying to compete with their $8 "go" plan LOL
in reply to Brandon

@serrebi @FreakyFwoof @xogium I have installed Gemini's CLI, but I'm either too stupid with CLI's in general, or I don't even know how to navigate with NVDA. I tried typing /settings so I can see what settings I can tweak, and I couldn't even see the darn list of settings with NVDA. Any tips? I mean, any shortcuts for either NVDA or Gemini's CLI that I have to learn to start using it properly? Where do I actually pass the screen reader flag? My questions probably sound sily and stupid for somebody used to CLI's, but I truelly can't get the hang of it.
in reply to Casey Reeves

@xogium @FreakyFwoof @stormproductions @serrebi oh gosh. that's aweful. Do you know if it behaves any better with Mac OS VoiceOver? For work I'm using both side by side, so perhaps I'd have more luck with Gemini Cli under Terminal? Even though VoiceOver's terminal support isn't known for being great, I do wonder if it would do better.
in reply to Winter blue tardis

@tardis @FreakyFwoof @stormproductions @serrebi In any case: xogium.me/the-text-mode-lie-wh…

Sections titled Case Study: The gemini-cli Madness and The “Stale Bot” excuse: A Case Study in Neglect seem pretty relevant to this.

It doesn't matter if you use the screen reader option, or if your gemini-cli config has it enabled, this will happen.

And here's to why you shouldn't do stupid apps for a terminal that try to be too modern and get written in node.js using the ink framework.


The text mode lie: why modern TUIs are a nightmare for accessibility


The mythical, it's text, so it's accessible


There is a persistent misconception among sighted developers: if an application runs in a terminal, it is inherently accessible. The logic assumes that because there are no graphics, no complex DOM, and no WebGL canvases, the content is just raw ASCII text that a screen reader can easily parse.

The reality is different. Most modern Text User Interfaces (TUIs) are often more hostile to accessibility than poorly coded graphical interfaces. The very tools designed to improve the Developer Experience (DX) in the terminal—frameworks like Ink (JS/React), Bubble Tea (Go), or tcell—are actively destroying the experience for blind users.

The Architectural Flaw: Stream vs. Grid


To understand the failure, we must distinguish between two distinct concepts often conflated under “terminal apps”: the CLI (Command Line Interface) and the TUI.

  1. The CLI (The Stream): This operates on a standard input/output model (stdin/stdout). You type a command, the system appends the result below, and the cursor moves down. This is linear and chronological. For a screen reader, specifically kernel-level readers like Speakup, this is ideal.
  2. The TUI (The Grid): This treats the terminal window not as a stream of text, but as a 2D grid of pixels, where every character cell is a pixel. It abandons the temporal flow for a spatial layout.


Case Study: The gemini-cli Madness


Let's look at a concrete example: gemini-cli, a tool written in Node.js using the Ink framework. On the surface, it looks like a simple chat interface. But underneath, Ink is trying to reconcile a React component tree into a terminal grid.

When you use this tool with Speakup (Linux) or NVDA (Windows), the application doesn't just fail; it actively spams you.

Because the framework treats the screen as a reactive canvas, every update triggers a redraw. When the AI is “thinking,” the tool updates a timer or a spinner. To do this, it moves the hardware cursor to the timer location, writes the new time, and moves it back.

For a sighted user, this happens instantly. For a screen reader user, this is what you hear:“Responding... Time elapsed 1s... Responding... Time elapsed 2s... [Fragment of chat history]... Responding...”

It drives the screen reader mad. The cursor is teleporting all over the screen to update status indicators, spinners, and history. Speakup tries to read whatever is under the cursor at that exact millisecond. You end up hearing random bits of conversation mixed with timer updates, making it impossible to focus on what you are actually typing.

Worse, lets pretend that you've somehow managed well with speakup so far, but that you want to do some work with nvda. Maybe paste an error you're getting on windows. So you open your terminal, ssh into your linux box, attach to your screen session and paste your text.

The result is an immediate crash of the screen reader (NVDA) or massive system instability. Why? Every time you type a character or paste text, the application triggers a state change. The framework decides it needs to re-render the interface. Because the conversation history is part of that state, the application attempts to redraw or re-calculate the layout for thousands of lines of text instantly. The more messages you have in a conversation, the more this will happen. And no, you can't just avoid this by using insert+5, the key combo supposed to avoid announcing dynamic change of content.

The Lag Loop


Furthermore, frameworks like Ink running on single-threaded environments (like Node.js) suffer from massive performance degradation when the history grows. If you paste a large block of text, the system has to calculate the diff for thousands of lines.

This causes input lag. You press a key, and you wait. You can wait up to 10 seconds for a single character to echo back. The system is too busy calculating how to redraw the screen to actually process your input.

Why The “Old Guard” Works (nano, vim, menuconfig)


Sighted developers often ask: “If TUIs are bad, why do you use nano, vim, or menuconfig?”

The answer is not that these tools handle the cursor perfectly by default. The answer is that they allow you to hide the cursor entirely.

1. Hiding the Cursor (nano, vim)


In tools like nano or vim, usability depends on turning off features that track cursor position. If you run nano with options that show the cursor position (like --constantshow), or if you use vim without specific configuration, the experience is broken.

When the cursor is visible and tracking is active, Speakup prioritizes the cursor's location update over the character echo. Instead of hearing the letter “a” when you type it, you hear “Column 2”. You type “b”, and you hear “Column 3”.

These older tools succeed because they allow you to disable this noise. You can configure them to suppress the visual cursor or status bar updates, forcing the screen reader to rely on the character input stream rather than the noisy coordinate updates. Modern frameworks rarely offer a “no-cursor” or “headless” mode; they assume the visual cursor is essential.

2. Single Column Focus (menuconfig)


Tools like the Linux kernel's menuconfig work because they enforce a strict, single-column focus. Even though there are borders and titles, the active area is a vertical list. The cursor stays pinned to that list. It doesn't jump to the bottom right to update a clock, then to the top left to update a title. The spatial complexity is kept low enough that the screen reader never gets “lost.”

3. The Lost Art of Scrolling Regions (Irssi)


Irssi is the gold standard for accessible chat, but not because of luck. Irssi was built over 20 years with a custom rendering engine that utilizes VT100 Scrolling Regions.

When a new message arrives in Irssi: 1. It tells the terminal driver: “Define a scrolling region from line 1 to 23.”2. It sends a command: “Scroll up.” The terminal moves the bits up. 3. It draws the new text at the bottom of that region.

Crucially, it handles this in a way that minimizes interference with the input line. It relies on the terminal's hardware capabilities rather than rewriting every character on the screen manually. Modern frameworks ignore these hardware features in favor of “diffing” the screen state and rewriting characters, which is computationally heavier and hostile to accessibility.

The “Stale Bot” excuse: A Case Study in Neglect


Google and the maintainers of gemini-cli pretend to care about accessibility. “Pretend” is the operative word here. If you look at the repository, critical accessibility regressions like Issue #3435 and Issue #11305 have been left to rot. There is no discussion, no roadmap, and no fix. Even worse is the fate of Issue #1553, which was supposed to track these accessibility failures. It didn't get solved; it got silenced. It was closed automatically by a bot with this generic dismissal: > Hello! As part of our effort to keep our backlog manageable and focus on the most active issues, we are tidying up older reports. It looks like this > issue hasn't been active for a while, so we are closing it for now.”

This is unacceptable. Closing an accessibility report because the maintainers haven't touched it in months is not “tidying up”; it is hiding evidence. It effectively says that if a bug is ignored long enough, it ceases to exist. It boosts the project's “Closed Issues” metric while leaving the actual software unusable for blind users.

Conclusion


If you are building for the terminal and care about accessibility, stop using declarative UI frameworks that treat the terminal like a canvas.

The “modern” TUI stack has optimized for the developer's ability to write React-like code at the expense of the machine's ability to render text efficiently.

If you cannot guarantee that your application allows the user to hide the cursor, or if you rely on aggressive redrawing to show spinners and timers, you are building an inaccessible tool.

For the blind user, a dumb, linear CLI stream is infinitely superior to a “smart” TUI that lags, spams, and scatters the cursor across the screen.


in reply to Winter blue tardis

@tardis @FreakyFwoof @stormproductions @serrebi It works, up to a point. And I've done a whole lot this past month alone to really know what I'm talking about and not just say nonsense.

The web ui will work but when your code is now spanning multiple files -- over 40 in my case, it creates problem. Gemini on the web constantly loses track of which file does what, which leads to very stupid things like:

Me: your fix does not work, I still get the error about session not properly disconnecting
Gemini: well of course it won't work, I've analyzed your code and it's still the older one, do this and it will work.
Me: ... of course it doesn't work, and besides you're refering yourself to an old version of this code.

in reply to Storm

@stormproductions If they are still up after all the crap they go through right now, that is...

Trials for the death of several people that trusted gpt with things, claims that chatgpt can even be trusted with health advices now when it clearly can't -- I'm not joking! I saw an ad about it!

Then also the Musk case. Oh dear oh dear. Now I don't like Musk at all but truth is, he's apparently got 60% chance of winning his case against OpenAI. And he asked for a jaw dropping $134b iirc.

I think OpenAI will sink sooner than later.

in reply to Casey Reeves

@xogium @stormproductions I do use Gemini, quite often to double-check code GPT wrote, because it will scan through it a lot faster. But (at least on web) it's horrible at pasting back code you gave it exactly 1 to 1 still, like it'll omit sections that it's pasting back of the code I gave it, and I'm yelling at it "give me full pieces! No omissions!" Haha. It's gotten better but GPT having an entire container inside to access and run Linux commands, not to mention I've uploaded a 30-40 MB zip file to it with my entire Gitub repo and Gemini just yells at me, "file is too large." LOL.

Pravidelné kombinování různých druhů fyzické aktivity může být nejlepší pro prodloužení délky života, ale souvislosti nejsou lineární, což naznačuje možný optimální prahový efekt www.news-medical.net/news/2026012...

Diverse exercise routines asso...

God, Mac OS is really awful these days! A notification comes in, no VO focus on it, so hit VO+F1 twice, notifications menu has "go to Notification Center" and..."No items in Notification center!" Also, "Go to Notification Center" doesn't actually do anything! If something this basic doesn't work, it's no wonder VO is so bad. Case in point, every time my Mac restarts now, it comes up saying "Installer has no Windows." I have to use VO+Shift+Space to click the mouse because it's hanging out in the Login Window, while Vo's focus refuses to move from this blank Installer Window no matter what. Pressing VO+F1 just says, "Authentication required." Shit, maybe I just need to blow the OS away and start over.

New: NV Speech Player finally gets a "pause mode" setting, like Eloquence has. This should not chew into lines with say-all, but rather does clause-based punctuation pause detection. And, it does appear to work. You can choose between "off," "short," and "long." This should solve a lot of complaints around words "merging together" after punctuation. I also began my first pass at abstracting parts of the driver out: _frontend.py and _dll_loader.py. Logging was also improved, I cleaned up over 40 try/catch exceptions, We're not trying to play Pokemon here.
download: eurpod.com/synths/nvSpeechPlay…
Oh! and for those wondering "where's classic pitch?" It's located in the Voice settings dialog, you'll find it as a checkbox.
This entry was edited (14 hours ago)
in reply to Tamas G

thanks for the last corrections concerning m/n between vowel and consonant for pt-br. Now, I've just added a phoneme which I've called "brã", for Brazilian ã, which consisted of a single change: take ã and change cf4 from 3300 to 2600. then I added to pt-br.yaml:
- from: "ã"
to: "brã"
Now, when I command it to speak a word like "região", the new phoneme appears to be used, but it's much less stressed and somewhat shortened, or at least de-emphasised. Can you give a look please?
in reply to Cleverson

@clv1 hmm. try and replace your packs folder at eurpod.com/synths/packs-ptUpda… - I'm experimenting on this one. What you’re hearing isn’t really “less stress,” it’s that the new vowel is darker, so it feels less punchy even if the timing didn’t change. In our latest pack we kept your approach, but made the change in a more balanced way so the synth doesn’t “half use” the old sound: we added a dedicated Brazilian ã variant and mapped pt-br to use it, making sure the vowel stays consistent across the voice filters. If you still want it to pop more, the best next tweak is a tiny loudness bump on that new ã variant rather than changing stress/timing.
in reply to Zvonimir Stanecic

@asael @clv1 haha not sure. Depends on how well base pairs are defined right now. You could always add it inside the driver, here we have the list of languages, if you formatted it the same way as that string and used HR for Croatian it would speak today but with perhaps missing sounds. Then we map those missing sounds to specific phoneme pairs in hr.yaml. Generally many sounds can be reused across languages but there's definitely edge cases especially with glides, fronted sounds, ETC.
in reply to Tamas G

Now to another issue: I need the distinction to be more noticeable when there is an r between consonant and vowel, i.e. in syllables like bra, cra, fra, tra, the consonants probably need to be more separate from each other. I have added some settings to pt-br.yaml, namely those concerning stop gaps, but I don't know yet how to deal with them... What is the correct setting for this case?

Our parliament holds 101 members + bunch of officers in the parliament + a ministry which deals with finances. They recently passed a law, which, apparently by error, made all gambling websites except from paying taxes in Estonia. Loss in tens of millions of euros, which in Estonias view is a considerable sum. Now, to avoid this situation in the future, they are talking about implementing AI in law making and in the process. What could possibly go wrong.
This entry was edited (14 hours ago)
in reply to Jakob Rosin

Whatever the AI says is right. Yours is probably better than mine since your AI is the best AI the world has ever seen. Therefore you are the best person, with the best skills. Just an FYI, I'd like to purchase Estonia because why not? I could make Estonia a big data center. I need it because @BorrisInABox and @FreakyFwoof are all running AIS on their Macs which might be bigger than mine and yours combined. So gimme. Gimme gimme gimme ... urp.

My partner and I visited Norway and hiked (a surprisingly short hike) to a place called Litlefjellet -This was the view!
Litlefjellet, Norwegian for ‘Little Mountain’, is the name of the center mountain. Plus, we found the iconic pond that perfectly reflects the whole scene.
I loved it so much that I decided to make it into wood art! I hope you love it, too
#woodart #artandairplanes #art #woodworking #wood #norway #mountains #hiking #sun
in reply to Blind Bargains

Working on a real beauty currently with the extensive help of gemini 3 pro and a sighted friend to help fix up the UI. It's not ready for release yet, but I reckon I'll post the link for when it is ready in your thread, if you'd like.

SonarIRC is the first 100% accessibility first irc client ever made for windows. No more of this horrible half hacked together accessibility support via scripts in mIRC or others of the same. It is also up to modern irc standards and has a ton of irc v3 capabilities supported. Compatibility also with all screen readers that uses UIA.

My wife and I are fortunate to be in Iceland at the moment, and we managed to capture a timelapse of last night’s aurora. It was one of those moments in my life when I could hardly believe my own eyes. Enjoy!
#aurora #iceland #timelapse

reshared this

in reply to Winter blue tardis

@tardis We're not very touchy people actually. But yes I agree on the rest. Definitely there is a better caretaking network with all of us present. I think it's just lingering stress from all the weird stuff that happened on the weekend, I'd say it'll likely all clear by the end of the week, if even that long. We'll be okay I'm sure. - Samara

If you run a mastodon instance, it's time to upgrade. There are some security issues fixed in the version released today: github.com/mastodon/mastodon/r…

reshared this

Oh goodness, the internet is saying that the new Trek show that just came out is super cringey. Why oh why do they keep pulling this garbage? I'm all for DEI stuff, but can't it be done without making it so cringey that people just check out? Honestly, as a person who is both blind and gay, it's kind of insulting that something this aweful is supposed to help people like me feel more excepted and whatnot in society. #GetALife

The applyVoiceToFrame function loops through all frame fields (47) for each frame, which is heavy. Since only a handful of fields are modified by voices, precomputing the operations for each voice once could significantly boost performance. By mapping the voice operations to a precomputed list, I can reduce the 94 lookups per frame. That will help things out here a lot I think.

Thank goodness. I already fixed that language switching bug. No new link because it's so close to V4's release that V4's link was updated. If you really want it, grab the V4 link with another browser. This one also updates it so notification doesn't have a slight W sound in it, so yeah. That's fixed too. Now I can really work on refactoring and not adding updates for next version. Oh yay.
in reply to Angle🖇

re: Discourse: America, Civil War
we also have to consider whether or not people are willing to lower their standard of living/safety by that much. You're going to have to give up a lot to wage a real war. Systems will break down, supply lines will dry up, suddenly you're wondering where to even get food from as the store shelves go empty and people start to panic AND PROBABLY TURN ON YOU FOR CREATING THIS PROBLEM

I type really fast. Too fast for eSpeakup apparently, because I was installing Debian 13 in VMWare Workstation 25H2 just now, got to the part where I enter my full name for my user account, started quickly typing my name, got as far as typing "Stu H" before eSpeakup just fell over and died. No problem, I'll restart the VM and try again. The exact same thing happened at the exact same point in setup. This is the state of Linux accessibility in 2026.

reshared this