Making (Simple) Meat Lasagnes — Photos

This is another recipe focusing on a simplification — in fact, two separate simplifications — allowing for easy assembly of as many or as few units that you are willing to mount at once, as well as depending on the number of containers and freezer space you have, or to which you have access.

In the process of mounting this post, a separate, overarching narrative from how I originally viewed the recipe emerged: I originally thought that I had a recipe for (what now used to be) four lasagnes, using commercial tomato sauce in a jar. I eventually realized that I actually had a recipe for one lasagne, which happened to be particularly convenient for making four units at a time, specifically tailored to some conveniently-sized baking pans I possess, measuring 7-1/2″ x 5-1/2″ x 2″.

This led me to calculating the surface area of the particular baking pans, about 41 square inches (266cm2) each, which I realized was about half the 81 square inch surface area of somewhat more common 9″ x 9″ (22.9cm x 22.9cm) baking pans; I further realized that the fairly common 9″ x 13″ (22.9cm x 33cm) baking pans, with a surface area of 117 square inches, have almost three times the surface area of the baking pans I use.

With this realization, the core recipe and process of making my lasagnes emerged from the base unit of my small pans:

  • about one pound (about 450g) of ground beef;
  • about 600mL (about two to two and a half cups) of sauce;
  • about five to six sheets of oven-ready lasagne sheets;
  • ultimately making four layers of lasagne, and five layers of meat and sauce;
  • about 100g (about 3.5 ounces) of grated mozzarella cheese;
  • for a lasagne of about 41 square inches, allowing for about up to four modest but hearty servings.

Having realized this and adjusted my recipe accordingly, this leads to the easier scaling of the recipe either to the number of pans I would be making at once, or to one or more other baking pan size(s).

And to be clear: The two simplifications to this recipe lay in:

  • the use of commercial spaghetti sauce in commonly available jars of 600mL (20oz) or thereabouts, which forms the basic unit of the lasagnes, and,
  • the use of oven-ready lasagne sheets, which require no precooking or soaking before use, making the production of any number of units or even larger units vastly easier and quicker.

Note that I think that you should use a tomato (or other) sauce that you like, be it a commercial tomato sauce in whatever size format that suits you, or your own (or your grandmother’s) homemade tomato (or other) sauce. I can only imagine that making extremely large amounts of lasagne — especially several large format units — may well favour the use of larger commercial formats of tomato sauce, or the outright making large pots of your own tomato sauce!

Lastly, a small handful of photos may have been reordered and/or re-taken afterwards for the sake of the narrative.

Making the lasagnes:

On cooking day, I decided to make two units of lasagnes in my small baking pans.

First, all the ingredients were gathered together. I will underline (given the prominent “reduced price” sticker) that the beef was purchased at a clearance price a couple of days before its due date, “a couple of months ago”, and kept in the freezer; it was defrosted overnight in the fridge before use.

Ingredients taken out

An electric frypan was taken out and plugged in, as well as a spatula / egg flipper being taken out:

Electric frypan taken out and plugged in, and spatula / egg flipper taken out

The defrosted (overnight in a fridge) ground beef was taken out:

Defrosted ground beef taken out

The ground beef package was opened with some scissors:

Ground beef package opened

Onions and a kitchen knife were taken out:

Onions and kitchen knife taken out

The onions were trimmed:

Onions trimmed

The onions were cut in half:

Onions cut in half

The onion halves were sliced into half-coin shapes:

Onions sliced

The onions were coarsely chopped:

Onions coarsely chopped

The ground beef and the onions were placed in the electric frypan:

Onions and beef placed in electric frypan

A spatula / egg flipper was taken out, and the electric frypan turned on:

Spatula / egg flipper taken out, and frypan turned on

As the ground beef and the onions were cooking, I started breaking up the ground beef, and turning the mixture over:

Ground beef broken up and mixture turned over while cooking
Ground beef broken up and mixed with onions

While the ground beef and onion mixture was cooking, I added some salt:

Salt added to ground beef and onion mixture
Salt added to ground beef and onion mixture

While the ground beef and onion mixture was cooking, I kept on breaking up the pieces of ground beef.

Once the ground beef and onion mixture was cooked …

Ground beef and onion mixture cooked

… I separated the ground beef and onion mixture in two, for when I’d be mounting the lasagnes:

Cooked ground beef and onion mixture separated in two

The frypan containing the cooked ground beef and onion mixture was transferred to the nearby counter where I was going to start mounting the lasagnes:

Frypan moved to work counter

Since I had decided to make two lasagnes of the size I was accustomed to making, two baking dishes were taken out:

Baking dishes taken out

A serving spoon was taken out to start transferring the cooked ground beef and onion mixture to the first baking pan:

Serving spoon taken out to transfer cooked ground beef

Cooked ground beef and onion mixture was picked up with the spoon:

Cooked ground beef and onion mixture picked up with spoon

The cooked ground beef and onion mixture was transferred to the first baking pan:

Cooked ground beef and onion mixture transferred to baking pan
Cooked ground beef and onion mixture transferred to baking pan

The cooked ground beef and onion mixture was spread evenly over the surface of the bottom of the baking pan:

Cooked ground beef and onion mixture spread over base of baking pan

A jar of commercial tomato sauce was taken out:

Jar of tomato sauce taken out

The jar of tomato sauce was opened:

Jar opened

… and a portion of the tomato sauce from the jar was spread over the cooked ground beef and onion mixture:

Tomato sauce poured over cooked ground beef and onion mixture

A box of oven-ready lasagne sheets was taken out …

Box of oven-ready lasagne sheets taken out

… and the box was opened:

Box of oven-ready lasagne sheets opened


A sheet of lasagne was taken out of the box:

Sheet of lasagne was taken out of box

… and it was gently broken to size in order to fit in my baking pan:

Sheet of lasagne broken to fit in baking pan

I began layering the lasagne sheets in the baking pan on top of the cooked ground meat and onion mixture:

Lasagne sheet placed in baking pan
Lasagne sheet placed in baking pan

I began to repeat the layering with the cooked ground beef and onion mixture …

Layering of ingredients repeated

… until I had four layers of lasagne sheets, and five layers of cooked ground beef and onion mixture and tomato sauce:

Layering completed in first lasagne

I should note that despite the lack of a photo, some of the layers of lasagne sheets were composed of varying amounts of the broken off pieces of lasagne sheets.

At this point, as planned, half of the cooked ground beef and onion mixture had been used up, and half remained:

Half of cooked ground beef and onion mixture remaining

Because I had planned on making two small lasagnes, I continued by taking out the second baking pan, and starting the layering process again:

Cooked ground beef and onion mixture layered in the second baking pan

I continued with the layering of the second lasagne in the second baking pan — on the left — until I also had four layers of lasagne sheets and five layers of cooked ground beef and onion mixture and tomato sauce (yes, sometimes sauce distribution was somewhat uneven amongst the layers — although each lasagne contained a full jar of 600ml of sauce):

Two baking pans of lasagne

Again, at this point and as planned, the other half of the cooked ground beef and onion mixture had been used up:

Frypan of cooked ground beef and onion mixture emptied of its contents

The frypan was brought over to the sink for washing later.

A box grater and a large soup bowl were taken out:

Box grater and soup bowl taken out

… and the box grater was placed in the soup bowl:

Box grater placed in soup bowl

A block of mozzarella cheese was taken out:

Mozzarella cheese taken out

The package was partly removed to facilitate grating about 200 grams of cheese:

Cheese partly unwrapped

Approximately 200g of cheese, estimated visually as about two fifths of the 500g block, were grated off of the block of mozzarella cheese:

Approximately 200g of cheese grated off the block

The bowl of cheese was brought over to the two baking pans of lasagnes:

Cheese brought over to lasagnes

About half of the cheese, approximately 100g, was transferred to the top of a lasagne:

Cheese placed on lasagne
About 100g — about half of the grated cheese — were placed on one of the lasagnes

The rest of the cheese was transferred to the other lasagne, ensuring that each unit received approximately the same amount of cheese:

Cheese transferred to both lasagnes

Two freezer bags were taken out, and identified and dated:

Freezer bags taken out and identified and dated

The lasagnes were individually placed in the bags:

Lasagnes placed in freezer bags

The lasagnes were then placed in my deep freezer for when I’ll want to take them out and bake them:

Lasagnes placed in freezer

Are they tasty? Of course!

A little postscript: Canada — where I live, in the province of Québec — has this funny equilibrium about the spelling of a bunch of words due to simultaneous historical and current day British English and American English influences, as well as our own Canadian conventions (and even regional ones too!) In the case of this post, I use the spelling of “lasagne” due to British influence, as well as French influence, since Québec is a French-speaking region in Canada, instead of “lasagna”, the American spelling. Hence, please don’t write in telling me that I spelled “lasagne” wrong throughout this post. 🙂 (And, we also have lots of fun with measuring systems, too.)

Making (Braised) Pulled Pork — Photos

Following having enjoyed a friend’s pulled pork a few times at church functions over the years, I asked her for her recipe in late 2023 / early 2024. I successfully made her pulled pork … and shelved the idea, because her recipe featured star anise — meaning, there was what I considered a weird black licorice taste to the otherwise tasty pulled pork. Also, I asked my friend “what do you do with the braising liquid afterwards?” to which she responded “Oh keep it in the freezer for the next time, or add corn starch to some of it to add to the pork.” These responses didn’t sit well with me either. I resigned myself to enjoying pulled pork whenever my culinary adventures happened to meet with it at restaurants and the like.

In early 2026, I saw pork shoulder on sale, and decided to buy some “so that one day I can try again to make pulled pork.” A couple of months later, I looked up pulled pork recipes on the internet, did my own experimentation on the spot, and decided upon keeping my friend’s basic method; but instead using a 2:1 mix of commercial BBQ sauce (I settled on Kraft) and molasses for the flavour base to the braising liquid, to which I have kept ever since. Once exception was to have found a generic taste-alike recipe for Kraft BBQ sauce on the internet, which I integrated into the recipe, and which I used to partly make up the BBQ sauce portion in this session. (As a side note, I did *not* show extra photos for this makeup, in keeping with the spirit of the recipe that intentionally simply calls for “barbecue sauce” — meaning, you should use your favourite barbecue sauce.) And, as shown below, I reduce the braising liquid down to a sauce to mix in with the pulled pork. 🙂

Extra note: In a few instances, my photos from the session have shown some kitchen surfaces that were in need of some cleaning, and the aluminum foil lining at the bottom of my countertop convection oven needing changing. All the “extra cleaning” and foil replacement were performed after the cooking session, and during the course of mounting this post. I think I’m going to claim “Welcome to real life!”

Extra note #2: “A photo or two” may have been slightly presented out of order compared to their having been taken, and at least one make-up photo was staged after the cooking session, both for the sake of the narrative.

Making the pulled pork:

First, some frozen pork was taken out — in this case, some pork loin (instead of pork shoulder, which I concede is still more appropriate for the job — but pork loin does well too) — because I had bought a lot of pork loin a few months ago at a not-as-great-as-I-thought-but-still-good sale price given how thick the fat layers were in some cases:

Frozen pork taken out

The pork was placed in my microwave oven using the “defrost” function, entering the pork weight that I had marked on the plastic wrap before freezing:

Frozen pork placed in microwave oven for defrosting

The time for defrosting was automatically set based on the weight I’d entered:

Defrosting time automatically set based on weight

In the meantime, an oven-proof cast iron pot with a lid was taken out:

Oven proof pot taken out

Critically, the use of an oven-proof pot that can be covered, be it with a lid, or aluminum foil, is important — in my case, I use a cast iron pot with a lid that happens to fit in my countertop convection oven, and which allows for pre-heating on the stove.

An onion and a kitchen knife were taken out:

Onion and kitchen knife taken out

The onion was trimmed:

Onion trimmed

The onion was cut into rounds:

Onion cut into rounds

The onion rounds were then chopped coarsly:

Onion chopped coarsely

The chopped onion was transferred to the pot:

Chopped onion placed in pot

Olive oil was taken out and added to the pot:

Olive oil taken out and added to pot

Once the pork had defrosted, I started trimming off excess fat with a particularly sharp knife:

Fat layer trimmed off of pork
Fat layer trimmed off of pork

The pieces of fat trimmed off the pork were put into a bucket for disposal through the municipal curbside composting programme.

The pork was cut into three pieces, which would fit into my pot:

Pork cut into pieces to fit in pot

The pieces of pork were placed in the pot with the chopped onion and olive oil:

Pork pieces placed in pot with onion and olive oil

The stove burner was turned on — and oh my, it’s a bit dirty:

Stove burner turned on

I also turned on my countertop convection oven:

Countertop convection oven turned on

The oven rack was placed on the bottom level of the oven — and oh my! again, a bit of cleaning is needed, including replacing the aluminum foil at the bottom of the oven:

Countertop oven turned on

Back to the pork on the stove, the pork was turned over:

Pork turned over

Molasses was taken out and measured out:

Molasses measured out

The molasses was transferred to the pot with the pork and chopped onion:

Molasses transferred to pot with pork and onion

Some barbecue sauce as well as some ketchup to help make up the volume were measured out:

BBQ sauce and ketchup measured out

The barbecue sauce was added to the pot with the pork, onions, and molasses:

Barbecue sauce added to pot

Just a reminder here: Since my recipe for pulled pork and this post are predicated on the notion of “use the barbecue sauce you want to use”, although the ingredients for a taste-alike replacement of Kraft BBQ sauce are in my recipe for pulled pork, showing the makeup ingredients won’t be done here. Also to note, the apparent measure above takes into account the following steps, which washed out the rest of the barbecue sauce and ketchup clinging to the insides of the bottles used.

Water was added to the pot with the other ingredients, enough to cover the pork pieces:

Water added to pot with the other ingredients
Water added to pot with the other ingredients

At this point, the stove burner was turned up to maximum:

Stove burner turned to maximum

The pot was brought to a boil:

Pot brought to a boil

The lid was placed on the pot:

Lid placed on pot

The pot was placed into the countertop convection oven — the pot just fits!

Pot placed in countertop convection oven

The door to my countertop convection oven was closed — and again I noticed something that needed a cleaning!

Oven door closed

After about an hour, the pot was taken out and checked, and the liquid was indeed just bubbling:

Liquid in pot just at the point of bubbling

A timer was set to an hour and a half:

Timer set to an hour and a half

While the pot with the pork and braising liquid was returned to the countertop convection oven:

Pot returned to oven

Shortly before the timer was to run out, a heatproof container was taken out:

Heatproof container taken out

And at less than a minute before the timer ran out …

Timer running out at 40 seconds left

The pot was taken out and placed on the stove beside the counter:

Pot taken out of oven

The lid was taken off the pot:

Lid taken off pot

A piece of pork was taken out of the pot with a slotted spoon, and its tenderness was tested: The pork definitely pulled apart easily with a fork!

Pork taken out and tested with a fork

So I continued “pulling” — shredding if you prefer — the pork with some forks:

Pork shredded with forks
Pork shredded with forks

The shredded pork was transferred to the heat proof container, and another piece of pork was removed from the pot and braising liquid using a slotted spoon:

Another piece of pork removed from pot

The piece of pork taken out, as well as the other piece of pork, were both shredded with the forks, and transferred to the heatproof container:

Pulled pork transferred to heatproof container

Throughout the pulling / shredding of the pork, bits of fat and grissol were separated out and put aside, to be put into a bucket for disposal through the municipal curbside composting programme:

Fat and grissol separated for disposal in composting programme

In the braising pot, a layer of rendered fat had risen to the surface:

Braising liquid with layer of rendered fat on top

A soup ladle was taken out to skim off the rendered fat:

Ladle taken out

The rendered fat was skimmed off the top of the braising liquid:

Rendered fat skimmed off top of braising liquid

The skimmed rendered fat was transferred to a fat separator with a slotted top:

Skimmed fat transferred to fat separator
Rendered fat in fat separator

The braising liquid at the bottom of the fat separator was poured off:

Braising liquid poured off

The ladle was then used again, this time to transfer some of the braising liquid from the cast iron pot …

Braising liquid transferred from pot

… to a frypan, in order to help reduce / thicken the liquid more quickly than all at once just in the pot:

Braising liquid transferred to pan for reducing / thickening

Two stove burners were turned on to maximum:

Stove burners turned on to maximum
Stove burners turned on to maximum under frypan and pot

The frypan and pot were brought to a boil to reduce the volume and concentrate the ingredients, by evaporating off excess water:

Frypan and pot brought to a boil
Boiling braising liquid to reduce the volume and concentrate the ingredients

After a time, as can especially be seen in the pan on the left, the reduced liquid with become what I will characterize as “gloopy”, and the bubbling will be more audible:

Braising liquid especially on the left thickened
Thickened braising liquid becoming a sauce

The now thickened sauce in the pan was transferred to the pork in the heatproof container:

Sauce transferred to pork

Of course, the pan was scraped to get all of that goodness to put on the pulled / shredded pork!

The rest of the braising liquid was reduced to the desired thickness and transferred to the container with the pulled / shredded pork:

All sauce transferred to container of shredded pork

The (now cleaned) slotted spoon was taken out to distribute the sauce throughout all the pulled pork:

Slotted spoon taken out to redistribute the sauce in the container
Pulled pork fully “sauced”

Plastic containers of a one-cup capacity were taken out (this is the recreated photo):

Plastic containers taken out

The pulled pork was transferred to the plastic containers:

Pulled pork transferred to containers

And lids were placed on the containers:

Lids placed on containers

The containers were placed in the freezer for my future enjoyment:

Fortunately, there was a taste, albeit small, of pulled pork left in the container:

A tasty bit of pulled pork left over

The tasty leftover bits were served on a plate, ready to eat:

A taste of pulled pork — enjoyed!

Yummy!

And as an extra note … I have been asked to bring my pulled pork again to the next church pot luck meal, along with one of my tiramisu cakes!

Making Tiramisu Layer Cake — Photos

Since I don’t care much for coffee, I have perhaps tried tiramisu once or twice in my life, although I am struggling to recall said occasion(s).

That being said, I was very interested in a “quick tiramisu” (here’s my archive) I saw being made on a “30-minute meal” TV show. The “easy shortcut” of using a store-bought loaf cake as well as the recipe in general completely captivated me, and I decided that I must make it. Of course, I sidestepped the defining shortcut of the recipe by realizing that “I know how to make a loaf cake!” (loaf cake recipe here). As such, I make my own loaf cake “in-house” for this recipe.

This last part being said, in this post I won’t show the making and baking of the loaf cake for two reasons:

For the record: Yes, I indeed licked the utensils and the bowls used for the coffee cream and whipped cream. 👨‍🍳

Making the tiramisu cake:

First, I baked a plain vanilla loaf cake earlier in the day, and I let it cool:

Plain loaf cake baked earlier in the day

Also, cream cheese was taken out soon after baking the cake so that the cream cheese could warm up to room temperature or thereabouts:

Cream cheese taken out to warm up

Later, when I was beginning to make the tiramisu layer cake, all the ingredients — loaf cake, cream cheese, milk, instant coffee crystals, icing sugar, whipping cream, and cocoa powder — were taken out:

Ingredients taken out

Water was quickly drawn into a kettle to boil to make the strong coffee:

Water drawn to make coffee

The kettle was plugged in and turned on, so as to boil the water:

Kettle plugged in and turned on

While the water was boiling, instant coffee crystals and a measuring spoon were taken out:

Instant coffee crystals taken out

Two teaspoons of instant coffee crystals were measured out:

Instant coffee crystals measured out

The instant coffee crystals were transferred to a heat-proof measuring cup:

Coffee crystals transferred to measuring cup
Coffee crystals transferred to measuring cup
Coffee crystals transferred to measuring cup

At this point, the kettle of boiling water was brought to the measuring cup, and water was transferred to the measuring cup:

Boiling water added to measuring cup
Boiled water added to measuring cup

I noticed that I poured out three ounces of boiling water instead of two ounces of water:

Ooops! A bit too much water was added … but don’t worry, it’s not a disaster

A bit of commentary: The thing to remember here is that in this case, a fixed amount of instant coffee was used instead of fresh espresso, so the water is doing two things: While the water is dissolving the instant coffee so that it distributes more evenly than the dry powder alone would, the coffee taste and intensity in the final product come from the fixed amount of two teaspoons of instant coffee in the recipe, and obviously not that the crystals were dissolved in three ounces of water instead of two). And, secondly, the water is also affecting the liquid balance in the recipe to smooth out the cream cheese in the mix; since a bit too much water was added to dissolve the otherwise fixed amount of instant coffee, the amount of milk added in the upcoming step was reduced. (Were fresh espresso be used instead, the liquid balance issue would remain; however, an even stronger coffee flavour would be brought to the dessert, which may be either a good or not so good thing, depending on your perspective and preference — or what you might want to do with the extra ounce, like top up your own cup of espresso! 🙂 )

The hot strong coffee was placed in the freezer to cool it down quickly:

Hot coffee placed in freezer to cool down

The package of cream cheese was opened with a pair of scissors:

Package of cream cheese opened

The cream cheese was transferred to a mixing bowl:

Cream cheese transferred to mixing bowl

An electric beater was brought over in order to cream the cream cheese:

Electric beater brought to mixing bowl

The cream cheese was creamed with the electric beater:

Creaming the cream cheese
Creamed cream cheese

Milk and a measuring spoon were taken out:

Milk and measuring spoon taken out

As mentioned earlier, one less tablespoon than specified in the recipe (to compensate for the extra water added to the instant coffee crystals) was measured out:

Milk measured out and added to mixing bowl

… and the milk was transferred to the bowl with the creamed cream cheese:

Milk transferred to mixing bowl

The milk and cream cheese were briefly mixed with the electric beater:

Cream cheese and milk mixed together

Icing sugar and a measuring cup were taken out:

Icing sugar and measuring cup taken out

Icing sugar was measured out:

Icing sugar measured out:

The icing sugar was transferred to the bowl with the cream cheese mixture:

Icing sugar transferred to bowl
Icing sugar transferred to bowl
Icing sugar transferred to bowl

The cream cheese mixture and the icing sugar were blended together with the electric beater:

Icing sugar blended into cream cheese mixture

The cooled coffee was taken out of the freezer:

Cooled coffee taken out

The cooled coffee was transferred to the cream cheese mixture:

Cooled coffee transferred to cream cheese mixture
Cooled coffee transferred to cream cheese mixture
Cooled coffee transferred to cream cheese mixture

All the ingredients were mixed again with the electric beater, and a couple of spoons were used to scrape the edges of the bowl:

Ingredients mixed, using spoons to scrape edges of the bowl
Ingredients mixed

The cream cheese, milk, icing sugar, and coffee mixture was put aside for a few moments.

Another bowl and some whipping cream (237mL, about a cup) were taken out:

Bowl and whipping cream taken out

The carton of whipping cream was opened:

Carton of whipping cream opened

The whipping cream was transferred to the bowl:

Whipping cream transferred to bowl
Whipping cream transferred to bowl
Whipping cream transferred to bowl
Whipping cream transferred to bowl

The electric beater was brought to the bowl with the whipping cream:

Electric beater brought to bowl

The whipping cream was whipped using the electric beater …

Whipping cream whipped with electric beater

… until I had stiff peaks in the whipped cream:

Whipped cream with stiff peaks

A bowl scraper / spatula was taken out, and the bowl of whipped cream brought over to the bowl with the cream cheese, milk, icing sugar, and coffee mixture:

Whipped cream brought over to cream cheese / coffee mixture

The whipped cream was transferred to the bowl with the cream cheese, milk, icing sugar, and coffee mixture:

Whipped cream added to cream cheese / coffee mixture

The whipped cream was gently folded into the cream cheese, milk, icing sugar, and coffee mixture, henceforth called the “coffee cream”:

Whipped cream folded into the coffee cream

The bowl of coffee cream was put aside again for a few moments.

At this point, the cooled loaf cake I baked earlier was taken out:

Cooled loaf cake

I sliced the loaf cake horizontally along its length with a sharp knife about an inch above its base:

Slicing loaf cake horizontally along its length
Loaf cake sliced horizontally along its length

The loaf cake was sliced horizontally along its length again with the sharp knife, creating three layers of cake:

Loaf cake sliced horizontally along its length again

The base slice was placed onto a removable tray for a poultry / meat transport container (see below):

Base of cake placed on movable tray

A layer of coffee cream was transferred to the sliced cake:

Coffee cream transferred to cake slice

The coffee cream was spread over the whole surface of the cake slice:

Coffee cream spread over the slice of cake

The middle slice of cake was placed on top of the coffee cream:

Middle slice of cake placed on top of the coffee cream

More coffee cream was transferred to the top of the middle slice of cake, and spread over the whole surface of the cake:

Coffee cream spread over middle slice of cake

The top of the cake was placed on top of the coffee cream:

Top of cake placed over coffee cream

The rest of the coffee cream was transferred to the cake, and spread over all surfaces:

Balance of coffee cream spread over whole of cake, top view
Balance of coffee cream spread over whole of cake, side view

Here’s the empty bowl from the coffee cream:

Empty mixing bowl for coffee cream

Cocoa taken out:

Cocoa taken out

Cocoa powder sprinkled onto the cake directly from the container of cocoa:

Cocoa sprinkled on cake
Cocoa sprinkled on cake

The cake and tray were lowered into the container:

Cake lowered into container

The lid was placed on the container with the cake:

Lid placed on container with cake

The cake was placed in the fridge to gel the coffee cream:

Cake in container placed in fridge

Later when the coffee cream had largely gelled in the fridge for a few hours, a couple of slices were cut off the cake, ready to be served for dessert!

Dessert is served!

Mom is over the moon with this cake, effectively having declared it her new favourite dessert!

(And, I’ve been asked to bring it to the next church potluck I attend, along with my pulled pork!)

I’m a lumberjack … — Part Deux

Further to my first post from my holidays that covered as much if not more of the aftermath of a tornado landing near my cottage while I was on holidays as outright lumberjack activities, I have put together this post … to concentrate on the rest of the “I’m a lumberjack …” (here’s my archive) part of the story which I had left to the implied, as in “well of course I cut up all that wood and piled it up in my wood shed.”

The first part of this story is to tell about my chainsaw: I have a Husqvarna 55cc gas powered chainsaw that was a Christmas gift from about 2007. After the usual question of “What do you want for Christmas”, I was initially told that a chainsaw was a bit too expensive an ask — an answer I completely knew, and which I fully expected to receive — so I followed up with “a beer concentrate kit and a wine concentrate kit” instead. When I was asked again a couple of weeks later about “What do you want for Christmas?” I responded with “I already told you!” meaning, in my mind, the beer kit and the wine kit. Was I ever surprised on Christmas morning!

During the initial cleanup of the fallen tree across the road after the tornado, I took out my chainsaw for the first time in the season, started it up, and helped cut up the tree — of course, to help clear the road and allow people to pass. A couple of days later during further cleanup operations, my chainsaw wouldn’t start up. I went through opening up the chainsaw and doing some cleaning with a neighbour the next day, and we used some high-flammability spray directly into the air intake to test the unit again. I even spent a morning the day after that hunting down a new spark plug for my chainsaw — the unit still wouldn’t start up. Yet another couple of days after that, I hunted down a local small engine tool repair shop, and left the chainsaw there along with said neighbour’s chainsaw for servicing — for an estimated turnaround time of “around up to two weeks.” Sigh, so much for my lumberjack dreams during my holidays being dashed.

A few days later, I was back in Montreal for a quick trip to the dentist for a planned teeth cleaning, and I realized that — given that on the battery powered side of power tools, I use Ryobi tools — a big box store that distributes Ryobi was a mere few blocks away from the dentist’s office. I went there, got the least expensive weed whacker for the Ryobi 18V battery system (finally, Mom will be happy that the lawn edges will be done!) and I had designs on a Ryobi 10″ chainsaw for the Ryobi 40V batteries I own. Note that the idea wasn’t to replace the 55cc Husqvarna chainsaw, just to have a convenient to use tool for smaller jobs — which, frankly, is a lot of what I do with a chainsaw to begin with. After hunting down the 10″ chainsaw in the store, while going to the checkout, I passed by a display of Ryobi tools on sale. There was a 14″ chainsaw that came with a 40V x 4Ah battery and charger that was deeply discounted for about $75ish more than the regular price on the 10″ tool only chainsaw.

New 14″ Ryobi 40V chainsaw, with one of my 7.5Ah Ryobi batteries in the battery bay
Deeply discounted Ryobi 14″ chainsaw with 4Ah battery and charger

So I purchased the 14″ unit instead, obviously. In the process, I became pleased with myself and my good luck; much as I like the 14″ model, it is just at and arguably even noticeably below the lower end of my occasional heavy-duty needs. As such, I know that I would have regretted having purchased the 10″ model, even had I never discovered the deeply discounted sale.

So back at the cottage, I eventually faced my pile of wood to cut up again, which I had shown at the end of the previous post about the tornado:

Pile of wood and branches to be cut up

The pile of wood was cut up, and to my pleasant surprise, about as easily as with my gas powered chainsaw, perhaps even more so:

Wood cut up
Pile of wood all cut up

This used up just short of a full charge from one of my Ryobi 40V 7.5Ah battery from my lawnmower.

At this point, I already had ideas brewing in my head to go get the cut up eight foot log section leftover from the fallen tree across the road after the tornado because the lead person clearing up the wood and the road wasn’t interested in this piece; its centre was rotten enough, and therefore wouldn’t have provided, in his estimation, more than one or two planks of wood for the effort:

Eight foot length of wood leftover from the tornado cleanup

At the same time, there was an old very dead tree partly left standing, and partly knocked over but still precariously standing up several feet away, both parts of which I also decided to retrieve and cut up:

Part of dead tree still standing, roughly left of centre of the photo
The other part of dead tree knocked over but still standing, roughly centre in the photo

I proceeded to cut up the eight foot log and the dead tree, and I got about half a cut through the eight foot log which was about a foot and a half thick from the end of the charge in the 7.5Ah battery in the chainsaw. The operation, involving cutting the log eight foot log into eight pieces, and the knocked over dead tree into transportable lengths of roughly four fireplace sized logs, went through the full charge of the 4Ah battery that came with the chainsaw, the full charge from another 7.5Ah battery, and “one light”‘s worth (out of four) from the other 7.5Ah battery that had been recharged in the meantime. I also had to sharpen the chain, using a manual file with a fixed sharpening guide.

7.5Ah x 40V Ryobi battery being charged … again!

All of the wood was loaded into my car, effectively replicating a similar photo from the previous tornado post.

Car filled with more wood as well as my Ryobi chainsaw on the right and some biodegradable chain oil from Stihl on the left

(As an aside: Am I still going to contact Toyota with pictures to tell them one of the ways I use my 2012 manual transmission Toyota Matrix? Who knows? I’m still quite enjoying making the blog posts!)

The wood in the car was transported all of perhaps 100 feet to the side of the cottage where I was working, and unloaded from the car:

Wood unloaded from car

The first thing I did next was to cut up the branches and the logs that I had collected:

Branches and logs cut up
Branches and logs cut up and added to the piles of wood to either stack or split and then stack

At this point I should mention that last summer when I was playing lumberjack, our handyman with whom we are also just plain friendly stopped by and noticed all the wood to be split, and offered to lend me his six-ton electric wood splitter, with a comment to the effect of “you’ll never want to go back to splitting wood with an axe!” Sure enough, he was right, and over the winter, he sent me a link by email for a five ton electric wood splitter that had a substantially discounted sale price compared to its regular price; I immediately purchased a unit.

Fast forward to this past week, I had the necessary testing grounds for another one of my new toys; at this point, the new wood splitter was taken out, and I started splitting some logs:

Log splitter taken out and some logs split

While I was learning how to use the unit, since it had been a year since I’d used the borrowed splitter, and that my splitter operates slightly differently from our handyman’s unit, I discovered the joys of having to hold down the power button with one hand while operating the ram lever with the other hand. This process essentially requires one to either to crouch down to ground level and use a support for one arm to balance oneself — in my case, one of the logs cut from the tree trunk fallen during the tornado — or, a hypothetical situation of lifting the “I have no idea how heavy this back-breakingly heavy beast is” to a level at which I’d be able to stand while operating it, and which would therefore require commensurately higher lifting of the logs to be split.

After splitting seven of the eight pieces from the roadside, I decided to start piling the wood to clear space for more wood to be split:

Split wood from roadside log

I piled said split wood on my woodpile, beginning with some of the cut up branches at the top of the third row:

Third row of woodpile finished with cut branches

… and then beginning a fourth row of split wood:

Fourth row of woodpile begun with split logs from roadside

Of course here is a photo of the work area, showing that the split logs from the roadside tree trunk had been moved away:

Chopped wood from roadside log moved away

I continued splitting all the logs of wood until I ran out, only having a few hard-to-split or otherwise odd logs left over:

All logs chopped

I also continued to pile the split wood until I ended up finishing the fourth row of wood:

Fourth row of wood piled up to the roof of the wood shed

I even had so much wood to pile that I started a fifth row with the rest of the cut up branches and the hard-to-split pieces, waiting for the next time:

Fifth row of wood consisting of cut up limbs and hard to split pieces

Of course, having piled up all the wood, the work area was cleared, only leaving behind some scraps to be cleaned up another time:

All cut up wood picked up from the work area

Here’s an overall view on the back of the wood shed:

View of back of full wood shed

And of course a view of the side where you can see that all four rows are filled up:

View of side of the wood shed and all four rows of split firewood

Now I just have to go to the cottage often enough this coming winter to burn through hopefully a row and a half, or more, of wood from the woodpile in the wood burning stove to heat the cottage!

… And that all still leaves me with the birch trees I was originally figuring I’d be cutting up over my holidays this summer:

Birch trees still not cut up and waiting for next year!

Depending on when I get my gas chainsaw back, when I get up to the cottage again this summer and fall, and a bunch of other “ifs” and “whens”, I may end up cutting up some of those tree trunks this fall and pulling them out of the woods to winter and spring in hopefully slightly less wet and marshy conditions, ready for next summer.

And did I really get to play lumberjack in the end? My aching legs, hips and lower back certainly think I did!

And yes, “I’m okay!” with that! (here’s my archive)

Making Date Squares — Photos

This recipe was developed and added to my collection of recipes as a result of chatting with an online AI chatbot discussing church culture, during which the chatbot listed at one point some typical desserts to be found at church potluck luncheons. It listed the item which is the subject of this post as “Matrimonial Squares”. My interest was piqued because I did not know what “Matrimonial Squares” were, as well as said name telling me nothing of what the dessert was. As such, I bemusedly asked whether it was a dessert to be typically served as part of a wedding feast, or if there was something somewhat more prurient to them along the lines of being considered an aphrodisiac! I got a response along the lines of their description — date squares! — and how the name was a florid and traditional name meaning how well all the parts “marry together to make an ideal dessert”, an absolutely church-safe name. 🙂

Incidentally, this recipe is vegetarian tending toward vegan if you use margarine (as I did) instead of butter.

This batch was the second batch made at the cottage during my holidays, and will likely be served at the lake association BBQ later this week.

Setting up:

First, I decided to take out all the ingredients:

Ingredients taken out

Although I actually did this a little later, now is a good time to preheat the oven:

Preheating oven

An 8″ x 8″ baking pan and a piece of paper towelling were taken out:

Paper towelling and baking pan taken out

The paper towel was taken over to the tub of margarine, and some margarine was scooped up with my hand and the paper towel:

Paper towel taken over to tub of margarine

The paper towel and margarine were taken over to the baking pan:

Paper towel and margarine taken over to the baking pan

… and the margarine was slathered onto the surfaces of the baking pan:

Margarine slathered over all surfaces in the baking pan
Margarine slathered over all surfaces in the baking pan

The baking pan was put aside.

Preparing the date filling:

Dates and a knife were taken out — in this case dates I had been keeping in the freezer, hence the fuzzy condensation on the bag:

Dates and a knife taken out

The dates were pitted:

Pitted dates

At this point, I took out a kitchen scale and a bowl, and set the reading to zero with the bowl on the scale …

Tare weight of bowl on scale

… so that I could weigh out the required amount of pitted dates, which I kept on pitting until I had enough pitted dates:

Weighed out pitted dates

At this point, I should have chopped the dates up a bit, but I forgot, and no matter.

The pitted dates were transferred to a pot:

Transferring the pitted dates to the pot
Pitted dates transferred to pot

Water was measured out:

Drawing water into measuring cup
Water measured out

The water was transferred to the pot with the pitted dates:

Transferring water to pot with pitted dates
Transferring water to pot with pitted dates
Transferring water to pot with pitted dates

Lemon juice was taken out:

Lemon juice taken out

The lemon juice was measured out:

Lemon juice measured out

The lemon juice was transferred to the pot with the pitted dates and water:

Lemon juice transferred to pot with pitted dates and water

A burner on the stove was turned on to medium heat:

Stove turned to medium heat

The pot of pitted dates, water, and lemon juice was placed on the burner:

Pot of pitted dates, water, and lemon juice

The pitted dates were largely left alone for the next several minutes, although I kept an eye on the pot and occasionally stirred it.

Making the oat crumble base and topping:

Flour was taken out:

Flour taken out

Flour was measured out:

Flour measured out

The flour was transferred to a mixing bowl:

Flour transferred to mixing bowl
Flour transferred to mixing bowl

Oats were taken out:

Oats taken out

Oats were measured out:

Oats measured out

The oats were transferred to the mixing bowl with the flour:

Oats transferred to mixing bowl with flour
Oats transferred to mixing bowl with flour
Oats transferred to mixing bowl with flour

Brown sugar was taken out:

Brown sugar taken out

Brown sugar was measured out:

Brown sugar measured out

The brown sugar was transferred to the mixing bowl with the flour and the oats:

Brown sugar transferred to mixing bowl

Baking soda was taken out and measured out:

Baking soda measured out

The baking soda was transferred to the mixing bowl with the flour, oats, and brown sugar:

Baking soda transferred to mixing bowl
Baking soda transferred to mixing bowl

Salt was taken out and measured out:

Salt measured out

The salt was transferred to the mixing bowl with the flour, oats, brown sugar, and baking salt:

Salt transferred to mixing bowl
Salt transferred to mixing bowl

Another bowl was placed on my kitchen scale, and the display set to zero:

Bowl placed on scale and tare weight set

Margarine was measured out:

Margarine measured out

The margarine was transferred to the mixing bowl with the flour, oats, brown sugar, baking soda, and salt:

Margarine transferred to mixing bowl

An electric mixer was brought to the mixing bowl:

Electric beater brought to mixing bowl

The ingredients were mixed thoroughly:

Ingredients thoroughly mixed

The ingredients in the bowl were roughly divided into two parts:

Ingredients in bowl divided into two parts

Mounting the date squares:

About half of the oat crumble mix was transferred to the baking pan:

Oat crumble transferred to baking pan

The oat crumble base was spread out over the whole surface of the baking pan:

Oat crumble spread over base of baking pan

The oat crumble base was flattened with an egg flipper:

Oat crumble base flattened
Oat crumble base flattened

At this point, after having only occasionally glanced at and stirring the dates in the pot on the stove, I took the pot off the stove, the mix having turned into a nice jammy consistency:

Cooked date filling with a jammy consistency

The cooked date filling was transferred to the pan with the oat crumble base:

Cooked date filling transferred to pan with oat crumble base

The date filling was spread roughly evenly over the base with a spoon:

Spreading the date filling with a spoon
Spreading the date filling with a spoon

The rest of the oat crumble was transferred on top of the date filling:

Second half of oat crumble transferred to baking pan

The oat crumble topping was spread roughly evenly over the date filling:

Oat crumble spread over date filling

I gently patted down the topping with my hand; note that I said “gently”:

Gently patting down the oat crumble topping
Patted down oat crumble topping

Baking the date squares:

The pan was placed in the preheated countertop oven, and a timer was set to about 35 minutes:

Baking pan placed in countertop oven and timer set to 35 minutes

When the baking was finished, the baking pan was taken out of the oven and placed on a cooling rack:

Baking pan placed on cooling rack

Once cooled (I did move the cooling along by placing the pan in the fridge for a while), the whole large date square was removed from the pan. Yes I tasted the bit of the base that was left behind: It was yummy!

Large date square removed from baking pan

I began cutting the large piece off-center, with a goal of cutting a 5 x 5 grid for a total of 25 pieces:

Cutting the date squares, starting from off-centre

Three more slices were made, in order to have five long bars:

Five long bars

The cutting board was rotated 90 degrees so as to continue with four more cuts, to have a total of 25 squares:

25 date squares!

… and since I implied that I still had a few leftover from last week, and that I outright suggested that this batch would be placed on a dessert table at this week’s lake association BBQ, I bagged up the freshly-baked date squares, and placed them in the freezer for later in the week:

Date squares bagged

And yes, of course they’re yummy — I got to taste a bunch of crumbs while I was cleaning up!

I’m a lumberjack and that’s okay …

(In case you’re wondering, here’s the link to wikipedia (and my archive), and to youtube (and my archive).)

During my holidays at the cottage this year, I had the usual plans: A lot of relaxing, maybe a bit of boating, possibly some cycling on some nearby cycling trails, definitely a lot of cooking especially at the beginning, mostly of desserts to be frozen for eating during my stay at the cottage, and of course, some wood splitting to fill up the wood pile. No matter that said wood shed is already three quarters full after last year’s work and what I did burn over the winter.

View of my wood shed that is already three quarters full
Side view of my wood shed that is already three quarters full

As you can see, I already had a lot of wood on my woodpile.

Part of my plans, nonetheless, involved cutting up a couple of big birch trees which we had had felled by a real lumberjack last autumn, because the trees were liable to fall any time, possibly the wrong way.

One of two birch trees felled on the property

I also had some branches and pieces of another birch tree we’d asked the real lumberjack to trim, for fear that said branches would eventually tear down our electrical and phone entry to the cottage:

More wood ready to be cut up, before I would start cutting up the felled trees

Early on during my vacation, I met friends at a flea market somewhat nearby to the cottage, and afterwards I welcomed them at the cottage for an afternoon meal and visit. However, that day, 21 July 2026, we had a little bit of weather at the cottage (here’s my archive).

My friends were ready to pack up anyway as it was starting to rain heavily, and there had already been a few rounds of lightning and thunder at that point. As it turns out, they had to drive through the worst of the weather!

In the meantime, the cottage lost power from 20260721 at 17:41, shortly after my friends had departed. I was slightly beside myself without power, receiving advice to pack up not even five days into my holiday to go home … but I waited it out, and I won my bet in sticking through it all. Yay Hydro-Québec! … but, I have just jumped a bit ahead of myself.

I almost immediately started making a lot of calls back home (good thing old fashioned phones usually work during power outages!) to get Hydro-Québec (the power company here in Québec, where I live) updates on the storm. Said updates went from:

  • 19:45 power return a mere couple of hours after the storm;
  • to noon on the following day;
  • to noon on the second day after the storm;
  • to still noon on the second day after the storm, but because crews had “finished” a lot of the work in the grouping around my address and the number of affected clients had dramatically dropped, it seemed that on said second morning, a work crew hadn’t yet been assigned to fix the branch of wires my cottage was on.

But again, I’m getting ahead of the story.

During the storm, I heard a tree fall; I figured it came from our spare lot beside the cottage. As it turned out, it was indeed from our spare lot, and it fell onto the road!

After the storm had passed, I went out onto the road to investigate, particularly since I could hear other people talking, and in fact said persons were walking down my driveway.

On the road, we found the following:

Fallen tree on road
Fallen tree on road
Fallen tree on road

As can be seen above, people were hoping to pass, and the person who usually deals with events such as this had appeared on site and began to cut up the tree, in order to clear the way.

Tree being cut up
Tree being cut up
Tree being cut up
Cut up tree placed on the side of the road, for later, collection of the long pieces for milling, and cleanup of the rest

The power came back on on 20260723 at about 11:35. As of this writing, we’re still waiting on Update 20260724: According to La Presse (here’s my archive) (yeah it’s in French, deal with it) and CBC news (here’s my archive) Environment Canada Northern Tornadoes Project (NTP) to announce whether has confirmed that it was indeed a tornado.

At this point, this story is going to take a bit of a detour.

During the power outage, I learned that my two Ryobi 7.5 Ah batteries for my lawnmower, using a Ryobi converter, can each power my cottage fridge for a bit over an hour on a full charge.

Ryobi 7.5Ah battery from my lawnmower on an inverter, which was used to power the fridge

To state what may be obvious, I had to protect two weeks’ worth of food and groceries and already-done baking in the fridge and freezer.

Fridge full of food (photo taken after power restoration)

After the storm but long before the power came back on, I learned from people with whom I’d spoken on the road, that the effects of the storm was worse but a kilometre or two north of me. I didn’t drive there, but I hear that it was like a disaster zone and would take several days to a week or more to repair everything.

Stories from neighbours convinced me to embark mid afternoon on a folly of a trip to secure a generator, something I could not fully convince myself that I’d need after a hopefully short period of time.

I went down to a nearby city (Lachute) to get a generator for the fridge … but between gasping at the prices, trying to figure out what I’d do with a generator after the power came back (or after I evacuated if it were to be too long), and remembering that I used to have an inverter for my car which I had used before to power the same fridge, I decided to buy a new inverter instead. Immediately prior to leaving on the folly of a trip, I brought with me my lawnmower batteries to recharge at the community centre as a backup plan, since I had also learned that the power had already been restored there.

Inverter meant to be attached to a car battery

On the way back to the cottage, I stopped at the community centre, and I spent about two and a half hours at the centre charging my two lawnmower batteries, and then I made it back to the cottage at approximately 8pm.

As it was starting to get darker (and outright dark by 9pm) I found myself a bit befuddled and I couldn’t quite grasp how to get the inverter to work; as such, I was pleased with myself that I had spent the time earlier to charge my lawnmower batteries, and one was set to work to get the fridge going for another hour or so before the battery drained, and in the process I also went to bed.

The next morning, I managed to get the purchased inverter working perfectly on my car engine, and the fridge was running for a bit over two hours before the power came back on.

At this point, I had a couple of priorities:

  • take a bath, which I couldn’t do during the power outage because the water system is a private system on the property dependent on electricity, putting aside the possibility of taking a swim in the lake beside the cottage — and when the power came back on, I was pleasantly surprised that the water in the hot water tank was still relatively hot after roughly 42 hours of no power, and therefore requiring little time for it to get back to temperature;
  • and wash the dishes from my entertaining on Tuesday!
Dishes from the previous two days, including a large number from my visitors on Tuesday, after washing

… And at this point, the little detour has come back to the wood story.

After finishing up the dishes, I could tell that there was activity going on on the road where the tree had fallen: I ended up helping the person who maintains the roads clear up the tree that he’d cut up a couple of days earlier, mainly during the part when he was shredding the branches less than 3″ thick.

I asked what he was going to do with the rest of the wood, viz. the branches larger than 3″ but which were not the main trunk wood that he had recovered; I already knew from a couple of days earlier that he’d said he’d take the main part of the tree trunk so that he could season the wood, and then mill it and dry it out for lumber. As such, I said I’d take the rest — which was substantial — that he would have otherwise driven to the local ecocentre (here’s my archive) (yes, it’s in French, deal with it.)

Here is a photo of the branches packed into my car:

Branches loaded into my car

A little note at this point: The person who was leading with clearing the road noticed my car filled with the wood, and “strongly suggested” (jovially, though with an air of being serious along the lines of “they may feature your story, and perhaps even give you a credit”) that I take photos in order to send to the manufacturer to tell a story of how I use my car … whether I end up doing this remains to be seen, but in the meantime, I mounted this post. 🙂

And, now I have this pile of wood to cut up to place in my wood shed … while you can see on the left of the photo, just behind the propane tank, one of the birch trees that was felled last year, that at this point will at best be cut into logs for seasoning for another year, and hopefully be kept somewhat out of winter snow and spring wetness!

Now larger pile of wood to be cut up and split

A second post “I’m a lumberjack … — Part Deux” was mounted to showcase the actual woodcutting and splitting, and stacking of the split wood, that for the purposes of this post, are left to the implied and unseen.

And as for the rest of the Monty Python sketch … well it’s as old as I am, and it’s still funny!

Vidéo de présentation téléchargé! (Presentation video uploaded!)

Suite à mon article de blogue “Going down the rabbit hole of legacy software installation“, j’ai présenté le sujet au rencontre mensuel du 03 mars, 2026, (archive) de Rencontres Linux Québec.

Le vidéo est disponible sur ce site, malak.ca, et par voie du canal youtube ici. Mes diapositives sont disponibles ici.

Merci à M. Pierre-Luc Daoust pour l’édition du vidéo, M. Éric Bélanger pour la gestion des sites web et YouTube, et bien sûr l’inconparable M. Martial Bigras, d’avoir créé les conditions gagnantes afin que la présentation puisse prendre place! (Et un grand merci à M. Éric Cothenet pour son encouragement initial!)

*****

Following my blog post “Going down the rabbit hole of legacy software installation“, I did indeed make a presentation on the subject at the March 03, 2026 monthly meeting (here’s my archive) of my local Linux club Rencontres Linux Québec.

The video is available on this site, malak.ca, as well as on our youtube channel here. My presentation slides are available here.

Thanks are due to M. Pierre-Luc Daoust for processing the video, M. Éric Bélanger for the website and YouTube channel management, and of course the incomparable M. Martial Bigras, for having created and maintained such a great club where great presentations, as well as my humble presentation, could be made! (And of course a big thank you to M. Éric Cothenet for his initial support!)

And yes, it’s all in French. Deal with it. 🙂

WordPress updated again, more recipes added, and recipe updates

Yet another note to underline that WordPress on www.malak.ca has been updated, this time to version 6.9.4. And, when I was checking, I deleted 3,344 pending comments — I have long since stopped inspecting them 100 at a time for the possibility of a legitimate post; though I did notice that this time around, about 1,400 (presumably) spammy comments were lined up for my post on making Sour Cream Muffins! 🙂

New recipes:

  • Savoury Pork Custard: A recipe developed with — actually initially proposed by — ChatGPT to create a pork based dish that is very soft.
  • A Tiramisu-inspired Layer Cake: A recipe based off a “quick tiramisu” seen on a “30 minute meals” show, and reworked again with the help of ChatGPT. Tasty! (Optionally) Uses the loaf cake version of my Plain Cake. At this moment, the recipe is still an early draught along the lines of a “Release early, release often” model (here’s my archive).
  • Pulled Beef: Basically, beef cooked in the kitchen braising or stewed beef method. The first time I made it, it was a spot on recreation of what one would expect! (Adapted from my pulled pork recipe for beef, with … the help of ChatGPT.)

Updated recipes:

  • Pulled Pork: A recent addition, but listed as “updated” because I had already transferred this recipe to malak.ca/food several weeks ago. Pulled pork cooked in the kitchen braising method. This has become a recent favourite! The second time I brought it to a church dinner, it was sufficiently popular for it to be characterized as “Don’s Famous Pulled Pork” — much to my amusement, given that in those circles it is more my vegetable soup that would be characterized as “famous” when associated with me, while another parishioner’s pulled pork would best characterized as the “famous pulled pork” in those circles. 🙂
  • Vegetable Soup: Updated a couple of months ago; I don’t recall the latest updates.
  • Bacon Wrapped Chicken Pieces: Updated to suggest pairing their preparation with my turkey stuffing / dressing should the latter be prepared for its own sake sans turkey.
  • Turkey Stuffing / Dressing: Updated to include a cooking section, including to suggest pairing with the bacon wrapped chicken pieces if cooked for its own sake sans turkey.
  • Barbecups: General updating, the specifics of which I no longer remember, after making them a few weeks ago.

Enjoy!

Going down the rabbit hole of legacy software installation

Background to this post:

I started using the internet in 1994, using a dial-up account that offered access through a telnet unix terminal using the command-line.

One of the commands / pieces of software I discovered was talk, a basic one-on-one chat programme:

talk programme

Besides amusing myself by using it to chat with my brother when he was online at the same time as I, it actually had a useful application.

I was involved in Rovers at the time, a young adults organization, and I had put up a web page describing the Rover Crew to which I belonged on my website. I was contacted by a Rover in Adelaide, Australia by email in the spring of 1995; he’d found my website, and he was temporarily moving to Montreal in Canada where I live, to work. He was looking for a few building blocks for life outside of his new job in a new country. We negotiated, by email, for a live chat; as I recall, he had suggested IRC, but I was not familiar with IRC at the time, so I suggested talk, to which he reluctantly but nonetheless agreed. (A minor hiccup was that I had suggested a time for the chat as a function of GMT; I was online at what I thought was the appointed hour, but he only showed up an hour later. I was fortunately still online; I figure that I hadn’t properly taken Daylight Savings Time into account when I suggested the hour.)

I live in Montreal (A tag, upper right) in eastern Canada; my friend was living in Adelaide (B tag, lower left) in southern Australia

After our little chat, we continued exchanging emails leading up to his arrival in Montreal. He came to Montreal, joined my Rover Crew, stayed for about three and a half years, and I adopted his cat when he moved back to Australia.

What this post is really about:

Fast forward to early 2026, and I wanted to contribute a short presentation at my Linux club. I looked at some of the recent short presentations on regular everyday linux commands, and I was inspired to install talk on a couple of my machines, document the process, and put together a short presentation in which I would replicate the installation live while inviting others to install talk at the same time as I, and then initiate a chat with someone in the room.

This led me down a rabbit hole towards apparent failure (with a surprise ending).

(Note: Most of the screencaps for this post were created ex-post facto, be they principally on one computer, or on a second computer.)

I did a quick web search on talk, and I found a page at the Geeks for Geeks website (here’s my archive) — critically, dated in July, 2025. This site was a great source of inspiration: It contended that installing talk could be done, using my Linux distribution (Fedora), the article was relatively current, and the procedure seemed quite simple.

The first hint that the Geeks for Geeks procedure wasn’t going to work should have been that for Fedora (and RHEL), the article invoked the yum command. Despite the fact that Fedora has been using dnf since Fedora 22 in 2015, and RHEL 8 in 2019 (DNF(software) on Wikipediahere’s my archive), this didn’t faze me since other than noticing it, I knew of yum and its historic use — in fact, I was around using yum during a substantial period of said historic use — and in my mind the two are interchangeable. (Indeed they are to a nominal degree, since at least for RHEL, according to the Geeks for Geeks website, yum is aliased to dnf (here’s my archive.) Oh, no matter that the same website, despite knowing that yum is obsolete, is still using it in its articles as a current command. 🙂 )

note: for the rest of the article, whenever an instruction needs to be done with root privileges, I did so directly as root, instead of using the sudo command.

Installing talk and talk-server:

I began following the instructions for installing talk:

dnf install talk from the Fedora repositories

… and for installing talk-server:

dnf install talk-server from the Fedora repositories

This seemed good. I figured that if the software was in the Fedora repositories and that it installed, it should work.

talk package page in the Fedora repositories

Invoking the xinetd daemon:

I then followed the instructions to create two files called talk and ntalk in the /etc/xinetd.d directory. Another hint that this exercise wouldn’t work was that the /xinetd.d directory didn’t exist on my system, and that I had to create it; but, I forged on. I created the directory, and then the specified files:

/etc/xinetd.d/talk file created
/etc/xinetd.d/ntalk file created

The next instruction was to restart the xinetd.d server:

Failed effort to restart the xinetd.d service

Receiving an error message that the xinetd.d.service was not found finally made me a bit suspicious, and I checked if and when the xinetd.d service had been deprecated in Fedora. The last reference in Fedora I could find was the xinetd.d package for Fedora 33 (here’s my archive), while a post in Reddit suggested, without apparent reference, that xinetd.d was deprecated in Fedora 34 — in April, 2020, about five full years before the Geeks for Geeks article describing how to install the talk command was written!

Reddit comment stating (without reference) that xinetd.d was deprecated in Fedora 34

So at this point, there were two prior points in time at which I should have figured that the Geeks for Geeks procedure lacked a solid basis for reliability, in addition to this last definitive hint.

ChatGPT consulted:

Despite being suspicious of AI given the current hype surrounding it, and widespread stories of its (sometimes more than) occasional invented results (here’s my archive), I consulted ChatGPT.

Consulting ChatGPT on the subject

So the underlying project objective appeared to have some merit … but at this point, I began diving into a rabbit hole: The obvious rabbit hole of installing legacy software on a modern OS, and perhaps less obviously, a rabbit hole involving placing a lot of faith in AI. (As in, despite using Linux for almost 20 years, and having been exposed to UNIX for over 10 years before that, I don’t think I know enough about Linux to fully evaluate the advice and instructions ChatGPT gave, and whether its apparent confidence in giving advice at each step, let alone its ultimate determination, were based in any merit.)

To wit: After ChatGPT suggested that I confirm the presence of the binaries I said I’d installed, it suggested that I create some socket files, as well as some service units, to enable the new services, and finally check on their status.

Setting up sockets:

Creating socket files
Enabling the socket files
Checking status
Checking status

Services were enabled:

Reloading and enabling the sockets

Firewall changes:

Ports 517/udp and 518/udp were activated in my firewalls (error messages betray the fact that the screenshot is a recreation ex post facto 🙂 ):

Adding the ports to the firewall

I tried start up talk again at this point … and it didn’t work. Apparently, the “Unit talk socket has a bad unit file setting” and the “Unit ntalk.socket has a bad unit file setting”.

Correcting the sockets files for systemd:

The socket and service files were corrected:

Sockets units settings to be corrected
Service units file to be corrected

Daemons were reloaded, and enabled with:

# systemctl enable –now talk.socket ntalk.socket

However, a status check:

#systemctl status talk.socket ntalk.socket

revealed:

Errors after performing a systemd status check

ChatGPT diagnosed this as my having previously incorrectly created a talk.service file.

Correcting the talk.service and ntalk.service files

Daemons were reloaded, and the status checked; this time, with the above fix, the setup seemed to work properly.

Instructions restated, and installing on a second machine (my laptop):

At this point, with ChatGPT’s blessing and a restatement of the updated instructions …

Midway summarized instructions so that I could install talk on a second computer

… I repeated the process on a second laptop, connected to the same network.

Once the installation was complete on the second laptop, I typed in:

$talk malak@malak.local

at the command line from my laptop:

Trying to initiate the talk command from my laptop, toward my desktop

No route to host:

This failed with a “no route to host” error message from each machine. I reported back to ChatGPT:

ChatGPT went on to say how to get the local ip address for each computer on the network, because the firewalls on each machine were rejecting access to UDP addresses, recommending that I therefore use the individual computers’ IP address instead of the local computer names.

Using IP addresses instead of hostnames:

On each computer, at the command line (as a regular user) I used:

$ip addrshow

Determinging the IP address on my desktop, an exercise repeated on my laptop

… and to try running:

$talk user@192.168.X.Y on one machine, and:

$talk user@192.168.X.Z on the other machine,

such that I substitute in my username and the respective addresses from above.

This again failed.

Limiting to IPv4:

ChatGPT suggested that if that were to fail, that I should modify the following files:

/etc/systemd/system/talk.socket

/etc/systemd/system/ntalk.socket

to listen on either port 517 (talk — client) or 518 (ntalk — server), then reload and restart the services:

Checking if SELinux is in play:

ChatGPT also suggested that I run:

# ausearch -m AVC -ts recent

to check if SELinux was the issue. It wasn’t.

Checking to see if SELinux was blocking the connections

So I ran the talk command again. This time, I got a different error message with the talk client:

the other machine does not recognize us

So once again, I consulted ChatGPT.

Modifying the /etc/hosts files:

The /etc/hosts files on each computer were edited with the respective information for each computer:

/etc/hosts file on both systems modified to specify the local IP of each

I tried again, as per ChatGPT’s directions, to try from each computer, and my connection was refused, in the following case, my laptop:

Connection refused by my desktop

Note that I finally realized later that this might relegate the use of the talk command on these machines, on my home network — meaning, that it would likely not be a useful fix for general use, at least not without either a script that integrates all the above (and probably more), including a way to include other computers in a range of IP addresses, or a rewrite of the software. (No doubt a dubious effort, given the number of chat programmes that have been written, reworked, and so on, since talk was commonly in use, decades ago.)

Correcting to allow receiving messages:

ChatGPT suggested a fix in the mesg command:

Invoking the mesg command

As well, ChatGPT recommended to modify the /etc/profile file to include the mesg y command:

Adding “mesg y” to /etc/profile

I still couldn’t get talk to work. “Your party is refusing messages”.

Messages refused:

ChatGPT said to make sure that the terminal on both systems was writable with:

chmod g+w $(tty)

Changing permissions for the terminal

Trying two terminals on one machine:

At this point I think that I was losing track of ChatGPT’s suggestions and not properly implementing them all.

Nonetheless, in skipping a few steps, I thought I was following the suggestions when I chose one machine — in this case, my desktop — and opened up two terminals, and tried to initiate a chat on the same machine between both terminals:

Two terminals on the same machine, with one instance of talk already active (but having seen what comes up on the next screenshot)

Once set up, and ready to try, I had the command line command set up:

Connection refused between two terminals on the same machine

Messages were still being refused, even when coming from within the same computer.

Waving the white flag of surrender:

At this point, I decided that it was time to raise the white flag of surrender, on the basis that the talk command, despite being present in the repositories for Fedora 43 and nominally packaged for Fedora 43, is a legacy package no longer intended for current general use.

But wait! There’s more!

Rereading ChatGPT’s instructions later — during the construction of this post and then tested during one of the many re-reads and edits of this post — I realized that ChatGPT’s instructions included trying to use a “real” tty console as part of the test, not simply two Gnome graphical environment terminals.

Missed suggestion to use the console (tty)

Whaddya know: It worked there!

Looking around revealed four such terminals on my desktop, labelled tty3, tty4, tt5, and tt6, respectively accessed by Ctrl-Alt-F3, Ctrl-Alt-F4, Ctrl-Alt-F5, and Ctrl-Alt-F6. (Reminder to myself: To get out of the consoles, use Ctrl-Alt-F2.)

So first, I opened up a console at tty3 on my desktop, and I typed:

$talk malak

Which opened up the talk interface, and in which I typed a message:

Message typed on my desktop’s tty3 “hello / this is a test”

Then I opened up a console at tty4, and I was able to launch talk, finding the “hello” and “this is a test” messages from tty3 appearing in the lower section:

Message received on my desktop’s tty4 “hello / this is a test”

So this was an aha! moment.

Then, after entering a console on my laptop:

Logging into a console on my laptop

I initiated a talk session with my username on my laptop (assuming that I still needed to use IP addresses):

$talk malak@192.168.2.19

Starting a talk session on my laptop, calling a user on my desktop

… and on one of the console terminals on my desktop, I received the following message:

Message received on my desktop, originating from my laptop

This gave me new information: I could also use the computer names in addition to the IP addresses.

On the desktop, I therefore entered:

$talk malak@deltaflyer

… and I had the two machines, uhm, talk-ing to each other.

Message initiated on my laptop in the upper section: “hello this is a test from my laptop”, appearing in the lower section on my desktop

Final Thoughts:

First, to my eventual surprise, I learned that talk still works on Fedora — albeit only in “real” tty consoles. I haven’t checked how much of the above is required to make it work, but I have a few ideas about which are necessary, and which are not (for instance, use of computer names instead of requiring IP addresses is possible, although I’m not sure whether having modified the /etc/hosts file helped with that.)

Next, I may still have a presentation somewhere, perhaps characterized as a bit of an amusing cautionary tale regarding trying to install several decades-old, obsolete, legacy software on modern systems.

Perhaps, it might be an amusing tongue-in-cheek cautionary tale with a side of self-deprecation about trusting AI on subjects about which one doesn’t know enough; fortunately, it seems that ultimately, I was not led astray.

Perhaps, it could be presented as an amusing counterpoint to another presentation lauding the value of AI in a similar situation, being used by someone who knows more about the subject at hand (in this case, Linux) and how to better interpret the provided results — instead of simply trusting the AI blindly.

Or, perhaps, while I generally was not led astray and ChatGPT indeed did help me fulfill my goal … could the exercise act as an inspiration to learn about maintaining critical — and possibly migrating away from — legacy software on modern software and hardware? COBOL, anyone? And, perhaps in the process, learn how to ask the right questions of the likes of ChatGPT in order to get what I really wanted — not just what amounted to a proof of concept (which to be fair, that which I wanted amounted to a proof of concept, even if it took a while for me to realize it), but an actual, useful, running piece of software?

20260602 update: I made a presentation to my linux group in March, 2026, and the video is finally available on our YouTube channel, as well as on malak.ca. There is a blog post announcement about it here. I presented the over all concepts, using some of the screencaps from this post, and praised those who work with legacy software. ChatGPT was merely an incidental character in my story, along the lines of “I consulted ChatGPT, sometimes relied a bit too much on it but only so much because — I don’t think, anyway — I’m not a complete idiot”. Of course, no coordination was made with anyone showcasing either real-life legacy software maintenance, or ChatGPT.

Yes, it’s in French. Deal with it. 🙂

WordPress updated and recipes added

Just a quick note to note that:

www.malak.ca blog:

  • The WordPress on malak.ca was updated from 6.8.3 to 6.9;

Food / recipes:

  • The following new recipes were added to my collection:
  • The following recipes were updated:
    • stewed apples;
    • chocolate buttercrunch (“English Toffee”); along with among other things generally updating the recipe text, a section was added stressing the importance of and outlining the mise-en-place (here’s my archive) that I find to be crucial to this recipe (as in, “of course mise-en-place is always a good practice and a good idea and really helpful when cooking, however in the case of this recipe, mise-en-place is essential to the success of, and simply, the execution of this recipe“);
    • plain cake, mostly adding for the addition of the optional use of fruit and stewed fruit, the use of either a loaf pan or a square cake pan, and allowing for the distinction between the use of either the “old fashioned” greasing and flouring of the pan method and the parchment paper method;
    • ham and cheese omelette, updating principally as a function of also using the recipe as a base for the above-mentioned goat cheese omelette;
    • chocolate chip cookie dough cheesecake squares, mostly for minor turns of phrase, as well as any updates I may or may not have done (oops bad memory, it’s been a while!) since the previous version;
    • shortbread cookies, again mostly for minor turns of phrase, as well as dividing some “multi-step” instructions, and fleshing out a number of implied steps (call my recipe style ridiculously verbose and overly detailed … in order to … live up to a lesson learned at a computer conference I attended in 2011. 🙂 )
    • 20260105 updated: The recipe for roast potatoes was updated yesterday.

Happy cooking!

PS: as a personal reference, I have made seven batches of chocolate buttercrunch — representing 3-1/2 pounds of butter, over 4-1/2 pounds of chocolate, over 3-3/4 pounds of sugar, and over 200mL of maple syrup — over the past roughly two weeks, to plan for Christmas giveaways. That’s about 90 to 91 bags of 60g of crunch each!