RSSAmplifier

Blog

Software Pragmatism - Home

Software algorithms, opinions, suggestions and development techniques from Jason Ross, a software developer and architect based in Calgary, Alberta, Canada.

softwarepragmatism.comRSS feed ↗11 posts

Latest posts

Replacing the AUX Port In A 2007 Honda CR-V

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.

Why Do Engineers Always Say "It Depends!"?

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?

The Run Book

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…

Five Minute Introduction: PostgreSQL

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…

What Are ETL / ELT Pipelines?

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…

Five Minute Introduction: nginx

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…

What Is My Public IP Address?

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…

Why You Should Be A Mentor

Once you've got more than a few years' experience as an engineer, people generally expect you to start mentoring others. How should you approach this?

Infra-Red Imaging With The Grid-EYE AMG8833 Sensor - Part 2

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…

ssh Returns "Too many authentication failures"

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…

Using Custom Package Indexes With Poetry

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…