The Daily Build

Icon

Software Development, version 3.0

Making perl unit tests easier to run in emacs

It’s a hassle to have to switch from emacs to the shell, run unit tests, pick out the failure, switch back to emacs, navigate to the line, forget where you were supposed to go, switch back, etc etc. The whole process is much easier with compilation-perl.el. This handy bit of code sets up patterns for [...]

Read the rest of this entry »

zsh history expansion

Exploring zsh features made me want to figure out some of the history-editing wizardry. (Bash has similar history tricks, I just never bothered to dive too deeply into them.) If you want to experiment with history expansion a bit, you can echo the result instead of executing it: hostname:~/dir% ls /some/long/path/to/file_0.1-2_i386.changes hostname:~/dir% echo !?ls?:s/-2/-3/ echo [...]

Read the rest of this entry »

9 “Must-Have” Tools for Software Teams

The items below are useful systems based on my experience working with a bunch of different software teams at a handful of companies over the past decade-plus. I haven’t bothered to list things like compilers, interpreters, libraries, etc. If you don’t have those, you aren’t making software… Source control. This almost belongs in the “if [...]

Read the rest of this entry »

Use SSH to Forward Multiple Protocols to Multiple Machines

Let’s say you have a half-dozen machines at work you want to log into. Instead of setting up a remote forwarding connection from each of those machines, you can have the connection from your main machine perform multiple forwardings instead of just one. This even works if some of the machines don’t support ssh.

Read the rest of this entry »

Open an SSH Tunnel in Four Seconds or Less

As I mentioned in a previous post on ssh configuration, your config file can specify a variety settings for each server. In fact, the Hosts you use don’t even have to exist! Consider the following snippet in your ~/.ssh/config.

Read the rest of this entry »

Use Local SSH Forwarding to Reduce the Number of Manual Hops

Local port forwarding is the same as remote port forwarding but works in the opposite direction. An example is the clearest way to explain…

Read the rest of this entry »

How to Use SSH Remote Port Forwarding to Set Up Secure Tunnels

Ssh tunneling can be a bit mind bending at first, but it’s simple when you get used to it.

Read the rest of this entry »

How to Tell SSH Who You Are

Do you log in to several servers with different usernames via ssh? Save typing by telling ssh which username to use on each server.

Read the rest of this entry »

3 Easy Ways to Stick to a Coding Standard

When you’re writing python, you don’t need a lot of debate over the minutiae of most coding standards. PEP 8 does that for you. Even better, there are some tools that make it really easy to stick to the standard. Why do this? Well, for one thing it makes code reviews easier when everyone follows [...]

Read the rest of this entry »

Makefiles are Software Too

This post was inspired by recent experience with some horrible build scripts from the open source world — but I’ve seen enough in-house badness over the years that I wanted to establish some basic parameters for build scripts. This is a really broad way to divide the world, but I see two important categories of [...]

Read the rest of this entry »