Caesar Salad
2 minutes readYears ago there was this iPad app called “The Best Ceasar”, some bloke thought it was a good idea to make one whole app just about one recipe… he was right. The app is long gone but here is the gist of the recipe as far as I remember it.
Dressing
Ingredients
- Anchovies
- Garlic
- Worcestershire Sauce
- Red Wine Vinegar
- Olive Oil
- Parmesan Cheese
- Salt
- Pepper
Preparation
- Smash the anchovies in a bowl into a fine paste.
- Press in 3 cloves of garlic.
- Add a dash of olive oil (depending on how oily your anchovies are).
- Add a table spoon of Worcestershire sauce.
- Add a table spoon of red wine vinegar.
- Add salt and pepper to taste.
- Mix it all together.
- Add in parmesan to obtain a thick-ish dressing.
Croutons
Ingredients
- Bread
- Olive Oil
- Garlic
Preparation
My current go-to recipe is to:
- Press garlic into a bowl of olive oil.
- Baste bread slices with the garlic oil.
- Put the slices in an oven until crispy.
- Cut the toasted bread into croutons.
Chicken
Ingredients
- Chicken Breast
- Salt
- Pepper
- Olive Oil
Preparation
If the chicken breast is thicker than about 15mm, cut it in half (to make it thinner).
- Pre-heat the oven to 200ºC (or 180 with fan on).
- Salt and pepper the chicken.
- Put some olive oil in a pan and heat it at high temperature.
- Sear the chicken on all sides until golden on the outside.
- Put the chicken in the oven, cook until the inner temperature is a bit under 75ºC.
- Dice the chicken.
Serving
Wash and dry (as much as you can) a couple of heads of romaine lettuce. Add the dressing and toss it properly. Mix in the chicken and croutons, toss it again, sprinkle with more grated parmesan.
How to Get the Local IP Address of an Apple Watch
One minute readThe Apple Watch does not display its local IP address in the settings for some reason. Here is one way to get it, if you have a second Mac on the network.
- Open terminal on the mac, run
python -m SimpleHTTPServer
. - Get your Mac’s local IP address (option+click on the network icon in the toolbar).
- Send yourself an iMessage with text
http://YOUR_MACS_IP:8000
. - Turn WiFi off on your iPhone. This is important because the Apple Watch can use your phone’s WiFi.
- Open Messages on your watch, find the message, tap on the link.
In the terminal on your Mac you will see something like
192.168.0.21 - - [12/Oct/2021 12:00:00] "GET / HTTP/1.1" 200 -
.
And there you have your Watch’s IP address.
Carrot Spice Muffins
One minute readI’ve been trying baking lately but making a large cake badly and then eating it isn’t much fun. Here is a recipe for a great muffin instead:
Ingredients
I’m using espresso cups for measurement, these doses are for four small muffins. Multiply as necessary.
- One and half cup of plain wheat flour
- One cup of brown sugar
- One cup of grated carrots
- About 25g of unsalted butter, softened at room temperature
- A spoonful of apple sauce
- One teaspoon of cake spices—this one in particular is a mix of dried orange, cassia, ginger, nutmeg and caraway from M&S
- One large egg (separate yolk from white)
- One teaspoon of baking powder
Preparation
Start by mixing the dry ingredients (flour, sugar, spices and baking powder) together.
Add butter, apple sauce, and egg yolk. Mix thoroughly together until you have a consistent batter.
Whip up the egg whites into snow.
Progressively add the snow into the batter, carefully mixing them together.
Pour the mix into small muffin forms.
Cooking
Preheat the oven to 180°C. Bake for 20 minutes at 180ºC (with convection on).
Abusing the SwiftUI Switch Statement
One minute readMy now preferred way of handling complex if/else statements inside a SwiftUI view:
fileprivate struct ReminderTime: View {
let date: Date
let reminder: Reminder
var body: some View {
switch true {
case reminder.dueDate == nil:
Text("Reminder.Time.Nil")
case Calendar.current.compare(reminder.dueDate!, to: date, toGranularity: .day) == .orderedAscending:
Text(reminder.isCompleted ? "Reminder.Time.Done" : "Reminder.Time.Overdue")
case reminder.isAllDay && Calendar.current.isDate(date, inSameDayAs: reminder.dueDate!):
Text("Reminder.Time.Today")
case reminder.isAllDay:
Text(reminder.dueDate!, style: .date)
case !reminder.isCompleted && date > reminder.dueDate!:
HStack {
Image(systemName: "exclamationmark.triangle")
Text(reminder.dueDate!, style: .time)
}
default:
Text(reminder.dueDate!, style: .time)
}
}
}
At least until the if let
construct will work.