August 2012 – Kata: Anagrams

Date: Thursday 30th August 2012

Time: 19:30 start.

Venue: The Stafford Ale House
Location: Google Maps

Bring your laptops and your favourite coding tools! This week shall do some coding.
I am going to use another kata from Dave Thomas’ BlogAnagrams!

Continue reading →

July 2012 – Refactoring Session

Courtesy of the daily WTF


Date: Thursday 26th July 2012

Time: 7:30pm start

Venue: The Stafford Ale House
Location: Google Maps

Refactoring Session

During July’s meeting of Agile Staffs the plan is to have a refactoring session.  The purpose of the session is to get everyone to take part in an exercise of refactoring some simple code as a means of encouraging discussion about the process and the many ways that we can go about it.

Everyone participating in the exercise will be starting from the same basic code base and may refactor it in any way that they please to improve the code.  There are some simple acceptance tests that verify the code is doing what it should.  Aside from that everyone may work on the code however they see fit.  The exception to this rule being the acceptance tests cannot be changed as they govern that everyone’s source code will still solve the same basic problem.

We have a couple of options for how the evening could be run, and I would welcome feedback as to what you think you would prefer.

Initially, everyone pairs off with a programming partner and begins to refactor the sample code, refactoring goes on for approx. 40 minutes, after which we all break for a discussion, where each pair takes a turn to describe how they have refactored the code.

From there we have a couple of options, assuming there is some time left.  We could either; continue with the refactoring from where we left off or, reset the virtual machines back to their initial state, select new programming partners and start the exercise again (as per the code retreat process).

The Environment

To make sure that everyone is using the same environment and starting from the same point, an Ubuntu Virtual Box Instance is available that contains an install of IntelliJ, Git and the proposed exercise ready to go.  Each participant will need a copy of Virtual Box and the Virtual Machine that is available via Dropbox.  The download is almost 7Gigs in size, so I will also bring copies of both the Virtual Box installs and the VM on the night but the process would be sped up greatly if everyone was prepared beforehand.

It is possible to download the image, spin it up in Virtual box to the login screen for Ubuntu to make sure it works and I would recommend that people do this so that on the night they can simply get the password and crack on.

Links to downloads:

Virtual Box:

https://www.virtualbox.org/wiki/Downloads

The Ubuntu Image and Instructions:

https://www.dropbox.com/sh/yn1d7l1z3uk366u/JJBB0VRx_l

The Exercise

I am going to keep the exercise itself as my little secret for now.  I was going to make something up, however a quick Google search turned up an exercise for which, the initial source, an ideal final source and acceptance tests are available so I have opted to go with this instead.  Firstly, because it was there and saved me from having to worry too much about providing something that was too complicated or too simple for two 40 minute sessions and secondly because it has an ideal solution that I will hold back until much later in the session as a kind of yard stick to see how we all did.

Anyway, the aim of the session is to have a little fun, have a lot of discussion and hopefully learn some stuff as we go.

In the meantime, if anyone has any issues getting setup or queries about the session, please email me at Robert@stothard.me.uk and I will try my best to help out.

 

In the meantime, below are some further links for information about in case anyone would like to brush up beforehand.

http://www.infoq.com/presentations/Stop-Refactoring

http://lostechies.com/seanchambers/2009/10/20/31-days-of-refactoring-ebook/

http://books.google.co.uk/books/about/Refactoring_Workbook.html

 

See you there

 

Bob

June 2012 – The Ideas Session

Who Else Has A Bright Idea?

Who Else Has A Bright Idea? by nhuisman, on Flickr

It was nice to see a good number of people turning up for this months meeting, especially as there was no defined plan.

This session was intended to be an informal open-space type meeting, with a view to generating ideas for future sessions. The contrast between the google group and the meeting was startling, proving that co-location, good food and beer are ideal ingredients to get a discussion going.

To generate a backlog of ideas we held a productive brainstorming session, with the post-its kindly sponsored by Codeweavers!

Outcomes

Future Meeting Dates

  • We will fix meeting dates to the last Tuesday of each month. This way attendees know well in advance and can make plans accordingly.

Backlog Management

  • There was some discussion regarding how to manage our ideas and Rob mentioned a project called Idea Strike.
  • It was agreed the list should be held and maintained on the blog. To achieve this we require more accounts on the blog. If you would like an account please let Neil know at the next meeting.

The Ideas

  • Document databases.
  • NoSql databases.
  • Fortran vs ?
  • Show and tell sessions – E.G. “What I have been doing lately that is interesting.”
  • Bit hacks – bit shifts
  • Assembly create – can someone elaborate on this please?
  • Phil does c. Subject to Phil accepting Trevor’s kind invitation! (Merged with procedural programming)
  • Concurrency without locks
  • Object calisthenics
  • Minisculus challenge
  • Alien Invasion – Neil has the code running on his hosting for this.
  • Development without inheritance
  • Patterns and practices in objective c – Common design patterns in games.
  • Sparse matrices in C# – E.G. for Laplacian
  • Refactoring to strictly SOLID principles.
  • Algorithms, loops , 0(1) 0(n) 0(n ‘2) 0(n ‘ 3) 0(log n) 0(n – log n)
  • High availability techniques
  • Let’s create a project together
  • GUI dynamic integration
  • Kata – the chess game, movements of the knight
  • Python in real world usage, testing idioms etc
  • Functional programming – Ocaml, F# … Brian Marick has started a book on leanpub that may be useful.
  • Integration of Matlab into c#
  • Refuctoring
  • Build scripts for a given project
  • Essential processes in an agile world
  • Raspberry PI
  • Integrating into existing systems – Finding in-roads to automatica
  • Performance optimisation kata

Please feel free to catch up with me, get an account and edit this list.

Regards,
Neil.

May 2012 – CRC Cards

Details 

CRC Card

Date: Monday 28th May 2012

Time: 7:45pm start (Slightly later than usual)

Venue: The Stafford Ale House
Location: Google Maps

Theme: Practical Session

 

The Homecoming!

Please note the new (old) venue. I’m pleased to announce that the Stafford Ale House is the new venue (ex Pie and Ale House). Same place – with much the same staff I believe.

This is a result as the facilities are much more suitable for our needs – certainly for workshop style meetings such as this months.

CRC Cards

This month we have a guest speaker, Sam Wessel. Sam is a founder member of our group, an ex Codeweaver and now is working in Nottingham for Esendex Ltd. He has presented at conferences such as the Scottish Ruby Conference , Agile North and is also actively involved with GeekUp Nottingham.

Sam will be leading a workshop style session providing a practical introduction into CRC cards.

Wikipedia states:

Class Responsibility Collaboration (CRC) cards are a brainstorming tool used in the design of object-oriented software. They were proposed by Ward Cunningham and Kent Beck. They are typically used when first determining which classes are needed and how they will interact.

My perspective is that the CRC technique can be incredibly useful on a number of counts:

  • Assists and reveals an OO design
  • Provides the team with a common understanding of the design and behaviour of a system
  • Can be useful as an OO teaching tool
  • Can be particularly useful for Visual Thinkers

All you need is a pen – there will be no coding. However I bet a number of us will want to code the designs we come up with!

Hope to see you there,
Neil Kidd

 

March 2012 – Backbone.js

Details

Backbone by Paul Garland, on Flickr

Date: Monday 26th March 2012

Time: 7:15pm start to 9:15pm

Location: http://themorrismanpub.co.uk
Google Maps: http://g.co/maps/ptzt5

Theme: Practical Session

 

New Venue

Please note the new venue. It’s our second meeting at The Morrisman. Follow the links above for further information.

At last months meeting, we sampled a selection of the menu and found it to be delicious and excellent value. The beer was pretty good too.

Backbone.js

In the modern web, great usabilty is vital. I believe Ed Yourdon (@yourdon) recently suggested that User Experience is as important a differentiator between websites / services as Transactions Per Minute was in the 90s.

Users are getting more sophisticated and more demanding. Web developers are embracing and pushing the boundaries of client side scripting to:

  • improve responsiveness
  • increase scalability
  • enable great user experiences

This has provided difficulties in the past, Javascript has had it’s challenges – accessibility, performance, cross browser issues and lack of suggested architectures. There have been some great libraries (Prototype, jQuery) to address some of these concerns. I’ve still struggled with how to apply consistent structure to Javascript heavy applications.

Several months ago, I watched Single Page Apps and the Future of History by Michael Mahemoff. It’s a great intro to the subject of Javascript centred web applications and the idea of client side templates, hashbang uri’s and frameworks like Backbone.js.

In this practical exercise I will introduce Backbone.js using underscore templates. Some Javascript knowledge is assumed but we can pair up accordingly. Also, please bring laptops with your favourite Javascript/html/text editor. I’ll be uploading the exercise to GitHub later this week, but will also bring the exercise on a memory stick.

Lightning Talks

As yet (usual!) their are no volunteers for a lightning talk. If you have any topic you’d like to share with the group then you can have a 10 minute slot at the beginning of the meeting. Please email the group or mention it at the venue before we start.

Hope to see you there,
Paul Williams

 

February 2012 – Coding Golf

Details 

Golf Balls

Golf Balls by walknboston

Date: Tuesday 28th February 2012

Time: 7:15pm start to 9:15pm .

Location: http://themorrismanpub.co.uk
Google Maps: http://g.co/maps/ptzt5

Theme: Practical Session

New Venue

Please note the new venue. It’s our first meeting at The Morrisman. Follow the links above for further information.

When I called in, the menu and food being served looked excellent. The beer was pretty good too.

Coding Golf

Shaun Finglas has kindly offered to run this months session. His proposal email was as follows:

My proposal is simply Code Golf. We’ll spend an hour (ish) solving a fairly trivial problem in the style of a kata as normal. The twist is you must then refactor your code to an extreme level so that you can solve the problem in the least amount of characters possible.

Rules:
– The code must compile/execute
– You can use any language you want as long as you can accept user input/display output – think simple console application
– The code must implement the required functionality

The challenge will be revealed on the night so there is no prerequisites apart from laptops. The more laptops we have the better. People can work solo/pair if they want but as long as we have enough machines we should be fine.

“Golfing” real life production code is not something you would want to do, but I’ve found Code Golf challenges very fun, and they show just what sort of merciless refactoring you can do once you have a good suite of tests to back you up. These sort of challenges are incredibly hard without a good suite of tests, so you can often win over people who maybe do not see the value in unit testing production code.

Lightning Talks

As yet (usual!) their are no volunteers for a lightning talk. If you have any topic you’d like to share with the group then you can have a 10 minute slot at the beginning of the meeting. Please email the group or mention it at the venue before we start.

Hope to see you there,
Neil Kidd

January 2012 Meeting – Space Invaders vs Continuous Testing

Details 
What it should look like with no glare [1680x1050]

What it should look like with no glare by DUCKofD3ATH

Date: Tuesday 24th January 2012

Time: 7:15pm start to 9:15pm (doors open at 6:30pm).

Location: http://www.pieandale.com

Theme: Practical Session

Space Invaders vs Continuous Testing

Paul Williams will be running this session, that he first took part in at the Software Craftsmanship Conference in 2011. Paul has since gone on to run this session at his place work, so he now has a fair bit of experience with it!  To minimise possible complications, we intend that the server will be run locally and connected to a wireless access point.

The description shamelessly taken from the original session description is (my emphasis):

A fun coding challenge to find the fastest way to develop reliable software, between: * Manual testing * TDD * Continuous testing. Participants will write code to defend earth from alien invasion. Score will be accumulated over 60 minutes depending on how many cities are successfully defended. Participants will be split into 3 groups, each representing a different testing practice. Scores will be averaged between the groups at the end of the session to determine some interesting statistics.

This session is for .NET developers only. Participants who wish to operate in the TDD group must have a manual test runner available on their machine that can run NUnit tests. Participants who wish to try out continuous testing are recommended to first try NCrunch on their machine ( www.ncrunch.net ) – though there will also be some setup time at the beginning of the session for those unfamiliar with this tool. Visual Studio 2010 will be used along with .NET v4.0. A downloadable solution will be made available at the beginning of the session containing the code and instructions needed to get started.

 

Lightning Talks

As yet their are no volunteers for a lightning talk. If you have any topic you’d like to share with the group then you can have a 10 minute slot at the beginning of the meeting. Please email the group or mention it at the venue before we start.

See you there.

October Meeting: Lightning Talks and Kata

Details

Ka-boom (lightning) By Leszek.Leszczynski

Date: Thursday 27th October

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close when the kata’s over).

Location: http://www.pieandale.com

Theme: Lightning Talks

Lightning Talks

The short format of a lightning talk means that we can fit a few in, while also leaving some time for some programming. We’re going to do just that for the October meeting and we’ve had the following topics and volunteers for quick talks, giving us a varied mix of content for the meeting.

Paul Williams – backbone.js

Paul wants to talk about a popular JavaScript “framework” he’s been using that allows you to organise JavaScript applications through models, views and collections, and provides binding between those three elements.

Trevor Adams – Teaching with TDD at Staffordshire University

Trevor previously presented to the group about teaching Agile methods and wants to give us some feedback from the ideas and practices that he’s tried out.

Paul Shannon – CQRS

Command Query Responsibility Segregation is a pattern originated by Greg Young that works on the premise of using a different model to write data to a persistent store than you do to retrieve the same information. This helps produce  efficient systems for read heavy applications and is the direction being taken by 7digital in their recent architecture changes.

Paul Williams – Frameworks

Paul has been reading about the varied use and timely use of frameworks and wants to talk more about this – vague I know, but it’ll be more of a surprise that way 😉

Paul Shannon – New Relic

If we have time, and if the internet connection works, then Paul will show off New Relic, a web app monitoring/analytics tool that breaks down web requests to a granular level – separating requests into page rendering, CLR/runtime execution, database calls, network traffic etc. This is currently in use on the 7digital API and live sites so Paul hopes to demonstrate the power of the tool by delving into some of the live data.

The Ordered Jobs Kata

Martin Rue recently posted a new kata he’d developed from a code problem he’d recently solved at work. He posted this on XP Manchester and has been adding completed solutions from various people as they have completed it in different languages. There are the usual suspects in terms of languages and even a few in SQL. You can tackle this problem at the October meeting in any language you like, using an test framework you like. As ever, there will be some TDD veterans at hand to help out anyone who hasn’t tried it before.

http://invalidcast.com/2011/09/the-ordered-jobs-kata

September Meeting: Systems Thinking Games

Details

Date: Thursday 29th September

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close when the games have finished).

Location: http://www.pieandale.com

Theme: Systems Thinking

Systems Thinking

Following the excellent talks from Kevin Rutherford and Harriet Shannon in June we’re continuing to think about how teams and environments can be improved by considering how things influence one another as part of a whole. The practice concentrates on viewing complex problems as larger systems rather than focussing on the individual components out of context. It’s all about relationships, philosophy and common sense – much like the topics we’ve covered already at Agile Staffs. The topic is vast and is best discovered over time, rather than via my bumbling summary here. There are plenty of online resources and even a user group in Sheffield. We’ve covered some aspects before (Theory of Constraints, Lean) so this meeting should give us all a good understanding of the basics, giving us the opportunity to go away and learn more.

Playing Games with Ash

Our speaker for the evening will be Ash Moran, a software developer, agile coach and user group regular from Stoke-on-Trent. He provides advice and training on these matters too through his company Patch Space. He is an ex-colleague of a few group members and we’ve been planning on having him pay us a visit for some time. I’m not entirely sure what his plans for the meeting are but I know they are going to involve some games. These will likely be in the form of interactive exercises to illustrate the various concepts, much like the dice game exercise we did with Kevin. I’ll update this when I know more, or I might just leave it as a surprise…

Bring Your Friends

As the meeting will have a less technical theme than recently it is a great opportunity to bring new members, bring your boss, or even your non-computery friends as Systems Thinking has been widely used in all manner of contexts. By the sounds of some of the games (Ash asked me how much room we’d have!) we could do with as many people as possible too. Information for new members can be found on the New Members page.

 

August Meeting: Code Smell Clinic

Details

Date: Monday 22nd August

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close when we’re bored, or drunk).

Location: http://www.pieandale.com

Theme: Code Smell Clinic

Code Smells Presentation

Computer Scientists and Software Developers love analogies. You’ll find that the Agile fraternity love metaphors and double meanings more than any other breed of software developer. A Code Smell is one of the most obvious metaphors and comes from the instinctive reaction to bad smelling food – a primordial reaction to tell you that the food is bad, of low quality and should not be eaten. While smelly code might not poison you it can turn the stomach once you’ve honed your software craftsmanship skills.

We’ll begin the session with an overview of some of the more common code smells. Bring your argument hats, as some of these points are going to be controversial.

The Clinic

This will be a unique opportunity for you to take a step back and, along with the help of the rest of the group, analyse the quality of your code. We’ll identify smells, discuss how to fix them through refactoring and how to apply design patterns that would prevent similar in the future. For this session to work we will need code – don’t be embarrassed to bring in stuff you’ve been working on, stuff you’ve found, stuff you’ve seen – we’ll all work together to help you improve.

Language doesn’t matter, we’ll use Notepad++ to inspect the code – it doesn’t even have to compile or run. If you have a solution with some unit tests, even better, as we can verify our refactorings. Given the mix of people that usually attend hopefully we’ll see some C# web stuff, gaming code, PHP, JavaScript and good old smelly Java.


Tag Cloud