Coding
I enjoy coding as a creative outlet. It allows me to nurture a wide variety of interests in the applied spectrum. I have most recently been using coding in the following pursuits:
- Data scraping & analysis
- A means to supplement mathematical research
- Physical simulations & cellular automata
- Programming useful utilities & solutions to problems
Technologies I use include:
- Languages: Python, C/C++, Processing, Lua, Javascript, HTML/CSS, …
- Python modules: Numpy, Pandas, Matplotlib, Seaborn, Graph-Tool, Beautiful Soup, Flask, Selenium, …
- Other technologies: SQL, MongoDB, Amazon Web Services, version control (Git), unit testing (Nose), Mathematica, \(\LaTeX\), …
Projects
Here is a selection of projects that I have worked on, with GitHub links where available.
- AlPACA (All-Purpose Asynchronous Cryptography Architecture): Lightweight library that provides generic asynchronous data transfer using secure keys. Includes ability to create RESTful services, designed for use in any language both client-side and server-side.
-
Structure: A profiler for Python scripts with a focus on visualizing structure. A low-level trace hook is run whenever a function is called, allowing real-time logging of the Python call stack. This in turn is then vizualized through a directed graph. Timing and other data is also saved for further analysis.
-
Prettify: Converted the raw text notes for Dr. Richard Pattis’ ICS-33 class at UC Irvine into a more readable format. The primary challenge involved was differentiating code and diagrams from natural language.
-
OKC: Analyzes OKCupid users. It has 3 primary components: scraping, maintaining a remote database using AWS, and analysis in user-friendly Jupyter notebooks. In the future I hope to use machine learning methods such as K-means clustering to identify fraudulent user profiles.
-
Game Theory Problem Generator: Produces problems & step-by-step solutions for the IESDS class of problems in game theory, output in \(\LaTeX\), for the students in my finite mathematics course.
-
Venn: Code used to verify solutions to a combinatorial problem about the number of regions \(\mathbb{R}^n\) can be divided into using \(k-\)many \(n-\)spheres.
-
RedditDB: A class used for scraping data from Reddit and storing in a local Mongo database. This has been used in other projects, including a website hosted on AWS using Flask, in which anybody could populate the database with a user’s posts and then view basic analytics. The site has since ended its run.
- Run: A simple utility for running scripts and other executables from the command line. Functionality includes notification when a script terminates, and keeping a script alive upon crashing.