Monday, March 31, 2008
Girl Geek Dinner - Copywriting
Relly of
PoppyCopy spoke at the most recent
Brighton Girl Geek Dinner last week on the subject of "Personality, Pulling Power and Prizes: Why good copy is your new BFF". Copy-writing isn't something that makes up any element of my job, but is something that I felt was worth knowing about, for this blog, and for who knows what exciting future projects might come my way.
Relly produced some great takeaway material for us, which contains examples of different styles of writing, and includes a Webiblography of useful material. It mentions a few articles from
copyblogger - the
Copywriting 101:An Introduction to Copywriting one caught my eye. My key learning from Relly's talk was to be authentic in my writing, so to write like I'd talk I guess, without using vocabulary I wouldn't normally use.
Labels: Brighton, event, girl geeks, photos
// posted by Jane @ 7:23 PM
Comments:
Saturday, March 29, 2008
A yahoo pipe, some php and a flickr feed
Over on the
JaneandRichard home page, we used to show a random image from our
image archive. However, to add an image to the archive we needed to register it, and this we failed to do very often. As time went on I was putting photos less often on the JaneandRichard images page, and more often on
flickr. So, I updated the front page to use a
flickr badge based on
my flickr feed. This wasn't ideal, as it didn't combine our output.

This morning I decided to do a bit of playing, and so produced a
yahoo pipe which
takes Richard's flickr RSS feed, and my one as an input and returns the most recent image. I then wrote some PHP (well took the
Brighton Bloggers aggregated feed PHP actually which in turn was based on the RSS reader produced by
Richard Kendall) and wrote out the RSS description within some javascript. This allows me to replace the flickr badge on the home page with an image based on the combined feed.

In order to make this more useful, I used a parameter feed to allow other images to be produced by the script. So, the code
<script type="text/javascript" src="http://jane.dallaway.com/services/getImageFromFlickrRss.php?feed=http://api.flickr.com/services/feeds/photos_friends.gne%3fuser_id=11369209@N00%26friends=0%26display_all=1%26lang=en-us%26format=rss_200"></script>returns the most recent image added by any of my contacts. The
feed parameter needs to have the flickr RSS URL encoded otherwise the script will truncate the output and nothing will be produced.
So here is the output from that script - the latest photo from my contacts:
Update:
There is some cacheing going on at the yahoo pipes end, and so the RSS feed from the pipe doesn't reflect the changes in real time, or as quickly as if you run the pipe manually.
Labels: photos, php, yahoo pipes
// posted by Jane @ 11:52 AM
Comments:
Thursday, March 27, 2008
Static Code Analysis
One of my colleagues and I are looking into
tools for Static Code Analysis for C#. At the moment, we have the following tools on our list to investigate further:
Do any of my readers have any suggestions for other tools we should consider? If so, please leave me a comment with the name and any feedback.
Labels: .NET, C#, Development, static code analysis
// posted by Jane @ 6:32 PM
Comments:
Remember The Milk Pro Upgrade
Last summer I
posted about
Remember The Milk. Well, here I am 6 months on and I'm still using it, constantly. If I think of something I add it via whichever interface is closest -
web,
mobile, sms via
twitter - and I no longer have a reliance on scraps of paper, or a notebook with scribbles all over it. I think that it is the number of different ways to enter a task, update a task list, review what needs to be done that makes this tool so valuable to me. Especially seeing as how I have a laptop at work, a different laptop at home, I have 2 different mobile phones (one work, one personal), a notebook/log book for work stuff - keeping a list on any one of them just wouldn't work for me without me having to make notes somewhere else as well - I know, I've tried it before.
So, yesterday, I decided it was time to support them, so I upgraded to the
pro membership. And it wasn't because I wanted the extra functionality (although I'm sure I'll make use of the
iPhone/iPod Touch interface) but it was because I realised how much I rely on their service, and how much I'd miss it if it wasn't around. So, for $25 for a year, I figured it was worth it for the feel good factor of supporting them.
Labels: rtm
// posted by Jane @ 2:08 PM
Comments:
Wednesday, March 26, 2008
Defensive SQL Updates
One of my recent tasks, well before my month off anyway, was to upgrade a number of similar SQL Server 2005 databases to a new structure. The databases had all started off the same, and were going to end up the same, but had been subjected to a differing number of bug fixes and enhancements along the way.
If I was updating just one database I would have used the excellent
Redgate SQL Compare (of which more in a future post) but as I had to update many then this would not have been the most reliable way.
Instead, I wrote defensive SQL, that is SQL which checks for impact before doing it. So, before adding a column for instance, it checks to see if that column exists, and only attempts to add it if it doesn't - thus preventing errors. The whole update script was wrapped in a Transaction, and by making use use of a variable
@bError of type
BIT to track any errors, the last statement could
COMMIT or
ROLLBACK the transaction as appropriate.
So, for example, to add a new column to a table, here is the script I used:
IF @bError = 0
BEGIN
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE Table_Name = 'MyTable' AND Column_Name = 'MyNewColumn')
BEGIN
ALTER TABLE MyTable ADD MyNewColumn INT NOT NULL
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE Table_Name = 'MyTable' AND Column_Name = 'MyNewColumn')
BEGIN
PRINT 'Error Adding column ColumnName to table MyTable'
SET @bError = 1
END
ELSE
BEGIN
PRINT 'Added column ColumnName to table MyTable'
END
END
ENDBy checking for the column's existance after applying the change, I could determine if an error had occurred, and set the
@bError flag accordingly. I used the Print statements to produce a log of exactly what stages had been carried out on each database, using the function
DB_NAME() to output the name of the current database at the beginning of the log.
Labels: SQL, SQLServer2005
// posted by Jane @ 9:37 AM
Comments:
Thursday, March 20, 2008
Ideas and Learning project
One of the new initiatives at
Madgex is the introduction of the Ideas and Learning project. This is a cross between the Google 20% initiative and the
Pixar University initiative. Out Ideas and Learning project gives us 35 days per year (roughly 15% of our working time) to developing our own ideas and learning. That covers building prototypes of new ideas, learning about a new technology, trying out something that we've been meaning to attend to, or learning new soft skills.
Yesterday I attended two internal workshops. The first was an hour long session on "Stress Management" which covered both the physical and emotional responses to stress and how the body/brain hasn't evolved sufficiently to allow for different types of stresses to be handled in different ways - we're still hard wired to run away from woolly mammoths, so when we feel stressed our senses become more acute, our heart starts pumping, our blood goes to our legs so we can start running, and our brain gets less blood. We learnt a technique for meditation which I'll give a try to help focus the brain on the present, rather than it over analysing stuff.
The second was a session on "Zen and the craft of software development" which was a whistle stop tour through some history of development covering the
different paradigms, comments vs documentation, problem solving and including lots of hints and tips for development.
Both of these sessions were useful, in very different ways, and I can see that I'm going to gain a lot from this new initiative.
Labels: ilp, madgex
// posted by Jane @ 1:04 PM
Comments: