Google Code Migration : Genetic Algorithm Templates

With the closure of Google Code, I’ve moved some projects to github. All personal projects so far, but related to talks our blog posts from the past, so may still be of interest.

The first project I want to highlight again is written in C++ and implements genetic algorithms using mainly C++ templates, just to see how powerful they were. It taught me a lot about generic code, and how a poor type system can interfere with the clarity of your code. It also prepared me for one of my first talks, about Genetic Algorithms at a Beauty of Code techmeetup.

I’d like to look at a Python port, to see if my expectations of using dynamic typing would answer the concerns I have about code clarity. For now though, it’s available for reference. It’s not production tested, and there are parts that are embarrassing, but it might be interesting if you want to know what genetic algorithms might look like.

code development programming

DDD Scotland 2011 Voting and Teasers

DDD Scotland voting With voting now open for Developer Developer Developer Scotland 2011, I thought it was time to give everyone a teaser of the 3 talks I submitted to inspire you to vote for me πŸ˜‰ – but be sure to vote for some of the other sessions too, there’s a great line-up and some tough competition for speakers places.

HTML5 for mobile

HTML5 Canvas : Card back
A simple HTML5 game in 1 hour. Covering real-world usage of canvas, CSS3, ECMAScript 5, and a few other goodies. I’m not going to say too much, except that the image here is rendered via canvas (which neatly, in Firefox, offers a “Save As…” png option in the context menu). This canvas works in Firefox, Chrome, Android and iPhone, and possibly others.

The talk will be given using Firefox, but participants will be able to follow along on their Androids and iPhones (well, it’s one way to get people off Twitter πŸ˜‰ – @craignicol btw, if you hadn’t guessed)

If angle brackets or JavaScript scare you, this is not the talk you are looking for.

Genetic Algorithms

Lights Out
Want computers to solve problems themselves? Maybe find a solution to light out like the game on the left?

I’ll run through the theory and a bit of practice, using the game above as an example of how to encode a problem to be solved by a Genetic Algorithm.

There may be some C++ (yeah, I am old skool πŸ˜‰ )



IronPython has been around for a little while as an official .Net language. Whilst many .Net developers are fleeing to Ruby on Rails, wouldn’t it be nice to program in a dynamic language using the libraries you already know? Wouldn’t you like to write the same program with much less code. And wouldn’t you like to see how a language where everything is dynamic really works?

code programming

July Tech Meetup Glasgow: The Beauty of Code – Techmeetup

The video for my Genetic Algorithm talk has been posted to the TechMeetup blog for those who want to watch it (and can withstand my stuttering πŸ˜‰ ). If you want to grab the original presentation itself, it’s in the repository for the C++ template project: geneticalgorithmtemplates \ talks and presentations \ techmeetup glasgow 20090701 (edit : now moved to github)

Craig Nicol on Genetic Algorithms

Craig provided a high-level introduction to what genetic algorithms are and how they can be used.Genetic algorithms is a search technique used in computing to find exact or approximate solutions to optimization and search problems. As the name suggests, they’re inspired by the process of evolution in the natural world. The typical genetic algorithm consists of a genetic representation of the solution domain, and a fitness function for evaluating the solution domain.Craig used example to clarify the topic and his presentation stimulated an interesting discussion of potential applications of the technology.

July Tech Meetup Glasgow: The Beauty of Code – Techmeetup

Craig Nicol talks about Genetic Algorithms from TechMeetup on Vimeo.

Hope to see you at the techmeetup talk tonight.

Blogged with the Flock Browser
code programming

Genetic Algorithm Templates

I had a great time at the Tech MeetUp (@techmeetup) in Glasgow this week. If you want to meet up with other tech minded folk in Scotland, it’s definitely worth checking out. See the details at the end of this post.

At the meeting this week, I got talking to a few folk (including John Gallagher who gave a great talk) about AI and Genetic Algorithms. This inspired me to dig out my old experimental code for doing GAs using C++ Templates. The code’s very rough and ready, and it was written long before I discovered TDD or subversion, but it should be standards-compliant, and it compiles in the latest GCC (I can’t vouch for other compilers, if you try it, let me know). As it’s a source-code library, you’ll have to compile it yourself, but if you don’t know how to use a compiler, you’re probably reading the wrong blog anyway. I will be tidying up the code and creating a wish list as I get the chance, but I’m throwing it out there in case it’s useful to anyone.

If you’re interested, check it out at the link below and let me know what you think.

Genetic Algorithm Templates (edit : link moved to github)

If you’re interested in Tech MeetUp, you can see videos from previous talks at their website

The Tech MeetUp is the informal opportunity to meet other developers and tech companies, to showcase your hacks or projects, and to find out what’s happening around us. Help build the tech community – set up a profile and come along to a Tech MeetUp.

Home – Techmeetup

You can find out about upcoming meetings on their mailing list

Description: An easily accessible and friendly community of tech minds, skills and startups around Scotland and Northern UK.

Tech Meetup | Google Groups

Blogged with the Flock Browser