-
Using mitmproxy reverse mode for API testing
29 June 2026
Read moremitmproxy is my preferred proxy for API testing these days. I'm using it mostly in reverse mode though, so I thought I'd capture my setup in case it's useful for anyone else. My main use case is to inspect the traffic coming into the API server and being returned, mostly when running tests against it. Where mitmproxy is typically used as a proxy to monitor traffic passing into/out of a client application, for this I'm concerned with the server's handling. Reverse mode lets me inspect and adjust the traffic as I go along. I start up the proxy, configure the tests to point to it instead of the actual server, and I'm all set.
-
Nested tags in OpenAPI 3.2
04 December 2025
Read moreOpenAPI has always had support for simple tags, but the OpenAPI 3.2 release brought in some serious tag upgrades including a summary field, a "kind" field with registry, - and the ability to nest tags which is the focus of today's post. If one level of organisation isn't enough for your API (and on bigger APIs I'd argue it shouldn't be) then the ability to indicate which tag is the parent of this tag will be a good feature to adopt when you upgrade your OpenAPI descriptions.
-
API Specificity with Overlays and Enums
21 July 2025
Read moreThe more I work on API standards, the more I realise how few teams understand that they can adopt the standards and, without breaking any contract, adapt them to make a strong interface for their own application. One of my favourite examples is to add enums where a standard interface cannot dictate the exact values, but in your own implementation it is very helpful to do so.
-
Use Database Connection Strings with Laravel 8
18 August 2021
Read moreI've been doing a lot of database stuff lately, and not much PHP, so when I returned to make my first Laravel project for a while, I had to check the docs to remind myself how some of this works. I noticed that the default approach to database credentials is still to use separate credentials for the host, port, and other variables. I'm using Aiven databases (because I work there and managed databases are great for demo apps as well as real ones!) which supply connection strings, but Laravel supports these too.
-
Neopixel Shelf
18 July 2020
Read moreIn these days of video calling in place of any other social contact, I've seen a lot of excellent video backgrounds. Perhaps I'm old-fashioned but I went the traditional route, and set up my computer close to a wall (so you can't see the mess in the room) and added a nice pinboard behind me. I looked a bit flat against the wall though, so I did what anyone else would do ... and built a handmade wooden shelf with neopixels in it!

-
Accessing Nested Config with Viper
25 June 2020
Read moreI'm writing a Go application that glues together a bunch of other things, so it has a whole bunch of basically unrelated config, dumped in a yaml file. I was struggling a little with this non-standard use of Viper but actually, it does everything I needed. And, presumaby, more besides. I thought I would put some examples here to show how to handle this.
-
Use a Local Version of a Library in Go
15 June 2020
Read moreI have a couple of projects in Go where I need to work with a branch that isn't the released version of a library that my code depends on. This happens when I'm the developer of the library and an application to use it, or when I'm a contributor to the library so I have my own fork and will want to check out branches to submit or test patches. Go has a pretty need way to allow this: using the replace keyword in the go.mod file.
-
A First Netlify Function in Golang
15 April 2020
Read moreI love all things serverless, and Netlify Functions is a neat and convenient way to access AWS Lambda. I do also love AWS Lambda but it's so powerful and flexible that creating something like a webhook receiver can be hard going by the time you have all the permissions and API Gateway setup sorted out - for a simple webhook receiver, Netlify functions is a nice and easy way to get going. Best of all: it supports Golang but the docs are very JS-heavy so I am writing my notes here in case I need to refer back to them some day.
-
Wget Direct to S3 with Golang Streams
08 April 2020
Read moreOne thing I find very elegant about working with golang is that it is very open minded about where data is flowing in from or going out to. I recently built an application that downloaded an audio file from one location and pushed it to s3 - and golang makes it very easy to do that without needing to write an intermediate file and then upload that. Here's my code, in case I need to do this again some day :)
-
HTTPMock for Testing a Golang API Client
30 March 2020
Read moreI'm working on an API client for some Nexmo APIs and having tests to work through the various responses that the API can return and check that it does what I expect has been very handy so I thought I'd share my thoughts. I've got a bit of a head start here too since the OpenAPI specs have example responses in them that I can grab and feed to the mocking tool I'm using in my tests!
-
Teach Your API Test Platform to Send Callbacks
18 February 2020
Read moreI already wrote about using Prism as an API test platform but I didn't include an example with callbacks so this post is to fill that gap! If you didn't read the previous post, the tl;dr is that Prism is a nodejs open source tool that can take your OpenAPI specification and then do an impression of your live API, validating the API calls sent to it and responding with the example data described in the spec. It can also follow up the API response and send an HTTP request of its own to mock the callbacks described in your OpenAPI spec.
-
Instant Test API Platforms with Prism
23 January 2020
Read moreI've been writing a bit about OpenAPI lately and I realised that I didn't share how I'm creating local, test versions of production APIs to work with while I develop new client code or test SDK features. The recipe is simple: you will need an API spec, the excellent open source tool Prism and an HTTP client. Mix it up and be ready to change your API development workflows forever.
-
The Laravel Synchronous Queue
20 May 2019
Read moreUsing queues for asynchronous processing is one of my favourite tricks for offloading hard work from web servers. When working with Laravel recently I was pleased to find that it supports beanstalkd out of the box. I've got opinions about frameworks with Opinions but I did find one thing I really liked in the way Laravel uses queues: the sync queue option that runs your queue synchronously on your development platform so you can develop and debug your work, then switch the queue platform you use later.
-
Generating PHP library code from OpenAPI
20 November 2018
Read moreI'm working with a bunch of OpenAPI specs now I am working for Nexmo and so far I'm loving working with API descriptions. OpenAPI is the next iteration of what used to be called "Swagger", a machine-readable way to describe your API and from that description create docs, code libraries, tests, and all sorts. Today's post is a quick writeup of how I generated some PHP code so that I can refer back to this next time I want to do it!
-
Managing Environment Variables in PHP
15 October 2018
Read moreNow I work with more programming languages, I start to miss features from other languages when I come "home" to PHP. One that I hadn't seen in PHP before I saw it in other languages such as NodeJS (I think Ruby had the original implementation) was: a way to easily control setting your environment variables, particularly in development. In NodeJS the dotenv library is great for this; handily in PHP vlucas has already created phpdotenv so we are all set to apply these tricks to PHP applications!
-
Make a POST Request from PHP With Guzzle
18 September 2018
Read moreI work extensively with APIs and a variety of serverside scripting languages, and best practice does change over time. Many of the most popular posts on this blog are 10 years old, because apparently I was interesting in 2008. Two in particular from around that time relate to making POST requests from PHP ... and I'd do it completely differently today. So, in an attempt to overcome some of the past crimes of the Internet in general and PHP in particular: here's how to make a POST request in PHP, today, in a PHP 7+ world (it probably works in PHP 5 too).
-
Bind Services to OpenWhisk Packages
31 May 2018
Read moreWhen working with serverless actions, often we'll still need to access some sort of service, whether it's object storage, a database, or whatever. Here's a quick overview of how this works for IBM Cloud Functions (plus some gotchas ....)
-
Relative Links with IBM Cloud API Gateway
22 May 2018
Read moreI work quite a bit with serverless tech, particularly on IBM Cloud since I work there. At the moment I'm building a microservice using web actions. When a user creates data with a POST request, I want to redirect them to the URL of the new thing they created - but for that I need to know the URL that it was accessed with. This is a relatively new feature on API Gateway so here's a quick howto for grabbing that URL in both JavaScript and PHP.
-
Handle Webhooks with Serverless PHP
20 February 2018
Read moreDid you know you can serverless with PHP? OK, so serverless is clearly not a verb, but since I love serverless tech and have also loved PHP for longer than I'm going to admit (the dates of the earliest posts on this blog might serve as a clue), using these technologies together is definitely my idea of a good time.
I included an example of a serverless endpoint to receive incoming webhooks in my talk at PHPUK last week and I got a few questions about it so I thought I'd share that example in written form.
-
Slack Enterprise Grid and BotKit
06 December 2017
Read moreI have the pleasure of using Slack Enterprise Grid on a daily basis as IBM has adopted it internally, I work there, and there are far too many of us to use a single slack instance. The main downside of Slack Enterprise Grid (apart from having about 15 slack organisations running in your client all the time) is that it returns different data when integrating with the Slack Web API and RTM (Real Time Messaging) systems. We had some bot integration that stopped working as a result, and I ended up moving to BotKit and then using a mixture of the RTM and Web API from Slack to get things to work. I won't remember how I did it so I thought I'd better write it down.
-
Testing API calls in PHP with Guzzle Mocks
21 November 2017
Read moreI'm working on a CouchDB library for PHP, and so I needed to write some tests for it. CouchDB has an HTTP API so I'm basically making web requests and while I could certainly set up a test database and run full-on integration tests, there are a few limitations with that approach. Firstly: it means I'm testing the database as well, which isn't what I want and brings extra dependencies that make the tests harder to run. Also: I want to be able to test error cases, rate limiting and so on, that would be difficult to recreate reliably.
-
Connecting PHP to MySQL on Bluemix
23 August 2017
Read moreMost of the PHP I write runs on Bluemix - it's IBM self-service cloud, and since I work there, they pay for my accounts :) There are a bunch of databases you can use there, mostly open source offerings, and of course with PHP I like to use MySQL. Someone asked me for my connection code since it's a bit tricky to grab the credentials that you need, so here it is.
-
Handling Incoming Webhooks in PHP
24 July 2017
Read moreAn increasing number of applications now offer webhooks as an integration, often in addition to an API. The classic example, familiar to most developers, is the GitHub webhooks which can notify your other systems such as CI tooling that a new commit has been added to a branch. If you imagine how many repositories exist on GitHub, and how many other systems react to changes on each repository ... there's a reason they are excellent with webhooks! Whether it's your source control, updates from your IoT sensors, or an event coming from another component in your application, I have some Opinions (TM) about handling webhooks, so I thought I'd write them down and include some code as well, since I think this is an area that many applications will need to work with.
-
Multiple Search Keys in CouchDB
21 March 2017
Read moreI work quite a bit with CouchDB (Cloudant, a hosted CouchDB solution, is part of Bluemix, IBM's cloud platform - and I work for IBM so I get to use this as much as I like) and today I found a feature I hadn't seen before. I struggled to find the docs, so I thought I'd post my working example here in case anyone else is solving a similar problem: wanting to use more than one set of key ranges when filtering a CouchDB view.
-
One OpenWhisk Action Calls Another
24 February 2017
Read moreWorking with openwhisk, it's easy to create many isolated actions and build them up into sequences; the output of one action is passed to the next action in the sequence. In my case, I wanted one action to spawn potentially many other actions. I had to look up how to do it and here it is so I can look it up more quickly next time!
-
Alexa Project Name Generator on OpenWhisk
22 February 2017
Read moreI'm having lots of fun with my Amazon echo and echo dots, creating skills for them. Initially I used Amazon's lambda platform since that's a very easy way to get started - but I'm an advocate for IBM and was looking for an excuse to play with OpenWhisk (an open source serverless offering that Bluemix has a hosted version of) anyway so this was a great opportunity!
-
cfenv for Easier NodeJS on Cloud Foundry
19 January 2017
Read moreNow I'm working at IBM I am making extensive use of their Bluemix Platform, which is based on Cloud Foundry. The way that Cloud Foundry is set up is actually very neat, with everything you need contained in JSON structures within environment variables. Parsing out those values can be a pain however, so I thought I'd share the library that's helping me the most with this: cfenv.
-
Using NPM Link to Develop Dependent Projects
12 January 2017
Read moreRight now I'm working on a javascript project that relies on another module for some of its functionality. I'm making fairly major changes that affect both projects, and since the dependency is pulled in via npm, initially I was committing and pushing to a repo so that npm could pull in the dependency from GitHub - on every update. Well that gets tedious really quickly so I'm now using the npm link command which is pretty handy. I hadn't seen it before so this blog post is basically the cheat sheet I wrote when I started using it...
-
Alexa, When's the Bus?
30 December 2016
Read moreI got an Amazon Echo for my birthday (from my husband, who took romantic to a new level when he liked my present so much he bought me an Amazon dot a week later so he could use the echo elsewhere in the house!), which is a new gadget for us. Of course I started asking her questions that she couldn't answer ... and you can write your own "skills" so of course I sat down to browse the documentation and ended up creating a working skill for her :) It was a fun process but there were lots of unfamiliar parts to it so I thought I'd blog what I did in case anyone else wants to try out creating skills as well, and in case I ever want to remember some of the stuff I know now!
-
Switching To Reveal.js for Presentations
31 August 2016
Read moreUPDATE: I presented at one event using reveal.js and have since rebuilt all my presentations in my original toolchain (rst2pdf). One presentation completely resized itself (I used rem units but that didn't help) so code samples were unreadable/missing. Also each presentation has all the dependencies INSIDE the presentation folder, so any backing up or syncing to dropbox becomes impossible (I ended up tethered to my phone with 250k files to sync ...). I like backups AND I like my Dropbox to work. So, no more reveal.js, it's just not fit for (my) purpose.
-
Easy Lint Check for JavaScript
13 May 2014
Read moreI'm introducing lint checking on one of my projects, because it didn't have a build process yet and I love this as a great place to start. Oh, and because we managed to commit broken syntax! So I set up a php lint job (I will share my travis config in another post) and tried to work out doing the same thing for JavaScript.
-
PHP and Gearman: Unable to connect after upgrade
28 February 2013
Read moreI upgraded PHP and related pecl modules on my development machine today, and ran into a problem with Gearman. Actually I ran into more than one! Firstly the challenge of getting the newest pecl version working with a gearman version. Then an error where my existing PHP application couldn't connect to gearman after upgrade.
-
Confident Coding: San Francisco
11 October 2012
Read moreWhile I'm in the US in a week or so, I'll be joining a stellar lineup at Confident Coding on October 20th in San Francisco. This is a by-women, for-women event to let us get together in a safe space where there are no stupid questions, and try to cover …
-
We Don't Know Deployment: A 4-Step Remedy
18 April 2012
Read moreSomeone emailed me recently, having read my book and wanting some advice. Here's a snippet of his email:
So here's my problem.We dont know deployment. We work from same copy on one test server through ftp and then upload live on FTP.We have some small projects and some big collaborative projects.
We host all these projects on our local shared computer which we call test server.All guys take code from it and return it there. We show our work to clients on that machine and then upload that work to live ftp.Do you think this is a good scenario or do we make this machine a dev server and introduce a staging server for some projects as well?
I wrote him a reply with some suggestions (and my consulting rate) attached, and we had a little email exchange about some improvements that could fit in with the existing setup, both of the hardware and of the team skills. Then I started to think ... he probably isn't the only person who is wondering if there's a better way. So here's my advice, now with pictures!
-
Book Review: MongoDB and PHP
05 April 2012
Read moreDespite having been toying with MongoDB and PHP for quite a while, I've only just picked up and read the "MongoDB and PHP" by Steve Francia, published by O'Reilly (disclaimer: I've collaborated with Steve on a few articles and he sent me a copy of the book to read)
-
Drawing Flow Diagrams with GraphViz
17 August 2011
Read moreRecently I've been drawing a few different kinds of diagrams for a book I was writing, and been using graphviz to create them. Since I struggled a bit to get them going the way that I wanted them to, I am sharing them here (as much for my future self as anyone else visiting, but if they help you too then that's excellent).
-
Comment, Don't Tweet
11 August 2011
Read moreThis blog regularly features posts which are rather niche, incomplete or in some cases simply misleading (not intentionally, I promise!). Often I post something, and then discover there was an awful lot more to know, and find that people add all kinds of constructive suggestions, resources, and other goodness in the comments.
-
Adding Markers to a Google Chart
09 August 2011
Read moreI seem to blog about graphs a lot at the moment, but that's because I am seeing a lot of them, with one thing and another. I recently added some little bubbles to the line graphs produced by Bitestats (obligatory elevator pitch: one-page, simple summary report pull from your google analytics account). I think they are kind of cute.
Once I got going with them, they were actually pretty straightforward. You can actually add all kinds of markers to your google chart, complete with funky icons and customisable colours! The code I added to make these is simply:
&chem=y;s=bubble_text_small;d=bb,Max:+917,FFFFFF,660066;ds=0;dp=15|y;s=bubble_text_small;d=bbtr,Min:+185,FFFFFF,660066;ds=0;dp=20All we have here is a simple specification of which kind of bubbles I want, the label for them and which data series (ds) and data point (dp) to attach it to. I generated the bubble tail directions sensitive to whether they were a min or max label, and which half of the graph they are in.
-
Speaking at OggCamp
26 July 2011
Read moreI'm delighted to announce that I'll be speaking at OggCamp this year. This is an event that I've attended both previous years, and one that I always seem to get a lot out of. It's an open source, anything goes, unconference kind of event. Except that this year there is …
-
First Steps with GraphViz
14 July 2011
Read moreThis year I moved my whole presentations toolchain over to LaTeX and PDF, and where I added diagrams (which doesn't happen a lot!) I used graphviz to generate them. Graphviz is a way of describing items and their relationships in a textual manner, and rendering them into a graph - and the results can be saved as an image, or included in LaTeX documents.
I found graphviz frustrating at times but on the whole it draws clean, symmetrical graphs far beyond anything else I can manage, even if I do use a mouse or tablet. Since I'm not able to use a pointing device on a regular basis, and I'm marking up my presentations in text also, it turned out to be a really good fit. I thought I'd share how I got on with it and some of my own graphs - as much to remind me next time conference season comes around as anything.
-
RepRap Masterclass
07 July 2011
Read moreI spent last weekend in lovely Bath, but I didn't get to see much of it as I spent all three days building a RepRap, or Replicating Rapid Prototype. This is a 3D printer that can print plastic into any shape you can think of (and some that I definitely didn't). The Masterclass was organised by EMakerShop and brought together a bunch of people with ties to the local area who are all active in the project itself.
-
Using Modelines in Vim
05 July 2011
Read moreI'm working on a book at the moment, and there are strict guidelines on formatting. One thing which is tripping me up is that all code samples must use two spaces for indentation. I normally have my editor set to 4 spaces, so I was looking for a good way …
-
The Worst Way To Find Women Speakers
28 June 2011
Read moreI am a female speaker, and a software developer, which puts me in a fairly small minority at the events I usually attend (I'm a PHP consultant based in the UK, to give you an idea of what kind of events those are). Recently I've been asked my opinion more than once on the issue of women speakers being in a minority at technical events, and I've also been the "token" women speaker at a technical event.
The worst thing you can do is find some random, underqualified person who represents the demographic you want to include, and put them on the stage. Although gender is often the issue we hear most about, the same applies to anyone who isn't a young, white male; it's just that gender is easier to see and talk about than either age, ethnicity, sexual orientation, or anything else, and also since I'm a young, white female, it's the only aspect I can comment on.Women are in such a minority that they are, almost by definition, representative (see http://xkcd.com/385). Anyone who sees your randomly-selected woman speak will simply go away thinking that women aren't really good at speaking.
-
Apache on Ubuntu/Debian
14 June 2011
Read moreApache on Debian. Ubuntu
When I first started using Ubuntu, I was coming from a distro journey that started with FreeBSD and took in Mandrake and Gentoo along the way; I hadn't worked with any Debian-based systems before and was new to the way that Apache is configured on those platforms.
-
Marking up Tables in LaTeX
02 June 2011
Read moreRecently I've been writing a LOT of LaTeX for slides (using powerdot) and I'm trying to collect some of what I've learned here so I can refer back to it later (and so it'll be in words I can understand, some LaTeX documentation is slightly too academic for my tastes!)
I find the default formatting for table output in LaTeX can look a bit ... squashed, so I always precede my tables with this:
-
Combining PDF Files With Pdftk
24 May 2011
Read moreI'm currently delivering all my talks with PDF format slides, using Jakob's PDF Presenter Console, which is awesome but lacks a "goto slide" button and is a little slow to click forward. It doesn't matter for a short talk but I had 200+ slides for my ZCE preparation tutorial at the Dutch PHP Conference and I was concerned about losing my place! Therefore I split my slides up into several decks, but still need to publish them as a whole.
For years I've used PDF Shuffler for this sort of thing but I wondered if there was an easy way of doing this from the command line this time, since I literally wanted to glue together a bunch of files one after another. Predictably, there is and it's called pdftk - the PDF Toolkit.
-
Git Tip: What Did I Just Merge?
05 May 2011
Read moreAs a lead on an open source project, I spend a lot of time merging awesome contributions from our community into our main repo on github. Sadly, some of them are slightly less awesome (rarely but it does happen) and I sometimes need to unpick what happened to understand the …
-
PDF Presenter
11 April 2011
Read moreRecently I've switched how I prepare and deliver presentations, using LaTeX to mark up the content and producing PDF slides from that. Which is great but I miss having some of the during-presentation functionality of LibreOffice such as a timer and being able to see what's on the next slide …
-
Slide Markup with LaTeX: First Steps
04 April 2011
Read moreSince starting to create (a large number of) presentations using LaTeX, I've been impressed at how easy this is to pick up and also how quick it is to work with marked up content rather than dragging objects around in Impress or equivalent. With that in mind, I thought I'd outline the very basics of the markup (with probably more snippets to follow as I discover them).
-
Creating Presentations with LaTeX
30 March 2011
Read moreThis spring/summer, I'm giving quite a few talks at conferences, and I have a number of my own clients that I'm writing new training materials for. That's a lot of content in total and so, inspired by Dave's article about LaTeX and powerdot (and with some help from Dave himself!), I've started to write my own presentations this way too.
Getting started was a struggle, I've never really used anything like it before and if there's one thing LaTeX doesn't do well, it's error messages! The blog post I linked above has a sample presentation in it and I used that as my starting point. The source code goes in a file with a ".tex" suffix, e.g. presentation.tex. I then installed the texlive-latex-extra, latexmk, vim-latexsuite, latex-fonts-recommended and texlive-fonts-extra packages from aptitude, and generated a PDF by running:
-
Book Review: The Developer's Guide to Social Programming
18 March 2011
Read moreRecently the nice folks at Addison Wesley sent me a review copy of "The Developer's Guide to Social Programming" by Mark Hawker (you can find it here on amazon). This is right up my street as I'm doing so much with with APIs, social and otherwise, at the moment and the book covers things I'm using such as OAuth and google's services.
-
Using Persistent Storage with Gearman
17 March 2011
Read moreI'm using gearman for the first time in a new project, and two things in particular were bothering me. Firstly, there doesn't seem to be a built-in way to see what's in the queue. Secondly, if the gearman server dies (which seemed quite likely when I was first getting to grips with this stuff and writing really buggy code!) you lose your queue. Therefore I decided that I would switch gearman over to running with persistent storage.
-
Mercurial Primer
21 February 2011
Read moreI am a source control nut, I've been speaking about Subversion for years, I co-lead an active open source project which uses git and GtiHub, and I've also dabbled with Bazaar. So far I'm feeling the limits of Subversion, loving the code-hosting features of some of the DVCS tools, and hating git and github in equal measure (don't bother to try to talk me out of this, I'm well aware the problems are mostly on my side). I don't know anyone else using Bazaar in the PHP community but I do know quite a few people raving about Mercurial, or Hg. This post is a quick introduction to the commands I have been using since I started trying out Hg and BitBucket for myself.
-
Ticket Giveaway: DC4D:2
11 February 2011
Read moreDid you know that there's a second edition of the DayCamp 4 Developers event coming up in March? The daycamps are a chance for developers to invest a day in their careers, wherever they are, focussing on the soft skills we need to grow beyond coding monkeys and into accomplished …
-
Book Review: The Passionate Programmer
09 February 2011
Read moreI've been putting off writing this post, because I wasn't sure I could do the book justice, but I read and really enjoyed "The Passionate Programmer" last summer, and I've been dipping into it again and again ever since. The book was actually a recommendation from Travis Swicegood, after he saw me give my talk Open Source Your Career. It seems like it's not a well-known title so I thought I'd share my thoughts on the book and what I got from it.
-
Installing Gearman for PHP and Ubuntu
07 February 2011
Read moreI've been using Gearman lately in a project that I'm working on, and of course a month later when I came to deploy the code, I had to look up all over again what was required for a gearman server in order to put it on the new platform. Here is the short version for my future reference (and yours, if you like)
-
Why I Love Unconferences
04 February 2011
Read moreI'm seeing increasing numbers of unconferences popping up and I must say I'm quite enjoying them. Last year I went to OggCamp, we included an unconference at DPC, and now there's a PHP-specific event coming up in Manchester: PHP Unconference Europe or phpuceu. I really like unconferences but I think sometimes people don't know what to expect, so here's an outline.
-
Using gnome-keybinding-properties
03 February 2011
Read more
Last week I reinstalled my aspireone, which I've had for quite a while but which is really excellent for events. I put the latest Ubuntu Netbook Remix onto it and it installed like a dream, with peripherals and powersaving all working correctly. It says something about the positive experiences I've had with *buntu installs lately that I even did this over the wifi!The weird thing was that I don't really use Gnome on other machines as I prefer KDE, and I hadn't seen the Unity desktop before (as I understand it, this is a lightweight gnome replacement - it still looks and smells like gnome to me), so there were a few things that were "missing" as far as I was concerned. Easily the most annoying is the Alt+F2 shortcut, I don't really care what GUI I'm using, I mostly just run things from that! I also realised that I now had workspaces, but that there was no keyboard shortcut to switch between them (I don't use a mouse, so it's keyboard or nothing for me).
Enter a wonderful utility called gnome-keybinding-properties.
-
Using s3cmd To Manage Files on Amazon S3
26 January 2011
Read moreRecently I moved some podcasts on to Amazon Simple Storage Service, or S3, which I know is great and easy to use, and I've used it with some wrappers, but never directly until now. It turns out, unsurprisingly, that S3 is great and easy to use :) I used s3cmd from s3tools - a collection of python scripts that made this really really easy. Even better, I'm an Ubuntu user so s3cmd is already packaged for me and I simply installed with:
-
Quick-Start Guide for Google Charts API
17 January 2011
Read moreGoogle Charts API is a nice, freely available tool for creating really good-looking graphs very painlessly. Don't be fooled by the "API" bit though, there is no need for advanced understanding of HTTP here - you generate most graphs just by adding parameters to a URL! In this post we'll take a look at a few different ways to generate charts.
-
Navigating Bash History with Ctrl+R
14 January 2011
Read moreI spend a lot of time at command line, and bash records the history of all the commands I've typed and puts it in .bash_history (there's a limit on how many it stores but for me it goes back a few days). I find it really useful to look back …
-
Github API: Issues List
10 January 2011
Read moreI'm deeply involved with an open source development project (joind.in, the event feedback site) and we recently made the decision to move our issue tracking away from GitHub (because it's awful and meets none of the requirements for a bug tracker, but that's a post for another day). In order to make this happen more smoothly, we wanted to migrate our open issues from github (to JIRA Studio, since Atlassian generously provides accounts here for worthy open source projects - thanks Atlassian!).
I looked around for some export functionality for github but I got a lot of posts complaining it wasn't there. Since I hate applications that take your data and refuse to let you remove it, I was disappointed by this news but further inspection showed that although there might be no "export from github" button, there's an API that more than has it covered. The API returns JSON which is easy to work with from many programming languages, and is perhaps even more powerful and flexible than the simple export I initially expected, so here are some examples.
-
Adding Multiple Axis Labels to a Google Chart
06 January 2011
Read moreRecently I've been working on a project using Google Charts API and I absolutely love it. It makes pretty graphs and shows data really nicely - and it's very painless. I did trip over a little trick today though which took me a little while to work out, so I thought …
-
Launching Links in Opera from Command Line
27 December 2010
Read moreI'm an Opera user but I use a number of applications from the command line, and often I want to launch links from those applications into my web browser. I've just switched over to reading my feeds using canto (web applications are becoming decreasingly accessible these days, although I'm saving …
-
Speaking at DIBI
22 December 2010
Read moreIn June 2011 I'll be speaking at a rather awesome event called DIBI at the Sage in Gateshead (if you're a southerner, then Gateshead is near Newcastle, which is "up north"). DIBI stands for "Design It, Build It" and has two tracks, one focussing on development and one focussing on …
-
OAuth Google API for Unregistered Applications
17 December 2010
Read moreIt is pretty common when using OAuth for there to be a relationship between the provider and consumer; as a consumer you usually register with the provider to obtain a consumer key and consumer secret. Google's APIs however do not require this. It is recommended that you register your application …
-
Skills Analysis for Teams
06 December 2010
Read moreWhen I spoke at PHPNW10 in October, I talked about teams, skills and the importance of benchmarking things in order to illustrate improvements. If you didn't see the talk, the video and slides are linked off the conference site. In particular I talked about the importance of analysing skills in a team, then improving them, then analysing again to see how things had changed. This post is about that process, some techniques that might apply, and what to do with the results when you get them.
-
256 Colours in Vim
15 November 2010
Read moreRecently I've been looking at different vim colorschemes, after using vimdiff and finding I couldn't see half of the code. I've been using relaxedgreen for ages, and it is excellent but I find the blue really hard to see on my black background so I was in the market for an alternative.
-
Curl and Cookies
12 November 2010
Read moreI noticed the other day that the cheat sheet I have on this site for curl doesn't show how to use cookies, so I thought I'd remedy that omission, and quickly! Being able to use the command line to authenticate and then go on and use part of a site …
-
Is Enum Evil?
20 October 2010
Read moreWhen I work on database designs, either on my own projects or as advisor to others, I often find people very reluctant to use an enum type for any columns. Now, I'm not about to advocate the gratuitous use of an enum column, they definitely have some pitfalls, but I think it is important to understand these rather than just shouting "enum evil!" if anyone should mention them.
There are cases where an enum is the correct choice for a particular type of data, so let's look at what an enum type actually is and does.
-
Return on Investment: Example
12 October 2010
Read moreI gave a talk at the weekend which talked in outline terms about Return on Investment or ROI. It was a keynote so I skated over the details, but I wanted to include a specific example to illustrate what I meant.
Imagine the scenario where, given 3 days to work …
-
My Three Favourite Opera Features
05 October 2010
Read moreI'm an Opera user, and one of the reasons I am is that I can control my browser entirely from the keyboard. I think everyone uses browser keyboard shortcuts, and in a lot of ways Opera has similar functionality to other browsers, but it also has keyboard spatial navigation, meaning I can jump to the next element in whichever direction I choose. Opera also has per-site preferences, which actually make the web usable for me.
-
Missing pcre.h when installing pecl_oauth
27 September 2010
Read moreI was playing with pecl_oauth last week (more about that in a later post) and when I tried to install from PECL, it grabbed the files, ran the configure step but stopped with an error status during make. This is bad news for those of us who are ubuntu users …
-
Serendipity Template Update
14 September 2010
Read moreIf you read this site purely on a feed reader, this is probably irrelevant to you, but I recently made some changes to this blog and thought I'd post about how I worked with Serendipity to achieve them, mostly involving some template hacking and using a plugin to make a particular area of the site editable through the admin interface.
-
Book Review: The Art of Community
13 September 2010
Read moreThis review has been in my drafts folder for 9 months, because I didn't feel I was doing the book justice. It seems like I never will, so here it is - as it was written then, but hopefully still useful and relevant to someone
I bought this book last year when I was still working at Ibuildings, and my role changed a lot to include events and community representation. Before that I was doing entirely PHP development and it was around this time that I noticed myself saying "has everyone forgotten I'm actually a developer?" a lot! So I quickly decided that I needed a copy of The Art of Community, a book by Jono Bacon published by O'Reilly. Actually, I should thank O'Reilly at this point for publishing the book and even more so for sending Josette and her book stand to conferences - I was able to buy the book and it came with a pep talk :)
-
Indexes on Tables
06 September 2010
Read moreIncreasingly I find a very binary split between the professionals I come into contact with. One group of people are very database-aware and take the design of their storage quite seriously - with good results. The other group are more concerned with the functionality of their application, and have little regard for how it is stored other than considering it a keeping-place and making useful table and column names.
Too often though, they don't think about how that data will be retrieved or what the implications are when it gets beyond the thousand records that were used for testing. This is where having an idea of how the data will be retrieved can really help application performance. (note: this article is aimed at users of traditional relational databases, and ignores all other possibilities). This post takes a look at the various index types and when to use them.
-
Printable PDF Handouts from OpenOffice Impress
30 August 2010
Read moreLast week I was preparing a training course for a client, and I wanted to print the slides nicely for the attendees to refer to and make notes on etc. The slides were done, I'd talked to my friendly printers (Mailboxes etc in Leeds) and all I needed to do …
-
One-Step Symlink Switch
19 August 2010
Read moreThis is a trick I use when deploying websites so I thought I'd post it here for posterity. Actually, technically I stole it from someone else but for now let's pretend it's mine (thanks @__kb!)
When I deploy an application, which is almost invariably a PHP application, I like to …
-
Geeks Can Write
17 August 2010
Read moreA couple of weeks ago I gave a lightning talk at the PHPNW user group entitled "Geeks Can Write" or "Can Geeks Write?" - basically shooting down the worst of the excuses for not writing that I've heard and asking everyone to give it a shot! If you are interested, then …
-
3 Top Tips for Database Naming
10 August 2010
Read morePerhaps this is more of a rant than a post but I do keep running into issues with databases with names that are inconsistent - which makes them really difficult to work with. When designing a database, there are a few points to consider:
Singular and Plural
This goes for table …
-
Migrating Github Contributors to an Organization
02 August 2010
Read moreRecently, a github project that I contribute to, joind.in, moved from an ordinary github user account over to an organization. Getting contributors moved over is pretty straight forward, I have a fork of the main repo on github at http://github.com/lornajane/joind.in and that updated to …
-
WordCamp
22 July 2010
Read moreLast weekend I was at WorkCampUK in Manchester - it's taken me this long to writ the blog post because I needed time to download my photos, however I've now done that and I didn't get anything at all worth publishing, d'oh!
I am a wordpress user and even wrote a …
-
Working with Branches in Git
28 June 2010
Read moreRecently I've been doing more git than I ever intended to, working with the Joind.in codebase, contributing and managing contributions to that. I quickly realised that I needed to make changes on branches, and since I'm new to git, it took a while to figure some of this out …
-
Text Commands for Skype
18 June 2010
Read moreI use Skype on linux and the client is quite limited in terms of buttons etc, which doesn't bother me at all since I don't use a mouse unless I must (answering skype calls forms a lot of the "must"!). In group chats however, its annoying to have the alerts …
-
Poor Man's Caching
10 June 2010
Read moreDescribing something as a "poor man's" version of the thing is to say its a bit of a cheap or short-cutting version. I thought I'd share some VERY poor man's caching that I came up with the other day.
To set the scene - I'm hosting the Dutch PHP Conference this …
-
A "new" Netbook for Conferences
12 May 2010
Read moreA couple of years ago, I attended ZendCon for the first time. At that time, the only laptop I had was a work machine weighing 5kg, and I was staying in a different hotel from the main conference - so I hastily bought pretty much the first non-ee netbook on the …
-
Podcast: How and Why to Become a Speaker
10 May 2010
Read moreThis is a podcast version of my rant-in-the-bar advice to anyone thinking about speaking, or wondering how to begin. Personally I think many more people could be sharing their expertise at events than actually do so, and I would really like anyone who wants to get involved to have a …
-
Thoughts on OggCamp in Liverpool
06 May 2010
Read moreLast weekend I went to Liverpool (my first visit there!) to attend OggCamp for the second year in a row. This isn't a part of the software community I normally interact with, but I accidentally went to a LUGRadio event once a couple of years ago and have been hooked …
-
Bzr-svn: Preserving Commits and Rebasing
26 April 2010
Read moreRecently I've been using bzr-svn when I'm working with subversion repositories; its a bridge between a local bzr repository and a remote subversion one. I travel fairly frequently and the pain of being disconnected from the server, unable to diff or log, and then either unpicking everything I've done or …
-
svn+ssh with specific identity file
22 April 2010
Read moreHere is a quick howto on using a config file to associate an SSH connection with a particular identity file. When I ssh directly from the command line, I can specify the port, identity file to use, and a whole raft of other options. However these options aren't available when …
-
Book Review: Making it Big in Software
19 April 2010
Read moreRecently the kind folks at Prentice Hall contacted me to ask if I'd like to read a new publication of theirs , "Making it Big in Software". It sounded like something I'd be interested in and the copy duly arrived. My first impressions were of a wordy book, very much aimed …
-
Ada Lovelace Day 2010: Mrs Maginnis
24 March 2010
Read moreThis is a post in celebration of Ada Lovelace Day, recognising women in science and technology. Last year I wrote about Kathy Sierra for Ada Lovelace Day; this year my subject is someone much closer to my own life.
I'd like to write about someone who influenced me greatly - in …
-
GETting RESTful collections - may I filter?
23 March 2010
Read moreAt work at Ibuildings recently, I've been teaching some classes on web services, and its a topic that I've spoken about once or twice at conferences. But something has always bothered me, so I find myself in the unusual position of blogging a question.
RESTful collections
So, when you are …
-
Simple Database Patching Strategy
01 March 2010
Read moreOne problem that seems to need solving too often is how to keep databases in sync across different platforms, different developers working on a project, and deploying database changes along with code changes. There are lots of ways of approaching this, none of them are really excellent however and personally …
-
Supermondays: Recap
23 February 2010
Read moreLast night I travelled to the northeast of England to speak to a thriving technical community up there called Supermondays. They contacted me some time ago asking if I could get there to speak one Monday, and last night was the night! It was a very civilised gathering, with sandwiches …
-
Open Office Presenter Console
19 February 2010
Read moreI've been having issues with the presenter console on both my ubuntu machines since upgrading to Karmic (9.10). One is a Thinkpad T400 running kubuntu and the other is an aspireone netbook running ubuntu netbook remix. Neither wanted had a working installation after upgrade and I couldn't get the …
-
Word Count
08 February 2010
Read moreThere's a little command line utility on *nix which I use a lot - it's wc or "word count". This is especially useful to because I live in a world where everything is plain text right up until I have to send it to someone else (and sometimes not even then …
-
Contributing to Projects on GitHub
26 January 2010
Read moreRecently I've been contributing to the code project behind joind.in, the event information and feedback site. I rely on joind.in a lot and after putting up with a frankly astonishing volume of feature requests from me, its owner Chris Cornutt very politely suggested that I might like to …
-
Screen in Ubuntu Karmic
15 January 2010
Read moreI have written about screen quite often, mostly including my .screenrc file and showing how to have named tabs for the various screen tabs you have open. When Ubuntu Jaunty came out, I found it had some quite cool enhancements that made the customisations for screen really easy by default …
-
Silencing Curl's Progress Output
29 December 2009
Read moreI seem to have been writing a lot of shell scripts to do things with curl lately, and the main difference with piping curl's output to somewhere rather than just looking at it on the screen is that curl will then start outputting a whole bunch of progress information that …
-
Cookies and Curl
21 December 2009
Read morecurl is the C URL library - its a command-line tool for making web requests, with libraries available in many languages. Personally I prefer to use it from the command line and recently I have been using it with cookies for a web services which set a cookie at login and …
-
New Camera: Fuji Finepix F70
17 December 2009
Read moreRecently I've had a new gadget in my life - a Fuji Finepix F72, which is really an F70 but exclusive to Jessop's in a different colour (I have no idea why retailers do this but hey, it means mine is shiny black).
The camera is a birthday/christmas gift from …
-
Sound Issues with Kubuntu Karmic Koala
15 December 2009
Read moreSince upgrading my work machine to karmic koala, I've noticed that my sound had stopped working. There were some broken packages in aptitude and Skype knew there was a problem as it notified me when I tried to make a call. I saw some issues reported with karmic, notably this …
-
Email As a Means of Social Communication
16 November 2009
Read moreRecently I've been spending a lot of time away from home, and busy with clients within office hours, which means I'm not available via my usual real-time communication mechanisms. This has given me the opportunity to enjoy email as a means of staying in touch with people that I would …
-
Burndown Charts
10 November 2009
Read moreDisclaimer: I am not an expert on this topic and have never studied it formally. This is purely an explanation of how I've seen these charts used within Ibuildings and included in my talk Passing the Joel Test in the PHP World which triggered lots of questions and tweeting.
Burndown …
-
Speaking at Bradford LUG
23 October 2009
Read moreNext week I'm taking the plunge and attending a LUG (Linux User Group) meeting for the first time when I attend the Bradford LUG meeting on Wednesday as a speaker. I'll be giving my talk "Working With Web Services" which I'll give at PHP Barcelona a mere 36 hours later …
-
Portugal and The Internet Cafe
05 October 2009
Read moreThings may have seemed a bit quiet around here lately - that's because I spent last week in the Algarve in southern Portugal. My sister is working in a hotel there as head nanny, I think she's spent 8 days of 2009 in the UK so this is about the only …
-
Working at The Hub, Bristol
28 September 2009
Read moreA couple of weeks ago I had some friends coming to the UK for a little while, but they were staying in Bristol and I live in Leeds. My weekends were pretty full so I wasn't sure if I would get to see them - but since I telecommute I can …
-
Lame Excuses for Avoiding Conferences
22 September 2009
Read moreAt the moment I am getting to quite a few conferences, as a speaker, as an organiser, and sometimes as a plain old attendee. I get so much from these opportunities to learn from experts in their various fields, meet people in the flesh whose blogs I read or whom …
-
First Steps with bzr-svn
26 August 2009
Read moreI'm an SVN nut - love it, use it, talk about it at any opportunity, can't physically write code without it. But as a telecommuting developer who is sometimes travelling around, I've been thinking for a while that one of the distributed systems would really make more sense. I tried git …
-
Customising Screen-Profile Files
11 August 2009
Read moreI wrote a while ago about the new version of screen in Ubuntu Jaunty. Screen is an application which lets you run lots of tabs inside one terminal window, then disconnect from screen and reconnect again later. You can turn on and off a whole bunch of notifications which appear …
-
Upgrading Subversion Server to 1.5
06 August 2009
Read moreI'm really excited about the magic merging features in the newer subversion versions at 1.5 and later. I'm still figuring out which are actually useful, more on those another day, but I wanted to mention something I ran into when upgrading my server.
Some time ago I upgraded the …
-
5 Ways to Make Friends at a Technical Conference
03 August 2009
Read moreThese are my top tips for getting along and meeting new people at a technical conference.
Take an extension cable
Conferences are notorious for having too few and too short power leads, and everyone needs to recharge laptops, especially in hands-on sessions like tutorial day. Having an extension cable will …
-
Ubuntu Netbook Remix on Aspire One
21 July 2009
Read moreA while ago, actually quite a while ago in May, I put the Ubuntu Netbook Remix version of Ubuntu 9.04 Jaunty Jackalope onto my lovely blue Acer Aspire One netbook.
The way this works is that on another machine (or I guess on an existing OS on the netbook …
-
Presenting with a Netbook
09 July 2009
Read moreI've been giving a few talks in the last few months and I'm increasingly realising that although I love my thinkpad, its overkill for anything where I don't really need the hardware, or where I don't want to be carrying a full-size laptop all day. So I'm increasingly taking just …
-
Version Parameters for Web Services
30 June 2009
Read moreThis is a mini series on points to consider when designing and building web services. So far there have been posts on error feedback for web services, auth mechanisms for web services and saving state in web services.
When designing a service API, there are lots of things you can …
-
Saving State in a Web Service
23 June 2009
Read moreThis is a mini series on points to consider when designing and building web services. So far there have been posts on error feedback for web services and auth mechanisms for web services.
Web services, by their very natures, are stateless, and this is no different to any other web …
-
Fixing Broken Serendipity Category
20 June 2009
Read moreI migrated this blog to serendipity almost two years ago, and there have been a few things about it which have always driven me a bit mad. Many of these improved when I upgraded to version 1.4.1 of s9y but a few have persisted, including having two of …
-
Updating Memcached on Ubuntu Jaunty
17 June 2009
Read moreI've been working with memcache-related things lately and ran into a problem where the library I was using just didn't seem to do what its documentation said it would. It turned out that it was making a "gets" call rather than a "get" call - and this functionality wasn't introduced to …
-
Top Tips from Linux-Fu
02 June 2009
Read moreI have recently been giving a talk entitled "Linux-Fu for PHP Developers" (slides are here) and although it includes some really basic commands, even some quite experienced people have thanked me for particular bits that they picked up. I'm considering dropping some of the sections from this talk so here …
-
Architecting Web Services - FOWA Tour
29 May 2009
Read moreI spoke at the FOWA Tour event in Leeds yesterday, as their local speaker (they set aside a slot for each place they go). It was a great event, good atmosphere and I really enjoyed the both crowd and content. I can't imagine what the logistics for something like this …
-
Error Feedback for Web Services
18 May 2009
Read moreI have been thinking, writing and speaking a little bit about web services recently, starting with a few thoughts on authorisation mechanisms for services. Today we'll look at another really important aspect of authoring web services, and one feature that will definitely get used - error handling and feedback! Having clear …
-
Speaking at FOWA Tour, Leeds, May 28th
14 May 2009
Read moreI'm surprised and delighted to announce that I will be one of the speakers at the rather excellent FOWA Tour even in Leeds on 28th May (two weeks today!). The day is like a roadshow version of the famous FOWA conferences, with a morning of (free!) cloud workshops and an …
-
Leeds GirlGeek Dinner 27th May 2009
13 May 2009
Read moreI'm delighted to hear that the date has been set for the next Leeds GirlGeek Dinner - Wednesday May 27th 2009! I've been really enjoying this series of events and always meet some really interesting ladies when I attend these events. The idea is to get geek girls together for some …
-
Presenting Under Linux: xrandr
11 May 2009
Read moreThis is a mini-primer on using xrandr to configure a second screen under Linux, but first I'll start with some background.
I've been a linux user for a few years now but when I started working for Ibuildings I started giving presentations, either as a speaker or when delivering training …
-
Kubuntu Freezing on Splash Screen after Jaunty Upgrade
02 May 2009
Read moreToday I upgraded a bunch of machines to the latest Kubuntu offering, version 9.04, or "Jaunty Jackalope". Well, it was all going a bit too well and when I came to upgrade my main work machine, a thinkpad T400, I ran into problems. There are a couple more kinks …
-
Auth Mechanisms for Web Services
01 May 2009
Read moreHaving been involved in quite a few service-related activities in the last year or so, I've been having a few thoughts about what I've learned from this and what decisions I make when designing a service. Hopefully there will be a few of these posts - but to start with, I'm …
-
Quiet Diff
21 April 2009
Read moreI recently saw a problem that we were having difficulty replicating, despite assurances that both the code base we were replicating on and the one that exhibited the error were identical. They are large codebases and when I got copies of them both I tried to check for differences:
diff …
-
Set Vim Shift Width
30 March 2009
Read moreI have had a problem with vim for a while. Although I have my tabstop set to 4, when I use >> or << to indent or undent (technical term) my code, it moves the code by 8 characters. As I'm now working with phpcodesniffer, I'm pretty motivated to get my editor …
-
Ada Lovelace Day: Kathy Sierra
24 March 2009
Read moreIn honour of Ada Lovelace Day, this is a blog post about a woman I admire in technology: Kathy Sierra.
I've been a big fan of Kathy's site for a number of years, hers was the first site I saw where eloquent prose was wrapped around technical and relevant content …
-
Open Office Presenter View
17 March 2009
Read moreI was delighted to discover recently that Open Office have released a working version of their long-anticipated Presenter View. Both Powerpoint (from Microsoft) and Keynote (on the Mac) have these views which allow someone giving a presentation to see the current slide, the next slide(s), any notes associated with …
-
Maker Faire UK
16 March 2009
Read moreYesterday I took the opportunity to pop along to the Maker Faire in Newcastle - its so exciting to see events like these in the UK! The marquee there was pretty small but what it had was great fun. I saw several things there that had me really drooling - one was …
-
Simple SVN Merging
10 March 2009
Read moreToday I had a big SVN merge to do - i'm at the end of a development cycle and I needed to merge my branch of changes back into trunk. I dug out my crib sheet for merging and tweeted that I had - and a few people asked me to blog …
-
Blurb Book of Peru Holiday Photos
05 March 2009
Read moreIn January, Kevin and I went to Peru for a few weeks - to visit our friend Cally, and we did some touring while we were there. Between the two of us, we took almost 3,000 photos. Which is way too many to make granny sit through when we got …
-
Speaking at GeekUp Leeds
11 February 2009
Read moreOn 18th February, I'll be making an appearance at Geekup Leeds, to give a talk entitled "Linux-Fu for PHP Developers". Basically this is a tour of some of my most-favourite command line tools available in Linux, and its a pre-cursor to the talk I'll give later this year at php …
-
Locked Joomla! Content
05 February 2009
Read moreI run the website for my local netball club and when I implemented this site I chose Joomla! to run it on. It seemed like a good idea at the time, in fact I even thought some of the other club members might log in and type into the user-friendly …
-
Locking Session in KDE
03 February 2009
Read moreI've been using KDE full-time long enough that I ought to know this, but I had to look it up! I was working in a shared location and I wanted to lock my session when I walked away from my machine. There's an option in the start menu but the …
-
Ubuntu Launching Apps
15 January 2009
Read moreSince I started using Linux on the desktop, I've always used katapult to launch applications. However I have another machine that doesn't have katapult and (since I don't use a mouse) I've always used Alt+F2 to launch appilcations on there. Well, since installing Kubuntu Hardy Heron I notice it …
-
Colourful Tabs in Screen
24 December 2008
Read moreA while ago I posted about screen, and included my .screenrc file. I got some teasing for this, since the tabs show up pink. In fact this .screenrc file is one I stole from somewhere a few years ago and didn't really think much about the colours. Since then I've …
-
Stale NFS File Handle
18 December 2008
Read moreWe had some fun and games with our house server recently, when one of its disks died horribly*. I've only just got around to sorting out the backups again now, which use an external USB hard drive and rsnapshot. I started by reading my earlier rsnapshot post and also the …
-
Relocating a Wordpress Installation
12 December 2008
Read moreWordpress is a fine basic website tool, and I've used it for a few different odds and ends. One thing it does have that suprises me every time is that it uses a setting for its web address. So as part of the install, it sets this setting and then …
-
Girl Geek Dinner Next Week
26 November 2008
Read moreI'm getting quite excited now about the next Leeds Girl Geek Dinner which is next Wednesday (3rd December 2008). Got some cool speakers by the look of it - I know Monica (and she is fab) and from Katie's bio we are in for a treat. Also I have been promised …
-
Leeds Girl Geek Dinner - December 3rd
07 November 2008
Read moreAnnouncing the second girlgeek dinner in Leeds! The event will be Wednesday 3rd December, at The Loft Leeds and tickets are available now, priced at £15. Monica Tailor from Kilo75 will be speaking at the event, and it will have quite a Christmassy feel.
The rules of the girl geek …
-
Opera's Address Bar AutoCompletion
30 October 2008
Read moreI recently upgraded the copy of Opera on one of my machines, only to find a few things about it which had changed from previous versions were driving me mad!! Immediately noticeable was that the address bar autocompletion seemed to have gone completely nuts. It was autocompleting all sorts of …
-
Screen for Linux
24 October 2008
Read moreI use a lot of apps from the command-line, partly because command-line stuff is the same on every system, and partly because I struggle to use a mouse for RSI reasons. Unsurprisingly, the best keyboard-navigable apps are ones that only use the keyboard in the first place! One app that …
-
How to Submit a Conference Talk
23 October 2008
Read moreSpeaking at conferences is a great way to share ideas and meet people - but actually getting the opportunity to do is a little more tricky and usually involves proposing a talk. In the last year I've attended IPC in Germany and PHP London, spoken at DPC in Amsterdam, submitted talks …
-
rsnapshot flag for usb drive
12 October 2008
Read morersnapshot is a great tool that I use for all my backup stuff, its really easy and seems pretty robust (or rather, I haven't broken it yet!). When I set it up most recently, I discovered that it has a very useful flag, no_create_root. The problem I often have is …
-
Mounting the VMWare Tools Installation CD
02 October 2008
Read moreI was recently installing the VMWare tools onto a debian etch virtual machine which I downloaded from the thoughtpolice.co.uk site, and I ran into problems. When the installation instructions from thoughtpolice say to type
mount /dev/cdrom /mnt/
This gives me an error about "You must specify the …
-
Tinyurl Shortcut in Opera
29 September 2008
Read moreI am an irssi user - I have issues with mice (I don't use one) and so the text-based IRC client works wonderfully well for me. It also looks less like a chat client and more like I might be working on a terminal screen, which was more useful before I …
-
Acer Aspire One (and cosy)
26 August 2008
Read moreI can't remember another post which was in both the "tech" and "craft" categories - so no complaints from either camp please! Last week I became the new owner of an acer aspire one netbook/ultra mobile PC. Its little, blue, and very cute! If you want to skip the tech …
-
Getting Started with irssi
23 August 2008
Read moreIrssi is a fabulous IRC client, which runs on the command line. I'm sure I don't use half the features it offers but its very stable, unintrusive ( you can run it in a background terminal, or even leave it running in a detached screen process ), and frankly excellent. Because I …
-
Curl Cheat Sheet
19 August 2008
Read moreI have a scribbled sheet on my desk, which is my "cheat sheet" for curl, its really short and I thought I'd put my notes here for safe-keeping. If you're visiting, then I hope they help you too.
-
Professional Development for Girl Geeks
14 August 2008
Read moreLast night I gave a talk at the Leeds Girl Geek Dinners entitled "Professional Development for Girl Geeks" - and you can find the slides on slideshare if you're interested.
Most of what I said wasn't on the slides, but the gist of it was along the lines of:
- Use the …
-
Announcing the Leeds Girl Geek Dinner
22 July 2008
Read moreOnce upon a time there was a girl geek called Sarah Blow, and she wanted to hang out with her girl friends and geek out at the same time (and who wouldn't?). So she founded the phenomenon of the Girl Geek Dinner in London. Well this great idea has spread …
-
LugRadio Live UK
15 July 2008
Read moreI'm attending LUGRadio Live UK this weekend, in sunny Wolverhampton! I'm slightly concerned that this might be too geeky for me and I might be scared but there are people I'd like to meet, the talks look interesting, and I can imagine it will be a pretty good crowd. If …
-
Mysql Error
07 July 2008
Read moreI was running an import script today taken from a mysqldump from another user, when I saw an error that looked like this:
ERROR 1005 (HY000) at line 123: Cant create table (errno: 150)
This is caused by a mysqldump or export process exporting tables in alphabetical order and not …
-
Vim Macro: cleaning up line endings
01 July 2008
Read moreWhen development teams have people working on a variety of platforms, its pretty common to end up with wrong line endings. In vim these will look like ^M at the end of each line. To get rid of these line endings you can use the following command (in command mode …
-
Serendipity and Feed Problems
29 June 2008
Read moreThis site uses a blogging platform called serendipity which is a nice little tool and I've been mostly happy since moving across from textpattern (I did write about the experience). Recently however, a few things have been going wrong with the feeds.
I edited an old post, because the image …
-
Zend Core Mysql Error
27 June 2008
Read moreI've had this error more than once. On a debian virtual machine, with Zend Core installed, and when mysql doesn't restart when the machine reboots. It looks something like this:
debian:/usr/local/Zend/mysql/bin# ./mysqld 080627 12:31:16 [ERROR] Can't find messagefile '/usr/local/mysql/share/mysql …
-
DPC Interview
24 June 2008
Read moreSo, at the Dutch PHP Conference, they were making a video and they interviewed me. The video is at http://www.bachelor-ict.nl/dpc and it is also featured in this article on DevZone which is exciting! The video is mostly about the PHPWomen organisation, rather than my talk but …
-
DPC Day 1
13 June 2008
Read moreWell, its a misleading title because the day is only half over but the Dutch PHP Conference 2008 is well and truly underway! Today I've been in the Zend Framework tutorial given by Matthew Weir O'Phinney, which is a full-day session. Its been excellent - with some concepts, some examples, and …
-
Dutch Conference
12 June 2008
Read moreToday I leave for Amsterdam, to visit the Dutch PHP Conference where I will be getting my first experience as a conference speaker. It would be fair to say that I'm very nervous - its a high profile event and the other speakers in the lineup are pretty amazing!
When I …
-
Baby Courgette Plants
01 June 2008
Read moreRecently my friend Deb, Leeds Geekup organiser and Ruby developer, gave me two baby courgette plants ... she even went so far to photograph me, slightly tipsy, leaving the pub to get the bus home:

I did get the plants home intact and planted them out. I was going to post …
-
Manchester Is Decidedly Undiverse
14 May 2008
Read moreSo last night, more or less on a whim, I popped to the Geekup that was on in Manchester. I was slightly alarmed when I enquired at the bar where the event was and was told there was nothing like that booked for that night ... anyway I wandered outside and …
-
Inaugural Sheffield Geekup
08 May 2008
Read moreLast night I attended and spoke at the First Sheffield Geekup held at the Fat Cat in Sheffield. My talk was entitled "Deploying Web Projects with Subversion" and you can see the slides for that at http://www.slideshare.net/lornajane/deploying-web-projects-with-svn/.
Overall I think the event was well-organised, there …
-
Geekup Sheffield
30 April 2008
Read moreI was very pleased to hear that Sheffield is getting its own Geekup event, and that it starts next week on 7th May and will run on the first Wednesday of every month. I was even more pleased to be asked to speak at it - I'll be giving a 20 …
-
SugarCRM SOAP Data Types
24 April 2008
Read moreSince SugarCRM only works with PHP5 in non-WSDL mode, I had to create all my calls from scratch. The SugarCRM documentation is somewhat minimal, as I may have mentioned, and I found I was mostly reading the WSDL to figure out how to format my SOAP calls. I've put together a post with working examples but I've also assembled a list of the data types needed. Click through to read more.
-
SugarCRM SOAP API Examples
24 April 2008
Read moreBy popular request, here are some examples that worked for me when using the SOAP API offered by SugarCRM. Its nice that there is an interface, but it isn't brilliantly documented or nearly as widely used as it should be!
SugarCRM can't talk to PHP 5 native SOAP libraries in …
-
Installing VMWare Tools
21 April 2008
Read moreI recently did some work with Debian Etch virtual machines which I downloaded from the good people at thoughtpolice. Here are my notes on getting the VMWare tools added to that machine.
To be able to do anything interesting with a virtual machine, you need to install the VMWare tools …
-
VMWare Virtual Machines on NTFS
17 April 2008
Read moreI keep having a problem with my virtual machines. I'm running kubuntu but the virtual machines are on an NTFS partition (because I use them from windows occasionally). The error message appears at startup and goes like this:
VMware Player unrecoverable error: (vcpu-0)Failed to allocate page for guest RAM … -
Geekup Talk
17 April 2008
Read moreI did mention recently that I had arranged to speak at the local GeekUp group. Well, the event itself was last night and although I did have speaking nerves I think it went OK.
I've uploaded the slides I used to Slideshare, so you can find them here. The talk …
-
Speaking at GeekUp in Leeds
13 April 2008
Read moreThis week I will be giving a 20:20 talk at the GeekUp event in Leeds, entitled "Enterprise Web Development". The 20:20 talk format allows talks with 20 slides, with 20 seconds allowed for each slide. Wish me luck :)
If you're local to Leeds, I'd love to see you …
-
LornaJane Moo Cards
08 February 2008
Read moreWhenever I attend a conference or other geeky gathering (GeekUp for example) I'm often asked for my card ... but I don't have one. I don't have work business cards, because only sales people need those, and I don't have personal ones because I don't freelance (or not usually). I finally …
-
PHP Women at PHP London
28 January 2008
Read moreOn Feburary 29th the PHP London 2008 conference will take place in London. Things have been very busy for the guys organising, there have been a few tweaks to the schedule but its looking like things are coming together nicely. I'm all set and have booked tickets and a hotel …
-
PDO for PHP on Ubuntu Edgy Eft
14 November 2007
Read moreToday I was asked to add PDO support to PHP on our development box, which I thought was running Ubuntu Feisty Fawn. The first problem is that it's not running Feisty Fawn, its running Edgy Eft, which is an older version. The next problem is that the PDO libraries weren't …
-
No Blogroll
07 November 2007
Read moreI've had a few requests recently to exchange links or to add people to my blogroll, its a way of giving a bit of kudos to people that you admire and whose work you read. The thing is, I don't have a blogroll, and if I did I fear it …
-
Women Together
09 August 2007
Read moreMost people know that I’m active in the phpwomen community, women in technology is something that I really believe in but won’t start ranting about right now (or I’ll not get round to what I was going to say!).
Today I’m getting to grips with irssi …
-
Textpattern To Serendipity
07 August 2007
Read moreI’m planning on migrating this site to a new platform soon, I’ve been looking around for an alternative to textpattern. Textpattern has been great but I’ve kind of outgrown it. Its easy to use but a bit “fluffy” and it eats my code excerpts which is really …
-
Seeing stderr from PHP exec()
27 July 2007
Read moreToday I was using the PHP command exec() in a script, which runs whatever you pass to it as it you had typed it on the command line. Its possible to check both the output of the command and the return value, which I did since I wasn’t getting …
-
Posting with images in Joomla!
15 May 2007
Read moreThe other day I was helping someone post to a website that I set up using Joomla! , and thought that others might find this tutorial helpful.
Start with the “Media Manager” button on the front page. This is so you can add all the images. Directories can be added here …
-
PHP Best Practices
26 March 2007
Read moreThere’s a new thread started over at phpwomen.org about best practices for programming with PHP, which will make interesting reading for anyone looking to improve their skills. I’ve been really brave and contributed one of the articles, PHPDoc: Comments are your friends.
People are all contributing a …
-
PHP Throwdown Icon
23 March 2007
Read moreAs you may remember we participated in the PHP Throwdown a while ago. Well Elizabeth has sent out the icons to competitors who successfully got through the 24 hours and submitted something which vaguely conformed to the rules. You can see ours on the left :)
-
Does PHP know itself?
23 March 2007
Read moreI’ve run into a problem with a framework I’ve been contributing to. It has a bunch of objects, which look a lot like rows in database tables. So there are pages and each page object is a row in the “pages” table in the database, with a primary …
-
PHP register_globals is ON
08 March 2007
Read moreI started writing PHP when I was at University, in 2001 or thereabouts. Having checked the dates it looks like I did technically write PHP before PHP 4.3 was released and register_globals went out of fashion. I don’t recall it though and obviously its been a while!
Today …
-
UK PHP Conference: The Roundup
02 March 2007
Read moreAs promised, here’s a more in-depth update on our trip to the PHP London Conference last week. I’m sure there are others who will write more fluently and accurately about the talks, but here’s what I brought home from it.
Cal Evans: My First Mashup
Cal is …
-
UK PHP Conference: The Highlights
25 February 2007
Read moreI’ve been away for a couple of days at the UK PHP Conference in London. Due to the unique way that train ticket prices work here, it was wildly cheaper to travel a day either side of the day we actually wanted to be in London for which allowed …
-
CMS Promiscuity
11 February 2007
Read moreThis site is run by textpattern, I’ve used it a few times and I love it. In addition you may have read about my recent encounters with Joomla! .
This week I’m trying out Serendipity for another site and its quite a change. For a start I haven’t …
-
PHPThrowdown Coding Contest
28 January 2007
Read moreThis weekend, Kevin (boyfriend) and I took part in the first PHPThrowdown event. While its true that programming contests aren’t new, I haven’t seen one that seemed relevant to me for a while and they do take a lot of organisation – so kudos to the organisers including fellow …
-
Why PHP isn't so bad
13 January 2007
Read moreI love PHP. I’ve worked with a fair number of languages and I have to say that I absolutely love PHP. I love its cleanliness, its elegance, and its fabulours online documentation and community support.
I come across a lot of people in various walks of life who rubbish …
-
Joomla! Brief And Pretty URLs
12 January 2007
Read moreWell the website for my netball club is definitely going ahead, They are even more up for it than I imagined! So you can find the new site at www.shipleynetball.org.uk and hopefully it will actually get some content soon.
Installing Joomla!
I installed a new copy of …
-
London PHP Conference
12 January 2007
Read moreIts all sorted and we’re booked onto the London PHP Conference in February. Its a bit of a geeky thing to do as a couple I suppose but I’m really looking forward to it. There are some speakers that I will be positively star-struck to see in the …
-
Dating Joomla!
11 January 2007
Read moreWell its early days in our relationship but so far, Joomla! and I are getting along just fine. Since I installed it I’ve had a proper fiddle with most of the bits and pieces (mostly turning things off actually!!) and now its looking much better.
Since I’ll want …
-
PHPWomen: A Community is Born
23 October 2006
Read moreThis post has been a week or so in the making, I just wanted to find the right words to tell the story. I saw a post on the PHP DevZone saying that Ligaya Turmelle wants to hear from women in PHP.
Well I hopped right across to the her …