Justin Burns

Day 3 promised to be full of good technical sessions. My focus for the day, like all the rest, was on the Runtime SDKs. My first two sessions were a two part series “ArcGIS Runtime SDKs: Building Offline Apps.” These sessions were intended for immediate users. Much of the material was review for Kelly and I, but it was nice to confirm that what we are already doing is consistent with what Esri recommends.

After lunch came the session on “Real-world Native App Design Using Qt/QML.” Having no experience in Qt/QML, I found this session quite interesting. Qt uses C++ as the development language while QML is a modified form of CSS and JavaScript. The full set of Runtime SDK capabilities are available and it can deploy to many device platforms. There is some loss of native functionality, but if that is not important to your application this is certainly a viable option.

Next up was “Preview of ArcGIS Runtime and Xamarin.” The Esri implementation for Xamarin is based on the ArcGIS Runtime SDK for .NET. You develop your app in Visual Studio as you normally would for a WPF application, following the MVVM coding pattern. The main solution can natively contain views for Windows desktop, Windows store, and Windows phone. Xamarin Forms allows you to then add in views that will compile for use in both iOS and Android. The level to which you can customize these views is unclear to me at this time. In addition, I’m unsure how well 3rd party libraries will compile to the native code for each of the platforms.

The last session of the day, “ArcGIS Runtime SDKs: Implementing 3D Capabilities”, explained how Esri is developing 3D capabilities into the Runtime SDK core. They are making it quite easy to convert from 2D display to 3D display. All the same layers work for both. They are adding a couple of additional layers, one of which will allow you to display elevation.

Well, that’s it for me. It has been an informative and fun 2015 Developer Summit. I look forward to going back and applying the new techniques that I have learned.

Kelly Bigley

I geared my sessions on the Runtime SDK. The beta release of the Runtime "Quartz" SDK will be sometime this summer with the production release by the end of the year. It will support Vector Tiles and will tailor the resolution of the tiles to the device for optimum efficiency. It will also focus more on working with maps across the platform. I got the impression that you will have the ability to create a map in ArcGIS Pro, then make changes to it in the Runtime SDK and save, then see the changes in ArcGIS Pro. The SDK will support offline maps rather than just offline feature layers. Of course, all of this awesomeness will result in changes to Runtime SDK for iOS, Java, and Android to match the recently released Runtime SDK for .NET. This will pave the way for Xamarin support, which will be included with Quartz! Using the Runtime SDK for .NET and an MVVM pattern you will be able to use Xamarin and simply create an XAML file for iOS and Android in addition to your .NET XAML and all the view models will be shared and run on windows, iOS, and Android devices. This is exciting if you are willing to pay for Xamarin. In order to leverage Xamarin with the Runtime SDK, you will need to be licensed for Xamarin forms.

Steve Mulberry

Thursday provided a packed full agenda with great presentations and, of course, the big dodgeball party.

The last session of the day was the Return of Killer Apps with Sajit Thoomas, Mansour Raad and introducing Al Pascal. It was a great time with a Hollywood slant on the demonstrations. The bottom line from these guys is to think out of the box when it comes to application development - actually burn the box down and don’t be afraid to break a few rules, fail and be unconventional in the use of technology to solve problems.

But I digress….

Here’s a recap of the day.

Deep Dive into Enterprise GIS Implementation Patterns - Witt Mathot

His top 6 things to consider when implementing an Enterprise GIS:

  • How many portals - one or many, i.e. internal and external, departmental security and control with shared server/services or a shared portal. Portals do not talk to each other right now.
  • Deployment Patterns - Online, On-Premise, Hybrid
  • Security Model - Authentication (Users, Groups, Roles/Privileges) GIS, Web, Windows, LDAP, SAML. OAuth (App gets register to Online), Turn on SSL, Use CA-Signed Certificates. Portal requires SSL
  • AGS Site Design (Silos, Sites, Clusters) - don’t try to do everything on one site, use workflow separation. Don’t use clusters. Consider small sites or silos. Keep the number of services smaller, RAM may be an issue, or control the pooling etc. Consider all your requirements carefully.
  • High Availability and DR - define the differences between HA and DR
    • http://server.arcgis.com/en/server/latest/administer/windows/deployment-scenarios.htm
    • http://server.arcgis.com/en/portal/latest/install/windows/configuring-a-highly-available-portal.htm
  • Load Balancing - Web Adaptor can be used as an NLB and Web tier authentication. Best practices are to use a 3rd part NLB i.e. F5. To use WA in an HA must have an NLB in front of the WA. Portal cannot use the WA for LB, must use NLB.
    • Use a 3rd part NLB
    • WA would be used for Web Tier authentication for AGS
    • privatePortalUri

Esri Leaflet Support - Patric Arlt

http://arcg.is/1DMjcEO
Now at release candidate 6, as soon as leaflet 1.0 is released Esri-Leaflet will be released at v1.0

AppStudio

Building native applications can be intimidating to the novice or beginning developer, dare I say even the more experienced developers. In some cases, mobile application development is taking place outside the GIS department of an organization. Esri wants to help change that through rapid application development using AppStudio.

I was a little cynical during this session, so I put them to the test. I was hearing how easy it was to develop a native application and being new to the Mac world I wanted to see just how easy it was. During the hour-long presentation, I downloaded the EAP version of AppStudio http://doc.arcgis.com/en/appstudio/. Before I knew it I had Q1 Creator, Xcode and AppStudio installed and running. Next I ran through the process using 1 of 3 templates installed by default and literally by the end of the session I was up and running with an application that I then could deploy to any device. Put this old cynical man in his place :-)

Some highlights of the session:

Web Map to a consumer-friendly application
Offline, Performance, BYOD (Bring Your Own Device)
iOS, Android, Linux, Windows, Mac

What do you get - AppStudio for ArcGIS (App templates, App Player, App Upload, App Make)
Write the code locally, upload to AGO as items, share, use through player.
Use App Make to compile binaries for each device.
Cloud-based compiling process that will post binaries to AGO account as items in the content.
QML/JS that gets compiled into native environment

Licensing - AGO/AGS Named User Account, ArcGIS Runtime, Qt Creator

Indoor Location/Mapping

In this session, we learned the process Esri takes to create indoor network datasets used for indoor routing. Tools will be available for desktop this year and ArcGIS Pro will become more indoor supportive with built-in tools for creating, managing and analyzing indoor mapping and facility management.

Here are the steps taken to build the network dataset:

  • Create fishnet
  • Clip to floor space
  • Add walls lines
  • Erase walls from fishnet and calculate wall distance
  • Add spaces meeting rooms, offices etc.
  • Tag primary path and add space centroids
  • Calculate floor paths
  • Calculate all paths for multiple floors
  • Deploy network

ArcGIS Pro Road ahead 2015

1.1 Summer (UC?) then 1.2 in the Fall (October)
1.1SDK, Vector Tiles, Range Slider, 3D Scene, Excel Support, Cogo
1.2 Facility Manager, KML, Mobile Map Packages, Enterprise Collaboration, Publish by Reference (EGDB), Graphs and Reports

Zeb Steeby

I started my day with Mansour Raad at the Deep Dive into ArcGIS, BigData, and Algorithms session. He discussed how he is integrating technology like Hadoop, Elastic Search, MemSQL, and Casandra with ArcGIS to visualize Big Data. Mansour also showed how he uses Spark for processing with these other technologies. In one of his demos, he had lightning strike data for an entire month. He then used Esri-Leaflet and Casandra to display tiles with the data. The cool thing was he used a tiling scheme that went down to the pixel level.

The next Session I attended was ArcGIS GeoEvent Extension for Server: Use Cases for Applying Real-time Analytics with Adam Mollenkopf. He had many practical examples for using GeoEvent Extension and he gave some good tips. One of these is making sure to put field mapper processors in from of stream services and making sure to save the definition so it is not regenerated on the fly. In one example, he used a streaming service as a Geofence to show a storm move along a coast. As the storm moved along it would provide alerts when it came into contact with weather stations.

I also attended the Latest Innovations from Esri’s Applications Prototype Lab Session with the Applied R&D Group. They had some interesting demos on their work with the World Health Organization for visualizing the Ebola outbreak in West Africa.

Chad Cooper

Securing ArcGIS for Server and Portal for ArcGIS by Jeff Smith and Derek Law

This was an information-rich talk that really helped shed light on Portal, how it relates to Server, and how to use security for both. Derek said not enough people use HTTPS. YES, you should use https. Yes, you need a certificate. They did a demo on how to create a self-signed certificate and do a certificate signing request.

To federate your server site, Server uses the identity store of Portal and its authentication method. For a Server site to be federated with a Portal instance, both must be at same release. This is tightly coupled, and your user gets the single sign on experience.

Administering Your ArcGIS Portal by Witt Mathot and Dan O'Leary

Think of Portal as a bridge between the front and back ends. Everything in the Portal administration panel is exposed in the REST API. The admin panel already exposes interesting statistics at all levels, some very granular. Using JavaScript they demo'd some very slick D3 visualizations. Also, portalpy on the Esri github page looks interesting, it's using pure Python to access the REST API.

Accessing Your Enterprise Geodatabase through SQL by Amit Kesarwani and Travis Val

I'm always looking for ways to quickly bypass software stack overhead, so I try to use direct SQL whenever possible. With that, I was really looking forward to this advanced talk. I was pleased to learn that you can indeed edit versioned featureclasses with direct SQL, you just do it on the versioned view. There are nine "discovery" functions that can help out, look those up in the docs. Some of the main points here were to NEVER update the ObjectID field (there are built-in functions to help with that on unversioned data) and to be careful, as with great power, comes the ability to really screw things up.

Some do's and don'ts:

DO:

* Insert geometries and attributes
* Write efficient SQL
* Query spatial and attribute information

DO NOT:

* Update ObjectID values
* Modify geometries of anything involved in topologies
* Update attributes that define geodatabase behavior

ArcGIS API for JavaScript: Tips and Tricks for Developing and Debugging Apps by Matt Priour and Kelly Hutchins

I do a fair amount of developing and deploying JavaScript API apps, so I was curious to see what tips and tricks they had to offer here. Kelly stressed prevention of errors by using code quality tools such as jslint and jshint. Catch the trailing comma problem that will bugger up your app in IE. These tools can be integrated into your IDE as well. Beautifiers such as jsbeautifier.org and cssbeauty.com (or plugins available for most IDEs) help the dev process as well. Task automation tools such as grunt and gulpjs can help with linting, beautification, and minification. The "WAT?!?!" moment for me in this talk was when she showed how to copy to the clipboard from the Chrome console with copy(esri.geographicExtent.getCenter());. I had NO idea you could do. Simple, but cool. Other cool tidbits were using console.time(), event listeners, and XHR breakpoints in Dev Tools. You can also save mods to local files from within Dev Tools. They showed the network tab a little bit, but should have done more with that. Our senior devs here at GISi have taught me to always go to the network tab to sniff the traffic and see what calls are going in and out from Server - a huge help in debugging applications.

Leveraging Image Services in JavaScript/HTML5 Applications by Wenxue Ju and Hong Xu

I had a pretty hard time following this talk as the speakers moved really fast and were kind of all over the place, but here goes. At 10.3 and the 3.13 JavaScript API there are some cool new features for working with Image Services. The RasterLayer class is in beta. They showed some pretty slick demos with on-the-fly image processing both server side AND client side, both of which were impressive the speed at which Image Server can process and return imagery is impressive. They were doing on-the-fly slope and aspect in the browser.

JavaScript: The Road Ahead

This was a well-attended session, especially for 5.30 in the afternoon right before the big Thursday night par-tay. 3D was big topic here and is pretty impressive I have to admit. The new 4.0 JavaScript API that's coming out in a few months will offer significant improvements, but there will be some things that will introduce backwards incompatibilities, requiring rewrites to some methods of existing codebases.

Thursday night party and DODGEBALL!

This was my third Dev Summit, but my first time playing dodgeball. I've watched every other time, and I remember years ago it was pretty hyped and they brought in little bleachers, but man, this is a big deal now. The hype and smack talk was high, and they set up three courts (four are rumored for next year) with two huge stands for fans. GISi had two six-person teams: Gone in 60 Seconds North, and Gone in 60 Seconds South. I was on South. We had a blast and made it out of the first round and into the second (both teams), where we were ultimately eliminated (both teams). Dodgeball is probably the ultimate team building experience.

Pete Mahoney

Day 3 three at the Dev Summit – the sun returns to Palm Springs so I keep drinking from the firehose. As the day went by I couldn’t help but be just a little bit nervous that I was going to throw out my shoulder later in the day at the dodgeball tournament. Happy to report that didn’t happen but I may need some ibuprofen in the morning. We didn’t win but had a lot of fun.

AppStudio for ArcGIS: Building Native Cross-platform Apps - Ismael Chivite, Sathya Prasad & Elvin Slavik

Started the day with this exciting first look at Esri’s new AppStudio. This offering is Esri’s way of paving the road for GIS developers to get their apps onto more devices and into an app stores. It’s like Web App Builder for the mobile device. You can build an app based on a variety of templates without writing a single line of code. You can then ‘make’ that app by kicking off a cloud build for any OS you wish to support. We were all pretty impressed and Steve and Zeb actually managed to download and install AppStudio (which comes bundled with the Qt Creator IDE and the Qt ArcGIS Runtime SDK) and build an app in less than 30 minutes. This is another big game changer. You can write your code with QML and Javascript or C++.

ArcGIS Runtime SDK for Qt: Hit the Ground Running - Koushik Hajra & Thomas Dunn

Having been impressed by the AppStudio presentation I went to go have a closer look at Qt development with ArcGIS in this beginner’s intro. In this session we covered three things: configuring your development environment, building widgets with C++ and finally building apps with QML and Qt. To get started with the development environment you have to download the Qt Creator IDE (which has its own licensing from The Qt Company), then you download and install the Qt SDK. Finally you can download and install the ArcGIS Runtime SDK for Qt and run a post install step to tie everything together. We ran through a demo that created a simple mapping application with some routing. The app was first written in C++ as a Qt Widget. Then we built the same app using Qt QML There are tons of samples on Github and there is a very cool ‘sandbox’ site where you can play with your code in an interactive way on the web.

Security and ArcGIS Web Development - Heather Gonzago & Jeremy Bartley

This session covered all the ways that you can authenticate users and unlock portal content using both the ArcGIS JS API as well as ArcGIS Runtimes. We learned the benefits of using OAuth authentication, facilitated by the ArcGIS API, over traditional token based authentication. With OAuth against the ArcGIS Platform, credits can be tracked against your organization as well as access content and premium content on behalf of your user. In order to use OAuth in ArcGIS you have to register your app with ArcGIS and provide a redirect URL. The demo included authentication against a federated Portal integrated with Active Directory. We learned about Application Authorization as well and were reminded that App Authentication will only provide read only access to data. There have been some recent fixes to the ArcGIS Resource Proxy available on Github. For more information and before you tackle this yourself, be sure to read through the authentication articles on the ArcGIS for Developers site.

ArcGIS API for JavaScript: Tips and Tricks for Developing and Debugging Apps - Kelly Hutchins & Matt Priour

This session began with a comparison of IDE’s of choice including the ‘thick’ (WebStorm, Visual Studio) and the ‘thin’ (Sublime, Brackets). We were encouraged to use linters, beautifiers, and minifiers and to run them automatically using Grunt or Gulp. We spent a lot of time in the Chrome Dev Tools environment using the console and network viewer as well as the style editor for playing with your DOM output. We took a look at some common errors that are cryptic and hard to debug such as trailing commas. We learned how to ‘pretty print’ minified files. We also saw how all of this can be done on your phone as well when you install dev tools on it. Most of this was a review for me but it was nice to confirm that I’m doing everything I can. I did learn a new trick where Chrome can emulate the size of a device such as a smartphone.

Return of Killer Apps: Buggier, Bolder, Bitter - Mansour Raad & Sajit Thomas

I probably could have learned more in another session but would have missed out on a lot of entertainment. This year marked the third presentation of the Killer Apps session with its sarcastic and over the top humor which has developed a sort of nerd cult following. In this session we saw 4 demos played as a parody against four major Hollywood movies. The idea is that we need to build bolder apps and last year we failed so this year we’re going to Hollywood because that is where dreams come true. My favorite was ‘Ironic Man’ (a play on Iron Man). In this demo Masour was given an iPhone heart to help him with the ladies while he was on a date. Mansour is apparently ironic because he is tough on the outside but romantic on the inside.