nonbird

Hi

I'm Charlie Pashayan, an American programmer living in Germany, where I'm currently pursuing an MSc in computational linguistics at the University of Stuttgart. This site is where I post all the projects that I own, to give you an idea of what my work looks like.

Here's a link to my CV and here it is auf Deutsch.

And if you can't stand the suspense, here is a link to my GitHub repository, which contains all the code I'll be discussing below.

Python

I've been doing all my work in Python lately and at this point it's the language I have the most experience with. I have two major projects done in the language, a smaller one that still needs some documentation, and a tutorial on writing Reddit bots that includes several snippets of code.

CannedPostResponder

CannedPostResponder is my first major project in Python. It started out as a joke: I wanted to make a Reddit bot that would search Reddit for questions about how to write a Reddit bot, then post a link to a tutorial on the subject, which I would later write based on my experience building the bot that posted the link.

As the chief joy of programming is generalization, I decided not to hardcode any of the particulars into my bot. Instead I added hooks for people to create bots of their own. In its final form, my program can match any regular expression and post any unicode response. Here is the instruction manual for CannedPostResponder and here is the source (including the manual).

CannedPostResponder works under OS X and it should work under Linux.

How to Write a Reddit Bot

This is the tutorial that CannedPostResponder was built to post, a beginner's guide to making Reddit bots.

pypes

This is a simple but feature-rich tool for designing pan pipes. It computes the sequence of pipe lengths needed to match a given set of physical and musical specifications. Better still, pypes supports microtonalism by allowing the user to set an arbitrary number of (equally tempered) tones per octave.

There's a fun story attached to this as well. Only weeks after being posted online, pypes had already won (somebody) an award. A young man named David K. came across my program when he was doing research on resonant frequencies for a project he was working on for school. He used my program to design a set of pan pipes and he and his partner won 3rd place in the middle school Science Olympiad!

Here is a link to the code and the documentation should be up soon.

pycense

pycense's job is to insert copyright notices into source code. It's also highly modifiable, so users can create and manage a library of named licenses, as well as a library of commenting formats. These commenting formats can be specified across 13 separate variables accounting for many different stylistic and functional variations.

Here's a link to the repository, which also includes the unit testing module and all the documentation. Here is the manual formatted for HTML.

C

C was my first language if you don't count TI-BASIC. (I don't.) I learned it out of Kernighan and Ritchie before I began studying computer science formally, and then I used it all through school, except when I had to use C++. I love C it for its clean, canonical feel. But as a consequence of having mostly used it in an academic setting I haven't written much in the language that is useful or that I own. There is one big exception.

ms

ms is a command line utility that I wrote for creating and managing an informal to-do list. You can add and delete items on the list and display the list in various ways. Each item is created with an expiration date and the first time an item is displayed after its expiration date, it is removed from the stored list.

The recommended use for ms is to call it from within your login script, so that every time you open up a terminal you are greeted with a list of whatever notes or tasks you'd thought were important recently. For instance, if I've started a new account with some website, I'll put the username and a hint to the password in ms for the next couple of weeks, to remind me how to sign in.

Here is a link to the source code for ms and all its documentation, including a man page that explains its flags and functionality in great detail.

ms works on Linux and OS X.

Why Nonbird?

Because all the other URLs were already taken. And because it's funny.