Tuesday, September 30, 2008
SQL Coding Dojo
Last week I led a SQL based Coding Dojo as part of the
Madgex ILP programme. A lot of ILP sessions are in a presentation format, and I wanted to do something with a bit more, or in fact a lot more, attendee participation. I've been interested in the idea of deliberate practice for a while, and Richard has been to quite a few coding dojos and so I figured it was time to give it a try. Shortly after I'd decided to do one, I attended a
Skills Matter evening and stumbled across
Ivan Sanchez, who blogged about
Starting a Coding dojo which helped me get my thoughts in hand.
I chose to use SQL as the area to practice, mainly because it is an area I am really familiar with and so could help out if necessary. Also I have a copy of
Joe Celko's SQL Puzzles and Answers which provided me with a great collection of puzzles to practice with.
I chose a puzzle called Double Duty which is described as follows:
A person may have more than one role. The roles are defined as follows:
O – Officer
D – Director
The PersonRole table is defined as:
PersonName VARCHAR(50)
RoleCode CHAR(1)
Produce a list of People and their roles where they are either Officer or Director, and where anyone with both the O and D role is represented once as B – Both.
I've put a copy of the SQL file I produced to create the tables, and populate the data
here, so feel free to
take a look.
I opened the session by explaining what a dojo was (a training hall for practice in the martial arts), what a coding dojo was (a practice area for coding skills) and introduced the problem domain (I provided print outs of the table structure, data and expected results). I then introduced the roles we were going to use - driver and co-pilot - and the rules we were going to adhere to. In our main meeting room we have a large plasma screen and so I connected this to my laptop so that the audience could see exactly the same as the driver and co-pilot. I provided a couple of SQL books and a
SQL Server cheatsheet for reference.
After the initial self-consciousness had gone, the pairs settled into the idea pretty well, and it was interesting to watch the different pairs interact and form new (rapid) working relationships. There were 7 participants, and each spent 5 minutes as the driver and 5 minutes as the co-pilot. By the end of the session there were 4 solutions produced which meant that the group as a whole felt that they'd achieved something. We ran a quick retrospective at the end of the session and the following were the major points:
- The audience found a certain amount of frustration by not being able to help, and not being able to shout out suggestions.
- At least one person acting as the co-pilot found it hard to articulate what needed to be done.
- At least one person admitted to finding it hard to think without having their fingers on the keyboard.
- At least one person learnt something about SQL.
- Quite a few people found a laptop keyboard hard to use, so a proper keyboard would have helped.
As a result of the success of this one, I've booked in another one for a couple of months time - again SQL based but I'm also thinking of making use of
TDD Problems for another practicable skill.
Labels: CodingDojo, ilp, madgex, SQL
// posted by Jane @ 8:28 PM
Comments:
Friday, September 05, 2008
OAuth.net
As I write this,
Glenn should be doing the welcome talk at
dConstruct, and he should be revealing
Madgex's first foray into open sourcing our software -
OAuth.net.
From the
Madgex Lab site:
"OAuth.net is a .net library which provides full OAuth consumer and provider support. The library facilitates secure API authentication in a simple and standard method for desktop and web applications.
OAuth allows user to grant and deny one application access to the data stored in another application. It forms one of the foundation blocks of the data portability concept, which has the aim of allowing users to easily move their personal data around the web."
From what I've seen and heard,
OAuth is a great solution to the
password anti-pattern problem. An immediately obvious place for this to be applied within Madgex will be to enhance the
backnetwork to offer the ability to find your contacts using the
Google contacts API - don't hold your breath mind you as we're all a bit busy delivering
job boards in time for the January rush.
As a company, I think we're going to learn a lot through opening this code out to the community and I'm really, really excited about it.
Bruce will be doing a talk about OAuth at
BarCamp Brighton over the weekend - provisionally titled "OAuth versus the Password Anti-Pattern" - so if you're going to be there and are interested in learning more then pop along and hear what he has to say.
Labels: madgex, oauth
// posted by Jane @ 10:00 AM
Comments:
Thursday, August 07, 2008
ILP Time - How did I spend mine?
So, the first period of
ILP time is over, and I've managed to use 50-60 hours of my allocation attending workshops, watching presentations, learning stuff and doing ideas project work.
Learning:
- Started reading through the Opera web standards curriculum to ensure my knowledge was up to date
- Attended various presentations including: Stress Management, Zen and the craft of software development, Introduction to unit testing with nUnit, CSS3: Third time's the charm, Comet (a presentation by Simon Willson who came in kindly to talk to us), Basic NLP and hypnosis, SQL Server Advanced, Vision and Goal setting, Theories of Management and Javascript inheritance
Ideas:
- Looked into DBVerse, a database deployment tool, to see if this would help us. Review here
- Looked into Tarantino, another database deployment tool. Review here
- Worked with Bruce to start writing a database deployment tool to meet our specific requirements. This is still ongoing and will continue into the next few months
- Attended Hackday 3 and worked on some keyword searching work with Chris
- Looked into Stylecop, a code style analyser. Review here
Now I have to start planning out the next years allocation - I'm cashing in a couple of days to attend the
ReMix UK conference, I'm going to continue attending
Simon's management and leadership courses, as well as his NLP related ones. I'm also hosting 2 sessions in the next month - one which is SQL Snap, based on
CSS Specificity snap and one which is an experimental SQL Coding dojo. I'm sure I'll report back on both of these afterwards.
Labels: ilp, Learning, madgex
// posted by Jane @ 7:41 PM
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:
Friday, October 12, 2007
Belbin Team Roles
We had a team away day yesterday, and in preparation I completed a
Belbin self-perception inventory. We got the results yesterday and here's what my preferred
roles are:
- Implementer - Implementers are aware of external obligations and are disciplined, conscientious and have a good self-image. They tend to be tough-minded and practical, trusting and tolerant, respecting established traditions. They are characterised by low anxiety and tend to work for the team in a practical, realistic way. Implementers figure prominently in positions of responsibility in larger organisations. They tend to do the jobs that others do not want to do and do them well: for example, disciplining employees.
- Specialist - The specialist provides knowledge and technical skills which are in rare supply within the team. They are often highly introverted and anxious and tend to be self-starting, dedicated and committed.
- Completer-Finisher - The completer finisher dots the i’s and crosses the t’s. He or she gives attention to detail, aims to complete and to do so thoroughly. They make steady effort and are consistent in their work. They are not so interested in the glamour of spectacular success.
My least preferred roles are:
- Plant - The plant is a specialist idea maker characterised by high IQ and introversion while also being dominant and original. The plant tends to take radical approaches to team functioning and problems. Plants are more concerned with major issues than with details.
- Resource Investigator - The resource investigator is the executive who is never in his room, and if he is, he is on the telephone. The resource investigator is someone who explores opportunities and develops contacts. Resource investigators are good negotiators who probe others for information and support and pick up other’s ideas and develop them. They are characterised by sociability and enthusiasm and are good at liaison work and exploring resources outside the group.
- Co-ordinator - The co-ordinator is a person-oriented leader. This person is trusting, accepting, dominant and is committed to team goals and objectives. The co-ordinator is a positive thinker who approves of goal attainment, struggle and effort in others. The co-ordinator is someone tolerant enough always to listen to others, but strong enough to reject their advice.
The main surprise is Co-ordinator being in the least preferred roles as it is a role that I tend to do quite often - even yesterday in our break out sessions, I was the one "chairing", ensuring everyone got a chance to make their point, kept things focusses etc. Maybe the key here is preferred - I do this role when no-one else does, and I like to think I do it reasonably well. Having read the completer-finisher characteristics I would say that over the years I have definitely become one of these, I am pedantic and picky and like to ensure everything is done to a high quality. My anxiety must be in a constant state of flux as the Specialist is an anxious role whilst the Implementer is a low anxiety role.
The last time I filled in one of these was about 10 years ago, during a course, and it would be really interesting to see how things have changed. I'll have to dig around at home and see if I can find it.
Labels: madgex, team
// posted by Jane @ 1:18 PM
Comments:
Tuesday, September 18, 2007
My first Madgex project live
The first project I worked on at
Madgex went live last week. It is a customisation on the
Origin Job board, and is a series of 8 Dutch job sites working off one database, one
Admin site and one Recruiter access site. New job seeker sites are due to be added early next year, so it has been designed to work with 20 - 30 different job sites.
I moved on to a new project before the sites went live so Mike picked up the project and saw it through to launch. Thanks Mike!

The sites are:
As with all projects it had its challenges, but as this was my first localised project, it also had its learning opportunities. Despite the clients only wanting the sites to work in Dutch, I decided to strip all of the static text into resources files and allow the opportunity to display any of the 3 sites (job seeker, recruiter services or admin) in either English or Dutch. This was primarily to allow for easier development and support. There is an entry in the Web.config file to allow the culture to be defined. So far, it has worked pretty well, except that to update the resources file the web sites all need to be stopped to prevent them from locking the file. However, updates are rare so this isn't a big problem in the grand scheme of things.
One of the great delights about Madgex is the way that the design works. We have creative designers who do the pretty bits and we also have a team of HTML developers who do HTML and CSS (and some javascript) meaning that as a developer I integrate the HTML with the objects and get it all functioning. So, instead of spending hours doing cross browser checking or trying to work out how to get a certain effect to happen, I have a designated HTML developer who does this for me and tells me what I've done wrong, leaving me to get on with the functionality. Perfect!
All in all a succesful project which involved great team work, and great people. Looking forward to the next one.
Labels: madgex, portfolio, project
// posted by Jane @ 8:50 PM
Comments:
Thursday, September 06, 2007
Busy busy busy at Madgex
It had been a busy few days over at
Madgex. We are one of the premium sponsors at
dConstruct, running the
backnetwork and hosting
barcampbrighton over the weekend. To be fair, its been business as normal most of the time, but we did have to pack all our kit away this evening in preparation for an office shuffle.

Our t-shirts turned up this afternoon for dConstruct and then five of us headed off to the Dome to setup our stand for dConstruct and after a bit of fun working out what how to put the thing up, we ended up with a pretty good looking area. I'm meeting Nick tomorrow morning to set up the PCs before registration and then we're good to go. We've also got flyers in all of the dConstruct bags for the various jobs we are recruiting for at the moment (mainly C# developers, creative designer types and an information architect).


I took advantage of being there this evening to register ahead of time, and so am now happily sorting through my schwag, and
stickering stuff.
After a quick burger at GBK, where most of the rest of the geek community of Brighton were, we headed off to Heist for a few pre-conference beers at the pre-conference party.
Taken from backnetwork, here is my blogroll prior to the conference kicking off properly - it'll be interesting to see whether it grows over the weekend.
Labels: barcampbrighton, dConstruct, dConstruct07, madgex, photos
// posted by Jane @ 11:08 PM
Comments:
Monday, August 13, 2007
Madgex Hackday II
Last week saw the 2nd
Madgex hackday. There were 6 teams, with 24 hours each, to work on a project of our own choosing. We were the biggest team of 5 people on the day and focussed on implementing a templating language for ASP.NET based around the concept of
django's templates. Our hacking went well and by the end of the day we had a working subset of tags.
On Friday we all had to present our projects, and quite a wide range had been done from social policy research, a project documentation creator, a tool for deployments, a tool for managing the status of changes waiting to be deployed, and finally a
table football webcam (so that the people on the other floors can check that the table is empty before appearing for a game). Our project won, and so we have custody of the cup until the next hackday.
All in all it was an excellent opportunity to work with different people and to investigate some new ideas. Thanks Madgex!
Labels: hackday, madgex
// posted by Jane @ 9:53 PM
Comments: