Photo cross-post
Sunday, 18 January 2026 10:24 am![]()
Gorgeous sunset behind Edinburgh Castle and I couldn't decide which of
these photos I took was my favourite.
Original
is here on Pixelfed.scot.
![]()
Gorgeous sunset behind Edinburgh Castle and I couldn't decide which of
these photos I took was my favourite.
Original
is here on Pixelfed.scot.
I am currently ill with my third cold since November. This is very boring, I am blaming uni open ice on Monday with all the students returned to Cambridge from all over the world. I am trying a radical new approach of "stop working, go to bed, do nothing but rest and hydrate and breathe steam at regular intervals". Attempting to push through the last two colds this winter just led to being subpar for days on end and missing a lot of hockey practice, and I really, really don't want that again.
The one hip bruise healed up enough by Saturday night that I could return to sleeping on that side, phew; the other is still making itself known, and is going a truly remarkable range of colours. (me to
fanf: do you want to see my epic bruise?
fanf: absolutely not)
Our trusty Pointer standard bike (not the cargo bike) failed catastrophically in December.
fanf took it to the bike shop for assessment: minimum £350 to repair, it cost £500 new, lo these many years ago, a new bike of similar quality would be £700 now. We thought about it for a bit, and eventually I said Vimes boots theory also applies to bikes and so we'll order the good bike and hope it lasts at least another 15 years.
Warbirds (or Tri-Base 2 I guess these days) had a game in Peterborough Saturday night, and my teammate who lives nearby kindly drove me up, and gave me the cultural experience of visiting a huge Eastern European supermarket near the rink. We lost, again, but the bench atmosphere was good, the opponents were fun to play against, and I was reasonably happy with my play.
I joked in the car about Tony buying an expensive bike as soon as I left the country, and teammate said "uh, can't you use Cycle to Work?" and it turns out yes I can, and in fact the whole process was very straightforward. So now we'll pay for this bike in ten monthly instalments from my salary which brings tax savings but is also way easier to budget. The actual bike hasn't arrived yet, which is leading to some interesting logistics around work and school and who is where with what bike, but this too shall pass.
I may, or may not, be playing a game on Saturday for the uni. It's a challenge game against UCL, with players from both Womens Blues and Huskies, but there are way more players available than needed and the roster is still not out (eh, students). I hope I can kick this cold by then; if I'm not playing I'll do game ops as usual.
https://dotat.at/@/2026-01-13-http-ratelimit.html
There is an IETF draft that aims to standardize RateLimit header
fields for HTTP. A RateLimit header in a successful response
can inform a client when it might expect to be throttled, so it can
avoid 429 Too Many Requests errors. Servers can also send
RateLimit headers in 429 errors to make the response more
informative.
The draft is in reasonably good shape. However as written it seems to require (or at least it assumes) that the server uses bad quota-reset rate limit algorithms. Quota-reset algorithms encourage clients into cyclic burst-pause behaviour; the draft has several paragraphs discussing this problem.
However, if we consider that RateLimit headers are supposed to tell
the client what acceptable behaviour looks like, they can be used with
any rate limit algorithm. (And it isn't too hard to rephrase the draft
so that it is written in terms of client behaviour instead of server
behaviour.)
When a client has more work to do than will fit in a single window's
quota, linear rate limit algorithms such as GCRA encourage the client
to smooth out its requests nicely. In this article I'll describe how a
server can use a linear rate limit algorithm with HTTP RateLimit
headers.
( Read more... )
https://dotat.at/@/2026-01-12-hqlr.html
A while back I wrote about the linear rate limit algorithms leaky bucket and GCRA. Since then I have been vexed by how common it is to implement rate limiting using complicated and wasteful algorithms (for example).
But linear (and exponential) rate limiters have a disadvantage: they can be slow to throttle clients whose request rate is above the limit but not super fast. And I just realised that this disadvantage can be unacceptable in some situations, when it's imperative that no more than some quota of requests is accepted within a window of time.
In this article I'll explore a way to enforce rate limit quotas more precisely, without undue storage costs, and without encouraging clients to oscillate between bursts and pauses. However I'm not sure it's a good idea.
( Read more... )
I had such a good time at the hockey camp with the Women's Blues. 24 skaters and a goalie (plus two Czech goalies joined), and for most of the exercises we were divided by ability into four groups of six. The WBs captains had set the groups and they did a great job, certainly for my group - we were well-matched so the exercises all let us push ourselves without anyone being overwhelmed or left behind. And the coaching team was amazing, again.
We had five ice sessions: an "optional" skate Monday evening, and then two 75-minute training sessions on each of Tuesday and Wednesday. Plus some off-ice and stickhandling, video review, a bonus talk on "hockey IQ" and motivation from one of the coaches, and an optional visit to the nearby swimming pool. The camp posted a great reel from the first day that really captures the feel of it.
( Read more... )
In "ice is slippy" news, I have managed to bruise both my hips in hard falls this week: the left one at hockey camp earlier this week, the right at Warbirds tonight.
For preference, I sleep curled up on one side.
Ow.