Projects

Thank you for visiting my projects page! Here you will find programs that I’ve written in various languages, along with some of the contributions I’ve made to open-source projects, mainly the Linux Mint project.

Everything that I’ve written is open-source and available under the GNU license. A lot of the source code for the programs can be found in repositories on my Github page.

Programming

Linux Mint Contributions

Linux Mint is a Debian-based distribution of Linux that’s elegant and easy for beginners, especially those coming from a Windows environment. It’s available free of charge and anyone can review the source code to learn more about how it works. The pull requests I’ve made have been for applications written in Python.

Show PPA Changelogs in Mintupdate

Mint Update PPA Changelogs

Download | Source Code

Description: Linux Mint comes with an application written in Python called mintupdate, which provides an easy to use graphical interface for viewing and installing software updates. This pull request was for mintupdate issue #56. The problem was that mintupdate would only download the changelog for packages if they were in the official Ubuntu or Mint repositories. This patch adds functionality so that changelogs for packages contained in PPAs (Personal Package Archives) can also be downloaded.


Add note to PPA in Mintsources

Mint Sources PPA Note

Download | Source Code

Description: Linux Mint comes with an application written in Python called mintsources. It’s a user-friendly application that allows the user to add repositories to the available software sources. This pull request was submitted for mintsources issue #56. The problem was that users often forget the reason for adding a repository to their sources. This patch allows a user to add a personalized note to the PPA repository to make them more memorable.


Add optional source column to Mintupdate

Mint Sources PPA Note

Download | Source Code

Description: This pull request was submitted for Mintupdate issue #77 and issue #144. The problem was that users often couldn’t tell if an update was coming from an official repository or a PPA. This pull request adds an optional column that shows the origin and site that an update is coming from.


Improve visibility of configuration window

Mint Update Configuration Window

Download | Source Code

Description: When a user runs mintupdate for the first time, they are presented with a dialog box asking what level of updates they would like to receive. This pull was submitted for mintupdate issue #170. The problem was that users with lower resolutions (ie: 800×600) were unable to see the “Help” and “OK” buttons at the bottom of the dialog box. If the user could not figure out how to click the “OK” button their machine would be left unpatched and insecure. This patch decreases the size of the configuration window and realigns the HELP and OK buttons higher up so that users with low resolutions can see them.


Prevent reset of package selection

Download | Source Code

Description: This pull request was submitted for mintupdate issue #120. The problem was that the package selection in the main window would get reset if there was a failure or the user clicked the cancel button during installation. This patch checks the apt log to make sure that the packages were actually installed. If so, the package list gets refreshed. Otherwise the refresh is skipped.


Python Scripts

Get Security Now

Get SN 1

Download | Source Code

Description: GetSN is a Python script that will download a specified number of episodes of the Security Now! podcast, a great podcast to learn more about computer security.


Assembly Programs

ASCII Space Invaders

Spaceinv Screenshot 1

Download | Source Code

Description: I created ASCII Space Invaders to apply the knowledge I learned from reading Jeff Duntemann’s book Assembly Language Step-By-Step: Programming with Linux. The game is written in x86 assembly language for Linux and was adapted from a snake game written by a gentleman named Brian Raiter. Instructions for compilation are in the comments at the top of the source code. For an even deeper dive into how computers work, I would recommend the book Code by Charles Petzold.

C Programs

IP Chat Server & Client

IPChat screenshot

Download | Server Source Code | Client Source Code

Description: IPChat was a high school project of mine. It’s a client/server chat application written in C using the Windows and Winsock APIs. It allows users to send messages to each other using a TCP/IP connection.

Web Development

Youtube-dl-WebUI Modification

Youtube-dl-WebUI

Download | Source Code

Description: Youtube-dl-WebUI is a web interface for the open-source program youtube-dl, which allows users to download videos from some streaming websites to their computer. I added some PHP and jQuery code so that when the users enter a link, they are presented with a title and thumbnail of the video and then given options for what format to download it in. I wrote a blog post about it here.

Linux Cheatsheets

Get SN 1
Description: I created the Cheat Sheets application to keep track of all the new Linux commands I was learning. The table is powered by HTML, CSS, jQuery, AJAX, PHP and a MySQL database.