Other Tools

Configuring Production Environments (Linux) 

  • For the system to know the linux install (e.g. aws ec2) is configured as a production environment, and any other system wide configurations you have to edit the ~/.bashrc file. While this will vary by production, but an example line for a Ruby on Rails install will be “export RAILS_ENV=production” 

  • In addition within the application code folder there will usually be a .env file that should be used to store machine specific configuration variables that should not be stored in public locations (e.g. Github). For example devise secret keys 


Under Mapping Technologies: 

Potree 3D map visualizer (Open Source) - www.potree.org  

Potree is a WebGL based point cloud renderer for large point clouds. Our client wanted to visualize .ply files that contained LIDAR point clouds, and this tool worked perfectly. It supports las, laz, binary ply, xyz or ptx files. 


If doing a custom build pick the framework that is easiest to host with all features that your client needs instead of the framework that you know best. While learning a new framework (or even language) can be difficult, provisioning servers (securing them, making them publicly available, updating, installing the correct runtimes, and installing the webserver) takes a ton of time and is can be more difficult than developing the platform. If your client can spare the budget (it can be cheaper like in our case) go with a Platform as a Service (PaaS) instead of Infrastructure as a Service (IaaS). For Azure this is going with Azure App Service instead of a Virtual Machine, for GCP this means going with App Engine stead of Compute Engine, and for AWS this is going with Elastic Beanstalk instead of EC2. Having automatic environment configuration and updates with turn-key scaling makes your life much easier especially for long term maintenance. Also having a CLI or GUI deployments (like you push a button in Visual Studio) makes deployments much quicker. It took us weeks to convince our client to go with a PaaS solution. Once we showed them how quickly you can host and how much cheaper it was, they were sold. Pick a framework that has a PaaS solution. Many PaaS solutions like Azure App Service support multiple runtimes and frameworks so you have options, we just recommend picking one that a public cloud provider offers.  


Important tips when using an already-built SaaS Product

  • Establish a relationship with technical support representatives in the early stages of the project to communicate problems and potential solutions effectively.
  • Test product thoroughly to ensure that all functionality meet client’s critical needs
  • If there are bugs, ensure that this will not delay go-live schedule or prevent project from going live. Properly communicate problem with SaaS product representatives via phone or email. We’d recommend calling, so they know who you are and will fix problem faster.
  • Do not fall to quickly for cheap costs with EMR (Electronic Medical Records) or CRM (Client Relationship Management) systems.  There are a lot of players in the SaaS market so know that you are getting what you pay for. Properly explain this to client to prevent frustrations later on while working with the systems.


EPPlus (C# .NET NuGet Package – Programmatically Create Excel Documents )

  • An open source, easy to use package that allows developers to create Excel spreadsheets (.XLSX) files that has no dependencies other than .NET. It’s very simple to use and has a lot of useful tools such as creating a file with multiple sheets, tables, pictures, cell ranges, conditional formatting, and more.


PHPExcel - handling Excel files

  • Be careful with memory usage- PHPExcel is known for a memory leak. To reduce its memory usage, tweak its caching configuration following the PHPExcel instruction.