<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>New Media Labs &#187; Custom Development</title>
	<atom:link href="http://www.newmedialabs.co.za/category/custom-development/feed" rel="self" type="application/rss+xml" />
	<link>http://www.newmedialabs.co.za</link>
	<description></description>
	<lastBuildDate>Thu, 19 Jan 2012 06:00:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Building a Relational City Suburb Database for South Africa (and why I wouldn’t trust Yahoo WOEIDs)</title>
		<link>http://www.newmedialabs.co.za/mapping/building-a-relational-city-suburb-database-for-south-africa-and-why-i-wouldn%e2%80%99t-trust-yahoo-woeids</link>
		<comments>http://www.newmedialabs.co.za/mapping/building-a-relational-city-suburb-database-for-south-africa-and-why-i-wouldn%e2%80%99t-trust-yahoo-woeids#comments</comments>
		<pubDate>Mon, 28 Nov 2011 13:18:58 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Building relational City Suburb database]]></category>
		<category><![CDATA[Geo-spacial polygons]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server Geography]]></category>
		<category><![CDATA[WOEID]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[Yahoo Query Language]]></category>
		<category><![CDATA[YQL]]></category>

		<guid isPermaLink="false">http://www.newmedialabs.co.za/?p=1534</guid>
		<description><![CDATA[I’m coding something at the moment and I can honestly say it is the most fun I’ve had at work the whole year (and I generally love what I do). Doing this has reminded how I ended up in computer science and how much I used to love being paid to essentially solve puzzles all [...]]]></description>
			<content:encoded><![CDATA[<p>I’m coding something at the moment and I can honestly say it is the most fun I’ve had at work the whole year (and I generally love what I do). Doing this has reminded how I ended up in computer science and how much I used to love being paid to essentially solve puzzles all day. Anyway, I came across this YQL “bug” (Yahoo Query Language) and I thought I’d share it with you, or whoever googles this topic, and save someone a bit of pain.</p>
<p>My aim is to load a good clean database of South African cities linked to suburbs (I’ll write another post about that later) something a lot of people seem to want but no one seems to be doing very well, and those that have very clean data don’t open it up. I also wanted a relational table with SQL Server Geography datatypes, simplegeo or openstreetmap aren’t close to a perfect dataset. Ideally I wanted to load the geographic polygons that define the cities and the suburbs, I also want to load the bounding boxes, centroids and radius that encapsulate the suburbs.</p>
<p>I know there is some open street map data out there but Shaun Trennery, who I trust implicitly and is the tech brain behind <a href="http://www.safindit.co.za/" target="_blank">safindit.com</a> pointed me at <a href="http://developer.yahoo.com/yql/" target="_blank">YQL</a>. Yahoo’s data seemed the cleanest and I decided to use their data to load the suburbs. (By the way, YQL is amazing: you can perform crazy queries like find all sushi restaurants in San Francisco “select * from local.search where query=&#8221;sushi&#8221; and location=&#8221;san francisco, ca&#8221; and Rating.AverageRating=&#8221;4.5”” awesome hey?) I have a JSON file of WOEIDs (Where on Earth ID) that define South Africa, this can be retrieved with a simple YQL query or download it here: <a href="http://www.newmedialabs.co.za/wp-content/uploads/2011/11/LocationsZA.json_.zip">LocationsZA.json</a>. I wrote some code to parse these and load them into a SQL Server table that I’d designed (again – that post to follow).</p>
<p>I was having a problem loading Yahoo WOEID polygons as Microsoft.SqlServer.Types.SqlGeography objects in SqlServer2008. This fails on insert for certain polygons with “24200: The specified input does not represent a valid geography instance” exception which, typical of Microsoft, will take you <a href="http://social.msdn.microsoft.com/search/en-US/search/default.aspx?query=System.ArgumentException" target="_blank">here</a>, and well, that doesn’t tell you anything you don’t’ already know (a side note, System.Data.SqlClient does not support the Geography type so you have to make a reference to Microsoft.SqlServer.Types).</p>
<p>I wanted to investigate if these polygons were in fact polygons. I also want to visualise the other elements of the WOEID (centroid, bounding box, radius etc) so I wrote the following ugly web form (let me reiterate I hate web forms and NML only build ASP.NET MVC but this was a quick prototype to see what the polygons looked like on google maps mostly <a href="http://www.codeproject.com/KB/aspnet/plotpath_gps.aspx?msg=3917337" target="_blank">taken from this post</a>).</p>
<p style="text-align: center;">
<p>Figure 1 as you can see only slightly adapted from the codeproject. (click to enlarge)</p>
<p><a href="http://www.newmedialabs.co.za/wp-content/uploads/2011/11/why-I-wouldnt-trust-Yahoo-WOEIDs-lrg.jpg" rel="lightbox[1534]"><img class="aligncenter size-full wp-image-1568" title="why-I-wouldnt-trust-Yahoo-WOEIDs-sml" src="http://www.newmedialabs.co.za/wp-content/uploads/2011/11/why-I-wouldnt-trust-Yahoo-WOEIDs-sml1.jpg" alt="why-I-wouldnt-trust-Yahoo-WOEIDs-sml" width="500" height="610" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">
<p>The following image illustrates Yahoo’s idea of the Constantia WOEID Polygon.</p>
<p><a href="http://www.newmedialabs.co.za/wp-content/uploads/2011/11/Polygone-image2.jpg" rel="lightbox[1534]"><img class="aligncenter size-full wp-image-1552" title="Polygone-image2" src="http://www.newmedialabs.co.za/wp-content/uploads/2011/11/Polygone-image2.jpg" alt="Building a relational City Suburb database for South Africa" width="450" height="410" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">As you can see it’s pretty obvious why the polygons won’t load, they aren’t true polygons. So that’s my warning <strong>don’t use yahoo polygons for suburbs rather uses bounding boxes </strong><span style="text-align: -webkit-auto;">where you can be sure that your geospatial queries will return trustworthy results. I’ve also noticed that in some instances Yahoo doesn’t even store the polygon.</span></p>
<p>So I had another chat to Shaun Trennery and we are keen to open this data up, and possibly build a geographic wiki app that allows anyone to modify the polygons, the administrators will have the final say. This will allow us to add suburbs yahoo isn’t aware of like those being defined by the <a href="http://nameyourhood.co.za/ " target="_blank">Name Your Hood</a> guys (if you know how much I initially disliked the Name Your Hood project you’ll find this ironic) and also define parent suburbs, for example Constantia is the parent suburb Bel Ombre, Nova Constantia, Constania Hills, Klein Constantia , Rust en Vrede and Alphen for example.</p>
<p><strong>I’d be interested to get feedback from the GIS gurus on the best sources of Country/Region/City/Suburb/ information. Please also let me know if you are keen to collaborate on this mini project.</strong></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=20938379-fae9-444f-bfba-feea58a81412" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/mapping/building-a-relational-city-suburb-database-for-south-africa-and-why-i-wouldn%e2%80%99t-trust-yahoo-woeids/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Business Trip Logger</title>
		<link>http://www.newmedialabs.co.za/custom-development/business-trip-logger</link>
		<comments>http://www.newmedialabs.co.za/custom-development/business-trip-logger#comments</comments>
		<pubDate>Tue, 03 Aug 2010 13:57:19 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>

		<guid isPermaLink="false">http://www.newmedialabs.co.za/?p=1096</guid>
		<description><![CDATA[Okay, time to get some IP off my chest and let “the resistance” conquer my “lizard brain”.
Build something you need and others will need it too, right? I must lose thousands to the tax man because I’m too lazy to keep a log book of all my business trips. So, the juniors at New Media [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Okay, time to get some IP off my chest and let <a href="http://sethgodin.typepad.com/seths_blog/2010/01/quieting-the-lizard-brain.html">“the resistance” conquer my “lizard brain”</a>.</p>
<p style="text-align: justify;">Build something you need and others will need it too, right? I must lose thousands to the tax man because I’m too lazy to keep a log book of all my business trips. So, the juniors at New Media Labs have built an iPhone application that logs your business trips to a web site (<a href="http://triplogger.info/">http://triplogger.info</a>) via a web service. At the end of the financial year you can download a CSV of all your business trips and submit to SARS.</p>
<p style="text-align: justify;">We would love you to try the app out. Hopefully you find it useful too. Feedback would also be highly appreciated.</p>
<p style="text-align: justify;"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2010/08/1.png" rel="lightbox[1096]"><img class="alignnone size-full wp-image-1097" title="Trip History" src="http://www.newmedialabs.co.za/wp-content/uploads/2010/08/1.png" alt="" width="293" height="196" /></a></p>
<p style="text-align: justify;"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2010/08/2.png" rel="lightbox[1096]"><img class="alignnone size-full wp-image-1098" title="Trip Logger" src="http://www.newmedialabs.co.za/wp-content/uploads/2010/08/2.png" alt="" width="150" height="227" /></a><a href="http://www.newmedialabs.co.za/wp-content/uploads/2010/08/3.png" rel="lightbox[1096]"> <img class="alignnone size-full wp-image-1099" title="Trip Logger" src="http://www.newmedialabs.co.za/wp-content/uploads/2010/08/3.png" alt="" width="150" height="226" /></a> <a href="http://www.newmedialabs.co.za/wp-content/uploads/2010/08/4.png" rel="lightbox[1096]"><img class="alignnone size-full wp-image-1100" title="Trip Logger" src="http://www.newmedialabs.co.za/wp-content/uploads/2010/08/4.png" alt="" width="149" height="225" /></a></p>
<p style="text-align: justify;">Steps:</p>
<p style="text-align: justify;">1) Download the “Business Trip Logger” from <a href="http://itunes.apple.com/za/app/business-trip-logger/id373066501?mt=8">http://itunes.apple.com/za/app/business-trip-logger/id373066501?mt=8</a> or search for “Business Trip Logger” in the app store and install the app.</p>
<p style="text-align: justify;">2)      The app requires you to register on the website. This is easiest done directly from the phone – a browser will be launched from the app. All that is required is your email address and a password (the phone id is already sent through to the website). Registration is necessary so that we know which incoming messages (trips) are yours and so that you can download your CSV from the website to submit to SARS at the end of the year. Also, local storage on the phone was not considered an option because the system allows for more than one phone per account. Also if you lost your phone, and we were using local storage, you would lose all your trips too.</p>
<p style="text-align: justify;">3)      Start logging all your trips. SARS require a client name, reason for trip and start odometer and end odometer reading.</p>
<p style="text-align: justify;">4)      All client names and trip reasons are stored so you can select those from the select boxes on similar or repeat trips. You can also delete and edit these in the traditional iPhone fashion.</p>
<p style="text-align: justify;">5)      The end odometer reading must obviously be greater than the start odometer reading.</p>
<p style="text-align: justify;">6)      If you have started the trip the app will expect you to close (end) the trip.</p>
<p style="text-align: justify;">7)      You can also add and edit trips on the website.</p>
<p style="text-align: justify;">Since we are focusing on iPhone, Blackberry, Android, Symbian and Windows Mobile (6.1 and 6.5 and 7) expect to see this app built for a number of different phone operating systems (good practice for our juniors (Chris Goosen who finished the iPhone app and Ashraf Vanker who built the website and the web services).</p>
<p style="text-align: justify;">Why didn’t we store the whole trip’s GPS points?</p>
<p style="text-align: justify;">At the time when we started building the app, multi-tasking wasn’t possible so we figured we’d end up with a whole lot of broken trips that would leave questionable results.</p>
<p style="text-align: justify;">There are lots of trip loggers on the app store, why did you make another?</p>
<p style="text-align: justify;">Practice for our juniors. This app is specifically designed for submission to SARS.</p>
<p style="text-align: justify;">Last thoughts: we have noticed some improvements we could make to the usability.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/custom-development/business-trip-logger/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating the Adora CRM with Global Vision</title>
		<link>http://www.newmedialabs.co.za/silverlight/creating-the-adora-crm-with-global-vision</link>
		<comments>http://www.newmedialabs.co.za/silverlight/creating-the-adora-crm-with-global-vision#comments</comments>
		<pubDate>Tue, 01 Dec 2009 08:46:22 +0000</pubDate>
		<dc:creator>Richard Schroder</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.newmedialabs.co.za/?p=855</guid>
		<description><![CDATA[Adora is a marketing CMS platform that is currently being developed by Global Vision and is being built to replace their highly successful current offering, Eureka.  The driving force behind Adora is communication, not just marketing, through all effective communications channels.  Using Adora, marketers will be able to communicate effectively with consumers and be able [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Adora is a marketing CMS platform that is currently being developed by<a href="http://www.globalvision.co.za" class="broken_link"> Global Vision</a> and is being built to replace their highly successful current offering, Eureka.  The driving force behind Adora is <em>communication</em>, not just marketing, through all effective communications channels.  Using Adora, marketers will be able to communicate effectively with consumers and be able to maintain a complete picture of consumer relationships to their respective brands.</p>
<p class="MsoNormal" style="text-align: justify;">As <a href="http://www.globalvision.co.za" class="broken_link">Global Vision</a> made the decision to develop the Adora front-end using Microsoft Silverlight (at the time a very brave move – Silverlight 1.1 was VERY limited compared to Silverlight 3!), New Media Labs was asked to provide some assistance in the development process.  With full-time in-house User Experience (UX) designers and interface designers from Stonewall+, this project has really brought to light the power and flexibility of the Silverlight platform.</p>
<h2>Design of Adora</h2>
<p class="MsoNormal" style="text-align: justify;">The application is built along a classic Model-View-ViewModel (M-V-VM) architecture and utilises a custom-built framework for this that supports all the required elements.  We had a number of technical challenges to overcome along the way, mainly related to data storage and using the same Domain model on both the Client- and Server-side.  Most of these issues are posts in their own right and will be covered in the near future.</p>
<p class="MsoNormal" style="text-align: justify;">Adora consists of many layers, each with its own set of technologies.  Starting from the client and working our way to the backend:</p>
<ul style="text-align: justify;">
<li><strong>Client</strong><br />
Silverlight 3, utilising the Silverlight Toolkit and numerous custom-built controls.</li>
<li><strong>Services<br />
</strong>The<strong> </strong>application services are provided by WCF services that are hosted on the server.  These are communicated with using a custom-built data-contract serialiser.<strong> </strong></li>
<li><strong>Data storage<br />
</strong>Data storage is provided by SQL Server 2008 and data goes through many stages of filtering and matching to ensure maximum data integrity.</li>
<li><strong>Messaging<br />
</strong>A messaging and scheduling engine resides on the server side to handle all email and SMS communications with consumers.  Messages received are linked to the consumer’s profile.</li>
</ul>
<h2>The Development Process</h2>
<p class="MsoNormal" style="text-align: justify;">The goal is to deliver a product that is not only scalable, flexible and fast but is also pleasant to use with minimal or no user training.  With a team consisting of UX designers, developers, graphic designers and QA testers, we are continuously and iteratively tweaking the design.  Using an Agile approach has allowed us to make fast-paced design changes whilst ensuring that the end result not only looks good, feels good and performs well but also matches the expectations of the Product Owner.</p>
<p class="MsoNormal" style="text-align: justify;">We currently employ a mix of various established practices – test driven development, peer reviews, daily stand-ups and whiteboard sessions are some of the things that we do every day.</p>
<h3>Interface Design</h3>
<p class="MsoNormal" style="text-align: justify;">Adora’s interface borrows heavily from concepts used by Windows Explorer to allow users to work in a familiar environment.  For example, “folders” represent brands and “files” represent elements such as email lists, creatives or even communication schedules. </p>
<div id="attachment_854" class="wp-caption alignleft" style="width: 310px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/12/explorer.png" rel="lightbox[855]"><img class="size-medium wp-image-854 " title="Adora Explorer" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/12/explorer-300x179.png" alt="Adora Explorer interface" width="300" height="179" /></a><p class="wp-caption-text">Adora Explorer interface</p></div>
<p style="text-align: justify;">Wireframe designs are created by our UX designers and the initial development work to implement functionality is done by the developers and testers.  Whilst this is taking place, the interface design is UAT-tested by the UX designers – the interface is then sent to Stonewall+ for “polishing” and styling.  Due to Silverlight’s dynamic binding model, it is simple for the developers to drop the finished interface on top of the functional elements built.</p>
<p class="MsoNormal" style="text-align: justify;">All work with consumer populations is graphical – that is, instead of reams of confusing numbers that may not appear to have any significant proportions or relationships, Adora presents interactive graphs.  A user with little or no SQL knowledge is able to build up complex queries very quickly with this system and it provides a “quick-glance” overview of the consumers that the user is currently communicating with. </p>
<div id="attachment_856" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/12/list_builder_03_portlet_options.jpg" rel="lightbox[855]"><img class="size-medium wp-image-856" title="List Builder Interface" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/12/list_builder_03_portlet_options-300x210.jpg" alt="list_builder_03_portlet_options" width="300" height="210" /></a><p class="wp-caption-text">Marketing List builder interface design</p></div>
<h3>Adora Query Language</h3>
<p class="MsoNormal" style="text-align: justify;">Central to Adora’s success is our own query language that we have developed: Adora Query Language, or AQL.  With a syntax that is similar to SQL, AQL allows developers to retrieve consumer related information using queries that are <em>business oriented</em>.  If that doesn’t excite you, how about this:</p>
<p class="MsoNormal" style="margin-left: 36pt;"><span style="font-family: &quot;Courier New&quot;;">SELECT firstname, lastname, age FROM brandname WHERE gender=’male’ AND age&gt;25</span></p>
<p class="MsoNormal" style="text-align: justify;">The result of this query is a list of consumers within the “brandhouse” brand that are male and over 25 years of age.  A complete subset of SQL is supported, including ORDER BY, GROUP BY, INTERSECT, UNION and many more.  On top of this, we have our own extensions to the language that allow us to apply pagination to data results or to even group data into ranges.  The result?  Our developers can focus on <em>working</em> with data, not on <em>retrieving</em> data.  It is envisioned that future versions of Adora will allow 3<sup>rd</sup> party vendors to create add-ins to the Adora system using AQL.</p>
<h3>What’s next?</h3>
<p class="MsoNormal" style="text-align: justify;">Still to come – details on the technical challenges faced and more screenshots!  Beta 1 is scheduled for release in January 2010. </p>
<div class="wp-caption aligncenter" style="width: 570px"><object width="560" height="340" data="http://www.youtube.com/v/1p4Tm25SmrY&amp;hl=en_GB&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/1p4Tm25SmrY&amp;hl=en_GB&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object><p class="wp-caption-text">An introduction to Adora</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/silverlight/creating-the-adora-crm-with-global-vision/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aurecon &#8211; Emergency Response and Incident Management Application</title>
		<link>http://www.newmedialabs.co.za/mapping/aurecon-emergency-response-and-incident-management-application</link>
		<comments>http://www.newmedialabs.co.za/mapping/aurecon-emergency-response-and-incident-management-application#comments</comments>
		<pubDate>Tue, 03 Nov 2009 15:28:44 +0000</pubDate>
		<dc:creator>Rogan Flitton</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.newmedialabs.co.za/?p=694</guid>
		<description><![CDATA[Aurecon is a new, innovative, global group created by the recent coming together of 3 world-class companies - Africon, Connel Wagner and Ninham Shand.  They focus on providing professional technical services across a broad spectrum of proficiencies from engineering to information technology.
Aurecon is developing a whole suite of new Incident Management/Emergency Response Software for clients in [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-full wp-image-707" title="aurecon" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/aurecon.png" alt="aurecon" width="210" height="57" /><strong><a href="http://www.aurecongroup.com/" target="_blank">Aurecon</a></strong> is a new, innovative, global group created by the recent coming together of 3 world-class companies - Africon, Connel Wagner and Ninham Shand.  They focus on providing professional technical services across a broad spectrum of proficiencies from engineering to information technology.</p>
<p style="text-align: justify;">Aurecon is developing a whole suite of new Incident Management/Emergency Response Software for clients in areas such as Emergency Services, Disaster Management and Policing.</p>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">The Problem</span></strong></p>
<p style="text-align: justify;">New Media Labs came on board specifically to design, develop and implement a system that:</p>
<ul style="text-align: justify;">
<li>can capture all the necessary information needed by an emergency response unit in order to respond to an incident more quickly and efficiently.<img class="alignright size-medium wp-image-755" title="homer" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/homer-300x225.png" alt="homer" width="240" height="180" /></li>
<li>has an easy to understand and operatable Graphical User Interface.  The more “Minority Report” it looked the better, and as the client once put it, &#8220;<em>if we had to put <strong>Homer Simpson</strong> in front of it, he’d know how to operate it.</em>&#8220;</li>
<li>is GIS enabled, so that operators can pinpoint locations easily and relay co-ordinates to responding units.</li>
<li>is easily deployed across various control stations across the country, and ultimately the world.</li>
</ul>
<p style="text-align: justify;">It just so happened that one of Aurecon’s existing clients operates a large CCTV control centre in the City of Cape Town and was in the market for such an application.</p>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">The Solution</span></strong></p>
<p style="text-align: justify;">Designed for a call centre/control station environment, our system presents the user with a graphically rich, simple and easy to use User Interface.  Aurecon was adamant that not only should the system work well, but it should also look great, as this would be a large selling point over competing systems.</p>
<p style="text-align: justify;">We implemented a container based UI where functionality is broken up and grouped into several independent, movable, expandable containers/panels.  These panels allow the user to view and work on multiple aspects at once, as well as the ability to drill into one specific section and focus all their attention on that one task.</p>
<p style="text-align: justify;"><object width="560" height="340" data="http://www.youtube.com/v/GNlcMcGbnXE&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/GNlcMcGbnXE&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object></p>
<p style="text-align: justify;">One of the key aspects to the system is a map - the map gives the user the ability to quickly navigate to a street, intersection, and popular landmark or CCTV camera location.  Designed specifically for a CCTV control station, the system contains a list of hundreds of operational CCTV cameras in and around the City of Cape Town region.  If an operator identifies something on one of their camera monitors, they then pinpoint the location on the map and capture necessary information about the incident so units can be dispatched accordingly.  Ultimately, the information captured in the system is also reported on.  Existing incidents are indicated by a coloured dot on the map depending on the priority of the incident.  CCTV cameras are marked by camera icons.</p>
<p style="text-align: justify;"><object width="560" height="340" data="http://www.youtube.com/v/chYwEgx2O20&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/chYwEgx2O20&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object><strong></strong></p>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">How did we do it?</span></strong></p>
<p style="text-align: justify;">In a nut shell, <strong>Start Lite</strong>, as the system is called, has a 3 tier architecture comprising of:</p>
<ul style="text-align: justify;">
<li>a SQL Server 2008 backend</li>
<li>WCF SOA middle tier</li>
<li>Silverlight UI</li>
</ul>
<p style="text-align: justify;"><img class="alignright size-medium wp-image-709" title="scrum" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/scrum-269x300.jpg" alt="scrum" width="129" height="144" />Working closely with a newly established Aurecon Development Team, we were on site full time for the duration of the project.  We introduced their team to the <strong>SCRUM</strong> methodology and went from initially running all morning stand ups and sprints to SCRUM being fully integrated into the Aurecon staff and their project management processes.  With SCRUM, New Media Labs were able to keep up with the demanding deadlines of the project and finish Start Light on time and successfully.</p>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">Database and Web services</span></strong></p>
<p style="text-align: justify;">At New Media Labs, we believe that applying tried and tested patterns and practices is key when building software.  Not only does this accelerate design and development, but it reduces potential risk by ensuring that you’re applying industry standards that other software developers out there are doing as well.</p>
<p style="text-align: justify;">On this particular project we decided to use 2 Microsoft Patterns and Practices: <strong><a title="Repository Factory" href="http://www.codeplex.com/RepositoryFactory" target="_blank">Repository Factory</a></strong> and Web Service <strong><a title="Web Service Software Factory" href="http://www.codeplex.com/servicefactory" target="_blank">Software Factory Modeling Edition</a></strong>.</p>
<p style="text-align: justify;">The Repository Factory is a guidance package that automates creation of entity classes that map to database tables and repository classes to read and write those entity classes.  With it we were able to quickly build our data access and business logic layers.  The Repository Factory creates Business Entity classes from your database schema, generates CRUD (Create, Read, Update and Delete) stored procedures, and ultimately links the two together into ode that is easy to understand and maintain.</p>
<p style="text-align: justify;">With the Web Services Software Factory Modeling Edition, we were able to sit with the project owner and business analysts and graphically model the web services in full view with the use of a projector.  These sessions added incredible value as the whole team (not only developers) was involved and we could brainstorm and discuss more freely.  Once Modeled, the service contracts, message contracts and data contracts are all generated into code that is easily understandable.</p>
<div class="mceTemp" style="text-align: justify;">
<dl id="attachment_759" class="wp-caption alignnone" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/datacontracts.png" rel="lightbox[694]"><img class="size-thumbnail wp-image-759 " title="datacontracts" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/datacontracts-150x150.png" alt="Modelling data contracts for a web service" width="150" height="150" /></a></dt>
<dd class="wp-caption-dd">Modelling data contracts for a web service</dd>
</dl>
</div>
<p style="text-align: justify;">With the Repository Factory and Web Service Software Factory, New Media Labs were able to maintain a high project velocity whilst simultaneously getting the Aurecon Development Team up to speed with the architecture, patterns and practices.  Using the tools is trivial and the resulting code clear and understandable.</p>
<div class="mceTemp" style="text-align: justify;">
<dl id="attachment_760" class="wp-caption alignnone" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/servicecontracts.png" rel="lightbox[694]"><img class="size-thumbnail wp-image-760 " title="servicecontracts" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/servicecontracts-150x150.png" alt="Modelling a web service" width="150" height="150" /></a></dt>
<dd class="wp-caption-dd">Modelling a web service</dd>
</dl>
</div>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">User Interface</span></strong> <img class="size-medium wp-image-719 alignright" title="microsoft-silverlight1" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/microsoft-silverlight1-300x225.jpg" alt="microsoft-silverlight1" width="180" height="135" /></p>
<p style="text-align: justify;">Why Silverlight?</p>
<ul style="text-align: justify;">
<li>Silverlight is a cross-browser, cross-platform and cross-device web technology, perfect for Aurecon’s need for a system that is quickly, easily and cheaply deployed.</li>
<li>Deployed on an IIS 7 web server - all the client needs to do is download the Silverlight plugin and start using the system.  It’s that simple!</li>
<li>With Silverlight, we were able to rapidly develop a visually rich user interface and experience.</li>
</ul>
<p style="text-align: justify;">Yes, ok but why not Adobe Flash?</p>
<ul style="text-align: justify;">
<li>Aurecon are already heavily Microsoft with various systems and backend processes already built on Microsoft platforms.  With Silverlight leveraging the .NET framework, we were able to create a system that can wield a rich user experience as well as support and easily integrate with other Microsoft back ends.</li>
</ul>
<p style="text-align: justify;"><img class="alignleft size-full wp-image-724" title="esri_logo_large" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/esri_logo_large.jpg" alt="esri_logo_large" width="72" height="86" />As for the Mapping functionality, we used the ESRI ARC GIS API for Silverlight component on top of Aurecon’s very own ESRI Arc GIS Server.  To avoid taking credit where it’s not due, Aurecon own and manage their own GIS data, New Media Labs just got the map to do all the funky things with the data we wanted it to do on screen.</p>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">Worth Mentioning</span></strong></p>
<p style="text-align: justify;">- <strong><a href="http://blogs.msdn.com/brada/archive/2008/05/03/accessing-the-asp-net-authentication-profile-and-role-service-in-silverlight.aspx" target="_blank">Login with ASP.NET Authentication Services</a></strong></p>
<p style="text-align: justify;"><strong><a href="http://blogs.msdn.com/brada/archive/2008/05/03/accessing-the-asp-net-authentication-profile-and-role-service-in-silverlight.aspx" target="_blank"></a></strong><object width="560" height="340" data="http://www.youtube.com/v/VTQhYG_f_UQ&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/VTQhYG_f_UQ&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object></p>
<ul style="text-align: justify;">
<li>ASP.NET already comes with a huge array of out-the-box Membership, Role and Profile functionality, so why recreate the wheel?  Start Lite leverages this Membership and Role Functionality.  One can simply expose the ASP.NET Authentication system as a WCF web service with a few configuration settings.</li>
</ul>
<p style="text-align: justify;">- <strong><a href="http://www.codeplex.com/blacklight" target="_blank">Blacklight</a></strong></p>
<table style="text-align: justify;" border="0">
<tbody>
<tr>
<td>
<div id="attachment_742" class="wp-caption alignnone" style="width: 250px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/2009-07-03_133625-1024x635.jpg" rel="lightbox[694]"><strong><strong><img class="size-medium wp-image-742 " title="2009-07-03_133625" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/2009-07-03_133625-300x186.jpg" alt="Multiple Panels Open" width="240" height="149" /></strong></strong></a><p class="wp-caption-text">Multiple Panels Open</p></div></td>
<td>
<p><div id="attachment_743" class="wp-caption alignnone" style="width: 250px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/2009-07-03_133644-1024x635.jpg" rel="lightbox[694]"><strong><strong><img class="size-medium wp-image-743 " title="2009-07-03_133644" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/2009-07-03_133644-300x186.jpg" alt="One Panel Open" width="240" height="149" /></strong></strong></a><p class="wp-caption-text">One Panel Open</p></div></td>
</tr>
</tbody>
</table>
<ul style="text-align: justify;">
<li>For draggable collapsable panelscontainers we utilized the open source Codeplex Blacklight Control suite and customized some of their controls to suit our needs better.</li>
</ul>
<p style="text-align: justify;">- <strong><a href="http://blog.ningzhang.org/2008/11/viewbox-control-in-silverlight-toolkit.html" target="_blank">ViewBox Control</a></strong></p>
<ul style="text-align: justify;">
<li>We decided to use the <strong><a href="http://blog.ningzhang.org/2008/11/viewbox-control-in-silverlight-toolkit.html" target="_blank">ViewBox Control</a></strong> which comes with the <strong><a href="http://silverlight.codeplex.com" target="_blank">Silverlight Toolkit</a></strong> to handle the resizing of our various panel and container contents.  Manually resizing each UI element within a panel’s content when the panel is either maximized or minimized would have been cumbersome to do, and this handy control saved us a lot of time and effort.  It works wonders!</li>
</ul>
<p style="text-align: justify;">- <strong>Announcement and Notifications Engine</strong> <strong></strong></p>
<p style="text-align: justify;">
<p><div id="attachment_731" class="wp-caption aligncenter" style="width: 310px"><strong><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/announcement-1024x518.png" rel="lightbox[694]"><img class="size-medium wp-image-731 " title="announcement" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/announcement-300x151.png" alt="Announcement Functionality" width="300" height="151" /></a></strong><p class="wp-caption-text">Announcement Functionality</p></div>
<ul style="text-align: justify;">
<li>It wouldn’t be New Media Labs style without a social media element to it - we custom built an announcements and notifications engine.  Announcements let a user post important messages for others to see, whilst notifications get fired when important things happen within the system such as the creation of an incident.</li>
</ul>
<p>- <strong><a href="http://silverlight.codeplex.com/wikipage?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;referringTitle=Home&amp;ANCHOR#AutoCompleteBox" target="_blank">AutoCompleteBox Control</a></strong></p>
<ul style="text-align: justify;">
<li>In Start Lite, we tried to guide the user as much as possible when entering information. The <strong><a href="http://silverlight.codeplex.com/wikipage?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;referringTitle=Home&amp;ANCHOR#AutoCompleteBox" target="_blank">AutoCompleteBox</a></strong> control is another cool control that comes with the Silverlight Toolkit (http://silverlight.codeplex.com/).  For Example, when searching for an address, the AutoCompleteBox keeps presenting the user with options based on what they’ve typed in thus far.</li>
</ul>
<p>- <strong>Embedding PDF in Silverlight</strong></p>
<p><strong></strong><object width="560" height="340" data="http://www.youtube.com/v/pRObQbQmy7E&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/pRObQbQmy7E&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object></p>
<ul style="text-align: justify;">
<li>In Start Lite we implemented some magic to embed a PDF document within the Silverlight.  What&#8217;s actually happening though is with java script, we&#8217;ve actually placed a div tag on top of our Silverlight object and that div tag contains the PDF viewer control.</li>
</ul>
<p><strong><span style="text-decoration: underline;">What is next?</span></strong></p>
<p style="text-align: justify;">As they often say, there is no rest for the wicked, and at New Media Labs, building “wicked” software means once we’re finished with one, we’re onto another!</p>
<p style="text-align: justify;">Utilizing elements and components from Start Lite, we helped Aurecon develop a Back Office Incident Logging System, to be utilized by patrol officers and units, who while on patrol and by their own intervention identify or become involved in emergencies and incidents and ultimately resolve the issue then and there.  Upon their return to the station after duty, they can “back” capture such incidents for reference and reporting.</p>
<p style="text-align: justify;">As with all systems, there is always a phase 2 and with Start Lite we’d like to focus more on modularity and being able to plug in or unplug functionality based purely on a particular clients requirement.  Silverlight is always evolving and with the release of Silverlight 3 there are some awesome new technology advancements we’ll be taking into account, specifically:</p>
<p>- <strong><a href="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx" target="_blank">MVVM</a></strong></p>
<ul style="text-align: justify;">
<li>In the case of Slverlight, you run the risk of ending up with code behind mixed with XAML in varying degrees and ultimately a solution which is difficult to maintain, refactor and test.  As with any large application, it is always a good idea to structure ones User Interface into its own subset of layers.  <strong><a href="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx" target="_blank">MVVM</a></strong> (Model-View-View Model) is a Silverlight specific pattern much like MVC or MVP which separates data (the Model) from the UI (the View), and presents the data in a bindable way for the UI (the View Model).</li>
</ul>
<p>- <strong><a href="http://silverlight.net/learn/videos/silverlight-videos/net-ria-services-intro/" target="_blank">RIA</a></strong></p>
<ul style="text-align: justify;">
<li><strong><a href="http://silverlight.net/learn/videos/silverlight-videos/net-ria-services-intro/" target="_blank">Microsoft .NET RIA Services</a></strong> simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms.  RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations.  In a nutshell, with RIA Services, we wouldn’t need to build a WCF layer.</li>
</ul>
<p>- <strong><a href="http://www.codeplex.com/CompositeWPF" target="_blank">PRISM</a></strong></p>
<ul style="text-align: justify;">
<li>Ever heard of a Composite Application Block, well that is what <strong><a href="http://www.codeplex.com/CompositeWPF" target="_blank">PRISM</a></strong> is, a Composite Application Guidance Block specifically for Silverlight and WPF which allows one to modularize the UI and build it in such a way so that one can easily load or unload modules at choice.  Ideal for large, ever changing and ever growing applications.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/mapping/aurecon-emergency-response-and-incident-management-application/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NML builds content management system and new website for Nedgroup Investments</title>
		<link>http://www.newmedialabs.co.za/scrum/nml-builds-content-management-system-and-new-website-for-nedgroup-investments</link>
		<comments>http://www.newmedialabs.co.za/scrum/nml-builds-content-management-system-and-new-website-for-nedgroup-investments#comments</comments>
		<pubDate>Mon, 02 Nov 2009 15:22:50 +0000</pubDate>
		<dc:creator>Debbie Derman</dc:creator>
				<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[SCRUM]]></category>

		<guid isPermaLink="false">http://www.newmedialabs.co.za/?p=610</guid>
		<description><![CDATA[New Media Labs was chosen to do the development for Nedgroup Investments&#8217; new content management system (CMS) and public-facing website.  Nedgroup wanted a fresh and simple yet informative site, with an intelligent CMS system to replicate and support their business model i.e. fund information, news articles, media etc.



Nedgroup Site Home Page


We chose to use the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs was chosen to do the development for Nedgroup Investments&#8217; new content management system (CMS) and public-facing website.  Nedgroup wanted a fresh and simple yet informative site, with an intelligent CMS system to replicate and support their business model i.e. fund information, news articles, media etc.</p>
<div class="mceTemp" style="text-align: justify;">
<dl id="attachment_613" class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/home.png" rel="lightbox[610]"><img class="size-medium wp-image-613" title="Nedgroup Home" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/home-300x175.png" alt="Nedgroup Home" width="300" height="175" /></a></dt>
<dd class="wp-caption-dd">Nedgroup Site Home Page</dd>
</dl>
</div>
<p style="text-align: justify;">We chose to use the ASP.Net MVC 1.0 Framework because it satisfied most of our requirements, both for the CMS and the site.  The look and feel for the website was designed and created by Stonewall+ and this HTML was seamlessly plugged into our MVC view as soon as it was supplied.  We used SQL Server and Linq for the data access.</p>
<p style="text-align: justify;"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/navigation.png" rel="lightbox[610]"><img class="alignleft size-thumbnail wp-image-616" title="Navigation management in the CMS" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/navigation-150x150.png" alt="Navigation management in the CMS" width="150" height="150" /></a><strong>Navigation</strong></p>
<p style="text-align: justify;">The navigation for the site was driven by a SiteMapProvider with all the nodes being managed in the CMS.  There were certain rules around the nodes i.e. Certain nodes cannot be removed or unpublished; nodes can only be published if their parent is published etc.  The sidebar and breadcrumb navigation on the site is dynamically generated from the SiteMapProvider.</p>
<p style="text-align: justify;"><strong>CMS Item Workflow</strong></p>
<p style="text-align: justify;">The following content types:</p>
<div class="mceTemp" style="text-align: justify;">
<dl id="attachment_639" class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/fundsclose.png" rel="lightbox[610]"><img class="size-medium wp-image-639" title="List of Fund Items" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/fundsclose-300x144.png" alt="List of Fund Items" width="300" height="144" /></a></dt>
<dd class="wp-caption-dd">List of Fund Items</dd>
</dl>
</div>
<ul style="text-align: justify;">
<li>Generic Content</li>
<li>Person</li>
<li>Fund</li>
<li>Media</li>
</ul>
<p style="text-align: justify;">incorporate the following features:</p>
<ul style="text-align: justify;">
<li>Publishing workflow
<ul>
<li>Item Creation</li>
<li>Item Approval</li>
<li>Item Publishing</li>
<li>Item Archiving</li>
</ul>
</li>
<li>Email notifications</li>
<li>Versioning</li>
<li>Featured Item</li>
</ul>
<p style="text-align: justify;">Only certain <a href="#users">user roles</a> can perform the different workflow steps, with an over-seeing administrator role which can perform any of the tasks.  Once the item moves to the next status, an email is sent to the relevant parties to inform them and provide a direct link for them to action.</p>
<p style="text-align: justify;">Each item has an Effective From and Effective To date, so you can easily set an item to only appear on the live site from a certain date, or until a certain date.</p>
<p style="text-align: justify;">A versioning system is in place which allows a currently published item to be edited, without affecting the actual live item, until the new version is approved and published, at which stage the &#8220;old&#8221; version will fall away.</p>
<p style="text-align: justify;">Each of these content types also allows for linking to media items such as newsletter PDFs, promotional video clips, fund fact sheets, etc.  Our link selector tool allows you to create an association to already-uploaded media (done via the <a href="#media">Media Manager</a>)</p>
<p style="text-align: justify;">You can also feature an item in the CMS (Fund or Media) and that item will immediately appear on the home page of the website in the featured item boxes.</p>
<p style="text-align: justify;"><a name="users"><strong>CMS User Management</strong></a></p>
<table style="text-align: justify;" border="0">
<tbody>
<tr>
<td>
<p><div id="attachment_644" class="wp-caption alignleft" style="width: 284px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/usercreateclose.png" rel="lightbox[610]"><img class="size-medium wp-image-644" title="Creating a new user" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/usercreateclose-274x300.png" alt="Creating a new user" width="274" height="300" /></a><p class="wp-caption-text">Creating a new user</p></div></td>
<td>A user can either be an Administrator, or any of the other options or combinations thereof.  More roles can obviously be added depending on the business requirement.</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><a name="media"><strong>CMS Media Manager</strong></a></p>
<table style="text-align: justify;" border="0">
<tbody>
<tr>
<td>
<p><div id="attachment_647" class="wp-caption alignleft" style="width: 310px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/mediamanagerclose.png" rel="lightbox[610]"><img class="size-medium wp-image-647" title="Media Manager" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/mediamanagerclose-300x190.png" alt="Media Manager" width="300" height="190" /></a><p class="wp-caption-text">Media Manager</p></div></td>
<td>Administrators can upload files via the Media Manager, and these files can then be linked to the content items.The administrator can add and remove folders to allow for easier file storage management.</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Website Screenshots</strong></p>
<div class="mceTemp" style="text-align: justify;">
<dl id="attachment_662" class="wp-caption alignleft" style="width: 265px;">
<dt class="wp-caption-dt"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/domesticfundsclose.png" rel="lightbox[610]"><img class="size-medium wp-image-662" title="Domestic Fund Selector" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/domesticfundsclose-255x300.png" alt="Domestic Fund Selector" width="255" height="300" /></a></dt>
<dd class="wp-caption-dd">Domestic Fund Selector</dd>
</dl>
</div>
<div class="mceTemp" style="text-align: justify;">
<dl id="attachment_663" class="wp-caption alignright" style="width: 222px;">
<dt class="wp-caption-dt"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/fundsdomesticclose.png" rel="lightbox[610]"><img class="size-medium wp-image-663" title="Complete Domestic Fund Listing" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/fundsdomesticclose-212x300.png" alt="Complete Domestic Fund Listing" width="212" height="300" /></a></dt>
<dd class="wp-caption-dd">Complete Domestic Fund Listing</dd>
</dl>
</div>
<table style="text-align: justify;" border="0">
<tbody>
<tr>
<td>
<p><div id="attachment_675" class="wp-caption alignleft" style="width: 310px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/institutionalclose.png" rel="lightbox[610]"><img class="size-medium wp-image-675" title="Investment Principles" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/institutionalclose-300x203.png" alt="Investment Principles" width="300" height="203" /></a><p class="wp-caption-text">Investment Principles</p></div></td>
<td>
<p><div id="attachment_672" class="wp-caption alignright" style="width: 172px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/executivecommitteeclose.png" rel="lightbox[610]"><img class="size-medium wp-image-672" title="Executive Committee Listing" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/executivecommitteeclose-162x300.png" alt="Executive Committee Listing" width="162" height="300" /></a><p class="wp-caption-text">Executive Committee Listing</p></div></td>
</tr>
</tbody>
</table>
<table style="text-align: justify;" border="0">
<tbody>
<tr>
<td>
<p><div id="attachment_671" class="wp-caption alignleft" style="width: 180px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/stablefundclose.png" rel="lightbox[610]"><img class="size-medium wp-image-671" title="Fund Detail" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/stablefundclose-170x300.png" alt="Fund Detail" width="170" height="300" /></a><p class="wp-caption-text">Fund Detail</p></div></td>
<td>
<p><div id="attachment_678" class="wp-caption alignright" style="width: 310px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/newsclose.png" rel="lightbox[610]"><img class="size-medium wp-image-678" title="News" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/11/newsclose-300x263.png" alt="News" width="300" height="263" /></a><p class="wp-caption-text">News</p></div></td>
</tr>
</tbody>
</table>
<table style="text-align: justify;" border="0">
<tbody>
<tr>
<td colspan="2">Go see it for yourself here: <a href="http://www.nedgroupinvestments.co.za">Nedgroup Investments</a></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Things we learned</strong></p>
<p style="text-align: justify;">After the site went live we discovered an <a href="http://www.newmedialabs.co.za/?p=434">interesting Linq bug</a>.  Turns out the Load Testing slipped through our QA&#8217;s net!  We learned very quickly to make sure this doesn&#8217;t happen again&#8230;</p>
<p style="text-align: justify;">Next time we&#8217;ll also make sure we implement the latest and greatest version of the SiteMapProvider for MVC.  The version we used didn&#8217;t seem to refresh the nodes properly and so we spent far too much time on it than it deserved!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/scrum/nml-builds-content-management-system-and-new-website-for-nedgroup-investments/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Media Labs to build Online Auction System</title>
		<link>http://www.newmedialabs.co.za/software_architecture/online-auction-system</link>
		<comments>http://www.newmedialabs.co.za/software_architecture/online-auction-system#comments</comments>
		<pubDate>Tue, 24 Feb 2009 10:36:38 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[auction]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[system]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=163</guid>
		<description><![CDATA[New Media Labs has commenced development of an Online Auction system for an existing client. Originally an eBay mashup was considered but the business case to build an in house auction system was stronger than the case for a mashup. The notification systems, rules engine and content management system to load the auction items is [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs has commenced development of an Online Auction system for an existing client. Originally an eBay mashup was considered but the business case to build an in house auction system was stronger than the case for a mashup. The notification systems, rules engine and content management system to load the auction items is going to make this a fun development exercise.</p>
<p style="text-align: justify;">Repeat orders from existing clients, proving once again that NML is more than a supplier they are a partner that delivers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/software_architecture/online-auction-system/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Signoff of the largest Silverlight implementation in Africa.</title>
		<link>http://www.newmedialabs.co.za/rich_internet_applications/signoff-of-the-largest-silverlight-implementation-in-africa</link>
		<comments>http://www.newmedialabs.co.za/rich_internet_applications/signoff-of-the-largest-silverlight-implementation-in-africa#comments</comments>
		<pubDate>Thu, 15 Jan 2009 11:09:40 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Niche Social Networks]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=107</guid>
		<description><![CDATA[New Media Labs has received signoff of development and testing of custom Niche Social Network for a leading international private bank. The development was completed in four, three week SCRUM sprints with a development team of four. Given the scale of this project, and the technical complexity of tieing into the banking backend this was [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs has received signoff of development and testing of custom Niche Social Network for a leading international private bank. The development was completed in four, three week SCRUM sprints with a development team of four. Given the scale of this project, and the technical complexity of tieing into the banking backend this was an amazing achievement.</p>
<p style="text-align: justify;">Microsoft is now working in collaboration with New Media Labs to generate a case study out of this project. The project makes a good case study for Microsoft’s new Rich Internet Application technology known as Silverlight. This project is being billed as the largest Silverlight implementation in Africa.</p>
<p style="text-align: justify;">Domain Driven Design was utilised extensively to model the specific banking domain. The Service Layer Data Contract and Service Contract models were modeled using the web service software factory.</p>
<p style="text-align: justify;">The site has now moved into user acceptance phase and should be launched shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/rich_internet_applications/signoff-of-the-largest-silverlight-implementation-in-africa/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Media Labs wins pitch to develop a new content management system for Nedgroup Investments</title>
		<link>http://www.newmedialabs.co.za/rich_internet_applications/new-media-labs-wins-pitch-to-develop-a-new-content-management-system-for-nedgroup-investments</link>
		<comments>http://www.newmedialabs.co.za/rich_internet_applications/new-media-labs-wins-pitch-to-develop-a-new-content-management-system-for-nedgroup-investments#comments</comments>
		<pubDate>Wed, 10 Dec 2008 11:14:23 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Niche Social Networks]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=110</guid>
		<description><![CDATA[New Media Labs in collaboration with Global Vision and Stonewall+ won the bid to redevelop the Nedgroup Investments Content Management System. The creative pitch from Stonewall+ was excellent, this coupled with our technology pitch made the decision to go Stonewall+/NML/GV a no brainer. NML will be doing the dev, GV will be providing Business Analysis, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs in collaboration with Global Vision and Stonewall+ won the bid to redevelop the Nedgroup Investments Content Management System. The creative pitch from Stonewall+ was excellent, this coupled with our technology pitch made the decision to go Stonewall+/NML/GV a no brainer. NML will be doing the dev, GV will be providing Business Analysis, Project Management and Testing services.</p>
<p style="text-align: justify;">Our base layer CMS was used for the development. Often when you tell clients you own a CMS they are skeptical – “why would you want to own or build a CMS when there are so many out there”. The reality is, a site like this is not only managing textual content it is managing the business content too. In other words you have to manage the data for each investment fund, the allocations of the fund and price performance over time. These are the kinds of systems NML has become experts in developing.</p>
<p style="text-align: justify;">NML do not claim to own a packaged CMS or CMS framework. Packaged and Framework are words we’ve become skeptical of. We have a base layer of CMS code , that has been designed with integration in mind, to tie the company’s business model into the content management system. Our CMS allows for the usual features such as adding pages, changing navigation and publishing workflow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/rich_internet_applications/new-media-labs-wins-pitch-to-develop-a-new-content-management-system-for-nedgroup-investments/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Trust Portal of Giving Completed</title>
		<link>http://www.newmedialabs.co.za/rich_internet_applications/the-trust-portal-of-giving-completed</link>
		<comments>http://www.newmedialabs.co.za/rich_internet_applications/the-trust-portal-of-giving-completed#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:58:32 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Niche Social Networks]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=92</guid>
		<description><![CDATA[NML have completed development of The Trust portal of giving. NML built the backend technology for the site. The idea is that the portal gives the charities a means to illustrate the good work they are doing. It also gives the donor a single trustable portal to decide which charities to apportion the money to. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">NML have completed development of The Trust portal of giving. NML built the backend technology for the site. The idea is that the portal gives the charities a means to illustrate the good work they are doing. It also gives the donor a single trustable portal to decide which charities to apportion the money to. Complex reports are generated out of the system to illustrate donation and spend apportionment.</p>
<p style="text-align: justify;">The trustees are Alan Knott-Graig (MD IBurst), Tracey Lee Cohen (ex-Marketing Head of Blue Label Telecommunications), Gordon Douglas Stuart (Sentinel International Advisory), Dr Andile Ngcaba (Council of the University of South Africa (UNISA) and was an advisor to the Digital Inclusion Programme at Harvard University Law School), Jonathan Ackerman (Marketing Director Pick n Pay).</p>
<p style="text-align: justify;">NML have integrated with the MyGate payment gateway and also MiMoney and UKash payment methods. We also integrated EFT back into the payment assurance processes.</p>
<p style="text-align: justify;">NML have developed and commisioned this project at reduced rate as part of our corporate social responsibility.</p>

<a href='http://www.newmedialabs.co.za/rich_internet_applications/the-trust-portal-of-giving-completed/attachment/thetrusthome' title='The Trust Home Page'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2008/08/thetrusthome-150x150.png" class="attachment-thumbnail" alt="The trust home page is simple and takes you straight away to a charity page" title="The Trust Home Page" /></a>
<a href='http://www.newmedialabs.co.za/rich_internet_applications/the-trust-portal-of-giving-completed/attachment/thetrustdonate' title='The Trust Donate'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2008/08/thetrustdonate-150x150.png" class="attachment-thumbnail" alt="The checkout page for making a donation" title="The Trust Donate" /></a>
<a href='http://www.newmedialabs.co.za/rich_internet_applications/the-trust-portal-of-giving-completed/attachment/thetrustcharities' title='All Charities'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2008/08/thetrustcharities-150x150.png" class="attachment-thumbnail" alt="All charities are aggregated into specific categories" title="All Charities" /></a>
<a href='http://www.newmedialabs.co.za/rich_internet_applications/the-trust-portal-of-giving-completed/attachment/thetrustoverviewcharity' title='The Trust Charity Overview'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2008/08/thetrustoverviewcharity-150x150.png" class="attachment-thumbnail" alt="The Trust Charity Overview" title="The Trust Charity Overview" /></a>

<p style="text-align: justify;">Who is The Trust?</p>
<p style="text-align: justify;">The Trust is a web portal that aims to make it easy, affordable and risk free for individuals and corporates to find and contribute to charities throughout South Africa and other African countries. The Trust provides a network for reputable and accountable South African charities who have been qualified through ongoing due diligence &#8211; irrespective of size, purpose or geographical location.</p>
<p style="text-align: justify;">The Trusts&#8217; web portal is your helping hand. The Trust aims to streamline the act of giving by creating a single access point for a range of causes. The idea is to boost the fundraising ability of charities by consolidating marketing efforts under one umbrella. By focusing on international celebrity endorsement through its many high-level contacts, The Trust is able to marshal significant support around several causes, from animals in distress to women and child abuse.</p>
<p style="text-align: justify;">Charities affiliated to The Trust are expected to adhere to strict reporting and accountability guidelines in order to continue receiving support from us. Every cent of every rand donated to our causes is tracked, accounted for and distributed to charities with maximum efficiency and transparency. In addition, to all of the above, The Trust has the active support and buy-in of many of South Africa&#8217;s leading businesspeople. This means we are able to benefit from literally decades of cumulative business experience and the result is a charity run on business priorities for maximum effect.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/rich_internet_applications/the-trust-portal-of-giving-completed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NML commences work on Adora &#8211; The Global Vision marketing automation CRM application.</title>
		<link>http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application</link>
		<comments>http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application#comments</comments>
		<pubDate>Fri, 01 Feb 2008 08:40:40 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=85</guid>
		<description><![CDATA[[Edit April 2009] The Adora product has recieved significant investment from Hasso Plattner Ventures Africa. The product is turning out to be the global enterprise CRM/Marketing Automation engine we set out to make it. [End Edit]
New Media Labs will provide architecture and development expertise on Global Vision’s Adora product. Adora is a marketing automation and [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">[Edit April 2009] The Adora product has recieved significant investment from Hasso Plattner Ventures Africa. The product is turning out to be the global enterprise CRM/Marketing Automation engine we set out to make it. [End Edit]</p>
<p style="text-align: justify;">New Media Labs will provide architecture and development expertise on Global Vision’s Adora product. Adora is a marketing automation and CRM tool that will supercede the product built for Diageo (the consumer goods companies with portfolio of world-famous drinks brands).</p>
<p style="text-align: justify;">The application will be built as a Rich Internet Application which will utilize the Silverlight presentation layer technology developed by Microsoft.</p>
<p style="text-align: justify;">Adora is a marketing automation software providing:<br />
1) Multichannel Campaign Management (Distribution)<br />
2) Enterprise Feedback Management (Collection)<br />
3) Business Intelligence (Analysis)</p>
<p style="text-align: justify;">Adora’s goals are:<br />
To become the leading marketing technology provider to CPG / FMCG businesses globally and to become a recognized leader in the marketing technology space as defined by number and caliber of customers, global footprint, industry awards, and industry analyst opinion.</p>
<p style="text-align: justify;">1) Short term: make ADORA one of the top 5 Marketing software products in the Business-to-Consumer space worldwide within the next 3 years.</p>
<p style="text-align: justify;">2) Medium term: make ADORA the accepted leading software product for businesses wishing to extend the marketing capabilities of MS CRM within the next 5 years.</p>
<p style="text-align: justify;">3) Long term: make ADORA one of the top 5 marketing software products in the market worldwide in the next 8 years.
<a href='http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application/attachment/adora360vieofcontact' title='Adora will show a 360 degree view of the Contact'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/adora360vieofcontact-150x150.png" class="attachment-thumbnail" alt="Adora will show a 360 degree view of the Contact" title="Adora will show a 360 degree view of the Contact" /></a>
<a href='http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application/attachment/adora360effective' title='Adora will illustrate a 360 degree view of effectiveness'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/adora360effective-150x150.png" class="attachment-thumbnail" alt="Adora will illustrate a 360 degree view of effectiveness" title="Adora will illustrate a 360 degree view of effectiveness" /></a>
<a href='http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application/attachment/adora360singlecommunicationplatform' title='Adora will be a single communication platform'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/adora360singlecommunicationplatform-150x150.png" class="attachment-thumbnail" alt="Adora will be a single communication platform" title="Adora will be a single communication platform" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

