LugRadioLive Wolverhampton 2008

Yesterday I had an outing to the LUGRadio Live event in Wolverhampton. To be honest this isn’t my usual kind of crowd but it was local, the talks looked interesting and so off I went.

Well it was a very interesting day – the highlight was of course meeting Emma from emmajane.net – I enjoyed her talk and also her company for both lunch and dinner. Predictably there was an excellent crowd and I had a wonderful time – a few people were there from WYLUG and I had a really good chat with Robert Collins from Canonical, nominally about bzr but in reality we also put the world to rights which was illuminating and good fun. Here’s me and Emma having dinner:

I met a few IRC friends too, some I knew before, some I was hoping to run into and one who stopped me (in my phpwomen shirt) and went “oh, you’re the UK girl from phpwomen …. lornajane!!” which was very cool :) I was also impressed by the “low tech wiki” and “low tech open streetmap” … large pieces of paper and pens.

I also met Dave and Kat from Pale Purple and had a good long chat with them so all in all it was well worth the trip (there are a few more photos in the flickr set if you’re interested). Well done to the organisers for a great event!!

LugRadio Live UK

I’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 you are there, please come and say hi to me – I’m very easy to spot because I am tall and female with curly hair, usually a rare combination at any technical gathering :)

Circuitboard Cake

There’s a birthday in my household this week so I have been making a surprise cake, which I do every year. Apart from the year where all our stuff was in storage and I only had fairy cake tins, where I made surprise fairy cakes instead! This year I went slightly overboard and created a circuitboard cake! In fact it was an astable multivibrator circuit, in case you’re interested – see http://www.play-hookey.com/digital/experiments/rtl_astable.html.

First I made the cake, and dyed a whole load of white roll-out icing green. I also dyed myself green which you would think would give away my secret mission but happily he is less observant than I feared. Then I iced the cake – this was my first mistake because I forgot to put something over the cake to make the roll-out icing stick! Usually either watered-down icing or jam is good.

sponge cake iced sponge cake

I had a whole stack of packets of sweets to use to create the components from. I needed transistors (round liquorice with a flat bit sliced out of them), LEDs (jelly dolly mixtures), capacitors (round dolly mixtures), and resistors. The resistors were easily as complicated as the whole of the rest of the components put together and next time I will just buy as many colours of write-on icing as I need to do the stripes! In the event I made the stripes out of various things wrapped round marshmallows, including red laces, the offcuts of the green icing, bits of liquorice chopped really small, and (for the orange and brown) coloured bits of dolly mixture, separated from the white bits of sweet, mashed together, rolled out, and then cut into strips.

raw materials edible components

So, here’s the finished article (and a closeup of a couple of the components)

completed cake

edible component closeup

Ever Feel Like You’re Being Followed?

I’ve been using twitter for quite a while now, around a year. And so far, its not going brilliantly.

The problem really is that I don’t “get” twitter. I am not online 24/7 so I often only look at my feeds once per day. The conversation in twitter moves faster than that so I rarely reply because usually I’ve missed the moment. Friends in various timezones also don’t help that situation. I haven’t really worked out what to do with twitter … I linked my facebook status to it so that updating one would cause the other to update, thinking I might eventually understand what it was all about.

The only thing that’s really changed since I started using it is the number of followers I have, there are more than I really expected. To put this in perspective, I follow twelve people. But seventy people follow me! Not many are complete strangers, some are colleagues, others are online friends. Some of them I would like to follow myself but they are too noisy and since I don’t keep up with updates in real time, that doesn’t really work for me. I do rather feel like I’m addressing an audience though, slightly spooky.

My twitter timeline is public – this is the point of twitter, its a mass collection of one-liners. It allows clever tools like Summize to show you all posts with given text in it, and things like that. Which is useful if people are talking about you, as I discovered when I was a conference speaker. But it does feel a bit, well, public.

The bottom line is, I’m fed up with twitter, I don’t know what to do with it and having more audience is actually making me post less (a bit like being syndicated on the php-planet feed really!) and its so unreliable that half the time when I remember to update, I can’t. There’s lots of talk of moving to a rival but nobody seems prepared to make the jump. I am completely prepared but I can’t find anything to jump to! I looked at Plurk but I have accessibility needs and it doesn’t come close to being usable for me. At the moment I think my favourite is FriendFeed – which has the added advantage of being configurable to be private other than to people I approve. It also syndicates people’s blogs, flickr accounts, and all sorts of other things, including twitter – so if we all moved to friendfeed then everyone can choose their own twitter replacement, or change it every month, and nobody needs to know because each user manages what goes into their feed that other people see.

I’m not sure if I’m moving away from twitter, stopping using it entirely, or what. Suggestions/comments/experiences are all very welcome!

Home-Sewn Cushions

I have a little sewing machine and a newly-decorated living room. So what could be more obvious than making new cushions for my sofa? I’m planning a whole set but here are the first two:

Two new cushions

The one on the left is my personal favourite, it is felt flowers just cut out and then stitched onto the cushion with embroidery floss and running stitch. The other is the first one I did, with lovely turquoise beads sewn on and then stitching around them. Here are a couple of close-ups:

bead cushion close up flower cushion close up

The first cushion has an interesting overlap on its back, where my spatial awareness failed me when trying to sew layered overlapping things together inside out. The second time, I pinned the first seam while the cushion was the right way out, so I could be sure which way it would end up!

Mysql Error

I 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 in the order in which they rely on one another. My tables had foreign keys which fail on import if the other table doesn’t exist when you create the table with the key. In this case I was only importing six or eight tables so I simply opened the script in a text editor and re-ordered the import blocks. On a bigger scale a more technical solution might be required!

A Turtle and a Giant Baby Blanket

I’ve just finished another slowpoke, like one I made earlier, and this one is at least as cute!

slow poke in the sun slow poke

I realised after finishing this one that they original pattern has them with their heads looking sideways, maybe this is why mine always look a bit strange!! This one also doesn’t have a tail … when I came to assemble him, I hadn’t made one and somehow it just never happened.

My next project is a square (or maybe more than one, who knows?) for the Oxfam Baby Blanket campaign. The plan is for loads of squares to be knitted and joined together into one large blanket which they display places to campaign on the state of maternal mortality in the world. Then they’ll turn the squares into lots of baby blankets to be sent to places where they will be useful. I think its a great cause, this is how I’m doing so far:

charity square start

If anyone else is knitting for this then add a comment!

Vim Macro: cleaning up line endings

When 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)

:% s/^M$//

To type the correct ^M character, you’ll need to press Ctrl + V followed by Ctrl + M (the first combination means “take the next combination literally).

To turn this into a macro you should do the following. In command mode, pressq, followed by any letter. This will be the shortcut to access the macro. Then type the command as above. Finally, press q again to stop recording and its done. You can use your macro by pressing @ and then the letter you chose.

Serendipity and Feed Problems

This 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 links were broken (I did have a nightmare migrating because I was so inconsistent about the format of the image tags in textpattern, completely my own fault). I was very careful not to update the published date of the article, however the edited article appeared in the feed, which wasn’t what I had in mind! It turned out that this is by design. On line 262 of includes/functions_entries.inc.php (I have serendipity 1.1.3), I found this:

$cond['orderby'] = 'last_modified DESC';

I’ve commented out this line, which was in an if($modified_since) clause. Hopefully this will stop updated entries from appearing in the feed – I have a few other old ones to fix images in so we’ll soon see.

At around the same time, Ivo mentioned that he was seeing the order of posts change in his reader (google reader) when people commented on my posts. I suspect that this is part of the same issue and I’m optimistic of it also being fixed by this change. However when I was looking into the problem I noticed that the URL he was using to access my feed, http://lornajane.net/index.rss2, actually returned RSS 0.91. Not ideal! The problem is the rewrite rule in serendipity’s .htaccess file, which looks like this:

RewriteRule ^(index|atom[0-9]*|rss|b2rss|b2rdf).(rss|rdf|rss2|xml) rss.php?file=$1&ext=$2

When you request index.rss2 it should rewrite to rss.php?file=$1&ext=$2 but the “rss” matches first so the user gets redirected to index.rss instead. As a nasty hack to get around this I removed the rss from the above example and gave it a line of its own:

RewriteRule ^(index|atom[0-9]*|rss|b2rss|b2rdf).(rdf|rss2|xml) rss.php?file=$1&ext=$2
RewriteRule ^(index|atom[0-9]*|rss|b2rss|b2rdf).(rss) rss.php?file=$1&ext=rss

Requests to index.rss2 are now correctly rewritten as rss.php?file=index&ext=rss2 and will get RSS 2.0 format in the response. I have just noticed however that this is the most requested page on the site so I really hope I didn’t break anything!

Zend Core Mysql Error

I’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/english/errmsg.sys'
080627 12:31:16 [ERROR] Aborting

This is for two reasons. First: you need to be up one level of directory to be able to run these commands. Some errors will tell you that but this one doesn’t. Secondly, you need to use the mysqld_safe command.

debian:/usr/local/Zend/mysql# bin/mysqld_safe
Starting mysqld daemon with databases from /usr/local/Zend/mysql/data

This works for me – I have no idea if it is the prescribed method but background the process above and you’re good to go.