I originally intended to obtain a Raspberry Pi for two purposes. One of the greatest things about Raspberry Pi in my opinion is that the SD used to store the operating system and files can be replaced in seconds with a separate operating system prepared for completely different operations. I mainly desired to set up some kind of web server or if possible, a Minecraft server, using a raspberry pi, so I was excited when I received a Raspberry Pi 2-B as a Christmas gift in 2015.
I loaded the Raspbian operating system installation files onto an SD card and then learned the basics in regard to software and terminal functions that one might find useful on the Debian OS. I started my software installation with the program called Gedit which I often used in engineering classes for coding assignments and then moved on to install the appropriate packages needed to compile my code into executable files. This brings me to my other original desire for owning a Pi which was to have access to a cheap setup on which I could run a native terminal for coding purposes instead of using windows and emulating the coding/compiling environment necessary for basic languages like C and C++.
I desired to run Linux side by side with Windows at some point on my desktop but decided that it was far more economical for me to instead run Linux separately on a 30-dollar portable unit. I quickly realized the problem with this plan, though, when I found that I could not run executables on Windows which had been compiled on my Pi. The root cause of this was that Pis run on 16-bit architecture ARM processors while Windows processors are 32 and 64-bit with completely different architectures. However, upon attempting to share my Einstein Quiz executable with friends after compiling it on Windows, I found that I needed to share the .dll file used by my compiler along with the executable, which would also likely cause problems when moving between operating systems.
I more recently figured out the resource requirements of running servers off of a Raspberry Pi and believe that I would be disappointed in what the Pi could accomplish when compared to running one in the background on a PC. However, I have new ideas that I hope to research soon so I can put my Pi 2-B and new Pi 3-B to good use. If at some point Google decides to crack down on ad-blockers, I can install pi-hole on one of my Pis and use it to filter internet traffic through my router, effectively blocking ad content. I also would enjoy being able to set up a few hard drives as a media server running through my other Pi, an idea that I got from a friend currently setting up such a system.
Getting into the type of coding necessary to maneuver a Raspberry Pi is daunting, much like using Arduino for the first time. Much like Arduino, it unlocks a world of new exciting possibilities once you’ve got the basics down. I’m excited to find new applications and learn to properly take advantage of all that Raspberry Pi and similar inexpensive microcontroller systems have to offer.