2014 Esri International Developer Summit (Day 3 Recap)
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.
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:
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;
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
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.
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.
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.
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.
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.
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
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:
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.
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.
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.
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.
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!
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.
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.