Anya Rose Goodwin

So, here’s the quick story.

At around 12:01am (midnight) on Wednesday 16th of June, Kat asked me to put the TENS machine on (as per this) and soon after I went to sleep. She stayed downstairs on the sofa “I can get comfy on there…” and I believe she slept between 2am and 4am. In retrospect this may have been the transition period.

As background, she was already a few days overdue (due date was the 11th of June 2010) – and she was due to have a sweep later in the day to hopefully move things along a bit.

Anyway, at 4am (or so I think it was), I woke up to hear her panting up the stairs (“Oh, that sounds like it might be soon”, I thought). She confirmed this by soon screaming a little in pain, and telling me to sort Rowan out and that we were going to hospital soon.

I woke Jenny up, but she was clearly in a zombie mode – and I guess it might have been towards 5am when we dropped Rowan off with her. At this point in time Kat was crouching on the back car seat screaming a little (enough to worry Rowan). I therefore left a crying toddler with Jenny, trying not to panic myself.

Next up – I phoned the delivery ward in Redditch (5:10am according to my phone) – and wasn’t particularly impressed to hear a “Sorry, we’re full, we might need to send you to Worcester… I’ll phone you back after I check”. While waiting, I drove to our office (as it’s located in the right direction) and waited to hear back. At 5:14am they rang back, and I spoke to them for 20 minutes; at the same time, Kat was out of the car on all fours screaming quite loudly, and the midwife had instructed me to get a towel out ready – hence an ambulance was ordered for us. I think Kat was slightly crowning a little at this point in time. I couldn’t tell if it was just her pushing (uncontrollably) or it if the baby was actually coming out. She was having contractions at least once every three minutes.

The ambulance seemed to take forever to reach us (in reality perhaps 10-15 minutes). It’s very demoralising to see an ambulance fail to find you…  but it did eventually. We were fortunate to also be near to a local midwife, who was very good in turning up on the scene moments after the ambulance.

At 5:34 I finished talking to the midwife on the phone (and rushed off a quick tweet to maintain my geek cred on twitter). I was confined to the front of the amblance, so couldn’t see anything, and could only hear Kat screaming.

As we were about to leave the M5, I head “blah blah blah BABY” followed by a “Waaah” … at which point I realised I wasn’t going to get to see the actual birth. (tweet) Kat gave birth at 5:54am. I grabbed a quick photo or two once the ambulance had pulled up – hence this tweet and accompanying photo

Kat and Anya - in the ambulance
Kat and Anya - in the ambulance

In Worcester hospital itself, they quickly established breastfeeding, she was soon weighed (9lbs), and I took a few random photos and this and this (my favourite).

naked, about to be weighed
naked, about to be weighed
Daddy David and Anya
David and Anya Goodwin
first milk
first milk

By 10am, Jenny and Helen visited, bringing Rowan who met his sister for the first time – he was a little unsure of what to make of it… we all then left (leaving Kat and Anya to themselves) so I could retrieve the car from Bromsgrove. When we returned at about 11, we waited for the midwives to do their paperwork, and eventually left – giving us just enough to get to RhythmTime (13:20?) in Bromsgrove. After this we went shopping (Asda) and then home. On meeting his sister the second time Rowan was much more at ease – and wanted to hug / hold / cuddle / kiss / stroke her.

Kat was quite energetic and on somewhat of a high during the day – and in our first night at home, Anya only woke once (at 2am).

Twitter Weekly Updates for 2010-06-13

  • Waiting to eat carvery, toddler asleep http://twitpic.com/1wg1i4 – too many strawberrys earlier perhaps ? http://twitpic.com/1wg1oz #
  • Chav neighbours are armed with an air horn. *sigh* #
  • the problem with chocolate digestives biscuits is failing to resist the urge to have another. Thanks mcvities. #
  • Waiting for someone to calculate the volume of carbon emissions from the Google homepage background image thing #
  • Chav branded house … http://twitpic.com/1vbj39 #
  • 220 quid or thereabouts for me to 'upgrade' to an iPhone 4. Hmmm #
  • RT @O2 Want to know how to upgrade to iPhone 4? Details are now online at http://j.mp/iPhoneOnO2. #
  • Who's sheryl cole, why is she woman of the year ? #
  • is no Gordon Freeman #
  • Off to run in the rain. Sweet. #
  • What we've got here … Failure to communicate. #
  • I <3 git. #geek #
  • RT @steve_parkes RT @MJHibbett: Saw a white van WITHOUT England Flags at lunchtime. What's the anti-terrorism hotline number? #
  • The dog eats banana. WTF ? #
  • Wow. I never knew Nottingham was so near Dover… #robinhood #

Twitter Weekly Updates for 2010-06-06

  • RT @grifferz http://riotclitshave.com/2010.05/16lwj9j.jpg "don't leave pumps unattended bp…" #
  • Wondering why my neighbours would willingly spread what smells like rotting silage on their garden. #
  • Treasure island is nearly empty. Shocked to find space in the car park. Perhaps this is a hint we should be outside #
  • I appear to be teaching Rowan new words. "Bollocks" – a word to be said after you tread on dog poo. #
  • The bad thing about falling asleep with the toddler is waking up a couple of hours later and needing to wash up. :-/ #
  • Thanks for the YESSSL promo code GoDaddy 🙂 (SSL cert for $15 all in for one year…) #
  • White chocolate cookies, because they're healthier than the others….. #
  • Move over cakes, it's an ice cream only office till autumn. Hmm cakes with ice cream inside – best of both worlds perhaps? #healthyeating #
  • RT @GeneHunt I'm just a social drinker, every time someone says, 'I'll have a drink'. I say, 'Social I.' #
  • RT @GeneHunt Threw my Hoover out last week – it was only gathering dust. #
  • Falling asleep with Rowan and then waking up at 22:00 wasn't a good idea. But have moved to level 15 on TDPE2 … (PerhapsAShadyTree.aspx) #
  • Found a 2+ year old bug in legacy code today. > instead of == ….. *sigh* ( bug in inherited code ) #
  • New employee set off the building burglar alarm when trying to leave. Haha. I clearly suck at inductions. #
  • Late night toddler feast. Cannibalism FTW. #
  • That was a shit run. Body seems to be rebelling (left hip, stomach etc). #

Twitter Weekly Updates for 2010-05-30

  • (running is probably a better idea than spending the rest of the day playing half life 2… ) #
  • Lets try Bromsgrove to Droitwich with some canal – 20 miles – http://gb.mapometer.com/en/running/route_481046.html … run fatty run #
  • Cooling down, ready for ice skating. #
  • I've been good and registered my phone + laptop at http://www.immobilise.com (to help the plod reunite me in the event of theft) #
  • RT @plc: "An Apple store was burgled with over £10,000 of goods stolen. The police are confident they'll be able to find both computers." #
  • Electric meter replaced; book read; perhaps i should pretend to work now (aka buy a mobile phone) #
  • About to get bitten by vampires (giving blood) #
  • Hmm. 4square crashes 4 times in a row as I try to claim Costa coffee. #conspiracy #
  • What's the dog trying to tell me when he turns off my computer ? #
  • Happy my neighbour has mowed my lawn. Odd she hasn't done all of hers though. #
  • I know now what it's like for a chicken when it's put in the oven. #
  • That was a nice pasty. Perhaps I should come to pershore more often. #
  • Come on the m5. #
  • I can wear shorts and t-shirt to/at/from work. Enjoy wearing your suits suckers. #

Twitter Weekly Updates for 2010-05-23

  • Hot. Lots of women wearing pink. #raceforife #bromsgrove #
  • At last. Summer is back. We'll soon be moaning it's too hot. #
  • Love pacman at http://google.co.uk. Wonder how much this has cost the country in wasted work time ? 😉 #
  • Grr. 4sq Is vaguely intelligent. To think I might have to go inside the places I visit and stay there for a bit. #
  • There are too many smug people around today, who are strangely happy considering some chav has stolen the roof off their car. #
  • If the council paid me £1 a go to pick up other peoples dog poo, I'd be rich. #bromsgrove #
  • Must stop laughing at the 'new' dog (well he's had a good coat trim) #
  • First 2 applications from Aston uni students for an industrial placement year are failures – customise your cv/letter for the job! #
  • I wonder how much of bromsgrove I can rule over in 4square #
  • An interesting end to season 1 of V … good episode. #
  • RT @OpenRightsGroup Nick Clegg asks what laws to delete, tell your MPs, the #DEAct http://bit.ly/repeal-the-dea #DEBill #
  • An eventful but uneventful night. Everyone's tired Jim. #
  • Check out my OnePage card at http://myonepage.com/david.goodwin #onepage #
  • RT @GeneHunt I liked the idea of being married. It's great to find that one special person you can annoy for the rest of your life. #
  • RT @jakebible Dead Mech Episode 19 is so gonna put a mechanized boot in yo ass! Subscribe at http://jakebible.com (plz RT) #
  • Learning about vaginal dividers, dual cervixes and horned uteruses. I'm glad I'm not a woman. #
  • RT @birminghampost Woman banned from drinking in public found drunk in Bromsgrove street http://tinyurl.com/39lw3oc #

Twitter Weekly Updates for 2010-05-16

  • I've never walked a dog which can't make it up a small hill without collapsing in a panting heap. #
  • The neighbours are walking a young cat on a lead. Guess they're trying to keep up with the girl who walks a ferrett in town #bromsgrove #
  • RT @GeneHunt A prisoner escaped last night, she's a clairvoyant midget. We're warning the public that there's a small medium at large. #
  • RT @GeneHunt You know what it means when you come home to a little affection, tenderness and sympathy? It means you're in the wrong house. #
  • RT @grifferz Believe me, it's possible. http://www.lamebook.com/wp-content/uploads/2010/05/PhoDohs1.jpg nice spelling. #
  • RT @PalePurpleLtd Looking for professional php dev. Contract or full time. See http://bit.ly/cbk1H1 #
  • I wonder how often someone types in a bit.ly URL incorrectly and gets/leaves a rude surprise. #
  • I signed the petition to repeal the Digital Economy Act http://bit.ly/deapetition #DEBill #DEAct #GE2010 #
  • Right, time to run off this stupid sore throat and looming crapiness. #
  • I'm mentally washed out now. Time to degenerate down to a 2 year old's level soon. #
  • Strange sales pitch about sales training with someone from Sandler Training (anyone come across them? http://uk.sandler.com/) #
  • Everyone will suffer now; everyone will suffer now. You can't help yourself. #
  • Run away (for 40 minutes) #
  • Dear Twitterverse: Is Nightmare on Elm Street any good / worth watching?
    http://bit.ly/9PrXdg #
  • Don't use phpunit from Debian Lenny (v3.3.16) – full of fail; Install via pear. My tests now pass; I now get code-coverage reports. Win. #
  • Toddler clearly deciding that he should have a lie in. In the interests of Good parenting I can't get up till he does … 😉 #
  • Today's discovery – orange marmalade with ginger. nom nom. #
  • 35 weeks http://twitpic.com/1mn5vm #

Twitter Weekly Updates for 2010-05-09

  • Just found Prey – remote tracking of laptop etc incase of theft … http://preyproject.com/ #osx #linux #windows #
  • Stripping done, holes filled; now to get the gun out and do some kinky latex^h^h silicone sealant stuff … Then lawn mowing. #
  • Roast lamb after 17 mile run seems good. (2.5 hours; worship me) #
  • 10k isn't far enough – let's do http://gb.mapometer.com/en/running/route_578234.html instead. #
  • RT @UKLabourParty We need 100,000 people to retweet if you want Proportional Representation #
  • Suggestions on how to stop a dog chewing stuff when he's left alone welcome. (attention seeking?) has bone etc to chew …. #
  • Think I'll wait for an android like ipad or spend the money on an iPhone v4. #
  • My tummy and bed are now a drum with toddler hand sized drumsticks beating away. #
  • Ah that's better. Second waking at 9am. This is more civilised. #
  • Waking at 550 on a saturday is not ideal. #
  • Right. Time to cudde up to the boss and fall asleep. #
  • RT @GeneHunt Why is it that one careless match can start a forest fire, but it takes a whole box to start a barbeque? #
  • Is rowan trying to give me a hint by the way he's washing the bath (as opposed to washing himself in the bath) #
  • Emergency chocolate fix applied. Recovery underway. Now I want more …. #
  • Sweet. I definitely don't need a tv license – http://bit.ly/3s3jM9 & still use iplayer #
  • RT @alexmace This is exactly why I voted Lib Dem: http://bit.ly/bhfwgw RT if you did too. #votelibdem #
  • #ukvote B61 #
  • Git is too quick. I have difficulty accepting it's done anything – perhaps it should sleep(1) to give me confidence it's done something. #
  • I've just registered my opinion for my constituency for #ge2010 at http://www.twitVoteUK.org.uk, why don't you? #twitVoteUK #
  • Fixing your router's WIFI since 1903 #
  • TV harms children / toddlers / babies – http://news.bbc.co.uk/1/hi/health/8654963.stm – no news (haha) there then (or surprise) #
  • Haha. I've had the window open and blinds drawn in the office for at least an hour and the minions haven't noticed / burnt from sunlight. #
  • Damn you ubuntu – updates to an existing release shouldn't break everything. Grr. #
  • There's a horrible smell of burning plastic/dead computer in the office and my desktop is unwell. Are the two linked? Fuckitallnotagoodday #
  • Guess I should run. 10k race this Sunday. Still doing 6 miles this morning isn't much shorter. #lazyweekend #
  • RT @GeneHunt I'm proud of my Grandfather. He shot down two German planes. Admittedly that was in 1972 but you can't be too careful. #
  • Iron man 2 perhaps. #
  • Stupid hail. It's summer. Get lost. Come back in November. #

Trac and Git on Debian Lenny

Random Brain dump – Trac 0.11 with Git on Debian Lenny; this worked for me …

We’ll use /var/git/ as the location where our git repositories live – e.g. /var/git/repository1, /var/git/repository2 etc.

So, assuming you have git-core installed, create the Git repository:

mkdir -p /var/git/repository

cd /var/git/repository

git init –bare

Next, install the trac-git extension so trac can do ‘git’ like things:

apt-get install trac-git

Ensure the WebDAV FS module is enabled in Apache:

a2enmod dav_fs

And Expose where the Git repository is on the web server – e.g.

cd /var/www
ln -s /var/git git

And add something like :

<Location /git>
     DAV on
</Location>
To which ever virtual host file has /var/www as it’s document root (probably ‘default’); this should then mean that any git repositories you create in the future will automatically be exposed via Apache. It should go without saying that you should put some sort of Apache authentication check on this location.

Next, let’s create the Trac Repository:

trac-admin /var/trac/repository initenv \
     repository sqlite:db/trac.db git /var/git/repository

Configure Trac to do Git things:

Edit /var/trac/repository/conf/trac.ini and make sure it contains something like :

[components]
tracext.git.* = enabled
[git]
cached_repository = false
git_bin = /usr/bin/git
persistent_cache = false
shortrev_len = 7

Finally, just make sure permissions are correct:

chown -R www-data /var/trac/repository
chown -R www-data /var/git/repository

Then finally, restart Apache, point your web browser at the trac repository (assuming you’ve already setup Trac via e.g mod_python or similar) and you’ll probably seen an AssertionFailed error (with no helpful message). This seems to be a one off when the repository is empty… so try :

mkdir ~/src/tmp
cd ~/src/tmp
git init
echo 'test' > hello.txt
git add hello.txt
git commit
git config remote.upload.url https://user@remote.host/git/repository/
git push upload master

(If this fails with some unhelpful message like :

orange:~/src/tmp $ git push upload master

....

error: Cannot access URL https://david@remote.host/git/repository/,
      return code 60

error: failed to push some refs to
      'https://david@remote.host/git/repository/'
It’s probably moaning about you having an invalid (or at least non-trusted) SSL Certificate (as I happen to) – create ~/.gitconfig and set it to contain :
[http]
sslVerify = false
You might also wish to read this kernel.org doc on git setup with Apache

Twitter Weekly Updates for 2010-05-02

  • Good luck with the #dyfienduro mtb'ers. #enduro #mountainbiking #Machynlleth #
  • Time to say goodbye to "cd /pub; more beer" (t-shirt). You've lasted at least 10 years but now look a bit too old. #
  • I tried to get some non-dull coloured clothes. http://twitpic.com/1k046l #
  • Chewing my £15 (new) running hat is not smart or clever dog. http://twitpic.com/1k038b Maybe I'll forget to take you to the farm tomorrow? #
  • Best add Predators To my list of films to watch. #
  • RT @GeneHunt What's long, hard, easy to erect and makes women groan?…… An Ironing Board. #
  • http://www.whatthefuckshouldimakefordinner.com/ – my biggest problem of the day is now solved!! 🙂 #
  • The dog has a hard life. Eating a donut. http://twitpic.com/1jloat #
  • Cameron was smarmy and didn't answer questions; Brown tired and boring. Clegg genuine but niave? Seeing DC may have put me off voting Tory. #
  • Ought to find a running club/group in Bromsgrove…. and/or Squash. #
  • welcome #ubuntu lucid …. time to upgrade desktop soon then. #
  • This is how you to scream (while chasing a dog) – toddler style…. http://www.youtube.com/watch?v=9vDXZjnknoI #
  • RT @GeneHunt 'Ultra-sensitive condoms?!' What do they do? Keep her talking after you've gone to sleep & ask how she's feeling? #
  • RT @schmooster #bigotgate For the sake of balance, here's Cameron with the public. http://short.to/26n59 <- nice 'documentary' #
  • wondering if I'm somehow damaged a nerve along the top of my foot; weird sensation occasionally…. still at least it's not my hand. #
  • Anyway. Time to go running. 7 miles perhaps. Rests are for girls and babys. Sort of. #
  • This is not orange (or any fruit) juice on my arm….. "bloody dog" http://twitpic.com/1iw4od #
  • Avatar is only £8 on DVD on release. So it really was over hyped and not that good then? (3d ++; story —-) #
  • I'm sheltering in the blind (warm) spot of an overactive aircon unit waiting for gparted to do succeed. Not quite
    my idea of fun. #
  • Stupid Compaq server vs gparted. Gparted seems to be winning. Phew. #
  • I wish I'd remember to upgrade $server before feeling tired at mid-night. #
  • Woo… 148 out of 844 marathon wise (http://jand.co.uk/Results2010/ShakespeareFull.pdf); now my head has expanded. #stratford #marathon #
  • Won't be voting for them…. http://twitpic.com/1iotli #bnp #

phing / unit tests and global variables

Yesterday I thought I’d move one project over to using phing (with the end goal of hopefully getting some sort of Continuous Integration setup in place, with graphs and stuff to show the customer).

All went reasonably well – svn update, php documentation generation, php code sniffer tasks etc were all in place. Unfortunately when I got to do the unit tests (simpletest) things failed, and it seemed to be the case that no global variables in use within the code base were available. As my brain finally realised why this is the case this morning, I thought I’d better write a blog post in the hope it may help someone else in the future.

The code base itself is ‘legacy’ – in that it’s been pulled in different directions over the years before we got our hands on it. There’s bits of procedural code (e.g. query(..) which seems to just be the same as calling mysql_query(..)) and object oriented ($db->query(..)). Mixed in with this is a liberal use of global variables (e.g. $db, $database_name, $software_root and so on).

My unit tests, when run via a script on the command line look like :

<?php
require_once('common.php');
require_once('simpletest/reporter.php');
require_once('simpletest/unit_tester.php');
$test = new GroupTest('my tests');
$test->addTestFile('WhateverTest.php');
$test->addTestFile('FooTest.php');
exit($test->run(new TextReporter()) ? 0 : 1);

And worked fine.

Within the code base, there is one include file within the application which defines a number of variables, on the assumption it’s at the top level scope – e.g.

$database_name = "blahblah_live";
$db = new Database($database_name, $database_username, $database_password, $database_host);


Which works fine. However, because $db hasn’t been explicitly defined as a global variable, when the tests are run through phing – they run within the scope of a function, and hence the global variables aren’t available (because they’ve not been implicitly registered as globals – the code just makes an assumption that they are).

So, to fix it, I just need to find all the variables defined in the script, and make them explicitly global.

i.e.

global $db;
global $database_name
$database_name = "whatever";
$db = new Database(.....);

One step closer; perhaps soon I’ll be posting about getting Xinc or something similar working.