diff options
author | Nick White <git@njw.me.uk> | 2010-07-20 14:34:25 +0100 |
---|---|---|
committer | Nick White <git@njw.me.uk> | 2010-07-20 14:34:25 +0100 |
commit | 4a43cd79f1cd901f7988260b1872d1d306f2a848 (patch) | |
tree | 9cf897e3bfac365eb0285a28353633e3566a8d63 | |
parent | f975c76c75dff961669adbe6f8de66e022dfd7da (diff) | |
download | njw-website-4a43cd79f1cd901f7988260b1872d1d306f2a848.tar.bz2 njw-website-4a43cd79f1cd901f7988260b1872d1d306f2a848.zip |
First draft of unburn article, and article build infrastructure
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | TODO | 1 | ||||
-rw-r--r-- | articles/unburn.txt | 76 | ||||
-rwxr-xr-x | dirindex.sh | 22 |
5 files changed, 105 insertions, 0 deletions
@@ -5,5 +5,6 @@ index.ttl pubs/index.txt pubs/*.pdf +articles/index.txt !includes/*.xml @@ -10,6 +10,7 @@ BIB=pubs/index.ttl BIBTXT=pubs/index.txt PAGES=$(shell find . -name '*.txt' ! -name 'robots.txt' ! -name $(RSS)) $(BIBTXT) PUBS=$(shell find ./pubs/ -name '*.txt' ! -name 'index.*') +ARTS=$(shell find ./articles/ -name '*.txt' ! -name 'index.*') EXTRAS=$(shell find . -name '*.css') card.ttl TARGETS=$(PAGES:.txt=.html) $(RSS) $(BIBTXT) GZIP=$(PAGES:=.gz) $(TARGETS:=.gz) $(EXTRAS:=.gz) $(BIB:=.gz) @@ -50,6 +51,10 @@ pubs/index.txt: $(BIB) echo making $@ sh bibtotxt.sh $< > $@ +articles/index.txt: $(ARTS) + echo making $@ + sh dirindex.sh articles > $@ + clean: rm -f -- $(TARGETS) $(GZIP) @@ -0,0 +1 @@ +automatically generate the tex from markdown diff --git a/articles/unburn.txt b/articles/unburn.txt new file mode 100644 index 0000000..9fdd9ab --- /dev/null +++ b/articles/unburn.txt @@ -0,0 +1,76 @@ +Unburn +======================================================================= + +### How and why to eschew feedburner + +Feedburner is fucked up. It is a way of proxying feeds through their +centralised service for purposes of surveillance and advertising. It +is owned and operated by Google, so it's very likely that the data +collected about your reading habits is linked with the existing profile +Google has on you. + +## Background + +Feeds are not supposed to be like this. The web is not supposed to be +like this. The web is decentralised. Feeds make it easy to quickly +collect information from many different places together. + +The decentralisation of the web makes it difficult for someone to +find out all of the different websites you visit (except by +internet service providers and those with influence over them, +though this can be defeated using [Tor](https://www.torproject.org).) +This makes practical surveillance of your reading habits difficult. +Decentralisation also creates a resiliant infrastructure which is very +difficult to censor. + +## The problem + +Feedburner seeks to disrupt this in the name of profit. It offers +website owners a way of sending all requests for their feeds through +a central website. In exchange they offer website owners the ability +to inject advertising into feeds and view more information about the +readers of their website. Feedburner collect and analyse information +about each readers' habits, which they use to better divert readers +attention to the commercial, either directly through their own +adverts, or by selling detailed reader profiles to anybody +willing to pay. + +To summarise; feedburner surveils your reading habits, sharing them +with anyone powerful enough to pay, undermines the censorship +resistant infrastructure of the web, and interrupts your reading +with adverts. + +## The solution + +Fortunately it is quite easy to defeat the redirects to feedburner. + +Firstly though we need to find out which feeds are redirected through +feedburner. This script will print any url from the file 'urls' which +currently goes through feedburner: + + #!/bin/sh + urlfile=urls + sed -e '/^#/d' -e '/^$/d' < $urlfile | awk '{print $1}' \ + | while read u; do + fb=`curl -s -I $u | grep -c feedburner` + test $fb -gt 0 && echo $u needs unburning + done + +Now you know the feeds to deal with, you can go ahead and unburn them. + +The key is to claim to be feedburner to the website, and it will +dutifully let you through to the real feeds. Do this by setting the +User-Agent string to 'feedburner' in your HTTP request. + +If using a newsreader which supports Snownews extensions, this is easy +to integrate. Create a simple shell script called unburn.sh: + + !#/bin/sh + curl -s -A 'feedburner' "$1"` + +Then replace the url entry in your newsreader with +`"exec:sh unburn.sh http://feedurl/"` + +Other newsreaders will have different procedures, but the same +principle applies; just set the User-Agent header string to +'feedburner'. diff --git a/dirindex.sh b/dirindex.sh new file mode 100755 index 0000000..127a4c0 --- /dev/null +++ b/dirindex.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +t=`echo $1 | sed -e 's/.*\/\([^\/]*\)/\1/' -e 's/^./\U&/g'` +echo "$t" +echo "=======================================================================" +echo "" + +# list of files sorted by modtime +find $1 -type f -name '*.txt' ! -name 'index.*' -printf '%T@ %p\n' \ +| sort -r -n | awk '{print $2}' | while read f; do + reluri=`echo $f | sed 's/.*\/\([^\/]*\)\.txt/\1/'` + title=`sed -e 's/# //' -e 1q < $f` + + echo -n "- [$title]($reluri)" + if test `grep -c '^### ' < $f` -ne 0; then + subtitle=`sed -e 's/### //' -e 4q < $f | tail -n 1` + echo -n ": $subtitle" + fi + echo "" +done + +exit 0 |