<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4865059753586627769</id><updated>2011-11-16T17:47:53.003Z</updated><category term='Acer Crystal Eye'/><category term='Get IP Address'/><category term='deer santah'/><category term='pwntterstats'/><category term='favicon.ico'/><category term='perl'/><category term='Lolcat'/><category term='Electric Sheep'/><category term='Can I has IP?'/><category term='mencoder'/><category term='Ubuntu 9.10'/><category term='fswebcam'/><category term='tor'/><category term='cihip'/><category term='Jaunty'/><category term='BigDump'/><category term='BCM4311'/><category term='gwibber'/><category term='TTYtter'/><category term='aggers'/><category term='find'/><category term='Onion Routing'/><category term='Ubuntu 9.04'/><category term='leafnode'/><category term='ati'/><category term='broadcom b43'/><category term='cli alarm clock'/><category term='SBx00'/><category term='linux kernel'/><category term='alarm clock'/><category term='#londonriots'/><category term='perl get ip'/><category term='perl client'/><category term='iplayer'/><category term='TMS'/><category term='sort'/><category term='pwntter'/><category term='X1200'/><category term='linux'/><category term='DynDNS'/><category term='Linux Mint'/><category term='dovecot'/><category term='MySQL'/><category term='london riots'/><category term='RS690M'/><category term='b43'/><category term='IMAP'/><category term='tux'/><category term='LOLCODE'/><category term='ssh'/><category term='Code::Blocks'/><category term='bbc'/><category term='Amarok'/><category term='Lolcat 404'/><category term='DNS-O-Matic'/><category term='radeon'/><category term='AWStats'/><category term='join avi files'/><category term='Alias'/><category term='unix'/><category term='tunnel'/><category term='OpenDNS'/><category term='mp3'/><category term='.bashrc'/><category term='Ubuntu'/><category term='#BBCiPlayerfeedback'/><category term='spaces in files'/><category term='ksplice'/><category term='getmail'/><category term='gmail'/><title type='text'>prawn</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-2225963060304210291</id><published>2011-09-10T17:16:00.001+01:00</published><updated>2011-10-08T11:09:57.851+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='.bashrc'/><title type='text'>.bashrc settings</title><content type='html'>In the unlikely event of me losing my custom .bashrc settings, I shall post a copy here as a backup :-)&lt;br /&gt;I tend to use whatever settings come with the distro that I'm using and bung this on the end.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;NNTPSERVER='localhost' &amp;amp;&amp;amp; export NNTPSERVER&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;#home server&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;ORAC='my.home.server.fqdn' &amp;amp;&amp;amp; export ORAC&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;#BAD TYPING KLAXON.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias suod='sudo'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias yums='yum search'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias yumi='sudo yum install'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias yumsync='sudo yum distro-sync'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias yumu='sudo yum upgrade'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias apti='sudo apt-get install'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias aptu='sudo apt-get upgrade'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias sshh='gnome-terminal --profile=ssh --title="ssh home" -e "ssh $ORAC"'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias pacu='sudo pacman -Syu'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;alias paci='sudo pacman -S'&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;#-------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;# File functions:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;#-------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;# Find a file with a pattern in file name&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;function ff() { find . -type f -iname '*'$*'*' -ls ; }&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;# Find a file with pattern $1 &amp;amp; Execute $2 on it:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;function fe()&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;{ find . -type f -iname '*'${1:-}'*' -exec ${2:-file} {} \; &amp;nbsp;; }&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;# Find a pattern in a set of files&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;function fstr()&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; OPTIND=1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; local case=""&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; local usage="fstr: find string in files.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;Usage: fstr [-i] \"pattern\" [\"filename pattern\"] "&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; while getopts :it opt&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; do&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case "$opt" in&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i) case="-i " ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *) echo "$usage"; return;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; esac&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; done&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; shift $(( $OPTIND - 1 ))&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; if [ "$#" -lt 1 ]; then&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo "$usage"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; find . -type f -name "${2:-*}" -print0 | \&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; xargs -0 egrep --color=always -sn ${case} "$1" 2&amp;gt;&amp;amp;- | more&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;# Useful? &amp;nbsp;You bet.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;function extract()&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if [ -f $1 ] ; then&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case $1 in&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.tar.bz2) &amp;nbsp; tar xvjf $1 &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.tar.gz) &amp;nbsp; &amp;nbsp;tar xvzf $1 &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.bz2) &amp;nbsp; &amp;nbsp; &amp;nbsp; bunzip2 $1 &amp;nbsp; &amp;nbsp; &amp;nbsp;;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.rar) &amp;nbsp; &amp;nbsp; &amp;nbsp; unrar x $1 &amp;nbsp; &amp;nbsp; &amp;nbsp;;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.gz) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;gunzip $1 &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.tar) &amp;nbsp; &amp;nbsp; &amp;nbsp; tar xvf $1 &amp;nbsp; &amp;nbsp; &amp;nbsp;;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.tbz2) &amp;nbsp; &amp;nbsp; &amp;nbsp;tar xvjf $1 &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.tgz) &amp;nbsp; &amp;nbsp; &amp;nbsp; tar xvzf $1 &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.zip) &amp;nbsp; &amp;nbsp; &amp;nbsp; unzip $1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.Z) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uncompress $1 &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*.7z) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7z x $1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo "'$1' cannot be extracted." ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;echo "'$1' is not a valid file"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-2225963060304210291?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/2225963060304210291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=2225963060304210291' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/2225963060304210291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/2225963060304210291'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2011/09/bashrc-settings.html' title='.bashrc settings'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-4122870966876627955</id><published>2011-08-09T00:03:00.011+01:00</published><updated>2011-08-11T14:20:14.091+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='#londonriots'/><category scheme='http://www.blogger.com/atom/ns#' term='pwntterstats'/><category scheme='http://www.blogger.com/atom/ns#' term='london riots'/><title type='text'>#londonriots</title><content type='html'>&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pwntterstats&lt;/br&gt;&lt;/br&gt;&lt;/br&gt;Run&amp;nbsp;on:..........&amp;nbsp;&amp;nbsp;Thu&amp;nbsp;Aug&amp;nbsp;11&amp;nbsp;14:19:47&amp;nbsp;BST&amp;nbsp;2011&lt;/br&gt;Stats&amp;nbsp;from:......&amp;nbsp;&amp;nbsp;08-08-2011&lt;/br&gt;Stats&amp;nbsp;to:........&amp;nbsp;&amp;nbsp;08-08-2011&lt;/br&gt;Total&amp;nbsp;tweets:....&amp;nbsp;&amp;nbsp;593&lt;/br&gt;Bytes&amp;nbsp;tweeted:...&amp;nbsp;&amp;nbsp;57,121&lt;/br&gt;&lt;/br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Most&amp;nbsp;popular&amp;nbsp;hashtags&amp;nbsp;in&amp;nbsp;feed&lt;/br&gt;&lt;/br&gt;&amp;nbsp;1.&amp;nbsp;#londonriots...................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;104&lt;/br&gt;&amp;nbsp;2.&amp;nbsp;#enfield.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/br&gt;&amp;nbsp;3.&amp;nbsp;#vinb..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/br&gt;&amp;nbsp;4.&amp;nbsp;#tottenham.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/br&gt;&amp;nbsp;5.&amp;nbsp;#cpfc..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/br&gt;&amp;nbsp;6.&amp;nbsp;#ubuntu........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/br&gt;&amp;nbsp;7.&amp;nbsp;#debtcrisis....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/br&gt;&amp;nbsp;8.&amp;nbsp;#suckers.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/br&gt;&amp;nbsp;9.&amp;nbsp;#sigh..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/br&gt;10.&amp;nbsp;#cdwm..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/br&gt;11.&amp;nbsp;#horizon.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/br&gt;12.&amp;nbsp;#motogp........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/br&gt;13.&amp;nbsp;#medicalfilms..................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/br&gt;14.&amp;nbsp;#londonriot....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/br&gt;15.&amp;nbsp;#thatsall......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/br&gt;16.&amp;nbsp;#leeds.........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/br&gt;17.&amp;nbsp;#bbc4..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/br&gt;18.&amp;nbsp;#keepsmilin....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/br&gt;19.&amp;nbsp;#crawley.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/br&gt;20.&amp;nbsp;#lameprexercise................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/code&gt;&lt;p&gt;Hashtag Cloud&lt;/p&gt;&lt;div id="htmltagcloud"&gt;&lt;span class="tagcloud0"&gt;#backofthethroat&lt;/span&gt;&lt;span class="tagcloud0"&gt;#bbc4&lt;/span&gt;&lt;span class="tagcloud0"&gt;#bcci&lt;/span&gt;&lt;span class="tagcloud0"&gt;#brnoorbust&lt;/span&gt;&lt;span class="tagcloud3"&gt;#cdwm&lt;/span&gt;&lt;span class="tagcloud8"&gt;#cpfc&lt;/span&gt;&lt;span class="tagcloud0"&gt;#crawley&lt;/span&gt;&lt;span class="tagcloud5"&gt;#debtcrisis&lt;/span&gt;&lt;span class="tagcloud0"&gt;#diskriminacija&lt;/span&gt;&lt;span class="tagcloud0"&gt;#dontgiveafuggnews&lt;/span&gt;&lt;span class="tagcloud0"&gt;#edl&lt;/span&gt;&lt;span class="tagcloud12"&gt;#enfield&lt;/span&gt;&lt;span class="tagcloud3"&gt;#horizon&lt;/span&gt;&lt;span class="tagcloud0"&gt;#justsayin&lt;/span&gt;&lt;span class="tagcloud0"&gt;#keepsmilin&lt;/span&gt;&lt;span class="tagcloud0"&gt;#klf&lt;/span&gt;&lt;span class="tagcloud0"&gt;#lameprexercise&lt;/span&gt;&lt;span class="tagcloud0"&gt;#leeds&lt;/span&gt;&lt;span class="tagcloud0"&gt;#letthegamesbegin&lt;/span&gt;&lt;span class="tagcloud0"&gt;#lhc&lt;/span&gt;&lt;span class="tagcloud3"&gt;#londonriot&lt;/span&gt;&lt;span class="tagcloud24"&gt;#londonriots&lt;/span&gt;&lt;span class="tagcloud0"&gt;#londonsburning&lt;/span&gt;&lt;span class="tagcloud3"&gt;#medicalfilms&lt;/span&gt;&lt;span class="tagcloud3"&gt;#motogp&lt;/span&gt;&lt;span class="tagcloud0"&gt;#ms&lt;/span&gt;&lt;span class="tagcloud0"&gt;#multiplesclerosis&lt;/span&gt;&lt;span class="tagcloud0"&gt;#murdocracy&lt;/span&gt;&lt;span class="tagcloud0"&gt;#newsnight&lt;/span&gt;&lt;span class="tagcloud0"&gt;#newspeak&lt;/span&gt;&lt;span class="tagcloud0"&gt;#newtwitter&lt;/span&gt;&lt;span class="tagcloud0"&gt;#nowshowing&lt;/span&gt;&lt;span class="tagcloud0"&gt;#nufc&lt;/span&gt;&lt;span class="tagcloud0"&gt;#pbd&lt;/span&gt;&lt;span class="tagcloud0"&gt;#peopleofheaven&lt;/span&gt;&lt;span class="tagcloud0"&gt;#perspective&lt;/span&gt;&lt;span class="tagcloud0"&gt;#physics&lt;/span&gt;&lt;span class="tagcloud0"&gt;#randomtweet&lt;/span&gt;&lt;span class="tagcloud0"&gt;#raybans&lt;/span&gt;&lt;span class="tagcloud0"&gt;#reallysadface&lt;/span&gt;&lt;span class="tagcloud0"&gt;#riots&lt;/span&gt;&lt;span class="tagcloud3"&gt;#sigh&lt;/span&gt;&lt;span class="tagcloud5"&gt;#suckers&lt;/span&gt;&lt;span class="tagcloud0"&gt;#thatsall&lt;/span&gt;&lt;span class="tagcloud0"&gt;#toomanytweets&lt;/span&gt;&lt;span class="tagcloud9"&gt;#tottenham&lt;/span&gt;&lt;span class="tagcloud7"&gt;#ubuntu&lt;/span&gt;&lt;span class="tagcloud0"&gt;#uk&lt;/span&gt;&lt;span class="tagcloud0"&gt;#ukriots&lt;/span&gt;&lt;span class="tagcloud12"&gt;#vinb&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/pwntter/"&gt;Generated by pwntterstats version 0.2&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-4122870966876627955?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/4122870966876627955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=4122870966876627955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4122870966876627955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4122870966876627955'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2011/08/londonriots.html' title='#londonriots'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-9022357550511819324</id><published>2011-08-01T17:54:00.027+01:00</published><updated>2011-09-21T15:19:08.363+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pwntterstats'/><category scheme='http://www.blogger.com/atom/ns#' term='TTYtter'/><category scheme='http://www.blogger.com/atom/ns#' term='pwntter'/><title type='text'>pwntterstats</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: large;"&gt;Introducing pwntterstats&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;pwntterstats is an extension which generates reports from data collected by pwntter.&lt;br /&gt;&lt;br /&gt;You will need a working installation of&lt;a href="http://code.google.com/p/pwntter/"&gt; pwntter&lt;/a&gt; in order to run this utility.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Download&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;pwntterstats can be downloaded &lt;a href="http://code.google.com/p/pwntter/downloads/list"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;A sample report is below.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pwntterstats&amp;nbsp;Sample&amp;nbsp;Report&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Run&amp;nbsp;on:..........&amp;nbsp;&amp;nbsp;Tue&amp;nbsp;Aug&amp;nbsp;&amp;nbsp;2&amp;nbsp;09:06:00&amp;nbsp;BST&amp;nbsp;2011&lt;br /&gt;Stats&amp;nbsp;from:......&amp;nbsp;&amp;nbsp;29-07-2011&lt;br /&gt;Stats&amp;nbsp;to:........&amp;nbsp;&amp;nbsp;02-08-2011&lt;br /&gt;Total&amp;nbsp;tweets:....&amp;nbsp;&amp;nbsp;2,176&lt;br /&gt;Bytes&amp;nbsp;tweeted:...&amp;nbsp;&amp;nbsp;198,112&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tweets&amp;nbsp;per&amp;nbsp;Twitter&amp;nbsp;client&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1.&amp;nbsp;TweetDeck......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;647&lt;br /&gt;&amp;nbsp;2.&amp;nbsp;Twitter&amp;nbsp;for&amp;nbsp;iPhone.............................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;525&lt;br /&gt;&amp;nbsp;3.&amp;nbsp;Tweetlogix.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;458&lt;br /&gt;&amp;nbsp;4.&amp;nbsp;Twittelator....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;103&lt;br /&gt;&amp;nbsp;5.&amp;nbsp;TTYtter&amp;nbsp;(pr4wn)................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;66&lt;br /&gt;&amp;nbsp;6.&amp;nbsp;Twitter&amp;nbsp;for&amp;nbsp;BlackBerry®........................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;66&lt;br /&gt;&amp;nbsp;7.&amp;nbsp;FBtoTweet......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;47&lt;br /&gt;&amp;nbsp;8.&amp;nbsp;Mobile&amp;nbsp;Web.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&lt;br /&gt;&amp;nbsp;9.&amp;nbsp;Twidroyd&amp;nbsp;for&amp;nbsp;Android...........................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;br /&gt;10.&amp;nbsp;Tweet&amp;nbsp;Button...................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;br /&gt;11.&amp;nbsp;Echofon........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;br /&gt;12.&amp;nbsp;Instagram......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;br /&gt;13.&amp;nbsp;Seesmic........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;br /&gt;14.&amp;nbsp;Twitter&amp;nbsp;for&amp;nbsp;iPad...............................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;br /&gt;15.&amp;nbsp;Facebook.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;br /&gt;16.&amp;nbsp;Tweetbot&amp;nbsp;for&amp;nbsp;iPhone............................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;br /&gt;17.&amp;nbsp;Twitter&amp;nbsp;for&amp;nbsp;Mac................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;br /&gt;18.&amp;nbsp;Twitpic........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;br /&gt;19.&amp;nbsp;Google.........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;br /&gt;20.&amp;nbsp;HootSuite......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;br /&gt;21.&amp;nbsp;Twitter&amp;nbsp;for&amp;nbsp;Android............................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;br /&gt;22.&amp;nbsp;b2evolution&amp;nbsp;tweet&amp;nbsp;plugin.......................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;br /&gt;23.&amp;nbsp;TTYtter........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;br /&gt;24.&amp;nbsp;twitterfeed....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;br /&gt;25.&amp;nbsp;bitly..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;br /&gt;26.&amp;nbsp;TweetPic&amp;nbsp;for&amp;nbsp;iPhone............................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;br /&gt;27.&amp;nbsp;web............................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;28.&amp;nbsp;Choqok.........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;29.&amp;nbsp;The&amp;nbsp;Guardian&amp;nbsp;iPhone&amp;nbsp;App........................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;br /&gt;30.&amp;nbsp;Twitterrific...................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Busiest&amp;nbsp;users&amp;nbsp;in&amp;nbsp;feed&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1. aaaaa..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;287&lt;br /&gt;&amp;nbsp;2. bbbbbbbb.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;220&lt;br /&gt;&amp;nbsp;3. cccccccccccccc.................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;182&lt;br /&gt;&amp;nbsp;4. ddddddd........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;129&lt;br /&gt;&amp;nbsp;5. eeeeeeee.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;123&lt;br /&gt;&amp;nbsp;6. fffffffffffffff................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;108&lt;br /&gt;&amp;nbsp;7. ggggggggggggg..................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;90&lt;br /&gt;&amp;nbsp;8. hhhhhhhhhh.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;70&lt;br /&gt;&amp;nbsp;9. iiiiiii........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;69&lt;br /&gt;10. jjjjjjjjjjj....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;63&lt;br /&gt;11. kkkkkkkkkkkkk..................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;59&lt;br /&gt;12. lllllllllllllll................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;57&lt;br /&gt;13. mmmmmmmmmm.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;52&lt;br /&gt;14. nnnnnnnnnn.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;52&lt;br /&gt;15. ooooooooooooooo................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;47&lt;br /&gt;16. ppppppppp......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;46&lt;br /&gt;17. qqqqqqqqq......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;43&lt;br /&gt;18. rrrrrrrrr......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;40&lt;br /&gt;19. sssss..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&lt;br /&gt;20. ttttttttttt....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;31&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Most&amp;nbsp;popular&amp;nbsp;hashtags&amp;nbsp;in&amp;nbsp;feed&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1.&amp;nbsp;#fridaytwiz....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;58&lt;br /&gt;&amp;nbsp;2.&amp;nbsp;#EngvInd.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;34&lt;br /&gt;&amp;nbsp;3.&amp;nbsp;#cpfc..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;br /&gt;&amp;nbsp;4.&amp;nbsp;#NUFC..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;br /&gt;&amp;nbsp;5.&amp;nbsp;#celebrityheadchef.............................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;br /&gt;&amp;nbsp;6.&amp;nbsp;#FridayTwiz....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;br /&gt;&amp;nbsp;7.&amp;nbsp;#CDWM..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;br /&gt;&amp;nbsp;8.&amp;nbsp;#CDWMIE........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;br /&gt;&amp;nbsp;9.&amp;nbsp;#Iran..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;br /&gt;10.&amp;nbsp;#F1............................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;br /&gt;11.&amp;nbsp;#bbccricket....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;br /&gt;12.&amp;nbsp;#newsnight.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;13.&amp;nbsp;#ubuntu........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;14.&amp;nbsp;#ClassicMurdoch................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;15.&amp;nbsp;#Bahrain.......................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;16.&amp;nbsp;#tms...........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;17.&amp;nbsp;#Papua.........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;18.&amp;nbsp;#ssj...........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;19.&amp;nbsp;#weareallanarchists............................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;20.&amp;nbsp;#USdebt........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Busiest&amp;nbsp;hours&amp;nbsp;in&amp;nbsp;feed&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1.&amp;nbsp;16:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;169&lt;br /&gt;&amp;nbsp;2.&amp;nbsp;22:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;148&lt;br /&gt;&amp;nbsp;3.&amp;nbsp;14:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;147&lt;br /&gt;&amp;nbsp;4.&amp;nbsp;11:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;146&lt;br /&gt;&amp;nbsp;5.&amp;nbsp;12:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;145&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Quietest&amp;nbsp;hours&amp;nbsp;in&amp;nbsp;feed&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1.&amp;nbsp;05:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;br /&gt;&amp;nbsp;2.&amp;nbsp;06:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;br /&gt;&amp;nbsp;3.&amp;nbsp;03:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;br /&gt;&amp;nbsp;4.&amp;nbsp;02:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;br /&gt;&amp;nbsp;5.&amp;nbsp;04:00..........................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Busiest&amp;nbsp;days&amp;nbsp;in&amp;nbsp;feed&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1.&amp;nbsp;2011-07-29.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;625&lt;br /&gt;&amp;nbsp;2.&amp;nbsp;2011-07-31.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;521&lt;br /&gt;&amp;nbsp;3.&amp;nbsp;2011-07-30.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;508&lt;br /&gt;&amp;nbsp;4.&amp;nbsp;2011-08-01.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;458&lt;br /&gt;&amp;nbsp;5.&amp;nbsp;2011-08-02.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;64&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Quietest&amp;nbsp;days&amp;nbsp;in&amp;nbsp;feed&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1.&amp;nbsp;2011-08-02.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;64&lt;br /&gt;&amp;nbsp;2.&amp;nbsp;2011-08-01.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;458&lt;br /&gt;&amp;nbsp;3.&amp;nbsp;2011-07-30.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;508&lt;br /&gt;&amp;nbsp;4.&amp;nbsp;2011-07-31.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;521&lt;br /&gt;&amp;nbsp;5.&amp;nbsp;2011-07-29.....................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;625&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Posts&amp;nbsp;by&amp;nbsp;day&amp;nbsp;of&amp;nbsp;week&amp;nbsp;in&amp;nbsp;feed&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1.&amp;nbsp;Fri............................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;625&lt;br /&gt;&amp;nbsp;2.&amp;nbsp;Sun............................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;521&lt;br /&gt;&amp;nbsp;3.&amp;nbsp;Sat............................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;508&lt;br /&gt;&amp;nbsp;4.&amp;nbsp;Mon............................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;458&lt;br /&gt;&amp;nbsp;5.&amp;nbsp;Tue............................................:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;64&lt;br /&gt;&lt;br /&gt;Generated&amp;nbsp;by&amp;nbsp;pwntterstats&amp;nbsp;version&amp;nbsp;0.1&lt;/code&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Command Line Options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To demonstrate the flexibility of pwntterstats, here are the command line options:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;pwntterstats --help&lt;/code&gt;&lt;br /&gt;&lt;code&gt;Usage: $0 [options]&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--usage, --help, -h, -? &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;Print this message&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--from, -f &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;From date YYYYMMDD [yesterday]&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--to, -t &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;To date YYYYMMDD &amp;nbsp; [yesterday)]&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--output, -o&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Output filename&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--title, -e&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Report title &amp;nbsp; &amp;nbsp; &amp;nbsp; [pwntterstats]&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--width, -w&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Report Width &amp;nbsp; &amp;nbsp; &amp;nbsp; [72]&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--html, -l &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;Simple HTML output&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--all, -a&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Runs all reports except the hashtag cloud&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;				&lt;/span&gt;report unless --html arguent is used&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--dow, -w&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Day of week report&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--hashtag, -ht&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Hashtag report&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--client, -c&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Twitter client report&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--user, -u&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;User report&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--hours, -ho&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Busy/quiet hours report&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--days, -d&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Busy/quiet day report&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--cloud, -cl&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Run a hashtag cloud report in html&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;				&lt;/span&gt;The rest of the report will be in html too.&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--cloudwords&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;			&lt;/span&gt;Maximum number of words in hashtag cloud [50]&lt;/code&gt;&lt;br /&gt;&lt;code&gt;--nocss&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;				&lt;/span&gt;Do not print CSS code with cloud report&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;example:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;pwntterstats --from 20110701 --to 20110731 --all --html --title "July 2011 Statistics" --output /var/www/stats/201107.html&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;div&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Wiki&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've created a wiki for any urgent notifications relating to pwntter&amp;nbsp;&lt;a href="http://code.google.com/p/pwntter/w/list"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I draw your attention to &lt;a href="http://code.google.com/p/pwntter/wiki/nulltimezone"&gt;this&lt;/a&gt; article to reconfigure your time_zone field to allow NULL items to be returned by the twitter API.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-9022357550511819324?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/9022357550511819324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=9022357550511819324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/9022357550511819324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/9022357550511819324'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2011/08/pwntterstats.html' title='pwntterstats'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-1787152619111086258</id><published>2011-07-29T18:03:00.012+01:00</published><updated>2011-08-01T13:04:55.062+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BCM4311'/><category scheme='http://www.blogger.com/atom/ns#' term='SBx00'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux Mint'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Hello Mint</title><content type='html'>Having got fed up with the direction Canonical are taking with Ubuntu, I have spent the last month flirting with other distros to see which would be a good fit. My only requirement was that it had to have Gnome 2 out of the box and a fairly hassle free install on my laptop.&lt;br /&gt;&lt;br /&gt;For the time being, I have gone with&lt;a href="http://www.linuxmint.com/download_lmde.php"&gt; Linux Mint Debian Edition&lt;/a&gt;&amp;nbsp;which is&amp;nbsp;a heady cocktail of Mint, Debian and Debian-Multimedia repositories and suits my pragmatic approach to non-free extras. &amp;nbsp;So, it's installed and I have got everything to work – in fact, my desktop looks identical and only the Mint branded GDM login screen gives the game away.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Hardware Issues&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Sound&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;code&gt;00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This was the first distro not to play nicely with my soundcard and was fixed by downloading hda-verb and appending the following to&lt;br /&gt;&lt;br /&gt;/etc/rc.local&lt;code&gt;/usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 3&lt;br /&gt;/usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 1&lt;/code&gt;&lt;code&gt;/usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Don't ask me why, but it just worked.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Broadcom&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;05:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As ever, my BCM4311 wifi card failed to be detected and was quickly fixed by:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install firmware-b43-installer&lt;/code&gt;&lt;code&gt;sudo modprobe b43&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here's a screenshot.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4KzycRlKDGg/TjLmneLZObI/AAAAAAAAAM0/FjV6hHvjHbA/s1600/mintydesktop.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-4KzycRlKDGg/TjLmneLZObI/AAAAAAAAAM0/FjV6hHvjHbA/s320/mintydesktop.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-1787152619111086258?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/1787152619111086258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=1787152619111086258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/1787152619111086258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/1787152619111086258'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2011/07/hello-mint.html' title='Hello Mint'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-4KzycRlKDGg/TjLmneLZObI/AAAAAAAAAM0/FjV6hHvjHbA/s72-c/mintydesktop.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-2223522450677562734</id><published>2011-03-18T09:33:00.009Z</published><updated>2011-08-01T13:05:52.299+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TTYtter'/><title type='text'>Setting up TTYtter</title><content type='html'>I've been using TTYtter on my laptop solidly for 24 hours now and have got it set up &lt;i&gt;just so&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;For my perfect recipe, add extension &lt;a href="https://github.com/colindean/ttytter-libnotifyperl"&gt;libnotifyperl&lt;/a&gt;&amp;nbsp;and install CPAN module&amp;nbsp;&lt;a href="http://search.cpan.org/~ckaiser/Term-ReadLine-TTYtter-1.2/"&gt;Term::ReadLine::TTYtter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My &amp;nbsp;.ttytterrc file looks like this:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;ansi=1&lt;/span&gt;&lt;br /&gt;&lt;code&gt;readline=Term::ReadLine::TTYtter&lt;br /&gt;vcheck=1&lt;br /&gt;slowpost=4&lt;br /&gt;exts=/usr/local/bin/libnotifyperl.pl&lt;br /&gt;notifytype=libnotifyperl&lt;br /&gt;notifies=dm,reply&lt;br /&gt;#sod ASCII art, I opted to call eye of gnome to view avatars ;-)&lt;br /&gt;avatar=curl -s %U &amp;gt; /tmp/ttytter-%N.%E; eog /tmp/ttytter-%N.%E &amp;amp;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-2223522450677562734?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/2223522450677562734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=2223522450677562734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/2223522450677562734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/2223522450677562734'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2011/03/setting-up-ttytter.html' title='Setting up TTYtter'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-4140165430819602444</id><published>2011-03-14T10:03:00.007Z</published><updated>2011-08-02T00:55:59.930+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TTYtter'/><category scheme='http://www.blogger.com/atom/ns#' term='pwntter'/><title type='text'>Introducing pwntter</title><content type='html'>I discovered a great little CLI based twitter app called &lt;a href="http://www.floodgap.com/software/ttytter/"&gt;TTYtter&lt;/a&gt; a couple of days ago and discovered, i) it is written using Perl, and, ii) one can write extensions for it.  For a gentleman with some free time over a weekend, this is a Bad Thing™.&lt;br /&gt;&lt;br /&gt;Having a read through the TTYtter documnentation, I discovered that it was an extraordinarily flexible little tool and one could also run it in daemon mode.  Which then made me think that storing my twitter stream into a MySQL database would be a Good Thing™.&lt;br /&gt;&lt;br /&gt;So, here is the result of my efforts, namely, pwntter.  I am adopting the maxim "Release early, release often" with this project and am hosting it in a Google Code &lt;a href="http://code.google.com/p/pwntter/"&gt;repository&lt;/a&gt;.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;What you need&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A Perl interpreter.&lt;/li&gt;&lt;li&gt;The following CPAN modules: DBD::mysql, Date::Manip and HTML::Entities.&lt;/li&gt;&lt;li&gt;A working installation of &lt;a href="http://www.floodgap.com/software/ttytter/dl.html"&gt;TTYtter&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;To read the &lt;a href="http://www.floodgap.com/software/ttytter/"&gt;TTYtter&lt;/a&gt; documentation. And then read it again. And again, probably.&lt;/li&gt;&lt;li&gt;A MySQL database.&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Installing pwntter&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://code.google.com/p/pwntter/downloads/list"&gt;Download&lt;/a&gt; and unpack project from the download section&lt;http: com="" downloads="" list="" p="" pwntter=""&gt;.&lt;br /&gt;&lt;br /&gt;Create or use an an existing MySQL database and execute the pwntter.sql file. The self-explanatory table names are: users, tweets and direct_messages.&lt;br /&gt;&lt;/http:&gt;&lt;http: com="" downloads="" list="" p="" pwntter=""&gt;Edit pwntter.pl with hostname, database, userid and password for your MySQL database:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# mysql database config.&lt;br /&gt;my $host     = "localhost";&lt;br /&gt;my $db       = "pwntter";&lt;br /&gt;my $user_id  = "mysqluserid";&lt;br /&gt;my $password = "mysqlpassword";&lt;/code&gt;`&lt;br /&gt;&lt;br /&gt;If they are not already installed, install Perl modules DB, Date::Manip and HTML::Entities.&lt;br /&gt;&lt;br /&gt;Run TTYtter with the pwntter extension. For example:&lt;code&gt;ttytter -exts=pwntter.pl -hold -daemon&lt;/code&gt;&lt;br /&gt;Fill your database.&lt;/http:&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;http: com="" downloads="" list="" p="" pwntter=""&gt;&lt;br /&gt;&lt;/http:&gt;&lt;br /&gt;&lt;http: com="" downloads="" list="" p="" pwntter=""&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Screenshot&lt;/span&gt;&lt;/http:&gt;&lt;br /&gt;&lt;http: com="" downloads="" list="" p="" pwntter=""&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/http:&gt;&lt;http: com="" downloads="" list="" p="" pwntter=""&gt;Ha!  It really doesn't do anything graphical or textual.  Here's a query instead...&lt;/http:&gt;&lt;http: com="" downloads="" list="" p="" pwntter=""&gt;&lt;br /&gt;&lt;/http:&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-RxhXJlUDibQ/TX4gfv8OY0I/AAAAAAAAAK8/iDhvjkrvcv8/s1600/pwntter-works.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="https://lh3.googleusercontent.com/-RxhXJlUDibQ/TX4gfv8OY0I/AAAAAAAAAK8/iDhvjkrvcv8/s320/pwntter-works.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-4140165430819602444?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/4140165430819602444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=4140165430819602444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4140165430819602444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4140165430819602444'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2011/03/introducing-pwntter.html' title='Introducing pwntter'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-RxhXJlUDibQ/TX4gfv8OY0I/AAAAAAAAAK8/iDhvjkrvcv8/s72-c/pwntter-works.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-9103303605365944448</id><published>2010-11-11T12:26:00.003Z</published><updated>2010-11-12T06:51:07.393Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='mencoder'/><category scheme='http://www.blogger.com/atom/ns#' term='join avi files'/><title type='text'>Concatenate two avi files</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: large;"&gt;Just a quicky&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;I had two avi files from a &lt;b&gt;*cough*&lt;/b&gt; friend and a single subtitle file from &lt;b&gt;*cough*&lt;/b&gt;&amp;nbsp;another friend and needed to splice the two avi files before applying subtitles.&lt;br /&gt;&lt;br /&gt;Mencoder to the rescue:&lt;code&gt;mencoder -oac copy -ovc copy -o out.avi in1.avi in2.avi&lt;/code&gt;Proceed with subtitling as normal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-9103303605365944448?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/9103303605365944448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=9103303605365944448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/9103303605365944448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/9103303605365944448'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2010/11/concatenate-two-avi-files.html' title='Concatenate two avi files'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-1881390258293696869</id><published>2010-06-02T06:11:00.027+01:00</published><updated>2011-08-10T17:41:44.857+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spaces in files'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='sort'/><title type='text'>Fun with find</title><content type='html'>I found (ha) myself with a sticky problem. I had a directory tree of mp3 files that I wanted to play in directory order and filename order within the directories. From the outset, it seemed a trivial enough problem: use find and exec and off you go.&lt;br /&gt;&lt;br /&gt;Except some of the files had spaces in them, meaning that I had to use the &lt;span style="white-space: nowrap;"&gt;-print0&lt;/span&gt; arg which then meant that I had to wrap the output in quotes, replace the NULL char with a \n char before I could finally pass it on to sort and xargs.&lt;br /&gt;&lt;br /&gt;After much scratching of head, I came up with this:&lt;code&gt;find -type f -print0 | xargs -0 printf "\"%s\"\n"| sort&lt;br /&gt;"./01/01 Track.mp3"&lt;br /&gt;"./01/02 Track.mp3"&lt;br /&gt;"./01/03 Track.mp3"&lt;br /&gt;"./01/04 Track.mp3"&lt;br /&gt;"./01/05 Track.mp3"&lt;br /&gt;"./01/06 Track.mp3"&lt;br /&gt;"./01/07 Track.mp3"&lt;br /&gt;"./01/09 Track.mp3"&lt;br /&gt;"./02/01 Track.mp3"&lt;br /&gt;:&lt;br /&gt;etc&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Which sorts by directory and file. Simply pipe to what ever it is you want do with it. Eg:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;find -type f -print0 | xargs -0 printf "\"%s\"\n"| sort | xargs mplayer&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Further reading on similar issues and different approaches can be found &lt;a href="http://unixjunkie.blogspot.com/2007/01/handling-filenames-with-spaces_15.html"&gt;here&lt;/a&gt; on the unixjunkie blog.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?find"&gt;man find&lt;/a&gt;, &lt;a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?xargs"&gt;man xargs&lt;/a&gt; and &lt;a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?printf"&gt;man printf&lt;/a&gt; are also your friend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-1881390258293696869?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/1881390258293696869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=1881390258293696869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/1881390258293696869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/1881390258293696869'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2010/06/fun-with-find.html' title='Fun with find'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-4783708333237697877</id><published>2010-05-27T14:24:00.003+01:00</published><updated>2010-05-27T14:29:35.027+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TMS'/><category scheme='http://www.blogger.com/atom/ns#' term='aggers'/><title type='text'>TMS Widget</title><content type='html'>&lt;div&gt;&lt;i&gt;[Off Topic]&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Ah, summer is here and Aggers has just &lt;a href="http://twitter.com/Aggerscricket/statuses/14833266907"&gt;mentioned&lt;/a&gt; that there is a TMS Widget "whatever one of those is".&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, here it is...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;object width="300" height="570"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.bbc.co.uk/radio/widgets/framework/runtime.swf"&gt;&lt;br /&gt;&lt;param name="flashvars" value="pid=-&amp;amp;wid=4948dfc9e5b768c2&amp;amp;configURL=http://www.bbc.co.uk/radio/widgets/5-live-sports-extra/2181/xml/widget.xml"&gt;&lt;br /&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;br /&gt;&lt;embed src="http://www.bbc.co.uk/radio/widgets/framework/runtime.swf" flashvars="pid=-&amp;amp;wid=4948dfc9e5b768c2&amp;amp;configURL=http://www.bbc.co.uk/radio/widgets/5-live-sports-extra/2181/xml/widget.xml" width="300" height="570" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-4783708333237697877?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/4783708333237697877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=4783708333237697877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4783708333237697877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4783708333237697877'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2010/05/tms-widget.html' title='TMS Widget'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-7908815228093005865</id><published>2010-05-27T01:00:00.005+01:00</published><updated>2010-05-27T01:41:40.069+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iplayer'/><category scheme='http://www.blogger.com/atom/ns#' term='#BBCiPlayerfeedback'/><category scheme='http://www.blogger.com/atom/ns#' term='bbc'/><title type='text'>BBC iPlayer beta</title><content type='html'>I eagerly downloaded the new beta version of the BBC iPlayer in the hope that they will have allowed the rendering and placement of system menus (minimize maximize) el al to be controlled by the operating system.&lt;br /&gt;&lt;br /&gt;As it happens, I have been using my Ubuntu desktop with a Mac OSX-like theme with these menus on the left-hand side for many years.  I draw this to their attention because as from version 10.04 (Lucid Lynx) of Ubuntu the out-of-the-box settings for placement of these icons now matches mine.&lt;br /&gt;&lt;br /&gt;At the tine of writing, not only does the iPlayer place these icons in the wrong place, but they use their own artwork for these icons too.  FOR THE LOVE OF GOD, WHY? Please trust the operating system to do the job and don't presume that you know better.  Because you don't.&lt;br /&gt;&lt;br /&gt;This is what they should be doing on my system: (Tweetdeck another Adobe AIR application)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_PmkIttAGJXQ/S_21GMRpK9I/AAAAAAAAAJk/hIlRuf9gmUc/s1600/tweetdeck.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="40" src="http://2.bp.blogspot.com/_PmkIttAGJXQ/S_21GMRpK9I/AAAAAAAAAJk/hIlRuf9gmUc/s320/tweetdeck.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;This is what they are doing:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_PmkIttAGJXQ/S_21Z9Gn6LI/AAAAAAAAAJo/oD3owtp-ypo/s1600/iplayer2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="27" src="http://3.bp.blogspot.com/_PmkIttAGJXQ/S_21Z9Gn6LI/AAAAAAAAAJo/oD3owtp-ypo/s320/iplayer2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Of the countless applications I have used, this is the only one that I have encountered that knows better than the window manager and puts the system menu buttons in the wrong place (for me).&lt;div&gt;&lt;br /&gt;Please, please fix this before you release this version into the wild as a little part of me dies every time I try to minimize your application.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-7908815228093005865?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/7908815228093005865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=7908815228093005865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/7908815228093005865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/7908815228093005865'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2010/05/bbc-iplayer-beta.html' title='BBC iPlayer beta'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PmkIttAGJXQ/S_21GMRpK9I/AAAAAAAAAJk/hIlRuf9gmUc/s72-c/tweetdeck.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-3743811629848337322</id><published>2010-03-26T08:36:00.011Z</published><updated>2010-03-27T08:37:44.381Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='gwibber'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Gwibber – some intial thoughts.</title><content type='html'>I started using Gwibber yesterday as an alternative to Tweetdeck.  Tweetdeck is a lovely app but getting AIR apps to run on 64 bit boxes requires effort and I keep losing the URL on how to do it properly. (I know)&lt;br /&gt;&lt;br /&gt;Anyway as Canonical are pushing Gwibber, I thought I'd run it for a day and see how I got on.  Here are some of my (constructive, I hope) comments.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Integration with the desktop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can now tweet or update your statuses etc from the notification area.  I'm sure that this sounds like a Good Thing in a meeting but the reality is you have a 20 character window in which to type or paste your pearls of wisdom.  This, in itself, is bearable, but you would still have to remember which social networks you have enabled and which ones you have disabled - leaving you open to all kinds of inappropriate social interaction.  It's not going to go away as a feature, but I would personally AVOID, AVOID, AVOID using it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PmkIttAGJXQ/S6xymASfDqI/AAAAAAAAAI8/wg-LiazaKyk/s1600/gwibber-integration.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 242px; height: 320px;" src="http://2.bp.blogspot.com/_PmkIttAGJXQ/S6xymASfDqI/AAAAAAAAAI8/wg-LiazaKyk/s320/gwibber-integration.png" alt="" id="BLOGGER_PHOTO_ID_5452859246076956322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;must have&lt;/span&gt; integration feature that is missing is being able to dock Gwibber to the notification area.  When new notifications arrive and are being acknowledged, the mouse pointer will be in that part of the screen anyway, so a quick click a few cm away would bring Gwibber to the fore making for happy users.  Please implement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Look and feel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's harmless enough on the eyes.  Some of the text takes up too much screen real estate and could be a little smaller.  I notice that there are two themes installed from the get-go, so I am guessing that it will be skin-able to one's taste.  I'll investigate further if I feel the need.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Facebook&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Facebook feed Message filter is too noisy for me.  Can you add a Status Update notification filter as well as the Message filter too?  It is in the Facebook &lt;a href="http://wiki.developers.facebook.com/index.php/Status.get"&gt;API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;I do not have an imax for a screen nor is my monitor spotless nor is my eyesight perfect&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Can you &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; tell which one of these accounts is enabled and which is disabled at a quick glance?  Really?  Good for you.  Srsly, can you overlay a red cross or something over the disabled accounts?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_PmkIttAGJXQ/S6xy-yZP00I/AAAAAAAAAJE/-QvtacZm1sw/s1600/gwibber-enabled-disabled.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 163px; height: 45px;" src="http://1.bp.blogspot.com/_PmkIttAGJXQ/S6xy-yZP00I/AAAAAAAAAJE/-QvtacZm1sw/s320/gwibber-enabled-disabled.png" alt="" id="BLOGGER_PHOTO_ID_5452859671843951426" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-3743811629848337322?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/3743811629848337322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=3743811629848337322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3743811629848337322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3743811629848337322'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2010/03/gwibber-some-intial-thoughts.html' title='Gwibber – some intial thoughts.'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PmkIttAGJXQ/S6xymASfDqI/AAAAAAAAAI8/wg-LiazaKyk/s72-c/gwibber-integration.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-3954974640576396589</id><published>2010-03-16T07:27:00.012Z</published><updated>2010-03-27T08:39:38.571Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Onion Routing'/><category scheme='http://www.blogger.com/atom/ns#' term='tor'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>UK only tor exit nodes</title><content type='html'>In light of last night's &lt;a href="http://www.bbc.co.uk/iplayer/episode/b00rl4dl/Panorama_Are_the_Net_Police_Coming_for_You/"&gt;Panorama&lt;/a&gt; I thought that I'd investigate setting up onion routing to only exit in UK exit nodes so that I could enjoy UK-centric content with the benefit of a degree of anonymity.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Installation&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Is very simple for debian-type systems.  Simply follow the instructions &lt;a href="https://www.torproject.org/docs/tor-doc-unix.html.en"&gt;here&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://www.torproject.org/docs/tor-doc-unix.html.en"&gt;&lt;/a&gt;Configuration for UK only exit nodes:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Edit file /etc/tor/torrc and insert these lines at the end.&lt;code&gt;ExitNodes {GB}&lt;br /&gt;StrictExitNodes 1&lt;br /&gt;NumEntryGuards 6&lt;br /&gt;KeepalivePeriod 60&lt;br /&gt;NewCircuitPeriod 15&lt;/code&gt;Restart tor&lt;code&gt;sudo /etc/init.d/tor restart&lt;/code&gt;That's it.  It works like a charm.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-3954974640576396589?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/3954974640576396589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=3954974640576396589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3954974640576396589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3954974640576396589'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2010/03/uk-only-tor-exit-nodes.html' title='UK only tor exit nodes'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-7720679823694309951</id><published>2010-02-10T10:14:00.013Z</published><updated>2010-02-12T11:43:01.833Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu 9.10'/><category scheme='http://www.blogger.com/atom/ns#' term='ksplice'/><title type='text'>ksplice means never having to reboot</title><content type='html'>Honestly, I can live with reboots on my home server when a new kernel is applied, but I can see its appeal in more demanding environments. The good people from &lt;a href="http://www.ksplice.com/"&gt;kspice&lt;/a&gt; have written a utility that manages to apply kernel patches in situ meaning that you don't need to reboot when patches are applied. As it is &lt;a href="http://www.ksplice.com/pricing"&gt;free&lt;/a&gt; for Ubuntu 9.10, I thought I'd install it on my server and see how it gets on.&lt;br /&gt;&lt;br /&gt;Download and install instructions are &lt;a href="http://www.ksplice.com/uptrack/download"&gt;here&lt;/a&gt; and are a piece of cake.&lt;br /&gt;&lt;br /&gt;10/10 for simplicity and I'll be interested to see how it goes.&lt;br /&gt;&lt;br /&gt;My uptime, such as it is, can be monitored &lt;a href="http://prawn.mine.nu/uptime.php"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I see that howtoforge have added a article for this.  If you like pointy-clicky instructions, then &lt;a href="http://www.howtoforge.com/installing-kernel-security-updates-without-reboot-with-ksplice-uptrack-on-ubuntu-9.10-desktop"&gt;this&lt;/a&gt; is the article for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-7720679823694309951?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/7720679823694309951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=7720679823694309951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/7720679823694309951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/7720679823694309951'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2010/02/ksplice-means-never-having-to-reboot.html' title='ksplice means never having to reboot'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-209216224468661178</id><published>2010-02-10T00:08:00.003Z</published><updated>2010-02-10T00:11:52.073Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu 9.10'/><category scheme='http://www.blogger.com/atom/ns#' term='mp3'/><category scheme='http://www.blogger.com/atom/ns#' term='Amarok'/><title type='text'>Playing MP3 files with amarok</title><content type='html'>It has been ages since I have done a fresh OS install and I had forgotten that Amarok needs a little encouragement in order to play mp3 files.&lt;br /&gt;&lt;br /&gt;So, for future reference:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install libxine1-ffmpeg&lt;/code&gt;&lt;br /&gt;At the time of writing, Ubuntu version was 9.10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-209216224468661178?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/209216224468661178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=209216224468661178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/209216224468661178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/209216224468661178'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2010/02/playing-mp3-files-with-amarok.html' title='Playing MP3 files with amarok'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-2929689320913909801</id><published>2009-09-17T13:42:00.010+01:00</published><updated>2009-09-18T11:45:19.745+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu 9.10'/><category scheme='http://www.blogger.com/atom/ns#' term='b43'/><category scheme='http://www.blogger.com/atom/ns#' term='broadcom b43'/><title type='text'>One step forward, one step back.</title><content type='html'>I have been playing around with the pre-release versions of Ubuntu 9.10 and the good news is that the off-the-shelf functionality of ATI/Radeon Xnnn cards is superb.  The bad news is that support for BCM43xx devices is no longer automagic, so I had to do it myself. Again.&lt;br /&gt;&lt;br /&gt;Here's a quickie guide for installing B43 drivers for Ubuntu 9.10.&lt;br /&gt;&lt;br /&gt;My device is a BCM4311 802.11b/g WLAN (rev 01) and the current kernel version is 2.6.31-10.&lt;br /&gt;&lt;br /&gt;Taking &lt;a href="http://linuxwireless.org/en/users/Drivers/b43#fw-b43-new"&gt;this&lt;/a&gt; article as inspiration, here is the quickie guide for my setup.&lt;code&gt;cd ~&lt;br /&gt;mkdir b43&lt;br /&gt;cd b43&lt;br /&gt;&lt;span style="font-size:78%;"&gt;wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-012.tar.bz2&lt;/span&gt;&lt;br /&gt;tar xjf b43-fwcutter-012.tar.bz2&lt;br /&gt;cd b43-fwcutter-012&lt;br /&gt;make&lt;br /&gt;&lt;br /&gt;cd ..&lt;br /&gt;&lt;span style="font-size:78%;"&gt;wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2&lt;/span&gt;&lt;br /&gt;tar xjf broadcom-wl-4.150.10.5.tar.bz2&lt;br /&gt;cd broadcom-wl-4.150.10.5/driver&lt;br /&gt;&lt;span style="font-size:78%;"&gt;sudo ../../b43-fwcutter-012/b43-fwcutter -w "/lib/firmware" wl_apsta_mimo.o&lt;/span&gt;&lt;br /&gt;sudo modprobe b43&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Don't forget the modprobe b43 at the end (not in the guide).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I have also managed to install the &lt;a href="http://www.broadcom.com/support/802.11/linux_sta.php"&gt;Broadcom STA drivers&lt;/a&gt; which is 'better'.  Follow the &lt;a href="http://www.broadcom.com/docs/linux_sta/README.txt"&gt;README&lt;/a&gt; instructions and off you go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-2929689320913909801?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/2929689320913909801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=2929689320913909801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/2929689320913909801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/2929689320913909801'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2009/09/one-step-forward-one-step-back.html' title='One step forward, one step back.'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-9124816746398204824</id><published>2009-09-11T21:09:00.019+01:00</published><updated>2009-09-12T15:21:11.693+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RS690M'/><category scheme='http://www.blogger.com/atom/ns#' term='linux kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='radeon'/><category scheme='http://www.blogger.com/atom/ns#' term='ati'/><category scheme='http://www.blogger.com/atom/ns#' term='X1200'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux screen flicker Radeon X1200 Series</title><content type='html'>This is a public service announcement.&lt;br /&gt;&lt;br /&gt;If you have an ATI Radeon Xnnnn graphics card, I suggest that update to the latest (at the time of writing) version 2.6.31 of the Linux kernel and you won't get dodgy screen flicker when viewing mostly black/grey content any more.&lt;br /&gt;&lt;br /&gt;Again, at the time of writing, Ubuntu 9.10 (Karmic Koala) comes with this kernel version off the shelf and will be properly released in about a month from now.&lt;br /&gt;&lt;br /&gt;Commended to the house.&lt;br /&gt;&lt;br /&gt;For details of which of the Xnnnn graphics cards have improved support, look &lt;a href="http://kernelnewbies.org/Linux_2_6_31#head-78158343fc06e5e289f2ccaf51d6a30090a46524"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;FWIW, my device is:&lt;code&gt;lspci | grep Radeon&lt;br /&gt;01:05.0 VGA compatible controller: ATI Technologies Inc \&lt;br /&gt;RS690M [Radeon X1200 Series]&lt;/code&gt;&lt;br /&gt;That is all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-9124816746398204824?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/9124816746398204824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=9124816746398204824' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/9124816746398204824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/9124816746398204824'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2009/09/linux-screen-flicker-radeon-x1200.html' title='Linux screen flicker Radeon X1200 Series'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-3604482819664202580</id><published>2009-09-06T07:26:00.017+01:00</published><updated>2009-09-12T15:14:48.094+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu 9.04'/><category scheme='http://www.blogger.com/atom/ns#' term='Electric Sheep'/><category scheme='http://www.blogger.com/atom/ns#' term='Jaunty'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Electric Sheep on Ubuntu 9.04</title><content type='html'>&lt;a href="http://community.electricsheep.org/"&gt;Electric Sheep&lt;/a&gt; is a lovely screen saver that I've been using for some time. I had a small amount of difficulty to get it to work with Ubuntu 9.04 (Jaunty), though it is simple enough to fix.&lt;br /&gt;&lt;br /&gt;The authors of Electric Sheep have kindly provided a &lt;a href="http://electricsheep.org/makesheep.sh"&gt;makesheep.sh&lt;/a&gt; script that doesn't quite work with Jaunty.  In order to get it to work with this distro, do the following:&lt;code&gt;# If you don't have subversion installed:&lt;br /&gt;sudo apt-get install subversion&lt;/code&gt;&lt;code&gt;sudo apt-get install libavutil49&lt;br /&gt;sudo apt-get install libavcodec-dev&lt;br /&gt;sudo apt-get install libavformat-dev&lt;br /&gt;wget http://electricsheep.org/makesheep.sh&lt;br /&gt;chmod 755 makesheep.sh&lt;br /&gt;./makesheep.sh&lt;/code&gt;That's all there is to it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PmkIttAGJXQ/SqNZR7h1W4I/AAAAAAAAAHk/vSpJdNrQqOs/s1600-h/sheep2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 237px;" src="http://2.bp.blogspot.com/_PmkIttAGJXQ/SqNZR7h1W4I/AAAAAAAAAHk/vSpJdNrQqOs/s320/sheep2.png" alt="" id="BLOGGER_PHOTO_ID_5378240544582753154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;object width="400" height="225"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QD7aNwArw7c&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/QD7aNwArw7c&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="225"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Note:  makesheep.sh works off the shelf with a vanilla install of Ubuntu 9.10 (Karmic).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-3604482819664202580?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/3604482819664202580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=3604482819664202580' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3604482819664202580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3604482819664202580'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2009/09/electric-sheep-on-ubuntu-904.html' title='Electric Sheep on Ubuntu 9.04'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PmkIttAGJXQ/SqNZR7h1W4I/AAAAAAAAAHk/vSpJdNrQqOs/s72-c/sheep2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-198743250420183769</id><published>2009-04-27T10:00:00.032+01:00</published><updated>2009-07-19T09:34:47.631+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='tunnel'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Managing tunnels</title><content type='html'>&lt;span style="font-size:130%;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My laptop tunnels through to my home server for three services: &lt;a href="http://en.wikipedia.org/wiki/Smtp"&gt;smtp&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Imap"&gt;imap&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/NNTP"&gt;nntp&lt;/a&gt;.  I thought it was about time that I managed these services in a completely automated and reliable fashion.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Objectives &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I wanted my laptop to initiate the three tunnels every time a new network connection was established.   The best place to do this is after if-up processes have been completed.  Happily, the Network Manager executes scripts in /etc/network/if-up.d/ directory when such an event occurs.&lt;br /&gt;&lt;br /&gt;I am assuming that you have a id_rsa.pub key in /root/.ssh already set up on the laptop and that this key has been appended to the file /root/.ssh/authorized_keys on the server. &lt;span style="font-style:italic;"&gt;[TODO write this up]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Listing 1:&lt;/span&gt; /etc/network/if-up.d/tunnel&lt;br /&gt;&lt;br /&gt;Is called after any if-up event.  Calls the kill process first and then initiates new tunnels.&lt;code&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# /etc/network/if-up.d/tunnel&lt;br /&gt;&lt;br /&gt;KILL=/usr/local/bin/kill-tunnels&lt;br /&gt;TUNN=/usr/local/bin/start-tunnels&lt;br /&gt;&lt;br /&gt;# quit if we're called for the loopback&lt;br /&gt;if [ "$IFACE" = lo ]; then&lt;br /&gt;     exit 0&lt;br /&gt;fi&lt;br /&gt;# kill tunnel processes&lt;br /&gt;if [ -x $KILL ]; then&lt;br /&gt;     $KILL&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -x $TUNN ]; then&lt;br /&gt;     $TUNN&lt;br /&gt;fi&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Listing 2:&lt;/span&gt; /usr/local/bin/kill-tunnels&lt;br /&gt;&lt;br /&gt;Kills the existing tunnel processes if they are running.&lt;code&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;#/usr/local/bin/kill-tunnels&lt;br /&gt;&lt;br /&gt;ps aux | grep "143\:localhost\:143" \&lt;br /&gt;| sed 's/&amp;nbsp;&amp;nbsp;*/\t/g' | cut -f2 | xargs -r kill -15&lt;br /&gt;&lt;br /&gt;ps aux | grep "25\:localhost\:25"   \&lt;br /&gt;| sed 's/&amp;nbsp;&amp;nbsp;*/\t/g' | cut -f2 | xargs -r kill -15&lt;br /&gt;&lt;br /&gt;ps aux | grep "119\:localhost\:119" \&lt;br /&gt;| sed 's/&amp;nbsp;&amp;nbsp;*/\t/g' | cut -f2 | xargs -r kill -15&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Listing 3:&lt;/span&gt; /usr/local/bin/start-tunnels&lt;br /&gt;&lt;br /&gt;Starts the new tunnels.&lt;code&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;#/usr/local/bin/start-tunnels&lt;br /&gt;&lt;br /&gt;HOST=my.server.fqdn&lt;br /&gt;&lt;br /&gt;/usr/bin/ssh -f -N -q -L 143:localhost:143 $HOST&lt;br /&gt;&lt;br /&gt;/usr/bin/ssh -f -N -q -L 25:localhost:25 $HOST&lt;br /&gt;&lt;br /&gt;/usr/bin/ssh -f -N -q -L 119:localhost:119 $HOST&lt;br /&gt;&lt;br /&gt;PROC=`basename $0`&lt;br /&gt;&lt;br /&gt;logger -i -t $PROC Tunnels started&lt;br /&gt;&lt;/code&gt;So it all works automagically, now and is particularly useful when in hotspots and changing connections.&lt;br /&gt;&lt;br /&gt;As these procedures are called by root, I can use the ports numbered below 1024, which is handy.&lt;br /&gt;&lt;br /&gt;So for nntp access, localhost:119 on my laptop is actually port 119 on my server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-198743250420183769?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/198743250420183769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=198743250420183769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/198743250420183769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/198743250420183769'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2009/04/managing-tunnels.html' title='Managing tunnels'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-8160888168096353752</id><published>2009-04-06T18:26:00.012+01:00</published><updated>2009-04-27T10:59:23.251+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='Alias'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Using Alias</title><content type='html'>I am forever using ssh to do something or other on another box from my laptop.  Of course, whenever I need to run an X application to display on my machine I find out that I have forgotten to type the -X argument&lt;code&gt;ssh &lt;span style="font-weight: bold;"&gt;-X&lt;/span&gt; 192.168.blah&lt;/code&gt;So setting up alias to do this for me by default was the ideal solution.&lt;br /&gt;&lt;br /&gt;First of all, edit ~./bashrc and uncomment the following lines:&lt;code&gt;if [ -f ~/.bash_aliases ]; then&lt;br /&gt;. ~/.bash_aliases&lt;br /&gt;fi&lt;/code&gt;Then create a file ~/.bash_aliases to insert your alias comands.&lt;code&gt;alias ssh='ssh &lt;span style="font-weight: bold;"&gt;-X'&lt;/span&gt;&lt;/code&gt;That's it.  As an aside: for ssh -X to work, ensure you have the directive &lt;span style="font-family:courier new;"&gt;X11Forwarding yes&lt;/span&gt; enabled in /etc/ssh/sshd_config on the remote machine.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:180%;"&gt;Alias in action&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_PmkIttAGJXQ/SdpAebPJrmI/AAAAAAAAAFk/Q4Tdi-NcVFQ/s1600-h/aliasdemo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 187px;" src="http://3.bp.blogspot.com/_PmkIttAGJXQ/SdpAebPJrmI/AAAAAAAAAFk/Q4Tdi-NcVFQ/s320/aliasdemo.png" alt="" id="BLOGGER_PHOTO_ID_5321636801143221858" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-8160888168096353752?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/8160888168096353752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=8160888168096353752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/8160888168096353752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/8160888168096353752'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2009/04/using-alias.html' title='Using Alias'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PmkIttAGJXQ/SdpAebPJrmI/AAAAAAAAAFk/Q4Tdi-NcVFQ/s72-c/aliasdemo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-6313389159233573181</id><published>2009-03-31T00:14:00.046+01:00</published><updated>2009-03-31T04:54:15.118+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cli alarm clock'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='alarm clock'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Simple CLI alarm clock using crontab and mplayer</title><content type='html'>Well, it had to be done, I suppose.  I fancied an alarm clock which would wake me up with a music file of my choice and which would start off quietly and gradually get louder.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Getting started&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;In order to get the volume to increase gradually from the command line, you need to install aumix.  If you don't have mplayer installed, then install it as well unless you wish to use something else.&lt;/span&gt;&lt;code&gt;sudo apt-get install aumix mplayer&lt;br /&gt;&lt;/code&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Volume Script&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next, create a script /usr/local/bin/wakeup-volume to increase the volume over time. Amend the sleep intervals and increments of I to suit.&lt;/span&gt;&lt;code&gt;#!/bin/bash&lt;br /&gt;for((I=1;I&lt;=100;I+=1)); do&lt;br /&gt;     /usr/bin/aumix -v$I -p100 -w100&lt;br /&gt;     sleep 5&lt;br /&gt;done&lt;/code&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Playing Script&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then create a script /usr/local/bin/alarm-clock and select your command line and music file you wish to wake up to.  I am using mplayer and looping the music file five times in this example.&lt;br /&gt;&lt;br /&gt;This script kills all wakeup-volume processes and starts a new wakeup-volume process before playing your tune of choice.&lt;br /&gt;&lt;code&gt;#!/bin/bash&lt;br /&gt;PLAYER=/usr/bin/mplayer&lt;br /&gt;SONG="$HOME/Music/alarm clock song.ogg"&lt;br /&gt;killall wakeup-volume&lt;br /&gt;/usr/local/bin/wakeup-volume&amp;amp;&lt;br /&gt;$PLAYER -loop 5 "$SONG"&lt;/code&gt;Last of all, set up crontab to wake you up.  I have set mine to wake me up at 06:59 Monday to Friday.&lt;code&gt;crontab -e&lt;/code&gt;&lt;code&gt;59 6 * * 1-5 /usr/bin/X11/xterm -display :0 \&lt;br /&gt;-bg black -fg green -e /usr/local/bin/alarm-clock&lt;/code&gt;Note:  crontab expects the above to be on one line.  I have put a continuation escape character in because I don't have enough width on this here blog.&lt;br /&gt;&lt;br /&gt;Don't forget to set execute rights on the two scripts...&lt;code&gt;sudo chmod 755 /usr/local/bin/alarm-clock&lt;br /&gt;sudo chmod 755 /usr/local/bin/wakeup-volume&lt;/code&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:180%;"&gt;Alarm clock in action&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PmkIttAGJXQ/SdGM2BeGsLI/AAAAAAAAAFc/rsfBE3gpu4E/s1600-h/alarm-clock.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 228px;" src="http://2.bp.blogspot.com/_PmkIttAGJXQ/SdGM2BeGsLI/AAAAAAAAAFc/rsfBE3gpu4E/s320/alarm-clock.png" alt="" id="BLOGGER_PHOTO_ID_5319187494636794034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Further Reading:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mplayer &lt;a href="http://www.mplayerhq.hu/DOCS/HTML/en/index.html"&gt;documentation&lt;/a&gt;,&lt;br /&gt;man &lt;a href="http://linux.die.net/man/1/aumix"&gt;aumix&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Sweet dreams.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-6313389159233573181?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/6313389159233573181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=6313389159233573181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6313389159233573181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6313389159233573181'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2009/03/simple-alarm-clock.html' title='Simple CLI alarm clock using crontab and mplayer'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PmkIttAGJXQ/SdGM2BeGsLI/AAAAAAAAAFc/rsfBE3gpu4E/s72-c/alarm-clock.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-759480004383966613</id><published>2009-03-28T12:46:00.016Z</published><updated>2009-07-29T08:03:55.000+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Acer Crystal Eye'/><category scheme='http://www.blogger.com/atom/ns#' term='fswebcam'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Acer Crystal Eye image capture</title><content type='html'>&lt;span style="font-size:130%;"&gt;Intro&lt;/span&gt;&lt;br /&gt;I have been idly attempting to get a utility to grab a frame from my laptop webcam (an Acer Crystal Eye).&lt;br /&gt;&lt;br /&gt;Whilst the webcam works fine with the likes of &lt;a href="http://live.gnome.org/Cheese"&gt;Cheese&lt;/a&gt;, the act of perfoming an automated grab with the likes of &lt;a href="http://linuxbrit.co.uk/camE/"&gt;CamE&lt;/a&gt; was unsuccessful.  There is, I believe a problem with CamE, Ubuntu, the web cam and &lt;a href="http://v4l2spec.bytesex.org/"&gt;V4l2&lt;/a&gt; working in harmony.&lt;br /&gt;&lt;br /&gt;After trawling through the repositories, I finally found&lt;a href="http://www.firestorm.cx/fswebcam/"&gt; fswebcam&lt;/a&gt; which worked a treat.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Installing&lt;/span&gt;&lt;code&gt;sudo apt-get install fswebcam&lt;/code&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Configuring&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In your home directory, create a file .fswc.conf&lt;code&gt;input 0&lt;br /&gt;top-banner&lt;br /&gt;title "Prawn Cam"&lt;br /&gt;timestamp "%d-%m-%Y %H:%M:%S (%Z)"&lt;br /&gt;font /usr/share/fonts/truetype/freefont/FreeMono.ttf&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Running&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To demonstrate the flexibility of fswebcam, I generated a shell script to save a time-stamped file  and copy the time-stamped file to another machine using scp.&lt;code&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;TARGET_DIR="$HOME/.webcam"&lt;br /&gt;OFFSITE_DIR="remote.server.name:/path/to/.webcam"&lt;br /&gt;CONFIG_FILE="$HOME/.fswc.conf"&lt;br /&gt;&lt;br /&gt;EXT="jpg"&lt;br /&gt;FILE_TIME=`date +%H%M%S`&lt;br /&gt;FILE_NAME=$FILE_TIME.$EXT&lt;br /&gt;&lt;br /&gt;if [ ! -d $TARGET_DIR ]; then&lt;br /&gt;&lt;br /&gt; mkdir $TARGET_DIR&lt;br /&gt;&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;cd $TARGET_DIR&lt;br /&gt;&lt;br /&gt;fswebcam -c $CONFIG_FILE --save $FILE_NAME&lt;br /&gt;scp $FILE_NAME $OFFSITE_DIR/$FILE_NAME&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;That's it.  Setup crontab to run the task as frequently as you wish.&lt;code&gt;crontab -e&lt;br /&gt;&lt;br /&gt;*/1 * * * * /usr/local/bin/webcap.sh&lt;/code&gt;Will run the task every minute.  (A little extreme, perhaps).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-759480004383966613?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/759480004383966613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=759480004383966613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/759480004383966613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/759480004383966613'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2009/03/acer-crystal-eye-image-capture.html' title='Acer Crystal Eye image capture'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-6529249068899137092</id><published>2008-12-11T09:17:00.023Z</published><updated>2008-12-11T12:29:13.143Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWStats'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Install AWStats</title><content type='html'>My home web server is a very quiet corner of the Internet and the last thing it needs is web stats. It goes without saying that I decided to install some.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Getting&lt;/span&gt;&lt;code&gt;sudo apt-get install awstats&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Configuration&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Using your favourite editor, create a file/etc/awstats/awstats.local.conf.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;HostAliases="localhost 127.0.0.1"&lt;br /&gt;LogFile="/var/log/apache2/access.log"&lt;br /&gt;LogFormat=1&lt;br /&gt;DNSLookup=1&lt;br /&gt;DirData="/var/cache/awstats/"&lt;br /&gt;DirCgi="/cgi-bin"&lt;br /&gt;DirIcons="/icon"&lt;br /&gt;SiteDomain="prawn.mine.nu"&lt;br /&gt;AllowToUpdateStatsFromBrowser=0&lt;br /&gt;AllowFullYearView=3&lt;br /&gt;SkipHosts="REGEX[^127\.0] REGEX[^192\.168\.]"&lt;/code&gt;&lt;br /&gt;I have configured mine to ignore any traffic on my subnet using SkipHosts parameter and a simple &lt;a href="http://en.wikipedia.org/wiki/Regular_expression"&gt;regex&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Create a directory /var/cache/awstats&lt;code&gt;mkdir /var/cache/awstats&lt;br /&gt;chmod 700 /var/cache/awstats&lt;br /&gt;chown www-data:www-data /var/cache/awstats&lt;/code&gt;&lt;br /&gt;Next Step is copying the awstats icons to the relevant apache directory.&lt;code&gt;sudo cp -r /usr/share/awstats/icon /var/www/icon&lt;br /&gt;&lt;/code&gt;&lt;span style="font-size:130%;"&gt;Testing the stats update&lt;/span&gt;&lt;code&gt;sudo /usr/lib/cgi-bin/awstats.pl -config=local -update&lt;/code&gt;The -config= parameter is the middle bit of your config filename.  In this instance, the -config=local instructs the program to read the file /etc/awstats/awstats.&lt;span style="font-style: italic;"&gt;local&lt;/span&gt;.conf.&lt;br /&gt;&lt;br /&gt;Now you should be able to view your stats.  Point your favourite browser at http://your.host.name/cgi-bin/awstats.pl?config=local and enjoy.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Scheduling updates&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Set up crontab to run an update as often a you think sensible.&lt;code&gt;sudo crontab -uroot -e&lt;br /&gt;#mine looks something like this:&lt;br /&gt;#update at 3 am&lt;br /&gt;* 3 * * * /usr/lib/cgi-bin/awstats.pl -config=local \&lt;br /&gt;-update&lt;/code&gt;&lt;br /&gt;To admire the full glory of awstats and the lack of traffic on my home web server, &lt;a href="http://prawn.mine.nu/cgi-bin/awstats.pl?config=local"&gt;here&lt;/a&gt; it is...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Further reading&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You could do worse than the &lt;a href="http://awstats.sourceforge.net/docs/awstats_setup.html"&gt;awstats sourceforge page&lt;/a&gt; and &lt;a href="http://awstats.sourceforge.net/docs/awstats_config.html"&gt;here&lt;/a&gt; for configuration directives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-6529249068899137092?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/6529249068899137092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=6529249068899137092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6529249068899137092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6529249068899137092'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/12/install-awstats.html' title='Install AWStats'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-1482311613028084802</id><published>2008-12-10T21:59:00.007Z</published><updated>2009-04-11T09:01:03.226+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lolcat'/><category scheme='http://www.blogger.com/atom/ns#' term='deer santah'/><category scheme='http://www.blogger.com/atom/ns#' term='LOLCODE'/><title type='text'>Deer santah</title><content type='html'>Oh Hai, santah! Can I has &lt;a href="http://lolcode.spreadshirt.com/us/US/Shop/Article/Index/article/LOLCODE-black-messenger-bag-2891696"&gt;manbag&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PmkIttAGJXQ/SUDztuvBFAI/AAAAAAAAACo/2MzAq2Da6xA/s1600-h/man-bag.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 280px; height: 280px;" src="http://2.bp.blogspot.com/_PmkIttAGJXQ/SUDztuvBFAI/AAAAAAAAACo/2MzAq2Da6xA/s320/man-bag.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5278486730243118082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;kthxbai.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-1482311613028084802?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/1482311613028084802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=1482311613028084802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/1482311613028084802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/1482311613028084802'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/12/deer-santah.html' title='Deer santah'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PmkIttAGJXQ/SUDztuvBFAI/AAAAAAAAACo/2MzAq2Da6xA/s72-c/man-bag.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-936153061156709022</id><published>2008-12-10T21:00:00.012Z</published><updated>2008-12-11T00:00:32.242Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code::Blocks'/><title type='text'>Code::Blocks</title><content type='html'>Ooh-err, missus.&lt;br /&gt;&lt;br /&gt;I have been tinkering around with &lt;a href="http://codeblocks.org/"&gt;Code::Blocks&lt;/a&gt; which is a cross platform development tool. Embedded in its genes is the &lt;a href="http://www.wxwidgets.org/"&gt;wxWidgets&lt;/a&gt; set of classes.  I have only had a 24 hour tinker with it and, to be frank, have not coded in C++ for over four years - but it looks promising.  My only gripe is the &lt;a href="http://wiki.wxwidgets.org/Converting_everything_to_and_from_wxString"&gt;faffing about&lt;/a&gt; you have to do when converting from &lt;a href="http://en.wikipedia.org/wiki/String_%28C%2B%2B%29"&gt;&lt;span style="text-decoration: underline;"&gt;C++ string&lt;/span&gt;&lt;/a&gt; classes to wxString classes and vice versa.&lt;br /&gt;&lt;br /&gt;It is early days yet and a more fully formed opinion will out in due course.&lt;br /&gt;&lt;br /&gt;On the plus side it will work as an IDE with other idioms than the wx... family.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-936153061156709022?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/936153061156709022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=936153061156709022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/936153061156709022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/936153061156709022'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/12/codeblocks.html' title='Code::Blocks'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-6199604356084890440</id><published>2008-12-10T19:12:00.017Z</published><updated>2009-04-11T09:03:56.647+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lolcat'/><category scheme='http://www.blogger.com/atom/ns#' term='Lolcat 404'/><title type='text'>Lolcat 404</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Oh Noes!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have, despite my age and sensibilities, developed a rather weird fascination for the whole &lt;a href="http://en.wikipedia.org/wiki/Lolcat"&gt;Lolcat&lt;/a&gt; meme.  As a silent homage to all things Lolcat, I have created a &lt;a href="http://en.wikipedia.org/wiki/404_error"&gt;404 page&lt;/a&gt; in honour of the phenomenon.  Point your bowser &lt;a href="http://prawn.mine.nu/bad"&gt;here&lt;/a&gt; for the full asinine horror and accept my apologies&lt;span style="font-style: italic;"&gt; pro tempore&lt;/span&gt;.  I'll get over it in the fullness of time.&lt;br /&gt;&lt;br /&gt;If you want to see a demonstration of how the Internet &lt;span style="font-style: italic;"&gt;could&lt;/span&gt; suck up one's time on a biblical scale, you could do worse than peruse the&lt;a href="http://www.lolcatbible.com/index.php?title=Main_Page"&gt; LOLCAT Bible&lt;/a&gt; project for a demonstration. I have not the words.&lt;br /&gt;&lt;br /&gt;Update:  It seems that teh Ceiling Cat has a Twitter account.  Follow the tweets &lt;a href="http://twitter.com/Ceiling_Cat"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-6199604356084890440?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/6199604356084890440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=6199604356084890440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6199604356084890440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6199604356084890440'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/12/lolcat-404.html' title='Lolcat 404'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-2850916416180573867</id><published>2008-12-10T18:05:00.011Z</published><updated>2008-12-11T11:46:42.492Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWStats'/><title type='text'>AWStats</title><content type='html'>My home server is a very quiet corner of the Internet which is handy as it gave me the opportunity to install &lt;a href="http://awstats.sourceforge.net/"&gt;AWStats&lt;/a&gt; without upsetting anyone. If you have a prurient disposition, the stats can be viewed &lt;a href="http://prawn.mine.nu/cgi-bin/awstats.pl?config=local"&gt;here&lt;/a&gt;.  My first impressions are pretty favourable. I have configured it to ignore any visits via my own subnet so you will see how quiet it &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; is.  Be that as it may, I have rather optimistically set it up to update every fifteen minutes so come back real soon, you hear? &lt;span style="font-style: italic;font-family:courier new;" &gt;/tumbleweed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;Install writeup to follow.&lt;/strike&gt; &lt;a href="http://prawnuk.blogspot.com/2008/12/install-awstats.html"&gt;Done&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-2850916416180573867?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/2850916416180573867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=2850916416180573867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/2850916416180573867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/2850916416180573867'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/12/awstats.html' title='AWStats'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-4772280525539573800</id><published>2008-11-28T00:18:00.019Z</published><updated>2008-12-11T15:36:35.114Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Get IP Address'/><category scheme='http://www.blogger.com/atom/ns#' term='perl get ip'/><category scheme='http://www.blogger.com/atom/ns#' term='Can I has IP?'/><category scheme='http://www.blogger.com/atom/ns#' term='cihip'/><title type='text'>Can I has IP?</title><content type='html'>&lt;span style="font-size:100%;"&gt;A quicky Perl utility that interrogates the DNS-O-Matic &lt;a href="http://myip.dnsomatic.com/"&gt;IP page&lt;/a&gt; which returns your public IP address.&lt;/span&gt;&lt;code&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;# cihip (Can I Has IP?)&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;use LWP::Simple;&lt;br /&gt;&lt;br /&gt;  my ( $address, $error ) = get_address();&lt;br /&gt;&lt;br /&gt;  if ( $error ) {&lt;br /&gt;    &lt;br /&gt;    print ( "$error\n" );&lt;br /&gt;    die "cihip failed: $error\n";&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;sub get_address {&lt;br /&gt;&lt;br /&gt;  $address = get( "http://myip.dnsomatic.com/" );&lt;br /&gt;&lt;br /&gt;  if ($address) {&lt;br /&gt;&lt;br /&gt;    print "$address\n";&lt;br /&gt;&lt;br /&gt;  } else {&lt;br /&gt;&lt;br /&gt;    $address = 0;&lt;br /&gt;    $error = "IP address query failed:\n";&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;  &lt;br /&gt;  return ( $address, $error );&lt;br /&gt;&lt;br /&gt;}&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-4772280525539573800?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/4772280525539573800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=4772280525539573800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4772280525539573800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4772280525539573800'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/11/can-i-has-ip.html' title='Can I has IP?'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-3215718342744933354</id><published>2008-11-26T22:28:00.049Z</published><updated>2008-12-03T09:44:57.579Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenDNS'/><category scheme='http://www.blogger.com/atom/ns#' term='DynDNS'/><category scheme='http://www.blogger.com/atom/ns#' term='perl client'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='DNS-O-Matic'/><title type='text'>DNS-O-Matic Updater</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dnsomatic.com/img/dnsomatic_logo_200.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 65px;" src="http://www.dnsomatic.com/img/dnsomatic_logo_200.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;News: &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://code.google.com/p/update-dnsomatic/downloads/list"&gt;update-dnsomatic&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; stable version 0.1 released 29 November 2008 at 13:00 GMT&lt;/span&gt;.  &lt;span style="font-weight: bold;"&gt;I have &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;moved&lt;/span&gt;&lt;a style="font-weight: bold;" href="http://code.google.com/p/update-dnsomatic/"&gt; &lt;/a&gt;&lt;span style="font-weight: bold;"&gt;the project to &lt;a href="http://code.google.com/p/update-dnsomatic/"&gt;Goggle Code&lt;/a&gt; as my home server is only up 90% as a rule.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As I am a user of both &lt;a href="http://opendns.com/"&gt;opendns&lt;/a&gt; and &lt;a href="http://dyndns.com/"&gt;dyndns&lt;/a&gt; I realized a while ago that it was a bit of a chore to keep them both up-to-date with my ever fluctuating home IP address.  On discovering that &lt;a href="http://dnsomatic.com/"&gt;DNS-O-Matic &lt;/a&gt;will update them at one fell swoop, I was hooked.&lt;br /&gt;&lt;br /&gt;Time passed and as I was writing up installing ddclient, I was inspired to see if I could knock up a client of my own which would be designed specifically with DNS-O-Matic in mind.&lt;br /&gt;&lt;br /&gt;Well, 24 hours  and one abuse report from dyndns (sorry guys) later and it is done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Specs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's written in Perl and doesn't use any fancy modules so should work out of the box once installed.&lt;br /&gt;&lt;br /&gt;It is written very much with Unix/Linux in mind but is simple enough to amend for other operating systems.&lt;br /&gt;&lt;br /&gt;It only perfoms update notifications if your IP address has changed since it was last run.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Where?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The whole package complete with README, a sample configuration file and install.sh script can be found &lt;a href="http://code.google.com/p/update-dnsomatic/downloads/list"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;How?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After&lt;a href="http://code.google.com/p/update-dnsomatic/downloads/list"&gt; &lt;span style="font-size:130%;"&gt;downloading&lt;/span&gt;&lt;/a&gt;, extract the file update-dnsomatic-0.1.2.tar.gz and then edit the file config with a minimum of your DNS-O-Matic user id and password.&lt;code&gt;tar xvzf update-dnsomatic-0.1.2.tar.gz&lt;br /&gt;cd update-dnsomatic-0.1.2/&lt;br /&gt;&lt;br /&gt;#   edit ./config with your editor of choice&lt;br /&gt;#   A sample config file:&lt;br /&gt;  user = my_user_id&lt;br /&gt;  pass = my_password&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# as root or sudo:&lt;br /&gt;./install.sh&lt;/code&gt;&lt;br /&gt;You may wish to assign the myhost configuration item with your domain name if you only wish to update that domain.  If you don't assign myhost then all your DNS-O-Matic services will be updated.&lt;br /&gt;&lt;br /&gt;A picture of the DNS-O-Matic status information.  One update done by me and two by them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_PmkIttAGJXQ/SS4D2eh5CGI/AAAAAAAAAB4/6bh6K9N7eLs/s1600-h/dnsomatic2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 156px;" src="http://3.bp.blogspot.com/_PmkIttAGJXQ/SS4D2eh5CGI/AAAAAAAAAB4/6bh6K9N7eLs/s320/dnsomatic2.png" alt="" id="BLOGGER_PHOTO_ID_5273156448140462178" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-3215718342744933354?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/3215718342744933354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=3215718342744933354' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3215718342744933354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3215718342744933354'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/11/dnsomatic-updater.html' title='DNS-O-Matic Updater'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PmkIttAGJXQ/SS4D2eh5CGI/AAAAAAAAAB4/6bh6K9N7eLs/s72-c/dnsomatic2.png' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-4142124345150601456</id><published>2008-11-25T17:53:00.013Z</published><updated>2008-11-29T13:17:02.520Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenDNS'/><category scheme='http://www.blogger.com/atom/ns#' term='DynDNS'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>OpenDNS and Ubuntu</title><content type='html'>I have been using &lt;a href="http://opendns.com/"&gt;OpenDNS&lt;/a&gt; for a few months now and it's about time that I wrote it up.&lt;br /&gt;&lt;br /&gt;If you want to be able to use all the facilities that OpenDNS offer, then ideally you need to setup a DynDNS account and an OpenDNS account.&lt;br /&gt;&lt;br /&gt;First things first, I have configured my router to use the OpenDNS nameservers 208.67.222.222 and 208.67.220.220.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Configuring DynDNS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;You may wish to use my own DNS-O-Matic updater, which I have written about &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://prawnuk.blogspot.com/2008/11/dnsomatic-updater.html"&gt;here&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Having created a free account with &lt;a href="http://www.dyndns.com/"&gt;DynDNS&lt;/a&gt;, I needed to install ddclient on my home server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Installing ddclient on the server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;If  your router can talk to dyndns, ignore this section.&lt;/span&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install ddclient&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Configuring ddclient&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Edit the contents of &lt;code&gt;/etc/ddclient.conf&lt;/code&gt; using sudo&lt;br /&gt;&lt;br /&gt;The contents of my file looks something like this:&lt;br /&gt;&lt;code&gt;daemon=600&lt;br /&gt;cache=/tmp/ddclient.cache&lt;br /&gt;pid=/var/run/ddclient.pid&lt;br /&gt;use=web, web=checkip.dyndns.com/, web-skip='IP Address'&lt;br /&gt;login=my_dyndns_account_name&lt;br /&gt;password=my_dyndns_password&lt;br /&gt;protocol=dyndns2&lt;br /&gt;server=members.dyndns.org&lt;br /&gt;wildcard=YES&lt;br /&gt;my.dyndns.domain&lt;/code&gt;&lt;br /&gt;It is worth checking file /etc/default/ddclient to see if ddclient is run as a daemon.&lt;br /&gt;&lt;code&gt;# Configuration for ddclient scripts&lt;br /&gt;# generated from debconf on Tue Oct 14 15:19:15 BST 2008&lt;br /&gt;#&lt;br /&gt;# /etc/default/ddclient&lt;br /&gt;&lt;br /&gt;# Set to "true" if ddclient should be run every time a&lt;br /&gt;# new ppp connection is&lt;br /&gt;# established. This might be useful, if you are using&lt;br /&gt;# dial-on-demand&lt;br /&gt;run_ipup="false"&lt;br /&gt;&lt;br /&gt;# Set to "true" if ddclient should run in daemon mode&lt;br /&gt;run_daemon="true"&lt;br /&gt;&lt;br /&gt;# Set the time interval between the updates of the&lt;br /&gt;# dynamic DNS name in seconds.&lt;br /&gt;# This option only takes effect if the ddclient runs in&lt;br /&gt;# daemon mode.&lt;br /&gt;daemon_interval="300"&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Configuring OpenDNS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Having created an OpenDNS account, visit &lt;a href="https://www.opendns.com/dashboard/networks/"&gt;https://www.opendns.com/dashboard/networks/&lt;/a&gt; and click the ADD THIS NETWORK button.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Updating OpenDNS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now that your two accounts are up and running, your need to periodically notify OpenDNS of your current IP address and your account name.  This can be done using a script that I took from the OpenDNS forum &lt;a href="http://forums.opendns.com/comments.php?DiscussionID=1135"&gt;here&lt;/a&gt;.  I have a tidy and slightly different script on my home server &lt;a href="http://prawn.mine.nu/update_opendns.html"&gt;here&lt;/a&gt;.  Simply follow the instructions at the top of the file and away you go.&lt;br /&gt;&lt;br /&gt;To check that OpenDNS is working, visit this link for a report: &lt;a href="http://www.opendns.com/welcome/"&gt;http://www.opendns.com/welcome/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-4142124345150601456?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/4142124345150601456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=4142124345150601456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4142124345150601456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4142124345150601456'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/11/opendns-and-ubumtu.html' title='OpenDNS and Ubuntu'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-4791636457865635920</id><published>2008-10-31T16:31:00.039Z</published><updated>2011-11-05T11:27:08.763Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='leafnode'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Setting up Leafnode on Ubuntu</title><content type='html'>One of the things that I frequently use tunneling for is &lt;a href="http://en.wikipedia.org/wiki/Usenet"&gt;Usenet&lt;/a&gt; access - particularly as quite a few ISPs block port 119 these days and I can't get on with the Google Groups interface.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://leafnode.sourceforge.net/"&gt;Leafnode&lt;/a&gt; is a simple and light weight NNTP server which adequately handles my needs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;Installing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From the command line:&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-family: 'courier new';"&gt;&lt;code&gt;sudo apt-get install leafnode&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;and enter details as necessary.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;Configuration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will very much depend on which upstream NNTP server you use.  In my case, I use the &lt;a href="http://eternal-september.org/"&gt;cheesy server&lt;/a&gt; or &lt;del&gt;&lt;/del&gt;&lt;br /&gt;motzarella.org&lt;br /&gt; eternal-september.org as it more formally known.  I have an account with them and it is free which works for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A note about&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/FQDN" style="font-style: italic;"&gt; FQDN&lt;/a&gt;&lt;span style="font-style: italic;"&gt; and Leafnode.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.leafnode.org/doc_en/README-FQDN.html"&gt;Leafnode insists&lt;/a&gt; that you have an FQDN assigned on your machine which Ubuntu does not necessarily set during installation.  Solution 1 is to edit /etc/hosts and assign the FQDN there.&lt;br /&gt;&lt;br /&gt;My hosts file looks like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;127.0.0.1     localhost&lt;br /&gt;127.0.1.1     my.fqdn localname&lt;/code&gt;&lt;br /&gt;to check what your FQDN is, from the command line type:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;hostname -f&lt;/code&gt;&lt;br /&gt;Naturally, you will have to use your own FQDN.&lt;br /&gt;&lt;br /&gt;Alternatively, you can configure the FQDN using the hostname= parameter in the leafnode config file.  Personally, I prefer the former method rather than the cheat.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Breaking news:&lt;/span&gt;  It appears that the &lt;a href="http://eternal-september.org/"&gt;cheesy server&lt;/a&gt; allows registered users to also&lt;a href="http://eternal-september.org/make_user_fqdn.php"&gt; reserve an FQDN&lt;/a&gt; which could be useful for some.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;Configuring Leafnode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I shall put in the details I have configured to use the cheesy server.&lt;br /&gt;&lt;br /&gt;Edit the file /etc/news/leafnode/config&lt;br /&gt;&lt;code&gt;expire = 60&lt;br /&gt;server = news.eternal-september.org&lt;br /&gt;username = my_username&lt;br /&gt;password = my_password&lt;br /&gt;# optional&lt;br /&gt;hostname = my.fqdn&lt;br /&gt;# ignores some x-posted chaff from Usenet trolls :-)&lt;br /&gt;maxcrosspost = 4&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;Fetching news&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;fetchnews likes to be run as user news and I have set my cron job to run every 15 minutes.  I have also set the texpire task to run at noon every day to remove expired articles.&lt;br /&gt;&lt;code&gt;sudo crontab -u news -e&amp;nbsp;&lt;/code&gt;&lt;code&gt;# Sets texpire to clean out news at noon:&lt;br /&gt;0 12 * * * /usr/sbin/texpire 1&amp;gt;/dev/null&lt;br /&gt;# Sets fetchnews to run every 15 minutes:&lt;br /&gt;*/15 * * * * /usr/sbin/fetchnews -vv 2&amp;gt;&amp;amp;1 &amp;gt;&amp;gt; /dev/null&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;For setting up the tunnel, read my &lt;a href="http://prawnuk.blogspot.com/2008/04/tunneling-in-to-my-imap-server.html"&gt;IMAP tunnel article&lt;/a&gt; and use port 119 instead :-)&lt;/span&gt;&lt;br /&gt;Further reading on automating tunnels can be found on this blog &lt;a href="http://prawnuk.blogspot.com/2009/04/managing-tunnels.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-4791636457865635920?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/4791636457865635920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=4791636457865635920' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4791636457865635920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/4791636457865635920'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/10/setting-up-leafnode-on-ubuntu.html' title='Setting up Leafnode on Ubuntu'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-3305648390098929471</id><published>2008-10-29T20:04:00.007Z</published><updated>2008-10-30T11:04:42.442Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='tux'/><category scheme='http://www.blogger.com/atom/ns#' term='favicon.ico'/><title type='text'>favicon</title><content type='html'>I have been meaning to sort out a&lt;a href="http://en.wikipedia.org/wiki/Favicon"&gt; favicon.ico&lt;/a&gt; for my &lt;a href="http://prawn.mine.nu/"&gt;home websever&lt;/a&gt; and quite fancied a &lt;a href="http://en.wikipedia.org/wiki/Tux"&gt;Tux&lt;/a&gt; to do the job.  A quick search using my favourite search engine revelaed &lt;a href="http://www.favicon.cc/?action=icon&amp;amp;file_id=19295"&gt;this&lt;/a&gt; which I have &lt;a href="http://prawn.mine.nu/favicon.ico"&gt;altered&lt;/a&gt; to have a pink background to match the, erm, &lt;a href="http://prawn.mine.nu/"&gt;house style.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One less thing to worry about for when the inevitable re-build comes around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-3305648390098929471?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/3305648390098929471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=3305648390098929471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3305648390098929471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/3305648390098929471'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/10/favicon.html' title='favicon'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-1962026670130350266</id><published>2008-04-11T15:48:00.043+01:00</published><updated>2008-12-10T19:46:36.224Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Onion Routing'/><title type='text'>Onion Routing</title><content type='html'>I was reading up on &lt;a href="http://en.wikipedia.org/wiki/Onion_routing"&gt;Onion Routing&lt;/a&gt; the other day and thought that I'd try it out to see if a) it was any good and b) how useful it might be.  Before I go any further, perhaps I should explain that I'm not one of the &lt;a href="http://en.wikipedia.org/wiki/Tin-foil_hat"&gt;Tin Foil Hat&lt;/a&gt; brigade and, frankly, don't care who knows where I visit or what I do when I'm on-line.  Be that as it may, my curiosity was piqued and I installed &lt;a href="http://ubuntu-tutorials.com/2006/11/02/how-to-install-tor-privoxy-kubuntu-606-610/"&gt;Tor and Privoxy&lt;/a&gt; on my laptop to give it a whirl.&lt;br /&gt;&lt;br /&gt;A note for Firefox 3 Beta users: at the time of writing, I noticed that a few of the Tor plug-ins wouldn't install for version 3 but &lt;a href="http://foxyproxy.mozdev.org/"&gt;FoxyProxy&lt;/a&gt; worked just fine.&lt;br /&gt;&lt;br /&gt;Having got it all installed and configured, I set about testing it all.  As far as I could tell, it did a bloody good job at making me anonymous and my exit node seemed to change approximately every 10 minutes.  The performance through some nodes was pretty poor (I was not surprised by this and was expecting it, to be honest - some of the nodes are run by enthusiasts and are very far away).&lt;br /&gt;&lt;br /&gt;This made using sites like Google interesting: one minute they thought I was German, the next minute Belgian, the owner of a compromised computer, Chinese and so on.  Surfing from behind &lt;a href="http://en.wikipedia.org/wiki/Internet_censorship_in_the_People%27s_Republic_of_China"&gt;The Great Fire Wall of China&lt;/a&gt; was, erm, interesting and that got me &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; thinking.  How often would this happen?  This was a big disadvantage to the whole experience and made me think that Onion Routing should only be used on a need to use basis. (If I'm stating the obvious, so be it).&lt;br /&gt;&lt;br /&gt;To surmise, I think that it should only be switched on if there's a desperate need to visit somewhere anonymously.&lt;br /&gt;&lt;br /&gt;In order to get a feel for how annoying it could be, I generated a script to monitor the GEO-IP of whatever exit nodes were being used over a period of time so that I could determine how many of the exit nodes were very distant or censored and get a feel for how the surfing experience would be diminished.  The results of my labours are here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://prawn.mine.nu/tor_ip_history_analysis.html"&gt;This&lt;/a&gt; is the code that I wrote to do the analysis and a pie chart of the outcomes is below (you &lt;span style="font-style: italic;"&gt;have&lt;/span&gt; to have pie charts, you know).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PmkIttAGJXQ/SAcci399bCI/AAAAAAAAAAk/_xjvUJckx8Q/s1600-h/tor_chart_blog.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_PmkIttAGJXQ/SAcci399bCI/AAAAAAAAAAk/_xjvUJckx8Q/s320/tor_chart_blog.png" alt="Tor Exit Nodes by Country" id="BLOGGER_PHOTO_ID_5190148481032743970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Over the 18 hours, 78 unique IP addresses were used as Tor Exit Nodes though I'm not going to publish them here :-)&lt;br /&gt;&lt;br /&gt;As an ironic footnote, I should mention that I'm based in &lt;span style="font-style: italic;"&gt;.uk&lt;/span&gt;. Only one, yes, &lt;span style="font-style: italic;"&gt;one&lt;/span&gt; exit node was &lt;span style="font-style: italic;"&gt;GB&lt;/span&gt;.  Of course, none of this takes into account of which territories I am passing through during a particular onion session.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-1962026670130350266?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/1962026670130350266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=1962026670130350266' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/1962026670130350266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/1962026670130350266'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/04/onion-routing.html' title='Onion Routing'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PmkIttAGJXQ/SAcci399bCI/AAAAAAAAAAk/_xjvUJckx8Q/s72-c/tor_chart_blog.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-638185346174758606</id><published>2008-04-08T13:42:00.053+01:00</published><updated>2008-11-12T12:35:38.051Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='tunnel'/><category scheme='http://www.blogger.com/atom/ns#' term='IMAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Adventures with Ubuntu: tunneling into my IMAP server</title><content type='html'>Having &lt;a href="http://prawnuk.blogspot.com/2008/03/adventures-with-ubuntu-mail.html"&gt;setup dovecot&lt;/a&gt; on my home server, the next step was to enable remote access to it so that I could connect my laptop when I was out and about.  As my laptop uses all manner of public networks of unproven security, I figured that using a &lt;a href="http://en.wikipedia.org/wiki/Tunneling_protocol"&gt;secure tunnel&lt;/a&gt; was the way to do it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Install openssh-server on the server&lt;/span&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install openssh-server&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Install openssh-client on the laptop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install openssh-client&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;On the laptop, generate ssh keys&lt;/span&gt;&lt;br /&gt;&lt;code&gt;ssh-keygen&lt;/code&gt;&lt;br /&gt;Enter the defaults.&lt;br /&gt;&lt;br /&gt;This will create, among other things, a file ~/.ssh/id_rsa.pub.  This data needs to be put in a file .ssh/authorized_keys on the server.  For a more detailed explanation of SSH key generation, I found &lt;a href="http://laplace.physics.ubc.ca/Doc/ssh/index.html"&gt;this&lt;/a&gt; to be a clear and concise reminder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Install the laptop's public key on the server&lt;/span&gt;&lt;br /&gt;&lt;code&gt;cat id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys&lt;/code&gt;&lt;br /&gt;where id_rsa.pub is the copy of the file from the laptop.&lt;br /&gt;&lt;br /&gt;That's got the ssh gubbins sorted out and you should now be able to ssh to your server from your laptop without being prompted for a password. The next thing I needed to arrange was a dynamic DNS entry for my home server.   Having created a free account with &lt;a href="http://www.dyndns.com/"&gt;DynDNS&lt;/a&gt;, I needed to install ddclient on the server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Installing ddclient on the server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;If you have a fixed IP address, or your router can talk to dyndns, ignore this section.&lt;/span&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install ddclient&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Configuring ddclient&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Edit the contents of &lt;code&gt;/etc/ddclient.conf&lt;/code&gt; using sudo&lt;br /&gt;&lt;br /&gt;The contents of my file looks something like this:&lt;br /&gt;&lt;code&gt;daemon=600&lt;br /&gt;cache=/tmp/ddclient.cache&lt;br /&gt;pid=/var/run/ddclient.pid&lt;br /&gt;use=web, web=checkip.dyndns.com/, web-skip='IP Address'&lt;br /&gt;login=my_dyndns_account_name&lt;br /&gt;password=my_dyndns_password&lt;br /&gt;protocol=dyndns2&lt;br /&gt;server=members.dyndns.org&lt;br /&gt;wildcard=YES&lt;br /&gt;my.dyndns.domain&lt;/code&gt;&lt;br /&gt;It is worth checking file /etc/default/ddclient to see if ddclient is run as a daemon.&lt;br /&gt;&lt;code&gt;# Configuration for ddclient scripts&lt;br /&gt;# generated from debconf on Tue Oct 14 15:19:15 BST 2008&lt;br /&gt;#&lt;br /&gt;# /etc/default/ddclient&lt;br /&gt;&lt;br /&gt;# Set to "true" if ddclient should be run every time a &lt;br /&gt;# new ppp connection is&lt;br /&gt;# established. This might be useful, if you are using &lt;br /&gt;# dial-on-demand&lt;br /&gt;run_ipup="false"&lt;br /&gt;&lt;br /&gt;# Set to "true" if ddclient should run in daemon mode&lt;br /&gt;run_daemon="true"&lt;br /&gt;&lt;br /&gt;# Set the time interval between the updates of the&lt;br /&gt;# dynamic DNS name in seconds.&lt;br /&gt;# This option only takes effect if the ddclient runs in &lt;br /&gt;# daemon mode.&lt;br /&gt;daemon_interval="300"&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Creating the tunnel&lt;/span&gt;&lt;br /&gt;On the laptop, create a tunnel to your home server.&lt;br /&gt;&lt;code&gt;ssh -f -N -q -L 1143:localhost:143 \&lt;br /&gt;my_server_user_id@my.dyndns.domain&lt;/code&gt;&lt;br /&gt;What this command does is create a tunnel for port 1143 on localhost (the laptop) and forwards it to the IMAP port (143) on the server (my.dyndns.domain). The reason why I selected the local port number 1143 is that it is greater than 1023 and 1000 more than the standard IMAP port (making it easy for me to remember) and only root can forward port numbers less than 1024. I have this command in a script file and fire it up ad-hoc whenever I am out and need to use it.&lt;br /&gt;&lt;br /&gt;To test the connection on the laptop, type:&lt;br /&gt;&lt;code&gt;telnet localhost 1143&lt;/code&gt;&lt;br /&gt;You should get a response along these lines:&lt;br /&gt;&lt;code&gt;Trying 127.0.0.1...&lt;br /&gt;Connected to localhost.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;* OK Dovecot ready.&lt;/code&gt;&lt;br /&gt;So, although you are using the laptop's local port 1143, you are, in fact, accessing the server's port 143 through the &lt;a href="http://en.wikipedia.org/wiki/Tunneling_protocol#SSH_tunneling"&gt;SSH tunnel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Configuring your e-mail client&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Having gone through all that,  just configure your laptop mail client's IMAP server to be localhost port 1143, set the user id to be your local/server user id and off you go.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Tunneling at work&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You may find that using tunnels contravenes your employer's &lt;a href="http://en.wikipedia.org/wiki/Acceptable_use_policy"&gt;AUP&lt;/a&gt;.  If that is the case, don't do it, OK?&lt;/code&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-638185346174758606?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/638185346174758606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=638185346174758606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/638185346174758606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/638185346174758606'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/04/tunneling-in-to-my-imap-server.html' title='Adventures with Ubuntu: tunneling into my IMAP server'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-6311965306004886233</id><published>2008-04-08T11:05:00.021+01:00</published><updated>2008-12-10T19:46:36.454Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='BigDump'/><title type='text'>Bigging up BigDump</title><content type='html'>Yesterday, I found myself in the position of having to transfer a medium sized (200 ish MB) MySQL database from one server to another.  Ordinarily, I would use SSH on the new server and import the database that way.  In this instance, I only had web and FTP access to the new site.&lt;br /&gt;&lt;br /&gt;The main problem is that phpMyAdmin limits the size of SQL file that you can upload in one go and I was damned if I was going to split the data up in to ~ 100 files to update the new database.  Apart form being time consuming, there was plenty of opportunity for error.&lt;br /&gt;&lt;br /&gt;So, before I set about writing my own solution, I thought I'd use my google mojo to see if there was a ready made answer.  Half an hour later, I found &lt;a href="http://www.ozerov.de/bigdump.php"&gt;BigDump&lt;/a&gt;  which fit the bill perfectly.&lt;br /&gt;&lt;br /&gt;My implementation was a follows:&lt;br /&gt;&lt;br /&gt;Dump source database using phpMyAdmin to local file localhost.sql.  Make sure that you don't use extended inserts and, if necessary, don't use database creation.&lt;br /&gt;&lt;br /&gt;Having &lt;a href="http://www.ozerov.de/bigdump.php"&gt;downloaded&lt;/a&gt; it, edit bigdump.php.  I amended it thus:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$db_server   = 'localhost';&lt;br /&gt;$db_name     = 'database_name';&lt;br /&gt;$db_username = 'database_user';&lt;br /&gt;$db_password = 'password';&lt;br /&gt;&lt;br /&gt;// Other settings (optional)&lt;br /&gt;&lt;br /&gt;$filename         = '/full/path/to/dump/localhost.sql';     // Specify the dump filename to suppress the file selection dialog&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;From the web root on the target server, create a directory &lt;span style="font-style: italic;"&gt;dump&lt;/span&gt; and upload via ftp the files localhost.sql and bigdump.php&lt;br /&gt;&lt;br /&gt;Point your browser at the my.domain/dump/bigdump.php and click on the Start Import link. You should see something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PmkIttAGJXQ/R_tHASI3VNI/AAAAAAAAAAc/_3Txc88ln_Y/s1600-h/bigdump_blog.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_PmkIttAGJXQ/R_tHASI3VNI/AAAAAAAAAAc/_3Txc88ln_Y/s320/bigdump_blog.png" alt="Big Dump Screen Shot" id="BLOGGER_PHOTO_ID_5186817466041849042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When finished, delete your sql file and bigdump.php from the web server.&lt;br /&gt;&lt;br /&gt;That's it. It did the job simply and saved me a load of effort.  Yay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-6311965306004886233?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/6311965306004886233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=6311965306004886233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6311965306004886233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6311965306004886233'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/04/bigging-up-bigdump.html' title='Bigging up BigDump'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PmkIttAGJXQ/R_tHASI3VNI/AAAAAAAAAAc/_3Txc88ln_Y/s72-c/bigdump_blog.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4865059753586627769.post-6113193479751822730</id><published>2008-03-30T15:42:00.011+01:00</published><updated>2008-12-10T19:46:36.703Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='dovecot'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='getmail'/><title type='text'>Adventures with Ubuntu: Mail</title><content type='html'>&lt;span style="font-size:130%;"&gt;Setting up dovecot to work with Google Mail.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Given the choice, I prefer using an e-mail client in preference to a web browser on whatever machine I am using.  Although Google Mail provides an &lt;a href="http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol"&gt;IMAP&lt;/a&gt; service, I wanted to be able to keep a copy of my mail on my home server so that I could access Google Mail missives and my various other mail accounts from one source.  I would also enjoy the benefit of having a copy of my mail in one easily backup-able and transferable source.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Installing dovecot and getmail:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install dovecot-common dovecot-imapdc \&lt;br /&gt; getmail4&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Configuring dovecot.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Edit the file /etc/dovecot/dovecot.conf&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Insert the line:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;mail_location = maildir:~/Maildir&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Restart dovecot:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;sudo /etc/init.d/dovecot restart&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;You should get a reply:&lt;/span&gt;&lt;br /&gt;&lt;code&gt; * Restarting IMAP/POP3 mail server dovecot   [ OK ]&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Creating your mail directory.&lt;/span&gt;&lt;br /&gt;&lt;code&gt;cd ~&lt;br /&gt;maildirmake.dovecot Maildir&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Configuring getmail.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have set up getmail to keep copies on the Google Mail server for 30 days.  I figure that will give me enough resilience :-)&lt;br /&gt;&lt;br /&gt;First, make sure that you have POP3 enabled on your Gmail account.&lt;br /&gt;Click on your settings and select the Forwarding and POP/IMAP tab.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PmkIttAGJXQ/R--wtSI3VMI/AAAAAAAAAAQ/Fw4pPbon-XM/s1600-h/gmail_pop3_blog.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_PmkIttAGJXQ/R--wtSI3VMI/AAAAAAAAAAQ/Fw4pPbon-XM/s320/gmail_pop3_blog.png" alt="" id="BLOGGER_PHOTO_ID_5183555988136350914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Create .getmail directory and rc file.&lt;/span&gt;&lt;br /&gt;&lt;code&gt; cd ~&lt;br /&gt;mkdir .getmail&lt;br /&gt;cd .getmail&lt;br /&gt;chmod 700 .&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Create a file getmailrc in ~/.getmail.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My getmailrc looks something like this:&lt;br /&gt;&lt;code&gt;[retriever]&lt;br /&gt;type = SimplePOP3SSLRetriever&lt;br /&gt;server = pop.gmail.com&lt;br /&gt;port = 995&lt;br /&gt;username = your.email.address@gmail.com&lt;br /&gt;password = your_password&lt;br /&gt;&lt;br /&gt;[destination]&lt;br /&gt;type = Maildir&lt;br /&gt;path = ~/Maildir/&lt;br /&gt;&lt;br /&gt;[options]&lt;br /&gt;delete_after = 30&lt;br /&gt;get_all = false&lt;/code&gt;&lt;br /&gt;Next all you need to do is schedule getmail to run when you are not looking.&lt;br /&gt;&lt;br /&gt;I have set mine to run every 5 minutes.&lt;br /&gt;&lt;code&gt;crontab -e&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;*/5 * * * * /usr/bin/getmail &gt;/dev/null 2&gt;&amp;amp;1&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Connecting to your server.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is the easy bit.&lt;br /&gt;&lt;br /&gt;Using your favorite email client, create an account which uses IMAP. Your server will be localhost (or the IP address of your home server).  The user id and passwords are the same as your Ubuntu user account.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Notes:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Because this is set up on my home network which sits behind a firewall, I have made no provision to employ secure IMAP connections which are, frankly, not needed in this instance as all connections to the IMAP server are made behind the firewall.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4865059753586627769-6113193479751822730?l=prawnuk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prawnuk.blogspot.com/feeds/6113193479751822730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4865059753586627769&amp;postID=6113193479751822730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6113193479751822730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4865059753586627769/posts/default/6113193479751822730'/><link rel='alternate' type='text/html' href='http://prawnuk.blogspot.com/2008/03/adventures-with-ubuntu-mail.html' title='Adventures with Ubuntu: Mail'/><author><name>prawn</name><uri>http://www.blogger.com/profile/17792401355927990692</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_PmkIttAGJXQ/SZcrYzJakEI/AAAAAAAAADM/tqcEDRhDKoQ/S220/prawn.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PmkIttAGJXQ/R--wtSI3VMI/AAAAAAAAAAQ/Fw4pPbon-XM/s72-c/gmail_pop3_blog.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
