The internet as we know it is under threat as never before. Surveillance, government censorship and secret corporate power plays threaten to destroy the Internet as a free and open platform for communication.

Much of the problem originates from the fact that the Internet has become ever increasingly centralised. In recent years, powerful encumbered players and elites have seen their power threatened, and have systematically attempted to “manage” the internet.

Communication and the free flow of information is too important a thing to allow to be threatened in such a way, so is it time that the citizens took control?

Citizen network

So, here’s a few thoughts on what this might look, and what I would like to see.

What I’d like to see are a range of local mesh networks grow up, providing free local connectivity to users. Initially, these will be highly local, but as the edges of the network expand, they’ll start to see other local networks and automatically negotiate routing between them. For networks further afield, perhaps an edge node which also has internet connectivity could provide a tunnelled link over the wider internet.

Hard encryption should be baked in, rather than added as an afterthought, and the network should aim for a situation where no unencrypted traffic is seen.

It should be possible to construct this sort of network with inexpensive and freely available hardware and software; perhaps, for small areas, a network of wifi repeaters, and for larger links perhaps a mixture of technologies – inter-network radio or microwave links, or even laying of fibre depending on the budget of those involved.

The goals of these networks should be to provide free access to anyone, and freedom for anyone to run a node on the network. With any luck, this will eventually kill the ISP business, and, in the UK at least, break BT’s stranglehold on connectivity.

There are a few local net projects about of course (they’re quite popular in Greece, apparently), but so far I don’t think we’ve seen much of an attempt to build them elsewhere, or to connect them together.

It’s a big job, but we built the Internet once, could we do it again?

Today is The day we fight back.

The day we fight back” is a international day of activism, held on the anniversary of Aaron Swartz‘s death. Swartz was an American computer programmer, writer and political activist who was driven to suicide by bullying from the US government, after he attempted to make public a number of scientific journals (the copyright wars now have a body count, read more, it’s horrific.)

On this day we commemorate Swartz’s death by holding an international day of protest against the illegal mass surveillance programs, conducted by the NSA and GCHQ (as well as others), that are used to invade the private lives of everyone on the planet, as revealed by whistle blower Edward Snowden.

The NSA and GCHQ, among other things, have attempted to subvert the technologies that we all use – to keep our medical records safe, to communicate in private about sensitive matters, to shop and bank securely online. In short, they have conspired (and succeeded) in making the internet a less safe place for you and your family, so it is fitting that today is also Safer Internet day.

So, today, do something to make the Internet a safe place for you and your family to work and play. Fight back.

elgg_logo1 Here’s the scenario; you’re a developer and you’ve been asked to do some work on an existing Elgg site, or you’ve built an Elgg site with some complex plugin interdependencies that you need to copy on to a live site.

In both cases, this primarily involves copying the source code and Elgg database from one site to another, here’s how…

Source code and database

  1. Install the source code for your project; scp it from the other site, git clone –recursive, whatever…
  2. On the site you’re copying, take a dump of the database. You can look in your engine/settings.php for the database username and password:

    mysqldump -u your-db-user -p elgg_database > database-dump.sql

  3. Copy this file onto your new host.
  4. Create a new database and install the Elgg database into it, in the mysql client do the following:

    create database new_elgg_database;
    grant all on new_elgg_database.* to `db_username`@`localhost` identified by 'db-password';
    use new_elgg_database;
    source /path/to/database-dump.sql

  5. You should now have a local copy of the elgg database installed, but in order for it to work you need to change a few paths. Firstly, alter your dataroot and site location details in your prefix_datalists table:

    update elggdatalists set value="/path/to/elgg/" where name="path";
    update elggdatalists set value="/path/to/dataroot/" where name="dataroot";

    Don’t forget the trailing slash on the paths!

  6. Next, you need to update the site url in the site object stored in the prefix_sites_entity table. For the vast majority of people (who only have one site object) this will be straightforward, for others, you might have to use a slightly different query in order to get all sites working as expected.

    update elggsites_entity set url="http://localhost/path/to/site/";

    Again, don’t forget the trailing slash on the URL!

  7. Finally, alter your copy of engine/settings.php to reflect your new database details.

When I view my site, all the CSS is broken!

This is almost certainly a mod-rewrite problem.

  • Firstly, check that it’s installed and enabled, and that overrides are enabled for your site URL (common problem if installing into ~/public_html).
  • Next, make sure that your RewriteBase is configured. If you’re installing into a subdirectory on a domain (e.g. http://localhost/~marcus/elgg/) you’ll need to set the RewriteBase in your .htaccess file accordingly, in the case of my example, RewriteBase /~marcus/elgg/

Files

The above should get you up and running with a usable site for testing, however if you want to fully migrate a site, you’ll also need to copy the data directory across.

  1. Using rsync or similar copy the complete data directory from your old site’s data directory to the new.
  2. Ensure that the directory, subdirectories and files are read and writeable by your web server’s user.
  3. Flush the caches. This is important since Elgg caches the locations of template files and other data in the data directory, which obviously will cause issues if you copy a cache file from another location! If the admin panel has become unavailable at this point, deleting the system_cache directory from dataroot by hand will often restore it.

Happy hacking!