Dovetail blog posts by Tomas Forde

Integrating ARCGIS Online maps for CIS

Construction Information Services (CIS) is the leading supplier of All-Ireland Construction Leads, and it recently launched a new mapping feature for its flagship CIS Online product.

This new feature allows CIS customers to see the exact location of project leads.

The system uses the ARCGIS Online platform, provided by ESRI Ireland, to securely store and display spatial data for each project.

Dovetail had a central role in developing this functionality and was responsible for integrating the ArcGIS platform with CIS Online and backoffice features. The project included:

  • Realtime synchronisation of CIS Project leads with the ArcGIS platform using the ArcGIS Online API
  • Adding secure maps to CIS Online and to backend researcher systems
  • Secure integration of an ArcGIS Online application into CIS Online
  • Using the ArcGIS Online Javascript API to project Irish grid coordinates to longitude and latitude.
  • Backend functionality to assist the research team to verify the location of project leads.

CIS Ireland is one of Dovetail’s most established clients and it celebrates its 45th birthday this year.

"We have trusted Dovetail with our critical systems since 2007. Dovetail’s philosophy is based on “partnership”. They consistently deliver high quality solutions for our business and I have no hesitation in recommending them.”

- Tom Moloney, Managing Director.

Create a cloned SQL Server Azure Database

Today, I wanted to create a clone of a SQL Server Azure database. I was looking at various ways of doing this, including exporting and re-importing the database, but thankfully, there is a much easier way.

I ran the following SQL command against the master database on the SQL Azure server:

AS COPY OF Old_Database

 For more details, check out the official documentation and this Idera blog post.

Dublin Bikes are now closer

We like to think of Dovetail as a pro-bicycle company, and there are many card carrying subscribers to the Dublin Bikes scheme within the office. When the expansion of the Dublin bikes scheme was announced, we were eagerly anticpating a much shorter journey to our nearest bike station.

Last week, as part of this expansion, the station beside the Guinness Storehouse opened, which means that we now have a two minute walk to our nearest station. Hopefully, with the Guinness Storehouse station such a popular destination for tourists, this station will be stocked with spare bicycles thoughout the working day so we can make our cross city meetings on time.

Dublin Bikes at the Guinness Storehouse

iPad auto-rotating some images

We recently came across an issue on a customer website where a photo appeared correctly on most browsers, but was rotated ninety degrees when viewed on the iPad. The photo even showed up correctly on the Windows version of Safari.

This was puzzling us; why would one browser decide to rotate a photo when all others displayed the same photo correctly?

On further investigation, we discovered that this was because of the EXIF metadata stored in the photo. The camera, when taking the photo, saved its rotate setting for the photo in the EXIF metadata, and the iPad browser was just applying this rotate.

So the simple solution is to remove the EXIF metadata from the photo. This can be done using an application such as IfranView, or an image compression website such as PunyPNG. We used PunyPNG, and the reduced image now displays perfectly on the iPad.

Multiple Screen Sizes in Android

One of the big differences we found between iOS and Android development, is handling the multitude of screen sizes that come with Android devices.

The Android solution to this has changed in Android 3.2. Prior to this, different screen layouts could be specified for small (~<4 inch), normal (~4 inch), large(~6 inch) and xlarge (~10 inch) screens. In Android 3.2, you can specify layouts based on dp (density-independent pixel) units.

What we like most is that layouts can be specified for different available screen widths, meaning that layouts can be specified for different screen orientations. The YouTube app on the GalaxyTab does this very well; in the portrait orientation, the related videos section appears at the bottom, but when switched to the landscape orientation, this section appears on the right, making maximum use of the space available.

The android documentation contains detailed information on screen support, including how to handle screens of differing pixel densities.

Dublin city data on the web

Dublin local authorities, in collaboration with NUI Maynooth, have made public sector data available on the internet. The aim is that the public can use this data to create innovative products and services.

We encourage projects similar to this, which open up data stored previously in information silos.

For more information, see

AppPoolIdentity and Permissions in IIS7

One of the better features that came in IIS 7 was the automatic creation of separate application pools for each web site; this had to be done manually for each website in IIS 6. Furthermore, in IIS 7.5, the default application pool identity changed from NetworkService to AppPoolIdentity. Both of these changes were designed to improve process isolation by using separate user accounts for each application pool. It also meant that we do not have to manually create custom Windows user accounts for our application pools anymore.

All well and good. So how do we set folder permissions (ACLs) for these applications pools? This is done by setting folder permissions for the "IIS AppPool\[application pool name]" user, where [application pool name] is the name of the application pool in IIS.

SH_ 2011-09-27 14.5903

When in the Select Users or Groups dialog, ensure that machine name (Cabbage in my case) is selected for Locations and Built-in security principals is selected selected for Object Types, in order to find the application pool identity user.

SH_ 2011-09-27 14.5904

The rise of Javascript

Way back when ASP.Net was first released, many web developers saw the postback as a replacement for JavaScript. Back then, it was easy to hate JavaScript, with its unfriendly DOM and its different behaviour in the various browsers. However, the launch of GMail demonstrated to internet users how a rich UI could be delivered over the web, and JavaScript was the essential component in most Web 2.0 applications.

With the growth of cloud computing, JavaScript powered web apps are becoming more common. Even Microsoft are introducing JavaScript+HTML5 apps in Windows 8. With transcompilers, developers can create JavaScript code using a different language, and with Node.Js, JavaScript is being used outside of its traditional web browser home.

JavaScript, it seems, is here to stay. Below are a few interesting JavaScript related links for further investigaton:

  • JQuery - Needs no introduction. Essential for web development
  • KnockoutJS - Dynamic JavaScript UIs using the MVVM (Model-View-View-Model) pattern
  • Node.js - Event driven IO server-side JavaScript environment
  • CoffeeScript - a little language that transcompiles into JavaScript
  • ClojureScript - Clojure to JavaScript transcompiler
  • Titanium Mobile - Create native IOS/Android apps in JavaScript

  • 1