2 days to save the internet!!



On 5 July, the European Parliament is voting on a copyright directive that, if passed, threatens the existence of the internet as we know it.  This isn’t hyperbole:

  • It will force online platforms to vet uploaded content for copyright violations.  Sites such as Youtube are able to automate this work, which results in a lot of false positives.  Smaller platforms might have to sort uploads by hand, which would be impossible for most sites
  • Artists and others who remix content, share it or create parodies of others’ material will be criminalised by this directive
  • Mining of text and data-sets will be legal only for scientific research institutions; other people, such as journalists, librarians and independent scientists will no longer be allowed to data-mine, regardless of their legitimate interest

These are only a few of the harmful effects of the copyright directive.  We all need to protest this bill as it threatens the open internet, not only in Europe but world-wide.  Changecopyright.org are helping us oppose the directive, by giving us all free telephone calls, to call the European Parliament and tell them to vote against Article 13.  They even provide callers with a script, if you don’t know what to say.  Go to changecopyright.org for information.  And don’t delay: the European Parliament votes on this on 5 July!!


Hunt for free SMS


I was using afreesms.com, but for some reason I got barred! So I googled for another free service, and the first tutorial got me to install Bluestacks – an android emulator – and an app called TextMe.


TextMe – Useful if you live in “the US, Canada & More”

Yeah, I saw that it said “Send free texts to your friends in the US, Canada & More!”  I just assumed that “& More” included Europe FFS! I mean, it knew I was in the UK and slipped me geo-located ads…


But I was wrong.  US and Canada… And the More?  Not Europe, not the UK.  It’d be cool for users in the US and Canada for sure.  Apparently you can send and even receive SMS on your free new number!

No good for me though.  Time wasted.  So let’s make up for it by finding a solution to my self-imposed goal – sending texts for free to UK numbers.

I decided to keep to BlueStacks, figuring that phones are natural text-senders.  So I googled appropriately and founds this:


So I followed the instructions, configured the app, matched my phone number with SMS verification… and that was the only text message that emanated from Bluestacks.  Shubham Kedia was rewarded with free texts on his laptop, but I wasn’t.  😦

In the end I found my free SMS… and more!  Actual phone calls! For free!


Free SMS… and calls! And P2P video chats and file-sharing! For free! WTF???

Globfone.com is wicked.  Free international VOIP calls FFS!!  Okay, so they are time-restricted, but it’s still there to use for free.  And the peer-to-peer stuff looks like it’s cool, though I haven’t tried it myself.

Anyway, I did it.. eventually…  Got free text messages from my laptop.  Hurray!!!!


Python: Automated login to local hot spot



I’ve been using a BTWifi-with-FON hot spot for internet access.  The way it works is: user clicks on connect in wifi manager, then browses to https://www.btopenzone.com:8443/home, fills in the form with User email address and Password.  This lets the user access the internet for anything between 1 and 3 hours, depending on time of day and day of week.  Then access runs out and the user must sign in again.

If you’re using the hotspot for an extended period of time, having to go through this palaver can be pretty irritating.  Luckily I’ve started learning python, which is an excellent language for automating this kind of procedure.  So this is the script I have written to make my use of the hot spot a little less stressful:

import pymsgbox
import requests
import time
import sys

def log_in():

    url = “https://www.btopenzone.com:8443/tbbLogon”
    values = {“username”: “foo@bar.com”,
    “password”: “foobar”}
    requests.post(url, data=values)

def vpn_check():
    p = requests.get(“http://www.icanhazip.com/”)
    ip = p.text.rstrip()
    if ip == “!!!.!!!.!!!.!!!”:
        # uncomment line below for vpn connection confirmation
        #pymsgbox.native.alert(“Logged into VPN”, t)

test_url = ‘https://www.btopenzone.com:8443/home’
response = requests.get(test_url)
html = response.content

page_start = str(html[0:1000])

t = time.strftime(“%X”)

if “DANTE” not in page_start:
    pymsgbox.native.alert(“Signed OUT, click me to sort it”, t)
    #uncomment following lines for signed-in confirmation
    #pymsgbox.native.alert(“Signed in”, t)

At the top of the script I import the modules I need. Pymsgbox provides pop-up message functionality. Requests handles the webpage parsing and filling in the online form.  Time enables the script to display the time in the pop-up boxes. And it uses sys so it can drop out of the vpn_check() function.

Next up, it defines the log_in() function.  Although the user navigates to https://www.btopenzone.com:8443/home to sign in, the form url is http://www.btopenzone.com:8443/tbbLogon.  The values to be provided are username (the user’s email address) and password (a password).  According to the ancient custom, here I have used foo@bar.com as user’s email address, and the password is foobarRequests delivers these values to the form url.

The script goes on to define the vpn_check() function. As this is a public wifi hotspot I use a vpn service, Invisible Browsing VPN aka ibVPN.  The vpn_check() function checks whether the computer is using a vpn by comparing the public ip address to that used by the vpn service.  Here the vpn ip address is represented by X.X.X.X.  If the ip address is the same as the vpn’s address, the script terminates.

Now the script proper starts.  It checks whether we are already signed in to the BTWifi service.  This is performed by going to a particular url – https://www.btopenzone.com:8443/home and examining the html source code.  If the computer is already signed in, that webpage will redirecte us to http://home.bt.com/bt-wifi-01364197228851.  The first thousand characters of that page’s html source code contains the string “DANTE”.  If the string is present, we know we are signed in and the script terminates.  If the string is not present, the computer is either using a vpn or is not signed in to BTWifi.


So the script performs the vpn_check(), using the online service at http://www.icanhazip.com to check the computer’s public ip address.  If this matches the vpn ip address, X.X.X.X we know the computer is signed into BTWifi and using the vpn.  If the public ip address does not match the vpn ip address, we deduce that we are not using the vpn and therefore we are not signed in.  So a pop-up message tells the user that we are not signed in, and if the user wants to sign in he should click the OK button.  If he clicks the button, the script goes on to the log_in() function, to sign in to BTWifi.

With log_in() the script navigates to the sign-in form at https://www.btopenzone.com:8443/TBBLogon, and fills in the form fields with the values.  We are signed in, and the script terminates.

On my computers, which use either Windows 7 or Windows 8.1 operating systems, I have scheduled this script to run every 5 minutes.  It regularly checks the computer’s signed-in status, putting up a message if the computer is no longer signed in. The message box says : “Signed OUT, click me to sort it.” Click the button and the script signs into the wifi.  This is much less stressful than having the palaver of going to the wifi sign-in page and dealing with the form.

This script is very much a work in progress.  Look at the code and you will see a number of lines commented out.  Uncommented, these lines of code provide confirmation when the script finds out it is signed into the wifi or using the vpn.  These were used for testing.  I intend to comment out the message that we are not signed in, and have the script deal with it in the background.  This will allow me to work online or watch a streaming video without interruption – unless a connection problem arises!

I have found that sometimes there is a connection error, python raises an exception and program exception is interrupted. If I’m running the script in IDLE the exception output is printed in the interactive shell, but if it is working in the background, scheduled to run every 5 minutes I won’t get any error info.  I am going to see if a try/except block will deal with it. I plan to have basic error info printed in a pymsgbox pop-up.  I can then investigate what’s up with the connection, whether the problem is with the hot-spot or my own hardware. Sometimes when I’m experiencing connection problems, I run diagnostics on network connection and Windows resets my network adapter and that fixes the problem!

If anyone has any suggestions about this script please let us know in Comments.  Constructive criticism is welcome.  If anyone else finds this helpful (perhaps you also use a BTWifi-with-FON hot spot?), let us know!  And maybe buy me a coffee…?  🙂

Buy Me A Coffee

RFC for new HTTP codes


HTTP error code, shamelessly borrowed from webopedia.com. Thanks Webopedia!!

I was watching some DEFCON talks on Youtube and came across a reference to an RFC for “a new series of HTTP status codes covering developer fouls”, the 7XX range.  Here are some examples:

701 – Meh

718 – I am not a teapot

721 – Known Unknowns

722 – Unknown Unknowns

725 – It works on my machine

726 – It’s a feature, not a bug

739 – Fucking Windows


771 – Cached for too long

772 – Not cached long enough

773 – Not cached at all

774 – Why was this cached?

775 – Out of cash

786 – Try it now

791 – The Internet shut down due to copyright restrictions

796 – Some DNS fuckery idno

797 – This is the last page of the Internet. Go back!

RFC is by and copyright of John Barton 2012-17, released under Creative Commons license Attribution-NonCommercial-ShareAlike 4.0 International


The Cypherpunk Manifestos


Reading a lot about privacy and anonymity and cryptography and cryptocurrency and Darknet hidden services and Tor lately.  Something that has caught my attention is the Cypherpunk movement, and their manifestos.


Without anonymous currency, we don’t have real anonymity

The earliest one seems to be The Crypto Anarchist’s Manifesto, written by Timothy C May in 1988.  Here’s a link to it.  Written thirty years ago, but very of the moment even now.  Read how it opens:

Computer technology is on the verge of providing the ability for individuals and groups to communicate and interact with each other in a totally anonymous manner. Two persons may exchange messages, conduct business, and negotiate electronic contracts without ever knowing the True Name, or legal identity, of the other. Interactions over networks will be untraceable, via extensive re-routing of encrypted packets and tamper-proof boxes which implement cryptographic protocols with nearly perfect assurance against any tampering. Reputations will be of central importance, far more important in dealings than even the credit ratings of today. These developments will alter completely the nature of government regulation, the ability to tax and control economic interactions, the ability to keep information secret, and will even alter the nature of trust and reputation.

A cypherpunk’s manifesto” by Eric Hughes, is also very relevant, even though it is 26 years old.  Here’s a bit:

Cypherpunks write code. We know that someone has to write software to defend privacy, and since we can’t get privacy unless we all do, we’re going to write it. We publish our code so that our fellow Cypherpunks may practice and play with it. Our code is free for all to use, worldwide. We don’t much care if you don’t approve of the software we write. We know that software can’t be destroyed and that a widely dispersed system can’t be shut down.

Cypherpunks deplore regulations on cryptography, for encryption is fundamentally a private act. The act of encryption, in fact, removes information from the public realm. Even laws against cryptography reach only so far as a nation’s border and the arm of its violence. Cryptography will ineluctably spread over the whole globe, and with it the anonymous transactions systems that it makes possible.

This is stuff that could have been written yesterday.  The technologies required for true anonymity have broken out fairly recently: encryption, cryptocurrency, all this has come to a head now.  If we don’t seize this opportunity, maybe we don’t deserve it.


Darknet part 2: the Silk Road


Alex Winter, director of “The Deep Web”, with co-star from the Bill & Ted movies Keanu Reeves

Welcome to part 2 of my mini-series of content related to the Darknet.  This time I want to share with you the documentary film “The Deep Web” directed by Alex Winter.  Its subject is the Silk Road and it poses some important questions about who did what and why.  It’s an interesting and entertaining film.  It questions some of the so-called “facts” we have taken for granted about the hidden marketplace.  And we wonder: who really was “Dread Pirate Roberts”, the shadowy “leader” of the Silk Road?

Coming soon: Darknet users who were caught, and what they did wrong


Darknet Part 1: What is the darknet and why should I care?



Welcome to Part 1 of my guide to the Darknet.  Well, I say “mine” but it’s actually by many people.  And, just so you all know I’m not trying to pass off this guide as my own words, I’m going to show the words actually coming out of their true creators’ mouths, thanks to the miracle of video streaming over the internet! Thanks be to Youtube,eh!!

Okay, part 1 of this series is a primer on the Deep Web and the Darknet.  It’s a TEDx talk by Alex Winter (of Bill & Ted fame), entitled “The Darknet isn’t what you think”.  There are some misconception about what illegal services were available through the Silk Road website.  For instance child pornography was banned.  Stolen goods weren’t allowed.  Ads for contract killers weren’t allowed.

Anyway, check out the vid.  Enjoy!

Next time: A film about the rise and fall of the Silk Road


%d bloggers like this: