reverse engineered

git multiple remotes

git has a very undocumented feature which allows you to group multiple remote URLs as a single remote. This allows you to push to many remote branches in a single command. I prefer using gitweb to browse my repositories, so I push to my own server, but I know that other people like using github, so I may as well push there as well. To add multiple remote URLs, edit the . Read more →


Running Debian Testing means that I constantly have new packages pushed to my machine. While the majority of these changes cause no problems, occasionally there can be a few hiccups. apt-listchanges is a useful package that shows any Debian NEWS files during package upgrades. It can also be configured to show the Debian changelogs too. It cleverly displays each changelog version since the version that was previously in Testing (bear in mind that not every package version in Sid reaches Testing). Read more →

Arduino EtherShield DS18B20 Temperature Logger

I’ve been using an Arduino, an EtherShield and a DS18B20 temperature sensor to log the temperatures outside my window for about 6 months now, and it has worked well. I’ve also been getting a couple of emails looking for the source code to my program. The original code was rather quickly hacked together and I was reluctant to publish it (although I did send it to those that emailed). I got some spare time over the holidays and did a major refactor of the code, including moving from the EtherShield library to the ethercard library. Read more →

apg - Automated Password Generator

I discovered apg recently, a handy tool for generating secure passwords on the commandline. user@host:~$ apg Please enter some random data (only first 16 are significant) (eg. your old password): Ujecabhytor3 (Uj-ec-ab-hyt-or-THREE) yaxJant7 (yax-Jant-SEVEN) eewIcIkheaj9 (eew-Ic-Ik-heaj-NINE) GitAbpavhav7 (Git-Ab-pav-hav-SEVEN) GrysAcksId8 (Grys-Acks-Id-EIGHT) VurHocs1 (Vur-Hocs-ONE) You can also pass a seed to apg via the commandline for use within scripts: user@host:~$ apg -c date +%s FiWaztyt BykerWij AndyewAbFa Huoforea enyuavhew gaiwilcij Read more →

I’ve decided to set up my own APT repository as a way of keeping my patched programs in sync across all my machines. It currently contains two flavours of wine, 2 channel and 6 channel audio versions respectively, and bluez variant with support for the Logitech MX5500 keyboard and mouse. You can see an up to date release document here. The repository is signed with a dedicated GPG key, and it can be added to your system using the following commands: Read more →

Update Intel CPU Microcode

You are probably familiar with the terms firmware and drivers in the context of computer hardware, and the endless updating that they require. Most people associate these drivers and firmware updates with peripheral equipment such as graphic cards and DVD drives. You might not however be aware that you can also update the firmware on your CPU (firmware is called microcode in CPU speak). These microcode updates are normally bundled in with BIOS updates. Read more →

dpkg list files

I discovered the -L switch on dpkg recently. It is used to view what files were installed as a result of installing a particular package. jmccrohan@lambda:~$ dpkg -L lsb-base /. /lib /lib/lsb /lib/lsb/init-functions /etc /etc/lsb-base /etc/ /usr /usr/share /usr/share/doc /usr/share/doc/lsb-base /usr/share/doc/lsb-base/copyright /usr/share/doc/lsb-base/README.Debian.gz /usr/share/doc/lsb-base/changelog.Debian.gz Read more →


I discovered sysv-rc-conf today. sysv-rc-conf is a nice ncurses interface to view the runlevels of services in the /etc/init.d/ directory. sysv-rc-conf is available in the Debian and Ubuntu repos: apt-get install sysv-rc-conf Here, I’ve used stopped mysql from starting when I boot my machine: Read more →