I’ve submitted a pull request over on the Known project git repo that allows you to specify a CURL proxy connect string (which has since been merged).

If specified, this connection string will make all web service and web mention calls be sent via a proxy server.

This was a relatively small change, but is useful in many ways – for example, for communicating through a corporate firewall. It is also provides a way of routing Known to Known communication over TOR.

Why would you want to do this?

Well, this is part of an ongoing effort to harden Known against the new attack realities we face on the internet in the 21st century.

One of the things that the Snowden documents have revealed, is that the bad guys are particularly interested in harvesting everyone’s social graph – who knows who – so that they can, among other things, automate guilt by association.

Going to some lengths to hide this information from an attacker sitting on the wire, is therefore, a prudent thing to do.

Ok, how?

  • Install the TOR proxy on your server; this may just be as simple as typing apt-get install tor.
  • By default the tor package only installs the client, so you’ll need to modify the config to open up a SOCKS relay.
  • Next, tell your known site to use this relay; open your config.ini and set the proxy_string:
proxy_string = 'socks5://path.to.tor.proxy:9100'

Gotchas

Routing over TOR is only part of the solution of course. For the communication to be properly safe, you should also encrypt the communication using HTTPS.

Unfortunately, whether a connection is conducted over encrypted HTTPS or not is largely up to your friend’s webserver. But, you wouldn’t be silly enough to run unencrypted, right?

Given the numbers of nasty attacks that can be launched against an unencrypted web connection, the internet at large is now moving towards deprecating unencrypted port 80 HTTP. Google search results will now give preferential treatment to encrypted websites, so that’s another reason!

So, don’t be part of the problem. Have fun!

This article got me pondering on how one might start building a distributed “related article” network, but without relying on a centralised silo.

Related articles on the same site is largely a solved problem, but at the moment, to do the similar thing with multiple sites requires a centralised service. Centralisation is bad, as we’ve discussed before, so how could you build a federated network of sites, all referring people between each other in an automated but meaningful way?

My current thinking is to leverage PuSH; Alice lists sites to which they’d like to receive related articles from, these could be individual sites or even a centralised aggregator. Alice’s site then subscribes to the PuSH hub and starts receiving updates, when these updates are received they can be passed through to whatever comparison algorithm you’re using – I’m thinking of adapting the wordpress one for this blog.

Should be fairly straightforward to implement, and would provide a simple way to federate content within a group of individuals.

Anyone working on something like this, or shall I drop this into my todo list?

So, I recently got a notification that my Hardware Enablement Stack (HWE) was no longer going to be supported, so I had to perform an upgrade. I didn’t have time to move to 14.04, so I just did the HWE upgrade.

Unfortunately when I rebooted, I no longer had 3D support, and worse, my twin monitor setup was no longer supported (or rather, both monitors were active, but showed the same thing!).

Diagnosis

I am rocking a NVIDIA GeForce GT 610, which, although it’s a basic card, doesn’t seem to be supported very well by Ubuntu’s native Nvidia drivers. When I ran nvidia-detector, no cards were found.

Since my card was working before, I figured it was probably just a driver problem.

Solution

The solution I used for this was to update the Nvidia drivers to use the Nvidia proprietary drivers. Here’s how…

  1. First, visit the Nvidia website and use the wizard to download the correct driver bundle for your card.
  2. Hit Ctrl-Alt-F1 to enter a console
  3. Uninstall the existing Nvidia drivers: sudo apt-get remove --purge nvidia-*
  4. Move the old Xorg config out of the way: sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.orig1
  5. Stop X: sudo stop lightdm
  6. Run the NVidia installer (Note, you may need to reboot and re-run steps 5 & 6, as the installer may have to disable some kernel modules). Save yourself a headache, and be sure to build the DKMS module, so that changes aren’t lost when ubuntu updates itself.
  7. Reboot

All going well, you should now have working Nvidia drivers with two screen support!