DNA11 Artwork Un-boxing

I recently ordered 3 pieces of art from DNA11, one for each of us in the immediate family.  The whole process was actually fun and educational.  You are sent a DNA kit which you use and send back.  Once the swabs are processed you pick out your colors etc and within a short period of time your art arrives all shiny and new.  The folks at DNA11 were terrific to deal with.  They also just opened a new online shop called CanvasPop where you can have any photo printed on canvas.

As shippedThree by threeFinal

Big thanks to Adrian and Nazim! 

Tomboy 1.0.0 in Jaunty

Tomboy reached a milestone yesterday in releasing version 1.0.0.  I set out this morning to create a new package for Jaunty but Sandy and the others at Tomboy were one step ahead of me and have announced a new PPA for Tomboy builds.

To use the latest (stable) in Jaunty create the following file:

gksu gedit /etc/apt/source.list.d/tomboy.list

And add this as the content:

deb http://ppa.launchpad.net/tomboy-packagers/stable/ubuntu jaunty main
deb-src http://ppa.launchpad.net/tomboy-packagers/stable/ubuntu jaunty main

Add the keys:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 9518DB4B

Then the normal:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install tomboy

Of course there are also development packages and packages for Karmic.

Merging Querysets in Django

I had a need in one of my projects to do two different queries that result in similarly structured data. Instead of passing two variables into the template and then having to worry about the logic on the template side I wanted to merge them.

Thankfully Python provides a solution:

from itertools import chain

list = Model.objects.filter(foo=foo)
list2 = Model2.objects.filter(foo=foo)

final_var = list(chain(list,list2))

final_var is now a list containing both sets of results.

Easily Update Your PPA Keys (update-launchpad)

This nifty little shell script will automatically install keys for any PPA you have added to your sources lists.  Handy but use with caution.  The keys are there to protect you.  Automating their install, while handy, leaves you blind to a hack.

#! /bin/sh
if [ "`whoami`" != "root" ];
then
echo "Please run with SUDO"
exit 1
fi
RELEASE=`cat /etc/lsb-release | grep DISTRIB_CODENAME | cut -d"=" -f2`
echo Release: $RELEASE
echo Please Wait...
for q in `find /etc/apt/ -name *.list`; do
cat $q >> fullsourceslist
done
for i in `cat fullsourceslist | grep "deb http" | grep ppa.launchpad | grep \
$RELEASE | cut -d/ -f4`; do
    wget -q --no-check-certificate `wget -q --no-check-certificate \
    https://launchpad.net/~$i/+archive -O- | grep \
    "http://keyserver.ubuntu.com:11371/pks/" | cut -d'"' -f2 ` -O- | grep \
    "pub  " | cut -d'"' -f2 >> keyss
done
for j in `cat keyss` ; do
	wget -q --no-check-certificate "http://keyserver.ubuntu.com:11371$j" -O- |\
    grep -B 999999 END |grep -A 999999 BEGIN > keyss2
	sudo apt-key add keyss2
	rm keyss2
done
rm keyss
rm fullsourceslist

launchpad-update.tar.gz

Found this here thanks to the author (blackgr).