- Node supports ES2015
npm install arcgis-node
- Use Postman to check API's (free)
Douglas Crockford: JavaScript the Good Parts
- new good parts in ES6
- 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
- function: (name) => {id: name} "fart" operator, syntactic ambigouity, gives 'undefined'
class
is only syntactic sugar, doesn't work well, distraction from functional style
Object.create
not necessary, usenew
- don't use
this.
(?), security problem, ADSafe.org - don't use
null
(null
andundefined
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)
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
- int creates overflow errors
- JavaScript use double, unfortunately false type
DEC64 Number proposal Number = Coefficient * 10 ^ Exponent
dec64.com => https://github.com/douglasscrockford/DEC64/
-
frameworks provide some architecture
-
architecture insulation strategy
-
Modularity
-
Testability
-
Separability (every piece should do one thing)
- ESRI dev slack channel
- http://esri.github.io/esri-leaflet/
- 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