Peter Vágner reshared this.

Zítra nám držte palce. Čeká nás první velká streamovací akce. Ve spolupráci s @openalt budeme streamovat přednášky ze všech 7 místností konference #OpenAlt.
Pokud budete mít čas a nějaká přednáška v programu vás zaujme, zkuste se mrknout. Při sledování videa jej zároveň sdílíte s ostatními diváky jako u torrentu (pokud nejste na mobilním zařízení) a každý peer se tak počítá!

openalt.cz/2025/

#OpenAlt2025 #Brno

reshared this

Peter Vágner reshared this.

It’s hard to believe, but courtesy of @jcsteh today NVDA 64-bit alpha builds finally added something truly interesting and useful. Technically, it’s not listed under New Features but under Changes, and it says:
In browse mode in web browsers, NVDA no longer sometimes treats controls with 0 visual width or height as invisible. This technique is sometimes used to make content accessible to screen readers without it being visible visually. Such controls will now be accessible in browse mode where they weren't before. What this means in practice is that some previously inaccessible controls in browsers are now reachable. For example, when renewing my home internet plan, I had to complete a captcha. The audio option for it never appeared in NVDA, even with object navigation. I had to rely on Be My Eyes volunteers to read it for me. Now, with NVDA Alpha 53246, I can finally access that control and hear the audio captcha myself. Sometimes small changes make a huge difference.
github.com/nvaccess/nvda/pull/…
@NVAccess

reshared this

in reply to Amir

I don't get why it wouldn't have appeared in object navigation though. This change only stops browse mode rendering from ignoring 0 width/height objects, but object navigation never ignored those in the first place. Simple review might skip the object of interest for other reasons, but not 0 width/height, and disabling simple review should have picked it up. Still, it's much harder to find things that way on complicated websites.
Peter Vágner reshared this.

For those interested in airport and airplane communication, here are interesting recordings. Note to Screenreader users, it takes a while to load liveatc.net/recordings.php

Peter Vágner reshared this.

Peter Vágner reshared this.

I have another sizable update to my Image Description Toolkit available. In addition to supporting geolocation when available on photos, this version allows for the specifying of a web page and having images downloaded and described. Read more on this at theideaplace.net/image-descrip….

reshared this

Peter Vágner reshared this.

{Edit: Numbered instructions.}
For anyone who does not want to use Vispero Accounts:
1. if needed, uninstall JAWS 2026 without removing shared components.
2. Create a new file named AdditionalSettings.ini in the same folder where you saved the setup package containing data starting from the ;.
3. launch the setup.

;; Source: J2026.2510.195.400-any.exe /ExtractAdditionalSettings AdditionalSettings.ini Default

;; Disable User Accounts support

[JAWS]MSIProperties=USERACCOUNTS=0

This entry was edited (19 hours ago)

reshared this

I know this is not a support site or programming course but I can't figure this thing out. If you do know #rust perhaps you can give me a helping hand. I am trying to contribute to an app.

I'd like to parse ipv4 addresses given as command line argument values.
I have got two arguments accepting ipv4 address.
If I specify single such option all is fine.
If I specify both, I 'm getting error like this:

thread 'main' (624061) panicked at /home/peto/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap-3.2.25/src/parser/matches/arg_matches.rs:1879:13:
Must use `Arg::allow_invalid_utf8` with `_os` lookups at `[hash: A8F400C40154F09]`

This is simplified version of my code showcasing the issue:
```
use std::net::{IpAddr, Ipv4Addr};
use clap::{App, AppSettings, Arg, value_parser};

#[tokio::main]
async fn main() -> Result<(), Error> {
let mut app = App::new("Server APP")
.about("My super cool app")
.setting(AppSettings::DeriveDisplayOrder)
.setting(AppSettings::SubcommandsNegateReqs)
.arg(
Arg::with_name("socket")
.required(true)
.takes_value(true)
.long("socket")
.help("Unix socket path"),
)
.arg(
Arg::with_name("relayaddress")
.required(false)
.takes_value(true)
.long("relay-address")
.value_parser(value_parser!(Ipv4Addr))
.help("External relay ipv4 address used together with --listen-address to run behind a nat"),
)
.arg(
Arg::with_name("listenaddress")
.required(false)
.takes_value(true)
.long("listen-address")
.value_parser(value_parser!(Ipv4Addr))
.help("Local listen ipv4 address used together with --relay-address to run behind a nat"),
);
let matches = app.clone().get_matches();
if matches.is_present("relayaddress") & matches.is_present("listenaddress") {
let external_ip = IpAddr::V4(matches.get_one::<Ipv4Addr>("relayaddress").expect("Invalid address"));
let local_ip = IpAddr::V4(
matches.get_one::<Ipv4Addr>("listenaddress").expect("Invalid address"));
println!("Listening on local IP: {local_ip}");
println!("Relaying through external IP: {external_ip}");
}}
```

#rust #rustlang #programming #fedihelp

reshared this

in reply to Peter Vágner

I know this is not a support site or programming course but I can't figure this thing out. If you do know #rust perhaps you can give me a helping hand. I am trying to contribute to an app.

Sensitive content

in reply to Federico Mena Quintero

I know this is not a support site or programming course but I can't figure this thing out. If you do know #rust perhaps you can give me a helping hand. I am trying to contribute to an app.
@Federico Mena Quintero Oh, huge thanks for taking a look. Yes it's clap 3. It's not my decision, I'm attempting to contribute to an existing project so if I can make it work without major changes that might be helpfull. As I don't feel qualified for making decisions when it comes to this. I'm novice when it comes to #rust.
--socket argument is required, other two arguments are supposed to be used together and this condition is tested at runtime.
So if I specify all three command line arguments, I am always getting that error.
I have attempted using os::str and casting but the issue remains. I am simply compiling the app with cargo build --release.
Have you been just adding stuff I may have overlooked when trying to simplify for posting or did you actually changed something please?
in reply to Federico Mena Quintero

I know this is not a support site or programming course but I can't figure this thing out. If you do know #rust perhaps you can give me a helping hand. I am trying to contribute to an app.
@Federico Mena Quintero I've figured it out finally. The issue was not parsing ipv4 addresses but using matches.from_os() on the socket argument.
I have changed it to use std::path::PathBuf and it's working fine for me now.
Huge thanks for friendly hint and looking at my code.
Peter Vágner reshared this.

I am the guest on this week's Penny Forward podcast. I talked about my journey in terms of finding work that aligned with my values as a blind person and attempted to give some general advice for blind people who are looking for work or looking for a job that better aligns with what they would like to be doing. I also talked a little about investing and about moving across the country. To be clear, nothing that I said was intended as a linear "if you do this, then you will find what you're looking for," but, from the point of view of doing what we can as individuals, it is about positioning ourselves to increase our chances of finding opportunities.

The podcast is available from pennyforward.org/podcast-2/, or search for "Penny Forward" wherever you get your podcasts.

reshared this

Peter Vágner reshared this.

Today, we were nicely surprised by @gianmarcogg03 with a new comprehensive (italian) #deltachat introduction video, going through initial setup, groups and chatting, second device setup, #webxdc apps, bots, calls and playing Quake -- all the nice things you can do these days :)

mastodon.uno/@gianmarcogg03/11…

containing peertube, odysee and youtube links (latter provides English subtitles)

Fun fact: devs noticed some tiny but embarrassing glitches in the UI which are now getting fixed as we speak :)

This entry was edited (1 day ago)

Peter Vágner reshared this.

Peter Vágner reshared this.

This project looks promising. It looks like amazing replacement for Station playlist. Supports playlists, automation, looping. I sometimes play music during family events using SPL, maybe on next I will try this. Seems that my next procrastination moment will be with this. github.com/michaldziwisz/sara. Latest release at github.com/michaldziwisz/sara/…

reshared this

in reply to Paweł Masarczyk

@Piciok @pvagner I’m glad the project caught your interest. To be honest, I’ve put it on hold for now because I ran into problems I couldn’t quite overcome — at least not easily with AI. However, I’ll definitely come back to it someday, since I’ve always wanted to build my own live broadcasting system; I just lacked the coding skills. Yes, SARA will be designed primarily around the traditional model of a live radio DJ — using a mixer, sound card (preferably several), and absolutely no virtual mixers or anything like that.
Peter Vágner reshared this.

Was just using #curl to help debug some network configuration issues with a client.

Realised we'd need to fake a hostname mapping to a specific IP, as we haven't set up the DNS aliases yet.

And, because it's curl, not only is there a way to do it, there's several well documented options!

everything.curl.dev/usingcurl/…

Thanks, curl team!

#curl

reshared this

If you are into #tranceMusic #uplifting #vocalTrance, have a listen to these stunning tracks

Paipy & Elles de Graaf - The Last Time

Driftmoon X XiJaro & Pitch - Rise Again

RAM & Arctic Moon & Stine Grove - A Billion Stars Above

Peter Vágner reshared this.

Believe it or not: #deltachat is growing audio/video calls starting with the currently rolling 2.22 releases ... A few people already had two hour long stable calls :)

Calls are an experimental option while we continue to work on reliability, UX/UI revisions, and configuration of TURN servers on #chatmail relays and in clients.

We want calls to reliably work across all major platforms, networks and phones, including #UbuntuTouch

Feedback and debugging happens at support.delta.chat/t/help-test…

reshared this

in reply to Ati

@opensourceopenmind Ok. So I made a call from DeltaChat on Pixel3A running @LineageOS calling DeltaChat on Pixel3A running @postmarketOS with @phosh I got a nice ringtone on PostmarketOS phone, and Ubuntu laptop and iOS phone 👍️ I've answered on Postmarket phone. Audio worked great, and I also got video from Lineage phone but not from Postmarket phone (no surprise to me though I have a working front camera on PM OS so theoretically it could already be done). So 10/10 overall. Great work!👍️
in reply to Ati

@opensourceopenmind @LineageOS @postmarketOS Although for DeltaChat text messages received on PostmarketOS I still only get notification banners with haptics, no sound. Working with Delta running both in foreground and background. To get notification sound I have to have chat with that specific person sending text open in DeltaChat. Again on foreground or background doesnt matter but chat has to be open. Other way - only haptics.
in reply to Ati

Do you run Delta Chat Desktop or DeltaTouch on the postmarketOS phone?

Requirement to have a chat open to have a notification sound is not expected. Could you open an issue at github.com/deltachat/deltachat… or
codeberg.org/lk108/deltatouch with more details?

This entry was edited (5 days ago)
Peter Vágner reshared this.

One UI 8.0 Bluetooth Call Bug Silencing Screen Readers: What It Is and Current Workarounds accessibleandroid.com/one-ui-8…

reshared this

Peter Vágner reshared this.

Interesting, when a modal dialog (nested within a `<main>` element or some sectioning content) opens in Chrome it seems to disregard its context, so elements like `<header>` and `<footer>` will have `banner` and `contentinfo` roles as if they were scoped to `<body>`. When opened non-modally, they have `sectionheader` and `sectionfooter` (new ARIA roles + mapping) which means that it is computing the roles based on the dialog’s context.

Safari and Firefox keep the context is both scenarios (i.e. modal and non-modal). I have no idea what is correct. Need to read more.

Anyway, here’s a playground for the bug: knowler.dev/demos/MR4JmQW

#HTML #ARIA #accessibility

Peter Vágner reshared this.

in reply to Nathan Knowler

Interesting indeed. To distill that further:
data:text/html,<body><main role="none"><header>hi
So it seems Chrome is using the accessibility tree for the context restriction here, not the DOM tree. That means role="none" and any other way of removing content from the accessibility tree, including modal dialogs, change the context. In contrast, Firefox uses the DOM tree in this case.
Normally, the accessibility tree is what you want to use for context because of generics, role="none", etc. However, in this particular case, it seems more appropriate to do this based on the DOM. Hmm.
Peter Vágner reshared this.

typst, an open-source document typesetting system that seems to be growing in popularity, now generates accessible, tagged PDFs by default! typst.app/blog/2025/typst-0.14…
Peter Vágner reshared this.

Good news! It's getting harder to keep track of new #chatmail relays :)

Recently several public relays were added to the chatmail.at/relays list, in Warsaw, Helsinki, Romania and Barcelona.🧡

If you have #deltachat installed on mobile, you can go to any chatmail relay website in the list and click on a link there to create a chat profile.

It's wonderful to hear about collectives setting up chat infrastructure like the recent xat.fedi.cat from @fedicat and @eXOfasia

Peter Vágner reshared this.

Peter Vágner reshared this.

I've been using IndentNav for a while to write Python. Recently I installed BrowserNav and now get way more positional info about HTML elements. It took some getting used to, but now the beeps and tones help me get an idea of the physical layout of a site or electron interface.
It's similar to IndentNav, but it has more rules and works with web browsers instead of being focused on code in a text editor. Positioning is one of the pieces of information that I forgot how much I miss from my sighted days. It's especially helpful with API reference docs that rely on positional encoding. Since there's more info in the browser, I only have beeps instead of precise indentation levels to get a general idea of the structure
#blind #nvda #nvaccess #browsernav #indentnav #accessibility #code

reshared this

Peter Vágner reshared this.

I love Joplin so much. I set up the selfhosted Joplin Notes at some point, and I have never, not even one time, had to touch it. It updates itself, it doesn't crash, it doesn't take up enormous amounts of system resources for no reason, and all the apps just work with it on my Windows, Mac, and IOS computers. I've even got other users on it, and it works just fine. And the apps are also good. Offline? No problem! You can still look at the last version of your stuff. Need to publish a quick, well-formatted single page to the web? Done with a snap!

Peter Vágner reshared this.

in reply to Nick Giannak III

@nick@quinn You could also run cosmos-cloud.io. It'll run and update your dockers for you, configure your reverse proxies, manage your SSL certs, etc. But the nice thing is it uses the standard methods to do all of those things, so unlike other server management GUIs, you can do stuff via the command line or via cosmos-cloud and it doesn't matter.
in reply to Matt Campbell

@matt@nick@quinn to be fair, it's not something you should do in an enterprise environment. In general, updates for things that aren't your hobby need to be deployed to staging, tested, and only then pushed to production. Watchtower just does an in-place update of the containers. But that's fine, and probably even better, for hobby projects.
Peter Vágner reshared this.

Just heard about Bitrig, an iOS app that lets you "vibecode" apps in Swift UI from your phone. It was created by some X Swift UI devs who used to work at Apple, and although I haven't yet tested this out I have no reason to think it wouldn't be accessible. This could actually be a really fun way to learn, as you can not only see the final result, but also view and edit the code. You can even share your new app with friends and deploy to TestFlight. Link to the main site: bitrig.app

Peter Vágner reshared this.

Peter Vágner reshared this.

For a few years I've been aware of this website that purports to be able to unlock shopping cart wheels using the speaker on your phone, but i finally had an excuse to try and and i remembered in the moment.

A woman was outside the grocery store struggling to move her shopping car that was stuck because two of the wheels were locked

I remembered the website! So I put my phone near the wheels and played the sound. The wheels unlocked like magic. She was very happy. So cool.

begaydocrime.com/

reshared this

Peter Vágner reshared this.

Apparently, Zoom P4 Next has been released. It's so so cool to see accessibility being mentioned in the video as one of the features advertised. youtube.com/watch?v=Id73VO07C0…
#accessibility #recording #podcasting

reshared this

Peter Vágner reshared this.

I have a rather peculiar #Android problem.
- I use personalDNSfilter (zenz-solutions.de/personaldnsf…) to block ads system-wide. It's basically like running a local pi-hole using a local VPN.
- I would also like to use Orbot (#Tor) and run some apps (specifically Nextcloud) that don't natively support proxying through Orbot's VPN.

The problem is, Android won't let me run two VPNs at the same time. And blocking ads without a VPN would require rooting my phone, which I don't want to do. However:
- personalDNSfilter can expose the DNS server on port 5300 without using the VPN (which is useless in itself).
- Orbot can expose its HTTP and SOCKS proxy without using the VPN (which is also useless in itself).

Is there some way to setup a custom VPN that would combine these two things, i.e., let me route some apps through Orbot's proxy and use the local DNS server (provided by personalDNSfilter) at port 5300? I was looking at OpenVPN for Android (github.com/schwabe/ics-openvpn), but I'm honestly really confused. Help please? 😅 Boosts appreciated.

Peter Vágner reshared this.

in reply to Jiří Eischmann

Hello @Razemix, with #AdGuardHome you can use it inside and outside you LAN.
Here, I set it as DHCP server and it acts as DNS resolver for all the endpoints on my local network. But I also declare each device with an unique identifier and set private DNS on all of them. Profiles for iOS devices can be generated from the #AGH dashboard.
My AGH is serving DoT, DoH and DoQ protocols. This way, strangers cannot use my resolver to poison it.
VPN connection is not required is this setup to use your AGH outside your local network.
You need a domain name, a free certificate (Let’s Encrypt), open two ports (443 & 853 on UDP & TCP) in your router and firewall, write a tiny script to update your DNS record if your WAN IP address is dynamic.
Network ports are: #DoT (853/TCP), #DoQ (853/UDP), #DoH HTTP/2 (443/TCP), DoH HTTP/3 (443/UDP).
All you devices and family ones can use your personal secure DNS.
You can also completely replace standard DNS client on all your computers with #dnsproxy software developed by AGH team. All your devices will use secure DNS.

@sesivany

Peter Vágner reshared this.

Well, thanks to github.com/Memotech-Bill/MakeD… - now I have a DAISY book of 380 tracks on my Brailliant, and it plays music! Ahaha what a concept Humanware, I'm playing my own Mp3s freely on your device. Big middle finger to you. For a release, grab github.com/Memotech-Bill/MakeD… - this uses mostly Linux conventions. I built a Windows version, that uses FFMPEG and not Id3tag to grab file durations, and make a DAISY 2.02 book.
Oh, you want it? I do link back to this original source. I don't just write code willy-nilly without crediting back a source. So here you go, my fork.
eurpod.com/makedaisy_ffmpeg.zi…
- just point it at a directory and it'll do all the magic for you, throw it onto a Chameleon, Humanware E-reader, Brailliant Bi 20X or 40X, whatever, even any old DAISY player might play this if you can open ncc.html.
This entry was edited (1 week ago)

reshared this

in reply to x0

@x0 OOh vbr I haven't tried yet, might experiment on that a little bit, most stuff I have here just re-encodes into CBR rates. Too bad we can't poke inside the firmware to see what MP3 engine they use. Would be a shame if they now locked it down to just 64-bit mono, but gosh darn it, they're never taking the freedom away from me to play any file I want on there now that audio's been let out of the bag :D
@x0
Peter Vágner reshared this.

Saw on my timeline today that the Windows 11 25H2 installer removed the ability to launch Narrator from install media. Can anyone please confirm? That'd be an interesting thing for me to learn for sure right now, seeing as I've been trying to bring it up in KVM, failing, and debugging it as if Linux audio is the problem. To be fair, it often is, but maybe not this time.

Peter Vágner reshared this.

Peter Vágner reshared this.

We are proud to announce the go-live of our new website, izzyondroid.org/ 🥳

Although still modest, this site lets newcomers jump straight into #IzzyOnDroid and explains what makes our repository worth using. We also hope the new domain will increase visibility and reduce confusion.

We’d love to hear your thoughts here on the Fediverse. Encounter an issue? Please report it on our Codeberg issue tracker at codeberg.org/IzzyOnDroid/izzyo…. And, YES! — our website is #OpenSource 🤗

(1/3)

reshared this

Peter Vágner reshared this.

Today's AWS debacle is the perfect example of the reason why in the last few years I started to be less enthusiastic about Signal, and more oriented to federated or even P2P solutions like XMPP and Jami. I wrote about it already:

gagliardoni.net/#im_battle_202…

Signal was down for few hours today, after an outage that affected AWS:

mastodon.world/@Mer__edith/115…

Let's ignore for a second the blind reliance on AWS or any other cloud provider. In a decentralized system, this would not have happened, or at least it would have not impacted so many users.

Yes, I am a cryptographer myself, I know that Signal's encryption is the best. But encryption is not everything. Availability issues, geopolitical troubles, risk of enshittification, limitations on users' freedom to use and control the software lead to a lack of trust, even in a supersecure solution. And I say that with honest admiration for the folks at Signal, who are doing a great job.

May they prove me wrong over and over again.

#signal #im #aws #amazon #privacy #security #digitalsovereignty #selfhosting #fediverse #federation #p2p #enshittification #xmpp #jami #politics #opensource #freesoftware #libre


PSA: we're aware that Signal is down for some people. This appears to be related to a major AWS outage. Stand by.

reshared this

Peter Vágner reshared this.

Recent development of VScan: The visual perception layer for the blind is much more privacy friendly, universal and finally in app stores!

Sensitive content

reshared this

Peter Vágner reshared this.

Boy, this brings back memories! | JAWS for DOS 2.3 Basic Training Tapes : Henter-Joyce, Inc : Free Download, Borrow, and Streaming : Internet Archive archive.org/details/jfd-2.3-ba…

reshared this

Peter Vágner reshared this.

I'm quite proud of the fact that I usually find out about downtime of #bigtech services from the news.

For years, almost all of my personal online tools have been self-hosted or run in data centres of small regional providers. They aren't immune to downtime, but when they're down, it isn't half the internet.

Monocultures may seem efficient, but they aren't resilient.

#AWS #AWSOutage #Amazon

Peter Vágner reshared this.

Peter Vágner reshared this.

Just a quick note for the archives and for those of us who have hearing issues and need easy youtube transcripts with #a11y to #screenreaders. I've generally used downsub.com to produce text, but it's becoming less usable, often saying "waiting" for a minute or two before giving an error with no specifics as to what the problem is. I wanted something else and found something similar, if not slightly better, at youtube-transcript.io/ It allows 25 transcripts a month free, though I'm not sure how it tracks usage since I didn't have to sign in. Anyhow, it's quite simple, paste in your link, hit enter, and it comes back with a transcript in English for English videos. It appears to use the captions YT itself generates, since I compared the results with what I got from downsub and saw no difference. You can read the transcript on the page or copy it to the clipboard with a button, again on the page. It has 30 second timing markers by default when it's on the page, but doesn't when you copy it, at least by default. I'm still after an easy local transcript grabber, but this is a step forward when downsub doesn't work for me and I thought people might like to have it. #blind #braille

Peter Vágner reshared this.

in reply to Cleverson

@clv0 Sorry, just to be clear, downsub is still working here as well, much of the time. I'd say it works a good half the time, if not a bit more. Sometimes it'll say "waiting" and in a few seconds, come up with the transcript. Sometimes it will come up with it immediately. Quite often, though, it'll just say waiting for a while then say "error". It's still usable, though, quite often, just not nearly always.
Peter Vágner reshared this.

Hey! Did you know that you can now find all the official @xmpp news on Movim 😮!

mov.im/community/news.xmpp.org…

You can subscribe to their News feed using any XMPP account and by joining from any #Movim instance (a lot of them are listed on join.movim.eu/) ✨

Movim is building a complete social platform on top of XMPP. Any account that joins the platform can already create its own blog 😊

Movim Communities allows you to create spaces to publish with others around the topic you like 😸! This is what the XSF did with their own #XMPP News Community, hosted on their own server and accessible from anyone on the network.

100% standard and fully federated ❤️

This entry was edited (1 week ago)

reshared this

Peter Vágner reshared this.

hi. so descam, the thing I made to describe your camera via Rust, well someone said why didn't you make it a website? And it made a lot of sense. So thanks to a bit of tinkering and a lot of vibing we have descam.oriolgomez.com the OpenAI API key is never sent anywhere, it uses your local storage to store it. I might add support for local models if there is request, so. you can run your phone images to your local ollama or whatever.

reshared this