Quantcast
Channel: Adam Cameron's Dev Blog
Browsing index pages (1345 articles)
↧

Setting up dev/prod environments with Lovable and Supabase

G'day:This is one of those "we really should have done this from the start" situations that catches up with you eventually.We've been building an e-commerce admin application using Lovable (an AI...

View Article


Lovable and its seemingly self-defeating pricing and business model

G'day:Sigh. I watched a video about Lovable the other day, which in and of itself was entirely adequate, and provided some interesting information in that way that one paragraph of text could also...

View Article


TypeScript: any, unknown, never

G'day:I've been using any and unknown in TypeScript for a while now - enough to know that ESLint hates one and tolerates the other, and that sometimes you need to do x as unknown as y to make the...

View Article

Setting up a Python learning environment: Docker, pytest, and ruff

G'day:I'm learning Python. Not because I particularly want to, but because my 14-year-old son Zachary has IT homework and I should probably be able to help him with it. I've been a web developer for...

View Article

Violating Blogger's community guidelines. Apparently.

G'day:Earlier this evening I published TypeScript decorators: not actually decorators. And about 5min after it went live, it vanished. Weird. Looking in the back-end of Blogger, I see this warning:This...

View Article


TypeScript decorators: not actually decorators

G'day:I've been working through TypeScript classes, and when I got to decorators I hit the @ syntax and thought "hang on, what the heck is all this doing inside the class being decorated? The class...

View Article

TypeScript mixins: poor person's composition, but with generics

G'day:I've been working through TypeScript classes, and today I hit mixins. For those unfamiliar, mixins are a pattern for composing behavior from multiple sources - think Ruby's modules or PHP's...

View Article

TypeScript constructor overloading: when one implementation has to handle...

G'day:I've been working through TypeScript classes, and today I hit constructor overloading. Coming from PHP where you can't overload constructors at all (you get one constructor, that's it), the...

View Article


TypeScript late static binding: parameters that aren't actually parameters

G'day:I've been working through classes in TypeScript as part of my learning project, and today I hit static methods. Coming from PHP, one of the first questions that popped into my head was "how does...

View Article


JavaScript Symbols: when learning one thing teaches you fifteen others

G'day:This is one of those "I thought I was learning one thing but ended up discovering fifteen other weird JavaScript behaviors" situations that seems to happen every time I try to understand a...

View Article

TypeScript namespaces: when the docs say one thing and ESLint says another

G'day:This is one of those "the documentation says one thing, the tooling says another, what the hell am I actually supposed to do?" situations that seems to crop up constantly in modern JavaScript...

View Article

Image may be NSFW.
Clik here to view.

Setting up a TypeScript learning environment: Docker, TDD, and the inevitable...

G'day:This is another one of those "I really should learn this properly" situations that's been nagging at me for a while now.My approach to web development has gotten a bit stale. I'm still very much...

View Article

Symfony Scheduler: Handling task failures properly

G'day:Right, so a couple of weeks ago we built a complete database-driven scheduled task system for Symfony. We got dynamic configuration through a web interface, timezone handling, working days...

View Article


Setting up local HTTPS with mkcert for Docker development

G'day:I'd been putting off setting up proper HTTPS for local development because I figured it'd be a right pain in the arse. Turns out it's dead straightforward when you use mkcert instead of messing...

View Article

Image may be NSFW.
Clik here to view.

Sending emails from Symfony applications

G'day:I needed to add email functionality to a Symfony app - specifically, sending templated emails when the application receives webhooks from external systems. Simple enough requirement, but I had...

View Article


Symfony Scheduler. All the bugs in that initial implementation...

G'day:Right, so yesterday's article covered building a database-driven scheduled task system that actually works with Symfony's scheduler. We got dynamic configuration, timezone handling, working days...

View Article

Image may be NSFW.
Clik here to view.

Building a database-driven scheduled task system in Symfony (or How I learned...

G'day:In previous roles, I've always had scheduled tasks sorted one way or another. In CFML it's dead easy with <cfschedule>, or the sysops team just chuck things in cron and Bob's yer uncle. But...

View Article


Image may be NSFW.
Clik here to view.

Symfony forms

G'day:The next thing on my "things I ought to know about already" todo list is Symfony forms. I'm aware they exist as a thing as I've seen some code using them, but don't know much beyound them being a...

View Article

Quick look at event-driven programming in Symfony

G'day:First up: this is not a very comprehensive look at this functionality. I just wanted to dip into it to see how it could work, and contextualise the docs.I had a look at Symfony's messaging system...

View Article

Shared/distributed locks in PHP with Symfony locking

G'day:This is another one of these issues that got into my mind at some point, and I never had a chance to look into it until now.Previously I was working on a CFML app, which had code that could not...

View Article
Browsing index pages (1345 articles)


Latest Images