Dev Team Blog
SGID Product Relaunch Update
In a June 2019 post “SGID Then and Now,” we touched on where we thought the SGID is going. Based on the survey responses from that article, we have changed d...
Using Jupyter Notebook for AGRC Collaboration
At AGRC we greatly value collaboration and sharing ideas. A terrific technology to support these values is the Jupyter Notebook project.
Thoughts from Teaching Google and Amazon New Skills
Developing software for digital assistants is fun and a refreshing change from typical GIS projects. Over the past few months, AGRC was lucky enough to spend...
Make Old Dojo Builds More Beautiful With UglifyJS
Do you have an old project that uses the Dojo Build System (DBS) that has suddenly refused to build? I’ve come across this issue recently and it can be frust...
Best Practices for Building Web AppBuilder Widgets
Recently, I have been working on a project building custom Web AppBuilder (WAB) widgets for a client. This has been an interesting digression from our typica...
Image Service Deprecation
The AGRC brownout of the mapserv image services on mapserv.utah.gov from January 5 through 10, 2019, in preparation for the ArcGIS Server upgrade was very su...
ArcGIS Server 10.6 Upgrade
AGRC is planning to upgrade the mapserv ArcGIS Server system to version 10.6.1 within the next few weeks. For the majority of our users, we do not expect any...
The Next AGRC WebAPI
The current WebAPI has been in production serving the public for multiple years. It handles millions of requests for spatial information every month and is f...
Leveraging Git and GitHub to Manage the Lifecycle of Custom ArcGIS Tools
As GIS developers, we are often expected to provide the same custom tool for multiple versions of ArcGIS Desktop (or ArcGIS Pro). For example, some users are...
Implementing Babel via Grunt
Have you ever felt your excitement build after seeing some cool, new JavaScript feature only to find out that it isn’t supported in all of the browsers that ...
Don't Make Users Think about Updating Software
As software developers, we want the people who are using our software to enjoy not hate the experience. Developers strive to create a positive user experienc...
Cache-Breaking for Faster Web Application Updates
When Production Is Broken, It Needs to Be Fixed Now! Recently, the URL changed for one of the map services we use in several of our applications. This came a...
Success with Serverless
In this post, I’d like to share the success story of our recent testing of serverless computing. We’ve been having some issues with a print-proxy service, an...
Dumbing Down Terrain with Contour Polygons
While technology advances towards products with greater resolution and accuracy, sometimes more data isn’t always better data. Sometimes, being able to see g...
The Evolution of a Python Script
Python is a very approachable programming language and scripting in python is quick and powerful - Create a file, type some code, and a repeatable script is ...
FOSS4G 2017
The 2017 International FOSS4G Conference (Free and Open Source Software for Geospatial) took place in Boston, MA with a record attendance of around 1500 atte...
AGRC System Status Page
Over the years, GIS is trending more and more towards being web-based. AGRC has tried to keep step with this trend with the addition of the discover, the Tur...
Converting SGID data downloads to Drive
File-based data products in remain an important component of Utah’s State Geographic Information Database (SGID). In a change designed not to be noticed by u...
Rethinking Geocoders: Adding Local Vernacular into the Build Process
AGRC has been working on a project to enhance our approach to geocoding. This grew from the basic idea that humans often view addressing differently than a G...
devsummit 2017
The ESRI Dev Summit this year was great, as always. We much prefer this smaller more intimate conference to the much larger User Conference. They pack the sc...
Removing and Replacing the Esri Web Adaptor
The Esri web adaptor is a small load balancer/reverse proxy bundled into the ArcGIS Server install but do you know if you need it?
Forced GitHub; A reflection on a new website using GitHub and Jekyll
The first commit to our version 6 website was one year and eight months ago on May 26, 2015. We went live with the v6.0 on March 25, 2016. Between that first...
Why I Speak at Conferences and You Should Too
Recently, I tried to gather all of the presentations that I have participated in during my career up to this point (~10 years). I was able to find materials ...
Converting Dojo-AMD Projects To TypeScript
At some point in every TypeScript introduction that I have been to, the presenter says something to the effect of:
Using AGRC's new Web Mercator Services in Your Web Maps
The instructions on this page are dated. Using Discover services with the Esri JavaScript API v4.x contains more current information.
Mock your Dojo AMD modules with StubModule.js
When testing AMD modules it is sometimes necessary to verify how it interacts with it's dependencies. For example, you might be writing a module that makes X...
Boost Your Productivity With Vim
I was surprised to realize today that I have never written about one of my favorite tools that I use to write code. It's something that absolutely transf...
Staying in the Zone with AMD Butler
[Update(3/17/16): This plugin has been ported to an Atom Editor package called amdbutler.] A few months ago, I built a simple plugin for Sublime Text 3 ...
Windows Scheduler: Get Your Priorities Straight
Here at AGRC we have a variety of tasks (usually python scripts) that need to be run on a schedule. These are usually workflows that scrape and ETL data for ...
How To Use AGRC Base Maps in QGIS
Most people know about AGRC’s awesome base maps. They are very popular and provide high quality cartography using the latest and greatest data from the Utah ...
How to Wire up Travis-CI to your JS Projects
For the past six months, AGRC has been using Travis CI to automatically test and lint our projects each time we push a commit to the associated GitHub reposi...
Using AGRC's Geocoding and Map-based Web Services
The Department of Technology Services hosts a monthly scheduled Enterprise Developer Group (EDG) brown bag presentation series. The previous session recordin...
grunt-esri-slurp
[Update(3/17/16): ESRI has released a bower package for the JS API that removes the need for this project.] Running the Dojo Build System with ESRI's JavaScr...
My Favorite Sublime Text 3 Plugins & Configs
I'm a huge fan of Sublime Text 3. I love it's simplicity and strong package community. Here's a list of my favorite packages and config tweaks: Packages Pac...
Quick JavaScript Tip: The Arguments Object
Recently, as I was slowly working my way through Rebecca Murphy's excellent js-assessment test suite, I ran into a problem that was quite vexing. I was creat...
Using Base Maps with Non-standard Coordinate Systems in LeafletJS
Since LeafletJS seems to be what all of the cool kids are using these days and it shows no signs of slowing down, I thought that it would be fun to figure ou...
Mac OSX + VMware Fusion + ESRI's ArcGIS Server
While there's endless arguments about whether Mac's or PC's are better for web development, there's not much argument that Mac OSX is the most popular platfo...
The ESRI API for JavaScript/Dojo Build System Saga Continues...
That's right, my entire app JS is in this one file *including @ESRI modules* https://t.co/06S4KCtkuR cc @DavidSpriggs @derekswingley — Scott Davis (@SThomas...
New Address Point Cached Map Service
AGRC recently released an address point map service. The service contains a cached version of Utah’s Statewide Address Points dataset. Direction...
AGRC Web Mapping Services Demo
AGRC offers a variety of mapping-related web services that make it easy to add authoritative Utah web maps to your applications. The two most popular are our...
New Release of atlas.utah.gov
AGRC recently released a new version of atlas.utah.gov, a map viewer that allows users to inspect the statewide base map services that highlight terrain, lan...
ESRI JSAPI 3.4 and the Dojo Build System
In a previous post, I outlined how I use the Dojo Build System to optimize my web app code for production. Specifically I showed how I get around the problem...
Tracking Server Response Times with the Google Spreadsheets API and asp.net
We've been noticing some speed issues with our mapserv machines recently and are trying to figure out the issue. In an effort to have a little insight into t...
Using The Dojo Build System To Speed Up Your ESRI JavaScript API Apps
As your JavaScript projects get more and more complex, loading all of your Dojo javascript files can really slow down your load time. All those dojo.require ...