46 changed files with 522 additions and 18 deletions
+7
View File
@@ -332,6 +332,13 @@ declare module 'astro:content' {
collection: "blog";
data: InferEntrySchema<"blog">
} & { render(): Render[".mdx"] };
"year2025.mdx": {
id: "year2025.mdx";
slug: "year2025";
body: string;
collection: "blog";
data: InferEntrySchema<"blog">
} & { render(): Render[".mdx"] };
};
};
+12
View File
@@ -4,6 +4,7 @@ dist/
# dependencies
node_modules/
.yarn/install-state.gz
# logs
npm-debug.log*
@@ -18,3 +19,14 @@ pnpm-debug.log*
# macOS-specific files
.DS_Store
# Devenv
.devenv*
devenv.local.nix
devenv.local.yaml
# direnv
.direnv
# pre-commit
.pre-commit-config.yaml
+5
View File
@@ -1 +1,6 @@
approvedGitRepositories:
- "**"
enableScripts: true
nodeLinker: node-modules
+3 -1
View File
@@ -1,9 +1,11 @@
FROM node:18 as build
FROM node:22 as build
WORKDIR /app
COPY package.json package.json
COPY .yarnrc.yml .yarnrc.yml
COPY yarn.lock yarn.lock
COPY tsconfig.json tsconfig.json
RUN corepack enable
RUN yarn install
COPY src ./src
+12 -3
View File
@@ -2,13 +2,23 @@
This website is built using [Astro](https://astro.build)
## CI
For building the image on the server, the command to use is
```bash
devenv tasks run news:build
```
After that, a Caddy image will serve the files generated in the `dist` directory
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :--------------------- | :------------------------------------------------- |
| `npm i -g yarn` | Installs yarn (if needed) |
| :------------------------ | :------------------------------------------------- |
| `npm install -g corepack` | Installs yarn (if needed) |
| `yarn` | Installs dependencies |
| `yarn dev` | Starts local dev server at `localhost:3000` |
| `yarn build` | Build your production site to `./dist/` |
@@ -40,7 +50,6 @@ There's nothing special about `src/components/`, but that's where we like to put
Any static assets, like images, can be placed in the `public/` directory.
## 👀 Want to learn more?
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
Executable
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
if command -v yarn >/dev/null 2>&1; then
echo "yarn is available"
else
echo "yarn is not installed" >&2
exit 1
fi
yarn install
yarn build
+65
View File
@@ -0,0 +1,65 @@
{
"nodes": {
"devenv": {
"locked": {
"dir": "src/modules",
"lastModified": 1787952362,
"narHash": "sha256-2vxVcc2CO7ihRRqg1OuqsVnOAoQ+kaRu7829hN44xLs=",
"owner": "cachix",
"repo": "devenv",
"rev": "eeced8155ca9d573f5f3e22cbe925e7fbe4e761b",
"type": "github"
},
"original": {
"dir": "src/modules",
"owner": "cachix",
"repo": "devenv",
"type": "github"
}
},
"nixpkgs": {
"inputs": {
"nixpkgs-src": "nixpkgs-src"
},
"locked": {
"lastModified": 1787753358,
"narHash": "sha256-Tl77VbWyAKrOfRNQhL6JbQtb/MLzbYa/1RG1gWWfICk=",
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "256551e45f6303e142ab4a98be1bf243feb77dc0",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "rolling",
"repo": "devenv-nixpkgs",
"type": "github"
}
},
"nixpkgs-src": {
"flake": false,
"locked": {
"lastModified": 1787394516,
"narHash": "sha256-pRGOQSClnXNI2iLUG6DYpsGvYcuw0drOutVZFTJNw90=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c8f90650c15282fa8656a041bfbbd2403997a9a7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"devenv": "devenv",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}
+19
View File
@@ -0,0 +1,19 @@
{ pkgs, ... }: {
languages = {
javascript = {
enable = true;
package = pkgs.nodejs_22;
yarn = {
enable = true;
package = pkgs.yarn-berry;
};
};
};
tasks."news:install" = {
exec = ''yarn install'';
before = ["news:build"];
};
tasks."news:build" = {
exec = ''yarn build'';
};
}
+18
View File
@@ -0,0 +1,18 @@
# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json
inputs:
nixpkgs:
url: github:cachix/devenv-nixpkgs/rolling
# If you're using non-OSS software, you can set allow_unfree to true.
# allow_unfree: true
# If you're not willing to allow unsupported packages:
# allow_unsupported_system: false
# If you're willing to use a package that's vulnerable
# permitted_insecure_packages:
# - "openssl-1.1.1w"
# If you have more than one devenv you can merge them
#imports:
# - ./backend
+1 -1
View File
@@ -80,7 +80,7 @@ It is hard to paint a tube with a brush. It looks _okaayy_.
]} />
If we knew what we knew now, we'd have either bought the legs already ✨bling✨ed, or been satisfied with the legs as they were. It wasn't really worth the amount of effort we had to put in to change them.
If we knew what we know now, we'd have either bought the legs already ✨bling✨ed, or been satisfied with the legs as they were. It wasn't really worth the amount of effort we had to put in to change them.
As of yet, we haven't seen the photos on their website, but we'll let you know when we have!
+2 -2
View File
@@ -60,7 +60,7 @@ In the span of a day and a half, Simon and Will installed everything: our shower
]} />
The silicon was still curing as we left to head off for Christmas, but when we get back we'll be able to have the first test shower! An excellent Christmas present to us 🎁
The silicone was still curing as we left to head off for Christmas, but when we get back we'll be able to have the first test shower! An excellent Christmas present to us 🎁
Of course, it's still only done\*. There are some bits of paint which need a touch up, we still need to find a light for above the sink, and we want to add some hooks and decorate a bit.
@@ -140,7 +140,7 @@ Well, we're basically plumbing experts now - why not break out the pex pipes and
We asked Simon for his advice, and he suggested soldering some extra copper pipe on, with a collar to join over the gap. This was a bit more than we were prepared for (or had the tools for!), but Simon offered to do it for us. We were fortunate he was there!
<Callout title="💡 Simon's Top Tip for Soldering 💡">
The important bit is not to set things on fire
The important bit is to not set things on fire
</Callout>
Not all of the pipes required extending. The ones that didn't, however, had a different challenge in the form of an olive. These are rings of copper or brass which compression fit when you tighten the bolts between the valve and the pipe. To get a new valve on, we had to take the old olives off without damaging the pipe. This involves sawing through part of the olive (but not the pipe), then turn a screwdriver in the resulting groove to ping it off (with suitable eye protection).
+1 -1
View File
@@ -152,7 +152,7 @@ In the end I think we're going to end up with the same approach as everyone else
## Cat cat cat
We were surprised one day to enter our kitchen and see a not-ours cat casually sat there. Argh. We really don't want territorial disputes inside our house thank you. As a result we have installed a microchip operated cat flap, and are in the process of trying to coax the cat to use it. The whirring of the catch has been putting her off, but we think she's slowly getting there.
We were surprised one day to enter our kitchen and see a not-ours cat casually sat there. Argh. We really don't want territorial disputes inside our house thank you. As a result we have installed a microchip operated cat flap, and are in the process of trying to coax our cat to use it. The whirring of the catch has been putting her off, but we think she's slowly getting there.
## Outro
+1 -1
View File
@@ -220,4 +220,4 @@ Let us know if you want any gutters inspected 😄
See you all next year!
<NextPrev prev="year2023-1" />
<NextPrev prev="year2023-1" next="year2025" />
+262
View File
@@ -0,0 +1,262 @@
---
layout: ../../layouts/LayoutMdx.astro
title: "2025 - don't look at the publish date"
date: 2026-08-29
dir: year2025
image: spare-done2
description: we forgot to write the blog on time
---
import { generateImageHyrdationFunction } from "../../utils";
export const s = generateImageHyrdationFunction("year2025");
import Cards from "../../components/Cards.astro";
import Callout from "../../components/Callout.astro";
import NextPrev from "../../components/NextPrev.astro";
import Quote from "../../components/Quote.astro";
Oops.
We forgot to write the blog.
Here is the latest installment of the house news blog, only a little bit backdated.
# Blob or tube
Previously when doing up our guest bathroom, we cunningly didn't draw attention to the dodgy looking ceiling wires in our photos.
<Cards
images={[
{ title: "Dodgy looking wires cunningly omitted from previous photos", src: s("bathroom-wires") },
]}
/>
We had said:
<Quote person="Nikki and Ozzy" date="Dec 2022">
Of course, it's still only done\*. ... we still need to find a light for above the sink
</Quote>
This year, right on time, we can finally call this room actually done done!
We found it pretty difficult to find a light fitting we both liked. Nikki likes the more traditional and stylish options and Ozzy has to lump it. (bad taste)/(a better joke).
Our shortlist was between 'Blob' and 'Tube'.
<Cards
images={[
{ title: "Blob", src: s("blob") },
{ title: "Tube", src: s("tube"), },
]}
/>
Blob or tube? Blob? Or tube?? A tricky decision.
What then followed was a philosophical debate as to whether all matter in the universe can be split into blob and tube. (We were also reminded of Ozzy's friend Chris' opinion that the only real colours are blue and brown, and all other perceived colours are just a shade of blue or brown.)
This however raised more questions than it answered.
If a single spaghetto is a tube, is a bowl of spaghetti blob or just many tube?
Do tubes have to have a hole to be a tube or are they topologically just blob?
Is a sponge a blob or a tube?
Where is the cut off point for a long potato to be tube rather than blob?
What about Mike Oldfield's Tubular Blobs?
<Cards
images={[
{ title: "Blob or tube?", src: s("bathroom-light2") },
]}
/>
We ended up going with blob.
<Cards
images={[
{ title: "Done", src: s("bathroom1") },
{ title: "And done", src: s("bathroom2"), },
]}
/>
# Bits and bobs (or should we say blobs)
We also got some smaller jobs done. In no particular order with no particular fanfare:
We added a block to the floorboard in the lounge that had no support underneath. Previously we had stopped people from stepping on it by covering it with a sofa.
<Cards
images={[
{ title: "Bit less wobbly to stand on", src: s("floorboard-block") }
]}
/>
We added a doorknob to the back door, and added some brass doorknobs to replace the plastic ones on the top floor. (sprinkling of knobs through the house?)
<Cards
images={[
{ title: "Plastic knob 👎", src: s("knob-old") },
{ title: "Knob!", src: s("knob1") },
{ title: "Knob!", src: s("knob2") },
{ title: "Knob!", src: s("knob-kitchen") },
]}
/>
We got our lounge fireplace swept so we can have occasional fires on cold nights, on which we could toast marshmallows. We haven't had many yet as the weather has been very mild over winter this year. Also Nikki misremembered marshmallows as being better than they are. Ozzy never liked them to begin with.
<Cards
images={[
{ title: "Nice and cosy", src: s("fireplace") }
]}
/>
To no one's surprise we have not kept up with the watering schedule for our balconet herb garden and they mega died over the summer while we were on holiday. (Lasted pretty well though, considering!) We got some herb pots for inside so we can just get new living herbs from the supermarket every time they die, which is frequently. We have yet to tidy the balconet planters.
(Pictures of herb pots)
# Curtain poles
We have not had the best experience with attaching heavy things to our walls. No matter what we tried, the wall plugs would steadily be pulled out of the wall. We tried little plaster cloths, we tried matchsticks. It worked okayyy.
But one day we realised our bedroom curtains weren't fully attached when they fell off the wall, while we were trying to get to sleep. Argh!
<Cards
images={[
{ title: "Argh!", src: s("curtains-argh1") }
]}
/>
We decamped to the spare room while we tried some heavier duty ways to affix the poles. We found a more hardcore filler, refilled the holes, waited like a week for it to cure, and reinstalled the curtains. Nearly! To make extra double sure they wouldn't fall off again we also added metal brackets to share the load among more wall plugs. Finally success. It doesn't look the nicest but at least it has not budged since.
Then we found out the spare room curtains were coming off the wall as well. We used the same heavy-duty filler with those and again, no budging since.
# Spare Room
Our main progress since our last update was to improve the spare room. When we moved in, our priority was to get it feeling more habitable as soon as we could. We steamed the wallpaper off and painted it contract white and said 'good enough for now', with the intention of decorating properly at a later date.
[The Spare Room As Was](/week4#guest-room)
What really sped up our decision to redecorate was that the radiator stopped radiating, and we had guests booked to come over in the wintertime.
As it's a north facing bedroom, we are leaning into the cosy with a nice muted red-brown. No paint bombs have been invented yet, unfortunately.
<Cards
images={[
{ title: "Painty painty", src: s("spare-paint1") },
{ title: "Painty painty", src: s("spare-paint1andabit") },
{ title: "Painty painty", src: s("spare-paint2") },
{ title: "Painty painty", src: s("spare-paint3") },
]}
/>
Next on the list was leaning into the cosy by fixing the heating.
The issue with the radiator was that the TRV had seized up, and it wouldn't be possible to just replace it like for like. The old radiator had imperial tails, and a replacement TRV would be too far away from the existing pipes. We took the opportunity to get a nice new radiator with a standard radiator tail and standard TRVs.
There's a nice-looking radiator shop just down the road from us, so we decided to go with them. Support local and all that. But when they quoted us £600 to plumb the new radiator in (radiator not included) we thought they were having a laugh and what's the worst that could happen if we just did it ourselves.
<Callout title="Did you know?">
Nikki and Ozzy are VERY optimistic. They have never yet had a fun plumbing experience.
</Callout>
First we mounted the new radiator on the wall. This was the easy bit.
<Cards
images={[
{ title: "Taking the old radiator off", src: s("spare-radiator1") },
{ title: "Painting behind, installing the brackets", src: s("spare-radiator2") },
{ title: "Hanging the new radiator not on the wonk", src: s("spare-radiator3") },
]}
/>
What came next was a lot of plumbing research using the good old school of youtube.
Armed with our new expertise, we went to Screwfix to buy a big blowtorch. What followed was a lot of practice to solder pipe together without leaks. We had also remembered our tips from Simon as to how to solder pipe.
<Quote person="💡 Simon's Top Tip for Soldering 💡" date="Dec 2022">
The important bit is to not set things on fire
</Quote>
In particular, we also recalled why you don't vertically wire wool the pipe to clean the end in preparation for the solder.
(Diagram of why to not vertically wire wool a pipe)
We practised so much that we had to go back to Screwfix to get more pipe and couplings, and to get better flux and solder. The Baby's First Flux and Solder supplied by the kit was absolute rubbish. Maybe it's a ruse by Big Solder to get you to hire actual plumbers.
<Cards
images={[
{ title: "Practising", src: s("spare-plumbing1") },
{ title: "Making a very long practice pipe. Pipe bending practice in the background", src: s("spare-plumbing3") },
]}
/>
Practice makes perfect! Or at the very least makes less terrible.
We also needed to bend the pipe to accommodate the slightly wider combined width of the radiator and new TRVs. We practised this too. The trick for a dogleg is to draw a line on the pipe bender so your second bend is the same angle as the first. It's also important to be sure you're bending in the same z axis.
<Cards
images={[
{ title: "Putting our practice to the test. Scary stuff!", src: s("spare-plumbing2") },
]}
/>
We refilled the system and monitored our handiwork for leaks, but there weren't any, which felt a bit wrong considering how plumbing in our house usually seemed to go! Everything seemed to go just a bit too smoothly.
<Cards
images={[
{ title: "Done!", src: s("spare-radiator4") },
]}
/>
Quids in. Nice and toasty warm.
We also decided to switch out the switches and sockets for some new ones. We didn't want to go with the sockets we normally go for (cheap white Screwfix multipacks) as it wouldn't go, so Nikki decided to plump for some fancier ones. These are made by the same people as our 'invisible' kitchen island sockets, which, invisibility or lack thereof aside, are really very nice to use. The toggle light switch in particular is very fun to fiddle with.
<Cards
images={[
{ title: "fiddle fiddle fiddle", src: s("spare-sockets") },
]}
/>
The trouble with these fancier sockets and switches is that they require a deeper than standard backbox for a flush faceplate. Ozzy spent a lot of time hunched over the sockets with a brick bolster. Thanks Ozzy!! Would we do this again? Ozzy is less keen than Nikki, that's for sure.
Last of all, we scheduled in our favourite carpet shop to replace our least favourite carpet. In preparation, we went around and nailed down all the squeakiest floorboards and did a final coat of paint around the bottom of the skirting.
<Cards
images={[
{ title: "Carpet installed", src: s("spare-carpet") },
{ title: "Furniture back in", src: s("spare-done1") },
]}
/>
The new carpet is so soft to walk on.
They had to trim a little off the bottoms of the doors to account for the increased carpet thickness so we now have 100% more openable doors! Not that we needed to, but it's nice to have the option. We have a door wedge to keep it shut again.
We also managed to find this armchair in a local shop which just happened to be on sale, down from ludicrously expensive to actually worth getting. The colour is a perfect match! It's great quality too, very comfy to sit in, perfect for relaxing and reading.
<Cards
images={[
{ title: "Armchair", src: s("spare-done2") },
{ title: "All done", src: s("spare-done3") },
]}
/>
Done*. Asterisk of course. We had some other ideas for this room, maybe a desk or bureau and shelves, maybe a larger and comfier headboard, maybe a floor lamp for reading, but as always, other worse rooms are being bumped up the priority list for what we might tackle next.
# Thoughts
We were pretty pleased to finally have a nice uneventful plumbing experience in our house for once.
It's also really nice for us to have finally done a room ourselves to a higher standard. The nicest parts of our house are still the bits we got others in to do for us.
See you next time, when we remember.
<NextPrev prev="year2024" />
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -2,7 +2,7 @@
# Manual changes might be lost - proceed with caution!
__metadata:
version: 8
version: 9
cacheKey: 10c0
"@ampproject/remapping@npm:^2.2.0":