Incremental Backup on FreeBSD with tar
by enum on May 10, 2010
Recently the rsync server at work broke down, and I needed a quick solution for incremental backup using just FTP. As it turns out, the FreeBSD version of tar is not GNU tar. So in order to use the following trick on FreeBSD, the gtar port must be installed. Once you have the software, making an increment backup with tar is easy:
$ gtar -g /backup/tar-incremental.log -cjvf /backup/backup.tar.bz2 /etc /usr/local/etc/ /usr/www
The tar-incremental.log file must be saved as it contains information for the incremental backup. Every time you run this file a new file will be created, so do not over-write your files. A more in-depth discussion can be found on the GNU tar incremental backup page.
pdnsd and NetworkManager
by enum on May 9, 2010
If you run arch linux or a similar minimal distro, you may be familiar with the local dns server pdnsd, used to cache DNS queries. If you try to run pdnsd on the same computer as NetworkManager, you may run into a problem. Using default configurations, your DNS lookups end up in a vicious loop redirecting to 127.0.0.1. To circumvent this problem, I did the following.
I let NetworkManager generate my /etc/resolv.conf file. I then copied it to /etc/resolv.conf.head. Once this was done, the server section in /etc/pdnsd.conf was edited to contain the following:
server {
label= "comcast;
file = "/etc/resolv.conf.head"; # Preferably do not use /etc/resolv.conf
# proxy_only=on; # Do not query any name servers beside your ISP's.
timeout=4; # Server timeout; this may be much shorter
# that the global timeout option.
uptest=if; # Test if the network interface is active.
interface=wlan0; # The name of the interface to check.
interval=10m; # Check every 10 minutes.
purge_cache=off; # Keep stale cache entries in case the ISP's
# DNS servers go offline.
}
Notice the file variable which tells pdnsd where to find the nameservers it will query. Once this is complete, the pdnsd daemon can be restarted. Now, NetworkManager must be told to use localhost for DNS lookups. This can be done by right-clicking the nm-applet icon and configuring the wireless for “Automatic (DHCP) Address Only”, and enter 127.0.0.1 as the DNS server. Once this is complete, you can test it with the following commands:
jaigner /var/cache $ dig kernel.org | grep Query
;; Query time: 75 msec
jaigner /var/cache $ dig kernel.org | grep Query
;; Query time: 0 msec
The second time the command was called, the cached result was fetched. If your Query time is greater than 1ms, it is likely that something is misconfigured.
Key Repeat in Linux Xorg Not Working
by enum on May 8, 2010
After installing arch linux on my laptop, I noticed a small annoyance. When I opened any sort of terminal in Xorg, they key repeat feature would not function (i.e. holding a key down would not cause it to continuously be entered). The solution turns out to be quite simple:
jaigner@turing$ xset r on
This will enable key repeat functionality.
Google Maps 3.3.1 on Cyanogen Mod 4.2.5
by enum on December 14, 2009
If you are having problems installing the new Google maps application with GPS navigation on Cyanogen, follow the steps below to install the new maps app on g1 or myTouch or other android phone:
Download the apk file from here: Google Maps 3.3.1 download
Transfer the file to the root directory of your SD card. Once the file is on your SD card, you can use an application such as Astro file manager to install the file. Simply click on the google maps icon, and click the “update” button. Maps might freeze up the first time you boot it, just wait and it should load fine.
If all the steps worked without error, you should be good to go! Have fun with the new app.
Python 2 to 3
by enum on December 2, 2009
Updating to Python 3? I found a nice cheat sheet by Mark Summerfield that shows a concise summary of the differences between Python 2 and Python 3, as well as some of the more common features of Python 3.
This document is freely available from InformIT’s website, but I have also mirrored it. Download the cheat sheet below.
Python2Python3.pdf from greynode.org
Python2Python3.pdf from InformIT’s site