I am a developer in training or I guess a junior developer. By day, I am a systems administrator, network administrator, and a cloud engineer. I love what I do because I’ve always had a passion for technology. However, one of the areas I have deliberately put off is coding. Back in high school, I did get fascinated with PHP and wrote my website at the time from scratch using PHP and a mix of some pre-built modules. Why did I quit? I got stuck and gave up. Then I had a friend who knew Visual Basic and in one tech class in school, we had access to Visual Basic in a class and he got me into Windows application development. One of the first applications I wrote was a portable Windows Explorer replacement I called X11 (before I knew of the X Window System). Our lab computers were locked down to the point where we couldn’t access Windows Explorer and it made class difficult. So, my friend taught me enough Visual Basic to where I could build my application. Later in life, I picked up C# as I found it was very similar to PHP. I was able to build a computer utility application for the company I was at as when users requested support from the help desk, they often didn’t know helpful information like their computer name or IP address. So this simple program simply grabbed that information and made it easy to get that information to us. For example if a user called up and we needed to remote into their computer, we could say double click the company logo on the desktop and tell me your IP address. Boom. Since then, I kind of revamped the program, added enhancements as I learned, and then basically gave up again. This time, I’m changing things.
100 Days of Code
So, I was browsing Instagram one day and I found #100DaysOfCode. People were sharing their progress on personal projects. This seemed like the perfect challenge to work on buckling down and improving my skills. So here it is. I’m officially doing the #100DaysOfCode challenge.
— Travis (@ItsTravy) September 8, 2018
Overcoming the first roadblock
The first roadblock I hit is that I have switched to macOS as my primary operating system. C# is primarily a Windows thing. Well, I knew about Mono – a project that allows you to run .NET on *nix systems. When I was researching how I could do this on a Mac, I found that Microsoft is now a sponsor of Mono. I also found that Visual Studio is available on Mac. Check and check. Making a console program is easy, but what about GUI applications?
Well, it turns out there’s a few options. Windows.Forms is available, but this option, while great on Windows, it doesn’t look great on other systems – like Mac. This lead me to the next option which is the Gtk framework. A lot of Linux GUI applications are written using Gtk and even some Windows applications. The upside to Gtk is that it uses native UI elements. A button element looks proper on Windows, Linux, and macOS. The form also looks exactly like it should on the appropriate OS. Check!
So I invite you to follow along. I’ll be blogging about my journey right here. I’ll also be tweeting daily about it using #100DaysOfCode. Finally, I’ll be logging in GitHub. Follow along on my 100DaysOfCode repo.
Alright, that’s it for now. I’ll be starting on my project later on in the day!