dfm graduates to its own repository and learns how to import files

I recently split dfm out into its own git repository. This should make it easier to add new features and grow the test suite without cluttering up the original dotfiles repository. I’ll sync dfm over at regular intervals, so anyone who wants to keep up to date by merging with master will be ok. I also just finished up a major new feature: dfm can now import files. So instead of:
Read more →

Extending svn, à la git

Subversion is a useful tool. It does most of what I need it to do, but sometimes there are missing features. Sometimes, it’s something that git does natively. Other times, it’s a repeated command sequence. It’s easy to write small scripts to do these new things, but they never feel like they fit in with the rest of the commands. I’ve always been fond of the way that git can be extended by simply creating a script with the right name; git-foo [args] becomes git foo [args].
Read more →

Host-specific bash configuration

Well, I was going to write about a nifty bit of bash to help with ssh-agent in tmux, but someone beat me to it, so I’ll just write up his idea instead. Every once in a while, it’s nice to have a bit of bash initialization that only runs on one system. You could just throw that at the end of the .bashrc for that system, but that’s not very persistent.
Read more →

Easy development with git_backup

I’ve been using git_backup to back up the websites I run for quite a while now. It works well and I only need to scan the daily cron emails to see if the backup went well or if there were any odd files changed the day before. One thing that I didn’t expect when I started using it was how it would enable developing those websites in a sandbox without any danger of affecting the production instances.
Read more →

Graphing presentation times with R/ggplot2

I’ve been kicking around this bit of R code for the last couple of months, and so I thought I would share it. First off, a little background. At work, we have a noon meeting every Tuesday where each team in the engineering department gets up in front of the rest of us and gives a little update on their progress from the last week. Well, over time this meeting grew in length, so a couple of months ago the suggestion was made to limit the length of the meeting to five minutes, which would give each team about 45 seconds to speak.
Read more →

Meeting Michael Connelly and Robert Crais

Tonight, I had the privilege of seeing one of my favorite authors, Michael Connelly, at a session where he and Robert Crais discussed the effect that Raymond Chandler had on their careers and on the crime fiction genre. It was a part of Santa Monica’s Citywide Reads 2012 program celebrating Chandler’s work. My sister, who introduced me to Michael Connelly in the first place, found out about it on his facebook fan page and came all the way out here to go with me.
Read more →

git-walklog

Most of the time, when looking at history in a git repository, I am most interested in changes at a higher level than an individual commit. From time to time, however, I really want to look at each commit on its own. So, I created git-walklog. For each commit in the range specified, it: Shows the standard log format: author, date, and commit message. Then it waits for input. Hitting enter then runs git difftool on just that commit, showing you any differences in your configured difftool 1.
Read more →

Git subtree tracking made easy

Last year, when I made my list of pros and cons comparing git subtrees with submodules, one of the downsides listed for subtrees was that it’s hard to figure out where the code came from originally. Well, it seems that the internet hasn’t been sitting on its hands. While the main repository remained stable, a couple forks took it upon themselves to teach git-subtree to keep a record of what it merges in a .
Read more →

dfm tip: untracked binaries

The problem # From time to time, I have scripts and binaries that I only really need on one system. Since the base dotfiles repo includes a bin directory (for dfm itself), if I just drop files in there, git continually shows me that they are untracked. For instance, if I have a script called only_on_my_mac, then running dfm status shows: # On branch personal # Untracked files: # (use "git add <file>.
Read more →

My tmux configuration

Update: I refined my configuration. See it here. For the longest time, I was a screen user. Then, a little while ago, I discovered tmux, the next generation terminal multiplexer. Not only is it easier to search for on google, it has a rich and consistent configuration language. I’ve figured out a rather unique tmux configuration and I wanted to share it. Background # Originally, I just used tmux on remote servers to control several windows.
Read more →