Projects
Most of my programming projects are stuff I come up with and write within the span of a single night. My longest projects have taken maybe two or three weeks, and my absolute longest project was written with a team of three incredible individuals as a project for Drexel's CCI summer camp.
In the first category (scrapers and small scripts) are:
- cookie_clicker_bot: A Python program to play Cookie Clicker for me. The idea came from me realizing it'd be fun to program a bot, something I hadn't done before, and that I was probably wasting my time playing Cookie Clicker.
- library_management: A Rust program with Python scripting to handle renting out books to friends. Although I never implemented the program, I was curious about implementing something having to do with libraries, and my own, and I was considering renting out books.
- org_to_obsidian: A Python program to convert org-mode, org-roam files to Markdown files formatted for Obsidian. I was transitioning from org-roam to Obsidian at the time and know first-hand how excrutiating manually translating these things can be.
- calendarium: A Rust program that implements a rudimentary calendar. I wanted to localize my calendar and todo list rather than use Google Calendar. I never ended up implementing the project fully, but I might still do so considering the scaffolding is there. Intereresting questions about mobilization (how can I update on the go?) or even digitization (what about a paper journal?).
- daily_reading: A Python program that fetches readings from the USCCB website. I realized that I basically never knew what the daily reading was despite my interest in Catholicism, so I figured I might as well do it.
- read_history: A Python program that takes an org-mode file containing a bulleted list of links and scrapes their web pages for titles to compile a reading history. I have some other scripts that do similar things having to do with visualizing reading history and clusters of activity, and this program is a big part of that.
- panopticon: A Python program to take a picture every half minute or so, ideally for time management purposes. I figured this might be a more clear and coercive tool than Franklin's Clock, but I never ended up using it.
- margin_of_victory: A Python program to find the margin of victory in US presidential elections. I think my thesis was that closer elections were generally ones with higher turnout, but the thesis didn't turn out to be true.
- chpl_scrape: A Python program to scrape the Cherry Hill Public Library catalog system, especially for in-stock/not in-stock titles. I've always been encouraged, and felt encouraged, to support and visit public libraries, but I always felt scared I'd go all the way there and end up coming back empty handed. This is a way to avoid that.
- command_stats: A Rust program to get command history from any/all shells. I switched between shells pretty often when I was reading this (fish, bash, and zsh), and I found it frustrating not being able to (a) visualize how often I use commands and (b) view command frequency across shells without going into a text editor.
- president_flashcards: A Python program to automatically generate Anki flashcards for presidents from a JSON I found online. The flashcards include the president's tenure and their party on the front, and their name on the back. I'm pretty good with modern presidents, so Wilson through Trump. And Virginia dynasty to Jackson. But I'm horrible with latter nineteenth century through World War I. So, I made some flashcards to try to get better.
- metacritic_scraper: A Python program to scrape the Metacritic website for game scores. I think I was working on a program to tell me what Steam games to buy algorithmically (through want score, Metacritic score, price, etc) and I'd much rather write a program to scrape Metacritic scores than enter them myself.
- automatic_bookshelf_organizer: A Python program to help me fit all my books on my bookshelf. It got frustrating having to shift books around on shelves to fit more, and I really prefer the look of full shelves over half empty shelves (the other option given my problem). So I wrote a simple program to help calculate roughly how many books can fit on shelves. It would have been interesting to take it a little further, like with pages, cover types (paperback or hardcover?), or even font size, but at that point I would be overcomplicating a relatively simple problem.
In the second category (larger projects) are:
- cite_get: A citation generator written in Rust. I started getting into citing sources when I wrote stuff for myself, in the hope that I would be able to network it all together and maybe automate the process of link-finding (which never came to fruition), but I found it frustrating having to go to Google Books or wherever else to find citations and citation types.
- network_stuff: A planned large project written in Rust. At present, traverses the online USCCB Bible to create links between Bible verses using footnotes. I thought that the Bible would be a particularly interesting example of networks within works. I thought it'd be especially interesting to see where the New Testament cited back to the Old.
- telemousiki: An HTTP server programmed in Rust that interfaces with the Emacs Multimedia System. Originally, I was intending for this to be an interface for ComputerCraft, a Minecraft mod, but I ended up writing it for EMMS because I used EMMS more often.
- franklins_clock: A Rust program to see what program you are using and log it. Automated time management.
- new_wkdu: A Python program to scape the WKDU website and make Spotify playlists from the playlists they have there. I would just listen to the radio, but the signal generally doesn't reach where I am. Furthermore, there are a few programs that I really like and would like to have saved for posterity.
- framed_studier: A friend of mind introduced me to the game Framed, and my knowledge of movies is pretty rudimentary. So, I wrote a program to help me study.
And in the final category is:
- drexel_cci_team_databased: A project that intends to improve participation in the political process among young people by exposing and elucidating political inefficiencies and disclosing opportunities for those below voting age.