Index | Archives | Atom Feed

Monthly Review: May 2020

I'm obsessed with

Planners! I've got a Hobonichi Cousin Avec this year, which is split into two books, one for each half of the year. I only have a month to go before it's time to swap them out, so I'm spending lots of time thinking about how I might want to change things up for the second half of the year.

So far this year I've found sticking ephemera into the daily pages of the Hobo Cousin didn't stop it getting too thick to write in, so I'll probably move all of my ephemera into a completely separate journal …

Monthly Review: April 2020

I'm obsessed with

My health. I've been doing telehealth calls with my doctor recently to figure out some bothersome-but-not-serious issues I noticed around the start of lockdown. It's a nice bonus that telehealth calls are all bulk billed, since I've had a few follow ups.

I'm listening to

Folk pop/rock with lots of banjo! I've been trying out Old Bear Mountain, Clouds and Thorns, Hollow Coves, and Bellowhead.

I'm reading

Pandemic by Sonia Shah

I'm watching

Taskmaster (highly recommended if you like British panel shows—the later seasons are better, but it's all fun)

April goals

I missed my …

Monthly Review: February 2020

I'm obsessed with

Workouts! I've finally started to get back into going to the gym consistently after a lot of disruption to the start of the year. I've started using the GZCL method for my lifting program, and I'm really enjoying having a bit more structure to my weights routine.

I'm listening to

A fair bit of Dance Pop, since I've found it's fun for exercising to.

I'm reading

A Darker Shade of Magic. I gave up on the last two books I started reading, because neither really grabbed me. I'm hoping this one will do the trick.

I'm watching …

Reflecting changing state in SwiftUI Lists and List items

I was struggling with something recently in SwiftUI and thought I'd share the solution I came up with. Here's a simple example to demonstrate what I was stuck on:

struct ContentView: View {
  var tasks: [Task]

  var body: some View {
    List(self.tasks) { task in
      TaskView(task: task)

I have a List showing TaskViews made from Task models. Each TaskView includes a button which will set the task state to completed. When the user taps the button, a network call is kicked off, which changes the task's state on the server. When the network call completes (let's assume it succeeds …

My favourite iOS libraries

Over time I've developed a list of open-source iOS libraries that I use in almost all my projects. These are my favourite, go-to libraries:


Declarative table views! I hate the boilerplate involved in UIKit table views and having to work with index paths to make sure you're acting on the right cell. With TableKit, you have a reference to the cell when you work with it, and most of the design and logic goes inside the cell subclass itself anyway. It's a much neater way to work.


I struggled a lot to get my head around promises at …

Monthly Review: January 2020

I'm obsessed with

Social events! Early in the month I decided to double down on my goal of getting more social in 2020 and threw myself into a bunch of new social events and activities. The upsides were that I got a lot more exercise from being out and about more, which helped me sleep better, and I also found that string a lot of events together without big gaps in-between helped me capitalise on the buzz of each one to be more confident going into the next. On the other hand, it quickly became exhausting, and I felt like …

Monthly Review: December 2019

My review's a bit late this month—oops! I'm also experimenting with a different format since there's very little to my reviews normally. So let's start with a few things I've been into lately:

I'm obsessed with

Cooking! I'm watching Bon Appetit Test Kitchen videos all the time and I'm trying lots of new recipes. I'm feeling more confident about my ability to attempt different recipes or techniques, and haven't had any major disasters to put me off so far. I'm most excited about my efforts with dough of all kinds: brioche, ciabatta, pizza, breakfast biscuits, and croissants coming up …

Competing values

I've been thinking a lot lately about how personal values, interests, and hobbies often clash. Pick any value or interest you have and you'll probably find a group of people talking about it online. For most of my own average, mainstream, privileged interests, there are people on every social media platform talking about them, teaching others what they know, even trying to make money from others with the same interests.

But these communities tend to be very one-sided. They focus on the interest or value at the exclusion of all else. If you're selling courses, books, videos, or physical products …

2019 review

2018 review. All annual reviews.

(Side note: every year as soon as I publish my annual review, I start a new Markdown file for my review of the next year. Throughout the year I add achievements, details about goals I've accomplished, and favourite media, so getting the review ready to publish is much easier. I definitely recommend this approach!)

Here's a quick summary of 2019:

  • My main aim was to have fun and enjoy spending time with Josh. Having a puppy had added a lot of stress and tension to our lives, and though I still miss our dog a …

Thoughts on my 2019 learning project

I tried writing a couple of updates for my blog as I worked on my 2019 learning project, but once I'd written them they didn't seem worth sharing; there just wasn't a lot worth saying about the process. Now that I'm done, I wanted to share a few thoughts on how it went.

But first, a quick recap:

I wanted to try learning something new while I was on a break from work over the holidays. I decided to focus on web development, so my learning project consisted of:

  1. A reading list of articles and tutorials about HTTP, SSH, networking …

© Belle B. Cooper. Built using Pelican. Theme by Giulio Fidente on github, edited by Belle B. Cooper. Theme inspiration from Jordan Smith and DuoTone snow theme.