In this midst of this world wide tragedy and horror, I want to share a light spot that my daughter and I are sharing.
I want to share this in a way that is accessible and possibly inspiring for folks that have not played MMO video games before. Not to necessarily encourage you to take them up, but to show you a little of that world.
I have been playing video games for many years in my retirement and have shared these games with my daughter, who lives 500 miles away and who has a busy career. We have been playing various games together for some time – a few hours twice a week. But recently it has become more like 5 or 6 days a week. Our current adventures are in Eorzea playing Final Fantasy XIV. Above, you can see recent mounts we acquired in an event that is going on for the next few weeks.
UPS has done it again. Their shipping will take at least another day.
I ordered a small package from Newegg – Two DRAM Modules. But rather than sending it USPS, Newegg sent it via UPS, which of course uses USPS for the “Last Mile”. Sooooo… UPS, in their infinite logistical wisdom drop the package off 6 hours from my house, by truck, and declares victory and says that the package will arrive today. Sure. Fat chance. You give the USPS 6 hours to get to my house and as the truck drives and don’t allow for any sorting? Have a clue, UPS. No freaking way.
So, Ubuntu 20.04 just released, and there are a ton of Youtube videos reviewing it. After the debacle of file sharing between Linux Mint 19.3 and Windows, I decided to make a VM [Virtual Machine] with Ubuntu 20.04 to see if it had fixed the problem. The short answer is, alas, no. Guess Ubuntu will get the fix when it’s ready, and I’m sure the fix will be back ported to LM 19 when it releases.
Years ago, I used Ubuntu for a time, before Linux Mint came out. It was pretty clunky, but a lot less clunky than SUSE which is what I started with years ago. Things have come a long way. Of course, Mint is based on Ubuntu, but they are very different experiences. This is a diary of sorts of my experiences while I was testing the file sharing problem and setting up Ubuntu to my liking.
For a while now I’ve been wondering how to print from Linux running in a VirtualBox virtual machine to my local Windows Printer. Well it just works. Sort of.
I did what it says on this page and it did work. I thought I had tried this a while ago and never got it going. But there has been progress with Ubuntu / Linux Mint over the years and it looks like it works now.
Well that wasn’t that hard. After looking at this page on Java layout managers [TLDR], and then this page on Group Layout again [TLDR]. I just jumped in and tried it out. And whadda you know. It’s not that bad. It’s a little glitchy. Not as smooth as the Qt Layout manager, but it works. Here’s what is working so far.
So the list and path strings resize. And this uses 14 pt type rather than 16 pt, so it’s a little more compact and probably won’t mess up on some screens like the larger font size did.
The program is distributed as a JAR file and requires Java SE 11 or later to run. OpenJDK 11 is built in to Linux Mint 19 and the normal windows SE release is currently Java 8. This will not work to run the program since it was developed for the JDK 11 version of Java. Actually. Let me get back to you on that. I have JDK 14 installed on the system I use to test on Windows 10. I need to sort out these Java version numbers and confirm that the program works on Java 8. Are Java JDK versions different from the RunTime environment versions? Let’s see.
Running the command line to launch the Impress program to show the slide show.
Finding out when the show is complete.
Clicking the mouse repeatedly so that the show ends when it finally reaches the black screen.
1 and 2 are pretty easy. In Qt there is a class that executes a command in another process. And you can wait on it or check to see if it is complete. We can’t wait of course since Impress just waits forever for a click on a black screen at the end. Soooo.
3 is not so easy on Qt. The solution differs by OS. On windows you need to call the Kernel to send events to be dispatched through the event handler. UINPUT calls. On Linux, the easiest solution I found was to launch the “xtodo click 1”command to perform a mouse click. The xtodo command is easily installed on Linux, but this is another step to make the program work. But the Java solution is much easier.
I’m now forever done with Qt for that. Java is sooooooo much easier to deploy.
The above shot is of the prototype Java Impress Show Runner app running on Linux from a JAR file built on Windows 10. It runs on Windows 10 and it runs on Linux, with no changes and instantly. No fiddling required.
Here’s what it takes to build apps this way. Just an overview, not the entire story, but it has only been Five days since I started with Eclipse and Java. So it’s not that big an effort.
Update 11 April 2020: Using the xdotool method, the QtShowRunner works well on Linux, so there is a portable version for Windows and Linux. Get the latest at the github repo. I’m still investigating “Deployment” for Windows and Linux. Now, previously…
I have beat my head against the wall trying to fix the QtShowRunner program that works on Windows to work on Linux. None of the methods have worked.
Kernel uinput API calls never worked.
Using the X11 XSendEvent to send either Mouse clicks or Key events didn’t work.
Finally I found a command called xdotool which does many X things including sending mouse clicks and key presses. Here’s a shell script that uses the xdotool to launch soffice impress to show a slideshow and then terminates the show and then exits the script.
The script launches the show with the ending & to detach it. Then loops looking for the process using pgrep and if it’s still around, uses xdotool to click the mouse and waits for 5 seconds. When the process finishes the show, and the click ends the show, then pgrep fails and the script exits. Trivial.