An object-oriented tic-tac-toe game with an artificial intelligence. Tic-tac-toe is a sovled game, and the AI always plays the optimal move. It uses the minimax algorithm with alpha-beta pruning. There is also a move recommendation feature for players who are new to tic-tac-toe. Finally, this program can be modified to play other games like Gomuku and Connect Four.
A collection of various programs that implement or relate to the popular Mersenne Twister PRNG in some way. Intended to be a simple implementation that users can build off of. Includes the original 32 and 64-bit versions, other popular variants, programs to crack the state of the Mersenne Twister, and programs to time travel and reverse the Mersenne Twister.
A repository of my solutions to the cryptopals cryptography challenges. Common advice is to "never roll your own". However, this advice should be amended to "never use your own". With the rise in digital threats, any computer programmer should at least have a basic understanding of cryptography. And what better way to learn than by doing?
A COVID-19 tracker that uses several public APIs to generate a count of the number of COVID-19 cases within a certain customisable distance of any address in Ontario. Includes a COVID-19 self-assessment tool that takes the number of cases near you into account. Created during TOHacks 2020 in collaboration with Maillew and tankibuds.
A fast and simple Markov chain-based text generator written in C++. The number of preceding states used, temperature of the generated text (how "random" it looks), and number of words to generate are all configurable. Can be used to generate words letter-by-letter, sentences word-by-word, and [indirectly] paragraphs sentence-by_sentence.
An open-source online judge specifically designed for hosting interactive cybersecurity challenges and contests. Features include practice problems, contests, an admin console, two-factor authentication, a comprehensive test suite, and live rankings. Built with Flask, in collaboration with jdabtieu.
A financial tracker that can track stocks, cryptocurrencies, forexes, and more with simple configuration files and a terminal-based gui. It's built with Python and urwid, and it's superior to other terminal stock trackers because of the real-time data, variety of assets, and unlimited free updates. Comes with coloured and scrollable versions.
A flexible web monitoring tool for websites that have no built-in update notification system. Configured with YAML, Exactum supports multi-platform desktop notifications, email notifications, and logging changes to a file. Created during Hack the North 2020 in collaboration with AlanL2 and Maillew. Project website available here.
An object-oriented implemention of RC4-drop[n], a modification of the simple and speedy RC4 stream cipher that defends against the Fluhrer, Mantin and Shamir attack by discarding the first n bytes of the keystream after key generation. Can also be used as regular RC4 by setting n = 0, or a performant pseudorandom number generator.
A customisable tool used for archiving code submissions in bulk from a wide variety of programming sites. Packaged with the pip package manager, and can easily be modified to archive code from unsupported sites. Especially helpful for creating solution archives.
A Flask frontend for the simple-markov script, it seamlessly integrates an HTML/JS/CSS frontend with the original C++ program serving as the backend. It also uses hCAPTCHA to prevent Denial of Service attacks while still respecting users' privacy. It's hosted on this site here, and users can upload custom text training data to test it.
A website that hosts a short description of myself, my resume, a listing of my projects with a short description for each one, my contact information, and my blog. Eventually, web applications and PHP applications that I create will also be accessible here. Accessible online at chenanthony.com.