- 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.
- Details
- Written by: Jason Ross
Have you ever written or used a system that runs perfectly when you test it on your machine, keeps running well through test, but then starts to slow down rapidly when it has to process more data in production?
Does adding more customers cause your system to slow down disproportionately?
When the company CEO stands up at meetings and says “We have x new customers!”, do you smile on the outside, because it's a good thing, but you're also thinking “This is going to cause so many problems!”
If you find yourself asking “Why has this code started to slow down so much?” you're in the right place.
- Details
- Written by: Jason Ross
Iteration is the process of repeatedly executing the same piece of code, usually on different data. This data can be taken from a collection, file, stream or any other source. A source that allows this is called “iterable”, and the object that allows code to iterate across the collection or source is called an “iterator”.
It all seems straightforward so far; let’s take a closer look.
- Details
- Written by: Jason Ross
We're supplied with data every day, but how do we know whether it's accurate, adjusted, inaccurate, or just made up?
Imagine you're the person that your family and friends turn to whenever they encounter figures, because "you know about this stuff". How do you help them? What if your manager asks you to check whether some data is credible or not? What about the figures the media publish? Is there a way to tell who to trust?
Thankfully there are plenty of ways to get an idea of how credible data is, but one that's fairly easy to start with is one that was discovered in the late 19th century, and formalized in the 20th: Benford's Law.
Read more: Are those numbers realistic or fake? Try using Benford's Law