In 2007 when facebook was huge (well it is still huge, but 2007 was a time when we talked about our Crackbook Addictions and we got a huge kick out of getting wallposts and we were as proud of our facebook “friends” count and our wallpost count as some twits are about the number of twitter followers they have now days [I'm one of them!]) Vodaspam hadn’t smelt SMS integration into Facebook and I figured it would be an awesome idea to build and application that would send your wallpost to you as an sms.
Realisation 1 - facebook API didn’t expose the wallpost (obviously this was what got people coming back to facebook)
I’m determined and so we (Willem Odendaal and I) resorted to an old favourite technique of mine - Screen scraping or Indexing as google call it. Basically we made what is called “A Bot”.
Realisation 2 - you can only see the wall if you’re someone’s friend. No worries the Bot would be a Facebook user - enter Peter Lear (who Leared at your wall).
Peter (The Bot) had to login to facebook, check all his friends walls and screen scrape the html, check if there was a new post (the old highest value post was already loaded in the Database) pick up the new post and then bang it out to the “friend” as an SMS. The idea was that this would be about as prolific as Please Call Me’s - adverts [possibly contextual] would be attached and I would make lots of money. Boom.
Easier said than done. Attached is some of the code. The app worked a treat and within a week Peter had lots of friends - problem.
Realisation 3 - this could cost me a lot of money in SMSes (sent from a clickatell account) as some “friends” were getting 10 posts a day…
And so I tried to find an agency that would like to use it. But advertising doesn’t work like that. It is much slower and less dynamic than you may realise. Advertisers are often scared to try something new. If it isn’t in the strategy that was set x months ago - they won’t touch it was the message I got back. And so it wasted me money for a couple of months and I took it offline… only to see Vodacom integrated the wall into facebook 18 months later. Hmmm maybe I just didn’t sell it well enough or maybe it just wasn’t such a great idea.
Of course Peter Lear is still on facebook, he only has 17 friends, he plays Farmville now (Frances - my daughter - begged me) and when facebook is feeling kind they recommend that I make facebook better for him. Please write on his wall - http://www.facebook.com/profile.php?id=534167080
Attached is some of the code from Peter “The Bot” Lear. The login, the scrap, the send…
Interesting aside though - it was one of the things I showed Jon Jacobson that made him believe that he should invest in my company “New Media Labs” and that my ideas would slot into their marketing automation engine - Adora. And so it goes… everything for a reason - just do it.
ps. Warning. The hot girl that’s following you on twitter and spamming naked pictures of herself at you - this is what she looks like! She also beats you at poker, chess, etc. She’s also tried to login to this wordpress site and take control if it over a thousand times. … just a thought.
pps. This is what geeks do for fun.

Get a list of his friends...

Login..push.

Scrape...aka Index

SMS Send
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 areas such as Emergency Services, Disaster Management and Policing.
The Problem
New Media Labs came on board specifically to design, develop and implement a system that:

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.
The Solution
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.
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.
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.
How did we do it?
In a nut shell, Start Lite, as the system is called, has a 3 tier architecture comprising of:
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 SCRUM 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.
Database and Web services
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.
On this particular project we decided to use 2 Microsoft Patterns and Practices: Repository Factory and Web Service Software Factory Modeling Edition.
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.
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.
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.
User Interface 
Why Silverlight?
Yes, ok but why not Adobe Flash?
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.
Worth Mentioning
- Login with ASP.NET Authentication Services
- Announcement and Notifications Engine
- Embedding PDF in Silverlight
What is next?
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!
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.
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:
- MVVM
- RIA
- PRISM
New Media Labs was chosen to do the development for Nedgroup Investments’ 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.
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.
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.
CMS Item Workflow
The following content types:
incorporate the following features:
Only certain user roles 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.
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.
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 “old” version will fall away.
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 Media Manager)
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.
| 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. |
| 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. |
Website Screenshots
| Go see it for yourself here: Nedgroup Investments |
Things we learned
After the site went live we discovered an interesting Linq bug. Turns out the Load Testing slipped through our QA’s net! We learned very quickly to make sure this doesn’t happen again…
Next time we’ll also make sure we implement the latest and greatest version of the SiteMapProvider for MVC. The version we used didn’t seem to refresh the nodes properly and so we spent far too much time on it than it deserved!