Since OpenAI released its long-awaited Code Interpreter plugin for ChatGPT, I have been playing with it extensively. Throwing everything at it, from a zip file of a large repository and asking it questions to uploading spreadsheets and generating imagery.
It appears that most people are using Code Interpreter for what it was intended for, working with data and code, being able to perform analysis and other awesome things on documents and so on.
As developers, we are always looking for ways to make our lives easier, and that often means bringing in third-party libraries and tools that abstract away the nitty-gritty details of specific tasks. Langchain is one such tool that aims to simplify working with AI APIs (in reality, it doesn’t). However, as we’ll discuss in this blog post, you might not need Langchain at all. In fact, using direct APIs, such as the OpenAI API, can often result in better performance and less complexity.
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.