Michael Whelan

behaviour driven blog

A JavaScript Calculator

Before getting into any AngularJS, the first project on Thinkful's Angular course is to create a JavaScript calculator to review front end basics with HTML, CSS and JavaScript. It provides some interesting challenges. You can see my working version here. The source code is also on GitHub.

Read more

Learning AngularJS

AngularJS seems to be getting a lot of momentum at the moment and I think it is going to be a really useful thing to know. We have several “meet up” groups for it here in London and I’ve noticed a lot more jobs requiring it. I am currently learning Angular through Thinkful. I blogged recently about the great experience I had with their Front-End Web Development course, and I'm already impressed with the depth of coverage of this course. It doesn’t just cover Angular, but also gets into testing – something I am a huge fan of – and build tools like Gulp and Bower.

I normally blog about C# and things I have a lot of experience with but I thought it might be interesting to blog about AngularJS while I am learning it. All the code I write for the course will be on GitHub so why not try to learn in the open?

Read more

Moving my blog to Snow and GitHub Pages

Most of my work has involved ASP.Net MVC and SQL Server, so it seemed natural to gravitate towards blogging platforms that used those technologies. Initially, I used NBlog, which was a great little blogging engine, then I moved to FunnelWeb, which seemed to have a larger community around it and was used by people I knew. My work has expanded a bit to other technologies, such as RavenDB and AngularJS, and I’ve become more open to the idea of using my blog to experiment with new technologies and approaches. I have noticed more and more people moving towards static site generators, and the simplicity really appealed . I also use Git and GitHub a lot more now and the idea of a blog publishing workflow involving Git makes a lot of sense to me. Add in GitHub Pages for free hosting and what could be better?

Read more

Refactoring Kata

I recently came across a blog post from a couple of years ago where Scott Allen provided some gnarly code on GitHub as a refactoring kata exercise. Here is the background he provided in that post:

Read more

Exporting a SQL Server Database to SQL Azure

Yesterday I was having a problem with Entity Framework Code First Migrations when publishing my website/database to Azure Websites/SQL Azure. Solving the database publishing problem felt like yak shaving so, in the interest of pragmatism and getting back to the task at hand, I decided to just migrate my local SQL Server 14 LocalDb instance to Azure using SQL Server 2014 Management Studio (SSMS).

Read more

Doing Front-End Web Development with Thinkful

I have been a contract programmer in London for 18 years. What I love most about contracting work is the flexibility it gives me. Sometimes I will finish one contract on a Friday and start the next one on the following Monday. Other times I might take a few months off to visit New Zealand with my wife (we both grew up in New Zealand and all our family are there) or do some other travelling. On a couple of occasions I’ve taken even longer “sabbatical” breaks. They have given me a chance to get away from work altogether and focus on other things. I call them sabbatical breaks because invariably I find myself keen to do some sort of personal development, like get Microsoft Certification, or learn a new technology.

Read more

Automated UI Testing Done Right

It's coming up to a year since Mehdi Khalili and I started the Seleno open source project, a framework to help you write automated web UI tests in the "right way."

About that time, Mehdi presented a session at DDD Sydney 2012 titled "Automated UI Testing Done Right!" In it, he shared a lot of the ideas that have gone into Seleno. Mehdi is a great teacher and his strength is taking complex topics and explaining them in a way that is simple and easy to understand. The video of the presentation has recently been published on the SSW TV website and I highly recommend that you check it out. You can also see the slides from the talk here.

Read more

BDDfy In Action: Using BDDfy for Unit Tests

I’ve been using BDDfy with NUnit for writing acceptance tests for quite awhile now. But for unit testing I have continued to use mspec with machine fakes and Moq for auto-mocking. The more I used BDDfy, the more I liked it, and the less I liked the context switch into another framework. I found myself wanting to write unit tests in the Given When Then format and didn't like having to maintain two sets of helper code for NUnit and mspec. I loved the reporting in BDDfy and started to think it would be pretty cool to have similar reporting for my unit tests. Basically, I wanted a consistent experience across all my automated testing.

Read more

BDDfy in Action: Roll your own testing framework (2)

In the last post, I did not implement the parallel testing requirement of my custom framework. This is just a brief follow up to show that feature. In the never ending quest for faster running tests, being able to run them in parallel can be a great way to speed things up.

Read more

BDDfy in Action: Roll your own testing framework

Throughout the BDDfy in Action series, Mehdi and I have talked about the extensibility of BDDfy. I thought it would be useful to put together some sample code to demonstrate some of these extension points, and to provide a reference point for some of your own customizations. To provide some cohesion to the examples, I thought I would set myself the task of modifying BDDfy to work as a context specification framework, similar to mspec, which was previously my unit testing framework of choice.

Read more