All posts by Tim Anderson

Runbritain rankings and how they work

I love the Runbritain rankings, other than that the site is not very reliable, because it gives you an indication of your running performance taking into account the conditions. If you run on a muddy course for example you will probably not get a good time, but the same is true for others. The Runbritain rankings take this into account so you can still get credit for your effort, in terms of a reduced handicap. I also like that only your five best performances are taken into account, so you can run slowly with a friend and not worry about harming your handicap (if indeed you ever worry about such things).

How does it work? I found it quite confusing. There is a video explainer by Tim Grose, one of the two leads for the team at Athletics Data that developed the rankings, but even this is not super clear in my opinion. The problem I think is that the normal view in the Runbritain ranking table for an athlete gives you, aside from the race name and time, two figures, SSS and vSSS. The SSS is the “Standard Scratch Score” and measure the state of the course, where zero is pretty much perfect and anything above 4 is fairly bad. 10 is the maximum and apparently it could be slightly negative though I have never seen that.

On a 5K such as a parkrun, each point is worth about half a minute so a score of 4 would mean most people are two minutes slower than they would be on a perfect course.

Second, the vSSS or virtual Standard Scratch Score shows how well you performed; this can be negative. More on this later.

These two figures though do not show you how the handicap is calculated. Handicaps run from maybe -10 (the lowest currently is -7) up to 54, based on golf handicaps, where lower is better. Imagine that you run a 5K parkrun in 25 minutes. This performance represents a basic handicap of 19.3 before adjustment, a figure calculated from senior age gradings but without looking at your age. Runbritain handicaps do not take account of age; they are purely about how fast you are in absolute terms. The exact table is not given though you could easily work it out.

This handicap is then adjusted based on two things, the SSS and the time penalty. The time penalty starts at -1.5 and gradually increases. To give an idea, an event one year ago has a time penalty of 2.5. So if you ran a 5K parkrun in 25 minutes today, and the SSS was 2.0, that would give you a handicap of:

19.3 -2.0 -1.5 = 15.8

If that event were a year ago it would come out at:

19.3 -2.0 +2.5 = 19.8

Your final handicap is the average of your best 5 handicaps after adjustment.

Since the vSSS is not part of this calculation, why is it shown? Well, it is kind-of part of the calculation because of the way SSS is calculated. Runbritain rankings does not go round inspecting each course and judging its condition. Rather, its algorithm looks at the results and at how each athlete did versus their expected best time (best handicap). This figure is called MySSS. So if you equalled your best handicap it would be zero, if you improved on it, it would be negative, and if you ran slower than it would be positive.

Gross says that “if you ran 20:00 for 5K (9.7 points) but your best 5K time is 19:00 (7.6), MySSS would be 9.7-7.6 =2.1”

There is a slight puzzle here because it is possible to get a PB (personal best) on a race but still have a positive MySSS, as I observe from my own results. The system will also record a MySSS even for a distance you have not done before. I believe this is because the system does not really look much at the distance, but mainly at your best handicap. Therefore if you ran a fantastic parkrun, lowering your handicap, and then got a PB on a half marathon but by less margin, your MySSS on the half marathon would be small but positive, being less fast than your best 5K time would have predicted.

Finally, Gross says that the MySSS is calculated based on “recent” results which is a good thing since what this part of the algorithm is really trying to calculate is how close to ideal the course was, and the fact that you would have run it faster 20 years ago is not relevant to that.

The algorithm looks at the MySSS for all the athletes and the middle one (median) becomes the SSS. Then your vSSS is your MySSS less the SSS.

There may be some slight inaccuracies in the above description but I believe the gist of it is correct. Grose refers to things like “mildly progressive” that suggest some small further adjustments.

Any flaws in this approach? I can think of a few. One is that there are many reasons for slower performance that are not to do with course conditions, such as illness, parkrunning with a pram, tailwalking (going last to sweep up any runners who have difficulties), and more. This presumably is why Runbritain rankings uses the median MySSS and not the mean, to calculate the SSS, but it will never be perfect.

Another issue is that parkrun is not a race – well, some treat it as a race and try for their best time, others more as a social event with dogs, prams, and chatting to a friend as they run. Nothing wrong with either approach, but that will impact the SSS and implies that someone who tries their hardest in a parkrun may have too low a handicap.

Despite imperfections though the system does work and I find it reassuring, after getting a slow time in bad conditions, that the Runbritain rankings view may show it in a more positive light.

A year of running

I am not sure exactly when I became a runner, nor for how long I will be one. But I am sure that when I think back over 2023 from a personal point of view, running is the first thing I think about.

Pic courtesy of Microsoft Paint Cocreator AI

Most of us discover the need for exercise at some point in our lives and for years I have been in the habit of doing a short daily workout, hardly even a workout, but based on the old 5BX plan which takes all of 11 minutes. 5BX includes running on the spot which is effective but quite boring. I replaced it with going out for an actual short run and omitting the jumping jacks.

Then a couple of things conspired to persuade me to do more running. It was partly a side-effect of lockdown, when my wife who was on furlough did the NHS Couch to 5K programme which was followed by an addiction to Parkrun, free 5K runs which take place every Saturday morning at numerous locations around the UK and some worldwide.

Second, an event called the Winchester Half Marathon passes our house and I found myself thinking that I would like to do it myself.

I decided that I might as well join in with the Parkrun and soon enjoyed the challenge of trying to improve my time week by week. That began in July 2022.

I was enjoying it enough that in April 2023 I booked myself into the Winchester Half for September. That gave me 6 months to train, more than enough. I increased my daily run to a 15 minute hilly run three times round the block near my home. I started doing a long run on Sunday mornings, working up from 8K to 10K to 12K and up to 20K, just short of the half marathon distance.

The Winchester Half is somewhat hilly so I booked for the flatter New Forest Half Marathon earlier in September as a practice. That went OK despite rain and I finished in 2:03:50. Winchester went a bit better and I did 1:58:27. Ambition fulfilled.

I was enjoying it too much to give up though, and since then have joined the local Winchester Running Club and booked for several more events next year. I also did the AWS re:Invent 5k in Las Vegas which was fun if a little odd in the way it was organized!

I have started running relatively late in life and wish I had done it earlier; but it is also fun to do something new. Often I meet people who tell me they also loved to run but had to stop due to injury, sometimes knees, sometimes something else. I do not think running is risk-free but I am convinced that it is more likely to do good than harm. I have just read Daniel Lieberman’s book Exercised; Lieberman is a professor of biological sciences and writes that “the negative effects of too much exercise appear to be ridiculously less than the negative effects of too little.”

Even the risk to knees is not clear-cut. “Physical activities like running that load joints repeatedly and heavily do not cause higher rates of osteoarthritis and may sometimes be protective,” writes Lieberman, referencing a 2008 study in the American Journal of Preventive Medicine.

There are consequences though. I have lost weight. My resting heart rate has slowed. And it is time-consuming, especially if one trains for the longer distances.

I realise though that I may not always be able to run. That for me is all the more reason to run while I can.

The era of tiny PCs: 400g and smaller than a paperback book

My work PC for the last few years has been a 2018 HP Omen gaming PC which has been brilliant; I have replaced the GPU and added storage but everything still works fine. That is, it used to be, until I reviewed a mini PC which has surprised me with its capability – not because it is exceptional, but because everyday technology is at the point where having something bigger is unnecessary for everyday purposes other than gaming.

Mini PC with paperback book and CD to show the size

The new PC is a Trigkey S5 with an AMD Ryzen 5560 CPU, 500GB NVMe SSD and 16GB DDR4 RAM, and currently costs around £320. Its Geekbench CPU score is better than my 5-year old HP with a Core i7.

GPU score is way less than the old HP.

Still, there is support for three displays via HDMI, DisplayPort and USB-C and 4K/60Hz is no problem.

Inside we find branded RAM and it does not look as if the components are shoe-horned in, there is plenty of space.

The power supply is external and rated at 19v and 64.98w.

Expansion is via 4 USB-A ports, one USB-C, and the aforementioned HDMI and DisplayPort sockets. There is also an Ethernet port, and of course Bluetooth and Wi-Fi.

Operating system? Interesting. It is not mentioned in the blurb but Windows 11 happens to be installed, but with one of those volume MAK (Multiple Activation Key) licenses that is not suitable for this kind of distribution (but costs the vendor hardly anything). When first run Windows setup states that “you may not use this software if you have not validly acquired a license for the software from Microsoft or its licensed distributors,” which you likely have not, but Trigkey may presume that most of its customers will not care. I recommend installing your own licensed copy of Windows as I have done, or your preferred Linux distribution.

Windows does run well however and 16GB RAM is enough for Hyper-V and Windows Subsystem for Linux (WSL) 2.0 to run well. Visual Studio 2022, VS Code, Microsoft Office, all run fine.

I am not suggesting that this particular model is the one to get, but I do think that something like this, small, light, and power-sipping, is now the sane choice for most desktop PC users.

The AWS re:Invent 5K run 2023

Sunrise over Las Vegas – at the re:Invent 5K run 2023

It happens that, a little later in life than most, I have taken up running, and during the recent AWS re:Invent in Las Vegas I was one of 978 attendees to take part in the official event 5K run.

If there were around 50,000 at the conference that would be nearly 2% of us which is not bad considering the first coaches to the venue left our hotel at 5.15am. The idea was that you could do the run and still make the keynote I guess – which I did.

I would not call myself an experienced runner but I have taken part in a few races and this one seemed to have all the trimmings. The run was up and down Frank Sinatra Drive, which was closed for the event, and the start and finish was at the Michelob ULTRA Arena at Mandalay Bay. Snacks and drinks were available; there was a warm-up; there was a bag drop; there was a guy who kept up an enthusiastic commentary both for the start and the finish. The race was chip timed.

We started in three waves, being fast-ish, medium, and run/walk. I started perhaps optimistically in the fast-ish group and did what for me was a decent time; it was a quick course with the only real impediments being two u-turns at the ends of the loop.

Overall a lot of fun and I am grateful to the organisers for arranging it (it does seem to be a regular re:Invent feature).

Here is where it gets a bit odd though. The event is pushed quite hard; it is a big focus at the community stand outside the registration/swag hall and elsewhere at the other official re:Invent hotels. It is also a charity event, supporting the Fred Hutchinson Cancer Center. All good; but I was surprised never to be officially told my result.

I was curious about it and eventually tracked down the results – I figured that with chip timing they were probably posted somewhere – and yes, here they are. You will notice though that no names are included, only the bib numbers. If you know your bib number you can look up your time. The QR code on the bib also links to the results. This was mine.

It seems that AWS do not really publish the results which would have disappointed me if I had been the first finisher who achieved an excellent time of 16:23 – well done 1116!

I can’t pretend to understand why one would organise a chip-timed race but then not publish the results. Perhaps in the interests of inclusivity one could give people an option to be anonymous but for most runners the time achieved is part of the fun. I think we were meant to be emailed our results but mine never came; but even if I had received an email, I would like to browse through the full table and see how I did overall.

AverMedia LiveGamer Ultra 2.1 – excellent capture card and getting better

This capture device is a neat device packaged in an unnecessarily bulky box – though to be fair the cables take more space than the capture box. It is called Ultra 2.1 because it supports HDMI 2.1, though not at the highest resolutions of which HDMI 2.1 is capable. However since an Xbox Series X or a PlayStation 5 supports up to 4K 120Hz, the Ultra 2.1 with passthrough at 4K 144Hz and support for HDR (High Dynamic Range) and VRR (Variable Refresh Rate) seems plenty good enough. I was able to capture at 3840 x 2160 at 60Hz using OBS (Open Broadcaster Software) with very low latency. 

AverMedia Live Gamer Ultra 2.1

Some features of the product are not quite ready though. Support for Avermedia’s easy to use RECentral software is not coming until the first half of 2024, according to the support page, and passthrough resolution will be enhanced to add 3440×1440 100hz in a forthcoming firmware update. Similarly, macOS support is promised before the end of 2023.

I got good results even with the product as it is though. The device is very easy to use (even if OBS is a bit fiddly) and I was glad to see that the supplied HDMI cable is fully certified. The box is USB powered, requiring a USB 3.2 Type-C port; it does not require any additional power. There is also a 4-pole audio cable supplied which can be used with a headset or controller, though I did not try this.

The box has lighting effects which to my mind are rather pointless but you can control this through the AverMedia Gaming Utility, a download from the AverMedia site. This utility can also update the firmware, which was the first thing I did. Downloads are available here.

A high quality capture box which gave me excellent results from a PS5.

Full specs:

  • Interface: USB 3.2 Gen 2 Type-C (10Gbps)
  • Input & Output (Pass-through): HDMI 2.1
  • Max Pass-Through Resolution: 2160p144 HDR/VRR, 1440p240 HDR/VRR, 1080p360 HDR/VRR
  • 3440x1440p100hz and other ultrawide resolutions promised via firmware upgrade on Nov 16th with others to follow
  • Max Capture Resolution: 2160p60
  • Supported Resolution: 2160p, 1440p, 1080p, 1080i, 720p, 576p, 576i, 480p, 480i
  • Video Format: YUY2, NV12, RGB24, P010(HDR)
  • Dimension (W x D x H): 120 x 70 x 27.6 mm (4.72 x 2.76 x 1.09 in.)
  • Weight: 115 g (4.06 oz.)

System requirements:

  • Windows® 10 x64 / 11 x64 or later
  • macOS support promised by the end of 2023.
  • Desktop: Intel® Core™ i5-6XXX + NVIDIA® GeForce® GTX 1060 or above
  • Laptop: Intel® Core™ i7-7700HQ + NVIDIA® GeForce® GTX 1050Ti or above
  • 8 GB RAM recommended (Dual-channel)

A mild case of Azure bill shock: is this the most over-priced service on Microsoft’s cloud?

I have been experimenting with accessing Azure storage from remote PCs and tried out the option to use SFTP which was introduced last year. It works though there are limitations, like no support for SSH commands after connecting, no resume support for uploads, and no support for Azure AD authentication – this last is a bit of an issue since fine-grained permissions can only be done with local users, specific to the blob storage.

I actually thought I had turned this off after my experiment but I did not. So I had SFTP enabled on a test storage account, doing nothing. I spotted it of course when I got a large (for my usage) bill. Simply having SFTP enabled on a storage account costs around $220 per month.

To be fair to Microsoft, the cost is documented and there is a notice in the portal, in the details for the storage account, that enabling SFTP incurs a charge, though it does not say how much.

The cost for enabling SFTP

The price is remarkable though, especially given that it seems that the SFTP support is a bit of a hack. Perhaps Microsoft actually runs up a dedicated VM for this in the background, who knows?

“The cost is astronomical considering the service, it’s like $7.20 a day to use and roughly $220 a Month. It’s WAY cheaper to use a VM. This service is like 3x too much,” said a comment from another sufferer.

My advice is not to do this. My further advice is to track closely the actual spend on any new services you run up since is it the only reliable way to avoid this kind of problem.

Windows Server 2022 Essentials – a good deal for small businesses but what is it really?

I have just installed Windows Server 2022 Essentials on a Gen 10 Plus HPE Server – a somewhat arduous experience mainly thanks to what seems to me HP’s buggy firmware and utilities. I optimistically tried to use Intelligent Provisioning; this is meant to update itself before use but got into a loop where it would not update, the solution being to download the latest version from HPE and install it from a USB stick. That worked but I still could not get Intelligent Provisioning to install Windows Server and ended up going a more manual route. Once installed you will need HP’s SUM (Smart Update Manager) to install drivers and update other bits of firmware; this runs as a local web application but when it attempts to open in the default browser (Edge) it hangs on “Loading”; the solution was to use Firefox. I also hit a documented problem where Windows reports virtualization as not enabled and Hyper-V therefore does not work. All fixed now and one thing that I do like about HPE servers is the ILO (Integrated Lights Out) and the ability to do everything remotely including changing BIOS settings.

The main focus of this post though is Windows Server 2022 Essentials, which I purchased with the new server.  Curiously it installs as Windows Server Standard and at first I thought something must be wrong. Not so; this is quite a different thing than previous versions. Windows Server Essentials is two things: a role in Windows Server 2012, 2012, and 2019; and an edition of Windows Server aimed at small businesses. The edition is a good deal for organizations that fit within its limitations since it is modestly priced and does not require CALs (Client Access Licenses),  though it seems you can now only buy it as OEM software. If you exceed the limitations, you have to upgrade to full Windows Server and add the CALs too.

The fact that Server Essentials is both a role and an edition leads to some hilarious confusion including this remark in the official documentation.

image

All that is irrelevant now though as the role has gone since Server 2019.

The consequence of these changes is that Server Essentials now has very little specific documentation. The features are the same as Windows Server Standard, other than the stringent hardware limits which are:

For Windows Server 2022 Essentials:

1 CPU socket, 10 CPU cores, 128GB RAM

For Windows Server 2019 Essentials:

2 CPU sockets, no core limit, 64GB RAM

In addition, the licensing terms state that “Up to either 25 unique users or 50 unique devices may access and use the software at one time” and that “Windows Server CALs are not needed to access the server software.  Some server software functionality may require special CALs.”

Finally, there is provision for virtualization of the server by installing both directly on the hardware and a further instance as a VM, provided that “if you run both permitted instances at the same time, the instance of the server software running in the physical operating system environment may be used only to run hardware virtualization software or provide hardware virtualization services.”

In every other respect, it is Windows Server Standard. A note here states:

With Windows Server 2022, the Essentials edition is available to purchase from OEMs only, however there is no specific installation media. Instead, an Essentials edition product key is used to activate the Standard edition of Windows Server 2022. You get all the same features.

I cannot see any requirement for it to be a domain controller or other such restrictions which apply to earlier versions – though in most cases it probably would be. You can also run Azure AD Connect on versions since 2019.

Windows Server Essentials is the last remnant of what used to be Small Business Server, which in its time was a great solution for small organizations when properly installed and managed. Microsoft now expects such businesses to use 365, though a local server is still handy for things like local user management, print management, local file shares, or applying group policy if you do not use InTune. Further, there is still plenty of business software that expects to run on Windows Server.

Remote Desktop on Mac failes to connect with 0x207 error

I am setting up a new Mac and got this annoying error from the Microsoft Remote Desktop client.

Worse, a number of people have complained about this error but there is a lot of useless advice out there, and also the bad advice to disable NLA (Network Level Authentication) on the Windows PC. Don’t do that, it is bad for security.

One of the few helpful threads on the topic is this one which point to this article on the subject of how to enable integrated authentication on Mac and Linux using Kerberos. I followed the advice here and it worked though I’m not sure if the ALL CAPS is necessary for the domain, but I used it and it worked – as long as I entered user@ALLCAPS in the RDP username as well.

StackOverflow still delivers, fixes my Rollup.js problem

I hear plenty of complaints about StackOverflow, the developer Q&A site. Top of the list is unfriendliness and/or arguing about whether a question is well put rather than, well, answering the question.

For example, this Reddit post yesterday:

“It’s been three years since a question I posted to SO wasn’t closed within the first ten minutes of posting it and downvoted for good measure (that’ll teach me to use the site like it’s intended!).”

No doubt the complaints have some validity. StackOverflow is a kind of social media as well as a technology site and all social media sites have their problems.

Nevertheless, it remains a wonderful resource.

I am using the AWS Chime SDK for JavaScript in a project. I am using ASP.NET, it is not an SPA (Single Page Application), and it is not using React. The SDK though is primarily designed to be used with Node.js and a bundler like Webpack, fitting I guess with the majority of web applications being built today. The solution AWS provides for developers like myself is presented as a demo called singlejs.  This uses rollup.js to bundle the Chime SDK for JavaScript into a single file that can be used in any plain ordinary web page. A couple of weeks ago, someone got around to updating the demo to use version 3.x of the SDK.

I guess the committer checked that the demo worked and generated a JavaScript file, but did not actually check that it was usable. The way it is meant to work:

In a browser environment, window.ChimeSDK will be available. You can access Chime SDK components by component name. For example, you can create a meeting session and configure the meeting session using window.ChimeSDK.

Unfortunately the newly generated amazon-chime-sdk.min.js did not create this global variable, even though it is specified at the name property in rollup.config.js. I puzzled over this problem and tried to fix it in various ways, using different versions of rollup and the plugins it uses. I noted the problem in a GitHub issue on the relevant AWS repository but no response yet. Since it made it impossible for me to upgrade my project to the version 3.x of the SDK it was a significant problem.

I posted a question on StackOverflow. It did not attract many views, and at the time of writing it has only been viewed 31 times. I was not optimistic.

As so often with these kinds of problems, the fix is super simple. The source file in the singlejs demo, the one which Rollup bundles, has just one line of JavaScript:

export * from ‘amazon-chime-sdk-js’;

Someone popped up, 2 days after my post, and commented:

Update the src/index.js file with the following code and then rebuild the code with npm run bundle. Rollup recommends a default export if we have only single export.

export * as default from ‘amazon-chime-sdk-js’;

Indeed, that fixes it. So thank you to Vishnu S Krish, who for no reward has posted a solution that works, ahead of those busy AWS developers working on the project who have so far ignored it.

Thank you too to StackOverflow. It is imperfect; but it is not full of spam, it is a pleasant site to use and not afflicted by intrusive ads and popups, and it has a ton of good solutions.

Surface 9 Pro with Windows on Arm

I have had a short time with a loan Surface 9 Pro running Windows on Arm.

My review sample came without a keyboard case. I do not recommend this unless you have very specific tablet-y requirements. It is hard to use without a keyboard. This of course means it costs more than it first appears, because the cheapest keyboard is £129.99 inc VAT. Since most people I see using a Surface use it like a laptop, I do wonder about the value of the kickstand design, which harks back to the earliest Surface devices when Microsoft was taking on the iPad. That battle was lost with the failure of the tablet personality in Windows 8. Desktop Windows won; and it needs a keyboard.

image

That aside, it’s a lovely device, great screen, great for video conferencing thanks to the smart camera. AI makes it appear that you are looking at the camera even if you are not. Good feature or deception? I am not sure, but I err more towards deception. It is a hard one though, because when paying attention in video conference you are looking at your video of the speaker, not at the camera, which makes it appear that you are looking elsewhere even though you are not.

Lower energy use than x64, longer battery life. Perfect Windows device? It might be, except that the vast majority of Windows applications are compiled for x64 only. This means some applications might not work, and in other areas there is friction. A contact of mine bought a Surface 9 Pro with the SQ (Arm) chipset for work.  It came with Windows 11 Home on Arm. The tech specs say that “At this time, Surface Pro 9 (SQ® 3/5G) with Windows 11 Home on ARM will not install some games and CAD software, and some third-party drivers or anti-virus software. Certain features require specific hardware … find out more in the FAQ.” Where is this FAQ? It is not linked from the tech specs as far as I can tell. Maybe this is it. Windows 11 Pro not mentioned. My contact should of course have purchased Surface Pro 9 for Business. Windows Home has too many annoyances and limitations to be usable for business.

What to do? Fortunately there is a Microsoft 365 upgrade to Windows 11 Pro, which is a cost effective option. The upgrade was delivered to the Microsoft 365 portal as a license key with a link to an ISO to download. The key did not work. The ISO did not work as it was x64 only. Rumour has it that a Windows 11 Pro ARM build from UUP dump worked fine with the key, even as an in-place upgrade. Maybe Microsoft support could also sort this out. But it is friction, and I doubt it will be the last.

It seems obvious to me that if you want an Arm-based laptop with excellent performance and long battery life, a MacBook Pro is a better option. You can run Windows in a VM via VMware Fusion 13 or Parallels and it performs well. Or if you want a Windows on Arm box for test and development the Dev Kit is a good offer.

There is still a niche for the Surface 9 Pro with SQ, if you are confident that everything you need will run. It is more efficient than an x64 device, and it has 5G. It is a nicely built device even if not the best value. I think Windows on Arm will continue to improve. There is a way to go though before it is really mainstream.