My Projects

Here is a list of some of my projects. They are mostly on my Github page as well.

Ant

Homepage & Source Code: https://github.com/anorman728/Ant

“Ant” is an acronym for “Andrew Norman’s Timelogger.” The full description is on the homepage, but, briefly, it will prompt you and ask you at times that you specify, “What are you working on right now?” and puts the results in a CSV file. By the end of the day, you have a record of how much time you spent on each item. This is useful for people that need to keep track of their projects or someone that needs to keep track of time for billing clients.

I wrote Ant in C# because I needed some C# experience. I initially tried to do it using Gtk# to make it cross-platform, but Gtk# seemed to be too buggy and with too little useful documentation. In the end, I got a Windows 10 virtual machine to do it using the traditional Windows Forms, but the debug version works great in Wine. I actually have been using it in Ubuntu 16.04 without any problems at all.

InsteadFor

Homepage: https://insteadfor.com

There is no GitHub page for this one because of how small it is. It’s a total of two statically-served files: An HTML file (that contains CSS and JavaScript) and one image file. As simple as it is, it’s probably the project that I use myself more than any others– It’s an alternate frontpage for Google Search, and it disables autocorrect. Autocorrect is something about Google search that drives me absolutely crazy, and the Rage comic on the page kind of explains why.

I have had some problems with this one– Sometimes it hangs, and I’m not sure why. It seems to be a disconnect between GoDaddy (who I used to get the domain) and DigitalOcean (who I use to host the service). Using the IP address instead of the domain name would help, but it would also break the SSL encryption since the Let’s Encrypt certificate is for the domain name.

That being said, I haven’t had many problems with it lately, and I haven’t had any of those problems with any other DO servers.

Notes

Source Code: https://github.com/anorman728/notes

This one is not actually code, but documentation (of a sort). Basically, part of how I learn is by taking notes while I’m reading, and this also involves adding notes from outside sources if I decide to look into something in more detail or if I decide to work something out for myself. Since I had this collection of notes, I decided to go ahead and share them if anybody else would find them to be useful, kind of like Cliffs Notes for tech.

Threadstr

Source Code: https://github.com/anorman728/threadstr
Test page: https://threadstr.com

Threadstr is a Node.js project, and the purpose is to be able to create a discussion thread without it being connected to a particular document, like a comments section of a news story without the news story or a Reddit discussion thread without subreddits. The idea is that this makes it more portable, so the discussion can be shared on Twitter, Facebook, etc. You can use it for debates, for casual conversation online, or anything else that you want to.

At the moment, it’s not even close to being complete, but I’ve really enjoyed what time I’ve been able to spend with it. It’s a very large project and I want to be able to complete it as quickly as I possibly can.

OpenVPN on DigitalOcean: As Easy As Making A Peanut Butter Sandwich

Source Code: https://github.com/anorman728/vpnsetup
YouTube Video Series: https://www.youtube.com/playlist?list=PL04PA2q0LfJIWfXOc_Iw_4qUJUdSlIo8N

This project is a combination of two things: Two BASH scripts and a YouTube video series. In the wake of recent congressional action, I thought I would really like to make creating an OpenVPN server on DigitalOcean as easy as humanly possible, so I wrote these two BASH scripts to automate just about everything described in DigitalOcean’s instructions for setting up a VPN.

The video series is probably the most visible result of the project, and that did take a lot of video editing work, but the vast majority of the work was creating the BASH script. (I had to do a lot of Googling to figure out a lot of BASH commands to do it, but it was worth it.)