RastislavKish

joined 4 years ago
[–] [email protected] 1 points 3 days ago

So an SVg icon can be automatically converted into the Android adaptive icon? That would explain where they're supposed to come from.

[–] [email protected] 1 points 3 days ago* (last edited 3 days ago)

Thanks! 😃 I don't think I've really ever talked or have written anything about developing without sight. In the blind community, it's a fairly common skill which is not very special, so I'm usually either straight up writing about my projects or giving technical insights on various topics for people without explicit coding background.

Development without eyesight is pretty similar to the normal development. We do not have fancy things like WYSIWYG interface designers, but good devs rarely use those anyway, whether you use VisualStudio, VS Code, Vim or anything else, the general idea of programming is simply working with text in various languages, and blind people are really good in that discipline. Writing programs is essentially just instructing the computer what to do under different circumstances, so it's more a matter of being able to logically, exactly and accurately express one's ideas and intentions, which is a skill not related to the eyesight.

So, if you've ever seen a blind person taking notes or composing a textual document, programming is pretty much the same, except we call the compiler from time to time and get a working (or almost working 😃) program as a result.

[–] [email protected] 2 points 3 days ago (1 children)

Thanks for your work and interest! 😁 There are already two open PR, so thanks to the amazing community, I quickly got from the situation of having no choices to choosing from several alternatives.

I really love the idea of the eye's pupil being represented by the globe in your proposal. It evokes in me the feeling of all the glamorous world being perceived through one's eyes, all the stunning beauty that can be brought to a human only through vision. Which is exactly what I want to achieve with my app, bringing to people the world which can be experienced only through the eyesight.

However, I think the app icon is actually too small space for this. You know, people have gazillion apps installed, the icons become super-tiny, the Earth would be barely recognizable and it wouldn't communicate the idea. I think a much better place for this would be the project's graphical banner, which is much larger, and serves exactly the purpose of communicating the app's purpose through interesting graphics. Play store definitely does have this, and I think f-Droid too. I usually put some non-sense there, because I'm lazy to look for something proper. But if you're in a drawing mood and feel inspired, I believe my project could absolutely utilize your work! 😉

 

Edit: Wow! Literally few days after posting, there are already several open PR and quite a few great suggestions. Huge thanks to all of you, the FOSS community really rocks!

Original post:

TLdR. Nothing major, just needs help finding an app icon.

I'm developing VScan, a little project aiming to research how vision LLMs could help out blind people on travel and in their every-day life by substituting eyesight for various visual tasks.

My project is not a "magical AI app" which is going to solve every problem on the click of a button. In fact, I don't use the "AI branding" at all, because I think it's very misleading for the general audience. It's more of an experiment to find out if the blind people could use LLMs as tools for visual cognition in a way that would be useful.

I'm trying to be as clear and specific as I can about the used technology, and providing as much customization as possible without sacrificing convenience. Of course, the project is completely open-source, does not collect any user data and while the first generations only supported GPT models, because that was the only thing usable for vision at the time, the current dev version already supports defining an arbitrary LLM provider (including a self-hosted server), and the ability to choose any model supported by the respective provider.

I'm facing just one major issue. I'm blind myself, coding the app as my personal tool. And I'm having quite a hard time finding an app icon that would work on the modern Android systems and setting it up properly. To be honest, I'm quite lost in the various suggested standards, there are the ordinary raster PNG icons, vector based SVG icons, and these days Android seems to also have some multi-part contextual XML based icons which as far as I understand should adapt to the different screens, configurations, themes etc. but I genuinely have no idea where to find these and sofar whatever I tried ended up as some undefinable point cloud on the screen.

Normally I wouldn't care about such things, but having an app icon is the requirement for getting accepted into app stores like F-Droid or Google Play, and subsequently, to the users. Nobody these days is willing to side-load apps anymore.

If anybody with Android development experience could take a look on this, I would be very grateful. All that's needed to do is finding a suitable icon on one of the icon portals, preferably in shape of an eye, or a camera (the one used to mark video recording), although the exact appearance doesn't really matter, the users won't see it anyway. It can be free or paid, as far as the price is reasonable. Then you can either open a PR yourself (the project does not require anything special to build, it's just the ordinary Android Studio stuff), or you could explain to me how to implement the icons and I will try to follow.

Thanks for your attention! I apologize if this is not the right place to post this, mods feel free to remove if necessary.

[–] [email protected] 2 points 3 months ago (1 children)

FadCam looks exactly like what I'm looking for, but looking at the author's GitHub, it's a part of fadsec-lab suite, described like:

FadSec-Lab is a suite of Shariah Compliant, ad-free, privacy-focused open-source apps dedicated to enhancing user security and privacy.

What exactly is a Shariah compliant app? 99% of the descriptions look great, but I'm unable to interpret this statement. Has anyone used this app?

 

hello foss community!

Does anyone here have experience with background video recording apps? Basically an application where I could start or schedule a recording, and it would silently run in the background and collect the feed from camera, microphone, and ideally, GPS too, effectively turning the smartphone into a body camera without giving any sign on the screen that recording is going on. In order to check / finish the process, one would need to explicitly open the app.

Is there anything open-source of this kind? My primary use-case is recording my trips, but it could also be useful for security-sensitive activities. Real-time cloud synchronization would be nice too, but I guess it's not such a necessity.

[–] [email protected] 1 points 2 years ago

Thanks for all the awesome feedback!

The reason for using Alt+C & Alt+P by default is to make sure Clipshare doesn't collide with the system clipboard. Since as awesome as a global clipboard is, most of the time I copy something I'm working just on a single machine, so there is no reason for the data to go anywhere. Clipshare simulates Ctrl+C & Ctrl+V keypresses on these occassions (unless the sync variants are used), so the shortcuts should in many cases integrate nicely with the graphical environment.

Serverless setups are absolutely cool, though, in this particular use-case, it depends. Many of the machines I need to copy data between are actually VMs, where NAT usually stands in the way (I mean yes, it doesn't need to, but I sort of like the network isolation it provides), some VM | remote access software provides clipboard synchronization, but it's usually either "way too synchronized" to my liking (weakening isolation), or, another extreme, requires carrying away the focus to activate.

Thanks for mentioning barrier, seems pretty fancy! It's a bit different use-case than Clipshare is aiming at, though, with multicomputer setups, it seems there is a considerable space where these two do overlap (or supplement each other).

Transferring files is a functionality I would really want to implement. Though, I'm not yet decided how to tackle the problem, I mean, I could certainly do the simplest possible approach - data streaming through the server. However, it feels sort of like reinventing the wheel, many people have already implemented sophisticated data transfer algorithms more or less exactly for what I'm trying to do. I need to check out crates.io, if I can find anything nice that could be usable in this context.

 

Hello everyone, I would like to share my little project I've been working on recently. There are many awesome data sharing solutions around. However, I've always wanted to be able to just alt+C on one machine and Alt+P on another, clipboard is just such a handy thing! so, I finally decided to get this done. Welcome Clipshare, a foss, end to end encrypted universal clipboard, written in Rust! Only Text and desktop platforms supported for now, but Android is definitely coming and files / images perhaps too.

[–] [email protected] 4 points 2 years ago (1 children)

And this, right here, is the issue. I don’t need guidance on either Windows or mac. I turn it on, and it works.

So does it on Linux. Perhaps I have misphrased my point a bit, by writing that I'm tracking Linux mailing lists and helping new users to get to Linux, I meant to point out I have experience with different people of different backgrounds, skillsets and setups, with different environments, in other words, it's not just mine laptop off what I'm claiming that all setups work, I'm just saying, that while working with various people, audio usually works out of the box, and when it doesn't, it usually turns out to be a corrupted image or something along those lines.

As for the general guidance for newcomers, this is something you simply do need for anything you want to learn in life. You once had to learn that computers have a keyboard, speakers, how to use them, someone probably told you how internet works, you likely figured out a lot on your own, so did you need to learn how to control smartphones, etc. Each platform, each device is different and when one comes to a new environment, it takes a while getting to know it. That's completely natural and okay. In order to make this process easier, the community is here to answer any questions, just like on blind tech related mailing lists, I'm daily answering questions from Windows users about their system, because something doesn't work for them.

I do complex presentations for work, that involve anywhere from three to five audio sources, and I need to change how they’re routed at least once or twice mid-presentation. This needs to be frictionless, as I need to do it while speaking, in less than 15 seconds.

I don't. And no matter how pretty interface may Windows offer, if you told me "Hey, we have a presentation in 30 minutes, I need you to setup these things", I would have absolutely no idea what to do. Actually, I don't even think this is supported by Windows on its own, I do remember people working with sound using Virtual Audio Cable for doing this routing magic, but that's a specialized software you need to get familiar with, study and properly install & configure. When you are already dedicating this time and resources for achieving something, what's the difference between studiyng VAC and Jack? Actually, you may not even need something as complex as Jack, I think that's used mostly by musicians and advanced audio engineers who need super-low latency and changes to the way system routes audio chunks, for just routing streams, perhaps PulseAudio already offers what you need.

And these can be configured easily, usually work, and are fully supported and understood.

Most of things can be configured easily if you understand them. Learning curve is a natural part of anything anyone is new to. Well, Linux is unfortunately not taught on elementary schools, not preshipped on 99% of laptops, it's not the matter of 99% tech discussions on non-tech forums. If it was, it would generally be well understood how to setup an accessible Linux installation, and few adventurers trying out "the mythical Windows" would be complaining about how many hours their spent debugging until they found out that the high latencies of their screenreaders are not caused by low system responsibility but sleeping soundcards, and perhaps they wouldn't even figure, they would just conclude that Windows accessibility API is bad and they would return to the well-understood and established Linux. So much depends on the background and social awareness, that some skills seem like completely natural and obvious, while they actually had to be acquired, it's just that when everyone does it, the path appears to be more straight-forward and natural, because you don't need to ask how to do things, since you see everyone else doing and talking about them, and in the process of following, you don't even realize how much you learn.

Does Linux do everything it can to communicate itself for the blind? Certainly not! There is already a lot of material for sighted folks, blind people can find some clues, but they're usually either minimal, can be easily out of date or even straight-forward wrong, we could certainly do much better in this regard as a community. Currently, the best and most uptodate support is on our community mailing lists, where new people come to ask things like What is Linux, Which distribution to choose etc. and we help them as we can.

But I think it's important to recognize this is a communication problem, not technical problem. If we wanted to make Linux work exactly like Windows, so people wouldn't need to learn anything new, well, why would they want to try a different system then, they could just stay with Windows. Linux is awesome, Linux is cool, but it's Linux, not Windows. That's a feature, not a bug.

On Windows 11? Press control+windows+enter and narrator will launch. Even if you’re at the system recovery prompt.

Awesome. Now what's the point, if all the prompt offers me to do is a recovery that fails in the end or restarting my PC? I mean yes, if the recovery is successful, fair enough. But then, in 4 years of my usage of Linux, the system never, ever failed to boot. And in case it did, it's likely for a reason that couldn't be handled by auto-recovery. I'm regularly getting upset when using Windows terminal even in standard environment because NVDA's flat review never works as expected, overal. Fixing a broken installation through a tty using Narrator sounds like a nightmare, even if it was actually possible.

On mac? Last week. On Windows? A couple months ago. I was able to explain to them how the interfaces in Objective C or C# or whatever they’re using support accessibility, and point them at resources to work with it.

Well, so could you point them to atspi-resources and documentation, there are resources, Python libraries, Rust libraries, C libraries, I communicated several accessibility bugs with Flutter devs and they implemented the necessary interfaces, so these are fixed now, as far as someone has the expertise and people to work with these things, it doesn't matter whether they use MSUIA or atspi.

On Linux, most things still are QT or GTK, and neither system properly supports accessibility without a bunch of hackery.

that's not really true. In case of GTK, as far as you use proper components, accessibility works just fine, and that's the situation with all accessibility aware GUI frameworks, on all platforms. QT is a little bit more complicated, since it's notoriously known for its inaccessibility even with proper usage, but there are apps that work really well with QT actually, like KeePassXC, so again, it comes down to individual apps. Many things these days are Electron or Tauri anyway, and those work very nicely with Orca, so the field is rather diverse. And even if something does not work, there is usually a TUI for it, which is 100% accessible.

[–] [email protected] 1 points 2 years ago

Perhaps we should reconsider the definition of write-only scripts.

[–] [email protected] 2 points 2 years ago

Ok, so much I guess for this post. :D Sorry if it got somewhat exhaustive, Linux is, like many environments unfamiliar to people, subject to a lot of myths and false information, so I thought it may be a good idea to clarify them before discussing where to move next. I shall do that in another post, actually getting to the question of the OP. :D Sorry again. Perhaps one last thing to address, people writing Linux has not been developed for desktop use... well, it's true, Linux has been developed as a generic purpose operating system, for any use one can imagine. We have really fancy desktops, we have awesome web interfaces, server running folks can enjoy the power of containers, actually not just them, Vanilla OS brought up many interesting and innovative concepts from immutable desktop (what's sort of a misleading name in certain sense, but whatever), to the principles of their apx manager, leveraging containers to unify software from different Linux distributions and integrating them into the OS. The flexibility is something that other systems can hardly compete with, so yes. We're not just desktop folks, we have much more in the stack!

P.S. I almost managed the character limit! 300 characters, what a pain, I hate these restrictions. :D

2/2

[–] [email protected] 2 points 2 years ago* (last edited 2 years ago) (4 children)

Hello, a daily Linux blind user for several years here. @fastfinge I would like to respond to some of your points, as I find them somewhat misleading.

Sound never, ever works: Alsa, pulseaudio, pipewire…some apps require one, some apps require the other, and they don’t work together at all well. Plus sound is considered part of the userland desktop environment. So if there is some problem preventing the GUI from launching and dropping me into a shell, I can forget about having any accessibility what-so-ever. We’re what feels like decades away from having the advanced features that CoreAudio on mac or WASAPI on windows offer (audio ducking, first-class support for multiple soundcards and routing audio from different apps to different outputs easily, per-app volume adjustment, loopback recording, low latency, any kind of spatial anything, etc.).

My experience is quite different. Regularly tracking the blind Linux mailing lists and guiding newcomers on getting their systems accessible, problems with audio are actually very rare these days. Mainstream distros like Ubuntu come prepacked with a bunch of drivers, ensuring great compatibility. From time to time someone appears with sound problems, but most of the time it turns out to be a corrupted installation image rather than actual audio issue. I don't remember anyone who wouldn't be capable of installing the system because the audio wasn't working. Alsa is a kernel module responsible for playing sound, PulseAudio is a software mixer built on top of Alsa providing more civilised audio interface for applications, PipeWire is a drop-in replacement for PulseAudio bringing some fresh wind to the field, mostly improving bluetooth headphones/speakers compatibility, but also improving latency etc. I don't see how these could get in comflict. PW and PA shouldn't occur on a single system installation, while both are designed to work with Alsa. For applications, it doesn't really matter, most of them had been developed in times of PA, and PW is backward compatible with it. I've fiddled with many applications through the years, and didn't see a single-one that would have audio problems. As for audio effects, there are very popular PulseAudio modules, PipeWire modules you can use for various effects like noise cancellation, audio filtering etc. I didn't play with them too much because I didn't see any added value also in Windows audio effects. I once applied a noise-cancellation tweak trying to improve the quality of my laptop's internal mic, but well, that thing has so bad sound I eventually decided to stream the microphone from my smartphone to PulseAudio through ADB, and it worked really awesome! And it's remained working also after switching from PA to PW not needing any changes. So much for audio flexibility and compatibility. Even more interesting effects can be achieved with systems like Jack, but being just an average user in audio terms, for me it's been never worth setting up. The things you mention like working with streams of specific apps are perfectly possible. Perhaps a more straight-forward interface wouldn't hurt, but other than that, it works, whatever. :D There had been some controversial topics indeed in the past, like when Alsa devs decided it would be funny to make the audio volume 0% by default and having it muted as well, what didn't get really appreciated by the blind community. :D But then, on Windows screenreaders are applying workarounds for years to prevent soundcards from auto-sleeping, otherwise the effects are really crazy, with the funniest part being they don't even work 100% of the time, I had computers where I needed silenzio anyway. So, these things are by no means unique for Linux, I see it just as the general kind of things we're used to be dealing with.

meaning I have absolutely no recourse other than “get a sighted person to come to my house and fix it” because I did something as simple as swap a drive.

As a blind student using Windows, I was regularly calling my classmates to read me the screen, because I did something as simple as trying to turn my computer on. Actually, Windows got the ability to activate the screenreader during system installation just few years ago with Windows 10, Linux could do this long before. And while on Windows I had been pretty stuck, Linux seems way more flexible to me in this regard, at worse I can boot up a live distribution and fix things from there, I don't remember the last time I booted a Windows Live image. :) That's not to negate your point, the situation indeed could be better and there are distributions like Slint trying to achieve this. Though, I think it's also worth mentioning this is a wider topic than Linux, just for how long have we been discussing UEFI accessibility, grub accessibility etc. These problems are related to all blind people, and of all the systems we have today, Linux gives you the most power to do something about them if necessary.

Linux has no comprehensive, standard, accessibility API that will work cross-window manager, cross-desktop, and cross-platform. In Windows or mac, there are clear guidelines that developers need to follow to create accessible apps. If an app is inaccessible to me, I can refer a developer to first-class, well supported and understood, API documentation telling them what they need to do in order to better interact with my screen reader. On Linux, that’s not so easy, meaning apps just never get fixed, because developers working for free just can’t be expected to figure it all out themselves.

Linux has at-spi, that's the universal accessibility standard equivalent to MSUIA on Windows. It's pretty well developed, works on any setup that has DBus, another standard thing you find basically anywhere, even sandboxing software like Flatpak or Snap respect atspi interfaces, meaning it's not some random thing supported by few demo apps, it's a full-fledged accessibility standard used by GTK, QT, web engines, Java, etc. It does have documentation, and even software for helping developers evaluate the accessibility trees of their apps. The argument that apps don't get fixed because devs don't understand atspi is something that... is not really the cause of the problems. Just compare with Windows. When was the last time you discovered an inaccessible app, you wrote the developer "Hey, your app is inaccessible, but there is this great, well-documented MSUIA thing you can implement and get it working", and the developer was like "Awesome, thanks for your feedback!" and made the app accessible? I wouldn't like this to sound rude or anything, because it's not meant that way, I just want to point out this is very lowlevel stuff that noone but accessibility experts understand, and it's a work beyond one person or even a small team without relevant expertise to make applications accessible using these APIs. Not even highly popular GUI libraries managed to implement it properly. Consider Java and QT, GTK never even bothered. While, that should exactly be the way for app developers to support accessibility, to use correctly their GUI frameworks, which should be responsible for handling MSUIA stuff. Many of them didn't really. That's why Matt Campbell started the AccessKit project, which is really promising in terms of cross-platform accessibility, he already improved atspi quite a bit and other changes are planned, see your other linked post. That's why I would say Linux not only has universal accessibility API, it's also one of the most open APIs we have these days.

Btw, quite a lot of Linux GUI environment is already accessible, as I mentioned I'm a daily user and things are really on a decent level, but things are just starting to move. It's not so long ago that KDE selected accessibility to be one of their main goals, and there's going really a lot of work into making that determination true. Cosmic desktop, the new environment of PopOS written in Rust, is building on top of GUI frameworks working on implementing AccessKit, and System76 committed itself to support the accessibility of the environment. A lot of development is happening in Orca, we're getting a lot of new features, refactors and bugfixes, improving the experience really significantly. Redhat has hired two people I'm aware of specially for accessibility positions, to work on improving GTK 4 and GNOMe DE accessibility, the work done by the accessibility teams has already shown up in both the environment and the framework. Wayland is a common scarecrow in the whole Linux world, not just the accessibility-one. But the reality is not that bad, there are few annoying minor things we're workarounding just now, like clipboard being available only to applications that have a window, making flat review copy not working (Orca come up with a feature similar to the Jaws' virtualisation to fix this). On one hand it's true it is annoying, right. But on the other, when I realise any Windows program is capable of freely reading the clipboard without any special privileges, and this has already been misused in the past for stealing money by swapping crypto adresses, I'm not sure it's that clear what's actually the inconvenience.

1/2

[–] [email protected] 10 points 4 years ago

Hey there, a blind Linux user here. Well, as for the accessibility of the open platform, I really have to say that I truly admire how far it got over the time. Accessibility is in general quite complicated area, requiring existence of unified standards, protocols and specialized software like screenreader to actually make use of those protocols, speech server to represent the ability to speak and actual synthetic voices, so blind people can actually hear the informations they need. Linux has over time got into a state, where it is in my opinion fully comparable with other platforms. We not just have fully accessible environments like Mate, Firefox, GTK or even QT to some point, but accessibility is taken into account even when designing new stuff like GTK4 or the Linux backend for Flutter. Even Raspberry OS got special attention from the authors to make the environment as accessible as possible, I just have set up one and as far as I have tested by now, it really works. It's just a small pitty that in the enthusiastic hurry to make the system accessible, the developers have kind of forgotten to include the screenreader itself in the default setup, making the system impossible to use by default. But that's solvable if one has an ethernet connection, I have SSHed into the machine and set up what was necessary, no big deal.

Of course, this doesn't mean that we can't do better nor the area no longer requires attention. The biggest issue these days is probably the lack of accessible software in some areas. For example, there are still no decent accessible audio workstations for blind musicians, what's kind of unpleasant when we consider that it's one of the typical professions for blind people. But I wouldn't blame this on community, it seems more than the natural state of things. Even on Windows, in any genre, some percentage of applications is accessible and some not. And because Win has still more software than Linux, the chance of finding an accessible-one is just naturally higher. The programming field has far higher support on Linux than the musicalone and guess what? There is significantly higher amount of accessible development tools.

So, as I said, I dont really think community should be blamed here. In fact, considering the complexity of accessibility, the required effort to constantly "guard the field" and most importantly - the number of potential users, which is (fortunately) really small even on Windows and almost hundred times smaller on Linux, the current state of things is really impressive.

Personally, as a blind user, I feel more free on Linux than on Windows. From my subjective perspective, there may be less amount of linux applications, but the software we have is often very flexible, configurable and therefore more useful than a ton of Windows craps. For some reason, when I use Windows now, I can't get rid of feeling, that I work with a system designed for idiots. On Linux, even if there are accessibility issues, there is often a way to get around, like with the Raspberry pi. On Windows, if you can't get it working from the gui, you're usually done. No configuration files to tweak, no command line interface or even parameters to use, no source code to improve the things manually.

On the other hand, I'm a developer, so Im used to search workarounds and work with the internal structure of apps. May be regular users have a different perspective and i can't speak for them.