Skip to content

Instantly share code, notes, and snippets.

@postfalk
Last active March 11, 2016 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save postfalk/f10f801fa50534a8a6c2 to your computer and use it in GitHub Desktop.
Save postfalk/f10f801fa50534a8a6c2 to your computer and use it in GitHub Desktop.
ESRI dev 2016 notes

ESRI dev summit 2016 notes

Getting Started with the REST API and NodeJS, 3/8/2016

  • Node supports ES2015

npm install arcgis-node

  • Use Postman to check API's (free)

Keynote Session

Douglas Crockford: JavaScript the Good Parts

  • new good parts in ES6

New Good Parts

  • proper tail calls return func()
  • ellipsis
  • modules (syntax very complicated, limit to some
  • block scope, let, const
  • destructuring
  • WeakMap (complicates language, bad name, really good)
  • megastring literals, interpolation, to build Regex
  • http://jex.im/regulax visualizes Regex

Bad Parts

  • function: (name) => {id: name} "fart" operator, syntactic ambigouity, gives 'undefined'
  • class is only syntactic sugar, doesn't work well, distraction from functional style

Good Parts Reconidered

  • Object.create not necessary, use new
  • don't use this. (?), security problem, ADSafe.org
  • don't use null (null and undefined are not the same)
  • don't use falsiness, bad idea
  • don't use for use array.forEach
  • use Object.keys(object).forEach instead
  • use tail recursion instead of loops (while)

The Next Language

History, SmallTalk better designed then language C++

  • look at lambdas again, JS was first language to use them (good for distribution)

  • System languages vs. application languages

  • C dominant system language

  • application languages: Classical vs. Prototypical (JS)

  • Classification required in the Classical approach, Taxonomy

  • Prototypical much simplier: memory conservation (not relevant anymore)

  • own property different from inherited

  • retroactive heredity (dangerous, avoid)

Crockford: Class Free project-oriented programming is very good

  • Block scope, Function scope

  • Closure

  • What happens when inner function survies the outer:

  • constructing an object

https://jex.im/regulex/#!embed=false&flags=&re=^%28a|b%29*%3F%24

function constructor(spec) {
  let {member} = spec;
  let {other} = other_constructor(spec);
  let method = function() {};
  return Object.freeze({
    method,
    other
  });
}

Very modern way to construct an on object.

Data objects, Method objects

A Bug Story

  • int creates overflow errors
  • JavaScript use double, unfortunately false type

DEC64 Number proposal Number = Coefficient * 10 ^ Exponent

dec64.com => https://github.com/douglasscrockford/DEC64/

The JSON Data Interchange Format (developed by Crockford)

JavaScript App Architecture

  • frameworks provide some architecture

  • architecture insulation strategy

  • Modularity

  • Testability

  • Separability (every piece should do one thing)

ESRI Leaflet

What's new?

  • stable release 1.0.3. compatible 0.7.x
  • new Leaflet 1.0beta, rc available:
  • costum projections, flyover animation, fractional zoom level, performance improvement, new doc, plugin categories
  • esri-leaflet 2.0 correspondends 2.0.0-beta.8 some breaking changes => changelog

#ESRI Server

  • Single Cluster Mode as default in 10.4, load balancer does all the coordination work
  • Read-Only Mode, useful for change management, enforce change windows, server configuration will not change, configuration store gets cached on each machine, silo pattern, changes can still be made accross the cluster
  • Database credentials can be modified after publishing in server manager, import new SID file, can also be done in ArcMap
  • 10.4 HTTP and HTTPS as default, self-signed certificate (cruel), mixed content problem
  • Python script scans for common security best practices
  • Code can only be published by administrator (option to turn off)

###WebGIS stack, Portal, Hosting Server

  • Create or join a portal
  • Roles (custom roles) as default
  • Analytics tool in the on premises installations, also available through RestAPI and web applications, more options are similar to AGO (except data rich services such as geocoding)
  • Web App Builder integrated, new themes, new widgets
  • with ArcGIS Pro 1.2 web layers can be published directly
  • creating vector tiles

###The Road Ahead (10.5)

  • Big Data analytics, Insights, Distributed Web GIS, Scripting (Python API)
  • GeoAnalytics: Feature Analytics, ArcGIS data store, distributed computing, model builder, insights application to vizualize

###Distributed WebGIS (cloud GIS)

#Use Online Services without End-user Login with Resource-Proxy

  • Open Source Project in ESRI github.com/esri/resource-proxy
  • GIS Online hosted version, Oauth implementation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment