Adventures in the Forbidden Zone
I have been working on a software platform in Unity — see www.virgis.org. This platform is a complicated set of C++, C# and Unity modules.
Initially, this whole platform was implemented as a single large Unity project. As we progressed the software dependencies became more complicate and this approach became a barrier to progress.
So the decision was made to break the platform up into a set of packages and use package management to control the dependencies.
This is a set of articles about that journey.
The ViRGiS platform (without going into too much detail) is made of…
How to integrate the Package Managers
I am expecting most people who know about Conda and Unity are thinking “Why integrate them?”. I am coming to that. First a little bit of background.
Conda is an open-source, multi-platform and multi-language package management system. It started as part of the Anaconda data science environment targetted at Python and R but has proven so useful that it has been spun out on its own.
The primary value of Conda is:
Creating your own Conda Packages
Conda is a modern and advanced package management platform that is used across the data sciences but also, these days, much wider.
This article goes through some of the complexities of creating your own Conda package particularly focussing on putting C++ libraries in Conda packages.
This article will come in three parts:
For more details to the background of this article and also how Conda can also be used in Unity projects, see this article. …
Creating your own Unity Package
Packaging code up into components, modules or packages is an important tool for code and version management for any project.
This has not always been easy for Unity Projects, and still remains an area of complexity and possibly an area where Unity is deficient. This will be a brief discussion of what to do and how to do it.
This article is part of a larger set about componentisation of Unity projects.
I am not going to provide much introduction to Unity, since if you do not know what it is then this article is probably not of much interest. …
A simple and quick recipe for a web app
When it comes to quickly creating a highly interactive web site, whether for a niche audience or as a demonstration of a concept, I find that a combination of Google App Engine, Angular and Python provides the best solution.
I often find myself needing to quickly create a full-stack web application.
This is partly because of my personal approach to creation, which is very much prototypical. And it is partly because I believe that too many sites that should end up highly interactive end up as passive sites because people think a good web app is too expensive and my belief takes the form of “let me just put something together quickly to show what is possible” ……
Understanding GPS altitude and how to get a reasonable result.
The trackbash.co.uk website is aimed at railway enthusiasts. One thing they all said they particularly want is to be able to see the gradient of the track they are currently travelling and if possible elevation profile of the track as they pass over it.
This turned out to be a long way from the trivial problem that it looks to be to start with.
This article has two distinct parts :
The world’s most niche post ….
This is a very niche post. But, I was working with some spatial data and wanted to represent the data against an envelope of CSR picks.
This should be a relatively common requirement but I could not find anything about how to do. So I wrote an article about the way that I did it.
A common problem in spatial analysis is to want to plot a set of observations against the “envelope” of results from a set of draws from a Monte-Carlo simulation, usually of Completly Spatial Random (CSR) datasets or datasets that follow the same density profile as the observed sample data. …
Using Service Workers and PWA with Angular Leaflet or OpenLayers
The objective of this series is to that you will be able to create a Leaflet map in an Angular-CLI based project without hassle, fuss and dead-ends.
In this part, we will…
How to use the powerful mapping library in Angular
Having written a whole series of articles about using Leaflet in Angular — i.e. see this …
… Why change to OpenLayers?
Leaflet is a great library and it is very easy to quickstart simple projects. It needs very little set up and has a large library of controls and extensions. However, if you want to go beyond the basics, particularly in terms of complicated projection manipulation or wanting to have real GIS symbology on the layers (i.e. programmatic control of the shape, size and colour of features) as opposed to simple markers, Leaflet runs out of steam quite fast. …
Using Angular to Create an Intelligent Compass Map Control
For a recent project demo project (which is not public) I wanted to create a “Nautical Compass Rose” control for an interactive web map using Angular.
This turned out to be a really interesting problem. I thought it would make a good article.