SlideShare a Scribd company logo
1 of 74
Download to read offline
@PythonLinks
Green Party Maps
Christopher Lozinski
Katowice Poland
ForestWiki.com/slides
@PythonLinks
Today’s Journey
1. Why Use a Hierarchical Model?
2. Green Party Maps Application
3. This Hierarchical Model
4. About the Users Experience
5. About the Data
6. Concluding Remarks
@PythonLinks
1. Why Do Organizations
Use Hierarchy?
Basic Principal in Human Factors:
There should be no more than about 7
items in a category.
@PythonLinks
Not just Organizations use
Hierarchy
@PythonLinks
JSON SCHEMA
1. CREATE
JSON SCHEMA
2. GENERATE
CLIENT GUI
3. SUBMIT
DATA
4. VALIDATE
ON SERVER
5. UPDATE THE
DATABASE
@PythonLinks
JSON Schema
●
{
●
"title": "Connect",
●
"basicCategoryTitle": "Main",
●
"type": "object",
●
"properties": {
●
"remoteURL": {
●
"title": "Their Web Site",
●
"$ref": "#/definitions/url"
●
},
●
"twitterId": {
●
"title": "Twitter Id",
●
"type": "string",
●
"description": "Just the Id. No @ sign."
●
},
●
"facebookPage": {
●
"title": "FaceBook page URL" ,
●
"$ref": "#/definitions/url"
●
},
●
"facebookGroup": {
●
"title": "FaceBook Group URL",
●
"$ref": "#/definitions/url"
●
●
}
●
●
}
@PythonLinks
Application
Maps
Directory
Instant (Backup) WebSites
News
Recommended Voting Lists
CMS
Discord
Translations
Facebook/Twiter Integration
@PythonLinks
3. The Hierarchical Model
A lot of these ideas come from
the Plone Community.
@PythonLinks
Traversal
/
/map
/Map/california
/map/california/santa-clara
@PythonLinks
Traversal
/
/map
/Map/california
/map/california/santa-clara
@PythonLinks
Traversal
/
/map
/Map/california
/map/california/santa-clara
@PythonLinks
/
/map
/map/california
/map/california/santa-clara
@PythonLinks
Traversal
/
/map
/Map/california
/map/california/santa-clara
@PythonLinks
Canonical URL’s
Make this a Graph Database
/
/map
/california
/santa-clara
@PythonLinks
Canonical URL’s
Make this a Graph Database
/
/map
/california
/santa-clara
@PythonLinks
Canonical URL’s
Make this a Graph Database
/
/map
/california
/santa-clara
@PythonLinks
Canonical URL’s
Make this a Graph Database
/
/map
/california
/santa-clara
@PythonLinks
Pyramid’s Views On Objects
@PythonLinks
Pyramid’s Views On Objects
@PythonLinks
Pyramid’s Views On Objects
@PythonLinks
Pyramid’s Views On Objects
@PythonLinks
Pyramid’s Views On Objects
@PythonLinks
The Hierarchical Model
1 Root
2 Green Party of the US Presidential and
VP Candidates
3 State Party Governors and
Senators
4 Local Party/County All other Candidates
@PythonLinks
The Hierarchical Model
1
2 Green Party of the US Presidential and
VP Candidates
3
4
@PythonLinks
The Hierarchical Model
1
2
3 State Party Governors and
Senators
4
@PythonLinks
The Hierarchical Model
1
2
3 Governors and
Senators
4 Local Party/County All other Candidates
@PythonLinks
One More Level in the Hierarchy
Introduction Connect Candidate Info Elected Official Party Officer Volunteer
@PythonLinks
Hierarchical Instant Backup
Web Sites
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
4. The Users
The Data is Hand Curated
Here is our Data Curation Team.
Even the crawled data is hand curated!
@PythonLinks
The Data is Useful
@PythonLinks
The Data is Loved
Me: What do you think about this project?
Alex Noyle, Project Manager: “I am ecstatic!”
Holly Hart, Green Party US CCC Co-Chair:
“The CCC really likes this.”
Lots of other people love what we are doing.
@PythonLinks
And People Are Upset if it is Wrong.
@PythonLinks
Data Entry is Labour Intensive
You need lots of volunteers
Generate good jobs for people
@PythonLinks
Data Entry is Managed #1
The Project Manager
tracked each state as it
was completed.
@PythonLinks
Data Entry is Managed #2
@PythonLinks
5. About The Data
The Data is Low Noise
●
The data is hand curated.
●
Users give feedback.
●
Higher Signal To Noise Views.
1) State Views
2) Parties or Candidates
3) Filters
@PythonLinks
5. About The Data
The Data is Low Noise
●
The data is hand curated.
●
Users give feedback.
●
Higher Signal To Noise Views.
1) State Views
2) Parties or Candidates
3) Filters
@PythonLinks
5. About The Data
The Data is Low Noise
●
The data is hand curated.
●
Users give feedback.
●
Higher Signal To Noise Views.
1) State Views
2) Parties or Candidates
3) Filters
@PythonLinks
The Data is Small
●
Not Counting Images
●
10.5 MegaBytes
●
Fits on a 1988 Floptical
@PythonLinks
The Data is Fast
●
Because
everything can
be cached in
memory
@PythonLinks
Green Maps Needs a Small Server
●
4GB RAM
●
80GB Disk
●
2 CPUs
●
Just $20 a month.
@PythonLinks
The code is Small
●
Not Counting 55 3rd Party Libraries
●
Only 12K lines of Python code.
●
Massive Code Reuse!
@PythonLinks
Small Software Team
●
Project was
done by 1
Developer
@PythonLinks
Green Maps Supports Multiple
Applications
Maps
Directory
Instant (Backup) WebSites
News
Recommended Voting Lists
CMS
Discord
Translations
Interfaces
@PythonLinks
6. Concluding Remarks
Data Science
@PythonLinks
Software Tools
Past Present Future
Storage File System File System +
Object Database
CMS Plone ForestWiki.com Forest CMS
Language Objective-C
Python
Python
Ruby
Python, Ruby
Maybe Julia
Database Persistent Python
ZODB
Persistent Python
ZODB
Distributed
Persistent Python
or RelStorage
Templating Chameleon
Page Templates
Chameleon
Pug
Chameleon
Pug, Jinja2
Web Framework Cromlech
Dolmen
Zopache
Cromlech
Dolmen
Zopache
@PythonLinks
BTree Images
/SocialMediaImage/400W
/SocialMediaImage/200W
/SocialMediaImage/400W
/SocialMediaImage/100W
/SocialMediaImage
The Thumbnails create themselves
the first time they are accessed.
@PythonLinks
JSON Schema
●
{
●
"title": "Connect",
●
"basicCategoryTitle": "Main",
●
"type": "object",
●
"properties": {
●
"remoteURL": {
●
"title": "Their Web Site",
●
"$ref": "#/definitions/url"
●
},
●
"twitterId": {
●
"title": "Twitter Id",
●
"type": "string",
●
"description": "Just the Id. No @ sign."
●
},
●
"facebookPage": {
●
"title": "FaceBook page URL" ,
●
"$ref": "#/definitions/url"
●
},
●
"facebookGroup": {
●
"title": "FaceBook Group URL",
●
"$ref": "#/definitions/url"
●
●
}
●
●
}
@PythonLinks
Links
●
Twitter: @PythonLinks
●
Map.Howie2020.Tech
●
ForestWiki.com/slides
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File
@PythonLinks
Small
Data
Needs
a
Rich
Data
Model
CONTENT YPES MAP TYPES TEMPLATES ADVANCED
WYSIWYG Page Google Map Folder Coffeescript
Markdown Page Open Street Map HTML Pug
Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder
Link Organization SecureHTML PythonScript
YouTube Video Politician CSS + CSSFolder Python + PyoFolder
Online Event Company Javascript +
Javascript Folder
Transcrypt +
TranFolder
Online Organization Locatioon BTreeImage +
Thumbnails
JSON
Logo Map Organization
Banner Event
File

More Related Content

Similar to Green Party Maps

DevTalks Keynote Powering interactive data analysis with Google BigQuery
DevTalks Keynote Powering interactive data analysis with Google BigQueryDevTalks Keynote Powering interactive data analysis with Google BigQuery
DevTalks Keynote Powering interactive data analysis with Google BigQuery
Márton Kodok
 
Google+ platform (9-15-2011)
Google+ platform (9-15-2011)Google+ platform (9-15-2011)
Google+ platform (9-15-2011)
brada
 

Similar to Green Party Maps (20)

Semantic Optimization with Structured Data - SMX Munich
Semantic Optimization with Structured Data - SMX MunichSemantic Optimization with Structured Data - SMX Munich
Semantic Optimization with Structured Data - SMX Munich
 
Making advanced analytics accessible to more companies
Making advanced analytics accessible to more companiesMaking advanced analytics accessible to more companies
Making advanced analytics accessible to more companies
 
DevFest Taipei - Advanced Ticketing System.pdf
DevFest Taipei - Advanced Ticketing System.pdfDevFest Taipei - Advanced Ticketing System.pdf
DevFest Taipei - Advanced Ticketing System.pdf
 
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQueryCodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
 
David Lockie 'Using Open Source to Speed Up your Roadmap' BrightonSEO 2017
David Lockie 'Using Open Source to Speed Up your Roadmap' BrightonSEO 2017David Lockie 'Using Open Source to Speed Up your Roadmap' BrightonSEO 2017
David Lockie 'Using Open Source to Speed Up your Roadmap' BrightonSEO 2017
 
Rich Snippets چیست ؟نسخه PDF
Rich Snippets چیست ؟نسخه PDFRich Snippets چیست ؟نسخه PDF
Rich Snippets چیست ؟نسخه PDF
 
Null 1
Null 1Null 1
Null 1
 
Voxxed Days Cluj - Powering interactive data analysis with Google BigQuery
Voxxed Days Cluj - Powering interactive data analysis with Google BigQueryVoxxed Days Cluj - Powering interactive data analysis with Google BigQuery
Voxxed Days Cluj - Powering interactive data analysis with Google BigQuery
 
DevTalks Keynote Powering interactive data analysis with Google BigQuery
DevTalks Keynote Powering interactive data analysis with Google BigQueryDevTalks Keynote Powering interactive data analysis with Google BigQuery
DevTalks Keynote Powering interactive data analysis with Google BigQuery
 
Google+ platform (9-15-2011)
Google+ platform (9-15-2011)Google+ platform (9-15-2011)
Google+ platform (9-15-2011)
 
An indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
An indepth look at Google BigQuery Architecture by Felipe Hoffa of GoogleAn indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
An indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
 
Martha van Berkel — Schema Markup Explained: 10 Complicated Concepts Made Sim...
Martha van Berkel — Schema Markup Explained: 10 Complicated Concepts Made Sim...Martha van Berkel — Schema Markup Explained: 10 Complicated Concepts Made Sim...
Martha van Berkel — Schema Markup Explained: 10 Complicated Concepts Made Sim...
 
Hacking the Google Snippet - Digpen 7 workshop
Hacking the Google Snippet - Digpen 7 workshopHacking the Google Snippet - Digpen 7 workshop
Hacking the Google Snippet - Digpen 7 workshop
 
Harnessing the Power of the Web via R Clients for Web APIs
Harnessing the Power of the Web via R Clients for Web APIsHarnessing the Power of the Web via R Clients for Web APIs
Harnessing the Power of the Web via R Clients for Web APIs
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
SEO 101: Tips and Tricks for Search
SEO 101: Tips and Tricks for SearchSEO 101: Tips and Tricks for Search
SEO 101: Tips and Tricks for Search
 
Pinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at PinterestPinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at Pinterest
 
Abusing Google Apps and Data API: Google is My Command and Control Center
Abusing Google Apps and Data API: Google is My Command and Control CenterAbusing Google Apps and Data API: Google is My Command and Control Center
Abusing Google Apps and Data API: Google is My Command and Control Center
 
Google Cloud Connect Korea - Sep 2017
Google Cloud Connect Korea - Sep 2017Google Cloud Connect Korea - Sep 2017
Google Cloud Connect Korea - Sep 2017
 
Digital Analytic & SEO Acceleration
Digital Analytic & SEO AccelerationDigital Analytic & SEO Acceleration
Digital Analytic & SEO Acceleration
 

More from PloneFoundation

More from PloneFoundation (14)

Form Block / Formbuilder
Form Block / FormbuilderForm Block / Formbuilder
Form Block / Formbuilder
 
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI server
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI serverPyruvate, a reasonably fast, non-blocking, multithreaded WSGI server
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI server
 
Améliorer la gouvernance et la gestion interne de la ville avec Plone
Améliorer la gouvernance et la gestion interne de la ville avec PloneAméliorer la gouvernance et la gestion interne de la ville avec Plone
Améliorer la gouvernance et la gestion interne de la ville avec Plone
 
Running Plone on AWS
Running Plone on AWSRunning Plone on AWS
Running Plone on AWS
 
State of Plone 4 and 5
State of Plone 4 and 5State of Plone 4 and 5
State of Plone 4 and 5
 
State of Plone 2020
State of Plone 2020State of Plone 2020
State of Plone 2020
 
Plone 6 Theming based on Barceloneta LTS
Plone 6 Theming based on Barceloneta LTSPlone 6 Theming based on Barceloneta LTS
Plone 6 Theming based on Barceloneta LTS
 
Modernize Plone's Classic UI
Modernize Plone's Classic UIModernize Plone's Classic UI
Modernize Plone's Classic UI
 
Volto: A Journey towards Personalization
Volto: A Journey towards PersonalizationVolto: A Journey towards Personalization
Volto: A Journey towards Personalization
 
Bundle Splitting in Volto
Bundle Splitting in VoltoBundle Splitting in Volto
Bundle Splitting in Volto
 
Asking questions for the benefit of your future self - Growing with the Plone...
Asking questions for the benefit of your future self - Growing with the Plone...Asking questions for the benefit of your future self - Growing with the Plone...
Asking questions for the benefit of your future self - Growing with the Plone...
 
The State of Pillow
The State of PillowThe State of Pillow
The State of Pillow
 
Pyramid and the Pylons Project in the wild
Pyramid and the Pylons Project in the wildPyramid and the Pylons Project in the wild
Pyramid and the Pylons Project in the wild
 
Questions
QuestionsQuestions
Questions
 

Recently uploaded

Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

微信号购买
微信号购买微信号购买
微信号购买
 
Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmux
 
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
 
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
 
GraphSummit Milan - Neo4j: The Art of the Possible with Graph
GraphSummit Milan - Neo4j: The Art of the Possible with GraphGraphSummit Milan - Neo4j: The Art of the Possible with Graph
GraphSummit Milan - Neo4j: The Art of the Possible with Graph
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
 

Green Party Maps

  • 1. @PythonLinks Green Party Maps Christopher Lozinski Katowice Poland ForestWiki.com/slides
  • 2. @PythonLinks Today’s Journey 1. Why Use a Hierarchical Model? 2. Green Party Maps Application 3. This Hierarchical Model 4. About the Users Experience 5. About the Data 6. Concluding Remarks
  • 3. @PythonLinks 1. Why Do Organizations Use Hierarchy? Basic Principal in Human Factors: There should be no more than about 7 items in a category.
  • 5. @PythonLinks JSON SCHEMA 1. CREATE JSON SCHEMA 2. GENERATE CLIENT GUI 3. SUBMIT DATA 4. VALIDATE ON SERVER 5. UPDATE THE DATABASE
  • 6. @PythonLinks JSON Schema ● { ● "title": "Connect", ● "basicCategoryTitle": "Main", ● "type": "object", ● "properties": { ● "remoteURL": { ● "title": "Their Web Site", ● "$ref": "#/definitions/url" ● }, ● "twitterId": { ● "title": "Twitter Id", ● "type": "string", ● "description": "Just the Id. No @ sign." ● }, ● "facebookPage": { ● "title": "FaceBook page URL" , ● "$ref": "#/definitions/url" ● }, ● "facebookGroup": { ● "title": "FaceBook Group URL", ● "$ref": "#/definitions/url" ● ● } ● ● }
  • 7. @PythonLinks Application Maps Directory Instant (Backup) WebSites News Recommended Voting Lists CMS Discord Translations Facebook/Twiter Integration
  • 8. @PythonLinks 3. The Hierarchical Model A lot of these ideas come from the Plone Community.
  • 14. @PythonLinks Canonical URL’s Make this a Graph Database / /map /california /santa-clara
  • 15. @PythonLinks Canonical URL’s Make this a Graph Database / /map /california /santa-clara
  • 16. @PythonLinks Canonical URL’s Make this a Graph Database / /map /california /santa-clara
  • 17. @PythonLinks Canonical URL’s Make this a Graph Database / /map /california /santa-clara
  • 23. @PythonLinks The Hierarchical Model 1 Root 2 Green Party of the US Presidential and VP Candidates 3 State Party Governors and Senators 4 Local Party/County All other Candidates
  • 24. @PythonLinks The Hierarchical Model 1 2 Green Party of the US Presidential and VP Candidates 3 4
  • 25. @PythonLinks The Hierarchical Model 1 2 3 State Party Governors and Senators 4
  • 26. @PythonLinks The Hierarchical Model 1 2 3 Governors and Senators 4 Local Party/County All other Candidates
  • 27. @PythonLinks One More Level in the Hierarchy Introduction Connect Candidate Info Elected Official Party Officer Volunteer
  • 29. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 30. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 31. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 32. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 33. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 34. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 35. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 36. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 37. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 38. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 39. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 40. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 41. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 42. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 43. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 44. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 45. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 46. @PythonLinks 4. The Users The Data is Hand Curated Here is our Data Curation Team. Even the crawled data is hand curated!
  • 48. @PythonLinks The Data is Loved Me: What do you think about this project? Alex Noyle, Project Manager: “I am ecstatic!” Holly Hart, Green Party US CCC Co-Chair: “The CCC really likes this.” Lots of other people love what we are doing.
  • 49. @PythonLinks And People Are Upset if it is Wrong.
  • 50. @PythonLinks Data Entry is Labour Intensive You need lots of volunteers Generate good jobs for people
  • 51. @PythonLinks Data Entry is Managed #1 The Project Manager tracked each state as it was completed.
  • 53. @PythonLinks 5. About The Data The Data is Low Noise ● The data is hand curated. ● Users give feedback. ● Higher Signal To Noise Views. 1) State Views 2) Parties or Candidates 3) Filters
  • 54. @PythonLinks 5. About The Data The Data is Low Noise ● The data is hand curated. ● Users give feedback. ● Higher Signal To Noise Views. 1) State Views 2) Parties or Candidates 3) Filters
  • 55. @PythonLinks 5. About The Data The Data is Low Noise ● The data is hand curated. ● Users give feedback. ● Higher Signal To Noise Views. 1) State Views 2) Parties or Candidates 3) Filters
  • 56. @PythonLinks The Data is Small ● Not Counting Images ● 10.5 MegaBytes ● Fits on a 1988 Floptical
  • 57. @PythonLinks The Data is Fast ● Because everything can be cached in memory
  • 58. @PythonLinks Green Maps Needs a Small Server ● 4GB RAM ● 80GB Disk ● 2 CPUs ● Just $20 a month.
  • 59. @PythonLinks The code is Small ● Not Counting 55 3rd Party Libraries ● Only 12K lines of Python code. ● Massive Code Reuse!
  • 61. @PythonLinks Green Maps Supports Multiple Applications Maps Directory Instant (Backup) WebSites News Recommended Voting Lists CMS Discord Translations Interfaces
  • 63. @PythonLinks Software Tools Past Present Future Storage File System File System + Object Database CMS Plone ForestWiki.com Forest CMS Language Objective-C Python Python Ruby Python, Ruby Maybe Julia Database Persistent Python ZODB Persistent Python ZODB Distributed Persistent Python or RelStorage Templating Chameleon Page Templates Chameleon Pug Chameleon Pug, Jinja2 Web Framework Cromlech Dolmen Zopache Cromlech Dolmen Zopache
  • 65. @PythonLinks JSON Schema ● { ● "title": "Connect", ● "basicCategoryTitle": "Main", ● "type": "object", ● "properties": { ● "remoteURL": { ● "title": "Their Web Site", ● "$ref": "#/definitions/url" ● }, ● "twitterId": { ● "title": "Twitter Id", ● "type": "string", ● "description": "Just the Id. No @ sign." ● }, ● "facebookPage": { ● "title": "FaceBook page URL" , ● "$ref": "#/definitions/url" ● }, ● "facebookGroup": { ● "title": "FaceBook Group URL", ● "$ref": "#/definitions/url" ● ● } ● ● }
  • 67. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 68. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 69. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 70. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 71. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 72. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 73. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File
  • 74. @PythonLinks Small Data Needs a Rich Data Model CONTENT YPES MAP TYPES TEMPLATES ADVANCED WYSIWYG Page Google Map Folder Coffeescript Markdown Page Open Street Map HTML Pug Ace HTML Page GeoJson Map AceHTML + Folder Python + PyFolder Link Organization SecureHTML PythonScript YouTube Video Politician CSS + CSSFolder Python + PyoFolder Online Event Company Javascript + Javascript Folder Transcrypt + TranFolder Online Organization Locatioon BTreeImage + Thumbnails JSON Logo Map Organization Banner Event File