This website recently got a major rebuild; if you're missing something, let Lorna know.

    Category: tech


  1. The Quest for a Payment Gateway


    Although I've been "making websites" for a lot of years, I've mostly avoided the kind where people actually pay for anything. The result of this is that I built Bitestats (elevator pitch: sign up and get a printable summary report of your web stats every month by email) but then got busy and never built the bit where people can actually pay to use it.

    I recently carved out some time to correct this situation, and fell into an absolute pit of confusion when I tried to figure out what my options even were. My requirements are that my customers are global, I am UK-based, people will set up a regular subscription, and I don't have (and I think I don't want) a merchant account at this point. I'm not PCI compliant and have no intention ever to attempt that. This post is an attempt to round up some things I found out along the way.

    Read more

  2. Two Years of Trading


    Two years ago I quite literally gave up the day job. I had no clients, no experience of being anything other than a salaried employee, but I did have an urgent need for change! Two years on I've just done the end-of-the-year reporting and I'm struck by how far I've come and how much the numbers surprise me (there are no actual numbers in this post, it doesn't feel appropriate somehow - but there are graphs!).

    Read more

  3. Lesson Learned: Look in the Pull Request Queue


    If you follow me on twitter you might have seen some overexcitement when I managed to edit and compile a vala application recently. I use a great deal of open source tools, but many of them don't seem open to me, because I don't have the skills to modify the code. Regardless of that, it's still vitally important that it is open (this is a whole other post and I'll avoid that tangent right now).

    Read more

  4. Monday Git Tips


    One project I'm working on at the moment involves finding my way around changes in a codebase that isn't mine - and it's quite large. I was doing pretty well with a combination of git log and git show and in particular two of my favourite existing tricks:

    Read more

  5. Pushing to Different Git Remotes


    Just a quick tip because I'm working on a different git workflow at the moment with one of my clients, and it struck me that this usage pattern is something I don't usually write or speak about at all. Most git setups have one "main" repository, and either:

    • there is a gatekeeper that manages merging to here

    • all developers have write access

    In this case, I'm working with the second option, so I'm pushing to the upstream repo. I'm also pushing to a live repository as well, so I thought I'd outline the commands I'm using. The setup here is the main github repo, and I have my own fork of that, which is cloned onto my laptop. I can push to both that main repo, which I'll call "upstream" (because the github documentation does and it makes sense!) and another repo that I'll call "live". All in all it looks something like this:

    image1

    Read more

  6. Downloading Files from Faspex


    This week, someone sent me a very large file using something called faspex. To begin with, it sent me a link to click on to download my file, but then started telling me "for best results, install a plugin". And apparently "for best results" means "to download this file in any way".

    Read more

  7. How the Web Looks to Me


    It feels like I've tried to field the question about how I can use the web without using a mouse (or trackpad or equivalent), without "pointing", multiple times in the last couple of weeks. The answer is quite visual so I thought I'd share. This is how the web looks …

    Read more

  8. Taking on a Database Change Process


    I wrote recently about deployment and I got some followup questions about managing database changes when you've got multiple versions of code hanging around.

    There are two things you need to come to terms with:

    • There is no silver bullet

    • Rigid process is required

    Read more

  9. Apache Config: .htaccess or Virtual Hosts?


    How to set apache configuration for your web projects? Some settings have to be in the main apache config or in a virtual host, but for many others you have two good choices; either use an `.htaccess <http://httpd.apache.org/docs/2.2/configuring.html#htaccess>`__ file, or …

    Read more

  10. Adding Custom Headers to Every Request with Chrome


    image1I'm working on an API which uses OAuth2, but it also has an HTML output handler so I actually do quite a lot of my development in the browser for read-only stuff (I wrote an earlier article about output handlers including the HTML output handler). I fell across an extension …

    Read more

  11. SQL JOINing a Table to Itself


    Getting two sets of information from one table in a select statement often leads people to write subselects, but it really doesn't matter that this is the same table twice, we can just give it a new alias and treat it as if it were a different table. This is one of those techniques where, once you've seen it, it's really obvious, but until that point it can be very confusing. I explained this to someone else recently, so I thought I'd capture it here in case it's helpful to anyone else.

    Consider that tried-and-tested example: employees and managers. Here's the staff table from the database (today's imaginary data isn't particularly imaginative, sorry):

    Read more

  12. 5 Things To Do With A Training Budget of Zero


    Training budgets are never generous enough to give us everything we think we need to keep our skill sets improving, however many people will be lucky enough to get something. If your training budget totals precisely zero pounds (or euros, or dollars, or whatever your local currency is), what do you do? Sulk until they give you something more? Or make the most of what you have?

    Read more

17 of 39