If you find yourself in the are of Chiddingstone, just North East of Ashdown Forest, go to The Tulip Tree Tea Rooms.
]]>I've pulled the trigger on a pair of Sonos speakers, I will hear only half of a podcast whilst cleaning the house no longer!
The weeks don't get less stressful, going in circles on a bike is the answer.
My old desktop computer is now an Unraid server. The assumption that 10 year old hardware could handle most tasks was a bad one but at least I've managed to replace two raspberry pis with a massive energy hungry computer tower.
]]>Priority one incidents are stressful, especially when they're at 4pm on a Friday.
]]>OS maps has a very loose definition of what a path is - note to self: watch those contour lines. Megan will need a bit of convincing before coming on our next hike. This was our route if you're ever near Tryfan/Ogwen Cottage and fancy a big day out. I have editted in a diversion around the hair raising descent we took down Glyder Fach.
We are in Snowdonia this weekend staying in a quarryman's cottage. The doorframes are very low and I'm having to remember to stoop through them. This has resulted in several solid thwacks to the head. Being tall might help on Hinge but it can't be worth the ever present threat of smashing your head into doorframes.
The purpose of this trip is to meet some Duck Tolling Retriever puppies, which were the strangest mix of cute, sharp, and incontinent.
]]>The ultimate combination of sweets for on the bike: Candy Kittens Shox and dried mango. Shove handfuls into your face at a rate of 60-80 grams per hour.
Tubeless tyres are one of the biggest cons going in bikes. My rear wheel didn't seal on the road and hasn't sealed the two times I've topped up the sealant since getting home. The hole is tiny. Save yourself the effort and throw tubes in.
I've started reading The Staff Engineer's Path. The start takes you through drawing out maps of your organisation. It's an incredibly useful activity I wish I'd done a year ago and will repeat in any future positions. I'm going to read The Manager's Path next to really put myself on the fence with deciding what I want to do with my life.
]]>Simon P sent me another article this week, AWS as a Framework. I also found this on comparing Lambda cold starts between different runtimes.
A new How I write HTTP services in Go dropped.
]]>I've started reading A Thousand Splendid Suns. It's fast paced and engaging; I'm already half-way through. There are overlaps with the landmarks mentioned in The Places in Between which adds to the read.
]]>First big day on the bike on Sunday. The Chilterns are much more rural than Surrey which resulted in a severe lack of cake half way round. Roast at the pub in Hedgerley was good, huge selection of ales, can recommend.
]]>I am still obsessed with "Inside" on Netflix. The songs were bouncing around my head for the whole of my cycle to Hastings.
Cycling has taken over my life. Suffering now so I don't suffer more in France is the plan. I'm suffering a lot.
I joined a new team in customer products. We write week notes and have an open wiki for communication internally. I've never worked in a team that does this before but I'm quite interested in how we build our comms processes.
One of the first things I've gone for is creating a definitions page in the wiki. We discovered assumptions and terms we either had completely different definitions for or couldn't define at all very quickly. Highly recommend you try it out.
I was promoted to Senior 2.
I just moved over to Community Fibre and discovered a gotcha that will cost me about £200 over the next two years.
If you want a public IP, or if you want an IP that's not behind carrier grade NAT (CGNAT), and you're with Community Fibre make sure you get a 500 Mbps package or above. I went for 200 Mbps, waited for three weeks until my Virgin contract ended, discovered this and was told I couldn't get introductory offers after the 14 day grace period. That's an eight pound difference every month for two years that they wouldn't negotiate on at all.
Why would you want a private IP? So that you can forward ports to devices internally. If you're behind the CGNAT you can forward ports on your router's NAT all you like and it won't work because the CGNAT isn't forwarding them to you.
If you want to use IPv6 from Community Fibre with your Unifi device, an Ultimate Dream Machine (UDM) in my case, you will have to do some setting tinkering and stay in contact with Community Fibre.
Community Fibre can sometimes have too many MAC addresses registered which "blocks" allowing more to be added to your account. Weird bug but that means you can't get your router to work with IPv6 and you need to contact them to clear them out.
First thing you need to do is enable DHCPv6 and give the router the prefix delegation size which is 48 for Community Fibre. This doesn't seem to be published on their website but is mentioned in a talk they did here with slides here and discussed in this forum post.
You then need to go to the networks you want to have IPv6 and enable it there as well. The settings you want are "Prefix Delegation", enable "Router Advertisement", throw in an IPv6 DNS server of your choice if given the option.
Once you've done all that you now need to do the following:
Day 6: Turns out if you're making yourself an integer indexed hashmap you should just use an array.
Day 6: Arrays in Rust have a great rotate_left
method to shuffle the entries around. It's brilliant.
Day 8: I'm discovering there is no shame in looking up the odd answer. Got to fail a few times before you succeed.
Day 9: I had completely forgotten about &mut
, or mutable references, arguments to functions. Once a colleague mentioned these I was able to turn my iterative solution into a recursive one.
Day 10: The difficulty of yesterday resulted in a JavaScript solution today.
Day 11: Back to recursion and a successful Rust answer with parts borrowed from day 9!
Day 12: This is incredibly hard and I'm now ill. Advent of code may need to wait a while.
Day 1: The functional parts of Rust are helpful. Itertools has loads of additional functionality for them, such as tuple_windows
.
Day 2: Another opportunity for iterators. fold()
ing an iterator is very similar to Array.prototype.reduce()
in JavaScript.
Day 3: An opportunity to use bitwise operators that flew so far over my head it was barely visible. Time to read more about bit shifting and bitwise operators. The borrow checker made things difficult today.
Day 3: I saw a solution that used partition()
to turn an iterable into two vectors based upon a function producting a boolean.
Day 3: BitXor (^
in Rust) is a fun opertor is you want to invert a bit based on a boolean. I went straight in with &
which was the wrong thing.
Day 4: Vectors have a retain
method which takes a boolean returning closure and removed entries in place. Really handy.
I went back to doing a bit of JavaScript. This is the first time I've come back and been frustrated by some aspects of the language. Do you want a for..of
loop or a for..in
loop? No idea, time to open DuckDuckGo again. It's a right pain.
Day 5: The borrow checker realised I had got it wrong before I did. I'm really enjoying using Rust and can see why it's so popular in developer surveys.
Day 5: If you want to iterate over a range in Rust you type something like this: 2..=4
which will give you an iterator with the values 2, 3, 4
. If you want to go backwards you can't give it this: 4..=2
. It won't iterate at all and you won't know why your Advent of Code solution isn't working. You need to use 2..=4.rev()
. This is slightly annoying.
Advent of code has encouraged me to start LeetCode again. Send help.
My TODO list of things I want to cycle next year is growing. The Dunwich Dynamo looks great.
Everywhere went from very hot to very wet very quickly.
]]>The East Coast is next on the agenda.
]]>Transport for Wales decided to do works this weekend so no cycling. I will be back to tick off the top 100 climbs around Snowdonia.
Ordnance Survey have an exceptional app. £25 a year and you have everything. Highly recommend.
Number.prototype.toFixed()
returns a string. And this is why.Ingredients
Steps