Please note that this is a static copy of my portfolio. I maintain a version online that I regularly update with new projects, and remove ones that are old or no longer important to me. If possible, please see the online version at https://joet.co/h/portfolio instead of this static copy.
This is a collection of some of the more recent projects I've worked on. Everything shown here was done in my spare time, not for profit of any kind, just for my own personal utility and/or entertainment. Some things were used all or in part for course credit at my college.
Many of the things are available on the web and have links to them below. I invite you to check them out for yourself.
I also have some additional public projects on https://github.com/nottherealjoe.
I got tired of the Debian packages for Mozilla Firefox and Thunderbird always being out of date compared to the official releases, so I build a script that builds a package for the official release of each.
Firefox: https://github.com/NotTheRealJoe/FirefoxPackager, Thunderbird: https://github.com/NotTheRealJoe/ThunderbirdPackager
GroupPay is an application that allows for payment-sharing within small groups of people who share resources purchased by one member. The purchaser of the items enters them into GroupPay, and marks what other members used the item. Those users will then recieve a notification regarding how much they owe and to whom. Users can connect their PayPal accounts to allow other users to pay them electronically.
GroupPay is currently in use and is live on the Internet at https://joeandmark.com/payments. Please contact me for access to a demo account.
Exactly what it says on the tin
You can play it at https://joeandmark.com/ladybugchase/.
This is an electronic guitar simulator that I developed for an algorithms class. It is a good demonstration of how we can use algorithms to make frequencies that model real musical instruments.
More information and download at https://people.cornellcollege.edu/jtortorello19/cs/GuitarHero
You can view the result, but the source code is probably more interesting.
For this project, I was also asked to demonstrate the use of the documentation tool JSDoc. You'll see the documentation comments in my code, and you can view the compiled JSDoc here.
I run a Minecraft server that is used by myself and a few of my friends. It's not free to run the server, so we developed a way to split the cost of operating it based upon the amount of time spent using it. An existing plugin called PlayTime was used to log the amount of time that each user was logged in for to a MySQL database, and I wrote a PHP script to make this information available on the web and do the calculations for the cost of the server.
The PlayTime web interface is still online at https://joeandmark.com/minecraft/playtime/, but now I am running it on my own hardware so the cost is zero, and there isn't much to see. If you'd like to take a look anyways, you can log in with my username, JRT600.
We also wanted a way to see a zoomed-out view of the Minecraft world on the server. A plugin for Minecraft called Dynmap was used to provide the web interface. However, the problem with Dynmap is that it runs it's own web server on port 8123, and this server does not support HTTPS. I'm a big believer in online privacy and encrypting the entire web, so nothing visible under my domain name is sent unecrypted (in fact, when you first loaded this page, my server told your browser to never even try to connect without encryption again). As such, I adapted the plugin's web interface so that it could be served by a standard Apache installation instead of the internal server. The interface works and all resources are now served securely.
You can see the live map at https://minecraft.joeandmark.com/map/.
Without giving too much away, I'll tell that I have built my own e-mail server without any hosted services — that is, without the help of Mailchimp, Gmail, or the like. The server uses Postfix as the mail transfer agent and Dovecot to allow users to get messages via the IMAP or POP3 protocols. A web interface is also available. The server handles mail for several domain names, and supports virtual mailboxes, aliases, spam filtering, and many other features of the big-time e-mail services. Messages are protected from spying as encryption is used to transfer all incoming and outgoing messages. The server identifies itself using industry standard authentication protocols so other providers know it can be trusted and messages avoid the Spam folder.
You can play JamesFarm at https://joeandmark.com/jamesfarm/, but it is not optimized for mobile devices.