Blog

I haven’t updated my blog in nearly a decade, but I’ve kept around the old posts for old time’s sake.

Passing Quals!

How I prepared for and passed qualifying exams.

Python Koans with the IPython Notebook

Converting Python koans into an IPython notebook format as a proof of concept to make Python learning more interactive and educational.

Installing 64-bit Panda3D for Python 2.7 on OS X

A step-by-step guide to compiling and installing a 64-bit version of Panda3D for Python 2.7 on OS X, including all necessary dependencies and compilation instructions.

Rewriting Python docstrings with a metaclass

A guide to using Python metaclasses to automatically rewrite docstrings of inherited methods to include the class name, with practical examples for test classes.

On collecting data

I introduce a Python library called dbtools which provides a simple interface for working with SQLite databases, particularly useful for saving and managing data in scientific experiments.

Why is making a git commit so complicated?

Explains why Git’s multi-step commit process exists by comparing it to organizing documents into boxes, showing how this complexity provides users with control over their commits.

Macs and Emacs

A guide to configuring Emacs on macOS, covering package management, installation options, and necessary configuration adjustments for Mac compatibility.

Emacs as a Python IDE

A comprehensive tutorial on configuring Emacs as a powerful Python IDE with plugins for code completion, IPython integration, and aesthetic customization.

Absolute Beginner's Guide to Emacs

A comprehensive beginner’s guide to Emacs that covers basic concepts, keyboard shortcuts, buffer management, text manipulation, and other essential commands for new Emacs users.

The Demise of For Loops

NumPy and list comprehensions are often better alternatives to traditional for loops in Python, particularly for scientific computing, with examples and performance comparisons.

An Introduction to Classes and Inheritance (In Python)

A tutorial that introduces Python classes and inheritance concepts through practical examples using a pet management system, explaining core OOP concepts like classes, instances, and inheritance.

In Search of the Perfect Email Solution

A detailed exploration of various email solutions, culminating in a custom Gmail IMAP + offlineimap + Dovecot + Thunderbird setup with specific plugins to achieve desired features.

A Brief Update, and Why Numpy is Awesome

A discussion of how NumPy’s matrix operations can dramatically improve performance when generating stable block towers in 3D environments, compared to traditional loop-based approaches.

Social Problems in Computer Science

The post discusses how elitism in computer science, rather than direct sexism, creates barriers for newcomers, particularly affecting women due to confidence differences, and suggests ways to make the tech community more welcoming.

Karl Taylor Compton Prize

SIPB wins MIT’s highest student award, the Karl Taylor Compton Prize, recognizing decades of contributions to improving computing at MIT.

SIPB's CPW

A detailed account of SIPB’s successful organization of multiple events during MIT’s Campus Preview Weekend, including a block party, activities midway, malware aquarium demonstration, and a Q&A session about computers.

Hackasaurus Rex

A successful hackathon organized by SIPB (MIT’s student computer club) where over 50 participants worked on various projects including Gutenbach, MITeX, and other software development initiatives.

Rustic Change Purse

A detailed knitting pattern for creating a sturdy rustic change purse with three colors of yarn, including materials, gauge, and step-by-step instructions.