6 minute read

Remember when I told you, dear reader, to stay tuned for some updates on this blog in the coming weeks? Well, I made one more post the following day and then never again! That worked out well, didn’t it? /sarcasm

Well, truth be told, life got in the way (it always does), but in-between watering the plants, taking out the rubbish and crying idly at the ever-expanding distance of my hopes and dreams from me, I’ve been up to a few things since I made my most recent post (at the time of this post’s posting).

Xovich Java Edition (aka XovichJE)

Firstly, if you’ve been browsing my projects page, you’ll see that I have a project in there called “Xovich”. The aim of the project was to reimplement the work of a close friend of mine from a CLI one-liner into a fully-fledged GUI. His original ivanovich project was in Python, and so was my Xovich project, since that was our main language at the time (I guess it still is?). Then, as time went on, I had an idea for a summer project: Brush up on my Java and JavaFX skills by reimplementing Xovich and learning Gradle with it. Yes, I am insane.

So, how far did I get? Well, I managed to get the program itself to work just as fine as the Python version. I made sure to cover every edge case that the Python one covered, and reimplement the same features, even down to asking the user if they really want to close the program. What I didn’t get to do was get the unit testing functionality to fully work yet.

You see, I’m using a build tool called Gradle, which is meant to help me, as a developer, neatly lay out my Java libraries and dependencies and then use them in my project when it is built, and for the most part it does that. It’s even supposed to allow me to write and run some tests in JUnit 4, and in the Gradle tutorial I initally followed I am able to do as the tutorial says in order to run said tests. Trouble is, for some reason, the darn test report doesn’t build. In the tutorial I followed (which did not use JavaFX), once the build command is run, it’s supposed to run your unit tests for you, then generate a test report during the build process to be accessed later. That does not happen in my project for some reason, and I have included JUnit 4 as a test dependency. That’s mainly why there’s only 1 unit test in there (and, even then, it’s only supposed to check that XovichJE runs without Exceptions thrown), as opposed to the 3 tests that were in the original Xovich, and even then I’m not entirely sure if that test runs. When I can, I’ll need to look into it further, and write more good tests when I finally get the whole testing thing to work and the testing report built.

Also, XovichJE is currently built through Gradle as a fat JAR file, but since “shading” JavaFX modules that way isn’t really supported in Gradle you’ll get this warning every time you run the executable JAR through the command line (don’t forget to change the executable bit if your OS requires you to do that): WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @2c4a5079'. Once I can make the time, I’ll definitely need to look into it again, and maybe consider using JLink and JPackage to build native executables instead, even though I’d greatly prefer to just build a cross-platform JAR file.

As it stands, though, I’m still very happy with what I managed to get done, and I still had a lot of fun when I was writing it. Java was a language I have learnt throughout my university career so far, but I didn’t have a demonstrable extra-curricular project made with Java to release to the public until now (and I have edited my Projects page accordingly), and I wanted to brush up on my skills in Java because I know for a fact that they’ll be useful later. I should probably build a general Xovich page for this site in the future, to hold links to both the Python and Java versions of Xovich (and any future version in other languages 🤫). As for my aforementioned close friend, he has already seen XovichJE in action before it was made public (he already knew about the original Xovich) and he did indeed enjoy seeing it. Give this cool dude’s GitHub account a follow here!

Some Important Changes to My Site to Account for My New CV

Secondly, I’ve made some changes to the website itself. You see, I made a new CV with LaTeX back in circa late May to early June this year. Then, later that June, I made a GitHub repository for my (private) CV, then a week later I made a public version of the CV and its repo. The need for a public CV arose because my private CV has details and information about me that I didn’t want to be made public, and my public CV at the time was beginning to get grossly out-of-date. And now the time has come to make sure my new CV is the one you see on this site, as it better represents who I am and make me come across as more professional than my old one did. I also feel that my new CV is more comprehensive than my old one, particularly with regards to my more detailed educational history section (marked as “Education”).

So what about this site has changed, exactly? Well, first of all, my old CV page and PDF have both been renamed (it is now “cv_old” in the URL and document name respectively, and I already provided a link to the former in the previous paragraph). The “cv” URL and PDF file are now my new CV, with buttons in the CV page linking to my older CV and the PDF version of my new one above the page’s contents, and cv.pdf is also now my new CV rather than my old one. The contents of the CV page mirror the CV PDF, with some minor edits here and there. Also, I edited the links to my CV, both web page and PDF, in the “CV as PDF” post (all the way back in early August last year!) to redirect to my old CV instead of my new one, but I left other references to any version of my CV on the site unchanged, as I didn’t think it mattered that much anywhere else.

All that matters now is that my CV is kept up to date when that is required. I’m glad to have done this now because, well, better late than never!

And that’s it!

I thought I’d merge the two announcements together into one post because I didn’t really have too much to write for either of them. I just wanted to make both announcements today because I didn’t get to write a blog post in a while. As you can see, it’s not a long post like that Linux Mint usage anniversary post I made last month. But, hey, at the end, it didn’t need to be!

So what now? Well, I guess when I make a new change to this site or announce a new release (I prefer to announce projects to the project when they’re closer to a finished state), I plan to post here accordingly, so, for now, just keep your eyes peeled. I’m sure something will happen to this site at some point within the next year or so. Maybe even sooner!