<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>adamblog</title>
	
	<link>http://blog.amyl.org.uk</link>
	<description>my half-arsed attempt at blogging</description>
	<lastBuildDate>Tue, 06 Dec 2011 19:09:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/adamamyl" /><feedburner:info uri="adamamyl" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>adamamyl</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>cURL and Google Spreadsheets</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/4dudwnzQDaw/</link>
		<comments>http://blog.amyl.org.uk/2011/12/curl-and-google-spreadsheets/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 19:06:58 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[google-docs]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://blog.amyl.org.uk/?p=98</guid>
		<description><![CDATA[I failed to find a good example of something that worked to pull a spreadsheet from google-docs using cURL. All that I found didn&#8217;t work, in one shape or another.
A bit of playing, and quite a bit of reading got this

#!/bin/bash
PASS=`cat /path/to/0600/google-password-file`
SHEET="https://spreadsheets.google.com/feeds/download/spreadsheets/Exportkey=addyourownsheetIDhere&#038;exportFormat=csv&#038;gid="
AUTH_TOKE=`curl --silent https://www.google.com/accounts/ClientLogin -d \
    Email=foo@example.org -d \
   ]]></description>
			<content:encoded><![CDATA[<p>I failed to find a good example of something that worked to pull a spreadsheet from google-docs using cURL. All that I found didn&#8217;t work, in one shape or another.</p>
<p>A bit of playing, and quite a bit of reading got this</p>
<p><code><br />
#!/bin/bash<br />
PASS=`cat /path/to/0600/google-password-file`<br />
SHEET="https://spreadsheets.google.com/feeds/download/spreadsheets/Exportkey=addyourownsheetIDhere&#038;exportFormat=csv&#038;gid="</p>
<p>AUTH_TOKE=`curl --silent https://www.google.com/accounts/ClientLogin -d \<br />
    Email=foo@example.org -d \<br />
    Passwd=${PASS} -d \<br />
    accountType=HOSTED -d \<br />
    source=cURL-SpreadPull -d \<br />
    service=wise | grep Auth\= | sed 's/Auth/auth/'`</p>
<p>curl --silent --output /path/to/file --header "GData-Version: 3.0" --header "Authorization: GoogleLogin ${AUTH_TOKE}" "${SHEET}${TAB}"<br />
</code></p>
<p>seemed to do the trick</p>
<p><code>Exportkey</code> could be defined in the script, as a variable, thinking about it. You&#8217;ll need to supply that; I typically grab it from the web-based URI, but there is a warning in <a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#RetrievingCellFeeds">the docs</a> about that:</p>
<p><quote><br />
<em>To determine the URL of a cell-based feed for a given worksheet, get the worksheets metafeed and examine the &lt;link&gt; element in which rel is http://schemas.google.com/spreadsheets/2006#cellsfeed. The href value in that element is the cell feed&#8217;s URI.</em><br />
</quote></p>
<p> YMMV.</p>
<p>I&#8217;ve added in <code>&#038;exportFormat=csv&#038;gid=</code> because I wanted CSV outputs, and gid&#8217;s value is provided via a for &#8230; and case deviation.</p>
<p><code>--header "GData-Version: 3.0"</code> was needed to avoid the  redirection.</p>
<p>Hopefully, this might be of benefit &#8212; as a working (when written) example of using curl and google docs/google spreadsheets.</p>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/4dudwnzQDaw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2011/12/curl-and-google-spreadsheets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2011/12/curl-and-google-spreadsheets/</feedburner:origLink></item>
		<item>
		<title>apt-listbugs and suite-wide scripted upgrades</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/kcruXgnJXeU/</link>
		<comments>http://blog.amyl.org.uk/2010/11/apt-listbugs-and-scripted-updates/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 15:47:40 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[ENV]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://blog.amyl.org.uk/?p=93</guid>
		<description><![CDATA[Having finally got fed up with logging in, individually, to upgrade each of the no2id machines and jails, a bit ago, I decided to write a script to do the &#8216;hard work&#8217; for me.
This worked fine, until today, when I noticed apt-listbugs complaining, and causing the script to fail to dist-upgrade.
Not a problem, thought I.]]></description>
			<content:encoded><![CDATA[<p>Having finally got fed up with logging in, individually, to upgrade each of the <a href="http://www.no2id.net">no2id</a> machines and jails, a bit ago, I decided to write a script to do the &#8216;hard work&#8217; for me.</p>
<p>This worked fine, until today, when I noticed <a href="http://packages.debian.org/search?keywords=apt-listbugs">apt-listbugs</a> complaining, and causing the script to fail to dist-upgrade.</p>
<p>Not a problem, thought I. I&#8217;m sure others have had this issue too. Being lazy, I thought first point of call would be the internets. I&#8217;d have thought something like:</p>
<p><code><br />
"DEBIAN_FRONTEND=noninteractive" "apt-listbugs"<br />
</code></p>
<p>might have done the trick. It didn&#8217;t (that I could find).</p>
<p>So I went back to doing what a lot of the new-breed of &#8216;devops&#8217; fail to do, and what I&#8217;m quite hypocritical of; looking at the manpage.</p>
<p>The <a href="http://manpages.debian.net/cgi-bin/man.cgi?query=apt-listbugs">manpage</a> provides us with this gem:</p>
<blockquote><p>
   ENVIRONMENT VARIABLES<br />
              o  APT_LISTBUGS_FRONTEND  If  this  variable  is  set  to &#8220;none&#8221;<br />
              apt-listbugs will not execute at all, this might  be  useful  if<br />
              you  would  like  to  script  the  use  of  a program that calls<br />
              apt-listbugs.
</p></blockquote>
<p>So there we go.</p>
<p><code><br />
 for M in $MACHINES<br />
 do<br />
     echo "Connecting to ${M}.no2id.net"<br />
-    ssh root@${M}.no2id.net 'export TERM=xterm; export DEBIAN_FRONTEND=noninteractive; apt-get update &#038;&#038; echo "" &#038;&#038; echo "" &#038;&#038; echo "This is "'${M}'".no2id.net" &#038;&#038; echo "" &#038;&#038; echo "" &#038;&#038; apt-get dist-upgrade'<br />
+    ssh root@${M}.no2id.net 'export TERM=xterm; export DEBIAN_FRONTEND=noninteractive; export APT_LISTBUGS_FRONTEND=none; apt-get update &#038;&#038; echo "" &#038;&#038; echo "" &#038;&#038; echo "This is "'${M}'".no2id.net" &#038;&#038; echo "" &#038;&#038; echo "" &#038;&#038; apt-get dist-upgrade'<br />
done<br />
</code></p>
<p>hopefully, this will help others, whose first port of call is the internets, and not manpages. </p>
<p>You may, however be sensible &#8212; and have had the time to roll out <a href="http://www.puppetlabs.com">Puppet</a> (ugh, when did they change their website! Why&#8253;) or <a href="http://www.opscode.com/chef">Chef</a> though.</p>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/kcruXgnJXeU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2010/11/apt-listbugs-and-scripted-updates/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2010/11/apt-listbugs-and-scripted-updates/</feedburner:origLink></item>
		<item>
		<title>Privacy, Principles, So long for now, London Decompression</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/O-YBxZYTB7k/</link>
		<comments>http://blog.amyl.org.uk/2010/11/privacy-principles-so-long-for-now-london-decompression/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 13:48:12 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[burners]]></category>
		<category><![CDATA[decompression]]></category>
		<category><![CDATA[london]]></category>
		<category><![CDATA[principles]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://blog.amyl.org.uk/?p=91</guid>
		<description><![CDATA[Here&#8217;s what I&#8217;ve just sent to the London Decompression leads&#8217; list; sadly, sometimes we have to take a stand for what we believe in  

Following on from information about the proposed venue (&#8216;Cable&#8217;) for this year&#8217;s London Decompression, their insistence on using “Clubscan” and my principles,  I feel I can no longer be]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s what I&#8217;ve just sent to the London <a href="http://en.wikipedia.org/wiki/Decompression_party">Decompression</a> leads&#8217; list; sadly, sometimes we have to take a stand for what we believe in <img src='http://blog.amyl.org.uk/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<blockquote><p>
Following on from information about the proposed venue (&#8216;Cable&#8217;) for this year&#8217;s London Decompression, their insistence on using “Clubscan” and my principles,  I feel I can no longer be involved, or participate in this year&#8217;s London Decompression event.</p>
<p>Should there be a change in their deployment of the Clubscan products/services (or any such similar ones), I may be able to reconsider this.</p>
<p>I&#8217;m really quite disappointed that, as a group, we&#8217;ve not – to my knowledge (nothing&#8217;s been mentioned about it) –  regarded privacy as a concern, or carried out (for example) a Privacy Impact Assessment.</p>
<p>Whilst many folks are content to abrogate their privacy, for some of us, it&#8217;s been an issue that we – and our forebearers – have fought for – and are still fighting: including taking matters to the courts.</p>
<p>It&#8217;s through privacy campaigning, that I became introduced to the Burner Community (as strange as that may seem). I know I&#8217;m not the only privacy-aware/concerned individual from amongst our community.</p>
<p>That&#8217;s even before the issue of bringing out passports/photo ID, let alone surrendering the data.</p>
<p>I should make it clear that, whilst I am a fairly well documented privacy campaigner, I&#8217;m far from the irrational knee-jerk contingency; I review matters and thence form rational decisions.</p>
<p>The whole concept irks me immensely, putting me at ideological differences with the rest of you.</p>
<p>In the spirit of collective decision making, I no longer wish to take a part, in the organizing, or the participation, sadly, of this year&#8217;s London Decompression. I know of friends who will not be participating, too.</p>
<p>As such, I have no choice but to step-down with immediate effect. Please do not contact me regarding anything relating to the London Decompression, unless it&#8217;s to say the Southwark Council have rescinded, and that the council/licensing board/venue chosen takes privacy seriously, and ceases to insist on the installation and use of any of the “Clubscan” sort of products. The whole principle – and their “argument” for the deployment, – does not, to me, hold water.</p>
<p>For the time being, whilst I further evaluate my feelings/options, I will not be rescinding the use of my domains. However, should this contemptuous disregard of privacy continue, the offer will not be available again. </p>
<p>I honestly wish that I could offer my hopes for the best, but under these circumstances, and my hardly concealed views, I don&#8217;t feel able to offer this. Particularly as it supports a company that, in my view, pushes the limits of the spirit of the law, as well as promulgating a &#8216;papers please&#8217; culture: and that&#8217;s just to &#8216;have fun&#8217;.
</p></blockquote>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/O-YBxZYTB7k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2010/11/privacy-principles-so-long-for-now-london-decompression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2010/11/privacy-principles-so-long-for-now-london-decompression/</feedburner:origLink></item>
		<item>
		<title>Transmission and Renaming Torrents</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/s-Sou8v7RHo/</link>
		<comments>http://blog.amyl.org.uk/2010/09/transmission-and-renaming-torrents/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 14:20:56 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[mailer]]></category>
		<category><![CDATA[rename]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[symlink]]></category>
		<category><![CDATA[transmission]]></category>
		<category><![CDATA[works for me]]></category>

		<guid isPermaLink="false">http://blog.amyl.org.uk/?p=89</guid>
		<description><![CDATA[I&#8217;ve recently (ish) started using transmission as my torrent client; the change-over comes from my switching-things-off approach; instead of keeping ktorrent running on the laptop (and caneing my bandwidth), I can have something mainly work on the NAS which is always on (bar power-cuts/maint).
One of the things that I noticed was the apparent lack of]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently (ish) started using transmission as my torrent client; the change-over comes from my switching-things-off approach; instead of keeping <a href="http://ktorrent.org">ktorrent</a> running on the laptop (and caneing my bandwidth), I can have something mainly work on the NAS which is always on (bar power-cuts/maint).</p>
<p>One of the things that I noticed was the <a href="https://trac.transmissionbt.com/ticket/1220">apparent lack</a> of <a href="https://trac.transmissionbt.com/ticket/672">renaming</a> within Transmission (and the curious way earlier tickets are marked as duplicitous of later ones).</p>
<p>So, erm, I&#8217;ve <a href="http://github.com/adamamyl/transmission">written something</a> that works for me. And hacked out the mailer-script to something a little cleaner&#8212; at least in my view.</p>
<p>The premise is that you&#8217;re using a POSIXish operating system &#8212; <a href="http://www.readynas.com/">my NAS</a> runs on Debian &#8212; and that all of your exports are within the /nas directory, and your torrents directory is /nas/torrents.</p>
<p>The changes needed are (with transmission not running, apparently) to include <code>/path/to/post-download</code> as the value for<br />
<code>script-torrent-done-filename</code> in <code>settings.json</code></p>
<p>You&#8217;ll need to echo in <code>"/path/to/store/the/completed-file"</code> to a file named as per the torrent (see your <code>incomplete</code> directory for that), but with &#8220;<code>.move</code>&#8221; appended; the rest should all happen automagically.</p>
<p>You might find it useful to chown the directories you&#8217;ll be moving things to that of the user running the transmission processes; I tend to setgid to my GID too.</p>
<p>The other file, mvtor, is one for doing a manual move, specify the torrent as an arguement; e.g., <code>./mvtor "ubuntu-10.04.1-alternate-i386.iso"</code></p>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/s-Sou8v7RHo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2010/09/transmission-and-renaming-torrents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2010/09/transmission-and-renaming-torrents/</feedburner:origLink></item>
		<item>
		<title>Mailman and Googlemail -&gt; Gmail: A three step approach…</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/0pMICxATnlg/</link>
		<comments>http://blog.amyl.org.uk/2010/06/mailman-googlemail-to-gmail/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 14:53:42 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[lazy]]></category>
		<category><![CDATA[mailman]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://blog.amyl.org.uk/?p=83</guid>
		<description><![CDATA[I thought other listadmins might be having fun with gmail now being available in the UK (rather than &#8220;googlemail&#8221;, as it has been for a while (despite &#8216;gmail&#8217; originally being available, back in the days of invitation only)), and thought I&#8217;d share my hackish way around this,  so listfolks can post from their gmail.com]]></description>
			<content:encoded><![CDATA[<p>I thought other listadmins might be having fun with gmail now being available in the UK (rather than &#8220;googlemail&#8221;, as it has been for a while (despite &#8216;gmail&#8217; originally being available, back in the days of invitation only)), and thought I&#8217;d share my hackish way around this,  so listfolks can post from their gmail.com addresses.</p>
<p>It&#8217;s not pretty, but works for me &#8212; pre-requisite, Mark&#8217;s very useful &#8220;non-members&#8221; script: <a href="http://www.msapiro.net/scripts/non_members">http://www.msapiro.net/scripts/non_members</a></p>
<ol>
<li>find who you need to work with:<br />
<code><br />
mkdir ~/tmp/gmail &#038;&#038; list_lists -b | while read L; do list_members ${L} | grep googlemail > ~/tmp/gmail/${L}; done<br />
</code></li>
<li>Zap annoucement lists from the files, remove empty files, too.</li>
<li>Let them post!<br />
<code><br />
/var/lib/mailman/bin$ ls -1 ~/tmp/gmail | while read L; do sed 's/@googlemail.com/@gmail.com/' ~/tmp/gmail/${L} | while read X; do ./non_members --list=${L} --filter=accept --add ${X} --verbose; done; done<br />
</code></li>
</ol>
<p>(nb: the path (/var/lib/mailman/bin) is from a Debian machine &#8212; Mailman installed via packages &#8212; and in my case /var/lib/mailman/bin being in<br />
my ${PATH} &#8212; so replace those as appropriate in your cases.)</p>
<p>Which seems to have done the trick.</p>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/0pMICxATnlg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2010/06/mailman-googlemail-to-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2010/06/mailman-googlemail-to-gmail/</feedburner:origLink></item>
		<item>
		<title>arpinfo</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/Ctf5aazPkMg/</link>
		<comments>http://blog.amyl.org.uk/2010/05/arpinfo/#comments</comments>
		<pubDate>Thu, 20 May 2010 16:17:24 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[openrights]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[arp]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[IEEE]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[MAC]]></category>
		<category><![CDATA[OEM]]></category>
		<category><![CDATA[OUI]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://blog.amyl.org.uk/?p=81</guid>
		<description><![CDATA[Ever wanted to know who the OEM/Supplier/Manufacturer of network devices attached to a machine were?
I did. And couldn&#8217;t see anyone else&#8217;s script to steal, so here&#8217;s a really ugly way to do it  

# arpinfo:
#   pull hardware info from the arp() table
#
# Copyright (c) 2010 Adam McGreggor. Some rights reserved.
# Email: ]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to know who the OEM/Supplier/Manufacturer of network devices attached to a machine were?</p>
<p>I did. And couldn&#8217;t see anyone else&#8217;s script to steal, so here&#8217;s a really ugly way to do it <img src='http://blog.amyl.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><code><br />
# arpinfo:<br />
#   pull hardware info from the arp() table<br />
#<br />
# Copyright (c) 2010 Adam McGreggor. Some rights reserved.<br />
# Email: <adam@amyl.org.uk> Web: <http://blog.amyl.org.uk><br />
#<br />
# $Id:$<br />
#</p>
<p>WEBSOURCE=http://standards.ieee.org/regauth/oui/oui.txt<br />
DOC=/usr/local/doc/oui.txt</p>
<p>curl --silent ${WEBSOURCE} -o "${DOC}"</p>
<p>arp | awk '{print $3}' | awk -F: '{print $1"-"$2"-"$3}' | while read ARP<br />
do<br />
    grep $ARP ${DOC}<br />
done<br />
arp<br />
</code></p>
<p>Works for me&#8230; although it could do with a tidy-up. As a quick and dirty thing, mind&#8230;</p>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/Ctf5aazPkMg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2010/05/arpinfo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2010/05/arpinfo/</feedburner:origLink></item>
		<item>
		<title>Firefox Extensions</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/8nmyb-XQXOs/</link>
		<comments>http://blog.amyl.org.uk/2010/01/firefox-extensions/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 00:39:15 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[indolence]]></category>
		<category><![CDATA[machine set-up]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[new machine]]></category>
		<category><![CDATA[set-up]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://blog.amyl.org.uk/?p=70</guid>
		<description><![CDATA[Thought this might double up as a note of the firefox extensions I currently have installed &#8212; I&#8217;ve tried getting this to script, but, the source file isn&#8217;t something I&#8217;m over-familiar with, and getting fields to match-up ain&#8217;t happening, due to my crapness.
Anyhow, I would appear to have these firefox extensions installed:

Adblock Plus
AutoPager
BetterFlickr
Better YouTube
Delicious Bookmarks
DownloadHelper
Echofon
Extended]]></description>
			<content:encoded><![CDATA[<p>Thought this might double up as a note of the firefox extensions I currently have installed &#8212; I&#8217;ve tried getting this to script, but, the source file isn&#8217;t something I&#8217;m over-familiar with, and getting fields to match-up ain&#8217;t happening, due to my crapness.</p>
<p>Anyhow, I would appear to have these firefox extensions installed:</p>
<ul>
<li><a href="http://adblockplus.org/">Adblock Plus</a></li>
<li>AutoPager</li>
<li>BetterFlickr</li>
<li><a href="http://ginatrapani.org/workshop/firefox/betteryoutube/">Better YouTube</a></li>
<li><a href="http://delicious.com">Delicious Bookmarks</a></li>
<li>DownloadHelper</li>
<li><a href="http://echofon.com/">Echofon</a></li>
<li>Extended Statusbar</li>
<li><a href="http://www.applian.com/fast-video-download/">Fast Video Downloader (with SearchMenu)</a></li>
<li><a href="http://www.getfirebug.com/">Firebug</a></li>
<li>Firefox (default)</li>
<li>Firefox (en-GB)</li>
<li><a href="http://flagfox.net/">Flagfox</a></li>
<li><a href="http://flashblock.mozdev.org/">Flashblock</a></li>
<li><a href="http://www.longfocus.com/firefox/gmanager/">Gmail Manager</a></li>
<li><a href="http://skrul.com/blog/projects/greasefire">Greasefire</a></li>
<li><a href="http://mozmonkey.com/">Greasemonkey</a></li>
<li>Image Download</li>
<li>Image Zoom</li>
<li>Inline Code Finder for Firebug</li>
<li>is.gd Creator</li>
<li><a href="http://www.oxymoronical.com/web/firefox/jsoptions">JavaScript Options</a></li>
<li>keyconfig</li>
<li><a href="http://www.magic-imv.ro/vd/">Magic&#8217;s Video Downloader</a></li>
<li>oldbar</li>
<li><a href="http://passwordexporter.fligtar.com">Password Exporter</a></li>
<li>Save Image in Folder [sic]</li>
<li><a href="http://code.google.com/p/firefox-showip/">ShowIP</a></li>
<li><a href="http://skipscreen.com/">SkipScreen</a></li>
<li>TinyUrl Creator</li>
<li>Ubuntu Firefox Modificiations</li>
<li>URL Fixer</li>
<li><a href="http://www.vmware.com/">VMware Remote Console Plug-In</a></li>
<li>Xulrunner (en-GB)</li>
<li>YesScript</li>
</ul>
<p>A few of those don&#8217;t have links I can identify from the URI.</p>
<p>Want some code that vaguely does this for you?<br />
<code><br />
#!/bin/sh<br />
#<br />
# ffexts:<br />
#   list firefox extensions: names and URIs for download/homepage<br />
#<br />
# Copyright (c) 2010 Adam McGreggor. Some rights reserved.<br />
# Email: &#60;adam@amyl.org.uk&#62; Web: &#60;http://blog.amyl.org.uk&#62;<br />
#<br />
# $Id: ffexts 119 2010-01-10 00:38:04Z adam $<br />
#</p>
<p>set -e</p>
<p>MOZDIR=~/.mozilla/firefox<br />
PROFDIR=`ls -lha ${MOZDIR} | grep default | awk '{print $NF}'`<br />
FILE=extensions.rdf<br />
INFILE=${MOZDIR}/${PROFDIR}/${FILE}<br />
OF=~/tmp/ffexts<br />
OUTFILE=~/pseudohome/nas-docs/firefox-extensions-$(date '+%Y%m%d')</p>
<p># check for existing outfile, as we'll be<br />
# appending; if so, zap it<br />
if [ -e ${OUTFILE} ]; then<br />
    rm ${OUTFILE}<br />
fi</p>
<p># grab the interesting bits from the RDF file<br />
for K in name homepageURL<br />
do<br />
   # nice fix-up, eh?<br />
    grep "NS1:${K}" ${INFILE}  | sed -e "s/NS1:${K}=//" \<br />
            -e 's/"//g' -e 's/>//' \<br />
            -e 's/^[ \t]*//' | sort | uniq > ${OF}-${K}<br />
    # using wc here is entirely optional <img src='http://blog.amyl.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
    wc -l ${OF}-${K}<br />
    # append<br />
    cat ${OF}-${K} >> ${OUTFILE}<br />
done<br />
</code></p>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/8nmyb-XQXOs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2010/01/firefox-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2010/01/firefox-extensions/</feedburner:origLink></item>
		<item>
		<title>Conditional Prompt colo(u)rs</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/JQOuvJDO5iE/</link>
		<comments>http://blog.amyl.org.uk/2009/12/conditional-prompt-colors/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 16:45:04 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[ENV]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[machine set-up]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[colour]]></category>
		<category><![CDATA[conditional]]></category>
		<category><![CDATA[dotfiles]]></category>
		<category><![CDATA[hostname]]></category>
		<category><![CDATA[prompt]]></category>
		<category><![CDATA[PS1]]></category>

		<guid isPermaLink="false">http://tanqueray.amyl.org.uk/~adam/blog/?p=61</guid>
		<description><![CDATA[setting a colored prompt; different color for different machines based on hostname, oh yes.]]></description>
			<content:encoded><![CDATA[<p>I often work on several different machines, for different projects and things. It&#8217;s bloody annoying when I get the wrong machine!</p>
<p>I thought. I know what, I&#8217;ll make all of these machines use a colored prompt, and make that lot of machines use a different one.</p>
<p>(At this point, I should say that my dotfiles, and a variety of other things are kept in a subversion repo. Most of those bits are my-eyes-only (particularly a lot of the very badly/hastily thrown together scripts), but a few bits I&#8217;m gradually releasing.)</p>
<p>After mentioning this on <a href="http://twitter.com/adamamyl/status/6945837040">twitter</a>, a couple of people have been interested in how I did it.</p>
<p>The solution is quite easy, work out the hostname, and from that determine the &#8216;class&#8217; of machine, and then apply some colors. The <a href="http://wiki.archlinux.org/index.php/Color_Bash_Prompt#Wolfman.27s">archwiki</a> was useful in getting out the colors to use; along with underlining, and emboldening (I <strong>never</strong> use underlining, except in manuscript: ghastly thing that obscures text).</p>
<p>Whilst not perfect (the color parts could be set as a variable, and then passed to the PS1 line; I could have used &#8220;else&#8221; clauses&#8230;), it works. For me, so, erm, here&#8217;s <a href="http://code.amyl.org.uk/adam/dotfiles/bashrc">my .bashrc</a> &#8212; you want from the <code># work out machine name/domain:</code> line.</p>
<p>A simple switch wotsits in <code>screen(1)</code>, and</p>
<p><code>$ cd ~/pseudohome &#038;&#038; svn up</code></p>
<p>followed with a </p>
<p><code> $ . .bashrc</code></p>
<p>is how I deploy (some people have an &#8217;svn up&#8217; in their start-up scripts, I don&#8217;t).</p>
<p>Comments here, if you want to.</p>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/JQOuvJDO5iE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2009/12/conditional-prompt-colors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2009/12/conditional-prompt-colors/</feedburner:origLink></item>
		<item>
		<title>Twitter lists</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/E6Aj9urpe6w/</link>
		<comments>http://blog.amyl.org.uk/2009/10/twitter-lists/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 00:36:34 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[geekcons]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[numbers]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[lazy]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://tanqueray.amyl.org.uk/~adam/blog/?p=57</guid>
		<description><![CDATA[As my reader will know, I&#8217;m rather fond of lists. For a while, i&#8217;ve held back against Twitter Lists, not really seeing the point of them: my current client, Tweetdeck, after all, has categories for me; I rarely use the twitter website, and my pytwerp config/template is easy to grep, if I need to.
But, erm,]]></description>
			<content:encoded><![CDATA[<p>As my reader will know, I&#8217;m rather fond of lists. For a while, i&#8217;ve held back against Twitter Lists, not really seeing the point of them: my current client, Tweetdeck, after all, has categories for me; I rarely use the twitter website, and my pytwerp config/template is easy to grep, if I need to.</p>
<p>But, erm, yeah. I&#8217;ve made a start, and given how shit my memory is, I thought I&#8217;d explain (to you, and me) how I&#8217;ve categorized:</p>
<ul>
<li>@adamamyl/foodies &#8212; people who write about food. Or like food</li>
<li>@adamamyl/burners &#8212; burners. as in burningman/nowhere/decompressions. fucking hippies</li>
<li>@adamamyl/uber-kewl-kids &#8212; mainly shops/products I really like</li>
<li>@adamamyl/lawyers &#8212; i seem to follow a few of &#8216;em: let&#8217;s put &#8216;em all together</li>
<li>@adamamyl/academics &#8212; self-explanatory, really</li>
<li>@adamamyl/public-life &#8212; better than &#8220;slebs&#8221;</li>
<li>@adamamyl/music-folks &#8212; people in the music industry, in one way or another</li>
<li>@adamamyl/technologists &#8212; people who fiddle with tech, new products, that sort of thing</li>
<li>@adamamyl/mafia &#8212; people who (will) run things.</li>
<li>@adamamyl/web-folks &#8212; people involved in web stuff and maybe social media, may include ruby people, as they&#8217;re not proper geeks <img src='http://blog.amyl.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>@adamamyl/usual-suspects &#8212; child-eating, crack-dealing refusniks (hi Stef!) who still won&#8217;t give up.</li>
<li>@adamamyl/politicos &#8212; those with political interests/aspirations. can also include current affairs/news</li>
<li>@adamamyl/representatives &#8212; people who&#8217;ve been elected, usually</li>
<li>@adamamyl/geeks &#8212; lovely people, really</li>
</ul>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/E6Aj9urpe6w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2009/10/twitter-lists/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2009/10/twitter-lists/</feedburner:origLink></item>
		<item>
		<title>theme change</title>
		<link>http://feedproxy.google.com/~r/adamamyl/~3/hiTRZvOPurw/</link>
		<comments>http://blog.amyl.org.uk/2009/10/theme-change/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 00:37:39 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[indolence]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[crap]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://tanqueray.amyl.org.uk/~adam/blog/?p=53</guid>
		<description><![CDATA[got bored with the previous theme. it was a bit ugly, so, erm, let&#8217;s see if this one encourages me to post a bit more&#8230;
hah.
thoughts, dear reader?
]]></description>
			<content:encoded><![CDATA[<p>got bored with the previous theme. it was a bit ugly, so, erm, let&#8217;s see if this one encourages me to post a bit more&#8230;</p>
<p>hah.</p>
<p>thoughts, dear reader?</p>
<img src="http://feeds.feedburner.com/~r/adamamyl/~4/hiTRZvOPurw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.amyl.org.uk/2009/10/theme-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.amyl.org.uk/2009/10/theme-change/</feedburner:origLink></item>
	</channel>
</rss>

