Software developer, formerly at Microsoft, now co-developer of the AccessKit open-source project (https://accesskit.dev/) and cofounder of Pneuma Solutions (https://pneumasolutions.com/). My current favorite programming language is Rust, but I don't want to make that part of my identity.

Music lover. Karaoke singer. Science fiction fan. Legally blind. Secular humanist

This profile is from a federated server and may be incomplete. View on remote instance

@matt@toot.cafe avatar matt , to random

Here's an idea: someone should produce a series of ebooks that teach how to use GNOME and popular applications (e.g. Firefox and LibreOffice) with Orca, in a systematic way with activities for each concept or task, then use the proceeds from sales of those ebooks to help fund development of Orca and the free desktop accessibility stack in general, as NV Access has done with NVDA and their training ebooks. I think there would be a market for that.

@matt@toot.cafe avatar matt , to random

So now wee see the negative side of everything and none of the positives? This person seems to be saying that the positives of the digital age don't even come close to outweighing the listed negatives. I strongly disagree. For one thing, we can connect here despite geographic distance. That's huge for minority groups in particular. https://hellions.cloud/@noondlyt/115578047722921941

Probably goes without saying, but please direct all replies to me, not the original poster.

@graydon@types.pl avatar graydon , to random

the idea that I'd be somehow opposed to tools that make C/C++ safer because I guess they make rust marginally less attractive by comparison in some contexts is like .. insultingly silly.

language pluralist. also I live on planet earth where there are eleventy trillion lines of legacy C/C++ that even TRACTOR++9000 will never manage to rewrite. also the next two day jobs after rust were (surprise!) C++ and I've only very recently got to use in rust professionally at all. also it's just not always the best tool for lots of jobs. also lots of people dislike it and they are allowed to. like come on! people!

matt ,
@matt@toot.cafe avatar

@graydon I think part of what's going on is that some of us who like Rust, and I admit I've fallen into this way of thinking, really want it to be the best tool for as many jobs as possible, so more people will write libraries for it and more companies will use it, so we can use it more, because we want more software to have that C/C++ performance/memory envelope while still being tractable for a small team (or individual) to implement safely. I want Rust to win because the winner takes it all.

matt ,
@matt@toot.cafe avatar

@graydon Or a better way to state that last sentence might simply be, network effects and zero-sum thinking.

matt ,
@matt@toot.cafe avatar

@graydon Yeah, you're right about that. I guess the counter-argument would be that there's also some zero-sum conflict in how we all collectively spend our time, and in my role as an application developer, I want more good Rust libraries more than I want investment in things like Fil-C. But of course, there are lots of developers out there who want to work on different things, so both can happen at once.

@matt@toot.cafe avatar matt , to random

I recently saw a toot saying that Linux on the desktop will take off and go mainstream once the terminal is hidden away under advanced settings (actually, twenty years after that). I had an immediate emotional reaction to that. This was my response: https://toot.cafe/@matt/115485907341571353

I feel like future generations need to be able to easily discover programming, almost stumble into it, as I could on my family's first computer, an Apple IIGS. So the idea of burying the terminal just seems wrong.

matt OP ,
@matt@toot.cafe avatar

Putting a terminal front and center is a statement that you, the user, will want or even need to do things with your computer that we, the developers, didn't necessarily anticipate and design prefab, polished user interfaces for. Burying the terminal is a statement that we developers know best, and you users are a lower class that need to be protected from the things that we think you can't handle.

@matt@toot.cafe avatar matt , to random

I wonder if any blind users of tactile graphics displays (Cadence, Dot Pad, Monarch, etc.) have used such displays to view audio waveforms. Yes, actually listening to the audio you're working on is crucial, but even with my limited usable vision, I've found it convenient to look at a waveform to get a rough idea of how the amplitude varies over the whole track.

@matt@toot.cafe avatar matt , to random

Has anyone ever done a systematic study of what causes non-web applications, especially desktop apps, to start up slowly? I have my hunches, but they're just that, not anything scientific.

matt OP ,
@matt@toot.cafe avatar

It continues to be a problem, even in these days of NVMe SSDs. It seems to especially be a problem with some products that have a long history and thus, probably, a lot of technical debt.

matt OP ,
@matt@toot.cafe avatar

And the obvious follow-up question is: how does one design an application for fast startup and maintain that over the long term? If I remember correctly, this is an explicit goal of Chromium, or at least used to be.

@matt@toot.cafe avatar matt , to random

Hot take about the fediverse: Maybe the solution to the oft-mentioned problem where we don't always see all replies to a post is that we shouldn't be able to see arbitrary replies, except for posts from people that we follow (including boosts), and of course, specific profiles that we view. A corollary is that maybe random folks shouldn't have the right to intrude on someone's notifications with replies to their posts. The result would be more fragmented but possibly better in some ways.

@HG@beige.party avatar HG , to random

A friend of mine is a professor who teaches CS and bioinformatics classes. She uploaded the wrong exam for her students, and a huge portion of them (like, 85% of the class) nailed material they had never seen before. Like, 100% quality work on Python or whatever (computers are just magic to me). And then one of the students asked what the deal was because they had never studied this stuff, and she got to learn that nearly all of her class was GPTing their way through it.

matt ,
@matt@toot.cafe avatar

@HG

> who actually wants to be some kind of non-player character in their own life?

I think the students using an LLM to do their exams are responding rationally to a situation they didn't actually choose. They don't actually want to learn the material; they're just trying to get the necessary credential to find a job that will pay for their existence.

I don't know what to do about it, though.

@godotengine@mastodon.gamedev.place avatar godotengine , to random

4.5 has finally arrived! 🎉

With this new release, we made meticulous efforts in order to amplify what is possible to do with our engine, guided by our goal of making gaming and game development for everyone!

https://godotengine.org/releases/4.5/

matt ,
@matt@toot.cafe avatar

@godotengine Congratulations on landing cross-platform screen reader accessibility via in this release!

@TetraLogical@a11y.social avatar TetraLogical , to random

"Screen readers do not need to be saved by AI"

TetraLogical's @craigabbott has written a post on his own blog exploring why we shouldn’t expect screen readers to be augmented with AI to fix problems with bad content.

The real problem is producing inaccessible content from the start, such as misusing emojis, poor descriptions, or unclear writing.

https://www.craigabbott.co.uk/blog/screen-readers-do-not-need-saved-by-ai/

matt ,
@matt@toot.cafe avatar

@TetraLogical @craigabbott As a former screen reader developer myself, I mostly agree with this article. But, for the specific exzample of the clapping hands emoji, I think it would be easy enough to add a special case to the screen reader -- not "AI", but just a good old hand-coded heuristic -- to filter the text and then play a clapping-hands sound effect synchronized with each of the words. I just wonder if there's broad consistency on whether the emoji comes before or after the word.

@matt@toot.cafe avatar matt , to random

For anyone who thinks Wayland compositors are being overly restrictive by not allowing applications to set absolute positions for their windows, as I did, there are good reasons for this restriction. https://canonical-mir.readthedocs-hosted.com/stable/explanation/window-positions-under-wayland/

@matt@toot.cafe avatar matt , to random

Is there any ARM64 SoC that can boot to Linux without either requiring a DRAM controller initialization/training blob or punting the whole boot process to a second processor running wholly closed firmware? That second one rules out Raspberry Pi (for personal projects). I'd grudgingly accept ARM Trusted Firmware persistently running in the background if the SoC's branch/fork of that is fully open-source. But I still don't like how much code has to run before you get to the OS kernel.

@dotstdy@mastodon.social avatar dotstdy , to random

tfw you snipe yourself into writing weird stuff in the terminal...

ALT
matt ,
@matt@toot.cafe avatar

@dotstdy That's cool that you used Unicode Braille patterns.

@aeva@mastodon.gamedev.place avatar aeva , to random

I'd really love it if visual studio had a thing where when a build finishes it ducks my music for a moment and plays a sound effect. Ideally a loud popping sound if the build failed, and some kind of victory fanfare if the build was successful.

I'm sure it would not be hard to hack something together, but I really don't think I can justify spending work time on such a thing XD

matt ,
@matt@toot.cafe avatar

@aeva On Windows, the OS has an audio ducking feature, but, at least when using classic Win32 and not WinRT/UWP, it's only for assistive technologies (e.g. screen readers). Specifically, the application process has to have the uiAccess flag set, and for that to work, the executable has to be signed with a valid Authenticode cert.

@matt@toot.cafe avatar matt , to random

My conference talk about is coming up in about 3 hours, at 10:25 CET. That's 8:25 UTC, or 3:25 AM US Central time (my usual time zone). It will be live-streamed here: https://rustweek.org/live/wednesday/ My talk is in the main track.

@cliffle@hachyderm.io avatar cliffle , to random

Today's run through of my talk is waaaaay shorter than I expected!

...which is both good and bad. On the one hand, yay, I have room to fit more things in!

On the other hand, boo, I'm not done yet!

So I may get to include some tactical advice on keeping programs small after all.

matt ,
@matt@toot.cafe avatar

@cliffle

> So I may get to include some tactical advice on keeping programs small after all.

Yes, please!

matt ,
@matt@toot.cafe avatar

@cliffle Yeah, that does sound interesting. Sorry if I indicated otherwise with my earlier message the other day.

matt ,
@matt@toot.cafe avatar

@cliffle I don't actually work in embedded, at least not yet. But I want my GUI accessibility library to be small, especially the wrapper that provides a C ABI, so it'll be acceptable to the kind of developer who prefers to roll their own GUI toolkit because they don't like bloat. I understand, of course, that you're working with more extreme and non-negotiable constraints.

@matt@toot.cafe avatar matt , to random

For anyone else attending in Utrecht next week: I like to sing karaoke (I memorize my songs), and would love to meet up with folks for karaoke while there if anyone's interested. Wednesday, Thursday, or Friday evening would work for me.

matt OP ,
@matt@toot.cafe avatar

Follow-up: Got a recommendation for this karaoke place in Utrecht: https://dukeoftokyo.com/en/locations/utrecht They offer private rooms for rent. I'd be willing to rent a room to do karaoke along with a handful of others. Let me know if you will be in the area next week and are interested.

@matt@toot.cafe avatar matt , to random

Additional context on my last boost (about Servo not changing its AI policy): This is good news, because the existing policy categorically forbids contributions including LLM-generated content, and gives reasons why. https://book.servo.org/contributing.html#ai-contributions

@glyph@mastodon.social avatar glyph , to random

Feels good to be back at home with a working computer this week to provide a much more substantial update to patrons:

https://www.patreon.com/posts/patreon-update-123479738

matt ,
@matt@toot.cafe avatar

@aeva @arclight @glyph Re: bundling a Python app with a non-Tk GUI as a self-contained package, it's not that bad with wxPython, at least on Windows. I'd expect GTK on non-Linux platforms to be troublesome though because of the Unix-ish filesystem structure that that whole stack expects.

matt ,
@matt@toot.cafe avatar

@aeva @arclight @glyph I know of a blind programmer who, when they were 15, wrote a Twitter client in Python (this was maybe a year before Musk's takeover) using wxPython and shipped it for Windows and Mac.

@matt@toot.cafe avatar matt , to random

Is there any screen reader or browser extension that eliminates soft hyphens when reading a web page? Some authors or blog themes add soft hyphens throughout text, presumably to allow the browser to do hyphenation at the end of the line, but this has the side effect of breaking up words, which is bad for text-to-speech. Here's the latest example I've come across: https://www.robinsloan.com/lab/reasons-ing/

@glyph@mastodon.social avatar glyph , to random

This is a sad development for user freedom. Transitioning from individual to collective leadership is great, and it is a monumental achievement that Marcan built an org that will persist. Those of us who have aging Apple Silicon hardware are probably going to owe this team a real debt of gratitude for avoiding the e-waste-ification of those devices in the coming years. But it makes me sad that the fuckups in leadership on Linux will not understand what a loss this is.

https://social.treehouse.systems/@AsahiLinux/113997316251666553

matt ,
@matt@toot.cafe avatar

@glyph The part that worries me more is what Marcan said about sponsorships going down while the number of entitled users went up. It makes me wonder, not for the first time, if proprietary software, with some level of technical enforcement of the license, is the only way to ensure that developers are fairly compensated.

@Impossible_PhD@hachyderm.io avatar Impossible_PhD , to random

[Thread, post or comment was deleted by the author]

  • Loading...
  • matt ,
    @matt@toot.cafe avatar

    @Impossible_PhD Thanks for sharing that fiction-writing advice. I see now that my own recent attempts at writing fiction (strictly private so far) have been loaded with gratuitous stuff that's about the author and not the characters.

    @Impossible_PhD@hachyderm.io avatar Impossible_PhD , to random

    Saw a thing on TikTok and I have to agree:

    The more you learn about history, and the more you study the period, the more any rational and decent person should loathe the Victorian era, anything from it, and anything that calls back to it.

    Truly the nadir of human civilization.

    They ruined historical artifacts of every possible variety, wiped out scores of civilizations, did monstrous things to their own fucking children--there is literally not a single thing from the Victorian era that is an unmitigated good.

    No, not that thing.

    Yes, including literature.

    And before you ask:

    Yes, I studied this dumpster fire of an era at the doctoral level. Specifically, my specialization in lit was the Enlightenment (which was also awful, but has A FEW decent things, such as the Irish independence movement), and the frickin MOMENT that The Castle of Otronto appears is the end of anything remotely redeemable about England especially and the entirety of Europe for the most part for a good century or so.

    The volume of what was annihilated by the Victorians as immoral, and which are now lost forever, with only references in biography and journals and history, is truly beyond measuring.

    So, like... Keep that in mind when you watch a costume drama next time, okay? Because all those pretty gowns and tasteful parties only existed because they gave little boys scrotal cancer at 7 from chimneysweeping so the houses wouldn't burn down and little girls dying from mercury poisoning for making the hats they wore.

    And before someone calls toward the birth of modern feminist literature in the era:

    Go read the Xtian Mystics. Seriously. Julian of Norwich, Hildegard of Bingen (who was sainted!), and dozens of others who came centuries earlier--that feminist lit only had to premiere because IT HAD BEEN WIPED OUT! BY THE VICTORIANS!!

    Even the worst of the women Mystics were vastly more feminist than the costume fiction authors in the Victorian era, and they wrote CENTURIES before it.

    matt ,
    @matt@toot.cafe avatar

    @Impossible_PhD I'm sure you're right about the Victorian era in general, because you know way more about it than I do. The one good thing I can think of that, as far as I know, came from that era is the theory of evolution by natural selection. Am I wrong?

    @matt@toot.cafe avatar matt , to random

    What would a programming language look like that is as committed to safety as Rust, and can be used everywhere C is used, with competitive performance, but rejects the idea of writing high-level abstractions and relying on the optimizer to turn them into efficient code? That is, compete with C, not C++. Are those goals contradictory? Are the zero-overhead abstractions and sufficiently smart compiler required for the full, composable memory-safety in practice? Thoughts, @graydon ?

    @matt@toot.cafe avatar matt , to random

    Question for Android users: While working on an Android accessibility implementation, I'm encountering a bug where the gestures to move through an edit box by character or word don't actually move the cursor; they just move a TalkBack virtual cursor through the text. Is this a well-known problem with TalkBack? I can now reproduce it with the Android native UI toolkit and Flutter, as well as the toolkit I'm working on.

    @matt@toot.cafe avatar matt , to random

    I see Rust 1.83 was released today. 1 The major focus seems to be on enabling more things in const context. It'll be interesting to see how this might allow more logic [2] to be shifted from program startup time to compile time.

    [2]: This post by @chadaustin has influenced my thinking on performance, and especially program startup time, for years: https://chadaustin.me/2009/02/logic-vs-array-processing/

    @dotstdy@mastodon.social avatar dotstdy , to random

    oh no the end is nigh, it's nearly time to upgrade my work pc to windows 11. surely i wont regret this

    matt ,
    @matt@toot.cafe avatar

    @dotstdy Once you get settled in and tweak some settings, it just becomes business as usual, as with previous Windows upgrades.

    @nixCraft@mastodon.social avatar nixCraft , to random

    I recently saw an IBM presentation on how AI will help eliminate COBOL once and for all. Basically, they are trying to sell a tool that uses their WatsonX cloud service to convert COBOL to Java with the help of the current buzzword named generative AI. Let me tell you, COBOL has outlasted most of the tech that was invented since 1965 and I think it will outlast generative AI, too.

    matt ,
    @matt@toot.cafe avatar

    @nixCraft On the one hand, translating COBOL to another programming language using an LLM is likely to lead to disastrous results.

    On the other hand, I disagree about generative AI being a short-lived fad. I think there's something useful there, and after the hype and the rush to add generative AI to everything die down, that useful core will remain.

    @eniko@peoplemaking.games avatar eniko , to random

    Feel like if we ever want to break the browser hegemony we need a reboot of web technology to start clean with a design that's actually feasible to implement from scratch without spending billions of dollars

    matt ,
    @matt@toot.cafe avatar

    @eniko @oblomov I think the problem is the startup cost of downloading and initializing each website with its own layout engine, or its own copy of one of the common layout engines. And yes, each website would have its own copy, because we somehow concluded that sharing things from a CDN is a security problem.

    @matt@toot.cafe avatar matt , to random

    The BT Speak (https://www.blazietech.com/bt-speak-pro), particularly in its "traditional" (non-GUI) mode, takes such an interesting approach to implementing a UI specifically for blind people.

    From the mid 2000s until I got my BT Speak, I thought the only viable options were to either implement a screen reader for a GUI, or implement a fully custom UI designed specifically for speech output and whatever kind of keyboard or keypad the device supports. The BT Speak does neither. 1/?

    @Gankra@toot.cat avatar Gankra , to random

    throwback to the distressingly long period where firefox engineers were freaked out about possible memory corruption bugs in rust's HashMap, because it kept showing up in crash reports. so you know, justified diligence.

    as far as i know the resolution was "there's a lot of hashmaps, so statistically any given memory corruption bug has a decent chance of hitting some memory owned by a hashmap totally randomly"

    matt ,
    @matt@toot.cafe avatar

    @gabrielesvelto @Gankra How often do crashes occur because users have bad hardware leading to bit flips? Is that like a one in a million event? Or rarer still?

    @matt@toot.cafe avatar matt , to random

    Question about the Rust standard library, and Rust API design in general: I wonder why all of the methods in std::sync::mpsc take &self rather than &mut self. Methods like send and recv mutate the state of the object they're being called on, and I'd guess that they should never be called concurrently with another method on the same struct, or another call to the same method. So was the use of &self rather than &mut self deliberate? Is there a principle to follow, or just historical accident?

    @matt@toot.cafe avatar matt , to random

    Interesting article discussing, in detail, a possible design for a less expensive refreshable Braille display: https://jacquesmattheij.com/refreshablebraille/BrailleDisplayProject.html

    And the Hacker News comment thread: https://news.ycombinator.com/item?id=39724312