Hi! I'm Nicholas Currault, a Computer Science major at Caltech in the Class of 2021. I spend most of my time on coursework and upholding Caltech's Honor Code, but I spend some of the remaining time creating and maintaining personal projects to benefit the people around me. This website is a list of these projects.
As Comptroller, an elected position within Dabney Hovse at Caltech, I worked to set up a Linux server, remake our House website, and assisted Darbs (members of Dabney Hovse) with creating accounts and using services.
I created an online service for events in Dabney Hovse that allows users to submit YouTube videos to be queued and played on public speakers (and, optionally, a display).
Farther has three components:
Farther utilizes several components from Nearer, a similar service from Blacker Hovse (licensed under MPL 2.0).
"What's for Dinner?" is a service for Caltech students hosted at dinner.caltech.edu created before I matriculated. It parses menus from Caltech Dining Services (CDS) to display the dinner options for each specific day. When CDS changed menu formatting, this service stopped updating, so I fixed it and became the main contributor to the project.
As a final project for a high-school economics class, I implemented a game we had played in class with an online interface that enabled players to interact in real time. The game recorded "transaction data," enabling me and a classmate to compute market data: consumer surplus, producer surplus, and deadweight loss (when we "imposed a tax," tweaked the buyer/seller ratio, or otherwise shifted the supply and demand curves)
This was my first popular application. It was inspired by Hello Internet, a podcast of which I am a fan. The app uses the YouTube Data API to tally videos on several channels. This app was mentioned on the podcast and received over 12,000 pageviews in the following month. Since then, it has received a total of over 73,000 views by people from all 50 states and 132 other countries.
I also learned the hard way how embarrassing mistakes can be. Within a week of its debut, I deployed a feature that gave an average number of views. However, when the number of videos that matched the criteria became zero (due to a new video by CGPGrey), the app tried to divide the total views (0) by the number of videos considered (0). This attempted division by zero threw an error. I promptly fixed it, but in the interim hundreds of people had seen a "500: Internal Server Error" page.
While Telegram has standard, first-past-the-post polls (in which users can select a single) built in, this voting system has several flaws. A better (although necessarily imperfect) system is Ranked Pairs, which has many advantages over first-past-the-post and is thus used in most Caltech student government elections.
When a Telegram poll was to select a movie to watch one night, the utility of a bot to run the ranked-pairs tallying was noted, and I made this bot, which emulates the Telegram polling interface but allows users to express rankings and tabulates the results with RP.
Telegram allows users to forwards messages from other users among chats. In Dabney, a result of this feature was people forwarding each other's messages to express a common sentiment. From here, users began screenshotting these messages to form sticker packs of relevant messages. I made this bot to auto
Because the bot itself links to sticker packs with quotes from users' friends, the actual bot username is not shared publicly to protect these people's privacy. Email firstname.lastname@example.org to request access.
Quantum Go Fish is a game in which players play Go Fish, but nobody knows what their cards are or even what the suits are. They take turns asking each other for suits, thus making "quantum measurements" of each other's hands. The winner is the first player to fully converge the game state with a question.
I learned this game at Caltech and, because of the amount of information players must keep track of, I decided to implement the game as a Telegram bot similar to Secret Hitler (another Telegram project).
It is a common pastime at Caltech (at least among Darbs) to draw axes on communal whiteboards and encourage others to plot where various people or ideas fit. One example plot was made recently to show the lack of correlation between understandability and relatability. (For example, sufficent sleep is understandable but not relatable, and deciding to attend Caltech is relatable but not understandable.)
I used a Telegram bot to emulate this phenomenon virtually, using matplotlib to give our shenanigans a sense of scientific validity.
One common element of Telegram conversations I am involved in is the frequency of copypasta -- blocks of text that are pasted into relevant conversations. I made a Telegram bot that allows Darbs to submit copypasta and easily insert it into Telegram conversations.
To protect the privacy of Darbs who submit content for the bot, the actual bot instance and codebase are kept private. Email email@example.com to request access.
In my experience in both Stanford's CS 106B (summer 2016) and several Caltech computer-science courses, I created several noteworthy programs for assignments. Due to the honor codes of both colleges, I cannot post most of this code online.
As a final project for CS 2, I worked in a group to create an AI that played Othello.
'); DROP TABLE TeamNames; --, utilized minimax with various efficency optimizations to predict the board state 9 moves ahead in the allotted game time.
It finished 28th out of 83 bots in the 2018 tournament.