Building a Family Week Planner

Building a Family Week Planner

“Are you home Thursday night, or do you have yoga?”

“Are the kids going anywhere this weekend?”

“I’m sure I mentioned that!”

I’ve wanted to build a family week planner for ages that puts everyone’s week on a easy to read screen somewhere in the house. Maybe somewhat surprisingly, I’m not a big fan of home automation or a “smart” house, so I don’t want this thing to alert me in the morning that “Today J has five appointments blah blah”. I just want to be able to look at it every now and again and see what’s coming up.

I used to run an Exchange server for all my various email accounts, and that was good, but it started becoming an issue with out-of-date software. The option to move to O365 was there, but it feels expensive, especially since several of the accounts are for the kids and aren’t “serious” mailboxen.

I spun up a cheap (US$10/month) Ubuntu server on Linode and ran the setup script for Mail-in-a-Box, which has worked (touch wood) nearly perfectly since. The issues so far have been pretty minimal. Microsoft was blocking my IP address for all Outlook-themed email services (,, etc), but emailing them asking them to stop worked. When I reboot the server, the Outlook app on an iPhone stops syncing, and the account has to be removed and re-added. I also need to figure out how to make it send calendar invites properly over email.

Considering I have about 10 mailboxen on there, I’m way ahead in terms of cost.

The Mail-in-a-Box script installs NextCloud (an OwnCloud fork), which has a WebDAV implementation for calendar and contacts.

Step 1 for getting a week planner up will be to figure out how to interrogate the CalDAV server with some sort of programming language. I’m comfortable with PHP, so that’s what I’m going to do it with. Specifically, using cURL from PHP and then stuffing the results into an array to display later.

A bit of reading and digging in the WebDAV standards has lead me to being able to grab calendar entries for an account on the serer with the following command:

curl --request REPORT --header "Depth: 1" --header "Content-Type: text/xml" --data "<c:calendar-query xmlns:d='DAV:' xmlns:c='urn:ietf:params:xml:ns:caldav'><d:prop><d:getetag /><c:calendar-data /></d:prop><c:filter><c:comp-filter name='VCALENDAR'><c:comp-filter name='VEVENT'><c:time-range start='20210218T000000' end='20210225T000000'/></c:comp-filter></c:comp-filter></c:filter></c:calendar-query>" --user nextclouduser:nextcloudpass

The time-range field will limit the calendar entries that will be grabbed based on the starting-time.

This spits forth a large blob of data that will be interrogated later.

There will be tricky things to over-come like multi-day events and the like, but based on some work I’ve done previously with a calendar and loading events, I think I have a plan.

That’s step 1 done.

Step 2 to come.

Medium Format Scanning

Medium Format Scanning

Finished Product

I’ve been meaning to building a medium format scanner for a while now. I had a dodgily cobbled together one that was difficult to use, and because things didn’t quite line up, the backlighting was quite uneven. I woke up with the solution just the other day, went to my local hardware store to pick up the few things (60, I think) that I’d need. Here’s what I bought, enough to build a ~290 mm x ~290 mm scanner (which has a useable area, depending on your lens (I’ll get to that later), big enough for a 4″ x 5″ negative (but probably an 8″ x 10″, too):

1 x sheet of 600 mm x 1,200 mm 12 mm plywood
4 x 1,200 mm long M10 threaded rods
40 x M10 flanged nuts (or normal nuts and washers, doesn’t matter)
Some wood-screws (I ended up needing 9 – just get a box)
White plastic chopping board, at least 260 mm x 260 mm
2 x 5/16″ coarse threaded bolts (you’ll probably need to cut them to get the right length)
A pane of glass (go to an op-shop and buy some old frames for a couple of bucks each)
Wood glue

The tools I used:

Various drill-bits
90° square
Angle-grinder (optional – I used it to fix an issue I created for myself)
Measuring tape

Using the tablesaw, cut the plywood sheets into squares as big as you can/want/need. You need 3 at the very least, depending on a few things. I ended up using 5, but I will, down the track, replace one of them with a larger piece of chopping-board without a plywood frame.

Drilling the corner holes
A square hole cut

Drill a 10mm hole in each corner of the squares. Exactly where you choose in the corner doesn’t matter too much, but make sure you’re consistent. I used a 90° angle clamped to my drill-press to act as a jig.

Measure roughly the distance between edge and centre of the drill-hole and double it and draw a square here, to cut out with the jigsaw. Drill corner holes and cut in a straight-ish line between them.

Measure the distance from the bottom of the remote flash-shoe to the centre of the flash head. Measure the distance from the centre of the lens on the camera to the bottom of the camera body. My flash was taller than half of the rectangle, so it had to be mounted on a 45° angle.

Place your flash in roughly the right spot on one of the square boards and trace around it with a pencil. Cut this section out, leaving a gap so you can get to the underside of the flash and pop the flash off to easily adjust settings and the like. Glue and screw a small piece of plywood the right distance from the centre of the board. Drill a 6mm hole in it, and mount the remote flash shoe here with a 5/16″ screw cut to the right length.

Flash Shoe in place
Camera in place

Mark the centre of another square board and mark the distance from the centre of the lens to underside of camera. Cut a hole large enough for the lens to easily fit through. With some off-cuts of ply glue and clamp a decent chunk of them together to give the camera a strong platform to be screwed to. Once the glue has dried, drill a hole in a suitable location and attach to board lining it up with the base-of-camera line. (I’ve just noticed my camera isn’t quite square…will have to fix that).

Cut a hole a bit smaller than the size of your chopping board/diffuser for the and screw the diffuser to it. My next step will to find a chopping board large enough to not need a wooden frame around it.

There’s going to be a lot of turning of nuts coming up. If you have a soft wheel you can attach to a drill, this will make life a lot easier. See my method here:

Now it’s just a matter of assembling the tower.

Drive the screws onto the threaded bar to the right level, and use a spirit-level (or measuring tape) to make sure each level is…er….level.

From the bottom up it goes:

Flash -> Diffuser -> Empty Square -> Second Empty Square (Optional – explanation below) -> Camera at the very top.

The reason you might want a second empty square, is if you’re doing a lot of 4″ x 5″ negatives, and a lot of 6 cm x 7 cm negatives, you can have them at the right distance from the camera to maximise how much of the negative there is in the frame.

You’re done! Clamp the negative between the sheets of glass and snap a photo. It will need cropping and inverting, but there are hundreds of ways of skinning that cat, so to the Google Machine for that.

Result – Negative from sometime in 1960.
Wienerbr(ö|ø)d – Attempt #4

Wienerbr(ö|ø)d – Attempt #4

I remembered. Into the fridge every two turns. Unfortunately, because I followed the recipe (now edited) in my previous attempt, I screwed up the ratios and had to kinda wing it. I baked at 180°C, which seemed pretty good.

Things to research for next time(s):

  • Do I need a stronger flour? Weaker flour?
    • Stronger is easy – I just add some gluten flour into the dough. I will try that first.
  • Should the dough be less hydrated? More hydrated?
  • Should I try an even slightly cooler oven? Or hotter?
Wienerbr(ö|ø)d – Attempt #3

Wienerbr(ö|ø)d – Attempt #3

I failed. Again.

Which, I guess, is to be expected, because wienerbröd are notoriously difficult to do well. I also didn’t do the FIRST thing I said I was going to do differently the last time, which was to chill the dough between turns.

I do think, however, I have pretty good dough ratios. 1 egg, 200 100 ml milk, 240 g flour, 20 g sugar, 1 pinch of salt. 250g butter for rolling into the dough.

Don’t let me forget to chill the dough next time.