Shepherds Pie - Adam Ragusea

Recipe by Adam Ragusea, for importing by recipe apps:: www.youtube.com/watch

RECIPE, SERVES 6-8

  • 2 lb (907g) ground lamb
  • 3-4 carrots
  • 1 large onion
  • Half a bottle (3 cups, 375mL) white wine
  • 2 teaspoons dried thyme
  • 1 teaspoon dried sage
  • 1 teaspoon garlic powder
  • 1 teaspoon mustard powder
  • ½ cup (118mL) Worcestershire sauce
  • ¼ cup (60mL) tomato paste
  • ¼ (30g) flour (use more if you want your filling more solid)
  • Water or stock
  • Salt
  • Pepper
  • A stock cube, or a spoonful of stock concentrate (like Better Than Bouillon), or a few ice cubes of homemade demi-glace.
  • fresh rosemary (very optional)
  • 10 oz bag (280g) frozen peas

Potato Topping

  • 2 lb floury potatoes
  • 1 stick (4 oz, 110g) butter
  • Milk
  • 2 egg yolks
  • 2 oz (50g) cheddar cheese
  • Salt
  • Chives (very optional)

Instructions This recipe is calibrated for a 12-inch (30 cm) oven-safe skillet, but you could cook the filling in any pan and simply transfer it to a suitable baking dish.

Put the lamb into the pan and flatten it into a disk across the entire surface. Turn the heat on high underneath. While it heats up and starts to cook, grate or finely chop the carrots and onion. When the lamb is brown on the bottom, stir in the carrots and onion with a wooden spoon, scraping the bottom and breaking up the meat as you go.

Keep cooking and stirring until much of the water has evaporated, 5-10 min. When you notice the pan starting to dry out, reduce the heat to medium. When things start sticking to the bottom of the pan again, stir in the tomato paste and flour, and cook for another minute or two, until burning of the fond is imminent. Deglaze with the wine.

Stir in the Worcestershire, herbs and spices (except for salt), stock concentrate or demi-glace, and enough water to cover. Reduce heat to a simmer and cook until reduced and quite thick, at least half an hour.

Peel the potatoes and cut them into big chunks. Cover them in water and boil them until very fork-tender. Drain. Put in the butter and let it melt in the heat of the potatoes. Mash the potatoes, stirring in enough milk to get a slightly looser texture than you’d normally want for mashed potatoes. Grate in the cheese, put in the egg yolks, stir until smooth, then taste for seasoning and add as much salt as you want. (The egg yolks might not be totally cooked at this stage, so if you need to be cautious about pathogens, taste for seasoning before you mix in the eggs.) Keep the mash warm until you’re ready to put it on the pie.

Get your oven heating to 400ºF, 200ºC, ideally convection.

When the meat filling is reduced and thick, take it off the heat — the cooler it is when you top the pie, the better. Chop up the fresh rosemary and put it in (if you’ve got it), and stir in the frozen peas (still frozen). Smooth out the surface of the meat filling, then drop on the potatoes in large dollops. Pull with the back of a spatula to spread the potatoes out toward the pan edges and get everything covered in an even, thin later. If you want, use a fork to make some ridges in the surface that’ll brown nice and look pretty.

Bake the pie until the potatoes are puffy and the filling is bubbling, about 30 min. Take it out and top it with finely chopped chives, if you have them. Let cool at least 20 minutes before scooping.

Yes, please! New HomePod just dropped: www.apple.com/newsroom/…

New M2 MacBook Pros just dropped

www.apple.com/newsroom/…

Always feel like “hey maybe I’m not a dolt” while propagating yeast in a 5L flask. 🧪

Successfully pitched the yeast into the wort tonight, hoping it doesn’t have a mess in the morning.

Mythic Quest has been a sleeper of a great show. Just wrapped up Season 3, ❤️

Time Warp

Today I am brewing a beer for my home brew club called “Time Warp.” This is a barrel project, meaning I’m one of ~6 people brewing the same beer then throwing it all together to age in a barrel. I’ve loved having this beer at meetings when someone brings a rare bottle. Excited to have it on hand for myself and others.

###Grain/Sugars: 13lb 2-row

1.25lb C-80

1lb Cara-pils

0.25lb SpecialB

1lb MaltoDextrin

0.5lb Cane sugar

###Hops
3 oz Centennial

1 oz Amarillo

2 oz Amarillo

2 oz cascade

2 oz cascade

###Yeast
WLP 001 Cal Ale

Our main fridge/freezer died today. Luckily, my beer fridges (3) and freezer (1) was able to handle the refuges.

New fridge comes Saturday. 💸💸

Simple EnviormentObject and Published method to show different views

So, you’ve got a single view container, let’s call it “ControlCenter” that you want to show one of three sets of controls within. Typically you’d write three views, and try to intiatiate these views, push/pulling into focus.

With SwiftUI creating a centralized method where the views are unaware of when/why they will appear, but also the ability to summon these views should be possible by any other arbitrary portion of the app.

Enter @EnviormentObject and @Published

First lets create our data/control class:


   //  CommandCenterManager.swift
   //  Created by John Marc on 1/9/23.

   class CommandCenterManager: ObservableObject {
      @Published var currentView: CurrentView
      
      init() {
         currentView = .first
      }
      
      enum CurrentView {
         case first, second, third
      }
      
      func getViewPosition(currView: CurrentView) -> Int {
         var viewPosition = 0
         
         if currView == .first {
            viewPosition = 1
         }
         
         if currView == .second {
            viewPosition = 2
         }
         
         if currView == .third {
            viewPosition = 3
         }
         
         return viewPosition
      }
      
      func getNextView() {
         let currentPos = getViewPosition(currView: self.currentView)
         
         print("CurrentView: \(self.currentView)")
         if currentPos == 1 {
            currentView = .second
         }
         if currentPos == 2 {
            currentView = .third
         }
         if currentPos == 3 {
            currentView = .first
         }
         
         print("NextView: \(self.currentView)")
      }
   }

From there, on app creation let’s tell our app about this EnviormentObject:

   //  CommandCenterApp.swift
   //  Created by John Marc on 1/9/23.

   import SwiftUI

   @main
   struct CommandCenterApp: App {
      @StateObject var ccm = CommandCenterManager()
      
       var body: some Scene {
           WindowGroup {
               ContentView()
               .environmentObject(ccm)
           }
       }
   }

Excellent, let’s create the container to hold our views and the views themselves:

   //  CommandCenterViews.swift
   //  Created by John Marc on 1/9/23.

   import Foundation
   import SwiftUI

   struct CurrentView: View {
      @EnvironmentObject var ccm: CommandCenterManager
      
      var body: some View {
         switch ccm.currentView {
         case .first:
            FirstView()
         case .second:
            SecondView()
         case .third:
            ThirdView()
         }
      }
   }


   struct FirstView: View {
      var body: some View {
         VStack {
            Text("FirstView")
         }
         .frame(width: 500, height: 500)
         .background(.red)
      }
   }


   struct SecondView: View {
      var body: some View {
         VStack {
            Text("SecondView")
         }
         .frame(width: 500, height: 500)
         .background(.green)
      }
   }

   struct ThirdView: View {
      var body: some View {
         VStack {
            Text("ThirdView")
         }
         .frame(width: 500, height: 500)
         .background(.blue)
      }
   }

And finally the view that calls into this CurrentView:

   //  ContentView.swift
   //  Created by John Marc on 1/9/23.

   import SwiftUI

   struct ContentView: View {
      @EnvironmentObject var ccm: CommandCenterManager
      
       var body: some View {
         VStack {
            CurrentView()
            Button("Next View", action: {
               ccm.getNextView()
            })
         }
       }
   }

   struct ContentView_Previews: PreviewProvider {
       static var previews: some View {
           ContentView()
       }
   }

Asked by a waitress @ 7 AM what I do for work, I panicked and said:

“Computer”…. ….“Software”

🤦‍♂️ starting off the morning strong.

One of those days of “I love this job” ♥️

TIL you can opt out certain HomePods from listening history (ie kid specific HomePods):

  • Home app
  • … button, top right
  • Home Settings
  • Your name
  • Update listening history
  • Toggle off certain HomePods

🤯

Think I’m going to start watching exclusively shows that Netflix cancels.

They’ve canceled so many good shows, that clearly they’ve got some sage person only killing the good ones that people love.

Me: works out for two days straight My body: “what are we going to die if we stop this?”

My body is now 0.1% popcorn & jalapeños. Took the kids to Puss in Boots. Pretty good movie.