Sunday, March 31, 2013

Disabling the mouse whilst typing in Linux

I don't know why this isn't turned on in every distro by now, but the magic incantation to fix the annoyance of accidentally clicking the mouse with your palms while you're typing is:
syndaemon -d -k -i 0.5

The options are: run as resident (-d), ignore modifer keys (-k, so you can still ctrl-click), and wait for half a second before enabling the mouse again (-i 0.5).

Friday, January 25, 2013

Close Shared SSH Connections Manually

Most of the time shared SSH connections are great. They speed up connecting to your frequent servers enormously.

Occasionally though, you may need to stop it (for example, you need to create a new connection with X forwarding). To do this, use ssh -O stop <hostname>.

Via StackOverflow

Wednesday, January 9, 2013

Making Mistakes in Git

I wanted to make a couple of changes to an open source library that was based on GitHub. I had made a contribution to another library before, but I didn't really do it properly. This time, I was definitely going to do it right. Here's what I learnt.

Start and End with a Branch

I thought I was being good with my git branch foo, git checkout foo skills. While I was diligent in committing to my local branch, when I was finished I merged it into my master and pushed from there.

Pro tip: git push foo origin after you've finished working in your branch.

Doing this means you can open a shiny pull request with only your change in it.

Creating Remote Branches from Locally Merged Branches

Firstly; give up on your local branch. Seriously -- delete it using git branch -D foo. Also make sure you haven't got an existing remote branch (if you do, get rid of it using git push origin :foo).

Then recreate your local branch, and use the magic git rebase -i HEAD~5 (where 5 means get the last 5 commits). This opens an editor where you can delete the commits you don't want to appear in the branch.

Once you've done this, you can git push foo origin, and you'll have a beautiful remote branch all set up for a pull request.