Ubuntu Icons Directory Routing

I had the weirdest problem the other day so I thought I’d write it down! I uploaded a toy script for someone, but it had images in it and they wouldn’t load. The image files existed, and I could request everything around them, files in other subdirectories were okay; the same files in other subdirectories also served correctly. Yet in my error logs I just had lots of:

File does not exist: /usr/share/apache2/icons/ ...

Which was really odd, because my webroot is somewhere else completely!

Eventually I spotted a /icons entry in the configuration for mod_alias in apache, which intercepts all requests to /icons on any virtual host, and rewrites it. Err, thanks? Renaming the directory to “images” solved the problem in this instance, and I hope if you googled for an error message, you will find this page and be able to fix it equally quickly :)

Datapoint: Weather API from the MetOffice

I’m working on a little hobby project which needs to know what the weather is going to be. I had a look around and noticed that the MetOffice had released a new API called DataPoint. They have a selection of APIs, including some map overlays and some actual weather data (more on that another day) but I was especially charmed by their text APIs – this is basically the basis of weather forecasts used everywhere :)
Continue reading

Managing PHP 5.4 Extensions on Ubuntu

My shiny new VPS* runs Ubuntu 12.10 (official subtitle: Quantal Queztal. Local nickname: Quirky Kestrel) and therefore has PHP 5.4 installed. It’s very new so every command I type is missing, and today I realised that included a PECL module (pecl_http, of course). So I aptitude install php5-pear and then get tangled in dev packages (clue: look which libcurl you have already installed to figure out which of a long list of -dev packages to choose), managing finally to emerge with a pecl install http that completes successfully with the words:

configuration option "php_ini" is not set to php.ini location
You should add "extension=http.so" to php.ini

I’ve been using Ubuntu for some time however, and we don’t put settings straight into php.ini, there’s a directory called /etc/php5/conf.d/ where all the various module configurations live, or you can enable things just for when PHP is called by apache or from the CLI. However today I hopped into /etc/php5/ and saw this:

.
├── apache2
├── cli
├── conf.d
└── mods-available

Hmmm … mods-available ? Continue reading

Unpacking and Editing a Chrome Extension

I’ve been having an issue with one of my chrome extensions recently – the keyboard navigation extension that I blogged about previously. This is a huge problem for me because without this extension, I can’t “click” on anything on the internet! It was working on some pages, but on others it was drawing elements but not styling them correctly. The extension doesn’t seem to be actively maintained, so I realised I was going to have to dive into the extension itself to understand the problems and have any chance of fixing it. Hurrah for open source software (not that I really write any js but I figured if I could understand the problem, maybe I could ask more intelligent questions) Continue reading

From MySQL to MailChimp via CSV

Don’t you hate disclaimers? I do, but before I do anything else, I must ask that you don’t use the techniques below unless you are emailing responsibly.

Today I needed to pull email addresses for people who had signed up to a thing out of MySQL and into MailChimp so that I could actually email them about the thing. MySQL actually has a very cute feature for exporting the results of an SQL query as a CSV file, which I had to look up to remember how to do it. It goes something like this: Continue reading

Teaching Those Beginning The Journey

Becoming a master developer is like becoming a master craftsman; you just can’t rush the process. You learn the basics, apply those skills, and over time master them and adapt them to be your own. As time goes on, you take on bigger and more complicated tasks, and apply appropriate skills to those, and so on. Our journey as developers is really much the same and yet sometimes I feel that we don’t help those at the very start of the journey as much as we could. Continue reading

A Little More OOP in PHP

This post forms part of a series of articles about using PHP to do objected oriented programming, or OOP. They were originally published elsewhere but are no longer available at that location, so I’m reposting them here.

This post follows an earlier entry introducing the basics OOP and what that looks like in PHP. This time around we’ll look at some more advanced concepts and some more practical examples of building code, covering use of constructors and how to add access modifiers in to control how calling code can operate on your objects. We’ll also show off how to create static methods and properties and, perhaps more importantly, illustrate applications of these features.

Continue reading

PHP at FOSDEM: Call for Papers

There’s an excellent open source conference that happens every year in Brussels in February, called FOSDEM. It consists of some main tracks, plus a series of sub-rooms, where various technical communities are given some space to use for whichever talks they choose; the schedules are centralised so that people can pop in and visit any talks in any room that looks interesting. This year, for the first time, this includes a “PHP and Friends” room – I’ll be organising this and I’m looking for your input, please.

Basically, we need to get some great submissions, so that when we come to choose the schedule (and it is only one track, one day, there’s only a few slots available), we can put together something really fitting to showcase PHP for a wider audience than a PHP conference. Selection will be done on the basis of talk topic, abstract and length in the first instance – we’ll only take into account the actual speakers when we’re curating the final list.

Key things you need to know:

  • link to call for papers form (google forms)
  • Event is 2nd (and 3rd, but the PHP room is on the 2nd) of February 2013, at ULB campus Solbosh in Brussels, Belgium
  • No expenses will be covered by the event
  • There’s also a Call for Stands if you have a project that you would like to represent there
  • If you’re not speaking, come and join us anyway!

Confident Coding Report

Last week I had the pleasure of speaking at Confident Coding in San Francisco. This was a one-day event for mostly front-end developers, covering the things everyone seems to know but which seem like silly questions to ask – and it has an all-female speaker lineup.
Continue reading

Ada Lovelace Day 2012: Estelle Weyl

Happy Ada Lovelace day! Technically that’s in about half an hour as I write this in the UK but as I’m speaking at FOWA tomorrow morning, I will post this now before I get distracted. Ada Lovelace day is a day of celebrating women in science and technology, and one of the best ways to celebrate those women is to tell their stories. Every year, many woman will tell the story of a woman who has inspired them – you can find more stories on the FindingAda site.