Update Update

It was finally time to check my site for updates. I have been allowing WP to apply its own security updates for a while and this time I needed to manually apply a major update.

A pleasant surprise this time was discovering that plug-ins can now be set to auto-update.

I have however removed the Better GitHub Widget that I had been using as whilst it was working it was no longer being actively supported and could potentially be a future security risk.

Update Time

I've not been very good at posting anything so far this year. There are many things that have been occupying my time and working in heathcare I have not been in Covid-19 lock-down like many others.

The main focus of my time has been on attempting to rewrite my iptables firewall rules using nftables. Getting used to using a different syntax is one thing but I've revisited my rule decisions along the way.

One of the positives of nftables is that I am able to have rules that work on both IPV4 & IPV6 traffic without having to duplicate them. What I had not factored in when starting the rewrite was the affect IPv6 would have on the rules.

I'll skim over the details but researching the rules have resulted in experiments with my router and devices on my network. Reading up on how my ISP implements IPv6 and researching which configuration options are presented on various routers. Just when I thought I had the rules translated I discovered that IPv6 relies heavily on ICMPv6 traffic. This was another big chunk of research. I've lost count of the number of IETF RFC's that I've read through.

The good news is I am nearing the end of the work on that project. I hope to be using the ruleset more widely and troubleshooting as I go. It's never going to be completely finished but as long as it's usable it can evolve over time.

Since it has been a while since I last posted I am using this opportunity to see how the WordPress block editor has changed over time. My initial impression whilst sitting down to type this post is that it seems much less intrusive. I'll reserve judgement until I've made the changes I want but its probably much closer to what it should have been when first released a few year ago.

One of my plans for a while has been to make use of the static site for some content. That however has been suffering from a lack of updates in much the same way this site has. I'm still in the habit of making notes on topics as I research and learn things. There are plenty of things I can write up in the future for my own reference and for others. How soon I get around to it is another matter.

This is a test of the block editor's ability to theme based on my style sheet.

Well I have given the block editor a chance and again it has let me down. I can apply styles manually by editing the html. I can partially apply styles with the editor but it is still missing functionality. Trying a workaround with predefined blocks only resulted in duplicating the blocks content in another block.

The result of the current experiment is that it remains easier to format the html directly to achieve the desired outcome rather than using the block editor. This may be in part to the particular styling that I wish to apply. I can see that for some use cases the available functionality is probably sufficient.

Using the block editor itself when trying to make adjustments isn't as easy to use as it could be. Trying to select the elements without triggering the wrong pop-up menu or triggering new block creation just leads to a frustrating experience. I'm still on the side of writing the plain text and adding styling afterwards by hand. This is why the static site generator is preferable. I get to achieve the style I want with less of a burden than the block editor creates.

End of today's experiment.

2019 Review & 2020 Goals

It's that time of year again when I look back over the goals I set myself over the previous year and decide on some new ones for the year ahead.

What I intended to do in 2019:

  • Lose Weight & Eat Healthily – Fail: Whilst I have tried to eat more healthily I need to reduce the quantity and amount of snacking between meals.
  • Continue STM32 Development – Pass: Whilst I dabbled with rotary encoders and non-blocking code I didn’t make anything useful.
  • Buy A 4k TV – Pass: Ticked this one off the list at long last, it looks great.
  • Watch Less TV – Fail: I probably have been watching too much, but then I have watched some really good shows.
  • Read More books – Epic Fail: I’ve hardly picked up a book despite it being within reach.
  • Work Less Overtime – Fail: I’ve worked more than I expected do to some changes at work. On the plus side it has paid for the TV.
  • More Website Updates – Slight Fail: I did some work on setting up a framework for a static site that is more suited for reference style content. I haven’t done anything with it as yet.
  • Increase Savings – Slight Pass: They are on the way back up but I have treated myself to a few things so the increase isn’t as great as it could be.
  • Contribute To An Open Source Project – Fail: I’ve not spent enough time on my own projects let alone contribute to any others.
  • Write Something In Python – Fail: I’ve focused on C++ this year and not looked at Python.

Not the best of years based on what I wanted to achieve. Planning my free time a little more might help achieving my 2020 goals.

What I intend to do in 2020:

  • Lose Weight & Eat Healthily – An improvement is needed for 2020.
  • Get More Exercise - I need to add a few sit-ups to my day and a bit more walking.
  • Upgrade Router – Whilst my router still works I need to look at getting one with better future software support.
  • Buy A Laptop – This is the big ticket item for 2020. Almost purchased in 2019 it was put back as I couldn’t get the specification of machine I wanted. Whilst I did obtain a Chromebook which has its uses, a more powerful laptop is needed to replace my ageing machine from 2006.
  • Read More Books – I have books mounting up and I need to get through a few.
  • Work Less Overtime – I’ll give this another go and see if I can manage it.
  • More Website Updates – Might be possible if I achieve my goal of working less overtime.
  • Increase Savings – Needs a good push so I can get closer to paying off my mortgage.
  • Contribute To An Open Source Project – It’s time I did something more to give back to the community.
  • Write Something In Python – If I don’t do it soon I will forget how.
  • Make A Complete STM32 Based Project – It’s time to put together what I have learnt so far. It might also give me something to write about.

For 2020 there is one must achieve goal and that is to lose weight. I failed to make any progress in 2019. At the time of writing I am (still) around 93kg. The first step in the weight loss program is to get under 90kg and stay there. Any improvement on that will be a big success.

WordPress to Sphinx?

It has been a little while since I last posted something. So this post is a little bit of a progress update. I am still investigating moving away from WordPress to a static site using Sphinx. It turns out there is quite a bit to research and learn about. Whilst the transition of this website into a static form might still be some way off I am finding Sphinx very useful for my own notes and research.

Using Sphinx for notes is leading me to discover more of the tools I need for the migration. At the same time however I am wondering about using the right tool for the right job.

To make Sphinx output HTML is very easy. It is also simple to create a hierarchy of documents linked together. What requires more effort however is turning it into a blog style site with dated posts, tags categories etc. There is an extenstion ABlog which adds the required features but at the expense (or so it appears) of taking over the rest of the Sphinx installation. Other options are available but the communities behind them do not appear as active as I would like when planning a big site migration.

This has had me wondering about Pelican again. It is another static site generator geared towards the blog style and allows the importing of WP sites. But again do I risk loosing what I like about Sphinx just to have a blog like tool. I already have a blog like tool, it's called WordPress.

I have also been considering comments. A static site by default does not allow comments. Comments need to be added using an external plugin/service. This might come at an additional cost or loss of control over such comments. Neither option is ideal.

But what is it that I don't like about WordPress at the moment? A few things. I am not a fan of the new editor. I grew up hand coding html and css files. WordPress is good if you don't want to have such fine grained control over the look and feel of the site. I want to have the control to format the content the way I want and to keep it that way. I have not always been able to do this as I have changed WordPress templates over the years to benefit from the additional features that keep being added. Each new template has tweaked the layout in various ways that it has broken the flow/style of my content. For text heavy posts this isn't a problem. But I have tried to write guides and this has posed a problem. Having to go back and ensure that it still looks right is a pain.

The next thing I am not a fan of is the Gutenberg editor. I am not a fan of it. Just trying to type a long post like this I am finding little things that I don't like. It's better than it was but it still isn't as seamless to me as the old editor when it comes to structuring content that might include images, tables etc.

My current thoughts at time of writing is this. Why not have the best of both worlds? I can easily create static content and host it alongside WordPress. The static content I am more interesting in managing offline with Git. As I make changes to it I can push the changes up to the site without affecting the WordPress install.

Such a set up would allow me to still announce new content using WordPress and simply link over to the static portion of the site. At the same time this allows the static site to refer back to the WordPress site as a point where comments can be made. It solves the problem of how to have comments on a static site and still allows me full control over the comments themselves.

There is another hidden bonus in that by not having to export the current post archive to another platform I can save myself a great deal of time. There is still plenty more thinking to be done on this matter but I think I am getting near to a solution.

Data Export

I'm still considering moving this site from being WordPress based over to a static site. My plan is to conduct a few experiments first to see how the process works and if the end result would work the way I want it to.

The first stage in this process has been to export all of the written content from the site to allow it to be converted. What has been a surprise is that despite having posts and comments going back to 2002 it only amounts to a 3.8MB XML file. Being XML there is plenty of data structure information in the file which will increase the file size. So ultimately the actual site data accumulated is even less! Graphics, images & other uploads are obviously not included but I still find it an interesting fact.

I Still Dislike KiCAD

I made another attempt today to use KiCAD 5.0.2. There was a schematic for an 8-bit computer I wanted to investigate. In addition to looking at the actual circuit I wanted to see how KiCAD handled the separate schematic sheets that made up the project.

The KiCAD interface has once again left me frustrated. Zooming in an out with the mouse scroll is a pain as it zooms too much for the slightest movement. I have other issues with the way pan and zoom differs from other CAD packages but I don’t see this ever changing.

I did like the way I could enter the high level overview and then enter the individual hierarchical blocks. However moving between blocks required me to leave and renter the sheets. I went looking for something that would allow me to switch between the sheets that made up the whole schematic. I found box that would open up and allow me to select the sheet I wanted. It would then immediately close again. Not great if you want to switch back and forth between sheets quickly. When using DipTrace I have been able to have tabs for each sheet along the bottom of the screen and can easily switch between them. I cannot see anything in KiCAD that allows the same functionality.

I’m sure there is a lot to like about KiCAD but there is so much I dislike about it I can find a reason to persevere with it. I would submit a bug report or two but I have found existing reports to the issues which the developers don’t intend to fix.

Aims for 2019

It's that time of year again when I look back over the goals I set myself over the previous year and decide on some new ones for the year ahead.

What I intended to do in 2018:

  • Lose weight – Fail, I have put weight on.
  • Continue work on STM32 development – Pass. I didn’t get around to using the development board I had planned to use. Instead I continued working with the STM32F103 boards I had. I managed to make my own Christmas lights with an LED strip and conducted some experiments with stepper motors.
  • Experiment with CPLD – Fail. Whilst I have the board available I have not yet had a cause to use it.
  • Clear out Garage – Pass. I cleared out all of the large items in the garage. There is more room but it still needs a good sort out and perhaps a workbench and some shelves.
  • Go 4k – Pass. I have a 4k computer monitor, it has been very useful for programming as I can get more readable code on the screen. The 4k TV was delayed due to cost.
  • Finish Back Yard – Fail. I still need to put the last step in.
  • Eat more healthily – Fail. This is probably related to my weight gain.
  • Perform more data backups – Fail. Not done as many backups as I would have liked to.
  • Read more books – Fail. I am still reading but progress has been slow.
  • Plan Free time – Pass. I have made time to do a few things when I have wanted to do them. There is always room for improvement.
  • Reduce Netflix use – Fail. I blame Netflix for having too much good content to watch.
  • Tackle the Rodent Problem – Fail. They are still there. I fear this is a battle I cannot win.

2018 was an OK year. But there is much room for improvement in 2019.

What I intend to do in 2019:

  • Lose Weight & Eat Healthily - Yes, it’s back on the list as a combined goal but it needs to be.
  • Continue STM32 Development – There are more projects I want to work on and I may yet create something useful.
  • Buy A 4k TV – Hopefully the expensive TV from 2018 will have dropped to a price that is within my budget.
  • Watch Less TV – An odd choice if I am planning on getting a new TV but a goal that will hopefully have me doing other things.
  • Read More books – My reading list is growing and I need to make some progress.
  • Work Less Overtime – Whilst working some overtime brings in extra cash I have probably been doing too much. I would end up with more free time as a result.
  • More Website Updates – I have not been updating the website as much I should. I am thinking of project documentation as possible content.
  • Increase Savings – Buying a car this year put a dent in my savings and they need building back up.
  • Contribute To An Open Source Project – There are lots of projects I benefit from. There should be something I can give back, even if it is as simple as providing information for a bug report.
  • Write Something In Python – I have spend a lot of time writing C++ for the STM32 and have neglected Python. I should write something to keep myself up to date.

For 2019 there is one must achieve goal and that is to lose weight. All the other goals would be nice extras. At the time of writing I am around 93kg. The first step in the weight loss program is to get under 90kg and stay there. Any improvement on that will be a big success.

Steam Play

I have been using a Linux Desktop machine as my primary computer for many years now. The applications I use day to day are mostly open source and run natively on Linux or through WINE.

Games though have always been an issue. In recent years more games are being released that run natively on Linux. I will now only buy games that run on Linux, no matter how much I might want to play them. But what about the games I already own?

In particular Galactic Civilizations 3. I paid (more than I would do normally) to be a founder for this game. I did so because I enjoyed the previous instalments that I played on Windows and this would entitle me to future expansions for the game at no extra cost. It sounded like a bargain, especially as at the time there was talk of Linux support. Alas the Linux version never materialised and I had to result to booting my old Windows machine in order to play.

I have played the game very little over recent years due to needing to move into a different room and boot another machine to play on a small monitor. Today I stumbled across a post in my news feed about https://www.protondb.com. Proton is a tool built into Steam to allow Windows games to run on Linux. Protondb.com contains a searchable database of users results of attempting to run Windows games on Linux. Galactic Civilisations 3 was in the list as having Gold level support. Digging into the user reports things get better. Over the past 3 months with Proton 3.7-8 users have rated support at the highest Platinum level and a few of the results were using the open source AMD drivers (which is what I use).

Time to give it a go. I followed the Steam instructions on how to enable Steam Play in the Steam Client. From there I was able to download and install the game.

Launching the game for the first time a launcher window appeared showing other games by the same developer. I was then able to launch into the game and found that it worked :).

Then I ran into a problem. Not with the game but with the launcher. To adjust the graphics settings in the game requires the game to be restarted. However the launcher turned into an invisible window. I could click on it. I could see its contents when I looked at the Gnome workspaces overview. I just couldn’t see it when it was maximised. This obviously makes launching the game a problem.

I found the solution in this post. Adding “/nolauncher” run option for the Advanced Startup options for the game inside the Steam Client. The game now starts without any issues.

The only way to know for sure that it works correctly will be to play a few games. I’m now off to “force” myself to play a few games for “research” purposes.