I was recently in a situation where I had to convert a stack of JPEG files to PDF. This was a job need. The human resources department of my to be employer had asked me for a number of forms. These forms had to be filled and sent only as PDF. I did not think there would be a problem because I have a PDF printer installed. I was wrong; it appears that files have to be 2MB or less in size.
I am unaware of any equation that equates image size to file size. I searched and found a few online converters which would shrink the file to the size I wanted. However, I wanted to avoid online services because these were sensitive documents.
The answer was in a thread on the stack exchange forums.
Image To PDF or XPS
This is a tiny program written in visual basic .net. It is fully accessible and converted my files seamlessly. There was no complex dragging with the mouse and all the processing by the program was done on the local computer.
The program is supplied without charge but there is a donate button on the about page which you may want to use.
In addition, unlike the PDF printer approach where I would open each image, print, enter the file name and then move on to the next file, I can add the images I want to convert and the program will do the rest. The program can either combine all images into a single PDF file or it can save the individual files in a folder you specify.
It does not need any installation so there are no pesky licenses to manage.
Please note, there is no specific option that asks you about file size. The program does its conversion and by default, produces small PDF files.
Finally, the program can be run from the command line which allows you to use the program in any scripts you may have.
Playing armchair virologist with SARS-CoV-2
I wanted to take a look at SARS-CoV-2. Finding a downloadable image was tricky but I finally managed. Those of you with organic eyes can skip the rest of this post because you can see the image. However, those of us who have to use synthetic vision are not too badly off either.
See the below article that walks you through a few different images.
This Is What The COVID-19 Virus Looks Like Under The Microscope
You will need the vOICe Learning Addition for Windows to see these images. I am going to be as screen reader agnostic as possible.
- Navigate to the article at the above link.
- Read the article and then use the quick navigation feature to navigate to a graphic of choice.
- Launch The vOICe and activate its client area sonification feature.
- Swap back to the article and navigate to the graphic of interest.
- Pay attention to the soundscapes. You will be able to hear the spikes that give the virus its name.
- You can also use the color filter feature to focus on specific parts of the image as you read the article and follow along.
If you want a clean image of the virus to examine, then as of this writing, here are the steps. These may change because they involve accessing the image from the home page of a site.
- Navigate to the article titled New Images of Novel Coronavirus SARS-CoV-2 Now Available
- Once you are on the page, save the full HTML page including images and scripts. You can do this from your browser’s file menu or if using Google Chrome, from the chrome menu under the more tools option.
- Navigate to the folder where the page has been saved and then to the folder called NIH_ National Institute of Allergy and Infectious Diseases _ Leading research to understand, treat, and prevent infectious, immunologic, and allergic diseases_files
- In this folder, grab the file called Vero-Covid-19-24h-hi_i034-rk.jpg
You can load this image into the vOICe and run similar analysis and do whatever else you want to do. Try different color filters and play with the zoom and raster scan functions as a start.
If you want to see the image of our Sun’s corona for comparison, try the images at the following page.
What Is the Sun’s Corona?
You will have to use the techniques outlined to see the images. One thing that you will notice is that the spikes are significantly more dense.
Do let me know if you tried viewing any of the images and what happened.
Getting the orca screen reader working on a raspberry pi 4 with raspbian buster and the mate desktop
I recently got a raspberry pi 4 and wanted to access its gui because I wanted to use the pi like a note taking device. I wanted a spreadsheet, a browser with quick key navigation and a familiar interface. Yes, I could have used emacs with emacspeak which is something I am exploring but I am familiar with the Linux gui and it is an easier interface to use when coming from Microsoft Windows. As of this writing, I have been unable to get the default lxde desktop to work with Orca. I hear “screen reader on” and can indeed access some desktop elements. I suspect that the accessibility infrastructure in the lxde desktop that is bundled with the raspberry pi is incomplete but cannot be sure of this because I have not tried looking at the events that fire when I navigate screen elements.
Things are different when I use the mate desktop. Orca comes up talking and I can easily navigate screen elements.
Here are the steps I took to get orca with the mate desktop working on the raspberry pi 4. . You must have the following prerequisites in place.
- The pi should be connected to the internet. Use a wired connection else you can also use a wireless connection though that will need you to create a text file on the sd card
- A physical keyboard must be connected to the pi. You will need this keyboard to issue commands on the pi.
- An external USB sound card to avoid the crackling with the 3.5mm jack. This is not necessary any more but is good to have.
- A pair of headphones or speakers to hear speech output once you have launched Orca
I started with raspbian lite because I wanted a clean gui system to start with. However, you can as easily start with the full version of raspbian. Once I had flashed it to a sd card, placed a blank file called “ssh” without the quotes in the boot partition to enable the ssh server of the pi upon boot up, and had booted my pi, I was ready to begin the actual work of installation.
The first thing I had to do was to switch to an external sound card. This is because when I tried using the raspberry pi 4’s native 3.5mm jack for sound output, I got too much crackling. The speech was unintelligible. Please note, in the latest version of raspbian, an external soundcard is no longer necessary.
How can I use an external USB sound-card and set it as default?
Once you have implemented the steps in the above post, you are ready to move to installing the mate desktop.
The following post told me how to install the mate desktop. I have however not moved it to an external drive. Everything is on a sd card which seems to work just fine in my limited testing.
Install Mate Desktop on the Raspberry Pi using an External Hard Drive
I am going to paraphrase the above post.
You will need to run the following commands on the pi. Use ssh from your machine to do so.
Update everything
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
Install the mate desktop
Many of the commands have been taken from the below post.
Steps for Configuring Mate Desktop on 4GB Raspberry Pi 4B – (Rev.7)
sudo apt install mate-desktop --no-install-recommends -y
sudo apt install mate-desktop-environment-core -y
sudo apt install mate-themes -y
sudo apt install mate-session-manager -y
sudo apt install xinit -y
sudo apt install mate-terminal -y
sudo apt install mate-applets -y
sudo apt install software-properties-gtk -y
sudo apt install xserver-xorg -y
sudo apt install lightdm -y
sudo apt install xserver-xorg-video-dummy
Setting to boot to mate
Please run the following step to select the mate desktop.
sudo update-alternatives --config x-session-manager
The above command will show you a list of desktops. You will be able to select the mate desktop from the list by using the up and down arrow keys.
Add a text editor
sudo apt install gedit
It is time to install the orca screen reader
The version of orca that comes with the package manager on Raspbian buster is very old. In addition, orca is updated almost every alternate day especially when bugs are found and enhancements are implemented.. Therefore, we will do an installation from source.
Enable any commented out sources
You need to install orca’s dependencies first. However, on my installation of raspbian buster, I had to remove the “#” from a sources line in the following file. This may change from update to update therefore check this before installing dependencies.
/etc/apt/sources.list
Install git
Install the git client by using the following command.
sudo apt-get install git
Install orca build dependencies
sudo apt-get build-dep gnome-orca
Get the orca source code
Ensure you are in your home directory or where ever else you want the source code to be. You do not need to create a separate directory for the source code because the git command will do so.
Run the following command.
git clone https://gitlab.gnome.org/GNOME/orca.git
Build and install orca
Run the below commands. Check the output of each command to ensure that there are no errors.
cd orca
PYTHON=/usr/bin/python3 ./autogen.sh
make
sudo make install
This completes the installation of Orca.
Configuring the dummy display driver
We need to configure mate to run the dummy display driver. If we do not do this, the GUI will exit with an error message stating that no screens were found. A physical display is needed. We use the ddummy display driver to get around this.
You need to edit the following file.
/etc/X11/xorg.conf
If the file is not there, then create a fresh file.
The file must contain the following contents.
Section "Monitor"
Identifier "Monitor0"
HorizSync 28.0-80.0
VertRefresh 48.0-75.0
# https://arachnoid.com/modelines/
# 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz
Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
EndSection
Section "Device"
Identifier "Card0"
Driver "dummy"
VideoRam 256000
EndSection
Section "Screen"
DefaultDepth 24
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Depth 24
Modes "1920x1080_60.00"
EndSubSection
EndSection
Getting orca running
Launch raspi-config and set the pi to login into the text console automatically.
Reboot the pi by using the following command.
sudo reboot
Give a minute to the pi to boot.
At this point, you should be at the shell prompt. type the following to launch the gui.
startx
Wait for about a minute and you will hear “screen reader on”. At this point, you can begin navigating the mate desktop and setting up Orca the way you want too.
If orca does not start, then hit the left windows + alt + s keys. If that still fails, hit alt+f2, type orca and press enter.
Enabling accessibility on chromium
One of the things you would probably like to have on your pi is an accessible web browser. As of this writing, raspbian comes with the chromium web browser. You need to add a flag when launching chromium to enable accessibility. The best way to do this is to add the flag to the chromium shortcut on the pi. Take the following steps to do this.
- Navigate to the following path.
/usr/share/applications
- You will see many files here. Most of them are desktop shortcuts. Edit the following file.
chromium-browser.desktop
- For every line that starts with the word “exec” ensure you add the following flag to the end of that line.
--force-renderer-accessibility
The line should look something like the below line.
Exec=chromium-browser %U --force-renderer-accessibility
- Go through the entire file changing all the lines that start with the word “exec” as I have shown above.
- Save and close the file.
When you launch chromium, you will find that orca is able to read the contents of the page that has been loaded in chromium.
Credits
My thanks to
Vojt?ch šmiro and Sanchit Ghule
Upgrading to android 10 on a Nokia 9 pure view from Android 9
Background
On 26 October 2019, I acquired a Nokia 9 pure view phone model TA1087. This is the model that supports duel SIM cards. It was running Android 9. On about the 15th of November, Nokia released the November security patch which I downloaded and installed. On 05 December 2019, the much anticipated update to Android 10 rolled around. However, when I checked my phone for updates, I was told that I was on the latest version of Android.
I then continued checking for updates until January 2020. No updates were available. I contacted the nokiamobile account on twitter. I was asked to check the Nokia website and to wait. I followed up with them towards the end of December and was asked to take the phone to a Nokia service center. I tried Nokia India chat support who told me that Android 10 had not been released for my phone.
Meanwhile, I was checking the news and Android 10 was out. There were a few reports of late updates but nothing significant.
This is when I got suspicious that there was something seriously wrong. I went on a holiday to Sri Lanka where I tried updating the phone. No go, I “was still running the latest version of Android.”
Towards the solution
I asked on xda-developers without much success.
The solution came in the form of a developer who goes by the name of Hikari Calyx. He has Nokia stock roms on his website. I contacted him over twitter and he was able to tell me which updates to apply.
The first thing to do is to navigate to the following website.
Downloads for : HMD Global Nokia 9 PureView
You then need to download the following files.
Get these zip archives to where you can side load them via the android debug bridge. You will need to side load both zip archives. I will not go into details about installing the android debug bridge also known as adb because it is well documented on the internet. The fun starts once you are ready to flash the files after installing adb. Do ensure that the drivers for the Nokia 9 are installed from its read only drive. This is found on the phone when you access the phone as a cd drive via the “this computer” icon.
- Backup your phone. Be careful about on device contacts. I am not sure if they survive operating system changes. I suspect they do but it is not worth taking chances.
- You need to boot into recovery mode. An easy way to do this is to connect your phone to the pc and use the command
adb reboot recovery
- If you use this approach, you can skip the next steps that give you an alternative way to get into recovery mode. You can resume following the steps from the point where you need to select the option to side load the updates. I have not tested the booting into recovery mode via adb in detail because I learnt about them after publishing this post hence I cannot supply more detail.
- Power off your phone.
- Plug it into a computer so that you can hear notification beeps from the computer. I have a desktop that runs Windows 10
- Hit the power and volume buttons together.
- Release the power button when you feel the phone vibrate.
- Keep holding the volume up key. You will eventually hear a desending tone from your computer after which things will fall silent.
- You will probably be at a screen that says “no command”. If you are a screen reader user, use sighted assistance to determine this.
- Release the volume button and hold down the power button.
- Hit the volume key again and then release it.
- Release the power key.
- You should be in recovery mode. This mode has a number of menu options.
- If you are a screen reader user, you will need sighted assistance here because talkback does not work. However, the option nyou need is called side load via adb or something similar and it is the third option in the menu. Hit the volume down key twice to reach that option. The cursor is at option 1, called “reboot”
- Press the power button to activate the option.
- On your computer, enter the following command.
adb sideload AOP-513C-0-00WW-B01-427G-0-00WW-B01-update.zip
- You will be able to see a read out in percentages. If you are using a screen reader, you may have to use its screen review functions.
- Once the update is completed, reboot the phone by hitting the power button.
- If you had talkback running, it will come up now because this is a regular boot of the phone.
- You need to repeat the above process with the file AOP-513D-0-00WW-B03-513C-0-00WW-B01-update.zip
.
Once you have completed the update process with both files, you are on Android 10 and you should now be able to apply all the over the air (ota) updates without problems.
As of this writing, I do not know why I have had to do this or what Nokia has done to the TA1087 model of the Nokia 9 that it needed this treatment. The phone is Google Play certified. I bought it from amazon but as far as I can determine, the phone is genuine.
Note
- The above steps will work for other Nokia models like the TA1082.
- There is also a telegram channel for these updates. The channel is at the following link. telegram channel for nokia updates
Log dump from my nokia 9 phone after checking for pdates
This is a dump of the log of my nokia 9 phone after checking for updates. I am keeping it here for easy reference.log after hitting check for updates
You do not need to read this log unless you are interested in helping me troubleshoot why my Nokia 9 pure view cannot get system updates.
Sri Lanka 2019
Sacheta and I were in Sri Lanka on vacation. We started with Kandy in the center, went south to Galle and then came to Bentota.
I had the vOICe with me and did not experience any problems in its usage. The sky was clear and I experienced many rich soundscapes. This time, I had a way to label images on the fly. I have recently switch to a Nokia 9 pure view phone and thanks to Rich D of the tasker mailing list, I had a solution where, once a new photo was taken by the camera, I was asked for a file name which I entered. The image was renamed to that name so I had labeled photographs and could record what I saw without resorting to post trip sighted descriptions. The downside to this was that I took fewer photographs because it was taking me time to label them on the fly. To mitigate this, I took some videos and described what I was seeing. If you are using the vOICe, then use the screen and or window sonification feature to view the images in the video. I am still looking for a solution to record the soundscapes from my glasses so that I can bring you what I saw that made me take the video. When I took the videos, I was scanning the scene in front of me and then raising the phone to the right place to capture said scene.
Kandy
Kandy is in the central highlands of Sri Lanka. The breeze was super and our hotel was good both in terms of the views of the hills, the staff as well as the quality of the food. We were unable to visit the temple of the tooth due to it being full of people. It was impossible to get parking space there and. We did however visit another temple from where we had a terrific view of the sunset and a superb experience of the breeze. This was the first location where I took some videos. We were able to climb a tall statue of the Buddha into his neck and look about.
A video from the top of the statue. I had to hold on to the phone or risk it being blown away.
See the sunset from a little lower down.
Finally,, some intriguing decorated trees as we walked down the staircase.
See the below image for the hut that was present in our hotel.
Galle, our tiny paradise
If there is a must see place in Sri Lanka, it is Galle. The food is super, the beaches are clean and our hotel Amari is in a class of its own. Do not go by the star rating. The hotel will can give any 5 star a run for its money.
We visited the Galle fort. It is not much to speak off in terms of height or preserved weapons etc but the breeze is excellent and you get good views of the surrounding city from it. The stairs are not too bad. We did not go to the very top but were high enough to see whatever there was to see.
Another plus point of Social is the staff. They are very helpful. A case in point, we are extremely uncomfortable around dogs and so far, I have not practiced detecting them with the vOICe. The staff ensured we were not bothered.
We also visited the Galle lighthouse. I believe it is no longer operational but it is not possible to go up or touch the lighthouse. The vOICe came to my rescue once more.
Bentota and the Madu river safari
Our last stop was Bentota. The highlight of this stop was the Madu river safari. The Madu river forest is a mangrove forest with a significant degree of bio diversity. We were taken in a fiber glass boat with an outboard engine. I expected to see different types of roots in terms of shapes but after a bit, the entire scenery was more or less similar.
We landed on 2 islands. Cinnamon island is the more interesting of the two due to more nature being preserved. The people on the island demonstrated how a Cinnamon tree is peeled. I tried watching the demonstration but was hard put to follow the scraping movements. The way that the branch is peeled is that it is held vertically and then it is sliced along its middle. The first layer of Cinnamon is then scooped out and then the second layer is cut out. As far as I could tell, a single knife was the only tool being used in the entire process.
I enjoyed the smell too which is what hit me besides the vegetation as soon as we landed on the island.
The next island was the one that had the Buddha temple on it. See the Bodhi tree. It was crowded and I did not take too many pictures. The vOICe however kept running so I was able to see the statue of the Buddha, the temple and the rest of the island. I expected the monks to object to the hardware but they did not.
We did pass another island with a temple on it. The most fascinating part was how much of the structure I could see from the boat and how clear it was.
In addition, I got permission to sail the boat. The controls were simple namely a tiller equipped with a hand throttle like that on a motorbike. The problem was that the boat was controlled from the stern so it was difficult to gauge how far things were from it. Moreover, I sailed in open water therefore there were no obstructions which I could use as any kind of reference. I saw through the glasses a lot of open water and sky. I had the vOICe at double speed so that I could keep up with changes in the scenery as the boat moved forward. It will take a significant amount of practice though to navigate and I would like to start with a boat where I am at the bow or at least mount the camera at the bow.
Other notes
- Wearing video glasses does not attract undue attention. Sacheta tells me we did have many people staring at us but that could also be the novelty of blind tourists on the streets.
- Be careful when you are getting rooms allocated in hotels. Hotel staff tend to equate blindness with wheelchair access and assign rooms accordingly. Do not surrender to their assumptions. Stay alert and ask for what you want.
- Hats with large brims really help because they keep the glasses cool. Do adjust the brim if you see a curved object at a height.
- If on a beech, remember that the waves can be quite strong so keep a firm grip on your technology and mount it as high up on your body as you can.
- In addition, remember, you are in a coastal country in the tropics so it can rain any time so carry rain gear with you..
- Elevators do not talk at least where we went and in hotels specially in Kandy, watch out for steps. Remember, you are among the hills.
Initial setup of the Nokia 9 pureview
Introduction
I have switched to a phone running Android from my trusty iPhone SE. The iPhone SE was getting long in the tooth, specifically, the performance of the battery had significantly degraded. An after market battery was certainly an option but I was relucktant to try one because I was unable to find a suitable business who would change the battery for me.
The first thing I had to deal with was choosing the phone. In Apple land, you have a set of narrow options. I would go for the iPhone 11. I believe in buying the latest whenever I posibally can. The iPhone 11 was the only phone that fit my budget. In Android land, I was jolted awake by the sheer number of hardware configurations. None of them were just right and before you ask, it is not easy to assemble your own phone. The Google pixel was the obvious choice but the Google pixel 4 is not coming to India. I did think about the Google pixel 3a and this was my first choice. However, I was advised to wait since at that time, the Google pixel 4 was about to be released in a month. I wanted the following from a phone.
- Stock Android so that I could get a bloat free experience and get updates rapidly.
- A finger print sensor.
- The ability to handle 2 physical SIM cards because in India, e-sims are not well supported.
- Fast charging.
- A good radio and clear call quality.
- A form factor which was like the iPhone SE
- A camera that could handle low light conditions. This may yield better object recognition and OCR results in places like restaurants
- A good GPS receiver
- A good battery.
I went all over the place. I wanted a powerful processor and a large amount of ram. I finally settled on the Nokia 9 pureview.The GPS chip in this phone is good and it can handle 2 physical sim cards without compromising on its internal storage.
For the gps, see the below link.
Does nokia 9 have a super accurate gps chip … | Nokia 9 PureView …
I read many reviews. One of the better sites for reviews is notebookcheck
The nokia 9 pureviewreview was favorable.
I say better they also discuss the call quality.
The setup experience
I was somewhat familiar with Android because I was using it on my Moto g-4play phone as well as on my vision 800 glasses. However, these devices ran old versions of Android. I read and asked as many questions as I could and took the plunge.
I was under the impression that inserting the sim cards before first boot was a good idea so that the phone could activate fully. My wife helped me find the sim injector tool and I then pushed it into the hole at the top. I knew that the hole was at the top by reading about the Nokia 9 pureview. The problem was that nothing happened. I read once more and people made references to a sliding sim tray. I then tried pushing harder and out popped the tray. This is where my more dexterous wife came in. She lined up the sim cards and inserted the tray.
I had already charged the phone. I gave it 2 hours to charge fully. When I plugged it in, there was no indication that the phone was charging. I felt the power brick go warm so I knew something was happening.
The phone has a volume button on its right side, a power button below the volume button, a USB type c slot at the back and a speaker slot on the right of the USB C slot. I felt the small vibration as the phone started. I waited for a minute I think or may be less and placed 2 fingers on the screen to start talkback. No speech. I gave the phone a good 3 minutes. I then powered off the phone and this time, pressed down the up and down volume keys. In about a minute and a half, I felt vibrations on the phone. I then released the volume keys and increased the volume. Talkback was on.
I then had to follow the prompts. I thought I would have trouble with entering my wireless key because it has a few special characters but the experience was quite smooth. The phone downloaded a number of updates. One of them was about 1GB. I had difficulty in tracking the progress of updates because the screen would lock and I had no way of instructing talkback to report progress at a given interval.
Text messages from my phone providers also came in leading to additional chatter. I provisioned the settings from both providers without any trouble.
The rest of the process was quite easy except for the language selection when I landed up on a strange screen with only numbers and one button on it. I hit the back button and was back.
The finger print sensor
I continue having difficulties with this sensor. The main problem is finding the sensor. Talkback does not speak the prompts automatically so I had to swipe to find out what to do. i managed to find the sensor due to the additional vibration that the phone makes when the sensor is triggered. I still needed sighted assistance to confirm the sensor’s location. One way I have found to locate the sensor with reasonable approximation is to orient yourself with the power button. The sensor is about one finger width or about an inch below the power button. It is approximately in line with the USB C port.
The face id
The face id was easier to train as compared to the finger print sensor. However, it did not work in situations where there was bright light like sunlight.
A word about applications
I have found equivalents to most of the apps on my iPhone. Moreover, the vOICe which is my primary app for seeing the world around me, works flawlessly.
Conclusion
I continue customizing my phone and becoming familiar with applications. I am better at using the finger print sensor too. Android is looking very promising.
Acknowledgements
This post would have not been possible without the members of the antad and eyes-free lists hosted on google. See the below thread for more information and how to join.
New android user