Since this is my first blog post I thought it would be fitting to talk about the first computer program I have ever written. It all started back when I was roughly 16 years old and I purchased a C++ programming book from the local book store. Why I chose an advanced language like C++ I have no idea, but never the less, I brought the book home and began learning the basics of coding. At this point I was just curious about computer programming; I didn't have a specific project in mind.
Somewhere along the way I got the idea of writing a program that converts English text into a fictitious language that nobody could understand. It would be a fun way to write messages to friends and keep the dialog hidden from other students and teachers. Little did I know, that what I would eventually create was actually a cipher; a simple substitution cipher to be exact. It sounds impressive but trust me, it's not. If you want to know more about substitution ciphers, you can check out this Wikipedia page: https://en.wikipedia.org/wiki/Substitution_cipher.
To get started, I planned out the letter substitutions by writing them down on a spare index card during study hall. Oddly enough I found that exact index card about 3 years ago and took a picture (shown below). It was stuffed inside one of the pages of that very same C++ book. Even more recently I found a copy of the source code and a compiled version of the program. It was really fun to see the program running on a Windows 11 PC.
Once I got home I started piecing together the logic for this program. Turns out it was much more difficult than i had anticipated. Even though the cipher was simple, I struggled to work out all the bugs. After a few days of hard work I finally got something working well enough that it was worth sharing. It was just a command line interface that accepted text input but I was 100% proud of my first creation.
The program did have one serious limitation; it could only encode 4 characters at a time. This limitation was due to me not fully understanding the power of loop structures in code and how they can be used to simplify repetitive logic. There was also a major bug in the logic that caused some characters to be encoded, then reverted back to the original character (visible in screenshot above). I probably could have fixed the bugs back then but I just didn't have the time to work on it.
Fast forward to Sept of 2023, I decided that I would recreate this program for nostalgic reasons. Instead of taking the easy route and making another command line program; I wanted to bring the Bigelozidane into the future. There were many options but I chose to make an Android app, simply because I find Android development interesting.
Surprisingly, I was able to recreated the original program on Android and fix all the bugs in approximately 1 day. I spent another 2 days improving the user interface and adding new features. The two most exciting new features are: reverse translation and support for 1000+ character messages. I'm sure I'll want to add more features to this app in the future, but for now I'm considering it a finished project. I can't tell you how satisfying it is to finally see the results I wanted so many years ago. This bucket list task has officially been checked off and I hope it inspires you to finish things on your bucket list as well. It's never too late to do the things you want to do. As Wayne Gretzky once said, "You miss 100% of the shots you don't take."
If you want to try the Bigelozidane app for yourself, please visit the link below or search for "Bigelozidane" on the Google Play store. play.google.com/store/apps/details?id=com.bigelowinventions.bigelozidane
If you want to build a similar app, you can view the full source code here: https://github.com/MichaelJBigelow/Bigelozidane
Comments