January 9, 2018

Research and Development

Outside of projects undertaken for clients, FlatCoder Ltd. spends a large amount of time performing research and development.  Below are a few sample projects from the last couple of years.

EMOS

EMOS was developed from recognising and generalising recurring themes among numerous clients. Essentially, an attempt to build a product that can, out of the box, tick most if not all common requirements that FlatCoder Ltd encounters for small to medium businesses. At the time of writing, EMOS supports:

  • A basic CMS. Design, edit, publish web pages.
  • A form designer. Design, publish and set actions relating to workflow (send email, etc.).
  • Case management including threaded discussion capture.
  • Marketing automation. Leads in the system can be emailed or mailed post cards / letters according to a schedule.
  • Organiser. Shared calendar, contacts, documents etc.

Continued development will focus around:

  • Fine grained access controls, who can see what where and when.
  • Workflow automation, allow users to define processes.
  • User configurable dashboards showing key information.
  • Integration with WP Report Server.
  • Further modules (events management, instant mobile app, CRM etc.)

WP Report Server

Most business intelligence platforms are Java based. Largely, due to the OLAP API only really having Java implementations! It is not always desirable or permissible to deploy a Java based solution. The idea, initially, was a PHP report server (that soon escalated, see http://www.wpreportserver.com).  WordPress was used a base. Powering a large part of the web, WordPress is a tried and tested platform that offers a number of features out of the box. In this instance, it was mainly the admin panel / user management that was of interest. WP Report Server is developed as a WordPress Plugin.

 

Just a Phase

A simple game concept that’s incredibly difficult to realise!  What if you could hop around your own time line?  What if you did something differently in the past?  How would the future change?  While the game got parked for various reasons, the talking avatar that came from it has proven highly reusable.  The particulars of the avatar are that it can not only perform text-to-speech, but can also do a very accurate job at lip syncing an animated character!

Route Planner

The “travelling salesman” is a well known problem. If a salesman has 10 clients to visit, what is the best order to visit them to minimise the distance? It’s a particularly difficult problem computationally, but route planning with multiple stops is a daily routine for HGV drivers. It is computationally impossible beyond a certain point, with current hardware, to solve the problem quickly. The number of combinations for any given route is a factorial. So, for example, a route of 13 stops has 6,227,020,800 possible solutions. Scale to 16 and there are now 2.09×10¹³ solutions! In route planning, especially HGV driving, there are additional considerations. The width of the road or the elevation of a road, for example.

Ultimately, a modified version of Ant Colony Optimisation was used. Very succinctly, it’s a computer simulation of nature:

“Ants of some species wander randomly, and upon finding food return to their colony while laying down pheromone trails. If other ants find such a path, they are more likely to follow the trail, returning and reinforcing it if they find food. The pheromone evaporates, thus reducing its attractive strength. The more time it takes for an ant to travel down the path and back again, the more time the pheromones have to evaporate. A short path, by comparison, gets marched over more frequently, and thus the pheromone density becomes higher on shorter paths than longer ones.” (Wikipedia)

Google Maps APIs were then used for additional data including elevation, narrow roads and low bridges.

A near optimal result is shown below. With 13 stops, the system found the solution in 65,000 attempts. This is considerably less than 6,227,020,800 and can be computed in seconds!