Talk

2014 Esri International Developer Summit (Day 3 Recap)

dodgeball 2014

Day three’s events at the 2014 Esri International Developer Summit were jam-packed with all kinds of great takeaways…not to mention some dodge ball fun. Here’s a recap from our developers and architects who are attending: Jamie Phillips, Jeff Galang, Pete Mahoney, David Marley, Ryan Taylor, Jason Worrel, and Alan Fitzgerald.

Psst…We’re hiring Geospatial Developers! Check it out and pass it along to anyone you know who might be interested in coming to work with us.

Jeff

Yesterday I was really excited about the keynote and hearing a bit about how Esri and Open Source can play nicely together. It’s been a question many have asked over the years and GitHub’s CEO put everything in perspective. Chris Wanstrath was great to listen to and I finally have a good grasp on the business model that can make it work. GitHub, in particular, is about collaboration and their model provides enterprises a workflow that allows for a mixed mode of software development. “GitHub is no longer about Git, it’s about the hub” – C. Wanstrath. Here are some sessions I attended:

Write Responsive, Cross-Browser CSS Faster with SASS and Compass (Patrick Arlt) – Although I have experience using CSS preprocessors, I typically use LESS and was interested in seeing a different tool at work. SASS is very much like LESS with a couple notable improvements:

  1. There is an $extend directive that essentially provides inheritance while removing duplicated code. With LESS, the same functionality would result in many lines of extra code;
  2. An alternative mixing methodology (using $content) allows for entire blocks of CSS to be provided as input parameters rather than just specific rules.

Additionally, Esri uses an in-house SASS framework for the developers.arcgis.com site. A new (for me at least) tool/site for immediate SASS compilation (good for playing around) is Sassmeister.com

Optimizing Your JavaScript App for Performance (Derek Swingley, Jeremy Bartley) – Easily one of my favorite sessions of the day, the JavaScript Web Optimizer is a new website that Esri will be deploying in the next couple of weeks that provides a way to create a custom build of the JSAPI, including any custom modules you may have. Traditionally, the JSAPI provides sites with many extra AMD modules that may or may not be used. These modules increase the number of requests a site must make and, ultimately, reduce the performance of your application. The Optimizer allows you to choose the modules you want and create a custom build that can be downloaded or published to Esri ’s CDN.

A couple of extra features coming in the next release of the JSAPI are the ability to return a single extent of queried features and support for paging through the use of two new parameters: a return offset (e.g. skip) and a return count (e.g. take).

Demystifying the Dojo Build System (Scott Davis) – The only user session I’ve attended throughout the conference, this session directly followed the Optimizer session so it was a great comparison of building your application yourself versus using the Optimizer. Ultimately, I think the Optimizer will be the best choice moving forward unless you need complete control of the build. A nice little tidbit from this session is an undocumented JSAPI build that can be found here. Use this to download the JSAPI modules for use in your own build.

Testing Tools and Patterns for JavaScript Mapping Applications (Dave Bouwman, David Spriggs, Todd Wayson) – Dave never disappoints and this session was a popular one. Dave provided some high-level ‘zen’ about unit testing in JavaScript with the key point being that writing tests can help drive good application architecture. Not a new concept but an important one.

Some of the key tools/frameworks demoed were Jasmine and Intern as test runners and Karma and Grunt for automation. For more detailed information on some of Dave’s automated unit tests in JavaScript see his post here.

Pete

Today kicked off with a keynote from GitHub founder Chris Wanstrath – a developer just like the rest of us who made it big with a cool idea. I think it inspired us all to realize the potential of people helping people. He told the story of how GitHub was really first conceived as a way to make sharing code less of a “pain in the ass”. It turned out to be a revolution, something that grew far bigger than they’d first imagined. Chris took us through the evolution of the concept of ‘forking’. That it originally was seen as ‘breaking away’ out of anger but really it’s evolved into forking out of ‘love’ (lots of great jokes like this) as really it’s just an avenue for people to improve the code without permission – really it’s their own motivation to help themselves and help you – it’s easier for them to have you accept their fork back (pull request) as it’ll will then be included in the main release. I loved the philosophy of people helping people without management getting in the way. I also loved the challenge to those who would keep code out of the public domain. Here he suggested that we all should keep our ‘secret sauce’ but open up to the idea that the rest of our stuff, really the most of our stuff, can be improved if we just set it free in the public domain. Here are some sessions I went to:

Blister—Building a NodeJS API/Framework for Enabling Killer Apps (David Spriggs, Gavin Rehkemper) – A Node JS Framework for creating end-to-end application platform APIs for ArcGIS Server. Check out the code here. In this demo, David and Gavin demonstrated how they used Blister as a gateway to ArcGIS Server. For me the most compelling ability demonstrated here was the ability to manage authentication from a config file. Specifically you could allow authentication with OAuth through social sites (log in with Facebook, Twitter, etc.) to ArcGIS Online. The demo showed how you could implement row level security to a feature layer based on authentication – it was a Cookie Tracker; a way for girl scouts to see what houses they needed to deliver cookies to. Of course all girl scouts have a twitter account :)

Customizing and Extending the ArcGIS WebApp Builder (Julie Powell, Moxie Zhang) – I caught the tail end of this talk but was glad to find a seat – it was packed – lots of folks recognize the power of this new slick tool. Earlier in the day, Jeff Galang, Dave Marley and I all agreed that the power of an app builder is only as good as the ability to extend it – and Esri seems to really recognize this. So Esri has delivered, there’s really no limit to what you as a developer could do to make this work for your clients. Keep in mind the business case here though, your not building an app, you are building a way for others to build custom apps in a friendly UI. Kind of a different ball of wax – only applicable if you envision it being used more than once.

Latest Innovations from Esri’s Applications Prototype Lab (Bob Gerlt, Carol Sousa, Dave Johnson, Hugh Keegan, John Grayson, Lenny Kneller, Mark Deaton, Mark Smith, Richie Carmichael, Sathya Prasa) – If I worked at Esri, this is the stuff I’d love to do – come up with new applications that leverage the ArcGIS foundation. How about snapping a few pics of your vacation of field visit with your iPhone, adding some information and loading up to create a story map in just a few clicks? How about a using ArcGIS Online to store all the information for a disaster briefing book and then publishing an interactive book with interactive maps? The list goes on and on. We saw maybe 20-30 of these kinds of ideas. Viewing credit usage in ArcGIS online, practical important, likely to see it in the future. Ability to bulk edit metadata tags – so much easier than one by one. Ever create a web map? Yeah it’s a lot of work! How would it be to just click a button in ArcMap and have all your data published to ArcGIS Server AND a web map created complete with bookmarks and everything? One click? Yes there’s lots of ways to make this ArcGIS stuff easier to use, flashier, and these guys are thinking of it. Fun stuff.

Introduction to ArcGIS API for JavaScript (Derek Swingley, Andy Gup) – This was great for me. As I’ve mentioned in previous blog posts, I’m dedicated to getting as much as I can at this conference about the ArcGIS API for JavaScript. For me, I enjoy revisiting basic concepts and this class hit the spot, especially after trying to grasp high-level topics earlier in the week in sessions dealing with JavaScript frameworks. This talk covered the history of the API, how to build a simple app, development environment setup, how to use layers and widgets, styling graphics, latest new tech and tips and tricks for debugging. Really all of this stuff can be found here but it was great to get a personal tour.

Today’s report wouldn’t be complete without a note about the valiant efforts on the dodge ball court. I’m proud to report that both GISi teams made it into the 2nd round. We’ll have to change our name from gone in 60 seconds to gone in 120 seconds.

Ryan

My goal yesterday was to dive deeper into JavaScript…deeper than I ever had before. Coming from nearly zero JavaScript experience this was not too difficult…but I wanted to understand how all the pieces we were hearing about in the sessions fit together to make a large, sustainable, JavaScript based application. The sessions were great but they weren’t really tying all the pieces together for me.

Fortunately, Dave and I were able to get some face time with Derek Swingley. He gave us an excellent tour of a real world application built using JavaScript and Dojo; using the AMD pattern and Dijits to make widgets and explaining all the pieces along the way. This really helped me to understand the bigger picture and how one might architect a large JavaScript application with an eye on testability, maintainability, and reuse.

Keynote Session (Chris Wanstrath) – The keynote speaker this year was Chris Wanstrath, CEO and co-founder of GitHub. I found the keynote interesting, funny, and entertaining, which kept my attention through the entire talk. The talk began with a bit of history as to Chris’ youth, interest in building things and eventually how GitHub came to be. I don’t think of lot of this was necessary for the keynote but it was an interesting background nonetheless.

As the talk continued, Chris’ message, initially muddy in my opinion, became clearer. Sharing code is not about the tools, the technology, or even open source. These are all just instruments that enable developers, non-developers, to share and collaborate on code and us. Sharing code is about getting your project out there for others to see, use, and improve upon. It’s people collaborating to make something that might a good idea into a great one through community involvement. By sharing your code you open it up for others to become involved. This grants you more opportunities to make it better through that community involvement. You can share code by open sourcing your contributions but you can also make it available to others in your organization. You can even mix and match. You can keep your secret sauce closed source and open source those things that really don’t give you the competitive advantage. There’s room for both open source and closed source code.

Customizing and Extending the ArcGIS WebApp Builder (Julie Powell, Moxie Zhang) – This was another great session regarding the ArcGIS WebApp Builder. This session went into detail as to how to create custom widgets, themes, and layouts, publish them to the AWAB and finally use those custom items in your AWAB app.

After this session I am even more excited about the possibilities. Given the level of customization that a developer has over the widgets, layout, and themes it really seems like we’ll be able to create what looks like unique applications, from scratch, without actually having to create these applications from scratch.

Unfortunately, AWAB can only consume portal services as it is highly reliant on a Web Map but even with that limitation there is high potential to reduce the amount of development to stand up simple to moderately complex applications. I would recommend watching the recorded session for anyone that did not have a change to see it.

Optimizing Your JavaScript App for Performance (Jeremy Bartley, Derek Swingley) – I actually had to leave this session early as I had a scheduled meeting to discuss some questions I had with the Esri Flex API but from what I saw this was going to be another good session.

They started off by showing you how use the Chrome developer tools to see your server requests, including their number, download size, and download time. It was a quick and simple way to “profile” your application.

Following that there was a demonstration of the Esri Web Optimizer. This is an online tool, created by Esri, whereby you upload your JavaScript application so that the contents may be analyzed for the packages and modules that you use. The result of this process being a download containing version of your application that has been reduced in the total number of files and overall download size. The effect is an application that loads and responds to the user faster.

Bye-bye Flex. What to Consider When You Switch from Flex to HTML5/JavaScript for Web Application Development (User Session) – This was another session I was not able to complete as I had another scheduled meeting, however I managed to attend about have of this session. This was, in my opinion, what the Transitioning to JavaScript session should have been more about.

As it was a user session, the speaker was presenting his real world experience in transitioning his existing Flex (or Silverlight) applications in to JavaScript. There were some key points such as:

  • Don’t try to recreate a desktop like experience
  • Don’t overload your ‘page’ with unnecessary functionality
  • You a map only if it is truly necessary
  • Don’t attempt to make the application work 100% on all browsers

However, one tip I heard was one that I expected to hear in the Transitioning to JavaScript session but didn’t: Abstract your business logic to [web] services. This seems like the single most important thing you can do to help transition from an existing Flex based application to JavaScript based one. The more business logic you have wrapped up in your client side code the more you are going to need to rewrite and if you have to rewrite your Flex based application into a JavaScript based one you may as well take the opportunity to port the business logic to a services oriented application as well. I know the day is coming where my large Flex based application will need to be rewritten in JavaScript so we are starting to move our client side business logic into web services now, even the transition for us is likely 1.5+ years away.

David

Yesterday I was looking forward to the Keynote speaker – Chris Wanstrath, the CEO and cofounder of GitHub. His talk was entertaining, thought-provoking and inspiring in many ways. And of course, it was Wednesday, which meant Dev Summit Party and Dodge ball! I attended fewer technical sessions as I had meetings with various Esri staff. Here are summaries of the sessions I did attend:

Customizing and Extending the ArcGIS WebApp Builder (Julie Powell, Moxie Zhang) – This was the second session offered on the ArcGIS JavaScript WebApp Builder, and went into more detail about customizing the web apps with themes and widgets. The presenters also discussed the architecture and design principles of the Builder itself as well as the web apps it generates. The overarching design goal was simplicity. For example, the developers of the Builder intentionally did not use any 3rd party libraries other than Dojo. The web apps and widgets are pure HTML/JavaScript/CSS and Dojo.

Responsive design is another key design principle incorporated in to the web apps created by the WebApp Builder. I have heard some people criticize Dojo as making it difficult to create an app that adheres to responsive design principles, but from what I’ve seen and heard here at the Summit, that doesn’t necessarily seem to be the case.

The presenters noted that the widget model used in the ArcGIS WebApp Builder is very similar to the one used in the Flex Viewer. In fact, many of the developers on the team building the JavaScript version were also on the Flex team. So for Flex developers migrating to JavaScript, this widget model should seem very familiar.

Optimizing Your JavaScript App for Performance (Derek Swingley, Jeremy Bartley) – In the first half of this session Derek Swingley provided an overview of the new JavaScript API Web Optimizer. This optimizer can be used to create a specific build of the JavaScript API that includes only the modules of the API that you actually use in your application. This can greatly reduce the size of the JS file you need to download to utilize the API. Basically you point the optimizer at your site and it combs through the code to determine exactly which parts of the API you reference. This is a better approach than the previous ‘lightweight’ alternative, which was to use the JS API ‘Compact Build’. This is a build that Esri provides for use in very simple web applications, and excludes many of the modules within the API. However, if your application evolves and becomes more complex, you will incur the extra overhead of having to download those extra modules. In contrast, the optimizer generates a more compact build that is tailored to exactly what you need. If you add more features to your site, simply rerun the optimizer and it will generate a new build for you.

In the second half of the session Jeremy Bartley discussed other factors beyond JavaScript that can be optimized. I was not able to stay for this part of the session, but if this is a topic of interest to you, you can check out the slides and/or recording of the session when it becomes available.

Advanced Web Visualization of BigData (Mansour Raad, Sajit Thomas) – I don’t really work a lot with “big data” but I just had to get my annual fix of Mansour Raad so I attended this talk. Mansour is off-the-chart smart. His presentations are always informative, highly entertaining, and his enthusiasm for GIS technology and analysis is positively infectious. He really gets you thinking and psyched up about the possibilities of GIS.

Mansour talked about and demonstrated the use of Hadoop for doing analysis of big data (billions of data points) and then utilizing ArcGIS to visualize that data. Hadoop is a platform for distributed parallel processing of data on multiple processors, and has become the default way to work with big data. In Mansour’s case, he was performing cell density analysis and used Hadoop to aggregate billions of points into grid cells of a more manageable size, which he then imported into ArcMap for visualization. (To clarify, for the demos in the session, he ran the process from virtual machines on his mac and used a much smaller dataset.) A lot more detail (as well as the source code) can be found on his blog, Thunderhead Explorer.

Then after some good-natured joking about Mansour using ArcGIS Desktop (Desktop technology? How old school!), Sagit Thomas showed how he used ArcGIS WebApp Builder to display the data on the web using very beautiful and simple JavaScript web mapping applications. Check out the dynamic symbology and overall clean look of these sites:

Sagit showed how he created the dynamic symbols by extending standard symbols from the JavaScript API. The source code can be obtained from the links above, and will eventually be on GitHub.

Overall I left today feeling more comfortable about the transition from Flex development to HTML/JavaScript development that is inevitable sometime in the next couple of years. I am also a little sore, and a bit scraped up, from some rousing games of dodge ball!

Jason

Yesterday I was excited to listen to the keynote speaker, Chris Wanstrath. He gave a really powerful speech on the power of open-source. A big focus was how it is mainly about collaboration and continuous improvement. What I took away was that a programmer can use open source to share their ideas and help build upon other’s ideas and a business can use open-source in order to get community interested and also allow the community to improve the tools on top of their proprietary software. Esri seems to be following this practice with their focus on all the open source projects.

Building 3D Web Applications with ArcGIS (Moxie Zhang and Javier Llorente) – In this session, we got a sneak peek and demo of the coming 3D applications for the JavaScript API. The map and layer models have now been changed to view ports and layer view objects to allow for switching between 2d and 3d. The new scene service is capable of delivering 3d mesh, line, points and polygons straight to your browser to render.

Big Data Visualization (Mansour Raad and Sajit Thomas) – Mansour was an excellent presenter and the demo and tech talk was impressive. He was able to handle big data very easily, and then showed the code behind. The major component was utilizing Hadoop with other utilities to help process the data with the MapReduce method. Sajit then showed off some impressive visualization on the web, including a 3D app that easily visualized the processed data.

Building Native Applications with ArcGIS API for Javascript Using PhoneGap and JQuery (Andy Gup and Lloyd Heberlie) – In this technical session, I learned a lot about PhoneGap and how it can create native apps on multiple devices. The architecture behind this process is essentially presenting a browser wrapped in a native app, using plugins to access the device functionality. While, it can be a bit slower than a native app, the ability to deploy to multiple device types is a definite plus. Also, I was impressed with the ability to debug directly on the device using Chrome Canary.

Developing Custom JavaScript Applications with ArcGIS Online and Portal (Kelly Hutchins, Julie Powell, and Matt Driscoll) – This session really showed cool ways to customize the your web apps by using the new JavaScript API to interact with ArcGIS Online and Portal. The web map itself was picked apart and I could see how it would be possible to create custom web maps on the fly. Also, the new Portal functions allow direct interaction and customization. Being able to directly query your Portal for ArcGIS server from any authorized web application really can extend GIS functionality and GIS content into your organization.

Finally, the Dev Summit Party was a blast. Between cheering and playing in the dodge ball tournament, watching everyone play gladiator and trying to knock each other down with a wrecking ball in a bouncy house, it was a great way to interact and just have some fun after a great day. This Developer Conference has really been an awesome experience and I can’t wait to start using some of the new technology I’ve seen!

Jamie

Yesterday I was very excited as it was the day of keynote and the dodge ball tournament. It was also day to get to learn more about the Runtime SDKs and the offline capabilities that will be coming in the new versions. Here are notes from the sessions I attended:

Keynote  Session (Chris Wanstrath CEO and a cofounder of Github) – In the keynote we found out how Github was founded and the idea of building a community around collaborative development.

Building WPF Apps with the new .NET ArcGIS Runtime SDK (Mike Branscomb, Antti Kajanus)

  • A lot of focus on the MVVM pattern in the new SDK.
  • There are no more click events and the click events have been replaced by touch events.
  • Routing and geocoding are extremely fast and can perform continuous routing and geocoding as you drag the destination to different locations on the map.

Accessing C Type Libraries with Python Script Tools (Bill Moreland, Jason Scheirer) – This presentation was more than just about C type libraries. Jason also discussed integration with other types of programming languages like R. Bill also discussed the direction of Python and its role going forward.  In the Plenary session it was said that “Python is the language of GIS” and future plans are what was described, I understand the statement.

Building Offline Apps with the Runtime SDKs, Part 1 and 2 (Euan Cameron, Justin Colville, Will Crick) – These sessions discussed the new offline capabilities that will be coming in the newer versions. There is going to be attachment, related tables, and versioned data support in the offline geodatabase. The sync functionality of features will be “last edit wins”.  You can sync the data from ArcGIS Server or you can load data to the device that was prepared as runtime content using ArcMap.

Alan

Yesterday the keynote speaker looked really interesting, so I was excited to hear him talk about Git. It was amazing. I learned a ton about Git and the mindset behind the open source workflow and sharing. It would be really useful to use between projects vs. just using it as a source control among the team.

I was also looking forward to learning more about Qt, seeing what’s coming down the road from Esri, and getting started with the UI and UX sessions.  And finally, I was curious to find out what the dodge ball buzz is all about, as I’ve never been to one of these before.

Latest Innovations from Esri Prototype Labs – There were demos of leap motion control of 3d maps, a demo of dynamic QR codes and some Microsoft surface tablets connected to a Wi-Fi network. You can also use multiple surfaces to simulate a shared monitor. They used little games to demo a lot of the features, which made the presentation much more interesting.

Qt and ArcGIS - Cross platform dev platform but the code is identical across platforms. This is a c++ API with QML on the top. Unfortunately, the stuff they showed in the plenary session is coming in the summer; this is the current API that they are talking about. Runtime is a family of sdks for multiple platforms. Target platforms are desktop, mobile, and embedded.

Photo Credit Esri via Flickr

Start the conversation