Personal Information


Marcus Adams


Kentucky, United States



IRC: My username is Gerowen, and I occasionally hang out in #debian and #debian-offtopic on both ?FreeNode and OFTC to help new users if I can.

About Me

I first started using Linux back in 2005 when I was a senior in high school transitioning into college. At that time I was introduced to Mandrake Linux, and a love affair with Linux began. Over the years I've bounced around using Mandrake/Mandriva, Fedora, Debian, and Ubuntu. I've been running Linux exclusively for years, and even my wife refuses to have anything but Linux on her personal computers now. I like engaging with the Linux community and giving something back to the community that creates the products I use in whatever way I can, so I tend to visit the forums, the IRC channels, etc. to offer help whenever I can. I'm not an expert programmer, so I'm not in a position to offer professional assistance in maintaining Debian or Linux, but I do occasionally write my own scripts/programs to fill a personal need that I have, and when I do I try to share it with the community. There are a few of them I've expanded on and actually uploaded to ?SourceForge (links and descriptions below). Since I cannot give back to the community as a programmer, I try to help out new users in the forums and IRC channels with technical/sysadmin problems, and on occasion when I feel it's appropriate I have converted people to Linux and supported them after the fact to ensure a smooth transition to a free operating system.

Debian Wiki Pages Created

Audio Loopback Recording with PulseAudio


OBS Studio

Technical Experience


From early 2007 until late 2012 I worked as an Information Technology Specialist with the U.S. Army. I served as the primary IT guy for a brigade size element. I deployed to Iraq one time for a year. During my time with the Army, I was attached to a brigade of combat engineers, which meant that if it had to do with computers, I was "the" guy, whether that meant managing ?SharePoint, shared folder resources, Active Directory, client system updates, running cable, enforcing training standards, developing policies, managing the help desk, or coming up with a way to keep our server room in Iraq properly ventilated in 130 degree weather until we cleaned the sand out of the air conditioning unit. I also worked for a university, prior to my service with the Army, where my primary duties were to repair and troubleshoot laptop computers.


I have run miles and miles of Cat5/Cat6 cable, terminated it both in patch panels and with RJ-45 connectors. I have built servers from the ground up including both the physical construction, and installing and configuring their operating systems. I have built PCs from the ground up, and I have replaced components both in PCs and in server systems.

In my free time I operate a CB radio base station where I cut and terminate my own cables and maintain my own radio equipment, and have a good grasp on radio fundamentals.


I have experience with Windows Server 2003, Microsoft Exchange 2003 and 2007, Microsoft ?SharePoint, Windows and various flavors of Linux. I have some experience with software RAID in both Linux and Windows. I have set up and configured Windows domain controllers, Windows and Linux webservers, Windows and Linux DNS servers, Windows and Linux print servers, Windows and Linux FTP servers, Windows telnet services, and Linux SSH services. I have configured switches, and was at one time awarded for troubleshooting and correcting a connectivity issue that prevented two networks thousands of miles apart from communicating. I have a good working knowledge of basic networking fundamentals and have experience actually doing a lot of it. I have some basic knowledge of Python, BASH, and HTML. I regularly develop scripts/programs to automate everyday tasks for myself using these languages.

SourceForge Projects


Project Page

?PingChecker does exactly what it sounds like, it checks for the responsiveness of machines on a network. It sort of does the same thing as Angry IP scanner, except it allows you to ping hostnames, non-consecutive IP addresses, or any combination of those. It is written in Python and is cross platform so it should run equally well on Linux and Windows (I've tested it using a Windows 7 virtual machine). It is graphical and uses the easygui front-end to python-tk to draw dialog windows, so having python3-tk installed is a pre-requisite. The Linux version generates colored text while it's running to give you a visual indicator of ping status as it runs. You can either provide a list of targets graphically (up to 10), or have it read targets from a text file (as many as you want). The results are displayed and can be saved to a text file or .csv spreadsheet for later review. This project started out when I was still an IT specialist in the Army. I fell in on an established network with hundreds of machine names in our active directory OU, many of which were no longer valid because of name changes over time from replacement hardware, OS upgrades, etc. I wanted to clean up the OU so that only working machines were listed, but I didn't want to go walking all over base to every machine to get their names, so I wrote this so that I could just generate a plain text list of hostnames from Active Directory and use that as input to ping every hostname in our OU and have the results automatically saved when it was done so I could start compiling a list of names that did not respond to ping over the course of a week or two.


Project Page

?PyCheck is a graphical Python program I wrote to make it quick and easy to verify checksums by comparing a file to an original copy of a file (such as if you copied it between two hard drives) or by entering a known MD5 checksum (such as when you download a file from a site that provides them). It originally started out as just a Bash script that used Zenity, but some of the zenity dialog boxes were obnoxiously large if they had very much text in them, so to get around that issue and to make it cross platform (it runs on Windows and Linux both) I re-wrote it in Python and used the easygui front-end to python-tk to draw graphical dialog boxes.


Project Page

?PyNuker is a stress testing tool written in Python that sends a plain/clear text message in a UDP packet to a specified target on a specified port as fast as possible in an effort overload the target machine with so much useless network traffic it stops responding to valid requests. If you are planning on setting up a server or network this might be one way to test for load balancing. It runs in the terminal and doesn't call any system specific commands, so it should run on any system with Python installed whether that be Linux, Windows, or Mac. I wrote it for my own personal use and just decided to release it for public consumption. It is not intended to be used for malicious purposes, I did not include a means by which to centrally control the software or anything of that nature, and I make it quite clear in the Readme that you and you alone are responsible for the results of any irresponsible or illegal behavior you use this software to engage in. I wrote it out of a personal need to help improve my skills with Python and also out of curiosity. My wireless router at the time tended to want to freeze up if I tried downloading anything of any size, so I wrote this partly so I could then use it to stress test my router and see if I could reproduce the behavior. Also, if you are an educator and would like to use this as a teaching tool I welcome it, and I included a feature where you can enter a string of text that is sent in the UDP packet in plain/clear text form so that if you are running Wireshark or some other packet capturing software on the target machine or any other machine with visibility of the traffic you can actually read the string of text you're sending (screenshots on the sourceforge page).


Project Page

?YouTube-DL-PyTK is basically a graphical launcher/front-end for youtube-dl written in Python. At the time that I wrote it I couldn't find any easy to use graphical options to download ?YouTube videos on Linux that weren't ad laden browser addons, and my wife wanted something that would be easy for her to use without having to open a command terminal. It is written in Python and uses the easygui front-end to python-tk to draw graphical windows, so having tkinter is a pre-requisite. I wrote it to be cross platform so it runs on both Linux and Windows, and the respective versions of youtube-dl are included so you don't have to install that separately. I even compiled the Windows version and packaged it into an installer so you don't even have to have Python installed (source code is included though if you want to read it).


Project Page

Mupen64Plus-PyTK started out as an effort to automate running the Mupen64Plus Nintendo 64 emulator. Years ago Ubuntu (and Debian I think) had a graphical front-end that got installed with Mupen64Plus, but it just disappeared from the repos, and while m64py looks nice, for me at least, I couldn't get it to actually commit configuration changes for use, so I set out to create my own quick launcher to save some basic options like ROM file location, resolution, etc. and pass those arguments to Mupen64Plus. Mupen64Plus-PyTK, on first run, will ask you some basic questions and then store the information you give it in a file which gets imported and used to give information to Mupen64Plus. After the first run, whenever you run it you will be asked what game you want to play (it automatically goes directly to your ROM folder) and then runs the game, it's that simple. It is written in Python, and the configuration options are stored in a plain text file, so if you want to change the options you can either run the provided "" or just open the config file and edit the options yourself. I have noticed that with Debian 8 there is some kind of a bug with tkinter with regard to file/folder selection dialogs. Mupen64Plus-PyTK runs just fine on Ubuntu and ran fine on an older version of Debian, but for whatever reason when running it with Python 2 and Python 3, it crashes when selecting a folder or file. If you experience this problem I apologize, it's not a problem with my code, it's a bug that has presented itself in the version of tkinter provided with Debian 8 because I've seen multiple posts about it from other users having the same issue. However, feel free to give it a shot and I hope you find it useful, :-) I'm planning on an update to combine the multiple dialog boxes into one dialog with multiple text input fields to make things go a little bit quicker, but until I can find out how to get around the problem with tkinter I won't be messing with it because I don't want to break something that works just fine as is on other systems.