Computational Literacies Lab

Developers

Technical setup

The project you work on will have specific setup instructions, but in general we prioritize a narrow and consistent technical stack:

  • We have a preference for straightforward, well-documented approaches, and open file formats. In research contexts, we like plain-text social science.
  • We use git for version control.
  • Most development is in Python, using uv for dependency management and publishing.
  • We do a small amount of front-end development in Javascript.
  • We use zola to build static websites.

Contributing

We value diverse participation in our research community. We want everyone to feel welcome, valued, and respected. Toward that end, we informally adopt the Contributor Covenant. Your contributions to lab projects, whether paid or unpaid, are licensed under the project license, usually MIT.

AI policy

Use whatever tools make you most productive. AI is now part of our lives as software developers; let's be open about it and learn together what works. We use a framework developed by Proctor, Bhatt, and Rish (in submission) to think about authorship in collaboration with AI. Authorship can be broken down into three roles:

  • the animator writes the words or the code.
  • the author decides what should be written.
  • the principal is accountable for the writing.

For example, if your friend is sick and you buy a card with a pre-written message inside, hoping they get better soon, you are the principal (you will get credit for sending a nice message, or you'll be held responsible if the card causes offense) but you are not the animator or the author. Another example: when a business exective asks a secretary to write a letter for them, the executive is the principal and the secretary is the animator. They may share the author role.

When you contribute code, you are expected to take on the author and the principal role. That is, you must be prepared to explain in detail what the code is doing, and why this approach is better than alternatives (the author role); you are also responsible for the code, including any harm it may do (creating security vulnerabilities, unintended consequences, or even just wasting reviwers' time).