Posts Tagged development

Devweek review

DevWeek T-Shirt

I designed my own T-Shirt at DevWeek 2012

I spent 3 days last week at the DevWeek conference in London. This was the first time I have gone, and I’d recommend it. I’m going to pull everything into one post for now, but I think I’ll be returning to some of the themes in later posts, so if this is a bit TL;DR for you, please let me know in the comments if there’s anything you’d like a summary on. Visual Studio 11 and the new TFS are two things that come to mind, but there’s also some interesting things about managing software teams that I want to return to once I’ve finished reading Peopleware.

If any of these interest you, check out the slides and code available on the DevWeek website.

Day 1

Tuesday 27th March schedule

Windows 8 for application developers – Mike Taulty

Microsoft’s Mike Taulty (twitter : @mtaulty ) got the keynote slot this year to talk about Windows 8 and Visual Studio 11. I’m sure most .Net folk have heard of both by now, but I certainly hadn’t had a chance to install the previews and try them out. This talk reinforced Microsoft’s vision of a single OS for all devices, although this only seemed to be Desktop, Netbook and Tablet, there was nothing on the new versions of Windows Server 8 (which looks like it would save me a lot of time setting up and deploying to new servers) and Windows Phone 8 so I’ll just have to keep reading the blogs to keep up with those.

The main goal of Windows 8 seems to be doing what they did right in Windows 7 and making it better. For some things, that’s borrowing from Windows Phone 7 (the Metro UI being the most obvious, and controversial), but there’s also Charms, which look like Microsoft’s take on Android’s Intents (a simple, powerful channel for de-coupled cross-app communication), a settings page which looks far more like the iPad than the old Control Panel, built in Cloud Syncing that includes app data (and easily extensible – there was a nice example of selecting photos for your profile from disk, SkyDrive or PhotoBucket seamlessly), which shows what Android and iOS should be doing for cloud integration, and looks as simple as Firefox sync or Amazon’s whisper sync to set up. Given the recent changes that iOS and Android have been getting in their latest releases, it looks like the next generation of devices are converging on some standard functionality, so consumers don’t have to lose functionality when switching between platforms.

Interestingly, the new version will also be LiveCD / bootable USB compatible. An obvious decision given the lack of optical drives on the Windows 7 tablets that will likely be upgraded, but will be interesting to see if Microsoft can make the experience as smooth as the Linux/BeOS LiveCDs. Given the advances from the Windows XP to he Windows 7 installer, there’s a good chance.

WinRT is Microsoft’s push for the new platform – bring the Metro UI to C, C++, C#, VB and HTML/JS developers equally. Channelling the .Net developers through .Net 4.5. I’m not sure where this leaves Mono developers, so .net might not be the cross-platform solution that MonoTouch and MonoDroid promise. If you want to develop on a tablet, as I wondered in my last blog post, just use Visual Studio 11. Microsoft might become the leaders in developing apps for your Post-PC world ;-)

I think the most telling takeaway from this talk for how you develop for Windows 8 was this:

“There are no Windows in Windows 8 – every pixel is yours”

You have a blank canvas, how are you going to fill a 7″ tablet and 2 42″ monitors with your metro app?

A tour through Visual Studio 11 – David Starr

The next major release of Visual Studio is on the way, and our favorite IDE just keeps getting better. This session shares significant additions and improvements slated for the next version of Visual Studio. The specific focus is on the tools that will make developers’ lives better, and how we’ll use them in real life.
Learning points:
• What’s coming in Visual Studio 11
• Which features add major value, and which are just a “meh”
• How these new tools will change how we work

My first impression of Visual Studio 11 was how much it reminded me of Ice Cream Sandwich (especially in the dark theme), and how many of the speakers were not fans. David Starr (twitter @elegantcode) pointed us at the Uservoice page for Visual Studio 11 where the lack of colour in the default theme was the number 1 most requested feature. Note that Visual Studio 11 is not a Metro app, so it will live on Windows 8′s desktop (legacy?) view.

According to the talk, Visual Studio 11′s main driver was about listening to the community and giving developers what they want, so Monty Hammontree listened to what folk were saying on Twitter, and sending via the “help Microsoft improve Visual Studio” feedback and designed Visual Studio to have simpler tooling, a minimal UI, and allowing Visual Studio to better handle the development tasks that aren’t coding, such as requirements. Read Monty’s blog above to understand the philosophy behind the changes. Although the SQL server team and the NuGet team haven’t got the memo as both built-in components are still using the 2010 colour scheme.

As with Windows 8, Visual Studio is borrowing a lot of ideas from the community and building in things that were previously only provided by add-ons, including their own add-ons like the productivity power pack, whose Solution Navigator is Visual Studio 11′s SOLUTION EXPLORER (yes, it’s all caps), and allows you to drill down and search through filenames, classes and methods.

Depending on which edition you use, there’s an improved code comparison tools that makes merging easier, a new code duplicate finder, a new test runner that can be set to run tests after every build (that includes nUnit and xUnit support), and an ability to fake any DLL (such as the System and HttpContext) in your tests, but I think the 2 things that will really help me out are the preview tab and the speed improvements.

The preview tab opens when you hit F12, or click on something in the solution explorer, or whenever you’re browsing rather than editing. It appears on the right hand side, and stops Visual Studio from opening multiple tabs by re-using the same window as you browse, then offering a simple button to turn it into a normal tab once you’ve found what you want.

The speed improvements come mainly from better backgrounding of tasks, so the UI is not blocked. Msbuild is now used for all builds, allowing the build to be architecture independent, and this feeds into the test runner and the built in source control tools.

The other big takeaway from this talk is that if you are running Visual Studio 10 SP1, you can load your project files in the Visual Studio 11 beta, save them, and they will still work in the old version, so no more breaking projects when 1 member of the team upgrades – so long as they don’t start using C#5 features like async (I’ll get to that on Day 3)

ASP.Net and Visual Studio 11 – Robert Boedigheimer

Robert Boedigheimer (twitter: @boedie) covered some of the same ground as David Starr, but he quickly got into the nitty gritty for us ASP.Net developers.

There a lot of improvements in the editors to make them more context aware for HTML and JavaScript, for example, renaming and IntelliSense support for HTML5 tags, the IE9 Javascript engine built in to add IntelliSense and references for Javascript, colour picker and CSS3 support in the CSS editor, as well as awareness for common hacks and vendor-specific prefixes so there’s no more warnings.

There’s a new Page Inspector, which looks like IE9 inside Visual Studio, that gives access to most of the web developer tools, with the ability to link back to the source code so that the CSS/HTML changes can be tested and fixed with a much shorter feedback loop.

There are some validation (including Anti-XSS), performance and feature improvements, as well as support for Web Sockets via IIS8. There was a lot of talk about how to improve performance of you website, making use of caching and minification, which are useful for everyone, but there are a few nice tricks in the new framework that make these easier and more powerful.

Even if you’ve had a look at Visual Studio 11, be sure to check out these slides, as you might learn a thing or two about improving performance.

High performance software development teams – David Starr

This one will definitely be of interest to my colleagues. Discussion of SMART goals and how to create teams that constantly outperform expectations (without lowering expectations ;-) ). Successful teams are ones that don’t stop learning, keep communicating, have short feedback cycles, and make decisions rather than reacting impulsively.

I’m not going to go into detail, as I’m sure David Starr can explain it better himself, but there were a couple of things he said that I’ll repeat here and let you cogitate on:

Successful teams ship software and are in a position that they can always ship software quickly.

Well-functioning organisations don’t need heroes to do lots of overtime, or need to fix things whilst ignoring the team.

If your well-maintained and performant data centre runs at 80% efficiency, shouldn’t you make sure you’re not working your staff harder than your machines?

Although on that last one, remember it’s always easier to add a new machine to your data centre than a new developer to your team.

Day 2

Asynchronous programming with C# 5 – Andrew Clymer

This is the sort of deep technical talk conferences like this need. Andrew Clymer from Rock Solid Knowledge showed plenty of code to demonstrate the pain of asynchronous programming in .Net by looking at how to spin off a background task from the UI, and update a control with the result (with an aside into other places where the technique is useful.

Fundamentally, async and await allow you to free up a thread and do asynchronous programming whilst the framework does all the dirty work to make sure the return message ends up on the calling thread and exceptions are raised in the right place, so writing a callback is as simple as:


async void OnClickGetUsers
{
try {
var users = await Server.GetAllUsers();
UserListControl.Add(users);
} catch (TimeoutException e) {
DisplayError(e.Message);
}
}

And all you have to do is use the Task / Task<T> as the return value from Server.GetAllUsers().

If want to run many tasks, create your own wrappers for legacy tasks, or write task-aware WCF clients, go have a look at the blogs and screencasts on his site.

Pragmatic architecture – Oliver Sturm

I was a bit disappointed with Oliver Sturm‘s talk. There was a nice concept in there, walking through the breaking down of a project into its architecture and talking through the decisions to be made at each step, but it didn’t quite work as a talk. It was listed as “The short talk”, as a pre-cursor to a workshop on the Friday, which I couldn’t go to, and I think the session was designed to interactive, so the size of the room and the expectations of the audience didn’t give the talk the dialogue it deserved. I’ve seen Oliver talk about more technical topics and those have been good, so I hope the workshop session lived up to the potential

ASP.Net MVC hidden gems, tips & tricks – Shay Friedman

Apart from a few broken demos, Shay Friedman (twitter: @ironshay ) gave a good overview of some lesser known frameworks and options in ASP.Net MVC. Most of it could be summed up by the first slide : Use NuGet, but the rest discussed all the nice extensions, frameworks, and scaffolds that you can get via NuGet, as well as a couple of simple error handling tricks, and pointing out the built-in controls from WebMatrix.

Cognitive biases and effects you should know about – Kevlin Henney

I’ve seen Kevlin Henney before, and he’s got a great, humorous style. In this very informative talk, he didn’t disappoint. His basic thesis was that everyone is biased, even about bias. If you’ve ever come across the Dunning-Kruger effect or read Kluge, you’ll have a fair idea where he was coming from. Basically, humans have a world view that is great for avoiding being eaten by a tiger, but not so great for the modern world. And Success is a better teacher than failure, because we try to forget failure. If you want to learn, mentoring is good, and practice is good, and trying to learn without either is very tough.

Day 3

The frustrated architect – Simon Brown

A great talk from Simon Brown to set up the last day.

How do you build an architecture in an Agile team? How does an agile team works with non-functional concerns like performance and scalability? What did we forget when we threw front-loaded architecture out the window and moved to Agile?

A great teardown of the problems with Agile-driven architecture, followed by some resources and ideas to help you think about how to resolve those in your own teams.

Go see the slides for yourself and understand that architecture is social and the architect needs to understand the developers and the users, and a good architect is a developer and a leader, and isn’t someone who kills trees with 400-page documents that are never read.

Storyboarding in Visual Studio 11 – Brian A Randell

I think Brian A. Randell (twitter: @brianrandell) is a Disney fan. He managed to get some Disney storyboards to demonstrate the power of storyboards. It’s prototyping from Visual Studio via a special set of templates in Powerpoint.

The interesting point of the talk for me though wasn’t the Powerpoint side, it was the additions and changes in Team Foundation Server that enable the feedback loop to send those storyboards around the development team, out to the client, gather specific feedback, and pull that back into the tasks. I wasn’t interested in TFS before, but I am now.

M-V-VM from the ground up – Dave Wheeler

I only saw the first part of this two-parter from Dave Wheeler (twitter: @finiteplane) but it was all I was looking for to understand MVVM as mainly an ASP.Net MVC developer. He had some strident views about keeping developers and designers separate, but the talk was mainly about building up a simple app and demonstrating best practice to make lives of both developers and designers as easy as possible.

To make the M-V-VM pattern work, the Model does all the back-end communication and exposes business objects, the only code in the view code-behind is the untestable UI-tied behaviour (like weird animations, and non-standard behaviours), the the ViewModel responds to ICommands like “DeleteUser” and replies with INotifyPropertyChanged events back to the UI, allowing the behaviour of the presentation layer to be tested independent of the designer’s layout preferences.

Agile Engineering Practices – Neal Ford

An Agile talk, responsive to audience demands (via a talk menu that was voted on), Neal Ford (twitter: @neal4d) gave a great journey through some interesting topics on Agile Engineering in ThoughtWorks.

In Information Radiators, he spoke about code metrics and providing information on failure and success as directly and as unobtrusively as required.

In Design Practices, he talked about the complexity of simplicity (why is it so hard to make the design simple), the importance of throwing away your experiments (but keeping the results to learn from) and how well the original design patterns from the Agile movement have aged, re-iterating the good ones, and replacing the not-so-good ones.

In Test Driven Design, he showed how TDD improved the design of a solution as well as the quality using a Kata example, as well as a series of studies from Dr. Laurie Williams that show that TDD costs a lot less than you think (which I wish I’d known about when I gave my TDD talk a few years ago), and writing more code makes you go faster.

In feature toggles, he discussed an alternative to branching and merging to allow multiple developers to work on multiple features without a merge ambush leaving developers lost and contemplating throwing away a week’s work.

In DVCS magic, he talked about how his team uses git, and how they modified things to minimise developer downtime and frustration and increase productivity.

Overall thoughts

This was a good, well-organised conference, with a heavy, but not exclusively Microsoft focus. At 90 minutes, the talks were longer than most conferences, but the speakers tended to make good use of the extra time so few of the talks felt stretched or over-long, and they all mostly ran smoothly.

The venue was good, but there was a big split between 2 of the rooms (and the exhibition area) and the other 10, heightened by lift failures on the final day, but that wouldn’t put me off going again.

The lunches were also the best I’ve had at a conference, so 3 cheers to the organisers for that.

Looking forward to coming again next year (Next DevWeek 4th – 8th March 2013). Anyone want a talk on developing across multiple offices?

 

Comments (1)

Slides and Mind Maps for DunDDD

DunDDDAs promised, here’s the slides and mindmaps for the sessions I was involved in at DunDDD 2011. The Mind Maps were generated using FreeMind.

The Philosophy of Code

This talk was an experiment on my part, given the knowledge I’ve picked up from reading books and articles from some of the smartest people in the business and beyond, and I wanted to share some of that. As Gary Park noted, it still needs some polish, but I think there’s a good idea in there, so I hope to get another chance to present it in the future. The presentation itself is licensed under creative commons, but please pay attention to the photo attributions if you want to use them in your own work. I’ve also included a link to the original mind map which contains many more great quotes.

Google Docs : The Philosophy of Code

Mind42 : The Philosophy Of Code

Download The Philosophy Of Code Mindmap (.mm format)

Software Requirements

The original presentation was given by Craig Murphy (on Twitter as @CAMurphy) and is available here : Open Discussion on Software Requirements

The mind map generated from the discussion is reproduced below.

There was a good discussion of how requirements can have different levels of detail and how the methodology can shape the process and the documentation, as well as the change process. A bit of waterfall vs. agile, but each has their place.

Mind42 : Software Requirements

Download the Software Requirements Mindmap (.mm format)

How The Web Was Lost

This talk drifted a little, since we agreed fairly quickly that with the demise of Flash and Silverlight, and the rise of the web-powered desktop in Windows 8, the web has in fact one. +1 for open standards. But where does that leave the behemoths like Apple and Microsoft who have benefited the most from the traditional role of the desktop. Can they keep developers and users on their platforms, or will they be lost to cross-platform development?

Mind42 : How The Web Was Lost

Download How The Web Was Lost (.mm format)

Comments (2)

DunDDD

Just a quick post on my way back from DunDDD (slides and mind maps to follow)  http://dundee.dddscotland.co.uk/

It’s the first time I’ve been to a developer event in Dundee and I was impressed with the enthusiasm and commitment of the attendees, so I hope that’s a good sign that there will be another one next year. Aside from the 3 sessions I was leading, I also attended Gary Short’s mining Twitter talk and Colin Gemmel’s Ruby talk. Lots of good info in both so thanks to them, all the other speakers and organisers for another great event.

If you missed out on this one and are interested in more, check out http://www.scottishdevelopers.com for more events. A couple in Edinburgh in 2011, followed by more events in Edinburgh, Dundee, Aberdeen and Glasgow next year. Well worth following to keep up with the geek scene in Scotland.

http://dundee.dddscotland.co.uk/

EDIT

For more reviews please have a look at the following blogs:

Dundee DDD Conference – Chris Hillman (@chillax7)

A review of #DunDDD – Gary Park (@gep13)

Comments (3)

Weekly Developers Hangout #2 : remote? working?

Yep, it’s not Scottish, and it’s the second one – I 1-indexed that one, boosh.

A few technical problems – turns out microphones and headphones don’t work unless they’re turned on and enabled, and webcams don’t work if you don’t have one.

So, the chat? Can you work on island whilst the rest of your team are on another island? Webcams will see to most of that, but even on a beautiful island like Mull, don’t expect people to flock from all over the world to you office, just to hack some PHP. Make use of the tools at your disposal.

As some of you may know, I started a monthly technical forum at work, broadcast out from head office to 3 remote sites and whatever client sites people want to dial in from. We make heavy use of slides and low-motion visuals to save bandwidth, and try and keep things accessible to people only on the phone. It’s a big team, and a big effort, but after a year of meetings, it’s really paying off, management are backing it, and it’s a good place for staff to talk and learn. Getting the images and sounds to the remote office isn’t the tricky part (although it’s harder than it should be), the trick is to keep the remote participants engaged. Give them feedback channels in advance of the event so they can get their questions answered. Provide videos afterwards for people to watch at their leisure. And at every opportunity, remind them that their voice should be heard. If an online conversation is swamped by one site, what’s the point of having it online?

If you’re coming along next week, noon at My Google+ Profile (invites : http://goo.gl/P0p2b ) keep an eye on the news for something you want to discuss, or throw a link to a book, a gadget or a toolkit you want to discuss below.

Until next week peeps.

Leave a Comment

Weekly (Scottish?) Developers Google+ Hangout?

I had an idea for running a book club for Google+ Hangouts, but after David Christiansen turned up, it became a more interesting catch-up, covering HP selling off WebOS, and discussing zaproxy ( http://code.google.com/p/zaproxy/ ) penetration testing tool and JIRA agile project management tool ( http://sandbox.onjira.com/secure/Dashboard.jspa?os_username=jens&os_password=password ).

Some good chat, but we were wondering if other Scottish Developers would be interested in a weekly Friday lunchtime hangout to shoot the breeze on the tech stories, tools and blogs of the week.

If you’re not on Google+ and need an invite, give me a shout and I’ll email one back to you, or click here for an invite : http://goo.gl/P0p2b . If you are interested and on Google+ come and find me at https://plus.google.com/112347442728934313588 and jump on in next time. Web cams and mic optional (if you’re a fast typist), but you will need speakers to listen in.

If there’s more good info, I might even start a weekly blog on it, but we’ll see how much interest there is.

What do the rest of you think?

Craig.

Comments (2)

Chimera wishlist : !NullReferenceException

What features from other languages do you wish your main development language had?

As someone whose first real applications were written in C++, the thing that always bugged me about C# and Java (after they got generics and autoboxing sorted) was the way they handled references. In my C++ mind, C# and Java pass pointers around, and pointers are allowed to be null. So every single time I have to use them, I have to check them for null, or set up the caller to make sure they’re not null. As Anders Hejlsberg points out, that single fact causes more problems than anything else in C#.

Also, I wish C# allowed const references like C++ to guarantee an object isn’t modified within a method when passing by reference, which is always useful to avoid copying large objects. C# would have to support const methods too, of course.

50% of the bugs that people run into today, coding with C# in our platform, and the same is true of Java for that matter, are probably null reference exceptions. If we had had a stronger type system that would allow you to say that ‘this parameter may never be null, and you compiler please check that at every call, by doing static analysis of the code’. Then we could have stamped out classes of bugs.

But peppering that on after the fact once you’ve built a whole platform where this isn’t built in… it’s very hard to pepper on afterwards. Because if you start strengthening your APIs and saying that you can’t pass null here or null here or null here, then all of a sudden you’re starting to break a bunch of code. It may not be possible for the compiler to track it all properly.

Anyway, those are just things that are tough later. You sort of end up going, well ok, if we ever get another chance in umpteen years to build a new platform, we’ll definitely get this one right. Of course then we’ll go and make other mistakes! But we won’t make that one.

http://www.computerworld.com.au/index.php/id;1149786074;pp;3

So, what do you wish for?

Leave a Comment

DDD Scotland 2011 Open Discussion Sessions

There were 2 great discussions on the alternative track at DDD Scotland this morning, so many thanks to everyone who came.

Below, I’ve posted the two mindmaps we generated. They are in .mm format. I used FreeMind (open source) to generate them.

Professional Development

An open discussion about how developers can be professional inside the constraints of management or environment. Examples of questions for this discussion could be

  • What obstacles do developers feel they face in regards to adoption of technologies and techniques?
  • How have these been overcome?
  • How can productivity and morale be improved or maintained?

Professional Development Mind Map
Professional Development Mind Map (.mm format)”
View “Professional Development” Mind Map online with Mind42

Tidied version

Professional Development - Tidy Mind Map
Professional Development – Tidy Mind Map (.mm format)

Agile Is Dead

Based on a discussion at QCon around the 10th anniversary of Agile and whether or not “Agile” actually means anything anymore. This discussion opens the floor to delegates to chat about the current state of Agile in software development.

Agile is Dead Mind Map


Agile Is Dead Mind Map (.mm format)

View “Agile Is Dead” Mind Map online with Mind42.com

Tidied version

Agile is Dead - Tidy Mind Map

Agile Is Dead – Tidy Mind Map (.mm format)

[EDIT : 10/05/2011]

I’ve created tidier versions of the above mindmaps to try and capture the groupings discussed on the day, as well as the abstract for each session. I’ve also highlighted the starting point of each discussion to make it easier to see what was added over the course of the session. I will leave the raw mind maps too.

[EDIT : 11/05/2011]

I’ve found an online Mind Map viewer to help you explore. Added links to the unedited mind maps above and here:
View “Professional Development” Mind Map online with Mind42
View “Agile Is Dead” Mind Map online with Mind42.com

Comments (6)

I don’t know

As we start the new year, there’s something I’ve noticed amongst developers, particularly when talking to clients, that we need to watch out for. There can be a reluctance to say “I don’t know”, so I just want to say, to anyone reading this, sometimes it’s OK not to know.

I don’t mean telling someone “I don’t know, go away and leave me alone”, but I certainly don’t expect everyone to know everything. Sometimes you need to go and investigate, check some commit logs, or read some blog posts. Sometimes you need to dig out a debugger or a profiler and investigate, and sometimes, you’re not the right person to ask.

If you don’t know, say so, it will give you time to find out, or an opportunity to set up a task for yourself or someone else. There’s no shame in not knowing. The things we don’t know are the things we’ve yet to learn, the things that inspire us to keep going (and if they don’t, are you really a developer?)

So, don’t be afraid to say you don’t know, so long as you know what you’re going to say next.

Leave a Comment

Horn – how to resolve a circular build dependency

Recently I’ve been working with Paul Cowan and others on the Horn build project (Horn source is on Google Code). Horn is a .Net build tool in a similar vein to Portage from Gentoo, Ruby Gems or Python Eggs, in that it provides a simple interface to search, fetch, build and install a variety of open source projects. A few weekends ago, the two of us tackled one of the biggest blockers to the project – namely the interdependency between Castle and NHibernate. Paul’s take on this can be found here:

The net result is that we are able to build Nhibernate and the relevant parts of castle.

The Software Simpleton: Dividing The Castle

As I originally wrote the dependency resolution code for horn I thought I should add some thoughts on this, particularly with the problems between Castle and NHibernate.

At the basic level, a dependency exists whenever a project uses another for functionality. For horn itself, these dependencies include castle and log4net, so in order to successfully build horn, we need to first build castle and log4net. We use a tree structure to represent this, with the root being the package you want (e.g. horn), and the children of each node being the projects it depends on, down to the leaves that don’t depend on any other package. To determine build order, we do a breadth first traversal of the tree so that all the leaves are built first, followed by their parents, and so on. The results of each build are copied into a specified location so that the parent package has access to the built assemblies.

The tree structure allows us to determine circular dependencies as it is being constructed by seeing if any package depends on itself directly or via other packages. We simply check to see if the package is a parent of itself in the tree.

For full details, see Paul’s post above, but the problem with Castle and NHibernate comes from the fact that Castle depends on NHibernate and NHibernate depends on Castle, so we end up with a circular reference. To resolve the issue in this case, as described in the post above, we had to split the Castle.DynamicProxy2 library out of the Castle package into its own package, with a custom build file. NHibernate now has Castle.DynamicProxy2 as its dependency, which does not lead to a circular reference, and the rest of Castle depends on NHibernate.

The project is gearing up for a beta release, so if you fancy helping to batter the software into shape, with bug fixing, testing, writing package definitions or anything else, feel free to jump on over and lend a hand. No guarantees or warranties on it yet, but I’ll be sure to post again once the public beta is ready.

Blogged with the Flock Browser

Comments (1)

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

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

Leave a Comment

Older Posts »
Follow

Get every new post delivered to your Inbox.

Join 937 other followers