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.