.NET 5 is out on schedule (but with a reduced scope). The Core branding has gone but it’s the same modern cross-platform codebase and not the old Windows-only Framework.
However, there is one feature of .NET 5 that is quite interesting and I wanted to try out. This feature is self-contained single file apps and it is only available on Linux (not on mac or Windows, yet). This is another area where Linux is a step ahead.
I’ve upgraded my OctoPlot tool to .NET 5 and produced some self-contained single file app Linux binaries. You can stay on 3.1 and use the 5.0 SDK but the binaries are bigger. I also trimmed out any unused code from the assemblies (including R2R, which is not the same AOT compilation as CoreRT or .NET Native) to get them as small as possible.
The result is a binary under 5MB compressed. This is by no means tiny compared to a Python script but it includes the runtime, making it easy to deploy. This is about a quarter of the size of the previous release artefacts.
If you want to see the results in action then you can
curl) a binary from the GitHub release.
For example, on a Raspberry Pi running Raspberry Pi OS (e.g. a pi hole) use the following commands (replace
arm64 as appropriate).
wget (upper case
wget -O octoplot.xz https://github.com/jpsingleton/octoplot/releases/download/1.0.1/octoplot-linux-arm.xz
Or if you prefer
curl (lower case
curl -L -o octoplot.xz https://github.com/jpsingleton/octoplot/releases/download/1.0.1/octoplot-linux-arm.xz
-L is required to follow the GitHub redirect to AWS S3.
Then decompress the binary, make it executable and run it.
xz -d octoplot.xz chmod +x octoplot ./octoplot j
You should specify the region ID character for the area you are interested in.
j for South East England, the default value is
p (North Scotland).
Add it to your
PATH if you want to run
octoplot from anywhere.
If you want to build it for yourself then you can install .NET 5 with your usual package manager.
Before you start using it you may want to disable the telemetry that is on by default.
You can do this in many places, e.g.
/etc/environment (no need for the
export command here) for wider reach:
You can also alter your
I use my
octoplot tool to help me plan when the cheapest time will be to run appliances.
For example, when to set the timer on the oven for to be paid for it to pyrolytic auto-clean.
Our latest Agile bill from Octopus Energy put the average cost per kWh at about 8p, which is roughly half-price compared to fixed tariffs. This would save us over £300 a year if it continues.
Your mileage may vary (pun intended) as we have an EV (a second hand Leaf) that I typically charge overnight at weekends. I’ll save a follow-up review after a few more months of ownership for a future post but in summary it’s best car I’ve ever driven. It’s so much fun to drive and outrageously cheap to run but it still hasn’t stopped me from walking to the shops.
It’s not just about cost and it’s important to reduce usage too. I don’t want to be part of the problem.
I’ve finished reading Clearing the Air: The Beginning and the End of Air Pollution by Tim Smedley, which is excellent and well worth a read. Although EVs produce no exhaust emissions and produce less from brake wear, they still re-suspend pollution on the road produced by fossil cars. Sitting in traffic is the worst place to be from an exposure perspective, plus there’s the obvious additional negative health implications from lack of exercise.
Speaking of exercise, last weekend (as a lockdown project) I lagged the loft with insulation made from recycled glass, improving what was there already. As autumn leaves (fall) and winter arrives, this should help reduce our energy usage when the freezing temperatures come in December. It helped that I’m used to wearing a face mask now!