Speaking at OggCamp

I’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 also a scheduled track of talks alongside the usual unconference content.

I love oggcamp for the sheer randomness of what I learn there. I’ve variously seen talks on home automation, mapping, operating systems, politics … the list is pretty long. This year, it’s in Surrey, on the same weekend as the final deadlines for my book so I figured I’d have to give it a miss. But when I got an invite to speak on the scheduled track, I realised this was the omen I needed, and accepted at once!

I’ll be giving a talk entitled “Open Source Your Career” – a talk which brings up an aspect of open source that we often don’t discuss; the personal rewards that an individual can gain from being involved in open source. If you thought it was all about altruism, think again. I’ll be bringing anecdotes, from my own career and others’, about how the best way to fast-track your professional growth. See you in Surrey :)

First Steps with GraphViz

This 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.

Continue reading

RepRap Masterclass

I 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.

Continue reading

Using Modelines in Vim

I’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 to keep just these files consistent in their layout. Enter vim’s modelines feature!

You may have seen this, a comment line at the start or end of a document which gives the settings for vim to use, something like this:

/* vim: set sw=2: */

This is a modeline in vim. I tried adding my own at the top of my sourcefiles, but vim seemed to ignore them. It turns out that modelines are disabled in vim by default (for security reasons) but you can easily turn them on in your .vimrc with:

:set modeline

The only change I want to make is the tab sizes which is why I use the line above. The vim modeline documentation is the best place to go if you want to add options of your own to this line

The Worst Way To Find Women Speakers

I 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. Continue reading

Apache on Ubuntu/Debian

Apache 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.

Continue reading

Marking up Tables in LaTeX

Recently 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:

\renewcommand{\arraystretch}{1.5}

To define a table, you use the tabular keyword and define your columns using l, r or c depending whether you want each one right, left or centre justified:

\begin{tabular}{l | l}

Continue reading

Combining PDF Files With Pdftk

I’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. Continue reading

Git Tip: What Did I Just Merge?

As 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 problem and give good feedback. Since the project is hosted on Github, this means having some git tricks up my sleeve, and I thought I’d share.

I have the main repo cloned onto my local machine. Before I do anything, I fetch and merge from the origin and then push back to it, so I know my repo is in sync with the github one. Then I fetch the branch I want to merge – usually one that we’ve got a pull request for. To see what’s in the branch:

git log [branch] --not master

This is nice because it doesn’t show what’s in the master branch of this repo but missing from the incoming branch, it just shows me what’s new on this branch.

I can diff and merge at this point, but more than once I’ve merged and then wondered what changes I have in my repo that aren’t in the github one (this is where it is helpful to have fetched from the remote one first). I have the github repo mapped as “origin” as per the excellent documentation so I can just do:

git diff origin/master..HEAD

This shows me the differences that are in my current repo as compared to origin/master, which is the tip of the main repo shown at the version it was when I last fetched it. I particularly use this when I’ve merged someone’s changes in for testing and am wondering quite what was supposed to happen – sometimes just reading the diff beforehand isn’t enough, it’s only when I get the code merged I realise something unexpected is happening!

PDF Presenter

Recently 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. Happily for me, there’s a PDF Presenter Console on github and it does what I need!

Getting the thing installed was a bit of a puzzle as it has many dependencies (and that’s just the compiler) but I now have it working like a dream on both my laptop and my netbook. I discovered that it didn’t work with my presenter mouse but with a bit of help from a friend, I have a patch for that and now when I’m presenting I see something like this:

You can set which screen show this, and which shows just the main slide, and you can also set what duration the countdown timer should start from. One really key feature is that the timer doesn’t start counting until you advance from the first slide … unlike in open office where I usually put up the title slide during the break before my talk, then have to stop and start the presentation to reset the clock so I’ve got some vague idea of my running time!

So in true open source form, there’s a tool out there already (thanks Jakob, and thanks for responding to my emails!), and I was able to adapt it to my use case, or rather Kevin was able to! I would love to have the presenter console packaged so I could recommend it for more users, but for now I have a great open source solution enabling me to do what I’m good at – delivering content.