A while ago, I was given the book The Mythical Man-Month, by Frederick P. Brooks, Jr. I finally have some time to sit down and read it, and I’m loving it. In the first chapter, this quote on “the joys of the craft” (i.e., programming) struck me as particularly on point:

Quite often when using git, you only need to use one remote: origin. All your pushes and pulls communicate with this one host. However, there are many occasions when using multiple Git remotes is incredibly handy.

Using python-social-auth and Django, I’ve found a very straightfoward way of adding authentication to apps designed for CMU students. Given that all Andrew accounts are now Google Apps @ CMU accounts, we can take advantage of the widely used Google OAuth2 libraries to authenticate users, but just restrict sign-ins to the andrew.cmu.edu “hosted domain.”

While online clients like ShareLaTeX or writeLaTeX are popular for getting started with LaTeX quickly, developing LaTeX locally with Vim and the command line is my preferred LaTeX workflow. In this post, I’ll describe the changes I’ve made that make working with LaTeX on the command line a seamless experience.

Out of the box, LaTeX listings are pretty bad. With a bit of work, you can ascribe some colors to the code, but you’re still stuck with choosing a theme. Given that I recently just switched to the Solarized colorscheme in Vim and iTerm2, I made a LaTeX package that styles code listings with the predefined Solarized light colors.

Writing a LaTeX document from scratch for every assignment is tedious. Especially for homework assignments, a lot of the structure is repetitive. Read on to learn about the homework template I’ve adapted for use in all my technical classes.

For an optimal SSH experience, your best best is to use Linux or Mac OS X. However, if you’re dead-set on using Windows, MobaXterm has the best overall experience. This post guides you through setting it up and outlines some of its coolest features.

It is with great sadness that I announce today that I am breaking up with my mail server. At least for a little while, that is. Let’s say we’re “taking a break” to “see other people.”

Whereas the tutorial I’m following to setup this mail server initially promised a working setup in more or less two hours, it’s nearing two weeks for me and I’ve still got plenty of issues. In this log, I’ll discuss some of the tools, log files, and online resources which I’ve found helpful, as well as give a description of my problem as I best understand it.

After some initial troubles, I finally managed to get basic send and receive functionality working on my mail server, using EncFS, Dovecot, and Postfix. That being said, it’s far from a perfect system, and it needs a good deal more TLC to get it working at a level that’s on par with a more “professional” email service provider. This post details some fixes that I’ve implemented so far, as well as the functionality that I’ve managed to get working.

I don’t have the best track record with configuring servers. I’ve certainly brought down a ScottyLabs server or two before, but sometimes there’s no avoiding that in the sake of learning. At times like these, you’ve just gotta reboot and try again. With DigitalOcean’s auto-backups though, this process is incredibly easy.

You could say I’m a bit of a geek when it comes to configuring my terminal environment; this obsession has led me to concoct ever-elaborate setup scripts and configuration files. On top of this, between my laptop’s multiple boot environments, the servers I use for school, work, and ScottyLabs, and now metagross, keeping my configuration files in sync is a must. I handle it swiftly using a combination of git and rcm.

Since last Christmas, I’ve had a raspberry pi running as a server at my home back in Wisconsin. I had tons of plans for this little guy, but I quickly discovered that he was going to be a bit too little for most of them. Thus, I am now the proud sysadmin of my own virtual private server.

After spending most of the beginning of the summer flying, driving, moving, moving again, riding trains, riding different trains, and starting a new job, it’s finally time to start working on some cool side projects.

  Why Everyone Loves JavaScript

Airbnb has put together a stellar list of simple ways to make your JavaScript more maintainable and manageable. From comments and whitespace, to hoisting and type casting, this list covers nearly everything you should know when developing a JavaScript app.

Okay, so maybe the government won’t come after you for not updating. But they should. To guard off any present or future threats (be they from governments, security vulnerabilities, or something else in the cyber realm), I wrote a short bash snippet to check my system for outdated packages.

I’ve used tomasr’s vim color scheme molokai for a long time now. Recently I decided that the default iTerm2 colors were a little lack luster, so I ported over the main colors from this theme into an iTerm2 theme.

In case you didn’t notice, we’re rocking a new theme: HPSTR for Octopress! Ported from the theme of the same name for Jekyll, this theme has a bunch of cool new features that make the theme easier to use and more customizable.

I stumbled at first getting the DNS configured for my blog, because I’ve got a slighty more complicated setup than normal. I decided to supplement the documentation GitHub Pages gives by recounting my personal example and the setup that worked.

It’s one thing to plug in a CD, click through a few dialogs, and wait for the computer to chime at you saying that your printer has been installed. Unfortunately, this is not how server administration works. Here’s my account of installing multiple network-attached printers on a Debian server.