Guest post: “Antenna Finder: the first leap into Windows 8”
On March 27, 2013 we welcomed over 200 developers at the Windows 8 Super Hackathon . Rudy Van den Bergh & Jeroen Vangeffelen from ToughComputing also attended and in the below blogpost they share their experience with building their app, Antenna Finder .
The MSDN Belux team
Earlier this year, we created a new startup, called ToughComputing, based in Tongeren. As the name says, we focus on projects that implement tough, rugged, connected computers and tablets for outdoors mobile workers. Together with the University of Leuven (DTAI – Department Declaratieve Talen en Artificiële Intelligentie) we try to bring Machine Learning into the mobile environment to improve connectivity and user-experience.
A new startup means a new team, new technologies and a good time to re-evaluate everything you did in the past. Through the MIC Vlaanderen unit in Genk, we got introductions to the Windows Azure Platform and Windows 8. We started to use the Azure platform for data mining but we were missing a short and easy goal to bring it all together. That goal presented itself when the people of the Microsoft Innovation Center at Genk told us about the Super Hackaton.
The Hackathon
A hackathon was a complete new kind of event for us. Just going there for a day, program, deliver an app seemed fun and easy. It makes you wonder though where you lose your time most days .
We came a little bit prepared. Not too much. We needed an idea for an app that was somehow related to what we do and that had at least a minor match with the event’s medical/health-theme.
In the end we decided to go for an app that would visualize gsm antennas. A colleague of us had, two years earlier, a medical emergency. His son couldn’t get gsm reception at his home and had to run a street further to call an ambulance. It was a very close call. The bad connection almost cost him his life. That was our link with health. Knowing where antennas are is obviously good for your health. Another operator would have given him a better connection in his home.
The app would be a simple Bing-maps app that would display the locations of cellular-antennas for three operators within Belgium. The app should allow you to make a solid choice between operators depending on your main locations or tell you which side of place you are in would give you the best connection to do your work.
We prepared the data in advance of course. About 8000 antenna-towers were uploaded to a SQL Azure database. We used the spatial format in order to be able to index them and to query based on distance.
During the hackathon, we worked mostly to get the data into the Bing-maps control. We used an Azure Mobile Service to interface to the stored procedures that performed the spatial queries and operations. That was reasonably hard since it was largely undocumented and in Preview status. Surprisingly, we lost more than expected time on design. A Windows 8 app runs on HD or better resolutions. You can’t afford to have it look clumsy and edged. We got it to an alpha-version that day. It worked but was not stable, nor polished-looking enough to publish.
Afterwards
After the hackathon, we kept working, between other things, on the app. We redid the graphical design with our new look and feel we just got from a Crowdspring project. We bought some professional images to improve on the look of the app. Those are really not expensive and guarantee that you will never have any rights-issues with the images you use. We thought it would be fun to see if people are interested in rating their phone operator on given or gps-locations. The rating mechanism we entered captures the ratings in a spatial format. Some functionality was added to match your operator to the three big physical operators (BASE, Belgacom, Mobistar). And we added Microsoft Pubcenter ads, just as a test to see how things go.
Just before going live we started testing with a new Windows 8 Pro Tablet. And the walls came tumbling down. Here we discovered the weak-part of the process up to now. In a very long roundtrip chain (database, stored procedure, mobile services, LinQ, Bing Maps Control, app and back again), it is hard to debug things that really go bump. Defensive programming really helps in determining where things go wrong. It happened to be the regional settings of the device that were ‘far’ removed from the US-standard. Once we knew what it was, a quick workaround could be implemented.
The app-validation was a pleasant experience. Of course it failed validation at first but the feedback we got from the Windows 8 Store validators was so good that we could iron out a couple of issues we hadn’t even noticed ourselves. Improved, it got published.
Next?
The app has been steadily growing in the store. Network ratings have been coming steadily in as well. We intend to give those back to the community in the next update.
Improvements that we are thinking of is caching data locally and using a local spatial index-mechanism. Since it is a point-layer, that shouldn’t be too difficult. A 2D-index coupled with a range function should be enough. We are going to look further into the dynamics that are possible in Bing-Maps. Eg. using range-indications or displaying shapes.
Parallel we are running algorithms that match the antenna sites with different cells and we are creating coverage maps using spatial-statistical techniques such as kriging. This data is our main focus because we use it to improve connectivity on rugged devices. We are also going to rework the SSIS-packages in order to be able to update the database regularly.
In Windows 8 this is a good app to lookup information and decide on coverage issues. On a phone it would be great. Ratings could be taken from exact locations and the app could help mobile users to better connect to their home offices. We are going to look into a phone-partner app that makes use of the same dataset.
All in all, what started out as an exercise to get to learn some new technologies has kind of grown on us and has started to hook back into our main business.
Our experiences so far
We set out to learn new technologies and implement some tests in a playful way. We achieved that rather well. Visual Studio 2012 is a great update of the IDE which has a lot of features that a lot of people aren’t even aware of. We started with a blank app in order to get grips on the whole process. In truth, it took a lot more work than we expected. Design and graphical work was heavier than expected. Publishing an app into the wild is also a completely different experience from releasing your applications through a rigid test and release scenario in an ITIL-organization. You only get to learn your users afterwards. It’s fun and keeps you wanting to do more…
Rudy Van den Bergh & Jeroen Vangeffelen
ToughComputing