sprinkler activation app

Sprinkler activation app - behind the scene

Originally posted on August 3, 2021 at kilolimacode.com

I was on LinkedIn a couple of months ago when I saw a post from Jabir Jamal, a fire safety engineer from Australia. He wrote a Python script that calculates the sprinkler activation time based on several inputs. If you’re not familiar with Python it’s a computer programming language. As mentioned, the sprinkler calculation was a Python script. In order to run the script the user needs to have a basic knowledge of Python. So, I commented on his post saying that he should create a graphical user interface (GUI) and an executable file. This would allow anyone not familiar with Python to run the program.

I’m not sure why I did it, but that weekend I went onto GitHub and grabbed the code for the sprinkler activation script. I spent a couple of hours and programmed a basic GUI. The app had two tabs. The first tab displayed the user inputs and the results of the calculations. The second tab displayed the sprinkler activation graph as an image. I sent a couple of screenshots to Jabir. I say I don’t know why I did it, but sometimes I like to see if I can do something. This was different in that it was someone else’s code. Also, there was a library that I had never used, so I wanted to learn a bit more about that as well.

Image showing the inputs for the sprinkler app
image showing the output graph from the sprinkler app

Jabir responded wondering if I wanted to collaborate and put it out to the world. To which I responded sure. Little did I know some of the frustrations that would arise. Previous to this, my coding had been in the seclusion of my home, figuring that nobody would ever see any code I’ve written. And I’m ok with that. But now we were talking about releasing this to the public. So, there were several changes and additions that needed to happen to this app. We discussed some of the changes and over the next couple of weeks and some back and forth we completed the project.

But behind the scenes there was a lot more going on. I’m someone that picked up coding a couple of years ago figuring that I could maybe help my kids out as they got older. As I did a bit more coding, I realized that it’s fun, and I enjoy it. Unfortunately, it’s been an on-again off-again process … mostly off-again until recently. But as a new coder there were things that I never considered. The biggest of which were versions of programs, dependencies and my abilities. Some of the issues I encountered may have been solved countless other ways, undoubtedly easier as well. But that is one of the many things I enjoy about coding, there are so many ways to solve a problem.

We had several iterations of the app. The sprinkler activation graph changed from an image file, to opening the graph in a browser window, to displaying a functional graph in a separate tab. Each iteration came with its own challenges. We also wanted to be able to distribute the app as a single file. This process was much more difficult than I had previously encountered, mostly because this app was more complex than anything I had done before.

After a series of trial and error, frustration, googling, reviewing Stack Overflow and fun we managed to complete the app. I mention Stack Overflow, because without this resource, I may not have completed the app. Interestingly enough I was taking a course on Udacity and an AWS engineer mentioned when she is given a programming problem, one of the first things she does is check Stack Overflow. So, I don’t feel so bad.

This was truly an example of the 80/20 rule. It was a great email to receive “YAYAY it is working now. So exciting.” I’ll be honest I was relieved when I saw that response. If you want to check out the sprinkler activation app you can download it here. I encourage you to check out Jabir’s YouTube channel, where he demonstrates the sprinkler activation app and provides a breakdown of the code. He also has several FDS and PyroSim tutorials. You can also read Jabir’s blogs. It was a great collaboration. I’m looking forward to working on some more projects with Jabir.