- Details
- Written by: Jason Ross
Along with iteration, recursion is one of the basic principals of software engineering. It can be a graceful solution to problems, but it's often misunderstood and it can have practical disadvantages.
- Details
- Written by: Jason Ross
Wordpress is a great site Content Management System (CMS). I've been using it a little - not for this site - and it works well. The only real problem I've encountered is that sometimes you want to add a plugin, and the menu entry that lets you do that isn't there.
- Details
- Written by: Jason Ross
Using Poetry to manage Python dependencies and virtual environments is much easier than the traditional requirements.txt
and other tools. When you want to release your package and make it available on PyPI, Poetry also lets you avoid the need to use the standard Python setuptools
setup.cfg
or setup.py
files, so it's much simpler and less confusing. If you'd like a brief introduction to Poetry, I'd recommend this article: Five Minute Introduction: Poetry.
Read more: How To Use Poetry to Publish a Python Package on PyPI

- Details
- Written by: Jason Ross
How can you coordinate processes to start after others have finished? How does this work on a single system? How about a distributed system? What if each server can be running a different operating system? How can one system communicate with another when it's finished a task?
Read more: Five Minute Introduction: Polling and Event Driven Systems

- Details
- Written by: Jason Ross
It’s almost Christmas, so you’ve dragged your Christmas tree out of the basement/garage/spare room/shed, where you’ve carefully stored it since last year. You look back fondly on how its lights twinkled, changed colour, flashed, and did all sorts of other Christmas tree light things. Best of all, because your tree uses the QuickConnect system, you didn’t have to worry about putting all those lights on – they’re already on the tree! Aren’t you pleased you spent several hundred dollars and bought a QuickConnect Christmas tree?
So, you set your tree up and plug it in, just waiting for the explosion of light that signals Christmas is almost here and...
Read more: My QuickConnect Christmas Tree Lights Don’t Work – How To Fix Them
- Details
- Written by: Jason Ross
I'm the only software developer in my family, so obviously I get the best laptop! Well actually that's a lie, I tend to use whichever fancy laptop my employer provides me with for work, and for my personal projects I inherit whichever of the kids' laptops has been most recently replaced.
My latest acquisition is an Acer Aspire E5-532, with 8Gb RAM and a 500Gb hard drive. It originally had a 1Tb hard drive but that died, presumably after being carried around school for several years by my son, so that needed to be replaced. Anyway, it's an improvement over the Toshiba I'm writing this on, so I decided to install Ubuntu on the new (well, ex-PS4 - don't ask!) disk.
This, is my story...

- Details
- Written by: Jason Ross
Many languages have the concept of "generators", structures which can be used to produce, or generate, objects of another type. Normally these objects are returned one after another as some sort of iterable collection.
If all of that sounds a little too vague, let's make it more specific: In Python, a generator is a function or object that returns a series of values.