Software algorithms, opinions, suggestions and development techniques from Jason Ross, a software developer and architect based in Calgary, Alberta, Canada.
Every now and then I try to publish something that's more hardware related than my usual articles. This time I'm going to describe how to fix the AUX input for a Third Generation (2007-2011) Honda CR-V. Why so specific? Because it's my wife's car, and I couldn't find out how to change it anywhere else.
There's a stereotype of "It depends," being the answer that engineers always give to any question. Everyone knows this and, apparently, it's a source of general frustration for non-engineers. So, as it's so upsetting to others, why do we insist on saying it?
If you've ever been on call, you'll know the worst time to get any alerts is during the night. You're asleep - suddenly your phone wakes you up because something has gone wrong, and you need to fix it now. The reason this is the worst time is because nobody is at their best when they've only just woken up or, even worse, if they haven't even slept yet. There are medical studies (reference) that…
In a previous article ( What Are ETL / ELT Pipelines? ) I explained how ETL and ELT pipelines are essential when you're populating a database. As I said there, "Almost every enterprise system has at least one database". If you've been a software engineer for more than about five minutes you'll know there are many different databases available, so how should you decide which one to use, why is it…
Almost every enterprise system has at least one database. It doesn't matter whether it's an RDMS or NoSQL system, dig deep enough and you'll find it. Typical enterprise databases hold almost inconceivable amounts of data - petabytes in many cases - whether in carefully crafted tables behind stored procedures and functions, or dropped into JSON records in NoSQL databases. Look around and you'll…
When you're used to developing on Windows, you've almost certainly used IIS to serve web pages, applications, APIs etc. This was always my experience and, like so many other Windows products, it spoils you by doing a lot of the administration automatically. Moving to a Linux-based job was a bit of a shock - I asked which web server we were using and was told " nginx " a "reverse proxy", with no…
Sometimes you really need to know your machine's public IP address, so you can use it in your scripts or applications. Not just the IP address on the local network - that's easy unless you need the IPv6 version - but the one that the rest of the internet sees. How can you find this? You could just go to one of the many web sites you find by searching "What is my IP address", but then you need to…
If you've read my article Infra-Red Imaging With The Grid-EYE AMG8833 Sensor , you'll have read how easy it is to connect the sensor to a Raspberry Pi and to start getting Infra-Red images. The software that I'm using to display the images, from https://github.com/makerportal/AMG8833_IR_cam , gets the job done but it's quite slow. How slow? Well, on a Raspberry Pi 3 it displays 3 or 4 frames per…
If you're using ssh and authenticating your connections with certificates, you can use a different certificate for each connection. This is very useful if you want to keep everything separate, but it won't be long before you try to log into a machine using: ssh user@<ip address> and you get an error like: Received disconnect from <ip address> port 22:2: Too many authentication failures…
When you develop with Python, you normally use PyPI as the source for your package dependencies whether they're third party or your own. Poetry is a great way to handle this administrative burden - at least it's better than using the regular pip and requirements.txt method. But what if you don't want everything to come from PyPI? What if you want to implement your own private package index on your…