We are the music makers and we are the dreamers of dreams

28
We are the music makers and we are the dreamers of dreams. Brent Porter, TCEQ

description

Brent Porter, GIS Programmer, Texas Commission on Environmental QualityPresented at the 2011 Texas GIS Forum

Transcript of We are the music makers and we are the dreamers of dreams

Page 1: We are the music makers and we are the dreamers of dreams

We are the music makers and we are the dreamers of dreams.

Brent Porter,TCEQ

Page 2: We are the music makers and we are the dreamers of dreams

Who am I?

Programmer and GIS Administrator for ArcGIS Server and ArcSDE, TCEQ

Austin Community College Adjunct Professor

Emergency Responder Examples

- Hurricanes - Deepwater Horizon Oil Spill

Page 3: We are the music makers and we are the dreamers of dreams

A little bit more about me

Yes, I am an ESRI fanboy and unrepentant at that!

…but I am also a pragmatist and I care A LOT more for solutions that work best in a sustainable way with the least effort possible.

What? Yes I want to have my cake and eat it too

Page 4: We are the music makers and we are the dreamers of dreams

Why That Title?

Poem by Arthur O'Shaughnessy Link – the phrase in the context of my

day to day work… This exemplifies my development

philosophy Dream Big! Interesting Fun for me

Page 5: We are the music makers and we are the dreamers of dreams

Why continued…

Also, there is always someone wanting to tell me that there are NO snozzberries!

As the experts in our field, it is our job to teach those snozzberry doubters about what we are doing and why

And who doesn’t want to make music and dream big dreams?!?!

Page 6: We are the music makers and we are the dreamers of dreams

Today’s topic

Talk about how and why I made the dev choices I made with a new experimental template.

Hopefully you’ll be inspired by what I am innovating with the UI and some of the other functionality.

Deny the naysayers the satisfaction of being right!

Page 7: We are the music makers and we are the dreamers of dreams

Why Javascript?

By Steve Paine

Page 8: We are the music makers and we are the dreamers of dreams

Javascript

They are starting them young now! Really though

Mobile Development – lots of great mobile javascript library support out there

HTML 5 – browser vendors are actually in agreement. All are working towards a set of standards because of the mobile revolution.

Works with Smartphones, Desktops, Laptops, Tablets – all from a common codebase!

Page 9: We are the music makers and we are the dreamers of dreams

What Javascript?

Javascript API for ArcGIS Server/Dojo JQuery/JQuery UI & some plugins Google Maps API Geocoding Services Google Maps API Street View NodeJS Custom Javascript

Page 10: We are the music makers and we are the dreamers of dreams

JQuery/JQuery UI

JQuery is one of the big open source javascript libraries out that is getting used by lots of big companies to do great user interactions

Easy learning curve for basic functions and well documented

Page 11: We are the music makers and we are the dreamers of dreams

JQuery/JQuery UI

JQuery UI adds widgets and other skinning effects

Easy to choose one of the many themes for the look and feel of your app

Or you can create your own with the ThemeRoller!

Page 12: We are the music makers and we are the dreamers of dreams

Google Maps API Geocoder

Wait a second…ESRI Fanboy, confusion what’s going on?

I’ve spent too much time wrestling with the ESRI geocoding service I’ve even given talk here at the Conf in ’08

on it ESRI works great for basic ‘vanilla’

geocoding (simple addresses, cities) Other than this…. not so much!

Page 13: We are the music makers and we are the dreamers of dreams

Contrast this with Google’s Geocoder

Very forgiving of user input… Great for place name searches for points

of interest and intersections Research into this topic has yielding

some interesting facts They use a spatial filter to prioritize the

return results Multiple methods for searching for some of

the values (AND, @, | (pipe)

Page 14: We are the music makers and we are the dreamers of dreams

More on locators

Experiments on ESRI geocoder Lowering the Candidate Score Filter

(defaults to 80 in Javascript API) Removing the filter, adding a spatial filter

and then doing the score filter Adding in additional Place Name/Points of

Interest queries beyond the default through pattern detection

Page 15: We are the music makers and we are the dreamers of dreams

Even MORE on geocoders

Obviously there are ways of doing more sophisticated things with the esri geocoding –but lots of them have to do with having add on datasets or features and additional configurations but I ask you, Why?

The google maps api geocoder just works…given a little bit of configuration AND it is easy to integrate with arcgis server

Page 16: We are the music makers and we are the dreamers of dreams

Google Maps API Street View service

Some groups of users really like Street View Provides the ‘on the ground’ photo that is

necessary for some types of applications. It really ties the map application to any physical extension or coordination being done

Works great in conjunction with the Google Maps Geocoder

Page 17: We are the music makers and we are the dreamers of dreams

Node.js

Node.js – server side javascript. In effect, javascript that runs through a run time compiler on the server and only emits results to any clients accessing it.

Based on the concept of event driven programming

Yeah… but WHY?

Page 18: We are the music makers and we are the dreamers of dreams

Why?

Is Node.js that fabled silver bullet of programming? No But it can be very useful for a certain problem

space in application development According to a mashable.com article back in March of this

year – [Node.js] is great for event-driven low latency, concurrent apps

So… things like a massive online scrabble application! Or, a chat server for clients

Page 19: We are the music makers and we are the dreamers of dreams

Facilitating Collaboration in geospatial applications

There is a real need for a certain kind of application to enable real-timecollaboration in conjunction with a map Emergency Response Law Enforcement Outreach with particular users

Recognizing the need I set out to develop a solution we could use with Javascript

Page 20: We are the music makers and we are the dreamers of dreams

The solution

Node.js has a simple chat app/client you can make with only a minimal effort

Link to the chat server through an iframe in your javascript app and you have what we see in the demo

Page 21: We are the music makers and we are the dreamers of dreams

And on that note…

What if users wanted the ability to share a common operation picture? They already want this and there are

umpteen thousand viewers that can be used for THAT!

What about being able to share a common map view/extent and layer list in near real time (with a 3-5 second delay)?!?!

Page 22: We are the music makers and we are the dreamers of dreams

Geocollaboration Manager

We are experimenting with building a custom app that allows a single user(pc) at a time, to act as Cartographic facilitator. AND some number of clients that would see the results from the cartographic facilitator.

Let’s look at a diagram of the architecture

Page 23: We are the music makers and we are the dreamers of dreams

Flow

Page 24: We are the music makers and we are the dreamers of dreams

Geocollaboration Session Data

MAPVIEW_ID MAPVIEW_URL BASEMAP_ID MAPSCALE MAPPRJ FK_SESSION_ID FK_GROUP_ID STATUS MAPWIDTH MAPHEIGHT LAYERS_ACTIVE

347 url to rest service 23 24000 4269 1 1 Inactive 400 300 1,2,6,7348 url to rest service 4 24000 4269 1 1 Active 800 600 2,3,4,5,8

Page 25: We are the music makers and we are the dreamers of dreams

Take aways

This functionality provides a level of ‘commonality’ for purposes of collaborating without doing desktop sharing sessions that isn’t out there yet.

It is also possible to extend this so that we take those parameters stored for any particular session and create a record of the time spent in collaboration – the images are stored with the session or the url to the session. A ‘map book’ could be created and sent to the attendees.

Future research – trying to use some of the advantages of Node.js as a potential avenue for reducing the computational cost of the collaboration manager component.

Page 26: We are the music makers and we are the dreamers of dreams

So…

Remember that the technology option you choose is a consideration for successful application development

But, as technology matures and APIs and languages get better about working across differences, it isn’t the biggest consideration.

Most important to be successful is to have the right attitude…

Page 27: We are the music makers and we are the dreamers of dreams

keep asking questions! Dream bigMake music Take chances Fight the snozzberry haters

Page 28: We are the music makers and we are the dreamers of dreams

Questions?

My email at TCEQ [email protected]