Cat got my tongue?

You may have noticed that I haven’t blogged much recently. Or at all.

(I wonder what percentage of blog posts are of the type “Sorry I have’t blogged much recently but my uber exciting life has got in the way”?)

Why so silent? I have to admit, the cat’s got my tongue. I still have things I want to say but I didn’t know if I should, could or how, then I became rusty and lost my voice. It’s a vicious cycle of over thinking.

we have a cat in a box situation. mandatory images posted to interwebs cc @damejudiofdench
A cat - no tounge

There are many reasons why the blogging stopped, some of which need explaining.

The company I work for has embraced social media, mainly twitter but there are also some spiffing YouTube videos out there with backing tracks that IN NO WAY resemble 1970s porn music.

As you no doubt know I’m rather fond of crafting the odd tweet, but should I interact with the corporate twitter accounts – accounts talking about one of the most important things in my life, our product family? What if a client sees me retweeting something important, looks at my feed and realises that, yes, my guilty secret is occasionally watching XFactor and tweeting about it? Or my amdram obsession? Would YOU let your mission critical software be written by a person who obsessively posts pictures of food?

du pan, du vin, du boursinOo, I can make toad in the hole!Toffee on to set!No idea if this is going to work, scallops wrapped in bacon!Terrible piping. Kettle is on ready to test...

Or, would you rather engage a company who employs faceless drones? Is it better to just not know?

Should we be as professional as we would be in a client meeting at all times, or does that come across as dull and, at worst, fake? That’s certainly an attribute you never want to have in people you employ.

I have always been of the opinion that you should never put anything online that you wouldn’t say to anyone face-to-face. This was a pretty good rule of thumb in the 90s when everyone wasn’t hyper-connected but now, everything feels much more traceable.

As an example, let’s say I post a tweet linking to a photo in my flickr stream, the previous photo was of me out with friends, one of which is tagged, the client follows that tag to the other persons flickr stream, and then there’s a picture of me in their stream doing something not development related like, oh I don’t know, drinking? Dancing? Playing video games? In a church?  Basically doing – well, anything that isn’t development – and potentially something that the viewer finds offensive.

I don’t feel the need to keep my life a secret, or anything I do – if I do it, well, it’s me, take all of me or none of me – even if that means accepting that I’ve sat in classy bars knitting….

But what if this picture of a complete person ever reflects back badly on my employers rather wonderful product?

(Warning: this next paragraph may not be fashionable, it certainly isn’t cool and it may even make you a little nauseous.)

I adore my company’s product. Our main product is spectacularly powerful – (working) life changingly powerful. It can revolutionise oganisations. I truly do not know how people live day to day without it – or something like it. And I never want to reflect badly on it.

When I was employed about in April 2005 employers only needed to worry about their employees during the working day. As long as they turned up, looked smart, worked hard, and didn’t do something so spectacuarly stupid that they end up in the tabloids and brought the company into disrepute everything was peachy. Now employer’s have to consider their people’s online identities. Or do they? And should they?

So, I’ve been quiet, trying not to scare off that most timid of beasts – the new corporate account runners, but enough is enough.

I am not just a developer, I am a whole person.

I live, love, cook, dream – and I’m back.

Tonight involved unpicking... #crochet cc @dtsnSlightly odd Hobby 1
Ambassador - Set Build
Odd hobby 2 - Amdram

Back in the village for a funeral of a genuinely good person, RIPThank you for my Christmas Whisky Rocks @boffbowsh squeeI think @bakerleuk and @james_hodgson know me too well! Best gift ever! Thanks guys x

Three things that might cause offence – Church, Drinking and an unhealthy love of spreadsheets – take it or leave it!

A PHP developer lost in .net land

Blimey that was fun!

I am back from an extremely interesting weekend at Developer Developer Developer South West – a day long tech conference loosely based about .NET technologies.

Now as you may know, I’m a php developer – so what on earth was I doing there?

I’ve never been snobby about languages, they are means to an end – producing a product that does what it needs to do, and making the world a better place. How you get there isn’t really important to anyone other than the development team, so no, just because I haven’t touched .Net in years didn’t worry me, I was sure I would still get something out of the non-.net-specific sessions – and I did.

Another reason was to feed my secret geeky need to revel in the way different people approach things – why do people from one technology stack approach problems in a certain way? And what do they do that I and the world I live in don’t, and is it better? What Can I Pillage?

Also, I thought it would be fun – I ended up at the pre-drinks for DDD Reading a year or so ago and they seemed like a good crowd. The DDDSW people were charming, intelligent individuals happy to have their brains picked by anyone.

It was a remarkably valuable day. We are all working in the same industry, we all have the same goals – to produce solutions that are as good as we can possible make them within the constraints time, money and clients give us – and the knowledge and insights shared will stay with me for a while.

So, thoughts?

I’m about to open my code editor for the first time today – I’m not sure if I’m going to run screaming from the room crying “My eyes! My eyes!” when I see it, or roll around in my beloved php code like a dog in a muddle puddle happy to be home.

Will I be abandoning my first true love of PHP and embracing the .Net goodness? Not this week. But I have a project ‘radiator’ already doodled down and I’m eyeing up that blank wall behind me for potential kanban goodness. I’ve just been on a book buying rampage on O’Reilly and I’m pretty sure I’ll be using jQuery templates within the next few days.

Either way, I know I’ll never look at code in quite the same way again – I’m blaming the Test Driven Development session for that. Thinking about tests before you write the code and hence letting that guide your code design was the biggest Aha! moment of the day.

So I say this to you my friends, go forth and meet your fellow developers, no matter their platform, language or workflow – we need to share our ideas, our philosophies and our passion. And drink beer.

Searching for the Wildcard Percentage Symbol in SQL Server – when it’s being itself

When searching data stored in a table in an SQL Server database you create queries such as…

Select * from tbl_document were document_name like ‘File %’

This will return all documents with a filename starting with the word File and a space followed by anything. That’s what the % represents – anything, anything at all.

Anything is quite a big concept for a line and two circles when you think out it

But what if you want to search for the % character itself – when it’s having a day off from being the all encompassing wildcard of wonder and it just being a plain, simple percentage?

I had to find all documents in the database that had been uploaded with %20 in the filename – I’ve done this before but for the life of me I couldn’t remember how – so I went to Google but alas the search gods were not smiling on me – so I asked Twitter.

The knights in shining armour that are Ian Field (@IanField90) and Peter Curd (@PCurd) rushed to my rescue with the solution…

where document_name like ‘%[%]%’

This will match anything-percentage-anything.

Once again, knowing the right people on twitter helps. Ok so I’ve met both of these charming gents in real life, but I also received help and suggestions from others who I haven’t.

Happy Querying!

Surprise Dining Algorithm Problem

All I have to do is organise 16 dinner parties… how hard can it be?

The Rotary Club of Reading Abbey have a season of Surprise Dining, each couple signed up will host one dinner party and go to three others. The host of the dinner party does the main course, the other guests do the starter, pudding and cheese. Each couple involved will cook an entire meal but in stages.

Paris
The Rules
– Each couple will attend 4 dinner parties
– Each couple will do the Main Course once, Starter once, Pudding once, Cheese once
– Each couple should only encounter the other guests once at the dinner parties (you only have dinner with couple A once, not meeting them again)

So… is this possible?

If So… there has to be an algorithmic answer to this… I look to you stats-based people for help!

I need 16 combinations of the letters A to P where each letter is in position 1 (starter), 2 (main), 3(pudding) and 4(cheese) only once. AND there are no repeating combinations of letters – so a,b,c,d and b,a,e,f wouldn’t work as a and b have already seen each other the previous week.

Any and all ideas gratefully received!

The FizzBuzz Problem and Diving in Too Soon

One of my developer friends – Nick Telford – tweeted this article about Programmers and the lack of those that seem able to programme.

Will The Real Programmers Please Stand Up? http://retwt.me/1NEBw // another example of how diluted our industry really isless than a minute ago via TweetMeme

This article linked to anothe one – Why can’t programmers…program? – which mentioned the FizzBuzz problem.

The idea is simple, all you have to do is write a program that prints out the numbers 1 to 100, but for multiples of 3, print Fizz instead of the number and for multiples of 5 print Buzz. If the number is a multiple of both, FizzBuzz should be printed.

So here’s my answer – in php of course.

  1. <?php
  2. $x = 100;
  3. for ($i=1; $i<=$x; $i++) {
  4.     $msg = "";
  5.     if ($i % 3 == 0) {
  6.         $msg = "Fizz";
  7.     }
  8.     if ($i % 5 == 0) {
  9.         $msg = $msg . "Buzz";
  10.     }
  11.     if (strlen($msg) == 0) {
  12.         $msg = $i;
  13.     }
  14.     print $msg . "<br/>";
  15. }
  16. ?>

This complies with all 4 of the requirements (numbers, Fizzes, Buzzes and FizzBuzzes), which is the point – many developers when set this task miss out one or more of the vital parts clearly stated in the specification.

It all goes back to what your mother told you when you had your first exam at school – remember to read the entire question first before diving in.

So did I miss something? Can you do it more efficiently?

A News Junkie’s Election Resources

My name is Amy and I’m a recovering News Junkie.

I do well these days, I only check the BBC news website 3 or 4 times a day but there have been periods in my life where I would live on news sites, devouring the soap opera / action movie / documentory that is our wonderful world.

Today is the General Election. If you are eligable and you haven’t voted – go vote now. Chris Alexander has explained this more eloquently than I could in his post this morning “Today is the General Election. There’s no excuse not to vote

For those of you that have voted and are ready to sit back and watch the drama unfold, I would like to share with you my current news-junkie-fix set up.

1. BBCBBC News Live Election Results Page –  This looks like it’s shaping up to be a very useful page, this will be on my laptop screen tonight

2. News Now – News Now’s Election Page

I have been addicted to this site since that September a few years ago when all the news websites went down, this site remained avalibale in patches and bought in feeds from hundreds of different websites from all over the world. It agrigates news stories from hundreds of sources – If you want to get all the news about anything, this is the place to go.

3. Twitter and TweetTabs

I get lots of my breaking news and most certainly interesting commentary from Twitter these days. I will be using TweetTabs (made by the every talented dtsn – http://www.dtsn.co.uk) to keep an eye on the hashtags. Here’s my set up – http://tweettabs.com/tabs/%23ge2010/%23ukvote/%23ReadingW/

If you want to find your local constituency’s hash tag, check the list on this website http://www2.politicalbetting.com/index.php/ge2010-hashtags/

What ever you’re doing, I hope you enjoy your election night.  Please share your favourite resources in the comments!

Final Thought When something exciting happens in the tech world – a new product lauch etc – there is ALWAYS a life blogging feed from someone, seems weird to not be going to EnGadget for live blogging of the election!

UPDATES:

Live Blogging from the Farmer Guardian – a different take no doubt

Use your data intelligently or face the wrath of spurned woman everywhere

As you scamper your merry way over the playgrounds of the internet you will accumulate logins to various locations – forums, shopping sites, services – in return the companies that run the sites get your email address and a few bits and bobs about you.

This is like crack to them.
If you manage to toggle the obligatory “tick me if you do want to not get the occasional newsletter” check box correctly at the bottom of the form you may never hear from them again. Well done. But sometiems you DO want to recieve their newsletter.
I have no problem with companies I like having my details, I appreciate Firebox emailing me new and shiny things and the day just would not be complete without my Daily Dilbert (tell me I’m not the only one who is convinced Scott Adams hides in the cupboard in my office and then draws what happened yesterday for today?).
But what really frustrates me is when these companies don’t make sensible – or any – use of the data they have on me.
A number of companies have my birth date – but only a small percentage of shopping sites email me congratulations and tempting me with the chance of buying myself a present.
Why? It is NOT hard to use data intelligently and treat it as information.
My day-to-day world revolves around a rather excellent Document Management and Collaboration System (http://www.unit4collaborationsoftware.com), I deal with data and information day in and day out and I’m afraid it has become one of my passions – it may help if you imagine me climbing onto my soap box round about now.
Data and information are different things. Data is pointless without context, once you give it a context and actually DO something with it it becomes information, and informaiton is power. What these companies have on us is data, but if they spent even a little time looking at it they could turn it into information that would become extreamly powerful. For example, a shopping website knows that you always send a package to a  Mr X around the middle of January and you always use express delivery – how many years in a row would you have to do this before they worked out that you always manage to forget your second-cousin’s birthday until the last minute? If that company emailed you to remind you wouldn’t you feel some loyalty towards them, some warmth that for once, this year your Great Aunt Nora wont tut at you for forgetting her beloved darling’s birthday?
Let me put it another way – Information is where the money is. Conversly, mis-use of data, or the lack of translating data into information can cause a company to lose money and/or potential revenue – and even worse, it may even lose it its reputation.
What kicked all of this off? I’m glad you asked… A few days ago I received an email – a ‘special offer’ – from a company that I had signed up with over a year and a half ago. This email made me hopping mad at the complete disregard for the informaiton they held on me. It would have been so simple for them to realise that the mail shot they sent me was wholly inappropriate on many many levels but did they? No, they went ahead and because of this carelessness and lack of attend to the big picture they not only do they made themselves look stupid but damaged the reputation of the company they were promoting.
I received an email from hitched.co.uk offering me £200 off a wedding dress.
Slightly peculiar but innocent enough you may think – no, not when you consider that when signing up for hitched.co.uk they ask you for the prospective date of your wedding – as far as hitched.co.uk are concerned I am already married.
What type of company sends offers for wedding dresses to respectably married woman!?
And if on the off chance – as in my case – the recipient turned out to not be married in the end, wouldn’t you think that sending such an offer – complete with imagery of smiling, supposedly happy brides – to someone who thought they would get married but then didn’t wasn’t entirely tactful?
Companies out there I beg of you, use your data sensibly – is really isn’t hard to prevent issues like this occurring if you just look at the data you have about your customer base and by applying a little bit of logic, turn that into useful information. Information that if used correctly may just save you from losing customers.

This is like crack to them.

If you manage to toggle the obligatory “tick me if you do want to not get the occasional newsletter” check box correctly at the bottom of the form you may never hear from them again. Well done. But sometimes you DO want to receive their newsletter.

I have no problem with companies I like having my details, I appreciate Firebox emailing me new and shiny things and the day just would not be complete without my Daily Dilbert (tell me I’m not the only one who is convinced Scott Adams hides in the cupboard in my office and then draws what happened yesterday for today?).

But what really frustrates me is when these companies don’t make sensible – or any – use of the data they have on me.

A number of companies have my birth date – but only a small percentage of shopping sites email me congratulations and tempting me with the chance of buying myself a present.

Why? It is NOT hard to use data intelligently and treat it as information.

My day-to-day world revolves around a rather excellent Document Management and Collaboration System (http://www.unit4collaboration.com), I deal with data and information day in and day out and I’m afraid it has become one of my passions – it may help if you imagine me climbing onto my soap box round about now.

Data and information are different things. Data is pointless without context, once you give it a context and actually DO something with it it becomes information, and informaiton is power. What these companies have on us is data, but if they spent even a little time looking at it they could turn it into information that would become extremely powerful. For example, a shopping website knows that you always send a package to a  Mr X around the middle of January and you always use express delivery – how many years in a row would you have to do this before they worked out that you always manage to forget your second-cousin’s birthday until the last minute? If that company emailed you to remind you wouldn’t you feel some loyalty towards them, some warmth that for once, this year your Great Aunt Nora wont tut at you for forgetting her beloved darling’s birthday?

Let me put it another way – Information is where the money is. Conversely, mis-use of data, or the lack of translating data into information can cause a company to lose money and/or potential revenue – and even worse, it may even lose it its reputation.

What kicked all of this off? I’m glad you asked… A few days ago I received an email – a ‘special offer’ – from a company that I had signed up with over a year and a half ago. This email made me hopping mad at the complete disregard for the information they held on me. It would have been so simple for them to realise that the mail shot they sent me was wholly inappropriate on many many levels but did they? No, they went ahead and because of this carelessness and lack of attend to the big picture they not only do they made themselves look stupid but damaged the reputation of the company they were promoting.

I received an email from hitched.co.uk offering me £200 off a wedding dress.

Slightly peculiar but innocent enough you may think – no, not when you consider that when signing up for hitched.co.uk they ask you for the prospective date of your wedding – as far as hitched.co.uk are concerned I am already married.

What type of company sends offers for wedding dresses to respectably married woman!?

And if on the off chance – as in my case – the recipient turned out to not be married in the end, wouldn’t you think that sending such an offer – complete with imagery of smiling, supposedly happy brides – to someone who thought they would get married but then didn’t wasn’t entirely tactful?

Companies out there I beg of you, use your data sensibly – is really isn’t hard to prevent issues like this occurring if you just look at the data you have about your customer base and by applying a little bit of logic, turn that into useful information. Information that if used correctly may just save you from losing customers.

Email from hitched.co.uk
Email from hitched.co.uk

The Lot of the Geeks at Christmas

Well my fellow geeks – are you ready for Christmas?

No, I ‘m not refering to your shopping and cooking lists or even if you’ve wrapped everything – I’m talking about your mental preperation.
Yes, it’s the time of year where most of you will be “going home” to your beloved but perhaps not-as-tech-savy-as-you families.
You KNOW what that means don’t you? Oooh yes, time to become the 24-7 100% tech-support go-to guy or gal once moce.
Time for a deep breath.
You know the scene, Uncle Fred has bought little Sabastian the latest electronic do-hicky with bells, whistls, spinny bit and of course the requisit annoying electronic beep, and the only person in the house that will have an electronic screwdriver small enough to open the battery hatch is you – so that’s chrismtas morning 6am to 6:25am dealt with.
Then your mother wont be able to open the plastic packageing for her new suduko machine that father bought her after consulting you last week on your mobile – in the middle of a meeting with the seniour management at work, who also all had to break off to have similar convisations with their own elderly family members.
This also needs batteries inserted behind a little door held on with a little small screw. Which you have trouble dealing with as by this time you’ve cut your own finger on the evil-plastic-attack packaging.
Aunt Mable is now blaming you – and the sole representitive of the ‘technical’ industry for the annoying sounds coming from little Sabastian’s electronic do-hicky – a tirade that will only get worse as the sherry supply depleats.
9am and the phone goes, nephew 1 has got a tamagotchi for christmas – yes they still exist – and he can’t work out how to feed it. Luckily as a child of the 80s/90s you manage to tech-support this over the phone.
Time for a quck cuppa before dashing off to church, surely there wont be any technology to get in the way of some good solid carol singing? Ha!
On the way out the vicar shakes your hand and mentions that the church’s website needs some TLC and gosh darnnit isn’t that something you could perhaps help with in the new year?
Back home and you’ve bearly pulled off your new christmas gloves with the pom-poms on that great aunt florrance sent you before mother thrusts you the brand you oven timer and asks you to set it for 40 mins rather than 40 seconds.
And so it goes on…
But my dear breathren-in-tech, don’t dispare, take heart – as the sole techie you will get to play with everyone’s brand new technology over the Christmas period – and if that doesn’t colsole you, at least you know you’ll have a few days break before the family go out and buy things in the january sales!
Don’t roll your eyes at your less-able relations dear geek, be patient with them – to them all these things with buttons are a dark art and to them you apear as a worlock of great power, being able to command them to do your will… apart from getting that new toy of sabastian’s to shut up. That is a feat that’s even beyond you.
Merry Christmas one and all
Love Amy xxx

No, I ‘m not refering to your shopping and cooking lists or even if you’ve wrapped everything – I’m talking about your mental preperation.

Yes, it’s the time of year where most of you will be “going home” to your beloved but perhaps not-as-tech-savy-as-you families.

You KNOW what that means don’t you? Oooh yes, time to become the 24-7 100% tech-support go-to guy or gal once moce.

Time for a deep breath. You can do this.

You know the scene, Christmas Morning. Uncle Fred has bought little Sabastian the latest electronic do-hicky with bells, whistls, spinny bit and of course the requisit annoying electronic beep, and the only person in the house that will have an electronic screwdriver small enough to open the battery hatch is you – so that’s Christmas morning 6am to 6:25am dealt with.

Then your mother wont be able to open the plastic packageing for her new suduko machine that father bought her after consulting you last week on your mobile – in the middle of a meeting with the development team at work, who also all had to break off to have similar convisations with their own elderly family members.

This also needs batteries inserted behind a little door held on with a little small screw. Which you have trouble dealing with as by this time you’ve cut your own finger on the evil-plastic-attack packaging.

Home

Aunt Mable is now blaming you – and the sole representative of the ‘technical’ industry for the annoying sounds coming from little Sebastian’s electronic do-hicky – a tirade that will only get worse as the sherry supply depleats.

9am and the phone goes, nephew 1 has got a tamagotchi for christmas – yes they still exist – and he can’t work out how to feed it. Luckily as a child of the 80s/90s you manage to tech-support this over the phone for a device you’ve never seen or used. You are just THAT good.

Time for a quck cuppa before dashing off to church, surely there wont be any technology to get in the way of some good solid carol singing? Ha!

On the way out the vicar shakes your hand and mentions that the church’s website needs some TLC and gosh darnnit isn’t that something you could perhaps help with in the new year?

Back home and you’ve bearly pulled off your new Christmas gloves with the pom-poms on that Great Aunt Florrance sent once again this year you before mother thrusts you the brand you oven timer and asks you to set it for 40 mins rather than 40 seconds.

And so it goes on…

But my dear breathren-in-tech, don’t dispare, take heart – as the sole techie you will get to play with everyone’s brand new technology over the Christmas period – and if that doesn’t console you, at least you know you’ll have a few days break before the family goes out and buys the latest gadgets in the January sales and calls you to set them up!

Don’t roll your eyes at your less-able relations dear geek, be patient with them – to them all these things with buttons are a dark art and to them you apear as a worlock of great power, being able to command them to do your will… apart from getting that new toy of Sabastian’s to shut up. That is a feat that’s even beyond you.

Merry Christmas one and all

Love Amy xxx

BC Christmas Do

Is the customer always right?

“It makes my eyes hurt, but this is what the client wants”

This plaintiff cry was heard drifting over the office from the front end team last week. Nothing that unusual about that – they are not the most reticent of teams at Collaboration Towers, but it was the content of the cry as well as the resigned and world weary tone that irked me.

If the idea / request – in this case an interface design for a web app – is that bad, should we really agree with the customer and tell let them continue in the belief that they are right?

Where, in fact,  do you draw the line between providing service and being a glorified automotron?

A large part of me thinks that these people – clients – are paying us for our expertise and our experience – shouldn’t we then give them the benefit of that experience? Are we doing a bad job but actually doing what the client would think of as a good job?

We should respect our clients enough to treat them like adults rather than toddlers who will throw a tantrum if their every mad whim is not served immediately – surely this is the different between employing a code monkey and a true craftsman?

Would you draw a circuit diagram and tell an electrician to wire you your house using this self-drawn circuit diagram?

ok, bad example – a lot of you would be capable of this without causing your house to burn down in an electrical fire but go with the metaphore people!

If you don’t want to do it for the client, do it for yourself – do you really want to be the person that has to always explain the lemon in your portfolio as “This wouldn’t be how I would have done it, but this is what the client wanted” with a shrug of the shoulders? How do you think that makes you look – does it make you look like you care about your client’s user experience?

The client almost always had the right idea for their particular problem – and lets face it, they (hopefully) know their industry / team / department / space better than you do – but the nuts and bolts of the implementation and execution should be left to the experts – that’s they pay you for.

Please  – don’t let your clients accept sub-standard implementations

Ladybirds in Chains

Some bugs in the wrong environment

Why haven’t I written a specification for my own product?

If I started a project at work and leapt straight into the code without a specification and only a vague idea of where it was going, I would think myself crazy – and think those that got me into this situation beyond polite description – so why on earth have I done this to myself on a larger-than-usual personal project?

Do I really think it’s not important enough to spec?! Does it mean that little to me? Ha!

For the past week or so I have been “tickling” at an idea I’ve had – I need something to work on to make me learn Zend Framework as there just wont be time for me to learn it at work (oh that could fill a blog post all of it’s own!) and last night I got frustrated with the whole thing – it was only in the cold light of a meeting at work today where I went off on a 2 or 3 minute rant about doing something without a spec that it hit me, I couldn’t get going on this project because I hadn’t clearly defined my goals.

As the internet of today would say… Face Palm!

Why does writing down what you want help? In the corporate world a specification can be thought of as an agreement between the client and the development team – this is what we say that you said you wanted. It can be signed off against and gone back to after delivery to make sure things happened as everyone expected.

There is no reason why you shouldn’t hold yourself to the same high standard as your clients hold you.

This is why I’ve called a halt to messing about with code in a vague hope it’ll magically shape itself into the half-baked idea I have in my head and I’m pinning myself down (quite a feat I can tell you) to shaping my thoughts and, shock horror, writing not only a technical specification but a requirements document as well.

And you know what? It feels darn good!