I switched from using Vercel for my new web projects to Railway a while ago.
When the AI space heated up, vector databases became the new hotness. And a lot of the available choices are quite expensive or restricted. Pinecone is probably one of the better-known vector database providers and the favoured choice of many GPT users.
Finally, Railway now supports pgvector for PostgreSQL. You can use PostgreSQL as a vector database on Railway and ditch using multiple providers, as I was. I was using Supabase, which did the job nicely, but not having all my infrastructure in one dashboard was annoying.
I saw my favourite band, Thrice, recently at their Brisbane show, and unlike other Australian tours, they did a VIP thing where you could pay extra to meet the band, a Q&A, and a couple of songs.
Naturally, one of the questions that came up at the Q&A (presumably at all of their VIP meet and greets) is the subject of Horizons/West, the long-awaited sister record to Horizons/East, released in 2021.
The prospect of an AI tool that could learn from my blog and writing style and then write like me was tantalising. So, when I was being aggressively advertised reword.com – my curiosity was peaked.
Sadly, reword is a typical GPT wrapper. It’s a great idea, but it’s not anything special. It’s akin to those GPT wrapping tools that allow you to ask questions about PDF files and other forms of days with a fancy UI.
The realm of web development is teeming with choices, each technology vying for developers’ attention. On one hand, powerful libraries like React have revolutionised how we build web applications. On the other, there are Web Components—although not as “foundational” as one might think, given that they’ve been universally supported by browsers only since 2020. Yet, they are increasingly important in the modern web ecosystem.
With its massive ecosystem and community, React often becomes the yardstick against which other technologies are measured. This is especially true for Web Components. However, this comparative framework is unfair and fosters misleading criticisms stemming from overreliance on libraries like React. This post aims to disentangle these misplaced critiques and highlight why Web Components deserve to be evaluated on their own merits.
The Aurelia 2 Task Queue is a robust scheduler designed to address various challenges associated with timing issues, memory leaks, race conditions, etc. Unlike its predecessor in Aurelia 1, the Task Queue offers advanced control over synchronous and asynchronous tasks.
Comparison with Aurelia 1 While the term “task queue” may be familiar to those who have worked with Aurelia 1, it’s essential to recognise the fundamental differences in Aurelia 2. The new Task Queue is designed to prevent common challenges and offers enhanced capabilities and flexibility. In Aurelia 1, the task queue was notoriously known as something you used to execute code after rendering changes.
In Aurelia 2, lambda expressions bring a breath of fresh air to templating by enabling developers to write concise and expressive code directly within templates. A significant advantage of lambda expressions is that they allow developers to perform various operations without needing value converters, leading to cleaner and more maintainable code.
This article explores lambda expressions in Aurelia 2, emphasising filtering, sorting, and other operations that can be performed without value converters.
As someone who’s spent countless hours behind the glow of my computer screen, weaving retro-futuristic textures and creating beats on FL Studio, music production isn’t new to me (even if I am not that good at it). So, when I decided to step out of my comfort zone and into the world of physical music production hardware with the Akai MPC Live 2, I knew I was in for an interesting ride.
In modern web development, managing reactivity—how parts of an application respond to changes in data—is paramount. Aurelia 2, a robust JavaScript framework, introduces an elegant way to handle reactivity through effect-based observation. This guide will explore what effect-based observation is, why you might want to use it, and how to implement it in your Aurelia 2 applications.
What Are Effects? Effects are functions that are automatically re-run whenever specific dependencies change. These dependencies are often properties or variables accessed within the effect function. By utilising effects, developers can create a responsive system where functions are automatically invoked when the values they rely on are altered.
Aurelia 2, a modern front-end JavaScript framework, introduces a powerful feature called enhance that allows developers to breathe life into static HTML by binding Aurelia behaviours to existing DOM elements. If you worked with Aurelia 1, you might already be familiar with enhance functionality. This isn’t a new feature added to Aurelia.
What is enhance in Aurelia 2? The enhance function is a powerful feature of Aurelia 2 that provides a mechanism for developers to leverage the power of Aurelia within existing HTML pages. Essentially, it gives Aurelia the capability to enhance an existing DOM tree by associating Aurelia’s custom elements, custom attributes, or template controllers with the DOM nodes. This feature can be exceptionally useful in scenarios where a web page is partially server-rendered or when a DOM fragment needs to be added to the HTML document on the fly.
Playwright is exceptional for end-to-end testing. It can do so much, from interacting with forms to mocking server requests and a heap of other things. In this article, we’ll go over 12 tips and tricks (some you might already be aware of).
1. Parallel Testing Playwright makes it easy to run multiple tests in parallel. This is done by creating multiple context objects, which are isolated and can run in parallel without interfering with each other. Here’s an example: