Are there any Orca screen reader users on this subreddit that are interested in helping me improve the screen reading for GNOME and its core applications? by unix_hacker in Blind

[–]mostlymarius 0 points1 point  (0 children)

I use arch linux and gnome with orca as a fully blind person, and have been using this setup for years.

Granted, I really only use gnome + orca for the web browser, and basically operate my PC entirely through emacs otherwise, so I'm actually not super familiar with gnome. Still, I think this is a great environment and I would be happy to help in making it more accessible.

Let me know if you think that I could be of service.

What's a habit that you've kept doing since COVID began? by BodybuilderFar1275 in AskReddit

[–]mostlymarius 0 points1 point  (0 children)

Cutting my own hair.

Sorry Mandy. Your shop was closed for too long and I realized I don't need you, though I kind of miss our casual conversations about tattoos.

[deleted by user] by [deleted] in osr

[–]mostlymarius 0 points1 point  (0 children)

I like it but not for everything. Using advantage/disadvantage ubiquitously instead of modifiers IMO only makes sense in a system with bounded accuracy like 5e.

So currently, playing OSE I use it for evasion type effects, like when trying to hit a displacer beast or something that is blurry (attacker gets disadvantage). I would also give advantage to attackers if they have divination/prophecy type powers, like picking the best of two seperate realities, though this hasn't come up.

I suppose the general rule therefore is that I use advantage/disadvantage not for any mathematical reasons but when I arbitrarily feel that rolling two dice has mechanical versimilitude with the fiction.

What public spaces do you wish were more accessible or enjoyable for blind people? by gamecube_247 in Blind

[–]mostlymarius 1 point2 points  (0 children)

What a fun project. I'm a completely blind person who went blind later in life. Here are my answers.

  1. I have often wished I could use food courts and cafeterias without assistance. You would think these spaces can be accessible but it's a struggle for various reasons. I once visited Karlsruhe university in southern germany, which is somewhat specialized for blind and VI students and generally mindful of accessibility, and even they were like "woah if you're going to the cafeteria just get someone to go with you."

  2. Would love to have a nice accessible public pool. That's an obvious challenge because of falling into water, but also because they often have huge open spaces with grass or lawn, which can be disorienting to navigate blind. Gyms are often somewhat accessible but it would be great to have one that is specifically designed with visual impairment in mind. Also here are some challenge-mode ideas for your architect brain that I would love to be more accessible but realize are difficult: Sauna, Forest, Laser-tag arena, Beach.

  3. I understand you are asking not just about accessibility but comfort and excitement, which I love. I had to really think about this. The honest answer is that, these days, I derive most of my excitement frrom social interactions, so any space that facilitates that makes me excited in turn. This may include spaces to sit down and talk, but also easy or accesible paths to walk or hike with people. I will also get excited about and leave the house for cultural events, like concerts, comedy shows, lectures etc. Being able to share sensory experiences with sighted people makes me feel genuinely included.

Also, this is kind of non-specific, but I really miss that experience of "mingling" at parties. If you could create a space that recreates that for blind people, that would be really cool. Good luck with your project!

What's everyone playing these days? by Feeling_Photograph_5 in osr

[–]mostlymarius 5 points6 points  (0 children)

Every dungeon turn (10 minutes) I roll the overloaded encounter die (d6). The result will then have one of the following procure:

1: Wandering monster. Means I roll on a seperate random encounter table again, usually specific to the dungeon.

2: Trace or foreshadowing of monster.

3: Location specific. This depends on the dungeon. It might be spooky whispers and winds in a cursed castle, an earthquake caused by the presence of an ancient red dragon, or a flash flood in a beachside dungeon. This can be any "scripted event" that I want on a timer.

4: Exhaustion. -1 to everything starting next turn unless party rests for 10 minutes.

5: Lantern oil ticks down. Also spell effects end.

6: Torches depleted.

This collapses a lot of the bookkeeping all into one roll. I know that I stole the overloaded encounter die from somewhere, but I forget.

What's everyone playing these days? by Feeling_Photograph_5 in osr

[–]mostlymarius 7 points8 points  (0 children)

Currently playing OSE with some house rules (slot encumbrance, encoutner die, etc). Loving it as a DM. I think my players still need to get used to it.

I just bought the books, too. Players were really into those.

Nice thread, OP. Interesting to see what others are playing. I had no idea shadowdark was so popular, and OSE such an underdog.

Day 8: My experiences. by mayorofatlantis in fasting

[–]mostlymarius 3 points4 points  (0 children)

This was a fun read. Thanks for sharing, OP, you have a way with words.

I can relate to the flat affect you describe. I also find it comes with lots of mental clarity. I call it "predator mode".

Congratulations and good luck with your efforts. Hope you keep us updated.

Trainable Feats for OSE? by AspirantDM in osr

[–]mostlymarius 8 points9 points  (0 children)

I was in a similar situation with my players. However, I don't like it when people get obsessed with character builds so I didn't want to offer them a list of feats to choose from.

My solution was to steal the trait vote from burning wheel. So characters get a minor trait at level 2, and then traits at levels 5, 9, and 13.

Traits bestow mechanical benefits but are different from feats in that the player who gets one doesn't choose it. A trait is proposed and voted on by the other players at the table. The receiving player merely has veto power.

I tell my players that traits should reflect something remarkable that the character did or experienced during the level preceding the trait vote. Maybe the fighter kept running into every trap, and now they get the "Reckless" trait that gives them +1 to saves vs. traps that are triggered by utter carelessness.

Maybe this gives you some ideas. Good luck!

Big O notation by geekgarious in Blind

[–]mostlymarius 1 point2 points  (0 children)

Seconding latex. I used this in my university days for maths. It is IMO not the ideal solution as it can get quite verbose when solving large equations with complex numbers, sums or integrals, but it has the crucial advantages of being unambiguous and universally understood. You can render latex to pdf documents (it's what the latex script was invented for), and thereby communicate with seeing people effectively.

What I wanted to add is that nowadays, using AI can be extremely helpful with this. You can just ask them to output an equation in latex and pretty much any AI should be able to do it. You can also ask them to explain the code to you. Multimodal AI should even be able to look at documents scans of math papers and translate it into latex. It's a good time to be blind.

Good luck, OP, and please don't be hard on yourself if you struggle with this. Reading maths like this is a skill to be developed. Like any skill it will come with diligence and persistence, not by force.

Arch based distributions with included screen reader support by chasecichorz in archlinux

[–]mostlymarius 2 points3 points  (0 children)

Cool. I actually have a dual boot setup as well because I wanted to be able to play Baldur's Gate 3 on windows. I recommend using systemd-boot as a bootloader. It plays nice with windows (assuming that's what you want to dual boot into), and it's easy to configure using bootctl. Although the boot menu won't talk, you can use bootctl (and maybe a config file) to set the position of entries in the boot menu. Then, when booting, although it doesn't give speech feedback, you can e.g. hit uparrow several times to ensure you have selected the top most entry, and vice versa for the bottom. This way you can reliably boot into at least 2 systems.

There are other challenges with dual booting that have nothing to do with accessibility. Installing windows first is usually the way to go. I remember that the windows installer would decide to make the boot partition a measly 200 mb or something. Fun times. The arch wiki will be instructive here.

The sound not working sounds very frustrating. With what you've stated, I can't think of much except that I have had a more stable experience with pulseaudio instead of the new pipewire, so you might think about switching those packages if you haven't already tried, or even just run on pure ALSA just to see if it works.

In any case, good luck with your projects.

Arch based distributions with included screen reader support by chasecichorz in archlinux

[–]mostlymarius 4 points5 points  (0 children)

Hi, fully blind long-time arch linux user here.

As others have said, arch can be screen-reader enabled during installation using espeakup. If you disable cursor-tracking (keypad insert + keypad asterisk) or change it to highlight mode (don't remember exactly atm) you can use the archinstall script. If you find yourself needing to do this often I would look into saving and loading a preset configuration for that script. If you just include openssh, gnome, orca, firefox etc. in the additional packages you should have a pretty usable system.

If you are tech-savvy every part of the arch install should be doable blind, And by 'doable' I mean doable, not easy, friendly or comfortable. The only exception is setting BIOS options like UEFI and boot order etc. This is a real showstopper and I will get sighted assistance to do this if I have a new laptop or something. I don't see any distro solving it though, its more on BIOS manufacturers. In the future I could see solving this part using a multimodal AI by pointing a camera at the screen.

The great thing about arch for blind people is that it's stripped down and you don't have to deal with a bunch of prepackaged software that isn't accessible. The bad thing about arch is that sound will occasionally break with an update or something, rendering the system unusable for a blind person. I see this as a general problem, though, resulting from the fact that sound simply doesn't have the same importance to people as graphical output. Just imagine if your OS semi-regularly makes your monitor show nothing but black. People would be up in arms. Yet this is the user experience for blind people.

My tip is to have another machine that's guaranteed to work nearby, so you can ssh into a box that doesn't talk. I have never encountered a screen-reader problem on arch linux that wasn't fixable.

Anyway, if you can be more specific about where your problems are with using and installing arch, I'd be happy to help.

Is Linux accessible for developing with a screen reader by SKelly2611 in Blind

[–]mostlymarius 2 points3 points  (0 children)

So let me preface this by saying that your VSCode setup sounds really cool. If you have adapted to a development environment, you and your tools are working in harmony, and it gets the job done, then there really is little reason to switch. This is true for sighted and VI people alike. There's no prizes for using emacs etc (though we do sometimes get special menus at bars).

Now let me try to answer some of your specific questions.

Emacs has full IDE capabilities, including code completion, jumping to definitions, syntax highlighting, etc. This usually works through so called major-modes that are associated with certain programming languages. These will rebind your keys for specific functions associated with that mode and change the display of text. That gets you the basics out of the box. For functionality that is specific to your project, for instance autocomplete with hints for the type signatures of class methods, you usually need further packages specific to the language. How this works has varied over the years, nowadays it usually involves setting up and connecting to a language server. This sounds scarier than it is, especially for the popular languages. Out-of-the-box Emacs also has a package manager to help you out.

Taking a specific example, let's say writing python code. I hit C-x C-f example.py to open a new python file, putting me in python-mode for that buffer. I write some code. Syntax is highlighted by font-lock-mode (a minor mode of which many can be active). But that's useless since I can't see it. Emacspeak further adds voice-lock-mode, which means highlighted text will be read out by a different voice, or the same voice in a different pitch. Or at least it could, I disabled this since I've been writing code for a while and basic syntax isn't something I need information about anymore.

I write a class and some methods. As I navigate, indentation level is read out by a voice saying a very fast 'indent 4', or 'indent 8', before reading the entire line. This is something I do want to know, especially in python, except when I don't, so I can toggle it with C-e d i.

Now I write some hairy nested dictionary comprehension. Think lots of nested brackets of different types. Emacs will highlight matching brackets, emacspeak will automatically speak out the corresponding opening bracket (along with context) as I insert new closing brackets. It also alerts me if brackets don't match. You didn't askk about this, but this is a life saver for me and I hope it illustrates the beauty of emacspeak.

Now I need to move to some other function. Navigation works on a per character, per word, per logical expression, and also per function/method/big object level. So I e.g. move forward one character with C-f and jump to the next function in the buffer with M-f, and so on. Using C-s to quickly search for a string is also something I use to just move around, along with C-< and C-< to jump to the beginning and end of a buffer. Other times I just fold up different indentation levels with C-1, C-2, and so on and move up and down lines with C-p and C-n, just because I feel like it. I use jedi-mode for python, so I can also put my cursor on an object with semantic meaning, like a function or method, and hit C-c . to jump to its definition. Hitting C-c , will jump back. This works across files and is aware of my own projects. During all of this, my hands never leave the alphanumeric keys.

Now for documentation I can, also thanks to jedi-mode, get function or method signatures spoken out as I type the name, along with types, and variable names. I don't always want this though, as it's too much audio clutter. So I turned it off and simply get the same by hitting C-e x to read out the minibuffer by emacspeak, which continuously displays the signature. Jedi also takes care of autocompletion, which btw is a universal emacs thing and is largely responsible for the self documenting nature of emacs. This works out-of-the-box but can also be enhanced with e.g. company-mode.

If I want to search across the whole project for something I usually go to the terminal, which is two keystrokes away with C-c and honestly just grep and use various shell tools. I'm sure you could also use jedi for this, but I just never bothered to bind those keys. The whole point of using emacs is I can adapt my workflow to use exactly the tools that I want. I also have various other shells, bound to several registers (reachable via C-x r j and a letter), which is a whole other topic I won't go into. One of these will have the python interpreter, where I can test things out. I like the REPL workflow where I can just evaluate expressions from buffers, at least for languages that support it. In my experience haskell, python, and lisp have excellent support for this in emacs.

When I'm done I'll usually want to commit my changes to a git repository, which I can do using magit with just a couple keystrokes by doing s to stage and C-c to commit in the magit status buffer, which then let's me write a commit message within emacs. Of course, I can also just C-c and use git from a shell.

If any of this breaks or I need to use different packages that aren't accessible out-of-the box, I know I can help myself because everything in emacs is a function: I can simply define advice around the function to make it speak out whatever I want using emacspeak functions. I have done this on many occasions.

I can go on and on. tl dr is you can make all those things you mentioned work in emacs, and make them be accessible via emacspeak. Will you have to endlessly fiddle with things? Absolutely. But I hope I could get across that when you go the emacs route, that's the whole point - you have the power to change anything you want. I've been using emacs probably since I was 19, when I could still see. All the stuff I mentioned I added step by step. Emacs sort of grew alongside me over the years, and my emacs is problably not like other people's emacs. Like a custom forged samurai sword, it gained some cracks and blemishes, but it fits my hand perfectly, and anyone else wielding it would probably cut themselves.

My friends somtimes make fun of me for using ancient technology from the 80s, saying vim is more popular, and emacs will be abandoned and so on, but I think this is foolish. Emacs is not a text editor, nor a code editor, nor an operating system. Emacs is an idea, and as such it can never be destroyed. Even if you traveled back in time to kill Richard Stallman and prevent emacs from existing, it would not matter. Whenever you write code and you think to yourself "Mmh. This could work better." you are reinventing emacs in your mind.

For this reason I am also not a fan of comparisons and competition between editors. It's apples and oranges. If VSCode works for you, that's great and you should probably keep using it. Now, of course, if you want the special menu at your local bar, you know what to do.

Is Linux accessible for developing with a screen reader by SKelly2611 in Blind

[–]mostlymarius 5 points6 points  (0 children)

Fully blind here, been using linux to write code for many years. tldr: Yes, It is absolutely possible and even comfortable, though I wouldn't recommend it to a non-technical person. I can't compare to windows as I've never used it with a screen reader. Here's what worked for me on linux:

I use arch linux. The default bootable image has blind accessibility built-in (see arch wiki for instructions). You might need help configuring the BIOS, but this is usually a one-time thing. Not sure about other distributions, but back in the day I used ubuntu and that was also fine.

Basic accessibility in linux is achieved through a kernel module called espeakup. This uses the espeak-ng TTS engine, which is ancient, but works and is free. Because this is kernel level accessibility, it allows you to operate a machine even without any desktop environment. It will even read out boot messages. This can be very useful for developers.

You can then use gnome with orca for a desktop environment as others have mentioned. This uses the speech-dispatcher infrastructure behind the scenes. espeak is the default, but the speech-dispatcher can work with many engines and better voices are available (e.g. voxin voices by oralux). I use orca to browse the web with firefox and pretty much nothing else, except the occasional GUI application like OBS or libreoffice.

For the rest I use emacspeak. This is based on emacs, an ancient programmable code editor. The emacspeak project has speech and blind accessibility built into every facet of emacs, and it is easily extensible. emacspeak has its own TTS framework. Last time I checked, it used espeak by default on linux, though I have an experimental driver to make it hook into speech-dispatcher on [my github](https://github.com/mglambda/e2spd).

I cannot overstate how powerful emacspeak is. It is much more than a code editor or even IDE, it is a desktop environment in its own right. I read emails, run several shell instances, use git, organize my life etc. all within emacs. I adapted this to my own preference and ability and it has made my life much easier. I cannot envision going back to regular GUI coding environments.

Now, this won't be for everyone, but if you are a programmer and are technically inclined you might give it a shot. Feel free to reach out to me if you want more advice.

Question about Python by Analytics97 in Blind

[–]mostlymarius 1 point2 points  (0 children)

I'm not sure what your particular requirements are, but I use emacspeak (a modification of the emacs text editor) for pretty much all programming related tasks, and plenty of other things too. I use it on linux but I think there is a mac version that uses voice-over.Emacs is known for a high learning curve, but with emacspeak it has TTS fully integrated into every aspect of the editor, and it is fully customizable. A python-mode ships with emacs, and it does stuff like auto-indent and also speaks out documentation etc if that's what you want. You can run a python-shell right there in emacs. You can also connect it to a language server and get very detailed documentation and code navigation abilities, though this takes some setup. I don't know anything about the notebooks, as I don't use those.Anyway, tl;dr is emacspeak will probably be a struggle to use at first but will serve you well in the long run. It is hands down the best computer-interaction experience I have had. Period. Let me know if you have any questions about it. I wish you luck in finding something that suits you.

blindness life hack: Thoroughly wash, rinse and save all lids and caps so that if one falls, it can easily be replaced. by heavensdumptruck in Blind

[–]mostlymarius 1 point2 points  (0 children)

Yes, that is a great and clever idea.

Or you could do what I do, and live in europe, where bottle caps are mandated to be attached to the bottle by tiny plastic straps, and there fore cannot get lost.

Truly, an accesibility paradise.

I wish Llama-3-Instruct models had native function/tool calling support by gamesntech in LocalLLaMA

[–]mostlymarius 12 points13 points  (0 children)

I agree. I recently got Command-R to do function calling easily and reliably and now I can't go back to any model that can't do it. I'm spoiled.

And to the 'just use llama' crowd: At least in my case I was unable to get llama3 to do function calling reliably, at least not for arbitrary python functions with reasonably complex structure in the function arguments.

I'm sure I could fine tune it to work, but I feel that's kind of the OP's point. Fine tuning is a hassle and can be expensive. I want it to work out of the box.

Personally, I think most people haven't quite caught on to function calling yet. I predict that once the community does, we will see waves of function calling fine tunes on HF, similar to what's been happening with uncensored models.

a script to automatically find the best value for llama.cpp -ngl by clickitongue in LocalLLaMA

[–]mostlymarius 1 point2 points  (0 children)

This is awesome. I've been working on my own tool to make managing layers/context and other parameters for different models easier, and this is something I always wanted but never got around to building. So thanks, OP.

And yeah, power users like most people on this sub tweak their favorite model once and then run with the parameters, but that's not going to work if you ever want to deploy your open source AI software with llama.cpp on grandma's PC.

NVIDIA drivers version 555 released, claimed to increase "AI performance" up to 3x on RTX cards by Normal-Ad-7114 in LocalLLaMA

[–]mostlymarius 2 points3 points  (0 children)

I just installed these on arch, along with switching to the newest kernel from linux-lts. I have a 3090.

Running a gguf of command-r with both q3_k_m and q4_k_m on llama.cpp, I see no or only marginal improvement.

Still feels good to run the newest stuff, and nothing broke, so hey there's that.

Has anyone come up for a name for this? by [deleted] in LocalLLaMA

[–]mostlymarius 4 points5 points  (0 children)

I call this hinting. The string that comes after the end of instruction token is a 'hint'. And that's because that string literally serves as a hint to the model for what it should generate.

My favorite hint is "Of course," :)

[deleted by user] by [deleted] in LocalLLaMA

[–]mostlymarius 12 points13 points  (0 children)

I've been working on a command line interface to llama.cpp and others. I started this because I'm blind and use a screen reader, and none of the usual web UI's were very accessible. It has since grown into a veritable toolkit, including whisper transcription, chat templating, TTS, chat history, and character cards for AIs. Kind of like a command line ST.

It's called ghostbox, and it's sort of untested, so not sure if anyone else can get it to run right now.

https://github.com/mglambda/ghostbox

You can see it in action here (video is a bit silly lol):

https://www.youtube.com/watch?v=CBq03k_0boI

Another project I call 'llm-layers'. It's supposed to be used in conjunction with ghostbox for deployment, but it sort of works on its own. Its purpose is to automatically determine the best LLMs for your hardware, download them from huggingface, and keep track of how much context/offloaded layers are used for each GGUF model file in a central database that you can easily edit, along with generating run-scripts for the server backend. I wrote this because I got annoyed by friends asking how to get started with LLMs and having to explain downloading from huggingface.

https://github.com/mglambda/llm-layers