Time flies while you’re having fun

If time flies when you’re having fun, the team at Atlas must have had a blast over the last three years as we’ve failed to update this blog in that time.  It’s somewhat embarrassing that we haven’t made the time to update this blog, but in our defence we’ve launched dozens of new websites in that time, we’ve definitely not been sat on our hands!

So what have we been up to? Well, to start with:

  1. We’ve increased the size of the team – currently 15 people and counting
  2. Added new departments for sales, marketing and software quality assurance
  3. Moved to new and better equipped offices
  4. Launched a successful HR software app called Staff Squared – this app has been so successful that we’re fortunate enough that we no longer rely on bespoke software development as a primary source of income
  5. Onboarded Barclays and other large FTSE 100 companies to our enterprise app Fundipedia – a web based fund data management app
  6. Launched some other smaller apps to test the water:
    1. Expirify – a domain name and SSL expiration notification tool
    2. Printable Calendar HQ – a dynamic printable calendar for printing customised calendar

With all of this progress we’re now intending to circle back and review the Atlas website and its various social media channels.  Well we’ve not updated our Atlas Twitter account for some time. As amazing as Twitter is for some, it’s not a tool that allows us to engage with customers (existing or new) in a way that is meaningful.   Sure, there’s some value in Twitter for apps like our HR app Staff Squared, but for a service/consultancy type business like Atlas it’s just not a meaningful conversation platform as there’s way too much noise.  We’re going to ditch Twitter and find other ways to meaningfully engage with people.

We’ll revamp this website in the coming months. We’ll create something very simple that is of course mobile friendly and doesn’t disappoint the Google bots.

We’re also working on a super secret new product that we’re going to launch under our sister brand Things Click. This product is going to revolutionise the industry it’s pointed at. Bold claims yes, but ones we reckon we’ll be able to substantiate in a few month’s time. We will of course continue to work on Fundipedia and Staff Squared as they’re both profitable and great fun.

On from that, we’re going to follow in the spirit of Microsoft open sourcing their .Net framework and share some of the behind the scenes technology we use to build products. Our first share will be a database migration tool we’ve used for years to make deployment of websites much easier. There will be more too, watch this space!

23 June | 0 Comments

New website launched for growing estate agents

We love to show off our work from time to time, and we’re especially proud of this recent website…

Building on their enormous growth in recent years Horizon Estates decided it was time to upgrade their website to match their status.  As the leading estate agents in their area, they needed a website that would automatically update to reflect the properties they have for sale on RightMove.  They also required the ability to manage their own content, so we opted to create them a dynamic website using WordPress as the content management system.

The website was redesigned from the ground up, which allowed us to take advantage of new branding Horizon had recently created for their promotional material.  Wordpress also provided an excellent platform for Horizon’s employees to update their news.



RightMove integration ensured that the property information displayed on the Horizon Estates website was always up to date.  Horizon Estates’ customers are now able to effortlessly browse sales and rental property listings, and arrange viewings at the click of a button.

3 October | 0 Comments

MVC4 AsyncSections

This project is hosted on github and has a pre release NuGet package.

To understand instantly what AsyncSections are all about, check out the comparison demo.

What problem does AsyncSections solve?

Some serverside functions take a while to complete, this can cause IIS thread starvation, which is addressed by MVC’s AsyncController. Great! :-)

However, from a user’s perspective nothing changes. They still have to wait x seconds for the page to respond and are are usually stuck on a white page that looks like the server isnt doing anything :-(

That’s where AsyncSections come in! Imagine if you could seperate your view into sections which contain the results of your long running functions. Now you can! These are seperated from normal document rendering to allow the page to load first, then load in the results when they are ready.

When would I use an AsyncSection

Whenever you are doing something on the server that takes a few seconds but you dont want to make the user wait before allowing them to use the site. For example…

  • Processing an imported spreadsheet
  • Waiting for 3rd party APIs to respond
  • Doing some processing on all records in the database
  • Generating documents
  • Bulk functions like emailing all users or creating notification records
  • Updating the database schema of the site using an EF 4.3 data migration :-)
  • Use your imagination

In theory, any page that accesses the database could use an AsyncSection, especially if it runs multiple different queries that display their results in different areas of the page, like a KPI dashboard

How do AsyncSections work?

AsyncSections are standard MVC sections which are suffixed with “Async” but they dont get rendered to the page in the standard way.

There is a new AsyncSectionController which contains the new AsyncView() and AsyncSection() methods. These combined with the new RenderBodyAsync() helper will split the page into multiple render stages.

  1. MasterPage is rendered up to the call to RenderBodyAsync()
  2. The body is rendered excluding anything in an AsyncSection
  3. A number of AsyncSections are rendered
  4. The last half of the MasterPage is rendered after the call to RenderBodyAsync()

AsyncSections Breakdown

In the example above, you will see that the element in the Task1Async section will be rendered after the example footer

But wait… what if I want my section to load into a specific part of the page?

Good point! AsyncSections will nativly only get rendered just after your RenderBodyAsync() call. In order to load content into specific parts of the page you will need to employ some kind of javascript based solution (or css if your design permits). For this reason I have also created a small helper library calles jsTransform which may get its own repo one day if it gets enough use. You can see this in action in the Multiple Tasks Demo.

jsTransform checks the page for new elements every 100ms until the document is ready. If the element has one of the transform attributes (transform-append, transform-replace or transform-removeClass) then it will act on the element and remove the attributes.

Console Demo Source

In the example above you can see that there is an unordered list with an id of consoleList and the AsyncSection contains a list item that has a transform-append attribute with a value of consoleList. This will take the list item and append it to the unordered list as soon as the list item arrives on the page.

Because AsyncSections arrive after the page has first rendrered, they will appear to blink at the bottom of the page until jsTransform moves them to their desired position in the DOM. To get arround this, I have added a hidden class to the list item that gets removed once the item element is transformed. There are many different ways to solve this problem, but this is a quick way to get you started.


AsyncSections is a research project that contains a lot of reflection on the internals of MVC4 and should not really be used in a production environment. The idea was to show what was possible with a few small tweaks of the Rendering system and with a bit of luck, get something similar added to a roadmap for MVC5+

For this reason, this project will probably only ever have a pre release NuGet package

Please show your support for this project by sharing it with others and letting the MVC team know you would like a feature like this in the future. Fingers crossed :-)

10 August | 0 Comments

Techniques to reduce software project risk

Following 1000’s of hours of time invested in discovering what does and doesn’t work to reduce risk in software projects and I wanted to consolidate our findings in to a short blog post in the hope that I would save others the same pain.  This post also touches on agile, however it’s important to understand that an agile approach to software development highlights project management issues – it does not resolve them.


9 January | 0 Comments

Techniques for gathering software requirements

Gathering software requirements is a tricky yet essential part of any software development process. In a nutshell the process involves speaking with the end users and others with a vested interested in the application, tying them to a chair, shining a light in their eyes and shouting “WHAT DO YOU WANT?!” over and over again.  Sooner or later they relinquish the information you require in order to create a functional specification, which in itself forms the basis of your agreement with the customer.  more..

6 December | 0 Comments

Movember 2011 – Razors at the ready

That’s one of the great things about Movember, a month-long charity event which raises funds and awareness for men’s health issues, without participants having to do anything more than engage in a bit of basic grooming.

The concept is simple: at the beginning of November, guys (henceforth known as Mo Bros) register with Movember, shave clean and then spend the rest of the month growing a moustache of any shape or size. more..

30 October | 0 Comments

Atlas wins top 100 employer award

We’re delighted to announce that Atlas has been chosen as one of the top 100 employers in the UK today! As part of this we have been listed in The Times and The Sun newspapers.

Those of you who know us will already be aware that we do lots of work with the apprenticeship scheme.  Simon sits on the Apprenticeship Ambassadors Network and Atlas has won two awards for its proactive involvement in apprenticeships. more..

30 June | 0 Comments

Two new websites launched

We’re delighted to announce the launch of two new amazing websites this May.

First up is a new WordPress website for our friend Rich Simmons over at Art is the Cure.  Rich needed the ability to pull content from the wide range of platforms he uses to spread the word about the AITC movement. more..

25 May | 0 Comments