AlaskaLinuxUser's Scratchpad
29 subscribers
99 photos
117 links
Get notifications from AlaskaLinuxUser's Blog.
Download Telegram
AlaskaLinuxUser's Scratchpad
Photo
AlaskaLinuxUser's Scratchpad
Can you still register a 4th generation Kindle (D01200) on Amazon?

https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/03/kindled01200_4thgen.jpg While I do have a love/hate relationship with Amazon, the ability to purchase kindle books and read them is very handy. I have several older 4th generation Kindles, D01200 models, that I recently had to switch to a new Amazon account. Unfortunately, registering them was painful.

TL;DR – Yes, you CAN still register them to an Amazon account in 2024.

There was a lot of information that could be found when looking online. A lot of it was misinformation, so I wanted to state that it could really be done still, as many sites are quoting Amazon representatives saying you cannot register them anymore.

There are also a ton of sites saying use a OTP, one time password, or to turn off two factor authentication, or to do a myriad of other things that I tried, none of which worked. So I am writing this post to say what did work for me.

1. Set up a 2FA app for your Amazon account. I use and recommend Aegis.
2. With your new 2FA set up, log into Amazon once in your browser to make sure it is all working properly.
3. On your Kindle, go to Settings -> Registration and choose that you already have an account.
4. In the prompt, put your email address you use for the account.
5. In the password block, type your password with the 2FA code as one word, like this: yourpassword2FAcode
6. Click register and enjoy!

I hope to save the next poor soul from having to try 20 different methods for the next 2 hours by just telling them what worked for me.

Linux – keep it simple.
AlaskaLinuxUser's Scratchpad
Photo
AlaskaLinuxUser's Scratchpad
US Chess Federation Tournament Software for Linux?

https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/03/vegachess-1024x728.png If you’ve followed my blog for any length of time, you will know that I personally use Linux – exclusively. That said, I recently became a certified club level Tournament Director (TD) for the US Chess Federation. One problem that I noticed was that all the software for running tournaments fell into two categories: Online and Windows.

Of course, I didn’t want to use Windows. Not just because it is so terrible, but then I would need another computer just for the purpose of being a TD. That means extra funds for another laptop, or limiting one laptop just for the purpose of being a TD. It also means extra headaches to keep that laptop up to date for hardware and software. Further, none of the Windows software for being a Tournament Director are free, and every time they update their version of the software, you have to shell out more money for the latest version, or pay licensing fees. All of them are really expensive! Being a chess TD is a side hobby, and I’d like to keep the costs down.

Typical Windows TD software would include WinTD and SwissSys. Both of them (at the time of this post) cost about $100 for the latest version with a $40+ upgrade option if you had a previous version.

Online options seem to have some merit. For one, you don’t have to keep any software or hardware up to date. They take care of that, and you just have to log in. Some of them also have really neat features, like the ability to directly pull player information, and the ability to submit your results for you. One major problem in Alaska, though, is internet connectivity. Often in Alaska, you can end up places where there is no viable internet, or it is inconvenient at best. Not every venue offers free WiFi, and sometimes cell phones just don’t work.

Another problem with online software are the subscription fees. Some notable examples are Chessmanager and Caissa. Unfortunately, both of these have a yearly subscription cost ranging from $60 to $90 per year. I can understand that, because they need to make money to continue funding their employees and website. However, this becomes a rather expensive tool when you are running tournaments for free.

Perhaps these expenses are justifiable if you are a TD who makes money being a TD. There are some directors who do this full time. For every event they take a cut of the entry fee, and this pays for their time and toys. It is possible that I could do something like that someday, but at the moment, being a TD is a hobby, and I don’t charge money to host events. Even if I did charge money for my services, it would take a while to build up enough events and players to cover the costs.

So, I needed a cheaper solution, and I really was hoping for a Linux solution.

Thus entered Vega chess! Vega chess (https://www.vegachess.com) is the only TD software that I found which was cross platform and works natively on Linux. I had several questions about using the software, since I wanted to make sure that it worked properly in regards to the results files that are generated, but I am happy to report that I was able to use Vega version 10.0 and submit my rated reports from the program to the USCF!

I would like to note, that the WIndows and Mac version of Vega chess are only free for limited use, and you need to pay the registration fee for full access (even then, their prices are much cheaper than WinTD and SwissSys). However, the Linux version is completely free, with unlimited access, which is really great! It has the option to create tournaments using the USCF Swiss rules, and it can generate multi-section USCF rating reports! At this time, the rating reports are the version 1 rating reports, which are still acceptable for turn in to the USCF, which takes version 1[...]
AlaskaLinuxUser's Scratchpad
Photo
AlaskaLinuxUser's Scratchpad
Use rsync to backup a Nextcloud server?

https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/03/nc.png I don’t wear a tinfoil hat. But I also don’t trust Google. Or any big tech, to be honest. There are a lot of advantages to using something like Google to sync your pictures, your documents, your life. There is also the disadvantage that potentially any Google employee, or some other third party with access, is getting your data (digital life) for their own purposes.

Some people don’t believe that. I used to be one of those people. Then I started working on custom ROMs for cell phones, and started realizing just how much unparalleled access you freely grant by using services from your carrier, phone manufacturer, and big tech companies like Google. I’m not a criminal, I’m not a psycho, I’m just a regular guy, but I’d like to keep my life to myself, and only share it with people I specifically choose to share it with.

Some people also believe like me, and yet they say, “What can I do?” and drive on with life. I get that, it is tough to break the digital chains that are so thoroughly part of our culture. Some take small steps, like using apps off of F-Droid, or drop certain, if not all, social media. Some take it farther, and install or even build their own custom ROMs for their cell phone, or buy de-Googled products. And then, some believe it so much that they host their own Nextcloud server in their laundry room.

At least, mine is in the laundry room. Almost my entire digital life is in my laundry room, where my own de-Googled phones connect to my own self hosted Nextcloud server to sync and back up all of my pictures, my documents, my music, my movies (through Jellyfin), and my notes, passwords, etc. I felt very good about this. I felt my data was more private, and it is.

Then one day, the upstairs bathtub sprang a leak and poured water all over my server.

My digital life barely survived. I made backups, of course, but only every 3 months. My standard backup method was an external hard drive, to which I copied a Clonezilla image of my server. This worked great, as far as a backup goes, but as my picture collection, and movie collection, and music collection, and family grew, so did the time it takes to do backup. Not to mention I had to buy even bigger external hard drives, since I had multiple Terabyte sized drive raid arrays. It often took over 6 hours just to make the backup, not to mention any maintenance to the machines.

This excess time also slowed down upgrades, because I would wait to do upgrades until I had performed a backup. Hey, it works now, let’s back it up before we perform an upgrade that hopefully doesn’t screw up any configurations and cause my server to not serve me….

I needed a better option. And, I think I found it in rsync. Rsync is, of course, an old tool that has been around for quite a while, but there were some hurdles that I had to overcome to use it. For instance, you can’t use rsync to sync some other user’s stuff, unless you are root. Further, you can’t rsync something like your www-data user’s stuff because the www-data user doesn’t have a login, unless you are root. Yet, you can’t rsync or ssh as root to another machine, or at least, you can’t by default.

In my case, I have server A (for active) and server B (for backup). Server A and B do not have the same hardware, but do have the same partitions on their drives and are the same architecture. In the past, I literally used Clonezilla on server A, and restored that image onto server B to have a ready backup, and then kept the Clonezilla image hard drive off site. This gave me a mirrored server, that if server A ever had a hardware failure, I could plug the network cable into server B and only lose the data between then and the last backup, presumably less than 3 months ago.

In my case, server A and server B are on the sam[...]
AlaskaLinuxUser's Scratchpad
AlaskaLinuxUser's Scratchpad Use rsync to backup a Nextcloud server? https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/03/nc.png I don’t wear a tinfoil hat. But I also don’t trust Google. Or any big tech, to be honest. There are a lot of advantages…
e network, they are mirrors of each other (at the time of backup), and they both have two NICs, one configured as the server IP address, the other as the backup IP address, so I can just plug them in to whichever of the two NICs and use them as whatever I plugged them in as. Some details will remain ambiguous here, and for this discussion, we will use the IP addresses of 192.168.50.51 for server A, and 192.168.50.28 for server B.

It is generally a bad idea to permit root login over SSH. to mitigate that, I only allow the root login over SSH to come from one allowed IP address, that of server A to server B. Thus, no outside entity can log in as root over SSH, and no inside entity can log in as root over SSH unless they happen to be the exactly correct IP address. Granted, if someone is in your network, you have some big issues already, but I try to be as secure as possible, within reason.

I configured both server A’s and B’s /etc/ssh/sshd_config file by adding these two lines at the end of the file: "PermitRootLogin yes
DenyUsers root@"!192.168.50.51,*""
This allows root to login, and denies all attempts to log in as root unless it comes from 192.168.50.51, or server A. You only need to do this on server B, but in my use case, I can technically swap server A and B by simply moving their network cable to the other NIC, so I did this on both. Make sure you restart the service after doing this…. "$ sudo systemctl restart ssh"
If this is the first time you’ve ever done this, and you are using a server running Ubuntu, you never have had a root password before, so you need to set one now: "$ sudo passwd"
It will prompt you for the sudo user password, then the new root password, twice, to verify it.

Then you can simply run rsync from server A to put the data on server B. In my use case, I am syncing Jellyfin and Nextcloud. I always start with a “dry run” to make sure it is going to do what I want before I do it for real: "$ sudo rsync -av --dry-run --progress --delete /var/jellyfin/ root@192.168.50.28:/var/jellyfin/
$ sudo rsync -av --dry-run --progress --delete /var/www/ root@192.168.50.28:/var/www/"
It will ask for your sudo password, then the root password of server B. If that looks like it is going to work, then I actually run the rsync. "$ sudo rsync -av --progress --delete /var/jellyfin/ root@192.168.50.28:/var/jellyfin/
$ sudo rsync -av --progress --delete /var/www/ root@192.168.50.28:/var/www/"
And then I thought I was all done. But I was wrong. You see, I synced all the data, but these programs use an SQL database that is not stored in these folders. In my case it is mariaDB, which stores it’s database in the /var/lib/mysql/ folder, so you will need to sync that as well. "$ sudo rsync -av --progress --delete /var/lib/mysql/ root@192.168.50.28:/var/lib/mysql/"
Technically, you could also use the mysql syntax and program to export your database from server A and then import it on server B, but I found that took a lot more time, typing, and interaction on my part. Of course you could script it, but since both machines (in my case) are mirrors of each other, the only database on there is the same database, and I just copy the whole database from machine to machine with this one command.

And for Jellyfin, you also need the lib/jellyfin folder: "$ sudo rsync -av --progress --delete /var/lib/jellyfin/ root@192.168.50.28:/var/lib/jellyfin/"
As a side note, if the two machines are mirrors of each other, you could simply copy all of the /var folder, like so: "$ sudo rsync -av --progress --delete /var/ root@192.168.50.28:/var/"
This makes a nice one liner, but it does copy a bit more “extra” stuff, much of it not being related to the subject in question. But I did try this, and aside from taking longer and more network traffic, it worked rather well.

In any event, after having run rsync, moving both the data and the SQL database, you now need to restart several services on server B. The SQL service, jellyfin, the web service, etc., but I found it much eas[...]
AlaskaLinuxUser's Scratchpad
e network, they are mirrors of each other (at the time of backup), and they both have two NICs, one configured as the server IP address, the other as the backup IP address, so I can just plug them in to whichever of the two NICs and use them as whatever I…
ier to simply reboot server B. Then you can’t forget any particular service, and you know all of them were restarted. If you don’t do this, as I have proved on occasion, then when you go to your Nextcloud instance, it will give you a popup about maintenance mode and updating.

Now I can put this into a cron job if I like, or run on a whim if I so choose, such as when I add new shows or movies to my Jellyfin server, or daily for my Nextcloud instance. I can also perform this rsync, then run an upgrade anytime I want, check it out on server A, and if it doesn’t work, fallback to server B while I figure it out. Another great thing about this is I can still do a full Clonezilla backup, but of the offline server, such as server B. This allows me to still have an offsite backup option, while having an up to date onsite backup option.

In theory, you could also use a VPN and do this rsync abroad. Unfortunately for me, my internet is limited and slow, so this is not a great option for me. There are also some inherent security risks you take as you open yourself up further to the internet at large, but probably not more than you already face by having your own internet facing Nextcloud instance.

You can also use SSH keys as well, and set SSH to only allow root login with keys, and even with keys that are keyed to a specific IP address, too. What I don’t like about SSH keys is that if someone gets into your computer, and you have SSH keys allowing you to go to another computer, you don’t need a password. But, then again, if someone is already into your first computer, then they probably have access to everything anyway, but I still like to be careful. In this case they would already have access to your server with all of your data anyhow.

Nothing profound here, but I hope it is helpful to others who want to run their own Nextcloud instance and have a mirrored backup. This works for me, but may not be for everyone due to the root/ssh issue regarding security.

Linux – keep it simple.
AlaskaLinuxUser's Scratchpad
Photo
AlaskaLinuxUser's Scratchpad
Work around for SubViewport issue on Godot 4.2 in compatibility mode

https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/Working_transparentBG-1024x601.png If you can see the above image, you will note that the subviewport is accurately displaying the revolver AND the 3D world is still visible. If you are trying to use a subviewport to prevent weapon clipping in Godot 4.x, and you see the below image (or similar to it), then you have run into the subviewport issue I am referring to.
https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/NotWorking_transparentBG-1024x601.png
If all you see is your weapon, in this case my home made revolver, and the environment background, but no 3D world, you may have forgotten to turn on “transparent BG”, but if you have and you still see this, you probably have the same issue I did. Fortunately, there is a work around.

While following a Udemy course on building 3D games with Godot, the instructor had us create a subviewport and use a camera in that subview to look at the weapon, and keep the player camera from seeing the weapon. On his screen, it worked like a charm. In the tutorial video, it worked like a charm, but in my Godot world, it was not working at all.

I rewatched the lessons and made sure to check “transparent BG” for transparent backgrounds. I searched the web and found people saying you need to turn off SSR in your environment variables. But it was already off. I found other people saying that it is an issue in compatibility mode, and that there was not a good work around. Other people were using the alpha scale to “cheat” and show a weapon that was partly transparent just so you could see everything.

Fortunately, after playing around for an hour, I figured out a much easier work around.

You probably have a setup like mine: SubViewport Container –> SubViewport –> Camera3D (we will call it weaponCamera for this article). In which the SubViewport has “transparent BG” selected. But when your player is instantiated in your level/world, the environment and the weapon is all you see in your SubViewport view of the world. If that sounds like you, then here is what you need to do:

Go to your weaponCamera (the one in the SubViewport) and give it an new environment. I tried copying the level environment, but that didn’t work. I also saved the level environment and tried to load that and it didn’t work. I just made a new environment, NOT choosing sky, set the color to match, and that worked great. However, there is a catch…..

If you do this, your gun/weapon doesn’t always get lighter or darker when you walk under items or out into a bright light. So this is only a half way fix for the battle. But this does work well enough to do the job.

The actual problem is with your World Environment. If your world environment uses “sky” then that causes all the issues. So, if you don’t want to do the work around I mentioned above, a different workaround is to set a different option for your world environment that doesn’t use “sky”, like canvas or custom color, etc. Choosing any of these options and you will not need a custom world environment for your weaponCamera. This keeps everything “together” better, but you lose what I consider to be one of the best environment options, which are the sky settings.

Anyhow, I hope that is helpful for the next person trying to web search an answer to this problem!

Linux – keep it simple.
AlaskaLinuxUser's Scratchpad
Photo
AlaskaLinuxUser's Scratchpad
Robot Rampage! Another video game completed while learning Godot!

https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/robotrampage2-1024x626.png https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/robotrampage3-1024x626.png https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/robotrampage1-1024x626.png As I’ve mentioned before, I am trying to learn about 3D game development by completing Udemy.com courses to learn how to use Godot. Today I finished another course about 3D game making and built this science fiction first person shooter.

While the course did come with artwork and models, I decided to make my own to fully understand the process. Everything in this game, for better or worse, is my handiwork, from the lights to the crates to the guns and computer consoles, etc. So, if it looks a little less than stellar, that’s because it was a home brewed attempt at modeling.

To build all the models I used Wings3D, with the exception of the player model, which I made in Blender and rigged with a skeleton, so he can “move”. I didn’t end up making him move, since you can’t “see” him during the game. However, his shadow is visible when light casts on it.

All of the sound files were taken from freesound.org and I left the names of the sounds as they were, with artists names in the filename.

This particular course stopped after the basic mechanics were built, but I kept working on it to flesh out the game a little bit. Granted, at this time, it only has one level, but now that level has a purpose: you have to get from the entrance elevator to the exit door. Of course, the door is locked, so you have to operate a computer console to unlock the exit door. All while being chased by and confronting these mechanical menaces.

If you want to check out the source code, take a look here: https://gitlab.com/alaskalinuxuser/godot_robot_rampage

Or if you want to download the game (Windows/Linux/HTML) or watch the video I made while playing it, head over here: https://alaskalinuxuser.ddns.net/index.php/s/aXZ6AgfPCz7fXyi

Either way, it was a great learning experience, and a really fun adventure into the land of 3D game development!

Linux – keep it simple.
AlaskaLinuxUser's Scratchpad
Photo
AlaskaLinuxUser's Scratchpad
A quest to find the best OCR to convert handwritten score sheets to digital pgn files

I’ve been on a chess tech quest.

After every chess tournament or quad that I play in or run, there are handwritten scoresheets. Each of these scoresheets are like a diary of the game, they contain all the moves that were played, who played, when, where, what board, and the results of that game. For some players, it was a requirement that the scoresheet be kept during the game, and then it is discarded, no longer serving a purpose for them. For many players, like myself, it is necessary to study these games to see how we can improve. It is also a great way to preserve the memory of that game. Perhaps, in some cases, even a historical record of the event, perhaps for a championship, or a reference during an appeal. They have to be entered into a computer to be sharable in our digital world, and to be analyzed by chess engines.

But collecting all of these game score sheets and typing them by hand into a computer is tedious. They have to be entered into a computer to be sharable in our digital world, and to be analyzed by chess engines. But modern computers and AI are able to read hand written notes, right? Thus began my quest. As with any quest, there were ups and downs, high ways and by ways, and lots of wasted, and some well used, time.

I’m not much of an app reviewer kind of blogger, but I wanted to help others save some time and find apps that work. First up is a list of apps and projects that didn’t help me at all. Then I will talk about three programs that did actually convert my hand written scoresheets into chess pgn files, and some of the tests I ran on them.

There were many first steps that ended in complete and utter failure, and here is a list of links and apps that just didn’t work out:
Chess Scan: https://play.google.com/store/apps/details?id=com.nagdev.alok.chesscan

PGN Reader: https://medium.com/@mareksmigielski/from-chess-score-sheet-to-icr-with-opencv-and-image-recognition-f7bed2cc3de4

Reine Chess: https://github.com/Messier-16/Reine-Chess-Scoresheet-Scanner
*Requires special scoresheet.

Digitization of Handwritten Chess Scoresheets with a BiLSTM Network: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8879196/
*Again, requires special scoresheet. https://cdn1.sportngin.com/attachments/document/895f-1620793/Scanningscoresheet.pdf

Using OpenCV: https://medium.com/cometheartbeat/scannable-chess-scoresheets-with-a-convolutional-neural-network-and-opencv-3e10dc1c91ba
But, don’t be dismayed, because I did find three apps that actually work. These are not listed in order of importance or function, but rather in the order I tried using them. For all three apps, I decided to test them objectively and subjectively. The subjective test is just my thoughts with using them. The objective test is what happened when I ran the same three game score sheets through them. The first score sheet was medium quality of handwriting, 69 half moves with 6 noted player errors. The second sheet was a half sized score sheet with no player errors and really good hand writing, half moves. The third sheet was with moderately bad handwriting – but still legible, and 6 noted errors written by the player, it had 103 half moves.

A. Chess Digitizer https://chessdigitizer.com

A handy mobile application that you can download to your Android phone. It’s graphical user interface (GUI) was well designed and thought out, and overall was pretty useful. However, it had some major shortcomings, like not being able to share or export the finished product. You could simply look at your game in the app and analyze it there. It was very difficult to line up the page when taking the photo, which meant you had to retry taking the photo of the game many times before getting it correct.
https://alaskalinuxuser3.ddn[...]
AlaskaLinuxUser's Scratchpad
AlaskaLinuxUser's Scratchpad A quest to find the best OCR to convert handwritten score sheets to digital pgn files I’ve been on a chess tech quest. After every chess tournament or quad that I play in or run, there are handwritten scoresheets. Each of these…
s.net/wp-content/uploads/2024/07/chess_scanner1-768x1024.jpg
It will show you the entire scoresheet as you edit, making it easy to see where you are in the game. Simple taps with your fingers allowed you to change moves easily.

Pros:

* You can manually correct moves.
* Mobile application means you could use it between rounds at a tournament.
* The GUI was polished and seemed intuitive.

Cons:

* It feels like rocket science to line up the page perfectly in the photo.
* It struggles with bad handwriting.
* It had a share button, but it crashed every time I tried to push it.

I tried to test it with several test sheets. With my first test entry of 69 half moves, 6 being player error (incorrectly written), there were 22 instances of character recognition failure. The second sheet wouldn’t scan no matter how many times I tried, because the blocks would not line up, they were too small. The third sheet was so riddled with errors, I think I should have hand typed it. I am not sure it got any of the moves right.

B. PawnParse https://www.pawnparse.com

An online application that is still in beta testing, but was very promising when I used it. The GUI is currently only available in German (Deutsch) but is being translated to English, and hopefully that will be available soon. With only one semester of high school German, the program was intuitive enough that I could still use it. The AI was much better at character recognition than any of the other programs on this list, letter for letter. You could use crinkled up score sheets, and you didn’t have to line them up perfectly to take the photo, though the more square the paper, the better it worked. It also did allow for half page smaller score sheets, though it did have a little trouble lining up the boxes, but you can manually line them up if needed.
https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/07/pawnparse2-1024x730.png
It allows you to see the entire score sheet while you work, but also gives you a zoomed in shot of the move in question, while also showing you the board on the screen as you edit. This was pretty handy as a move that was written incorrectly by the player might be easy to fix seeing the remaining moves and the board. It also will list all the possible moves from that position, which was really helpful.

Pros:

* I had no issues lining up the paper in the photo.
* Being able to see the sheet, board, and move made editing very easy.
* Recognizes really, really bad hand writing. It was better than me in some cases.

Cons:

* To correct a move, you couldn’t drag a piece on the visible board.
* Currently not in English (but coming soon).
* If the game is incorrect (illegal moves), it will still output a pgn with the illegal moves, if you choose to accept it.

Overall the hand writing determination was the best of any app I tried. Correcting an early move would recalculate if the following moves are valid, making the process pretty fast and easy to use. I was talking with the developer about forcing legal moves for limiting the computer decision, and that is something he is working on, but prefers to have a higher character recognition factor rather than forced legal moves. With my first entry of 69 half moves, 6 being player error (incorrectly written), there were 9 instances of character recognition failure. The second sheet of 52 half moves, no noted player errors, and had 13 instances of character recognition failure. The third sheet was 103 half moves, 6 noted player errors, and had 33 instances of character recognition failure.

C. pgnApp https://pgn-app.com

This app was actually brought up during my discussion with PawnParse, so I gave it a try as well for comparison. This application is also online, and it is translated to English as well as Deutsch/German. The GUI was a bit more polished and overall it worked pretty well. It did have a few issues with score sheets that were not a standard size, refusing to proceed with scanning the document at all. The AI wa[...]
AlaskaLinuxUser's Scratchpad
s.net/wp-content/uploads/2024/07/chess_scanner1-768x1024.jpg It will show you the entire scoresheet as you edit, making it easy to see where you are in the game. Simple taps with your fingers allowed you to change moves easily. Pros: * You can manually…
s pretty good at character recognition, but I think a big help in this regard was that it seemed to force legal moves. In several cases it took a “guess” at the legal move meant, if it couldn’t understand the score sheet, or if the player wrote the wrong move. Sometimes these “guess” moves were correct, other times not. This could lead to a game being incorrectly transcribed, as happened with one of the three test games that I uploaded.
https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/07/pgnApp2-1024x673.png
While you are editing, you can see the board, and a zoomed in image of the move from the score sheet. It did not allow you to see the entire score sheet while editing, which made it difficult when a line was skipped (or duplicated) by the computer recognition software. However, on the plus side, you could actually move the pieces on the board to correct the scoresheet, which was really handy. It also only showed you the “dubious” or questionable moves. This can be a little misleading, because it did not show me that move 1. e4 was recognized as 1.c4, because it did not think that was “dubious” and so I had no idea there was a problem until the game didn’t “line up” after the opening. However, you can choose to see “all moves” instead of just the “dubious” ones, which I highly recommend if you use this tool.

Pros:

* Being able to move the pieces on the board to correct the scoresheet was really fast and intuitive.
* Seems to force legal moves to help with recognition of characters. (But see cons).
* If you export a pgn that has illegal moves, it will only export the part that is legal, stopping at the illegal move, so your pgn doesn’t crash when you load it, though then half the game may be lost. (So maybe a con?)

Cons:

* Half page score sheets or non standard sizes would not scan. *
* Forced legal moves or guessing system made a few incorrect decisions, making a seemingly complete game that was incorrect.
* Can sometimes be misleading about which moves are dubious or not.

*When I tried it, your mileage may vary. I attempted this with several of our club’s half sized score sheets.

Overall the hand writing determination was pretty good. With my test entry of 69 half moves, 6 being player error (incorrectly written), there were 8 instances of character recognition failure. The second sheet refused to scan. The third sheet was 103 half moves, 6 noted player errors, and had 36 instances of character recognition failure.

Which one should you use?

It is really hard to say at this point. With any written argument, there is a subjective side, and an objective side.

Objectively, PawnParse won with the least amount of total instances of character recognition, and also was the only software that could scan the half sized score sheets (though it did require some manual intervention to line up/resize the boxes).

Subjectively, while pgnApp had the most polished feel, and (perhaps because it is written in my native language – English) was the most intuitive to use, especially with the ability to move pieces on the board to correct the score sheet, it occasionally left me wondering if it had transcribed the moves correctly, or just thought it did, making me double check the “good moves” as well as going through the “dubious” ones. I enjoyed using both PawnParse and pgnApp, and I would use either, but I liked the more straight forward approach of PawnParse better. I didn’t like using Chess Digitizer very much, because lining up the score sheet for the photo seemed like an impossible task.

Linux – keep it simple.
AlaskaLinuxUser's Scratchpad
Photo
AlaskaLinuxUser's Scratchpad
Re-review of Chess Digitizer, now called Chess Scanner

https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/07/ChessScanner.png A few days ago, I reviewed several Chess related OCR scanners that convert hand written chess score sheets used in chess tournaments into pgn files that can be used by chess programs and engines for review. Here was the last article, if you missed it: https://alaskalinuxuser3.ddns.net/2024/07/12/a-quest-to-find-the-best-ocr-to-convert-handwritten-score-sheets-to-digital-pgn-files/

One of the apps I reviewed was “Chess Digitizer”. It is a mobile app which was pretty handy when you consider that with your cell phone, you could review your games between rounds at a tournament, or do the uploads “on the go”. I am not really in the app review business, but as the developer reached out to me after my last review, I felt it was fair and appropriate to review it again with the latest revision. The developer read my review and pointed out that the version of the app I was using was several months old, and some of my critique’s have been resolved. He asked me to consider trying his new app and giving another honest review. I will note that the app is subscription based, with some parts of the app being available for free, and some being available to the pro users who have a subscription. I decided to test it both ways and see how well it worked. Full disclosure, the developer gave me access to the pro/subscription version for free to test the app. The app is now called Chess Scanner.

In any review, there is a subjective part, based on how we feel, and an objective part, based on facts. I plan to use both of these here, allowing the reader to draw the best conclusion. However, for the objective test, I am not sure how fair it is to use the same score sheets again, as in “would my using and fixing them last time alter the algorithm specific to these samples?” That I don’t know. To be safe, I did re-run two of the old score sheets, and added two newer sheets.

Subjective review:

Just as I mentioned in the last post, the GUI for this app is fairly good and intuitive. I will note that the color scheme for the latest release got even better, and it looks like a slick product. I like that it shows you the scoresheet while you are working through the moves, I also really like how easy it is to tap and change the moves. The layout is good and easy to use while holding your phone in your hand.

There are very few things about the app that I am not thrilled about. But as it is a review, I’ll list them here. First, there is a huge gap in usefulness between the free and pro versions. Essentially the free version is a trial version to see if you like the app and if it will work with your hand writing. While both will read your hand writing and make a digital pgn, you can only download that pgn, or send it to Lichess, Chess.com, etc., with the pro version. If you have the free version, you can “share” the game by sending someone a link to the Chess Scan servers, where they can view the game, but still don’t have access to the pgn. I completely understand, they need a way to financially support the hardware and software development, but you will have to pay for the services if you want a tangible pgn that you can copy/paste into any engine.

I do want to clarify here, all of these applications that I have tried cost some sort of fee to use, which is appropriate, since they do need to cover the cost of running their application in the cloud or on their servers. I am not sure what is the best method for charging the customer, though. Chess Scanner works on a subscription, once subscribed, it appears you can upload as many sheets as you want. Other applications, such as pgnApp are based on purchasing a number of games to upload. For me as a player, I only play in one to four tournaments a year, so I am not [...]
AlaskaLinuxUser's Scratchpad
AlaskaLinuxUser's Scratchpad Re-review of Chess Digitizer, now called Chess Scanner https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/07/ChessScanner.png A few days ago, I reviewed several Chess related OCR scanners that convert hand written chess…
sure a subscription would work well for me. However, as a tournament director, I have access to 90+ score sheets from a single tournament. So that would be the better deal. Just depends on your needs.

Secondly, I got rather used to seeing the board when editing the score sheets in pgnApp and PawnParse. The screen being smaller on a tablet or phone, I completely understand their design choice to show you the score sheet and the editing tools, rather than the board. But sometimes, when a score sheet is not clear, it helps a simpleton like myself to be able to see the board at this point in the game, so I can determine if Re7 was Ree7 or Rfe7. Often by looking at the board and the subsequent moves, it becomes readily clear. Without the board, I have had to guess a few times and then go back to change my guess, since that was not the correct guess. I would recommend that the developer consider having a toggle switch or button so you can somehow view the board in it’s current position, this would really help with clarity. This is principally a problem when the score sheet is incorrect, which seems to be 75% of the time when I upload other people’s scoresheets. (I’m not perfect, but for some reason I can legibly write the correct moves of the games I have played.)

While great strides have been made in the score sheet alignment department, I still had one of the four score sheets I tested with that did not line up well and required several pictures until it got it right. As I will discuss below in the objective review, I had more trouble with the tablet taking the picture than with the phone.

And finally, for my regular readers, who typically do not use Google services, you do have to have Google play services on your phone/tablet to use the pro version. Seems odd, but that is something I tend to avoid, so to use the pro version I had to borrow a tablet from my wife to test it. However, that is only a problem for a niche group of people.

Objective review:

For the objective portion of the review, I fed it several game sheets and just wrote down the number of half moves and the number of moves it guessed incorrectly. In my testing, I found no major difference (actually, no difference noted at all) between the basic (free) and pro (subscription) version of “Game Generation”, where you choose how you want it to recognize the hand writing if using a legible score sheet written by someone with good hand writing. However, it did seem to help when using the pro version for someone who had terrible hand writing.

Note that the accuracy percentage I am giving to these moves/score sheets is not the accuracy rating the app gives itself during the recognition process. My percentage is based on the total number that were correct after refactoring for each fixed move.

On either the basic or pro version, when I fed it a very legible score sheet, written in my own hand at one of my games, it recognized all the characters and gave me a proposed pgn with only 1 move that was in error of what I had written. That means it correctly interpreted 50 out of 51 half moves, or 98% accuracy. I then fed it another of my hand written score sheets where it correctly interpreted 99 out of 100 half moves, or 99% accuracy.

https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/07/Screenshot_20240722-081738-640x1024.png

That said, I fed it the dreaded sample sheet #2 from the previous post, which before it could not read at all (the hand writing is good, but the score sheet is a half sheet/small sized sheet. This time my results varied. With my tablet, Chess Scanner was only able to read the last column of moves, no matter how many times I took the picture. In a game of 41 moves, it could only read the last 11, none of which were legal without the first 30, so it did not do well. Then I tried the same score sheet with my cell phone, and it was able to read the score sheet with 12 errors for 82 half moves, or 85% accuracy. Again, the hand writing was perfectly legible, just the scoresheet[...]
AlaskaLinuxUser's Scratchpad
sure a subscription would work well for me. However, as a tournament director, I have access to 90+ score sheets from a single tournament. So that would be the better deal. Just depends on your needs. Secondly, I got rather used to seeing the board when editing…
had small boxes for the moves. Is this an app problem or a hardware camera problem? I’m not really sure.

I would like to note, though, that it also read the bottom of the page as part of the moves. (Please see the picture.)

I then fed it the challenge score sheet #3 from the previous post, which has 103 half moves, 6 known errors, and very bad hand writing. Using the pro version, it got an impressive 80% of the moves correct, which was objectively better than the competitors last time, having only 19 failures of recognizing the moves or characters. I don’t have access to the software, but I think a big factor in determination seems to be forcing legal moves. If the moves of the game were legal, then it does pretty good at figuring out what move must be next.

Conclusion:

Overall, I am really glad that the developer reached out to me for a second look at this app. It had been updated and improved since the version I tested before, and it is a really great app. The interface is really good, and it did exceptionally well with good hand writing, and really good with poor hand writing. I could see someone using this between rounds at a tournament to see what went well/wrong in their last game, and making it quick to share your games online with friends. This app seems best suited for the player, especially an active one. As a tournament director, I would probably rather crunch 20 to 90 score sheets on a computer with a mouse and keyboard, but this is a really handy tool to have in your pocket.

Linux – Keep it simple.