This Year I Have Mostly Been Setting Up Forwarders…

Yeah, I can’t believe I haven’t done this before, either but now I’ve learned my lesson. I’ve elected to start off the new year by cleaning up my inbox – that means unsubscribing from services that I don’t use or read and also switching current services to a temporary email address through this domain.

The beauty is by using custom email addresses e.g. custom(at)wafitz.net I can later check and see who is selling my data to spammers. I also have an effective way of removing myself from mailing lists where unsubcribing is discouraged by stealth.

The very worst offender I have found appears to be http://www.advfn.com/.  I signed up to this website a long time ago to some financial info and it automatically added me to a dozen or so email subscriptions. Subsequent attempts to unsubscribe led to a weird non-functioning webpage that wouldn’t let me remove myself. Emails to their support go unanswered.

So I do the next best thing with ADVFN – I tell Google that their emails are spam. I mark all their emails as spam. Hopefully, if enough people find themselves in the same position as me do this, all of their email service will automatically be considered by Google as spam and they may then have incentive to change.

I do this with any services where they make it a difficult hurdle to unsubscribe. Just mark their email address as a spammer with as many email services as possible – if enough people do this – it will have an effect.

Blog Your Geocaching Found Logs with Blogger

You may or may not be aware that Google have recently released a command line tool called Google CL which allows limited updating of some of it’s primary services from the command line – including Blogger.

I have been working on a script and looking for a utility to parse the “My Finds” pocket query for uploading to a blog for a while now so on hearing this news I set to work to see if I could create an automated script. You can see the results on my old blogger account, which I have now renamed _TeamFitz_ and repurposed for publishing our Geocaching adventures.

It’s a little bit clunky and could be improved, but the script is now complete and ready for ‘beta’. I’m publishing it here and releasing it under GPL for others to download, copy and modify for their own Geocaching blogs.

A few snags:

  • It will only work with one “Find” per cache – if you found twice it may screw up the parser.
  • Google have an arbitrary limit of 30-40 auto-posts per day, which is entirely fair, it will then turn on word verification which will prevent CL updates. I have limited the script to parse only 30 posts at a time.

You will need to download and install Google CL, it goes without saying the script is Linux only but if someone wants to adapt it to Windows they are welcome.

I have commented out the “google” upload line for test runs, remove # to make it active.

Either cut n’ paste the code below, or download the script from YourFileLink. Please comment and post links to your own blogs if you use it, also let me know if there are any bugs I haven’t addressed.

#!/bin/bash
# Script to unzip, parse and publish
# Pocket Queries from Geocaching.com to Blogger
# Created by Wes Fitzpatrick (http://wafitz.net)
# 30-Nov-2009. Please distribute freely under GPL.
#
# Change History
# ==============
# 24-07/2010 - Added integration with Blogger CL
#
# Notes
# =====
# Setup variables before use.
# Blogger has a limit on posts per day, if it
# exceeds this limit then word verification
# will be turned on. This script has been limited
# to parse 30 logs.
# Blogger does not accept date args from Google CL,
# consequently posts will be dated as current time.
#
# Bugs
# ====
# * Will break if more than one found log
# * Will break on undeclared "found" types
#   e.g. "Attended"
# * If the script breaks then all temporary files
#   will need to be deleted before rerunning:
#	.out
#	.tmp
#	new
#	all files in /export/pub
#####     Use entirely at your own risk!      #####
##### Do not run more than twice in 24 hours! #####
set -e
clear
PQDIR="/YOUR/PQ/ZIP/DIR"
PUBLISH="$PQDIR/export/pub"
EXPORT="$PQDIR/export"
EXCLUDES="$EXPORT/excludes.log"
GCLIST="gccodes.tmp"
LOGLIST="logs.tmp"
PQZIP=$1
PQ=`echo $PQZIP | cut -f1 -d.`
PQGPX="$PQ.gpx"
BLOG="YOUR BLOG TITLE"
USER="YOUR USER ID"
TAGS="Geocaching, Pocket Query, Found Logs"
COUNTER=30
if [ ! $PQZIP ];then
echo ""
echo "Please supply a PQ zip file!"
echo ""
exit 0
fi
if [ ! -f "$EXCLUDES" ];then
touch "$EXCLUDES"
fi
# Unzip Pocket Query
echo "Unzipping PQ..."
unzip $PQZIP
# Delete header tag
echo "		...Deleting Header"
sed -i '/My Finds Pocket Query/d' $PQGPX
sed -i 's/'"$(printf '\015')"'$//g' $PQGPX
# Create list of GC Codes for removing duplicates
echo "		...Creating list of GC Codes"
grep "<name>GC.*</name>" $PQGPX | perl -ne 'm/>([^<>]+?)<\// && print$1."\n"' >  $GCLIST
# Make individual gpx files
echo ""
echo "Splitting gpx file..."
echo "	New GC Codes:"
cat  $GCLIST | while read GCCODE; do
#Test if the GC code has already been published
if [ ! `egrep "$GCCODE$" "$EXCLUDES"` ]; then
if [ ! "$COUNTER" = "0" ]; then
echo "      	$GCCODE"
TMPFILE="$EXPORT/$GCCODE.tmp"
GCFILE="$EXPORT/$GCCODE"
sed -n "/<name>${GCCODE}<\/name>/,/<\/wpt>/p" "$PQGPX" >> "$TMPFILE"
grep "<groundspeak:log id=" "$TMPFILE" | cut -f2 -d'"' | sort | uniq > "$LOGLIST"
cat $LOGLIST | while read LOGID; do
sed -n "/<groundspeak:log id=\"$LOGID\">/,/<\/groundspeak:log>/p" "$TMPFILE" >> "$LOGID.out"
done
FOUNDIT=`egrep -H "<groundspeak:type>(Attended|Found it|Webcam Photo Taken)" *.out | cut -f1 -d: | sort | uniq`
mv $FOUNDIT " $GCFILE"
rm -f *.out
URLNAME=`grep "<urlname>.*</urlname>" "$TMPFILE" | perl -ne 'm/>([^<>]+?)<\// && print$1."\n"'`
echo "      	$URLNAME"
# Replace some of the XML tags in the temporary split file
echo "      		...Converting XML labels"
sed -i '/<groundspeak:short_description/,/groundspeak:short_description>/d' "$TMPFILE"
sed -i '/<groundspeak:long_description/,/groundspeak:long_description>/d' "$TMPFILE"
sed -i '/<groundspeak:encoded_hints/,/groundspeak:encoded_hints>/d' "$TMPFILE"
sed -i 's/<url>/<a href="/g' "$TMPFILE"
sed -i "s/<\/url>/\">$GCCODE<\/a>/g" "$TMPFILE"
LINK=`grep "http://www.geocaching.com/seek/" "$TMPFILE"`
OWNER=`grep "groundspeak:placed_by" "$TMPFILE" | cut -f2 -d">" | cut -f1 -d"<"`
TYPE=`grep "groundspeak:type" "$TMPFILE" | cut -f2 -d">" | cut -f1 -d"<"`
SIZE=`grep "groundspeak:container" "$TMPFILE" | cut -f2 -d">" | cut -f1 -d"<"`
DIFF=`grep "groundspeak:difficulty" "$TMPFILE" | cut -f2 -d">" | cut -f1 -d"<"`
TERR=`grep "groundspeak:terrain" "$TMPFILE" | cut -f2 -d">" | cut -f1 -d"<"`
COUNTRY=`grep "groundspeak:country" "$TMPFILE" | cut -f2 -d">" | cut -f1 -d"<"`
STATE=`grep "<groundspeak:state>.*<\/groundspeak:state>" "$TMPFILE" | perl -ne 'm/>([^<>]+?)<\// && print$1."\n"'`
# Now remove XML from the GC file
DATE=`grep "groundspeak:date" " $GCFILE" | cut -f2 -d">" | cut -f1 -d"<" | cut -f1 -dT`
TIME=`grep "groundspeak:date" " $GCFILE" | cut -f2 -d">" | cut -f1 -d"<" | cut -f2 -dT | cut -f1 -dZ`
sed -i '/groundspeak:log/d' " $GCFILE"
sed -i '/groundspeak:date/d' " $GCFILE"
sed -i '/groundspeak:type/d' " $GCFILE"
sed -i '/groundspeak:finder/d' " $GCFILE"
sed -i 's/<groundspeak:text encoded="False">//g' " $GCFILE"
sed -i 's/<groundspeak:text encoded="True">//g' " $GCFILE"
sed -i 's/<\/groundspeak:text>//g' " $GCFILE"
# Insert variables into the new GC file
echo "      		...Converting File"
sed -i "1i\Listing Name: $URLNAME" " $GCFILE"
sed -i "2i\GCCODE: $GCCODE" " $GCFILE"
sed -i "3i\Found on $DATE at $TIME" " $GCFILE"
sed -i "4i\Placed by: $OWNER" " $GCFILE"
sed -i "5i\Size: $SIZE (Difficulty: $DIFF / Terrain: $TERR)" " $GCFILE"
sed -i "6i\Location: $STATE, $COUNTRY" " $GCFILE"
sed -i "7i\Geocaching.com:$LINK" " $GCFILE"
sed -i "8i\ " " $GCFILE"
mv " $GCFILE" "$PUBLISH"
touch new
COUNTER=$((COUNTER-1))
fi
fi
done
echo ""
echo "			Reached 30 post limit!"
echo ""
# Pubish the new GC logs to Blogger
if [ -f new ]; then
echo ""
echo -n "Do you want to publish to Blogger (y/n)? "
read ANSWER
if [ $ANSWER = "y" ]; then
echo ""
echo "	Publishing to Blogger..."
echo ""
egrep -H "Found on [12][0-9][0-9][0-9]-" "$PUBLISH"/* | sort -k 3 | cut -f1 -d: | while read CODE; do
CACHE=`grep "Listing Name: " "$CODE" | cut -f2 -d:`
GC=`grep "GCCODE: " "$CODE" | cut -f2 -d:`
sed -i '/Listing Name: /d' "$CODE"
sed -i '/GCCODE: /d' "$CODE"
#google blogger post --blog "$BLOG" --title "$GC: $CACHE" --user "$USER" --tags "$TAGS" "$CODE"
echo "blogger post --blog $BLOG --title $GC: $CACHE --user $USER --tags $TAGS $CODE"
mv "$CODE" "$EXPORT"
echo "		Published: $CODE"
echo "$GC" >> "$EXCLUDES"
done
echo ""
echo "                  New logs published!"
else
echo ""
echo "                  Not published!"
fi
echo ""
else
echo "			No new logs."
fi
echo ""
rm -f *.out
rm -f *.tmp
rm -f "$EXPORT"/*.tmp
rm -f new

Why I Still Use Facebook Despite The Issues

Over the past year I’ve agonised over keeping my Facebook account, but everytime I’ve considered deleting it I’ve come to the same conclusion – the benefits of having one far outweigh the benefits of not having a Facebook account.

Big Brother is Poking You

Let’s start with the negative shall we? First is privacy – Facebook is infamous for dicking around with users profiles and privacy settings. It should be on the tip of every Facebook users mind that what they post in private today could be on the front page of The Sun tomorrow. It’s something I’m concerned about and it’s likely if Facebook did not give me some measure of control over my privacy settings then I’d definitely look for an alternative.

Farmbook

Second, Farmville (and it’s ilk). Seriously I don’t mind if you want to raise your virtual tomatoes with your virtual seed that you bought with your virtual cash that you paid for with you real money. However, why does Facebook feel it’s important that I should know all this? I don’t care, I don’t want to know about your gold egg, your new apartment, your lost Koala, your bean crop or anything you spend mindless hours filling the bank account of some company you’ve never even heard of.

The Great Unwashed

Thirdly, popularity. Yes I appreciate most will not understand this one. Let me try to explain. When I joined Facebook it was little more than a listing site. You could post photo’s, a profile and maybe there was a few extras I don’t remember. Then a couple of years later came the MySpace refugees – and with them they brought their ugly profiles and ubiquitous junk plugins. OK so I was a Facebook snob, I never got into MySpace and I’m glad – I feel less dirty for it. Yes the MySpace crowd ruined Facebook – but I will admit I played some of the games to start with, I took part in the stupid polls and apps that desperately scream “define me”! It’s not something I’m proud of.

So why stick with Facebook despite these issues? Read on…

Continue reading “Why I Still Use Facebook Despite The Issues”

The Biggest Pirates of All: Stealing from the Public Domain

I was reading a topic on Slashdot the other day about the public disclosure of Google’s internal emails in its court battle with Viacom, that seem to take the shine off Google’s “Do No Evil” image.

I’m not particularly invested in this news itself, but what cause me to stop and think was this comment from user drDugan (emphasis mine):

What’s more evil?

You know what’s evil? Copyright term of “70 years + life of the author”.
http://en.wikipedia.org/wiki/Copyright_term [wikipedia.org]

Almost every single thing creative that someone creates today will *never* enter the public domain within our lifetime. Nothing. The owner of the copyright must explicitly grant it to the public domain, or license it for other’s use, distribution, sharing, mashing, basically anything more than fair use… Copyright is no longer about promotion of creativity, its a legal exclusivity and an effectively permanent lock on all creative output by business interests. Add WIPO and ACTA and soon within 10 years or so, it will be a global exclusive lock, again driven by business interests.

The current copyright laws are simply a denial of any sense of balance or social good in intellectual property.

I had to read that twice… Almost every single thing creative that someone creates today will *never* enter the public domain within our lifetime.

This sentence alone pretty much explains the tragic state of affairs when it comes to the entertainment industries view towards intellectual property and piracy. In essence, to me, it pretty much morally justifies piracy for non-commercial use.

Ever heard of The Grimm Fairy Tales, Mary Shelley, Hans Christian Anderson, Jane Austin, Orson Welles, Charles Dickens, Edgar Allen Poe or HG Wells (to name just a few)? The likelihood is you have heard of these names and read their books or watched film adaptions. The reason you have heard these names, and studied their works in educational establishments is because their most famous works are all public domain.

The equal likelihood is, if big media corporations of today had existed when these artists were around and writing these works – you would never have heard of them. In fact it could be argued that English Literature as a school subject would not even exist.

Next time Disney or Pixar release a new movie based on one of these old public domain works.. remember it’s large media companies like Disney that are not only benefiting from public domain works, they are lobbying to make sure that the works they create – even these derivatives – never enter public domain.

They’re not just stealing from the past, their stealing from the future, our future and future generations. We will never be able to use the works without copyright permissions, future generations will have to keep studying works produced before the advent of the 20th Century.

This is why it’s vital that political parties, like the UK Pirate Party, exist and are supported. I’d also go as far as saying piracy itself is a vital service in changing the culture and nature of intellectual property. If it wasn’t for Napster, you’d never have iTunes or iPods – we’d still be listening to CD and Cassette players on our way to work.

Cinemoose has an excellent list of famous writers and books that are in the public domain.
Readprint is an online resource for free and public domain books.
Public Domain Works.net is an open registry with searchable database.

Egosurfing

Happy New Year!

Hey I got a new domain: www.wafitz.net. I haven’t done anything with it yet but I intend to start moving ‘operations’ over there. This blog, maybe a static webcam, geocaching related stuff. And I’m working on a weekly(?) podcast with my brother in law – we’re just ironing out the technicalities.

Speaking of domains and online activity. Ever since I did my first egosurf (way back when we were all surfing web 1.0 with 56k dialup, Google was a sound a baby would make, email was the fastest way to communicate and AOL was a formidable giant of the web) this website is what drew in the top results. The image of the little girl has been “picture of the week” for the last 300 weeks. The whole website has never changed since it’s been up and yet it still gets significant ranking when I google my name.

Of all the daft forum posts, stupid blogs and other nonsense I’ve done online, I’d rather anyone see those than to mistake fitzweb.org for one of my achievements. I am probably not helping by linking to it, it’s probably bad form to even discuss it like this, but it’s something that’s bothered and haunted me for years so I felt maybe it’s time to clear up any confusion.