Skip to Content
Author's profile photo Graham Robinson

Collaborative Development by Example

On Tuesday of the week before Las Vegas SAP TechEd && d-code it was windy in Sydney. In fact it was very windy. A serious low pressure system was passing over us and bringing winter-like conditions to much of eastern Australia. In parts of the Blue Mountains – just east of Sydney – snow cut roads and railway lines, trees were down everywhere, etc. All this on the second week of October – well into our spring and very unseasonal.

Someone sent out a tweet – sorry I can’t remember who – that drew my attention to http://earth.nullschool.net. This is a site built by Cameron Beccario, @cambecc, that provides a visualisation of global weather conditions, ocean currents and ocean surface temperatures.

On Tuesday 14th October eastern Australia looked like this – except animated of course.

Screen Shot 2014-10-28 at 5.33.59 pm.png

I spent a bit of time playing with the user interface because it was so much fun and so interesting. You can adjust the altitude to see the wind conditions at different levels right up to the jet stream and stratosphere. Move forward and back in time to see changes. Modify the map projection to see the whole world in one page. Etcetera.

Screen Shot 2014-10-28 at 5.39.38 pm.png

As I looked to see how Cameron had built this I was pleasantly surprised to find that he had made the project available on GitHub for anyone who wanted to make use of it under a MIT License. Great – I couldn’t clone it quick enough.

Looking at the code I was amazed. Firstly it was primarily only Javascript and SVG. Wow. Secondly I noted how many other projects and resources Cameron had leveraged to produce his awesome “earth” visualisation.

Javascript libraries included Node, D3, backbone, and when. The mapping data came from Natural Earth, a public domain dataset, weather data from the US National Weather Service, etc.

I knew Clint Vosloo and Chris Rae were planning to enter DemoJam the following week with an entry called Swell Analytics. Swell Analytics used an API supplied by MagicSeaweed that provides Surf conditions from all over the world. I thought Camerons’ “earth” visualisation would be a great starting point for the UI which would allow the user to search around the world for a surf spot and then drill down to get the surf conditions in detail.

I added the OpenUI5 library to Camerons’ project and a single Javascript call that triggered my code and passed the selected map coordinates. When my code was called it instantiated an OpenUI5 dialog box that ran as part of the “earth” visualisation but independent from it.

The map coordinates were passed to a web service that returned the nearest Surf Spots monitored by MagicSeaweed. When the user selected one it then called the MagicSeaweed API to get the surf conditions for that spot.

The MagicSeaweed API returns all surf condition reports for the spot over the past few days, including weather charts and forecasts. By moving quickly through these charts I could produce an animation effect that looked pretty cool.

Once completed I handed over the code to Clint & Chris to plug in their components. These included historical analysis of the surf spot and analysis of related social media feeds using HANA.

I had spent less than 2 hours on this – but there is clearly more than two hours work in the result. A true example of collaborative development. I have not met Cameron or the people who worked on D3, or backbone, or Node. I don’t know anyone at the National Weather Service or Natural Earth. But we all worked to produce this outcome and I am deeply grateful to all of them. So are Clint & Chris. 😉

That is why GitHub, and other services like it, are so important to developers today. That is why SAP CodeExchange was so important and why it was so disappointing that it was killed with little notice. For developers to truly collaborate we need a distributed revision control, change control, call it what you will service, and associated tools, to support us. That is also why SAPLink is so important – a great collaborative project totally driven by the community.

Most important of all is the developers who share their work, outcomes, and experience with the rest of the developer community and thereby make the whole greater than the sum of the parts. They allow minnows to stand on the shoulders of giants to produce great outcomes.

If you don’t know what Git is I think it is time you found out.

You can watch a replay of the Swell Analytics Demo here.

Assigned Tags

      2 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Michael Howles
      Michael Howles

      Graham Robinson, this is very very impressive from a technical standpoint but also from how the collaborated on final product came to be, from both people you've met as well as those you may never cross paths with.  Makes for a good story!

      I also agree with 'If you don't know what Git is I think it is time you found out'.

      Author's profile photo Former Member
      Former Member

      Thanks for sharing this - I think http://earth.nullschool.net/ is my new favourite website!

      Cheers,

      G.