Four years ago I was taking part in a coding boot camp called Code Institute. At the time I had already been working as a web developer for just under a year and a half, but I was self taught and felt extremely limited in what I knew and was able to achieve. I've been meaning to do a write up about my time with Code Institute, but that is not this post, hopefully soon though.
Today I want to talk about Boggle, a word game that I was never really that good at, but always enticed by. If you've no idea what I'm talking about, then maybe take a look here.
When I was taking part in Code Institute's boot camp, the 2nd stream of study was Python, a language that, until that point, I knew nothing about. During the Python module there was a sort of mini project, to build a clone of the game Boggle that would draw the 4 * 4 grid of letter tiles and also give a list of valid words that could be generated via the 16 characters that were on screen.
I honestly can't remember how long I spent working on the game (I didn't put it under git until after I completed it), but I know it wasn't all that long. I completed the basic requirements and put it up on GitHub then promptly forgot about it, until this week. A few days ago I got an email from GitHub saying a new pull request had been opened against the project and, if I'm honest, it really took me by surprise. I had completely forgotten about the project and wondered why anyone would be looking at it, never mind submitting a PR against it, after all, there wasn't even a readme on the repository to explain what it was.
I had a look at the submitted change and initially thought about just closing it and maybe deleting the project seeing as I clearly didn't use it. The next day I got another email, the change author had added a message to the pull request thanking me for the project and that he had used it to play boggle on a conference call with around a dozen people and it had made scoring simple. I looked at the committed changes again and realised I'd made a pretty big error when creating the game. The physical game uses a grid of 16 dice, each die has 6 letters. In my version of the game however, I wasn't using the concept of dice, instead I was picking 16 random characters out of the English alphabet, so theoretically it was possible to get combinations of letters in my version that were not possible in the physical version.
After poking around at the code I realised that the changes made much more sense in the context of how the physical game is played. Not only had this person modified it to use dice instead of just random characters, he'd also added in the score for each word to make things even easier. At this point I decided that I'd definitely pull in his changes as they really made sense and made the game more complete. I asked for 1 relatively minor tweak and once that was done I merged the change. I also decided to finally include a readme and license for the game, two things that are pretty much a requirement for anything that's on GitHub these days.
So, why am I writing about this? Well, the whole thing got me thinking about how what we do as developers, whilst maybe insignificant at the time, has the ability to impact others in a way that we can't even begin to think about. The author of the pull request, a guy called Brian from Missouri whom I'd never met or even spoken to, had searched online for 'Python Boggle Solver' and my code repository was the first that came up in the search results. Not only was my code the first result that came up, but it was useful for what he was wanting to achieve. What made it even more 'real' for me, is that he was using code I wrote to help with breaking the monotony of not being able to leave home and spend some time playing a game with others during a conference call.
The simple act of opening a pull request let me know that code I created around 4 years ago was able to help someone, and during these difficult times, it gave me a much needed boost. If you have come across some code or a blog article recently that's helped you, please consider just dropping a note of thanks to whomever created the code or article, you never know, it might just make their day.