The resilience of Minnesotans is unmatched. Day and night, in snow and freezing cold, they keep showing up and standing their ground. That’s people power. That’s BlueCrew strength.💙
Drop a ✊💙 for the Minnesotans holding the line in the cold and refusing to be silenced.
#BlueCrew #ProudBlue #PeoplePower #JusticeForRenee #ICE #AbolishICE
Is all this coding making me like C++ any better? No, not really. Sure, no strict indent-checking and function definitions are easier to write than Java. It's all I'm giving C++.
Learn Six Ways to Increase Productivity with Braille and JAWS
Are you looking for practical ways to get the most out of using Braille and JAWS? Want tips to help you work more efficiently? Join us Thursday, January 15 at noon ET for a live webinar, “Six Ways …Freedom Scientific Blog
The Root Cause: "Dot" vs. "Comma"
NVDA Sets the Locale: When you set NVDA's interface language to Spanish, Hungarian, German, Polish, etc., NVDA configures the Python process's global locale (via setlocale) to match that region. In the US/English locale, the decimal separator is a dot (e.g., 0.5, 60.0). In many European/South American locales (the "supported languages" you noticed), the decimal separator is a comma (e.g., 0,5, 60,0). The DLL Inherits the Locale: The nvspFrontend.dll is loaded into the same process space. The standard C++ string parsing functions (like atof, strtod, or std::stringstream) often respect this global locale setting. So, all the YAML files become invalidly parsed because they use a period. Ha. Wow. What a bug.
I logged into my dashboard tonight via the tunnel. No banner ads. No
"suggested content" algorithms designed to doomscroll me. No tracking pixels firing off to a data broker in Utah, lol.
Just my tools, sitting there, waiting.
We really forgot what the internet feels like when it isn't trying to extract value from us every single second. It’s quiet here. I like it.
#digital #minimalism #selfhosted #SmallWeb #AdFree
Sensitive content

Question for people relying on alt text: When one posts contains multiple images, should each alt text be written independently, or does it make more sense for one text to refer back to previous ones?
Like, when the first describes shape and colour of a flower, should the second copy that description and add to it (independent alt texts), or refer back, like "the same flower [from a different angle, showing xyz]"?
#altText #imageDescriptions #Blind #questions
- independently (16%, 13 votes)
- refer back (45%, 36 votes)
- just show results (38%, 31 votes)
Přemýšlel jsem, jak v pochmurném prosincovém počasí dostat děti ven, až mě napadl geocaching, který se ukázal jako trefa do černého. Pár řádků o tom, jak se z nás stali geokačeři.
#děti #geocachingblog.eischmann.cz/2026/01/17/j…(reakce na tento příspěvek se může zobrazit jako komentář pod článkem)
reshared this
1) I assume the instructions at the GitHub page to deal with phonemes are outdated, since they talk about data.py, right?
2) If I want a phoneme to sound different in Portuguese, should I create a phonemes section in pt-br.yaml and put the phoneme parameters there, or should I modify a phoneme in phonemes.yaml itself?
Espeak is able to speak many of them, but you have to like, read them as individual letters sometimes. Yeah. I think JAWS is the only one I know where there's a way to get Eloquence to speak IPA, and supported posts about this (ruf.rice.edu/~reng/jaws-ipa.ht…) but it's tricky for sure. I will switch to Espeak sometimes in this workflow (or Speechplayer) and see how it speaks the symbol and compare as it's the only one I've seen in NVDA doing some interpretation.
Instead:
1.
“copy the closest phoneme to a new key (e.g. y_hu / ᴇ) in phonemes.yaml”
2.
“in your packs/lang/<lang>.yaml, add a normalization rule that maps the IPA symbol to your new key”
That keeps the phoneme table centralized, and language packs only decide which key to use.
Speak failed:
Process exit code 3221225477
If this mentions phonemes.yaml, make sure packs/phonemes.yaml exists.
IPA conversion failed:
Process exit code 3221225477
Tip: you can also tick 'Input is IPA' and paste IPA directly.
I just discovered (and tried) this wonderful piece of software
It allows remapping your keyboard in many ways, and it's controlled from a simple configuration file (so, you can prepare one for your disabled friend).
You can, for example, remap the keyboard to only use its right half, if the left hand is dysfunctional (similar to the mirrored keyboard I made, github.com/clackups/qmk_firmwa… ).
Also, it should be useful for #disabledgamers , to map, for example, AWSD to different keys.
#disability #keyboard #accessibility
qmk_firmware/keyboards/nuphy/air60_v2/ansi/keymaps/clackups_mirrored/README.md at onehanded_nuphy_air60_v2 · clackups/qmk_firmware
Open-source keyboard firmware for Atmel AVR and Arm USB families - clackups/qmk_firmwareGitHub
One of our nodes (ASL 506317) has disappeared from the internet. Investigations pending. All traffic has been routed through another node for now.
WT connections can be made through any of our other ASL nodes.
I'll report when it's back online.
- Yes (0 votes)
- Not yet (0 votes)
@matthewcroughan @BorrisInABox It is when of them is your landlord, or your bank, or a job application, or anything else you need to interact with as an adult human.
Two of these are actual examples where I had this happen.
@Tutanota@mastodon.social Hey, I love what you do and I appreciate it, but please take the flatpak package more seriously. I hope you do this year.
Using an AppImage is not really a universal solution. For example, for those of us on musl distros (Alpine, Chimera Linux, etc.) that package is useless.
I really hope you consider treating flatpak as a first-class package because in musl it is our best and probably only option
First and foremost NEVER start this in a ssh connection without using screen or tmux (or equivalent). I started doing and my shitty "big tent" laptop decided to spontaneously renboot (the second time in less than 24 hours)
Kudos to btrfs-convert to have handled this gracefully.
Then the 224GB left after conversion got eaten away when running the recommended defrag.
Maybe I should have run dedupe first which was a main reason to do so.


feld
in reply to feld • • •lain
in reply to feld • • •feld
in reply to lain • • •@lain yes, this is where it unlocks so much potential. Like, I don't want to become an expert in Dtrace. I don't want to become an expert in Postgres stored procedures, or PL/pgSQL. It will take too long and I don't have a job that demands that I do it all day every day.
Life is too short to become such an expert in something that you can do by memory that you will rarely need to use anyway
NonPlayableClown
in reply to feld • • •> I don't want to become an expert in Postgres stored procedures, or PL/pgSQL.
I know a expert that works with postgres, what do you need to know for SPs?
feld
in reply to NonPlayableClown • • •@NonPlayableClown @lain it's more about knowing best practices so you don't kill your database with terrible inefficient procedures. SPs, triggers, etc. They can be immensely powerful tools that turns your database into an absolute powerhouse but also you can cause really stupid side effects
(see also: pleroma restoring from backup right now causes expensive triggers to execute on inserts)
:blank:
in reply to feld • • •feld
in reply to :blank: • • •@i @lain @NonPlayableClown this is very likely caused by non-deterministic collation on your Pleroma database
from the mouth God (Claude):
2. ORDER BY (The Key Issue):
This is where you'll see different results on repeated executions:
- When values are considered equal by the collation, PostgreSQL has no stable way to order them
- The sort order between "equal" values is undefined and unstable
- Multiple executions may return rows in different orders
- If you use LIMIT, you might get completely different result sets each time
feld
in reply to feld • • •Ludovic :Firefox: :FreeBSD:
in reply to feld • • •feld
in reply to Ludovic :Firefox: :FreeBSD: • • •@usul here you go. It works with both IPv4 and IPv6
dpaste.com/9VLZEXZ2E
feld
in reply to Ludovic :Firefox: :FreeBSD: • • •@usul example output of the script after letting it run for a minute. tail end of logs, and then the summary:
2026 Jan 18 10:20:30 20657 1001 UDP firefox 10.255.255.53:53
Command: /usr/local/lib/firefox/firefox --sm-client-id 101d024c23819c000176843403200000687830009
Local: 10.27.3.4:46950
2026 Jan 18 10:20:30 20657 1001 TCP firefox 15.204.35.21:443
Command: /usr/local/lib/firefox/firefox --sm-client-id 101d024c23819c000176843403200000687830009
Local: 10.27.3.4:26279
2026 Jan 18 10:20:30 20657 1001 UDP firefox 10.255.255.53:53
Command: /usr/local/lib/firefox/firefox --sm-client-id 101d024c23819c000176843403200000687830009
Local: 10.27.3.4:46653
^C
PID PROCESS UID PROTO COUNT
67162 unison 1001 UDP 3
95715 quasselclient 1001 TCP 8
20657 firefox 1001 UDP 12
21846 thunderbird 1001 TCP 15
2 clock 0 TCP 16
67162 unison 1001 TCP 27
20657 firefox 1001 TCP 261
0 kernel 0 TCP 4218