Prep time: 10 minutes
Cook time: 30 minutes
Cooling Time: 1 hour
Yield: Makes about 10-12 sticks
I love the Darrell Lea Batch 37 liquorice. It’s distinctively liquorice, but the texture and flavour seem to be different to any other I have ever tasted.
Looking at the ingredients, it seems to be a traditional liquorice recipe with a few little additions. In the commercial production of liquorice, more specialised ingredients may be used. The flavour is primarily from liquorice root extract, which is more potent and has a distinctive flavour. In our version, we’ve substituted this with liquorice powder, which is easier for the home cook to source.
As whispers of an impending recession grow louder, it’s natural to feel a sense of trepidation. Economic downturns can be challenging, but they also harbour a less-told narrative of resilience, innovation, and opportunity. History has shown us that some of the most groundbreaking companies were born amidst economic turmoil. These tales of triumph serve as powerful reminders that even in the face of adversity, there lies a golden opportunity to build something extraordinary.
There has been a bit of talk about Lanchain lately regarding the fact it is creating a walled garden around AI apps and results in lock-in. In this post, we’ll debate the differences between Langchain and just using an official SDK. I assume you’re working with OpenAI, but we also have Anthropic and Hugging Face (amongst others) to consider.
To understand the differences, Langchain is a framework for building AI apps. If you are a developer wanting to throw something together quickly, it is brilliant for quickly knocking out AI API wrapper apps, especially the OpenAI GPT API.
In Aurelia 1, you could access the controller of an Aurelia component by accessing au.controller of an element. In Aurelia 2, there is a better way using the CustomElement.for method, which provided an element with a controller that will return it.
const dialogController = CustomElement.for(host.querySelector(".my-component") as HTMLElement); const dialogVm = dialogController.viewModel; You can also access a property on the element if you prefer using: element.$au['au:resource:custom-element'] – but the provided method might save you the hassle of having to type things if you’re working with TypeScript.
When will companies learn that despite some people wanting to be in an office, many people who have been given a taste of remote work during the pandemic don’t want to return to the office?
One of Australia’s largest banks, Commonwealth Bank, conjured a storm of epic proportions last month when it announced it wanted all 49,000 employees back in the office at least 50% of the time by July 17, 2023.
One of my favourite additions to Aurelia 2 is app tasks. These are framework-level entry points designed to allow you to run code at different points of the framework life cycle.
Recently, while porting over an Aurelia 1 application to Aurelia 2, I encountered a unique use case where code was being run inside configureRouter to asynchronously fetch data from an API to provide metadata for routes.
In Aurelia 2’s @aurelia/router package, you set routes using a decorator or a static routes property. How on Earth do you run code that touches the routes before the router gets them?
When migrating an Aurelia 1 application to Aurelia 2 recently, I had to deal with many routes I needed to convert tediously. As you might have discovered, the Aurelia 2 @aurelia/router is different to the Aurelia 1 router.
Not wanting to change 50+ manual PLATFORM.moduleName values, I opted for a regular expression. I hate RegEx because I don’t understand it, but you cannot deny its power. Here’s the solution I used.
There is a growing divide in a world filled with out-of-touch billionaires and misguided wannabes who follow their words as if they were holy scripture. On one side, we have the tech titans like Elon Musk, who believes that people are more productive in person and criticises those who advocate for work-from-home as being on a “goddamn moral high horse”. On the other side, we have the workers, many of whom have experienced the benefits of remote work and yearn for a more balanced life.
Who else had this on their 2023 bingo card? In the midst of a global cost of living crisis, two tech titans have presented us with an unexpected yet entertaining proposition: a cage fight.
Elon Musk, the audacious CEO of SpaceX and Tesla, has indirectly challenged Facebook’s Mark Zuckerberg to a cage fight. And funnily enough, Zuckerberg seems to be down for the challenge.
This playful feud started on Twitter, where Musk has been taunting Zuckerberg with zingers like “Zuck my 👅.” During an internal all-hands meeting at Meta last week, chief product officer Chris Cox told employees the company thinks creators want a version of Twitter that is “sanely run,” drawing cheers. In a recent podcast interview with Lex Fridman, Zuckerberg added, “I’ve always thought that Twitter should have a billion people using it.” which felt like a pointed jab.
Well, this is sad news. Nestle has announced they will no longer be producing the beloved chocolate-covered chewy caramel treat Fantales, which have been around for almost a century. I have fond memories of eating these as a kid, and I still buy them occasionally.
They are being discontinued because of declining sales and upgrades that need to be made to equipment at their Melbourne factory to keep producing them. I’m guessing the cost of living crisis and the rising cost of doing business are also factors.