Like most people, I was hesitant to contribute to Open Source but yesterday I took a leap of faith and did it. My first pull request to an Open Source project hosted by freeCodeCamp was approved and merged into their master- yay me! As soon as my contribution was approved and merged into their master I wondered - why did I not do this before? There are many reasons - For me it was a combination of self-doubt of not knowing enough, not knowing where to start and fear of being embarassed by someone more knowledgeable than you. All of these I now laugh at in hind sight because there are plenty of projects available for newbies like myself, a lot of documentation about how to contribute and a very supportive community who are more than willing to help you rather than doing the opposite. My first contribution was a pretty simple issue contributing to a list of projects written in Markdown. I was familiar with Markdown, Git and the GitHub flow so in the end my belief ‘of not knowing enough’ was also made redundant.
There’s a lot of projects out there catered towards newbies with tasks such as contributing to their documentation. Funnily, the very project I contributed to was about contributing to Open Source by freeCodeCamp.
There’s a bunch of good resources out there which helped me to get started:
Last week I built a Pi-hole with the Raspberry Pi. The reason for this project was to block ads on the home wifi network and this seemed to be a beginner friendly project in terms of the documentation on the internet.
I needed a Raspberry Pi 3 with a 8gb SD card, a USB cable, a monitor/display, a keyboard, a mouse and an ethernet cable. The process is listed out below:
-
Download Raspbian Operaring System with NOOBS (New Out Of Box Software) onto your laptop/computer and load it onto the blank SD card.
-
Load the SD card into the Raspberry Pi and connect it to the power supply, monitor, keyboard and mouse.
-
Complete installing the Raspbian Operating System (this does take some time so grab a coffee/tea).
-
Once the initial installation is complete and I logged in with the default username/password (which I did change later) and installed Pi-hole using:
curl -sSL https://install.pi-hole.net | bash
-
During installation process an admin password and a dynamic IP address is randomly provided for use as a static IP address in the 192.168.x.x format. The Raspberry Pi was now running a DNS server.
-
Once this initial setup was completed I changed the IP address provided by Pi-hole to a static IP address for custom DNS server settings for the home wifi network. I chose a static IP address from a range that was different from the IP address range the DHCP accesses as default from the router. This eliminates risk of IP address duplication which would normally be the case when assigning static IPs and any implications thereof.
-
I enabled the DHCP Server in the Pi-hole instead of changing the router’s DHCP options to act as a DNS server. Both of these achieve the same effect but for me the former was more applicable for the home wifi network.
This set up now ensured that any client requests from a device are forwarded to the Pi-hole (acting as a DNS server) from the router before reaching the wider internet.
The resources I found helpful to understand the networking side of things were:
The resources for setting up Pi-hole were: