Getting the Orca Screen-Reader to work under Plasma 5

In case some readers might not know, even though computing is heavily visual, certain advanced desktop-managers can be set up for impaired people to use – which also falls under the category of “Accessibility”. This includes the ability of the computer to speak a robotic description of what’s happening on the screen, in case a user can hear, but not see properly.

There are some users who feel they should stick with Windows, because Accessibility can be so hard to set up under Linux.

There are other users who are sorry they every clicked on “Accessibility”, because now they cannot turn it off.

If a visually-impaired user wants Accessibility set up on a Linux computer, I’d definitely suggest letting a trusted other person set it up, because until it’s set up, complicated things may need to be done, and accessibility will not be set up, so that the end-user will not benefit from Accessibility, while trying to set it up.

Some regular users find screen-readers trying for their patience, because of the fast, robotic voice, until they manage to shut it down again. Personally, I only find screen-readers trying, If I happen to have set one up late at night, because the voice could cause some sort of noise-complaint from my neighbors, droning on until I manage to disable it again. In the middle of the day, I don’t find these experiments trying.

I guess that a good question which some people might ask me, would be why I even do such an experiment, given that I’m not visually impaired and don’t need it. And what I do is set everything up until it works, and then disable it again.

On my recently-installed Debian / Stretch computer named ‘Plato’, which is also running Plasma 5 as its desktop-manager, I just did manage to get this feature to work, and then to disable it again.

(Updated 15h50, 1/17/2018 : )

The first thing I had to do, was install a long list of packages. The list below includes what was installed, but it should not really be necessary to give the command to the package-manager manually, to install everything here, because some of these packages will follow as dependencies from other packages. But here is a roundabout list:

Continue reading Getting the Orca Screen-Reader to work under Plasma 5

How the Obsolescence of Dalvik Does Not Even Represent an Inconsistency

There was a development with Android, which slipped my attention, and which took place during or after the advent of Android 4.4 (KitKat).

In general, it has always been a fact that Android application-programmers were encouraged to write a kind of source-code, which was identical in its syntax to Java, and which was compiled by their IDE into a kind of bytecode. Only, for many years this language was not officially named Java, instead officially being named Dalvik for some time. Exactly as it goes with Java, this bytecode was then interpreted by a central component of the Android O/S (although, there exist computers on which the JVM is not central to the O/S).

This means, devs were discouraged but not forbidden, from writing their apps in C++ , which would have been compiled directly into native code. In fact, the Native Development Kit has always been an (optional) part of “Android Studio”.

But since Android 5+ (Lollipop), the use of this interpreter has been replaced with something called the Android Runtime (ART). This fact does not present me with much of an inconsistency, only a late awareness of progress.

Even when I was learning some of the basics of programming in Java, one piece of technology which had a name, was a so-called “Flash Compiler”. This was in fact distinct from a “JIT Compiler”, in that the JIT compiler would use the source-code, in order to compile parts of it into native code, while a flash-compiler would only need to use bytecode, in order to derive native code.

So, if the newer Android Runtime flash-compiles the bytecode, this does not change the fact, that devs are writing source-code, which is by default still Java, and initially being compiled by their IDE, into bytecode.

Clearly though, there is a speed-improvement in flash-compiling the bytecode and then executing the resulting native code, over interpreting the bytecode.


 

Yet, the speed-improvement which was once thought to exist in RISC-Chip CPUs, has largely vanished over the History of Computing. One original premise behind RISC-Machines was, that they could be made to run at a higher clock-speed, than Complex Instruction Set (CISC) Computers, and that due to this increase in clock-speed, the RISC-Machines could eventually be made faster.

In addition, early CISC-Machines failed to use concurrency well, in order to execute a number of operations simultaneously. By doing this, modern CISC-Machines also obtain low numbers of clock-cycles per instruction. But I think that this subject will remain in debate, as long as practical CISC-Machines have not exploited concurrency as much as theory should permit.

Since an optimizing compiler generally has the option of compiling source-code into simpler instructions, even when targeting a CISC-Machine, it would follow that realistic source-code needs to be compiled into longer sequences of RISC-Machine instructions.

This debate began before the days, when a CPU had become one chip. Since the CPU is by now a single chip, communication at the speed of light permits a CISC-Machine to have as high a clock-speed as a RISC-Machine. OTOH, the power consumption of a RISC Chip may still be slightly better.

And, as long as the CPU of Android devices only needed to execute a Bytecode Interpreter, this set of instructions could be optimized again, for the purpose of doing so, on a RISC-Machine. But, if we compare the speeds of modern RISC and CISC -Machines running optimized, native code – i.e., compiled C++ – I think it’s clear that the CISC-Machines, including the ones that were meant to run Windows or Linux on, outperform RISC machines.

(Edit 10/09/2017 : )

I believe that there exist specific situations in which a RISC-Machine runs faster, and that a lot of that depends on what language of source-code is being compiled. In the case of RISC-Machines, the compiler has fewer options to optimize the code, than it would with CISC-Machines.

Continue reading How the Obsolescence of Dalvik Does Not Even Represent an Inconsistency