In Favor of Fast Builds

This is an entry in my loose series of posts about build systems. I've been thinking recently about why I've come to think that build systems are so important, and this post is mostly just me thinking aloud about this issue and related questions. Making Builds Efficient Writing a build systems for a project is often relatively trivial, once you capture the process, and figure out the base dependencies, you can write scripts and make files to automate this process.…

Keep reading

On Build Processes

I've found myself writing a fair number of Makefiles in the last few weeks: In part because it was a tool, hell a class of tools, that I didn't really understand and I'm a big sucker for learning new things, and in part because I had a lot of build process-related tasks to automate. But I think my interest is a bit deeper than that. Make and related tools provide a good metaphor for thinking about certain kinds of tasks and processes.…

Keep reading

Computing Literacy Project

I'm working on the final touches of a treatise on Systems Administration that I've mentioned in passing here before. I hope to have this project up on a web-server near you (near me?) in a few months. Because I've had a lot of fun working on this project, I decided that it would be cool to do a similar project on another topic dear to my technical interest: Computing Literacy.…

Keep reading

The Editing Hole

I'm stuck in an editing hole, and not only am I not editing the things I need to edit, I'm not getting anything done. I'm at a point where I have about 25 things on my personal task list, and 16 of them are editing related tasks: edit the article in this file, edit this fiction, edit this documentation, edit these would-be-blog posts, and so forth. It seems like I went on something of a six month writing bender, and while I did a little bit of editing during this period, I have clearly fallen behind.…

Keep reading

Git Feature Requests

The ability to mark a branch "diverged," to prevent (or warn) on attempted merges from master (for example) into a maintenance branch. The ability to create and track dedicated topic branches, and complementary tooling to encourage rebasing commits in these sorts of branches. We might call them "patch sets" or "sets" rather than "branches." Also, it might be useful to think about using/displaying these commits, when published, in a different way.…

Keep reading

Limitiations of GitHub Forks

Assumption: git is pretty awesome, but it's conceptually complex. As a result using git demands a preexisting familiarity with git itself or some sort of wrapper to minimize the conceptual overhead. The collaboration methods (i.e. hosting) provided by git, which are simple by design to allow maximum flexibility, do not provide enough structure to be practically useful. As a result providers like GitHub (and BitBucket and gitorious) offer a valuable service that makes it easier--or even possible--for people to use git.…

Keep reading

Making Things Easier

I spent a lot of time in the past few months thinking about "automation," as a project to take things that take a long time and require a lot of human intervention into things that just do themselves, and I think this is the wrong approach. While total automation is an admirable, it's difficult, both because it requires more complex software to deal with edge cases, but also because it's hard to iterate into a fully automated solution.…

Keep reading