WordPress network domain mapping fix

I’ve just been on an interesting little journey that started last September when I discovered that some of the sites on one of my WordPress networks had stopped working.

You might enjoy a little schadenfreude if I admit now that it was because I had a brilliant idea and did something stupid. I’ve posted details here in the hope that (a) if I do it again, I can find out how to fix it, and (b) if you’ve done it too, you’re closer to the solution than I have been for the past six months. I’ve ‘genericed’ the details to help you map it to your own setup. Continue reading “WordPress network domain mapping fix”

Beeswing: a brilliant critical literacy resource in the making

beeswing
(c) 2013 Jack King-Spooner
Used without permission but I hope he doesn’t mind

I stumbled across an incredible project yesterday whilst lobbing a few quid into the KickStarter kitty of the makers of The Seventh Guest 3: The Collector. I like T7G and its sister, the 11th Hour, because they are what I wish many more computer games were: things that help the player grow as a person instead of the vast majority of nasty, violent, dehumanising poison that infects the minds of so many young people.

The project I found is called Beeswing and is a creative development by Jack King-Spooner of a handcrafted role-playing game, without violence (or puzzles!), set in rural Scotland. Jack is creating “a world of intertwining stories” within a game setting using beautiful media such as watercolour pictures, graphite sketches and clay animation, all set to original music. From the kickstarter project page:

It is a story about the past, about community and childhood, attachment and growing up. Scottish folk tales, morally dubious parables, cloudy anecdotes and more contemporary stories of homelessness and immigration all combine to create a truly dynamic narrative.

This is lovely enough, but the thing that really caught my attention was the value in the dialogues within the stories: there is a depth to them that goes beyond what you might at first expect. Jack describes them as, “trues stories, blended with fiction”. I think this game will have potential to be of great value to teachers in developing connected thinking and critical literacy in children, and a capacity to see the world around them in much more richer terms. Here’s an example from the video on the kickstarter project page:

I like the scarecrow, I know what it means.
See the flowers in the field? The poppies and buttercups? Rare sight.
They mean there’s no pesticide in the fields.
No pesticide means insects.
Insects mean rooks and crows.
Rooks and crows mean scarecrows.
I like the scarecrow, I know what it means.

If you liked Inanimate Alice, you’re going to love this. Why not click the picture and go support Jack? You’ll get the game when it’s out next year and an opportunity to really develop the children you’re involved with. Hurry, there’s only a couple of weeks left.

Mavericks OSX 10.9 Update php fix

I updated to OSX 10.9 Mavericks this week, and as with all updates, it broke PHP. I run a local MAMP server for development purposes and it all works OK except that you have to re-enable PHP in the apache configuration file. I found a useful guide over at coolestguidesontheplanet.com which included these steps:

Open a terminal window and edit the httpd.conf file:

sudo nano /etc/apache2/httpd.conf

Uncomment this line:

LoadModule php5_module libexec/apache2/libphp5.so

Write out and save the file, then restart apache:

sudo apachectl restart

… and Robert’s your Mother’s Brother.

Code hacks: Internet Explorer Compatibility mode

guess-browserI’ve been developing a site for a national competition to be launched in October and ran into a little difficulty with Internet Explorer. Despite this browser losing ground amongst even the unthinking default user community, it is still sufficiently popular that I needed to look at the problem.

The site is running WordPress on a LAMP server using Konstantin Kovshenin‘s Expound theme. One of the testers noticed the letters “Ski” next to the Home menu item. Mousing over it produces a fleeting grey box to appear top left of the browser window. This turned out to be only visible in IE8, IE9 and IE 10 in “compatibility mode”, a feature of IE that allows the browser to render sites that are broken by IE’s shockingly poor implementation of standards, using a model from an earlier version. It’s what a code monkey might call a Kludge.

SkiThe “Ski” is in fact, the first few letters of “Skip to content”. It is one of several features of the site’s theme implementation which are broken in IE’s compatibility mode.

There are several suggestions in the forums designed to force IE into non-compatibility mode and render the site properly. Most rely on delivering a <Doctype> tag on the very first line, followed immediately by a X-UA-Compatible meta tag. Unless this tag is placed on the line immediately after the Doctype tag, IE ignores it.

I considered trying to knock up a plugin to make this work in some kind of customisable way. Editing the theme’s header.php file seemed doomed to be overwritten on the next update, and branching a child theme felt like too much hard work for such a small fix to accommodate a browser that I personally would like everyone to stop using. Part of me wants all sites to look broken when viewed with IE so as to encourage the masses to make an intelligent choice for once. Let’s not start talking about democracy.

Anyway, a little more digging found a really elegant solution which suited my particular needs from Reza Qorbani, which is to use the .htaccess file to have the Apache server sniff the browser and send the metatag. This is what I finished up with:

BrowserMatch MSIE best-standards-support
Header set X-UA-Compatible IE=edge env=best-standards-support

It works a treat. Thanks, Reza!

Pro Git and more MX DNS

Continuing the summer of code into the early autumn, I have been developing, enhancing and debugging the new server. New and migrated sites are stable and responding well within the resource limits I’ve chosen of 10GB disk, 50GB traffic (although we’re close to whacking this one) and 256/512 MB RAM/Swap space. Uptime has been 100% for over 60 days now.

Within the suite of services running on the server are database, web server, CGI, mail, stats and monitoring. What is not, is the DNS service, which I have learned to keep in a different place, with the registrar. Setting up reverse DNS for the mail service to work correctly is important: I discovered that one client had been having difficulties receiving mail from just one of his friends. This was because the MX DNS entry for his domain pointed to an IP address which some service providers will reject as it doesn’t comply with the RFC. Changing it to the host domain of the server’s IP, however, stopped all mail getting through to the client. This was finally resolved by pointing the MX record for the domain to the domain itself:

example.com. A     192.0.2.1
@            MX 10 example.com.

If you want to know how the Internet works, by the way, a really good place to start is the Internet Engineering Task Force (IETF). They have a good introduction here. Many internet standards are defined in RFC documents.

Other services on the server operate as database-driven php suites such as the WordPress CMS, Moodle, LimeSurvey or phpBB. All of these are subject to modifications, code hacks and tweaks to make them work to the needs of the site owner. Whilst the Parallels Plesk Panel allows install-at-a-click for many application suites, I prefer to manage the installation and customisation of these myself. Until now, I had used the download-unzip-upload over FTP method but I’m going to try using the more elegant command-line facility offered by Git. I’m getting started by using their excellent online documentation. This should allow me a much faster update route and potentially a way to be a better contributor to open source than the consumer I have been.

AudioBoo for Education

audioboo-t_7I’ve been a user of AudioBoo for some time now, and have recorded a few dozen commentaries, some of which have been listened to thousands of times. I find it an excellent tool for easy podcasting and most of my broadcasts are automatically cross-posted to iTunes and edutalk.cc. I’m pleased to find that audioBoo have launched this week a facility for educators who might consider the power of audio for their learners. From the announcement:

…we’re delighted to announce the launch of Audioboo for Education: a new initiative to help students and educators to enrich the learning experience and encourage conversation and debate through the power of audio.

Apart from ideas and examples of how audioBoo can be used to support and enhance learning, there’s also an intelligent and useful app for Edmodo, the VLE of choice for many teachers.

New channels of engagement are essential to the flipped classroom and the enabling of access to education on the learner’s terms, which is something that if you’re an educator and not driving it, then it will soon be driving you. Why not try it? It’s free, it’s easy and it offers leverage to your impact on learners: if you want an example, my most recent public talk has reached hundreds more through the podcast than it did in the flesh, so to speak.

A summer of code

anarchyThe summer has had me getting to grips with the nitty-gritty of internet web hosting, caused by a consolidation and move of all of the websites and services that I host to a new server. I had been using HostPapa in a shared environment for several years but the traffic and resource usage of these sites had been on the increase for about 18 months, to the point that HostPapa invited me to pack up and leave.

After a detailed survey of requirements and possible alternatives, I elected to move to the affordable but much more powerful next-step-up of a virtual private server (VPS) solution from HostingUK. I’ve known these guys since they set up business in the late 90’s and felt comfortable that I would get good support from the people behind the business. I haven’t been disappointed.

The new server runs CentOS 6.4, a version of the Red Hat Linux operating system and has the usual LAMP features of Apache Web server, mySQL and PHP, with the Parallels Plex 11 management panel.

My development has been firstly in the area of learning how to set it all up using the Plex panel: it’s a very powerful tool but it’s not quite plug-and-play. The DNS for each of the domains on the site is best managed at the registration server using their nameservers: they have redundancy built in and although the VPS can be its own NS, if it goes down for any reason, this can lead to problems with mail transport and SEO indexing. Within the DNS records for each domain, minimum configuration requires appropriate A, MX and CNAME  entries as well as TXT or SPF records to stop your mail from being forever consigned to the spam folder.

Further learning has included getting down and dirty with the *nix command line, from basic file operations to examining logs, setting up CRON and managing and installing further packages. I’ve installed Munin to help identify what normal operation looks like. One of the things that my new insight has given me is an appreciation of just how much sustained attack is endured by even the smallest of websites by the likes of Turkish, Chinese, North Korean and other interests. The importance of having decent passwords is underlined when you see 20,000 (yes, twenty thousand) attempts to guess the root password in a single day.

The summer of code has reminded me of what I’m best at, and what I enjoy doing.

And(roid) it’s STILL faulty

Switched my Nexus 7 on today for the first time in a little while today. I’ve got to the point now where I don’t use it much, as it’s such a flaky piece of junk. I can’t be relying on flaky pieces of junk. This is what I saw:

2013-05-24 00.06.37 2013-05-24 00.07.25 2013-05-24 00.07.56

It’s still faulty. Same fault I returned it for back in November. And again twice more since. This is seriously the worst product service I have ever had. And that’s coming from a guy who once bought a Lada. Get it sorted, please, Asus.

The Future is Technology? Don’t make me laugh.

The future is technology. So goes the idealistic vision of the future theme of edcmooc and the happy dreams of those who dream of a digital utopia in which our lives are enhanced by amazing geekery and augmented reality.

My world is different. Mine is a world in which technology doesn’t work. It claims to work but forgets to mention the endless hours you will spend trying to get it do what you thought, foolishly, that it would do. Don’t even mention the word “GLOW” in my presence.

I bought a Sony Bravia TV because it had internet connectivity. It does, sort of, but not the way I understood it. It connects to a half-rokuassed clunky version of the internet. It doesn’t, after all, play stuff from the web. I doesn’t let me browse. At all. I discover that I can jigger about with things to make it do that, sort of. I bought a Roku Media Streamer so I can stream digital media from my network to the TV. It does, sort of, but not the way I understood it. It has an interface clunkier than a clunky thing from clunky-land in the far forgotten time of the early nineties. I took it back. boxeeI bought a Boxee Box which according to the manufacturers, does all the things I want it to do. It does, sort of, but not the way I understood it. It falls over a lot. The display is intermittently broken and it switches sound output on and off suddenly, threatening my lovely expensive speakers (which were made in the 1970’s by the way and still work when not rapidly switched on and off by a dodgy boxee). I took it back.

I got an Asus Nexus Google 7 tablet which has had a flickering display fault since the day it arrived and despite being returned to the manufacturer twice, still has the fault. The audio output has never worked. I’m sending it back. Again.

The future may be technology but don’t you rely on it doing what you think it will do. It will, sort of, but not the way you understood it.

week3