1<!DOCTYPE html> 2<html lang="en-US"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Blog | Data{Meet} | DataMeet is a community of Data Science and Open Data enthusiasts.</title> 7 <link rel="profile" href="https://gmpg.org/xfn/11"> 8 <link rel="pingback" href="https://datameet.org/xmlrpc.php"> 9 <meta name='robots' content='max-image-preview:large' /> 10<link rel='dns-prefetch' href='//secure.gravatar.com' /> 11<link rel='dns-prefetch' href='//v0.wordpress.com' /> 12<link rel="alternate" type="application/rss+xml" title="Data{Meet} » Feed" href="https://datameet.org/feed/" /> 13<link rel="alternate" type="application/rss+xml" title="Data{Meet} » Comments Feed" href="https://datameet.org/comments/feed/" /> 14<style id="wp-img-auto-sizes-contain-inline-css"> 15img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 16/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 17</style> 18<link rel='stylesheet' id='twentyfourteen-jetpack-css' href='https://datameet.org/wp-content/plugins/jetpack/modules/theme-tools/compat/twentyfourteen.css?ver=16.2' media='all' /> 19<style id="wp-emoji-styles-inline-css"> 20 21 img.wp-smiley, img.emoji { 22 display: inline !important; 23 border: none !important; 24 box-shadow: none !important; 25 height: 1em !important; 26 width: 1em !important; 27 margin: 0 0.07em !important; 28 vertical-align: -0.1em !important; 29 background: none !important; 30 padding: 0 !important; 31 } 32/*# sourceURL=wp-emoji-styles-inline-css */ 33</style> 34<style id="wp-block-library-inline-css"> 35:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
35--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 36 37/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 38</style> 39<style id="classic-theme-styles-inline-css"> 40/*! This file is auto-generated */ 41.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 42/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 43</style> 44
45<style id="site-designer-shared-pattern-classes-inline-css"> 46/* Dark cover/section overlay + on-dark text. */ 47body .wp-site-blocks .is-style-overlay-dark .wp-block-cover__background { background-color: var(--wp--preset--color--base-3); color: var(--wp--preset--color--contrast-3); } 48.wp-block-cover.is-style-overlay-dark .wp-block-cover__background.has-background-dim { opacity: 0.50 !important; } 49:is(.wp-block-designsetgo-section, .wp-block-designsetgo-scroll-slides).is-style-overlay-dark { --dsgo-overlay-color: var(--wp--preset--color--base-3); --dsgo-overlay-opacity: 0.50; color: var(--wp--preset--color--contrast-3); } 50.dsgo-image-accordion-item.is-style-overlay-dark { --dsgo-overlay-color: var(--wp--preset--color--base-3); } 51.wp-block-group.has-background.is-style-overlay-dark { box-shadow: inset 0 0 0 9999px color-mix(in srgb, var(--wp--preset--color--base-3) 50%, transparent); } 52body .wp-site-blocks .is-style-overlay-dark, body .wp-site-blocks .is-style-on-dark { --dsgo-text-color: var(--wp--preset--color--contrast-3); color: var(--wp--preset--color--contrast-3) !important; } 53body .wp-site-blocks .is-style-overlay-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,cite), body .wp-site-blocks .is-style-on-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,cite) { color: var(--wp--preset--color--contrast-3) !important; } 54 55/* Solid dark section background + light text. */ 56.is-style-bg-dark { background-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); } 57.is-style-bg-dark a { color: var(--wp--preset--color--base); }
58/*# sourceURL=site-designer-shared-pattern-classes-inline-css */ 59</style> 60<style id="global-styles-inline-css"> 61:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #eaeaea;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--green: #aa0000;--wp--preset--color--dark-gray: #2b2b2b;--wp--preset--color--medium-gray: #767676;--wp--preset--color--light-gray: #f5f5f5;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
61--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-green-color{color: var(--wp--preset--color--green) !important;}.has-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-color{color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-green-background-color{background-color: var(--wp--preset--color--green) !important;}.has-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-background-color{background-color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-green-border-color{border-color: var(--wp--preset--color--green) !important;}.has-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-border-color{border-color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
61.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 62/*# sourceURL=global-styles-inline-css */ 63</style> 64 65<link rel='stylesheet' id='page-list-style-css' href='https://datameet.org/wp-content/plugins/page-list/css/page-list.css?ver=6.3' media='all' /> 66<link rel='stylesheet' id='toc-screen-css' href='https://datameet.org/wp-content/plugins/table-of-contents-plus/assets/screen.min.css?ver=202609.1' media='all' /> 67<style id="jetpack-stats-inline-css"> 68img#wpstats{display:none} 69/*# sourceURL=jetpack-stats-inline-css */ 70</style> 71<link rel='stylesheet' id='wp-theme-css' href='https://datameet.org/wp-includes/css/dist/theme/design-tokens.min.css?ver=7.1.2' media='all' /> 72<link rel='stylesheet' id='wp-components-css' href='https://datameet.org/wp-includes/css/dist/components/style.min.css?ver=7.1.2' media='all' /> 73<link rel='stylesheet' id='godaddy-styles-css' href='https://datameet.org/wp-content/mu-plugins/vendor/wpex/godaddy-launch/includes/Dependencies/GoDaddy/Styles/build/latest.css?ver=2.0.2' media='all' /> 74<link rel='stylesheet' id='twentyfourteen-lato-css' href='https://datameet.org/wp-content/themes/twentyfourteen/fonts/font-lato.css?ver=20230328' media='all' /> 75<link rel='stylesheet' id='genericons-css' href='https://datameet.org/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css?ver=3.1' media='all' /> 76<link rel='stylesheet' id='twentyfourteen-style-css' href='https://datameet.org/wp-content/themes/twentyfourteen/style.css?ver=20260819' media='all' /> 77<link rel='stylesheet' id='twentyfourteen-block-style-css' href='https://datameet.org/wp-content/themes/twentyfourteen/css/blocks.css?ver=20250715' media='all' /> 78<style id="jetpack-subscriptions-inline-css"> 79#subscribe-email input{width:95%}.comment-subscription-form{margin-bottom:1em}.comment-subscription-form .subscribe-label{display:inline!important}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal!important;padding:0;position:absolute!important;width:1px} 80/*# sourceURL=https://datameet.org/wp-content/plugins/jetpack/_inc/build/subscriptions/subscriptions.min.css */ 81</style> 82<link rel='stylesheet' id='tablepress-default-css' href='https://datameet.org/wp-content/plugins/tablepress/css/build/default.css?ver=3.4' media='all' /> 83<link rel='stylesheet' id='sharedaddy-css' href='https://datameet.org/wp-content/plugins/jetpack/modules/sharedaddy/sharing.css?ver=16.2' media='all' /> 84<link rel='stylesheet' id='social-logos-css' href='https://datameet.org/wp-content/plugins/jetpack/_inc/build/social-logos/social-logos.css?ver=16.2' media='all' />
85<script id="jquery-core-js" src="https://datameet.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 85
85
86<script id="jquery-migrate-js" src="https://datameet.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 86
86
87<script data-wp-strategy="defer" defer id="twentyfourteen-script-js" src="https://datameet.org/wp-content/themes/twentyfourteen/js/functions.js?ver=20250729"></script>
87 88<link rel="https://api.w.org/" href="https://datameet.org/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://datameet.org/xmlrpc.php?rsd" /> 89<meta name="generator" content="WordPress 7.1.2" /> 90<style id="fourteen-colors" type="text/css">/* Custom Contrast Color */ 91 .site:before, 92 #secondary, 93 .site-header, 94 .site-footer, 95 .menu-toggle, 96 .featured-content, 97 .featured-content .entry-header, 98 .slider-direction-nav a, 99 .ie8 .featured-content, 100 .ie8 .site:before { 101 background-color: #eaeaea; 102 } 103 104 .grid .featured-content .entry-header, 105 .ie8 .grid .featured-content .entry-header { 106 border-color: #eaeaea; 107 } 108 109 .slider-control-paging a:before { 110 background-color: rgba(255,255,255,.33); 111 } 112 113 .hentry .mejs-mediaelement, 114 .widget .mejs-mediaelement, 115 .hentry .mejs-container .mejs-controls, 116 .widget .mejs-container .mejs-controls { 117 background: #eaeaea; 118 } 119 120 /* Player controls need separation from the contrast background */ 121 .primary-sidebar .mejs-controls, 122 .site-footer .mejs-controls { 123 border: 1px solid; 124 } 125 126 .site-description, 127 .secondary-navigation a, 128 .widget, 129 .widget a, 130 .widget-title, 131 .widget-title a, 132 .widget_calendar caption, 133 .site-header a, 134 .site-title a, 135 .site-title a:hover, 136 .menu-toggle:before, 137 .site-footer, 138 .site-footer a, 139 .featured-content a, 140 .featured-content .entry-meta, 141 .slider-direction-nav a:before, 142 .hentry .mejs-container .mejs-controls .mejs-time span, 143 .widget .mejs-container .mejs-controls .mejs-time span, 144 .hentry .mejs-controls .mejs-button button, 145 .widget .mejs-controls .mejs-button button { 146 color: #2b2b2b; 147 } 148 149 @media screen and (min-width: 783px) { 150 .primary-navigation ul ul a { 151 color: #fff; 152 } 153 } 154 155 @media screen and (min-width: 1008px) { 156 .secondary-navigation ul ul a, 157 .secondary-navigation li:hover > a, 158 .secondary-navigation li.focus > a { 159 color: #fff; 160 } 161 } 162 163 .widget_calendar tbody a, 164 .site-footer .widget_calendar tbody a, 165 .slider-direction-nav a:hover:before { 166 color: #fff; 167 } 168 169 .slider-control-paging a:before { 170 background-color: rgba(0, 0, 0, .33); 171 } 172 173 .featured-content { 174 background-image: url(https://datameet.org/wp-content/plugins/fourteen-colors/pattern-dark-inverse.svg); 175 } 176 177 .site-navigation li, 178 #secondary, 179 .secondary-navigation, 180 .secondary-navigation li, 181 .widget table, 182 .widget th, 183 .widget td, 184 .widget_archive li, 185 .widget_categories li, 186 .widget_links li, 187 .widget_meta li, 188 .widget_nav_menu li, 189 .widget_pages li, 190 .widget_recent_comments li, 191 .widget_recent_entries li, 192 .widget_text li, 193 .widget_categories li ul, 194 .widget_nav_menu li ul, 195 .widget_pages li ul, 196 .widget_text li ul, 197 .widget abbr[title] { 198 border-color: rgba(0, 0, 0, .2); 199 } 200 201 .widget input, 202 .widget textarea { 203 background-color: rgba(0, 0, 0, .02); 204 border-color: rgba(0, 0, 0, .2); 205 color: #000; 206 } 207 208 .widget input:focus, .widget textarea:focus { 209 border-color: rgba(0, 0, 0, 0.4); 210 } 211 212 .widget_twentyfourteen_ephemera .entry-meta a { 213 color: rgba(0, 0, 0, 0.7); 214 } 215 216 .widget_twentyfourteen_ephemera > ol > li { 217 border-bottom-color: rgba(0, 0, 0, 0.2); 218 } 219 220 #supplementary + .site-info { 221 border-top: 1px solid rgba(0, 0, 0, 0.2); 222 } 223 224 .hentry .mejs-controls .mejs-time-rail .mejs-time-total, 225 .widget .mejs-controls .mejs-time-rail .mejs-time-total, 226 .hentry .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total, 227 .widget .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total { 228 background: rgba(0,0,0,.3); 229 } 230 231 .hentry .mejs-controls .mejs-time-rail .mejs-time-loaded, 232 .widget .mejs-controls .mejs-time-rail .mejs-time-loaded, 233 .hentry .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current, 234 .widget .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current { 235 background-color: #2b2b2b; 236 } 237 238 /* Override the site title color option with an over-qualified selector, as the option is hidden. */ 239 h1.site-title a { 240 color: #2b2b2b; 241 } 242 243 .menu-toggle:active, 244 .menu-toggle:focus, 245 .menu-toggle:hover { 246 background-color: #ffffff; 247 } 248 /* Custom accent color. */ 249 button, 250 .button, 251 .contributor-posts-link, 252 input[type="button"], 253 input[type="reset"], 254 input[type="submit"], 255 .search-toggle, 256 .hentry .mejs-controls .mejs-time-rail .mejs-time-current, 257 .widget .mejs-controls .mejs-time-rail .mejs-time-current, 258 .hentry .mejs-overlay:hover .mejs-overlay-button, 259 .widget .mejs-overlay:hover .mejs-overlay-button, 260 .widget button, 261 .widget .button, 262 .widget input[type="button"], 263 .widget input[type="reset"], 264 .widget input[type="submit"], 265 .widget_calendar tbody a, 266 .content-sidebar .widget input[type="button"], 267 .content-sidebar .widget input[type="reset"], 268 .content-sidebar .widget input[type="submit"], 269 .slider-control-paging .slider-active:before, 270 .slider-control-paging .slider-active:hover:before, 271 .slider-direction-nav a:hover, 272 .ie8 .primary-navigation ul ul, 273 .ie8 .secondary-navigation ul ul, 274 .ie8 .primary-navigation li:hover > a, 275 .ie8 .primary-navigation li.focus > a, 276 .ie8 .secondary-navigation li:hover > a, 277 .ie8 .secondary-navigation li.focus > a { 278 background-color: #aa0000; 279 } 280 281 .site-navigation a:hover { 282 color: #aa0000; 283 } 284 285 ::-moz-selection { 286 background: #aa0000; 287 } 288 289 ::selection { 290 background: #aa0000; 291 } 292 293 .paging-navigation .page-numbers.current { 294 border-color: #aa0000; 295 } 296 297 @media screen and (min-width: 782px) { 298 .primary-navigation li:hover > a, 299 .primary-navigation li.focus > a, 300 .primary-navigation ul ul { 301 background-color: #aa0000; 302 } 303 } 304 305 @media screen and (min-width: 1008px) { 306 .secondary-navigation li:hover > a, 307 .secondary-navigation li.focus > a, 308 .secondary-navigation ul ul { 309 background-color: #aa0000; 310 } 311 } 312 313 .contributor-posts-link, 314 button, 315 .button, 316 input[type="button"], 317 input[type="reset"], 318 input[type="submit"], 319 .search-toggle:before, 320 .hentry .mejs-overlay:hover .mejs-overlay-button, 321 .widget .mejs-overlay:hover .mejs-overlay-button, 322 .widget button, 323 .widget .button, 324 .widget input[type="button"], 325 .widget input[type="reset"], 326 .widget input[type="submit"], 327 .widget_calendar tbody a, 328 .widget_calendar tbody a:hover, 329 .site-footer .widget_calendar tbody a, 330 .content-sidebar .widget input[type="button"], 331 .content-sidebar .widget input[type="reset"], 332 .content-sidebar .widget input[type="submit"], 333 button:hover, 334 button:focus, 335 .button:hover, 336 .button:focus, 337 .widget a.button:hover, 338 .widget a.button:focus, 339 .widget a.button:active, 340 .content-sidebar .widget a.button, 341 .content-sidebar .widget a.button:hover, 342 .content-sidebar .widget a.button:focus, 343 .content-sidebar .widget a.button:active, 344 .contributor-posts-link:hover, 345 .contributor-posts-link:active, 346 input[type="button"]:hover, 347 input[type="button"]:focus, 348 input[type="reset"]:hover, 349 input[type="reset"]:focus, 350 input[type="submit"]:hover, 351 input[type="submit"]:focus, 352 .slider-direction-nav a:hover:before { 353 color: #fff; 354 } 355 356 @media screen and (min-width: 782px) { 357 .primary-navigation ul ul a, 358 .primary-navigation li:hover > a, 359 .primary-navigation li.focus > a, 360 .primary-navigation ul ul { 361 color: #fff; 362 } 363 } 364 365 @media screen and (min-width: 1008px) { 366 .secondary-navigation ul ul a, 367 .secondary-navigation li:hover > a, 368 .secondary-navigation li.focus > a, 369 .secondary-navigation ul ul { 370 color: #fff; 371 } 372 } 373 374 /* Generated variants of custom accent color. */ 375 a, 376 .content-sidebar .widget a { 377 color: #aa0000; 378 } 379 380 .contributor-posts-link:hover, 381 .button:hover, 382 .button:focus, 383 .slider-control-paging a:hover:before, 384 .search-toggle:hover, 385 .search-toggle.active, 386 .search-box, 387 .widget_calendar tbody a:hover, 388 button:hover, 389 button:focus, 390 input[type="button"]:hover, 391 input[type="button"]:focus, 392 input[type="reset"]:hover, 393 input[type="reset"]:focus, 394 input[type="submit"]:hover, 395 input[type="submit"]:focus, 396 .widget button:hover, 397 .widget .button:hover, 398 .widget button:focus, 399 .widget .button:focus, 400 .widget input[type="button"]:hover, 401 .widget input[type="button"]:focus, 402 .widget input[type="reset"]:hover, 403 .widget input[type="reset"]:focus, 404 .widget input[type="submit"]:hover, 405 .widget input[type="submit"]:focus, 406 .content-sidebar .widget input[type="button"]:hover, 407 .content-sidebar .widget input[type="button"]:focus, 408 .content-sidebar .widget input[type="reset"]:hover, 409 .content-sidebar .widget input[type="reset"]:focus, 410 .content-sidebar .widget input[type="submit"]:hover, 411 .content-sidebar .widget input[type="submit"]:focus, 412 .ie8 .primary-navigation ul ul a:hover, 413 .ie8 .primary-navigation ul ul li.focus > a, 414 .ie8 .secondary-navigation ul ul a:hover, 415 .ie8 .secondary-navigation ul ul li.focus > a { 416 background-color: #c71d1d; 417 } 418 419 .featured-content a:hover, 420 .featured-content .entry-title a:hover, 421 .widget a:hover, 422 .widget-title a:hover, 423 .widget_twentyfourteen_ephemera .entry-meta a:hover, 424 .hentry .mejs-controls .mejs-button button:hover, 425 .widget .mejs-controls .mejs-button button:hover, 426 .site-info a:hover, 427 .featured-content a:hover { 428 color: #c71d1d; 429 } 430 431 a:active, 432 a:hover, 433 .entry-title a:hover, 434 .entry-meta a:hover, 435 .cat-links a:hover, 436 .entry-content .edit-link a:hover, 437 .post-navigation a:hover, 438 .image-navigation a:hover, 439 .comment-author a:hover, 440 .comment-list .pingback a:hover, 441 .comment-list .trackback a:hover, 442 .comment-metadata a:hover, 443 .comment-reply-title small a:hover, 444 .content-sidebar .widget a:hover, 445 .content-sidebar .widget .widget-title a:hover, 446 .content-sidebar .widget_twentyfourteen_ephemera .entry-meta a:hover { 447 color: #c71d1d; 448 } 449 450 .page-links a:hover, 451 .paging-navigation a:hover { 452 border-color: #c71d1d; 453 } 454 455 .entry-meta .tag-links a:hover:before { 456 border-right-color: #c71d1d; 457 } 458 459 .page-links a:hover, 460 .entry-meta .tag-links a:hover { 461 background-color: #c71d1d; 462 } 463 464 @media screen and (min-width: 782px) { 465 .primary-navigation ul ul a:hover, 466 .primary-navigation ul ul li.focus > a { 467 background-color: #c71d1d; 468 } 469 } 470 471 @media screen and (min-width: 1008px) { 472 .secondary-navigation ul ul a:hover, 473 .secondary-navigation ul ul li.focus > a { 474 background-color: #c71d1d; 475 } 476 } 477 478 button:active, 479 .button:active, 480 .contributor-posts-link:active, 481 input[type="button"]:active, 482 input[type="reset"]:active, 483 input[type="submit"]:active, 484 .widget input[type="button"]:active, 485 .widget input[type="reset"]:active, 486 .widget input[type="submit"]:active, 487 .content-sidebar .widget input[type="button"]:active, 488 .content-sidebar .widget input[type="reset"]:active, 489 .content-sidebar .widget input[type="submit"]:active { 490 background-color: #db3131; 491 } 492 493 .site-navigation .current_page_item > a, 494 .site-navigation .current_page_ancestor > a, 495 .site-navigation .current-menu-item > a, 496 .site-navigation .current-menu-ancestor > a { 497 color: #db3131; 498 } 499 </style> <style id="twentyfourteen-header-css"> 500 .site-title a { 501 color: #aa0000; 502 } 503 </style> 504 <style id="custom-background-css"> 505body.custom-background { background-color: #c6c6c6; } 506</style> 507 508<!-- Jetpack Open Graph Tags --> 509<meta property="og:type" content="website" /> 510<meta property="og:title" content="Data{Meet}" /> 511<meta property="og:description" content="DataMeet is a community of Data Science and Open Data enthusiasts." /> 512<meta property="og:url" content="https://datameet.org/blog/" /> 513<meta property="og:site_name" content="Data{Meet}" /> 514<meta property="og:image" content="https://datameet.org/wp-content/uploads/2016/08/datameet_icon_v.1.2.png" /> 515<meta property="og:image:width" content="500" /> 516<meta property="og:image:height" content="400" /> 517<meta property="og:image:alt" content="" /> 518<meta property="og:locale" content="en_US" /> 519 520<!-- End Jetpack Open Graph Tags --> 521<link rel="icon" href="https://datameet.org/wp-content/uploads/2016/08/datameet_icon_v.1.2-150x150.png" sizes="32x32" /> 522<link rel="icon" href="https://datameet.org/wp-content/uploads/2016/08/datameet_icon_v.1.2.png" sizes="192x192" /> 523<link rel="apple-touch-icon" href="https://datameet.org/wp-content/uploads/2016/08/datameet_icon_v.1.2.png" /> 524<meta name="msapplication-TileImage" content="https://datameet.org/wp-content/uploads/2016/08/datameet_icon_v.1.2.png" /> 525<style id="wp-site-designer-contrast-fallback"> .wp-block-group:not([data-dsgo-inline-bg]),.wp-block-column:not([data-dsgo-inline-bg]),.wp-block-columns:not([data-dsgo-inline-bg]){--dsgo-text-color:initial;}
525 :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover:not(.has-text-color){color:var(--wp--preset--color--contrast-3) !important;--dsgo-text-color:var(--wp--preset--color--contrast-3);} body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h1:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h2:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h3:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h4:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h5:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h6:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) p:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) .wp-element-caption:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)){color:var(--dsgo-text-color,inherit) !important;} body .wp-site-blocks :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column)[data-dsgo-inline-bg] .wp-block-button:is([class*="is-style-outline"],[class*="is-style-secondary"]) .wp-element-button{color:var(--dsgo-text-color,inherit) !important;border-color:currentColor !important;}body .wp-site-blocks :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column)[data-dsgo-inline-bg] .wp-block-button:is([class*="is-style-outline"],[class*="is-style-secondary"]) .wp-element-button:hover{opacity:0.75;} body .wp-site-blocks [data-dsgo-inline-bg] h1:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h2:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h3:not(.has-text-color):where(:not
525(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h4:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h5:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h6:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] p:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] .wp-element-caption:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)){color:var(--dsgo-text-color,inherit) !important;} .wp-block-designsetgo-section.has-background:not([data-dsgo-inline-bg]):not(.has-text-color){color:var(--wp--preset--color--contrast);--dsgo-text-color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-5);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not
525(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not
525(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-3);color:var(--wp--preset--color--accent-2);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--accent-2);} :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--contrast);color:var(--wp--preset--color--base);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not
525(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--base);} body .wp-site-blocks input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="image"]):not([type="hidden"]),body .wp-site-blocks textarea,body .wp-site-blocks select{background-color:var(--wp--preset--color--base);color:var(--wp--preset--color--contrast);border:1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);} .wp-site-blocks input[type="submit"]:not(.wp-element-button),.wp-site-blocks button[type="submit"]:not(.wp-element-button){background-color:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--base);border-width:0;padding:12px 30px;font-family:inherit;font-size:var(--wp--preset--font-size--medium, 1rem);line-height:inherit;cursor:pointer;}</style> 526 <style id="site-designer-logo-constraints"> 527 .wp-block-site-logo.is-default-size img { 528 width: auto; 529 height: auto; 530 max-width: 180px; 531 max-height: 80px; 532 } 533 .wp-block-site-logo img { 534 height: auto; 535 } 536 </style> 537 </head> 538 539<body class="blog custom-background wp-embed-responsive wp-theme-twentyfourteen group-blog masthead-fixed list-view full-width footer-widgets"> 540<a class="screen-reader-text skip-link" href="#content"> 541 Skip to content</a> 542<div id="page" class="hfeed site"> 543 544 <header id="masthead" class="site-header"> 545 <div class="header-main"> 546 <h1 class="site-title"><a href="https://datameet.org/" rel="home" >Data{Meet}</a></h1> 547 548 <div class="search-toggle"> 549 <a href="#search-container" class="screen-reader-text" aria-expanded="false" aria-controls="search-container"> 550 Search </a> 551 </div> 552 553 <nav id="primary-navigation" class="site-navigation primary-navigation"> 554 <button class="menu-toggle">Primary Menu</button> 555 <div class="menu-main_menu-container"><ul id="primary-menu" class="nav-menu"><li id="menu-item-787" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-787"><a href="https://datameet.org/about/">About</a></li> 556<li id="menu-item-1303" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1303"><a href="https://datameet.org/contact/">Contact</a></li> 557<li id="menu-item-82" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-7 current_page_item current_page_parent menu-item-82"><a href="https://datameet.org/blog/" aria-current="page">Blog</a></li> 558<li id="menu-item-1063" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1063"><a href="https://wiki.datameet.org">Wiki</a></li> 559<li id="menu-item-768" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-768"><a href="http://odc.datameet.org">Open Data Camp</a></li> 560<li id="menu-item-83" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83"><a href="https://datameet.org/discussions/">Discussions</a></li> 561</ul></div> </nav> 562 </div> 563 564 <div id="search-container" class="search-box-wrapper hide"> 565 <div class="search-box"> 566 <form role="search" method="get" class="search-form" action="https://datameet.org/"> 567 <label> 568 <span class="screen-reader-text">Search for:</span> 569 <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> 570 </label> 571 <input type="submit" class="search-submit" value="Search" /> 572 </form> </div> 573 </div> 574 </header><!-- #masthead --> 575 576 <div id="main" class="site-main"> 577
578<div id="main-content" class="main-content"> 579 580 581 <div id="primary" class="content-area"> 582 <div id="content" class="site-content" role="main"> 583 584 585<article id="post-3256" class="post-3256 post type-post status-publish format-standard has-post-thumbnail hentry category-data tag-odk"> 586 587 <a class="post-thumbnail" href="https://datameet.org/2018/07/18/odk/" aria-hidden="true"> 588 <img width="640" height="576" src="https://datameet.org/wp-content/uploads/2018/07/ODK-screenshot-640x576.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="" decoding="async" fetchpriority="high" /> </a> 589 590 591 <header class="entry-header"> 592 <div class="entry-meta"> 593 <span class="cat-links"><a href="https://datameet.org/category/data/" rel="category tag">Data</a></span> 594 </div> 595 <h1 class="entry-title"><a href="https://datameet.org/2018/07/18/odk/" rel="bookmark">Open Data Kit: for mobile based surveys, data collection</a></h1> 596 <div class="entry-meta"> 597 <span class="entry-date"><a href="https://datameet.org/2018/07/18/odk/" rel="bookmark"><time class="entry-date" datetime="2018-07-18T20:44:58+05:30">July 18, 2018</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/nikhil-js/" rel="author">Nikhil VJ</a></span></span> </div><!-- .entry-meta --> 598 </header><!-- .entry-header --> 599 600 <div class="entry-content"> 601 <p>TL;DR : Wanna survey without paperwork headache? Check out <a href="http://opendatakit.org/">ODK</a> and <a href="http://ona.io">Ona.io</a> when you get the time.</p> 602<h2>A] ODK-1</h2> 603<p>ODK or <a href="http://opendatakit.org/">Open Data Kit</a> has been an important tool that made mobile-based survey data collection with complicated forms etc possible. Their XLSForm structure where the form is created in excel (!) is arguably more feature-packed than most online survey tools, and comes somewhere between coding and non-coding. It has companion websites like <a href="http://ona.io">Ona.io</a> that take care of server-side things and enable folks to get started with on-field data collection with zero overhead costs. Being open-source and entrepreneur-friendly, a lot of enterprise services in this sector are actually running on the ODK base and have customized it to suit specific needs.</p> 604<h4>My experience with ODK:</h4> 605<p>1. I have guided a team member each about this in two NGOs in Pune: <a href="http://www.ceeindia.org/">CEE</a> and <a href="http://grammangal.org/">Grammangal</a>, with just the setup and getting started, a couple of years back, and I have seen them deploy and take this forward far beyond my expectations. I would recommend other NGOs who want to do this to consult them for a peer-to-peer exchange : they’ll speak in your language! (Marathi? Even more so!)<br /> 6062. I have also briefly taught about it to some interns from a social sciences college (major CV value-add bro!),<br /> 6073. and in a crash course workshop for some governance Fellows on practical mapping/survey techniques.<br /> 6084, But as of now I haven’t myself participated in a complete survey exercise using ODK.</p> 609<p>ODK community has a <a href="https://forum.opendatakit.org/">cool discussion forum</a>, where people can post queries. The majority or users and consequently deployers of ODK are more from social sciences background than coding background, so the forum is quite helpful and newbie-friendly.</p> 610<h2>B] Feedback</h2> 611<p>One regular feedback coming with the ODK tool has been about the one-way nature: If you have one project with 12 people on-field sending in data, it’s a hub-spoke model and the 12 people can’t easily check what the others have posted. They can’t even retain on phone the data they themselves collected once they have submitted it to “HQ”, and so it’s difficult for team members to keep track of things and stay in the loop, especially if they’re in remote areas or on the move and can’t get online on a laptop to inspect the collected data, or cases where the field agent is comfortable operating the phone app (multilingual btw) but not the laptop. (did I mention, you can operate ODK in zero network coverage and sync things with HQ at the end of the day / outing when you get back in range or climb up the roof or tie your phone to your pet eagle or something?).</p> 612<h2>C] ODK-2</h2> 613<p>The community of developers has responded and now launched ODK-2. The original ODK is still operational as ODK-1, and ODK-2 brings in a lot more ways to achieve synchronisations and customizations and all. I haven’t gone though the whole thing yet, but it seems they’ve resolved the feedback I mentioned earlier.<br /> 614Take a look at the tour here: <a href="https://docs.opendatakit.org/odk2/getting-started-2-user/#tour-of-the-simple-demo-application">https://docs.opendatakit.org/odk2/getting-started-2-user/#tour-of-the-simple-demo-application</a></p> 615<p>So it seems to me like this platform is going to enable setting up survey exercises where the hierarchy is considerably flattened, and all the on-field folks can see what their colleagues are collecting and co-ordinate better. It seems like a good platform to run something like a citizens tree mapping or large area survey exercise on.</p> 616<p>Screenshot:</p> 617<figure style="width: 640px" class="wp-caption alignleft"><a href="https://docs.opendatakit.org/odk2/_images/phinney-ridge.png"><img decoding="async" class="size-large" src="https://docs.opendatakit.org/odk2/_images/phinney-ridge.png" alt="screenshot from ODK-2 tour" width="640" height="1024" /></a><figcaption class="wp-caption-text">
617screenshot from ODK-2 tour</figcaption></figure> 618<p>Happy exploring ð</p> 619<p>Disclaimer : I’m only rapid-sharing what I just stumbled upon, so will not be able to answer detailed queries right now. For that, check out ad join the forum. And <a href="https://forum.opendatakit.org/t/community-update-2018-07-17/14072/2">see here the newsletter</a> that sparked this post.</p> 620<p>PS: Does your org use ODK? Then get yourselves listed on the <a href="https://forum.opendatakit.org/u/user-map">users map</a>, scroll to bottom of that newsletter to know how.</p> 621<p><em>(this is a cross-post from an email. All opinions are personal. Author: Nikhil VJ, DataMeet Pune chapter)</em></p> 622<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 623 data-shared="sharing-facebook-3256" 624 class="share-facebook sd-button share-icon" 625 href="https://datameet.org/2018/07/18/odk/?share=facebook" 626 target="_blank" 627 aria-labelledby="sharing-facebook-3256" 628 > 629 <span id="sharing-facebook-3256" hidden>Share on Facebook (Opens in new window)</span> 630 <span>Facebook</span> 631 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 632 data-shared="sharing-linkedin-3256" 633 class="share-linkedin sd-button share-icon" 634 href="https://datameet.org/2018/07/18/odk/?share=linkedin" 635 target="_blank" 636 aria-labelledby="sharing-linkedin-3256" 637 > 638 <span id="sharing-linkedin-3256" hidden>Share on LinkedIn (Opens in new window)</span> 639 <span>LinkedIn</span> 640 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 641 data-shared="sharing-email-3256" 642 class="share-email sd-button share-icon" 643 href="mailto:?subject=%5BShared%20Post%5D%20Open%20Data%20Kit%3A%20for%20mobile%20based%20surveys%2C%20data%20collection&body=https%3A%2F%2Fdatameet.org%2F2018%2F07%2F18%2Fodk%2F&share=email" 644 target="_blank" 645 aria-labelledby="sharing-email-3256" 646 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="33a3254c88" data-email-share-track-url="https://datameet.org/2018/07/18/odk/?share=email"> 647 <span id="sharing-email-3256" hidden>Email a link to a friend (Opens in new window)</span> 648 <span>Email</span> 649 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 650 data-shared="sharing-twitter-3256" 651 class="share-twitter sd-button share-icon" 652 href="https://datameet.org/2018/07/18/odk/?share=twitter" 653 target="_blank" 654 aria-labelledby="sharing-twitter-3256" 655 > 656 <span id="sharing-twitter-3256" hidden>Share on X (Opens in new window)</span> 657 <span>X</span> 658 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 659 660 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/odk/" rel="tag">odk</a></span></footer></article><!-- #post-3256 --> 661 662<article id="post-3233" class="post-3233 post type-post status-publish format-standard has-post-thumbnail hentry category-data category-gis category-how-to category-visualization tag-data-viz tag-elections tag-featured tag-india tag-knowyourmp tag-maps tag-visualization-2"> 663 664 <a class="post-thumbnail" href="https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-maps/" aria-hidden="true"> 665 <img width="1038" height="576" src="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3-1038x576.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="" decoding="async" srcset="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3-1038x576.png 1038w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3-672x372.png 672w" sizes="(max-width: 1038px) 100vw, 1038px" /> </a> 666 667 668 <header class="entry-header"> 669 <div class="entry-meta"> 670 <span class="cat-links"><a href="https://datameet.org/category/data/" rel="category tag">Data</a>, <a href="https://datameet.org/category/gis/" rel="category tag">GIS</a>, <a href="https://datameet.org/category/how-to/" rel="category tag">How-To</a>, <a href="https://datameet.org/category/visualization/" rel="category tag">Visualization</a></span> 671 </div> 672 <h1 class="entry-title"><a href="https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-ma
672ps/" rel="bookmark">Know Your MP: Probing Election Affidavits with Maps</a></h1> 673 <div class="entry-meta"> 674 <span class="entry-date"><a href="https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-maps/" rel="bookmark"><time class="entry-date" datetime="2018-07-12T23:42:09+05:30">July 12, 2018</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/community/" rel="author">DataMeet Community</a></span></span> <span class="comments-link"><a href="https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-maps/#comments">1 Comment</a></span> 675 </div><!-- .entry-meta --> 676 </header><!-- .entry-header --> 677 678 <div class="entry-content"> 679 <p><strong>Project by <a href="http://shailendra.me/" rel="noopener" target="_blank">Shailendra Paliwal</a> and Kashmir Sihag</strong><br /> 680<em>Note: This blog post was written by Shailendra</em></p> 681<p>I want to share a 3 year old project I and my friend Kashmir Sihag Chaudhary did for Jaipur Hackathon in a span of 24 hours. It is called <a href="http://shailendra.me/knowYourMP/" rel="noopener" target="_blank">Know Your MP</a>, it visualizes data that we know about our members of parliament on a map of Indian Parliamentary Constituencies.</p> 682<p>A friend and a fellow redditor Shrimant Jaruhar had already made something very similar in 2014 but it was barely usable since it took forever to load and mostly crashed my browser. My attempt with Know Your MP was to advance on the same idea. </p> 683<h3>The Dataset</h3> 684<p>Election Commission of India requires that every person contesting the elections fill an affidavit and therby disclosing criminal, financial and educatinal background of each candidate. There have been a few concerns about this, a major one being that one could as well enter misleading information without any consequences. If you would remember the brouhaha over education qualifications of Prime Minister Modi and the cabinet minister Smriti Irani, it started with what they entered in their election affidavits. However, it is widely believed that a vast majority of the data colllected is true or close to true which makes this a dataset worthy of exploration.</p> 685<p>However, like a lot of data from governments, every page from these affidavits are made available as individual images behind a network of hyperlinks on the website of Election Commission of India. Thankfully, all of this data is available as CSV or Excel Spreadsheets from [MyNeta.info](http://myneta.info/). The organization behind MyNeta is Association of Democratic Reforms(ADR) which was established by a group of professors from Indian Institute of Management (Ahmedabad). ADR also played a pivotal role in the Supreme Court ruling that brought this election disclosure to fruition.</p> 686<figure id="attachment_3238" aria-describedby="caption-attachment-3238" style="width: 474px" class="wp-caption alignnone"><a href="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-datameet-1.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-datameet-1-1024x481.png" alt="everything is neatly laid out" width="474" height="223" class="size-large wp-image-3238" srcset="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-datameet-1-1024x481.png 1024w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-datameet-1-300x141.png 300w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-datameet-1-768x360.png 768w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-datameet-1.png 1920w" sizes="auto, (max-width: 474px) 100vw, 474px" /></a><figcaption id="caption-attachment-3238" class="wp-caption-text">everything is neatly laid out</figcaption></figure> 687<p><a href="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1-1024x890.png" alt="" width="474" height="412" class="alignnone size-large wp-image-3239" srcset="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1-1024x890.png 1024w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1-300x261.png 300w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1-768x668.png 768w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1.png 1072w" sizes="auto, (max-width: 474px) 100vw, 474px" /></a><br /> 688Cadidate Affidavit of CPI(M) candidate Udai Lal Bheel from Udaipur Rural constituency in Rajasthan. <a href="http://eci.nic.in/archive/website_2/S20/143/UDAILALBHEEL/UdaiLal.HTML" rel="noopener" target="_blank">link</a></p> 689<h3>Preparing the Map</h3> 690<p>This data needs to be visualized on a map with boundaries showing every parliamentary contituency. Each constituency will indicate the number of criminal cases or assets of their respective MP using a difference in shading or color. Such visualizations are called choropleth maps. To my surprise, I couldn not find a map of Indian parliamentary constituencies from any direct or indirect government sources. That is
690when datameet came to my rescue. I found that DataMeet Bangalore had released such a shapefile. It is a 13.7MB file(.shp). Certainly not usable for a web project. </p> 691<p>Next task would be somehow compress this shapefile to a small enough size that can be then used either as a standalone map or as an overlay on leaflet.js or Google Maps (or as I later learned Mapbox too).</p> 692<p>From the beginning I was looking at d3.js to achieve this. The usual process to follow would be to convert the shapefile (.shp) into JSON format which D3 can use. </p> 693<p>For map compression I found that Mike Bostock (a dataviz genius and also the person behind D3) has worked on a map format that does such compression, the format is called GeoJSON. After a bit of struggling with making things work on a Windows workstation and tweaking around with the default settings, I managed to bring the size down to 935 KB. Map was now ready for the web and I now had to only wade through D3 documentation to make the visualization.</p> 694<h3>Linking data with map and Visualization</h3> 695<p>Each parliamentary region in the GeoJSON file has a name tag which links it to the corresponding data values from dataset. A D3 script on the HTML page parses both and does this job to finally render this choropleth map.</p> 696<p><a href="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1-1024x890.png" alt="" width="474" height="412" class="alignnone size-large wp-image-3239" srcset="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1-1024x890.png 1024w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1-300x261.png 300w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1-768x668.png 768w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-1.png 1072w" sizes="auto, (max-width: 474px) 100vw, 474px" /></a></p> 697<p>The black regions on the maps are parliamentary contituencies that have alternate spellings. I could have used levenshtein distance to match them or more simply linked the map to data with a numeric ID. I’ll hopefully get that done someday soon.</p> 698<p><a href="http://shailendra.me/knowYourMP/" rel="noopener" target="_blank">link to project</a>, <a href="https://github.com/vcidst/knowYourMP" rel="noopener" target="_blank">github</a>, <a href="https://github.com/vcidst/knowYourMP/blob/master/maps/india.json" rel="noopener" target="_blank">map</a></p> 699<h3>
699Finally Looking at Data</h3> 700<p>The average member of parliment (only a few MPs have changed since 2015) has at least 1 criminal case against them, has a total asset value of about 14 Crore INR and has liabilities of value 1.4 Crore INR. But this dataset also has a lot of outliers so mean isn’t really the best representative of the central tendency. The median member of parliament has 0 criminal case against them, has total assets worth 3.2 Crore INR and has liabilities of value 11 Lakh INR. </p> 701<p>The poorest member of parliament is Sumedha Nand Saraswati from Sikar who has total assets worth 34 thousand INR. Richest MP on the other hand is Jayadev Galla with declared assets of 683 Crore INR. Galla doesn’t directly fit the stereotypical corrupt politician meme with zero criminal cases against him. His wealth is best explained to the success of lead acid battery brand Amaron owned by the conglomerate his father founded in 1985.</p> 702<p><a href="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-2.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-2-1024x753.png" alt="" width="474" height="349" class="alignnone size-large wp-image-3237" srcset="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-2-1024x753.png 1024w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-2-300x221.png 300w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-2-768x565.png 768w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-2.png 1072w" sizes="auto, (max-width: 474px) 100vw, 474px" /></a></p> 703<p><a href="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3-1024x729.png" alt="" width="474" height="337" class="alignnone size-large wp-image-3236" srcset="https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3-1024x729.png 1024w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3-300x214.png 300w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3-768x547.png 768w, https://datameet.org/wp-content/uploads/2018/07/knowyourmp-3.png 1105w" sizes="auto, (max-width: 474px) 100vw, 474px" /></a></p> 704<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 705 data-shared="sharing-facebook-3233" 706 class="share-facebook sd-button share-icon" 707 href="https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-maps/?share=facebook" 708 target="_blank" 709 aria-labelledby="sharing-facebook-3233" 710 > 711 <span id="sharing-facebook-3233" hidden>Share on Facebook (Opens in new window)</span> 712 <span>Facebook</span> 713 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 714 data-shared="sharing-linkedin-3233" 715 class="share-linkedin sd-button share-icon" 716 href="https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-maps/?share=linkedin" 717 target="_blank" 718 aria-labelledby="sharing-linkedin-3233" 719 > 720 <span id="sharing-linkedin-3233" hidden>Share on LinkedIn (Opens in new window)</span> 721 <span>LinkedIn</span> 722 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 723 data-shared="sharing-email-3233" 724 class="share-email sd-button share-icon" 725 href="mailto:?subject=%5BShared%20Post%5D%20Know%20Your%20MP%3A%20Probing%20Election%20Affidavits%20with%20Maps&body=https%3A%2F%2Fdatameet.org%2F2018%2F07%2F12%2Fknow-your-mp-probing-election-affidavits-with-maps%2F&share=email" 726 target="_blank" 727 aria-labelledby="sharing-email-3233" 728 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="6574998c11" data-email-share-track-url="https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-ma
728ps/?share=email"> 729 <span id="sharing-email-3233" hidden>Email a link to a friend (Opens in new window)</span> 730 <span>Email</span> 731 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 732 data-shared="sharing-twitter-3233" 733 class="share-twitter sd-button share-icon" 734 href="https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-maps/?share=twitter" 735 target="_blank" 736 aria-labelledby="sharing-twitter-3233" 737 > 738 <span id="sharing-twitter-3233" hidden>Share on X (Opens in new window)</span> 739 <span>X</span> 740 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 741 742 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/data-viz/" rel="tag">data viz</a><a href="https://datameet.org/tag/elections/" rel="tag">Elections</a><a href="https://datameet.org/tag/featured/" rel="tag">featured</a><a href="https://datameet.org/tag/india/" rel="tag">india</a><a href="https://datameet.org/tag/knowyourmp/" rel="tag">KnowYourMP</a><a href="https://datameet.org/tag/maps/" rel="tag">Maps</a><a href="https://datameet.org/tag/visualization-2/" rel="tag">visualization</a></span></footer></article><!-- #post-3233 --> 743 744<article id="post-3195" class="post-3195 post type-post status-publish format-standard has-post-thumbnail hentry category-how-to category-pune category-transportation tag-openrefine"> 745 746 <a class="post-thumbnail" href="https://datameet.org/2018/06/13/openrefine-bus-stop/" aria-hidden="true"> 747 <img width="997" height="576" src="https://datameet.org/wp-content/uploads/2018/06/openrefine-stops-cluster-screenshot-997x576.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="" decoding="async" loading="lazy" /> </a> 748 749 750 <header class="entry-header"> 751 <div class="entry-meta"> 752 <span class="cat-links"><a href="https://datameet.org/category/how-to/" rel="category tag">How-To</a>, <a href="https://datameet.org/category/pune/" rel="category tag">pune</a>, <a href="https://datameet.org/category/transportation/" rel="category tag">transportation</a></span> 753 </div> 754 <h1 class="entry-title"><a href="https://datameet.org/2018/06/13/openrefine-bus-stop/" rel="bookmark">Using OpenRefine to iron out spelling differences in data</a></h1> 755 <div class="entry-meta"> 756 <span class="entry-date"><a href="https://datameet.org/2018/06/13/openrefine-bus-stop/" rel="bookmark"><time class="entry-date" datetime="2018-06-13T20:56:53+05:30">June 13, 2018</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/nikhil-js/" rel="author">Nikhil VJ</a></span></span> </div><!-- .entry-meta --> 757 </header><!-- .entry-header --> 758 759 <div class="entry-content"> 760 <p>OpenRefine is a powerful open source tool for working with messy data, made for non-coders. And just to stress on something I don’t want readers to miss,</p> 761<blockquote><p><big><strong><em>made for non-coders.</em></strong></big></p></blockquote> 762<p>It has a ton of features and I have not had the chance to use and learn the vast majority of them. But I learned one thing so I’m going to share that particular implementation: <strong>reconciling spelling differences in data.</strong></p> 763<h3>Background</h3> 764<p>The data that I worked on: a few worksheets having bus stop names from <a href="http://opendata.punecorporation.org/Citizen/CitizenDatasets/Index?categoryId=15&dsId=112&search=bus" rel="nofollow">BRT & Non BRT Route Details & Bus Stop LatLong.xls</a> from Pune Open Data Portal.</p> 765<p>I’ve written a detailed log of the whole (incomplete) <a href="https://github.com/datameet-pune/datameet-pune.github.io/wiki/Project%3A-Bus-stops-database">exercise here</a>, but I’ll expand on just the OpenRefine part. Apologies if any of this gets confusing.. just see the screenshots!</p> 766<h3>Steps</h3> 767<p>1. All the names that need reconciling are brought under one column. Other columns are kept to track serial numbers, etc. If two or more data tables are involved then a combined table is created carrying columns from all the tables, and one more column is made to disambiguate which sheet the row is from.</p> 768<p>2. A copy column is made of this names column in the same table. Just in case we screw up and need to revert. Always make backups!</p> 769<p>3. Save the file and load it up on OpenRefine. (assuming that you have downloaded, installed /extracted and started up OpenRefine and it is loaded on a tab in your browser)</p> 770<p>4. Now we see the table laid out. There are drop-down arrow buttons on each column heading leading to menu of actions to do on that column. Locate the Names column you want to work on and open its menu.</p> 771<p>5. First things first: clean up the cells by trimming leading and trailing whitespace
771s.<a href="http://i.imgur.com/UI0vwag.png"><img loading="lazy" decoding="async" class="aligncenter" src="http://i.imgur.com/UI0vwagl.png" alt="openrefine trim spaces.png" width="640" height="405" /></a></p> 772<figure style="width: 640px" class="wp-caption aligncenter"><a href="http://i.imgur.com/m3zqZ0F.png"><img loading="lazy" decoding="async" src="http://i.imgur.com/m3zqZ0Fl.png" alt="clustering screenshot" width="640" height="402" /></a><figcaption class="wp-caption-text">note: names looking same are the reason why step 5 is important</figcaption></figure> 773<p>6. Open the column’s menu again and choose <strong>Text facet > Clustering</strong> on the target column. It should open up something like below. (click the screenshot to see full size)</p> 774<p>7. Consider first listing as example. ‘Pune Vidyapeeth Gate’ has 3 different spellings spanning 63 rows. If we click on one of the spellings, it appears under “New Cell Value”. We can even type a whole new spelling. Select the checkbox under “Merge?” and press the big button at bottom “Merge Selected & Re-Cluster”.</p> 775<p>8. What happens in the background: The rest of the table stays as-is. But these 63 cells are over-written with the single new value.</p> 776<p>9. So in two clicks we have done what normally would be a very long process in excel of filtering, sorting, copy-pasting and restoring to original order.</p> 777<p>10. Here is a <a href="https://www.diffchecker.com/Q8GhmoZt" target="_blank" rel="noopener">saved diff check on diffchecker.com</a> that shows on left my original list and on right the normalized list I got through OpenRefine.</p> 778<p>11. Do explore the various other options on the page. For bringing similar-spelling words together, certain linguistic algorithms are used (apologies but I haven’t bothered digging deeper into them), and there are multiple options, seen at the top of the last screenshot (“Method”, “Keying function”). Depending on your data one way may work better than the other. You can do one run of clustering / normalizing and then choose another algorithm that might cluster in another way. There will be false positives too (ie names that are supposed to be different only but the program thinks they should be same) and you can ignore them by keeping their “Merge?” checkbox off.</p> 779<figure style="width: 487px" class="wp-caption aligncenter"><a href="https://i.imgur.com/D4G0xwX.png"><img loading="lazy" decoding="async" class="size-large" src="https://i.imgur.com/D4G0xwXl.png" alt="false positives and funny names screenshot" width="487" height="377" /></a><figcaption class="wp-caption-text">Bekar Company :P!</figcaption></figure> 780<p>12. One more thing: This program works just as well on other languages. And it is particularly useful in catching all the cases where there’s confusion between <em>choti ee maatra</em> and <em>badi ee maatra</em>:</p> 781<figure style="width: 640px" class="wp-caption aligncenter"><a href="https://i.imgur.com/ZgTG5W4.png"><img loading="lazy" decoding="async" class="size-large" src="https://i.imgur.com/ZgTG5W4l.png" alt="marathi names clustering" width="640" height="403" /></a><figcaption class="wp-caption-text">It does marathi names too!</figcaption></figure> 782<hr /> 783<h3>Bus yaar</h3> 784<p>So that’s it for this walkthrough. Gratitude to DMer Aravind from Bangalore for insisting I check out this tool when I was saying “it’s ok I’m doing it in excel”. Have you used OpenRefine too? What was your application? Do share here or drop me an email on nikhil.js [at] gmail.com.</p> 785<h3>Links</h3> 786<ul> 787<li><a href="http://openrefine.org/">OpenRefine.org</a> – main page has good videos to get you started.</li> 788<li><a href="https://github.com/OpenRefine/OpenRefine/wiki/What-People-Say">A collection of quotes said about OpenRefine</a></li> 789</ul> 790<p>PS: No, I’m not going to explain why in the world I was having a table of 40,000+ rows of bus stop names. It’s too traumatizing to share, please understand ð</p> 791<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 792 data-shared="sharing-facebook-3195" 793 class="share-facebook sd-button share-icon" 794 href="https://datameet.org/2018/06/13/openrefine-bus-stop/?share=facebook" 795 target="_blank" 796 aria-labelledby="sharing-facebook-3195" 797 > 798 <span id="sharing-facebook-3195" hidden>Share on Facebook (Opens in new window)</span> 799 <span>Facebook</span> 800 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 801 data-shared="sharing-linkedin-3195" 802 class="share-linkedin sd-button share-icon" 803 href="https://datameet.org/2018/06/13/openrefine-bus-stop/?share=linkedin" 804 target="_blank" 805 aria-labelledby="sharing-linkedin-3195" 806 > 807 <span id="sharing-linkedin-3195" hidden>Share on LinkedIn (Opens in new window)</span> 808 <span>LinkedIn</span> 809 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 810 data-shared="sharing-email-3195" 811 class="share-email sd-button share-icon"
812 href="mailto:?subject=%5BShared%20Post%5D%20Using%20OpenRefine%20to%20iron%20out%20spelling%20differences%20in%20data&body=https%3A%2F%2Fdatameet.org%2F2018%2F06%2F13%2Fopenrefine-bus-stop%2F&share=email" 813 target="_blank" 814 aria-labelledby="sharing-email-3195" 815 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="42fd91d72e" data-email-share-track-url="https://datameet.org/2018/06/13/openrefine-bus-stop/?share=email"> 816 <span id="sharing-email-3195" hidden>Email a link to a friend (Opens in new window)</span> 817 <span>Email</span> 818 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 819 data-shared="sharing-twitter-3195" 820 class="share-twitter sd-button share-icon" 821 href="https://datameet.org/2018/06/13/openrefine-bus-stop/?share=twitter" 822 target="_blank" 823 aria-labelledby="sharing-twitter-3195" 824 > 825 <span id="sharing-twitter-3195" hidden>Share on X (Opens in new window)</span> 826 <span>X</span> 827 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 828 829 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/openrefine/" rel="tag">openrefine</a></span></footer></article><!-- #post-3195 --> 830 831<article id="post-3141" class="post-3141 post type-post status-publish format-standard has-post-thumbnail hentry category-transport tag-featured tag-gtfs tag-opendata"> 832 833 <a class="post-thumbnail" href="https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/" aria-hidden="true"> 834 <img width="1038" height="576" src="https://datameet.org/wp-content/uploads/2018/04/gtfs-routes-screenshot-1-1038x576.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://datameet.org/wp-content/uploads/2018/04/gtfs-routes-screenshot-1-1038x576.png 1038w, https://datameet.org/wp-content/uploads/2018/04/gtfs-routes-screenshot-1-672x372.png 672w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /> </a> 835 836 837 <header class="entry-header"> 838 <div class="entry-meta"> 839 <span class="cat-links"><a href="https://datameet.org/category/data/transport/" rel="category tag">transport</a></span> 840 </div> 841 <h1 class="entry-title"><a href="https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/" rel="bookmark">A tool for composing transit schedules data in static GTFS standard</a></h1> 842 <div class="entry-meta"> 843 <span class="entry-date"><a href="https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/" rel="bookmark"><time class="entry-date" datetime="2018-04-13T17:43:19+05:30">April 13, 2018</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/nikhil-js/" rel="author">Nikhil VJ</a></span></span> <span class="comments-link"><a href="https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/#comments">1 Comment</a></span> 844 </div><!-- .entry-meta --> 845 </header><!-- .entry-header --> 846 847 <div class="entry-content"> 848 <p>Over the last few months I went deep-dive into a project with WRI (World Resources Institute) and Kochi Metro in Kerala (KMRL) to convert their scheduling data to the global standard <a href="https://developers.google.com/transit/gtfs/reference/">static GTFS</a> format.</p> 849<p>The first phase of the project was about just the data conversion. I wrote a python program that took in KMRL’s data files and some configuration files, and created a static GTFS feed as output. There were many more complexities than I can share here, and Shine David from KMRL was a crucial enabler by being the inside man sharing all necessary info and clarifications.</p> 850<p>On 17 March this year, Kochi Metro Rail Ltd became India’s first transit agency to publish static GTFS feed of their system as open data.</p> 851<p>See the <a href="https://kochimetro.org/open-data/"><strong>KMRL open data portal</strong></a>
851 and some news coverage: <a href="http://www.newindianexpress.com/cities/kochi/2018/mar/17/kochi-metro-adopts-open-data-system-to-improve-access-to-its-services-1788342.html">1</a>, <a href="http://indianexpress.com/article/india/kochi-metro-throws-open-transit-data-to-public-on-the-lines-of-london-new-york-5100381/">2</a>, <a href="http://www.thehindu.com/news/cities/Kochi/open-data-to-improve-commuter-experience/article23275844.ece">3</a>, <a href="http://www.thehindu.com/news/cities/Kochi/kmrl-moves-a-step-ahead-to-open-up-transit-data/article23247617.ece">4</a>.</p> 852<p>See it visualized on a global GTFS feeds map called <a href="http://tracker.geops.ch/?z=2&s=1&x=1796473.6262&y=2340903.0780&l=transport">TRAVIC</a>.<br /> 853(zoom in to kochi and press fast forward. Can adjust time of day.)</p> 854<p>Phase 2 of the project aimed higher : we started work on a program with a graphical user interface that would automate several manual processes and help KMRL update their data as the network grows, publish updated feeds on their own without having to rely on any external entity, and very importantly for their case, integrate bus and ferry routes of Kochi in the near future to build towards a unified public transport dataset and facilitate integrated ticketing. As we progressed into this we realised the potential this can have if we generalise it so that any transit agency can use it.</p> 855<p>So, here’s launching..</p> 856<p><a href="https://github.com/WRI-Cities/static-GTFS-manager">https://github.com/WRI-Cities/static-GTFS-manager</a></p> 857<p><a href="https://datameet.org/wp-content/uploads/2018/04/gtfs-routes-screenshot-1.png" rel="attachment wp-att-3142"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3142" title="gtfs-routes-screenshot-1-png" src="https://datameet.org/wp-content/uploads/2018/04/gtfs-routes-screenshot-1.png" alt="" width="1024" height="1024" /></a></p> 858<p>Did I mention we have open sourced the whole thing? Big Kudos to WRI and especially Vishal who co-ordinated the whole project, for being proactive and pro-open-source with this.</p> 859<p>The program runs in the browser (actually, please use Chrome or Chromium and no mobile!) as a website with a server backend created by a Python 3 program. It manages the data in a portable internal database and publishes fresh GTFS feeds whenever wanted.</p> 860<p>To play around with a live demo version of the program online, contact nikhil on nikhil.js [at] gmail.com</p> 861<p>Note: while it’s compatible to publish this program on a free heroku account, it is currently not designed for multi-user use. That’s kind of not in the basic requirements, as end user is just a transport agency’s internal team. (With your participation we can change that.)</p> 862<p>So, why I am sharing about this here: Apart from obviously sharing cool stuff,</p> 863<p>With this it’s possible to design any transport system’s static GTFS feed <strong><em>from scratch</em></strong>, or edit an older feed you have lying around and bring it up to date.</p> 864<h3>Invitation for Collaboration</h3> 865<p>There is more that can be done with enhancements and integrations, and there are still some <a href="https://github.com/WRI-Cities/static-GTFS-manager/issues">limitations</a> that need to be resolved. I’m documenting all I know in the issues section. So I’m reaching out for inviting collaborations on the coding and beta testing front. One motive behind open sourcing is that the community can achieve far more with this project than what any private individual or group can. There’s also scope to <a href="https://github.com/CUTR-at-USF/awesome-transit">integrate many other GTFS innovations</a> happening. Please visit the github repo and engage!</p> 866<p>Lastly, big shout-out to DMers Srinivas Kodali from Hyderabad chapter for connecting and lots of guiding, and to Devdatta Tengshe from Pune chapter for helping me learn asynchronous server setup in Python in a lightning fast way (with a <a href="https://github.com/devdattaT/sampleTornadoApp">working example</a> for dummies!)</p> 867<h3>Quick links:</h3> 868<p>– <a href="https://github.com/WRI-Cities/static-GTFS-manager">static-GTFS-manager</a><br /> 869– <a href="https://developers.google.com/transit/gtfs/reference/">https://developers.google.com/transit/gtfs/reference/</a></p> 870<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 871 data-shared="sharing-facebook-3141" 872 class="share-facebook sd-button share-icon" 873 href="https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/?share=facebook" 874 target="_blank" 875 aria-labelledby="sharing-facebook-3141" 876 > 877 <span id="sharing-facebook-3141" hidden>Share on Facebook (Opens in new window)</span> 878 <span>Facebook</span> 879 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 880 data-shared="sharing-linkedin-3141" 881 class="share-linkedin sd-button share-icon" 882 href="https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/?share=linkedin" 883 target="_blank" 884 aria-labelledby="sharing-linkedin-3141" 885 > 886 <span id="sharing-linkedin-3141" hidden>Share on LinkedIn (Opens in new window)</span> 887 <span>LinkedIn</span> 888 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 889 data-shared="sharing-email-3141" 890 class="share-email sd-button share-icon" 891 href="mailto:?subject=%5BShared%20Post%5D%20A%20tool%20for%20composing%20transit%20schedules%20data%20in%20static%20GTFS%20standard&body=https%3A%2F%2Fdatameet.org%2F2018%2F04%2F13%2Fa-tool-for-composing-transit-schedules-data-in-static-gtfs-standard%2F&share=email" 892 target="_blank" 893 aria-labelledby="sharing-email-3141"
894 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="0746f4cd3a" data-email-share-track-url="https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/?share=email"> 895 <span id="sharing-email-3141" hidden>Email a link to a friend (Opens in new window)</span> 896 <span>Email</span> 897 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 898 data-shared="sharing-twitter-3141" 899 class="share-twitter sd-button share-icon" 900 href="https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/?share=twitter" 901 target="_blank" 902 aria-labelledby="sharing-twitter-3141" 903 > 904 <span id="sharing-twitter-3141" hidden>Share on X (Opens in new window)</span> 905 <span>X</span> 906 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 907 908 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/featured/" rel="tag">featured</a><a href="https://datameet.org/tag/gtfs/" rel="tag">gtfs</a><a href="https://datameet.org/tag/opendata/" rel="tag">opendata</a></span></footer></article><!-- #post-3141 --> 909 910<article id="post-3103" class="post-3103 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized tag-data-2 tag-development tag-featured tag-open-data"> 911 912 <a class="post-thumbnail" href="https://datameet.org/2018/04/02/data-diaries-what-i-learned/" aria-hidden="true"> 913 <img width="591" height="396" src="https://datameet.org/wp-content/uploads/2018/03/maze.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://datameet.org/wp-content/uploads/2018/03/maze.png 591w, https://datameet.org/wp-content/uploads/2018/03/maze-300x201.png 300w" sizes="auto, (max-width: 591px) 100vw, 591px" /> </a> 914 915 916 <header class="entry-header"> 917 <div class="entry-meta"> 918 <span class="cat-links"><a href="https://datameet.org/category/uncategorized/" rel="category tag">Uncategorized</a></span> 919 </div> 920 <h1 class="entry-title"><a href="https://datameet.org/2018/04/02/data-diaries-what-i-learned/" rel="bookmark">Data Diaries: What I learned</a></h1> 921 <div class="entry-meta"> 922 <span class="entry-date"><a href="https://datameet.org/2018/04/02/data-diaries-what-i-learned/" rel="bookmark"><time class="entry-date" datetime="2018-04-02T19:01:59+05:30">April 2, 2018</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/nisha/" rel="author">Nisha Thompson</a></span></span> </div><!-- .entry-meta --> 923 </header><!-- .entry-header --> 924 925 <div class="entry-content"> 926 <p>As some of you might know I’ve recently moved back to the US and after taking a break, I wanted to share some of my thoughts on the past 7 years of Open Data in India. These are just some of the big lessons I’ve learned and observations that I think are important.</p> 927<h5>Data needs advocates from every sector</h5> 928<p>Historically the biggest voices that government hears about data are corporations selling products or statisticians being gatekeepers. Now that data is a part of everybody’s life in ways that are unseen, data literacy is necessary for everyone and data needs advocates from every walk of life. What I experienced with DataMeet was that broad data ideas with inputs from experts from all sectors can be very powerful. When you advocate for the data itself and how it needs to be accessible for everyone you can give solutions and perspectives that statisticians and for profit companies can’t. Ideas that are new because they are in the best interest of the whole. That’s why we are invited to the table because even though it doesn’t make political or economic sense (yet) to listen to us, it is a different perspective that is helpful to know.</p> 929<p>This is why every sector, education, environment, journalists, all actors have to integrate a data advocacy component to their work. Issues of collection, management, and access affect your work and when you go to talk to governments about the issues you want to improve, creating better data and making it easier to get should automatically be apart of it. The idea of “I got the data I need so I’m good” does not make the next time you need data, or being upset with the quality of data being used to create policy, easier to deal with.</p> 930<h5>Building ecosystems are more important than projects</h5> 931<p>In 2011 when I started to work on water data, it became clear that there was no techie/data ecosystem for non profits to ta
931p into for advice and talent. There were individuals but no larger culture of tech/data for public good. This hadn’t been the case in the US so when I was at India Water Portal I wanted to spend time to find it because it’s really important for success. I was basically told by several people that it wasn’t possible in India. That people don’t really volunteer or share in the way the west does. It will be difficult to achieve.</p> 932<p>With open data growing quickly into an international fad with lots of funding from places like Open Gov Partnership and Omidyar, I knew open data projects were going to happen. But they would be in silos and they would largely not be successful. Creating a culture that asks and demands for data and then has the means to use it is not something that is created from funded projects. It comes from connecting people who have the same issues and demonstrating the demand.</p> 933<p>DataMeet’s largely been a successful community but not a great organization. This is my fault. A lot of my decisions were guided by those early issues. It was important to have a group of people demonstrating demand, need, and solutions who weren’t paid to be advocates but who were interested in the problem and found a safe space to try to work on it. That is how you change culture, that is why I meed people who say I believe in open data because of DataMeet. That would not have happened as much if we just did projects.</p> 934<h5>You canât fundamentally improve governance by having access to data.</h5> 935<p>It is what we work toward as a movement but it just doesnât really work that way- because bad governance is not caused by the lack of information or utilization of data. Accountability can’t happen without information or data; and good governance can’t happen without accountability. But all the work spent on getting the government to collect and better use data is often not useful. Mostly because of the lack of understanding of what is the root cause of the issue. I found that budget problems, under staffing, over stressed fire fighting, corruption, interest groups, and just plain apathy are more to blame then really the lack of information. This is something that civil society has to relearn all the time. Not to say data can’t help with these things, but if your plan is to give the government data and think it will solve a problem you are wasting time. Instead you should be using that data to create accountability structures that the government has to answer to. Or use that data to support already utilized accountability influences.</p> 936<h5>You gotta collect data</h5> 937<p>Funding that doesn’t include data collection, cleaning, processing costs is pointless. Data collection is expensive but necessary. In a context like India’s where it is clear that the government will not reach data collection levels that are necessary, you have to look at data collection as a required investment. India’s large established civil society and social sector is one of its strongest assets and they collect tons of data but not consistently. A lot of projects I encountered were based on the western models of the data being there, even if not accessible, it is complete somewhere. NOPE. They count on the data existing and don’t bother to think about the problem of collection, clean up, processing, and distribution. You have to collect data and do it consistently it has to become integrated in your mission.</p> 938<h5>Data is a pretty good indicator of how big a gap exists between two people trying to communicate.</h5> 939<p>100% of every data related conversation goes like this âThe data says this but I know from experience thatâ¦. â Two people will have different values and communicating a value b
939y saying âI think you should track xyz also, because its an important part of the storyâ can be a very productive way to work out differences. That is why open data methodology is so important. It also becomes a strong way for diverse interests to communicate and that is always a good thing.</p> 940<h5>Data is a common</h5> 941<p>In places that still don’t have the best infrastructure. Where institutions and official channels aren’t the most consistent. The best thing you can do is make information open and free. It will force issues out, create bigger incentives for solutions, and those solutions will be cheaper. Openness can be a substitute for money if there is an ecosystem to support the work.</p> 942<h5>You can collect lots of data but keeping it gets society no where.</h5> 943<p>A lot of people in India are wasting a lot of time doing the same thing over and over again. If I had 5 rupees for every person I spoke to who said they had already processed a shapefile that we just did, or had worked with some other dataset that is hard to clean up I could buy the Taj Mahal. Data issues in the country are decades old, but not sharing it causes stunting. Momentum is created from rapid information sharing and solutions; proprietary systems and data hoarding doesn’t. The common societal platforms that are making their way around Indiaâs civil society and private company meeting rooms wonât do it either. You canât design a locked in platform with every use in mind, its why generally non open portals have had such limited success. If you have solved a hard problem and make it open you save future generations from having to literally recreate the wheel you just made. How much more brainpower can you dedicate to the same problems? Let people be productive on new problems that haven’t been solved yet.</p> 944<h5>The data people in government are unsung heroes.</h5> 945<p>Whenever I met an actual worker at the NIC or BHUVAN or any of the data/tech departments they were very smart, very aware of the problems, and generally excited about the idea of DataMeet and that we could potentially help them solve a problem. It was not uncommon when being in a meeting with people from a government tech project for them to ask me to lobby another ministry to improve the data they have to process. While I wish I had that kind of influence it made me appreciate that the government is filled with people trying their best with the restrictions they have, but the government has “good bones” as they say and with better accountability could get to a better place.</p> 946<p>I don’t think I covered everything but I’m very grateful for my time working on these issues in India. I feel like I was able to achieve something even though there is so much more to do. To meet all the people who are dedicated to solving hard problems with others and never giving up will inspire me for a long time.</p> 947<p> </p> 948<p> </p> 949<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 950 data-shared="sharing-facebook-3103" 951 class="share-facebook sd-button share-icon" 952 href="https://datameet.org/2018/04/02/data-diaries-what-i-learned/?share=facebook" 953 target="_blank" 954 aria-labelledby="sharing-facebook-3103" 955 > 956 <span id="sharing-facebook-3103" hidden>Share on Facebook (Opens in new window)</span> 957 <span>Facebook</span> 958 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 959 data-shared="sharing-linkedin-3103" 960 class="share-linkedin sd-button share-icon" 961 href="https://datameet.org/2018/04/02/data-diaries-what-i-learned/?share=linkedin" 962 target="_blank" 963 aria-labelledby="sharing-linkedin-3103" 964 > 965 <span id="sharing-linkedin-3103" hidden>Share on LinkedIn (Opens in new window)</span> 966 <span>LinkedIn</span> 967 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 968 data-shared="sharing-email-3103" 969 class="share-email sd-button share-icon" 970 href="mailto:?subject=%5BShared%20Post%5D%20Data%20Diaries%3A%20What%20I%20learned&body=https%3A%2F%2Fdatameet.org%2F2018%2F04%2F02%2Fdata-diaries-what-i-learned%2F&share=email" 971 target="_blank" 972 aria-labelledby="sharing-email-3103"
973 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="cdffab9837" data-email-share-track-url="https://datameet.org/2018/04/02/data-diaries-what-i-learned/?share=email"> 974 <span id="sharing-email-3103" hidden>Email a link to a friend (Opens in new window)</span> 975 <span>Email</span> 976 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 977 data-shared="sharing-twitter-3103" 978 class="share-twitter sd-button share-icon" 979 href="https://datameet.org/2018/04/02/data-diaries-what-i-learned/?share=twitter" 980 target="_blank" 981 aria-labelledby="sharing-twitter-3103" 982 > 983 <span id="sharing-twitter-3103" hidden>Share on X (Opens in new window)</span> 984 <span>X</span> 985 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 986 987 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/data-2/" rel="tag">data</a><a href="https://datameet.org/tag/development/" rel="tag">development</a><a href="https://datameet.org/tag/featured/" rel="tag">featured</a><a href="https://datameet.org/tag/open-data/" rel="tag">open data</a></span></footer></article><!-- #post-3103 --> 988 989<article id="post-2977" class="post-2977 post type-post status-publish format-standard has-post-thumbnail hentry category-data category-how-to tag-d3 tag-data-journalism tag-data-viz tag-featured tag-football tag-reveal-js tag-visualization-2 tag-world-cup"> 990 991 <a class="post-thumbnail" href="https://datameet.org/2017/10/12/making-a-football-data-viz-with-d3-reveal-js/" aria-hidden="true"> 992 <img width="1038" height="576" src="https://datameet.org/wp-content/uploads/2017/10/football-1038x576.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://datameet.org/wp-content/uploads/2017/10/football-1038x576.png 1038w, https://datameet.org/wp-content/uploads/2017/10/football-672x372.png 672w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /> </a> 993 994 995 <header class="entry-header"> 996 <div class="entry-meta"> 997 <span class="cat-links"><a href="https://datameet.org/category/data/" rel="category tag">Data</a>, <a href="https://datameet.org/category/how-to/" rel="category tag">How-To</a></span> 998 </div> 999 <h1 class="entry-title"><a href="https://datameet.org/2017/10/12/making-a-football-data-viz-with-d3-reveal-js/" rel="bookmark">Making A Football Data Viz With D3 and Reveal.js</a></h1> 1000 <div class="entry-meta"> 1001 <span class="entry-date"><a href="https://datameet.org/2017/10/12/making-a-football-data-viz-with-d3-reveal-js/" rel="bookmark"><time class="entry-date" datetime="2017-10-12T16:32:50+05:30">October 12, 2017</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/shijithpk/" rel="author">Shijith Kunhitty</a></span></span> </div><!-- .entry-meta --> 1002 </header><!-- .entry-header --> 1003 1004 <div class="entry-content"> 1005 <p>This is a write-up on how I made a <a href="http://projects.wionews.com/how-is-u-17-world-cup-different/">slideshow</a> for the Under-17 World Cup.</p> 1006<p>The U-17 World Cup is the <a href="http://economictimes.indiatimes.com/news/politics-and-nation/pm-narendra-modi-welcomes-the-world-for-indias-first-fifa-tournament/articleshow/60970531.cms">first-ever</a> FIFA tournament to be hosted by India. Like many of you, Iâve seen plenty of menâs World Cups, but never an U-17 one. To try and understand how the U-17 tournament might be different from the âseniorâ version, I compared data from the last U-17 World Cup held in Chile in 2015 and the last menâs World Cup in Brazil in 2014.</p> 1007<p>The data was taken from Technical Study Group <a href="http://www.fifa.com/about-fifa/official-documents/development/technical-study-group-reports/index.html">reports</a> that are published by FIFA after every tournament. (The Technical Study Group is a mixture of ex-players, managers and officials associated with the game. You can read more about the group <a href="http://www.fifa.com/development/education-and-technical/technical-study-group/index.html">here</a>.)</p> 1008<p>In particular, I used the reports for the <a href="http://resources.fifa.com/mm/document/footballdevelopment/technicalsupport/02/42/15
1008/40/2014fwc_tsg_report_15082014web_neutral.pdf#page=173">2014</a> World Cup and the <a href="http://resources.fifa.com/mm/document/footballdevelopment/technicalsupport/02/74/76/76/fifau-17chile2015web_neutral.pdf#page=98">2015</a> U-17 World Cup. The data was taken pretty much as is, and thankfully didnât have to be processed much. An example of the data available in the report can be seen in the image below. It shows how the 171 goals in the 2014 World Cup came about.</p> 1009<p><img decoding="async" src="https://i.imgur.com/XZbudmo.png" alt="A look at some of the data in the report" /></p> 1010<p>The main takeaway from the comparison with the menâs World Cup is that the U-17 World Cup might see more goals and fewer 0-0 draws on average. The flipside is that there could be more cards and penalties too. For more details, check the <a href="http://projects.wionews.com/how-is-u-17-world-cup-different/">slideshow</a>.</p> 1011<h6>BE LESS INTIMIDATING FOR READERS</h6> 1012<p>I know just using one World Cup each to represent menâs and U-17 football may not be particularly rigorous. We could have also used data from the previous three or four World Cups in each age format. But if I did that, I was scared the data story would become more dense and intimidating for readers. I wanted to make this easy to follow along and understand, which is why I simplified things this way.</p> 1013<p><img decoding="async" src="https://i.imgur.com/EUEZLDL.png" alt="A card from the slideshow" height="auto" width="330" /></p> 1014<p>Another thing I did to make this easier to digest was to stick to one main point per card (see image above). The main point is in the headline, then you get a few lines of text below showing how exactly you’ve arrived at the main point. The figures that have been calculated and compared are put in a bold font. Then there is an animated graphic below that, which visually reinforces the main point of the slide.</p> 1015<p>The data story tries to simulate a card format, one that you can just flick through on the mobile. I used the slideshow library <a href="http://lab.hakim.se/reveal-js/">reveal.js</a> to make the cards. But I suspect there is a standard, more established method that mobile developers have to create a card format, will have to look into this further.</p> 1016<p>The animations were done with <a href="https://d3js.org/">D3.js</a>, with help from a lot of examples on stackoverflow and <a href="https://bl.ocks.org/">bl.ocks.org</a>. If you’re new to D3 and want to know how these animations were done, hereâs more info.</p> 1017<h6>ANIMATING THE BAR CHART</h6> 1018<p><img decoding="async" src="https://i.imgur.com/zuM8PGm.gif" height="auto" width="300" /></p> 1019<p>The D3 âtransitionsâ or animations in this slideshow are basically the same. Thereâs (a) an initial state where thereâs nothing to see, (b) the final state where the graphic looks the way you want and (c) a transition from the initial state to the final state over a duration specified in <a href="https://github.com/d3/d3-transition#timing">milliseconds</a>.</p> 1020<p><img decoding="async" src="https://i.imgur.com/ICYpM3g.png" alt="A snippet of code for animating the bars" /></p> 1021<p>For example, in the code snippet for the bar animation above, you see two attributes changing for the bars during the transitionâthe âheightâ and âyâ attributes changing over a duration of 500 milliseconds. You can see another example of this animation at bl.ocks.org <a href="https://bl.ocks.org/areologist/99110cbc03e130815a74412c55f173ec">here</a>.</p> 1022<h6>ANIMATING THE STACKED BAR CHART</h6> 1023<p><img decoding="async" src="https://i.imgur.com/A6rKN64.gif" height="auto" width="300" /></p> 1024<p>This animation was done in a way similar to the one above. The chart is called a ânormalised stack chartâ and the code for this was taken from the bl.ocks.org example <a href="https://bl.ocks.org/mbostock/3886394">here</a>.</p> 1025<p>The thing about this chart is that you donât have to calculate the percentages beforehand. You just feed in the raw data (see image below) and you get the final percentages visualised in the graphic.</p> 1026<p><img decoding="async" src="https://i.imgur.com/pxTFlyC.png" alt="The raw data on goals gets converted to percentages" /></p> 1027<h6>ANIMATING THE LINE CHART</h6> 1028<p><img decoding="async" src="https://i.imgur.com/UT5o0tT.gif" height="auto" width="300" /></p> 1029<p>The transition over here isnât very sophisticated. In this, the two lines and the data points on them are basically set to appear 300 milliseconds and 800 milliseconds respectively after the card appears on screen (see the code snippet below).</p> 1030<p><img decoding="async" src="https://i.imgur.com/VclmwCO.png" alt="A snippet of code for changing the opacity of the line" /></p> 1031<p>A cooler line animation would have been âunrollingâ the line as seen in this bl.ock.org <a href="http://bl.ocks.org/duopixel/4063326">example</a>. Maybe next time!</p> 1032<h6>ANIMATING THE PIE CHART</h6> 1033<p><img decoding="async" src="https://i.imgur.com/OFHNG1M.gif" height="auto" width="300" /></p> 1034<p>Wonât pretend to understand the code used here. I basically just adapted this <a href="http://bl.ocks.org/mbostock/5100636">example</a> from bl.ocks.org and played around with the parameters till it came out the way I wanted. This example is from Mike Bostock, the creator of D3.js, and in it he explains his code line by line (see image below). Do look at it if you want to fully understand how this pie chart animation works.</p> 1035<p><img decoding="async" src="https://i.imgur.com/PWGRHDT.png" alt="Commented code from Bostock" /></p> 1036<h6>ANIMATING THE ISOTYPE CHART</h6> 1037<p><img decoding="async" src="https://i.imgur.com/w2oAeba.gif" height="auto" width="300" /></p> 1038<p>Yup, this chart is called an <a href="https://datavizblog.com/2013/08/06/dataviz-history-isotype-charts-the-vintage-visual-language-that-gave-rise-to-modern-infographics/">isotype</a> chart. This animation is another one where the transition uses delays. So if you look in the gif, you see on the left side three cards being filled one after the other. </p> 1039<p><img decoding="async" src="https://i.imgur.com/mAmxKf5.png" alt="Some of the code used in animating this isotype chart" /></p> 1040<p>They all start off with an opacity of 0, which makes them invisible (or transparent, technically). What the animation does is make each of the cards visible by changing the opacity to 1 (see image above). This is done after different delay periods of 200 milliseconds for the bottom card, 400 for the card in the middle and 600 milliseconds for the card on top.</p> 1041<h6>FINAL WORD</h6> 1042<p>If youâve never worked with D3 before, hope this write-up encourages you to give it a shot. You can look at all the code for the slideshow in the github repo <a href="https://github.com/shijithpk/2017_09_29_U17_World_Cup">here</a>. All comments and feedback are welcome! ð</p> 1043<p>
1043COVER IMAGE CREDIT: Made in inkscape with this <a href="https://www.flickr.com/photos/wjsoccer/9740957837">picture</a> from Flickr</p> 1044 </div><!-- .entry-content --> 1045 1046 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/d3/" rel="tag">d3</a><a href="https://datameet.org/tag/data-journalism/" rel="tag">data journalism</a><a href="https://datameet.org/tag/data-viz/" rel="tag">data viz</a><a href="https://datameet.org/tag/featured/" rel="tag">featured</a><a href="https://datameet.org/tag/football/" rel="tag">football</a><a href="https://datameet.org/tag/reveal-js/" rel="tag">reveal.js</a><a href="https://datameet.org/tag/visualization-2/" rel="tag">visualization</a><a href="https://datameet.org/tag/world-cup/" rel="tag">world cup</a></span></footer></article><!-- #post-2977 --> 1047 1048<article id="post-2917" class="post-2917 post type-post status-publish format-standard hentry category-uncategorized tag-data-security tag-ethics tag-infosec tag-privacy"> 1049 1050 <header class="entry-header"> 1051 <div class="entry-meta"> 1052 <span class="cat-links"><a href="https://datameet.org/category/uncategorized/" rel="category tag">Uncategorized</a></span> 1053 </div> 1054 <h1 class="entry-title"><a href="https://datameet.org/2017/07/30/ethical-reporting-of-data-and-security-issues/" rel="bookmark">Ethical Reporting of Data and Security Issues</a></h1> 1055 <div class="entry-meta"> 1056 <span class="entry-date"><a href="https://datameet.org/2017/07/30/ethical-reporting-of-data-and-security-issues/" rel="bookmark"><time class="entry-date" datetime="2017-07-30T16:09:21+05:30">July 30, 2017</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/chinmayisk/" rel="author">Chinmayi SK</a></span></span> <span class="comments-link"><a href="https://datameet.org/2017/07/30/ethical-reporting-of-data-and-security-issues/#comments">1 Comment</a></span> 1057 </div><!-- .entry-meta --> 1058 </header><!-- .entry-header --> 1059 1060 <div class="entry-content"> 1061 <div id="magicdomid6" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Who is this document for ? </b></span></div> 1062<p id="magicdomid7"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">In this era where we have a</span><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z"> mobile application </span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> and a website for everyone </span><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z">even with </span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">more software engineer</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">s</span><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z">;</span> <span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">data leaks or security issues </span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">are</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> a common phenomenon. This document </span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">will hopefully </span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">help anyone who finds leaks report them ethically </span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">without</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> caus</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">ing</span> <span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">too much </span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">harm. </span></p> 1063<div id="magicdomid9" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>What is the need of this document ? </b></span></div> 1064<div id="magicdomid10" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">In India recently we have seen a lot of leaks from </span><a href="https://cis-india.org/internet-governance/information-security-practices-of-aadhaar-or-lack-thereof-a-documentation-of-public-availability-of-aadhaar-numbers-with-sensitive-personal-financial-information-1"><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z">government websites </span></a><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">to <a href="https://www.medianama.com/2017/07/223-reliance-jio-data-leak/">JIO</a></span> <span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">to <a href="http://money.cnn.com/2017/05/18/technology/zomato-user-information-stolen/index.html">Zomato</a></span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> to <a href="http://timesofindia.indiatimes.com/city/mumbai/HIV-patients-data-in-43000-path-lab-reports-leaked-online/articleshow/55761372.cms">Medical Testing Data</a></span> <span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">. More engineers are willing to share these leaks on twitter and more news organisations are covering them. But in most of these cases we have observed that care has not been take</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">n</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> to protect the user information and privacy. Hence we decide</span><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z">d</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> to write this document. </span></div> 1065<div><em>Warning : This is not a comprehensive guide but this is what we think are best practices to follow at this time. Please make sure you talk to a lawyer in addition to this.</em></div> 1066<div id="magicdomid11" class=""></div> 1067<h3>First things first</h3> 1068<div id="magicdomid13" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Determining the criticality of a Issue<br /> 1069</b></span></div> 1070<div id="magicdomid14" class=""> <span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">A data leak or a security issue could have varied levels of criticality depend</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">ing</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> on who it causes damage to. </span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Some leaks could cause loss of revenue for a organisation </span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">(</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">eg <a href="http://www.storypick.com/hyderabad-free-food-foodpanda/">a food ordering service Food Panda in India lost a lot of revenue because of a bug</
1070a></span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">)</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">. While other leaks could result in invasion of privacy and end up affecting person</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">al</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> lives of people like the pathology clinic in Mumbai where the medical records of patients were leaked .</span><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z"> Some leaks could have financial outcomes for the data subjects, such as leaks involving financial information, passwords to accounts tied to transaction ability etc.</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> </span></div> 1071<div id="magicdomid17" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">The more the criticality of a leak the more caution you have to exercise in reporting either on social media or otherwise. So how does one determine the criticality ? Here are some simple questions to guide you to understand the criticality </span></div> 1072<div id="magicdomid18" class=""></div> 1073<ol> 1074<li id="magicdomid19"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Does this affect more than one person </span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">?</span></li> 1075<li id="magicdomid20"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Does reporting this damage lives in a long term and is the damage irrevocable </span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">?</span><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z">eg : The leak of health records of HIV Patients from a pathology lab or a hospital could affect the people involved by marking them for their entire life. This information coupled with social stigma could affect their prospects of a healthy life or their professional lives </span></li> 1076<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">How long will it take for the organisation to close the leak </span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">?</span></li> 1077<li id="magicdomid23"><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z">In case there is no clear tangible impact, could this have an impact in combination with other public data</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">?</span></li> 1078</ol> 1079<div id="magicdomid25" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Ideally It is recommended that one does not </span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z">publicize </span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">a leak without</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z"> first informing the </span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">organisation</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z"> affected</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> and following up with them to close it. </span></div> 1080<div id="magicdomid26" class=""></div> 1081<div id="magicdomid28" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Consequences I should consider when i report a </b></span><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z b"><b>security issues</b></span></div> 1082<div id="magicdomid29" class=""></div> 1083<div id="magicdomid30" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Reporting a leak in India is always a tricky situation. It could lead to criminal proceedings against you.</span> <span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">We advice that you always get a legal advise before you report anything</span><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z">. Especially </span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">if the organisation has not defined a bug reporting program. The information technology act 2000 for eg is one of the laws which defines what is considered a crime with respect to action online.</span></div> 1084<div id="magicdomid31" class=""><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">For eg : Some of the sections particularly section 43 of the act defines it be a crime to gain unintentional access or even download or damage a system. </span></div> 1085<div id="magicdomid32" class=""></div> 1086<div id="magicdomid33" class=""><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">R</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">emember reporting a leak sometimes takes</span><span class="author-a-c5z83zgq4z72zz87zz66zz72zudkz65zhz78z"> extensive </span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> follow</span> <span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">ups. It needs perseverance and patience. Sometimes reporting a leak requires you to gain skills which are not technology oriented</span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z"> eg: networking to connect with decision maker who could help plug the issues or even writing skills to share the issue online</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">. One has to be prepared to learn and get more support</span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z"> when not equipped with the right skills</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">.  </span></div> 1087<div id="magicdomid34" class=""></div> 1088<div id="magicdomid35" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">We highly recommend that you do a personal risk asse</span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">ss</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">ment before you move forward. </span></div> 1089<div id="magicdomid36" class=""></div> 1090<div id="magicdomid37" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Risk Assesment </b></span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z b"><b>for a reporter </b></span></div> 1091<div id="magicdomid38" class=""><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Warning : This is only a guideline we recommend you talk to your lawyers and security professionals and your network support for a better asses</span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">s</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">ment </span></div> 1092<ol> 1093<li id="magicdomid39"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Do I have support by which we mean :</span> 1094<ul class="list-indent1"> 1095<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">
1095Financial to support me in case of consequences</span></li> 1096<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> Personal networks to support me</span></li> 1097<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Legal Support Systems </span></li> 1098</ul> 1099</li> 1100<li id="magicdomid43"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> Who else is at risk if i am in trouble </span></li> 1101<li id="magicdomid44"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> What are the chances that the organisation you are reporting against will act to prosecute you </span></li> 1102<li id="magicdomid45"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> Do I have the mental ability / support to handle the stress for the period of time</span></li> 1103<li id="magicdomid46"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"> Do I have the technological support to help me protect myself and my loved ones   </span></li> 1104</ol> 1105<div id="magicdomid48" class=""><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z b"><b>Calculating the risk of a vulnerability </b></span></div> 1106<div id="magicdomid49" class=""><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">Security professionals around the world use some standard methodologies to calculate risk of a vulnerability. One such tools which can help you calculate the risk is this : </span></div> 1107<div id="magicdomid50" class=""><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z url"><a href="https://www.first.org/cvss/use-design">https://www.first.org/cvss/use-design</a></span></div> 1108<div id="magicdomid51" class=""><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">It is highly recommend that you do the risk assessment of a vulnerability in order to help you stratergise or even decide on continuing to work on it </span></div> 1109<h4><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Effectively document your finding </b></span></h4> 1110<div id="magicdomid54" class=""> 1111<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Documenting your story<br /> 1112</b></span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">When you chance upon a leak and confirm it by double checking. It is highly recommended to make elaborate notes on how you discovered the leak. This documentation should be done as soon as possible if possible right after you are confident of it as a leak. The reason being this is going to be something various stakeholder will be asking you repeatedly and having as many accurate details will help support your case. You can use secure note taking platforms like etherpad / riseup pad to protect your privacy if you making notes online. It is recommended that you store this offline in an encrypted format. Also take screenshots with time stamps ( this could be a double edged sword too if you are liable to prosecution because of the leak) </span></p> 1113</div> 1114<div id="magicdomid57" class=""> 1115<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Documenting the Bug</b></span></p> 1116<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">An elaborate documentation of the leak itself helps in getting it fixed faster. Engineers always find it useful to have more information. </span></p> 1117</div> 1118<div id="magicdomid60" class=""> 1119<ul class="list-indent1"> 1120<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Include steps to show how to replicate your bug , talk about pre conditions eg : it could be accessing a particular page with a particular browser / accessing it with a certain phone </span></li> 1121</ul> 1122</div> 1123<div id="magicdomid61" class=""> 1124<ul class="list-indent1"> 1125<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Include screenshots if possible. </span></li> 1126</ul> 1127<h3><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Effective process to share your findings </b></span></h3> 1128</div> 1129<div id="magicdomid65" class=""> 1130<h4><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Reaching out to concerned officials / Organisations</b></span></h4> 1131<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">The right way to report a leak would be to reach out the organisation of the leak and write to them about your findings before you go public with a leak ( offcourse this has consequences we certainly dont recommend this for Snowden or Manning type leaks assessing you risk is very important before you do this ). This can be done in many ways</span></p> 1132</div> 1133<div id="magicdomid69" class=""> 1134<ul class="list-bullet2"> 1135<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"><strong>Bug Bounty Programs</strong> : Most technology orgs have a bug bounty program and also sometimes offer rewards for reporting of leaks this is the easiest and the most rewarding way to reach out to orgs.</span></li> 1136</ul> 1137</div> 1138<div id="magicdomid70" class=""> 1139<ul class="list-bullet2"> 1140<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"><strong>Organisation Public Issue trackers</strong>
1140 : Some open organisation do not have a bug bounty programs but have public bug repositories this is either linked to their code repos or to their websites. This is another way to report any security leaks.  </span></li> 1141</ul> 1142</div> 1143<div id="magicdomid71" class=""> 1144<ul class="list-bullet2"> 1145<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"><strong>Community Outreach Co-ordinators</strong> : In the absence of a bug bounty programs or Issue trackers some organisation have Outreach Coordinators and they are developer and business liaisons for a organisation. For any critical leak it is highly advisable to talk to them to report bugs this will ensure the closure of leaks with minimal lead time   </span></li> 1146</ul> 1147</div> 1148<div id="magicdomid72" class=""> 1149<ul class="list-bullet2"> 1150<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"><strong>Public / Private mail ids</strong> : While some prefer anonymous reporting , sometimes personal reporting helps build confidence and obtains quick results. If you wish to stay anonymous it might be best to report to the public email ids available on the website. On the other hand if you have a certain degree of confidence on the intent of an organisation. It might be best to use your personal network to reach out to them and talk them through it </span></li> 1151</ul> 1152<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">In case of leaks of the government websites : Every country has a specific process to report leaks on government websites. In India specifically CERT India is re</span><span class="author-a-z73zkz68zgpuz67zmz89zz88ze81z78zgz72z">s</span><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">ponsible for the security of government websites and it is best to report to them. The other organizations one can reach out to are  </span></p> 1153</div> 1154<div id="magicdomid74" class=""></div> 1155<div id="magicdomid75" class=""> 1156<ol> 1157<li><span class="author-a-z65z9z74z2z90zz90zrgipqiz78zz87zz81zz86z">CERT India</span></li> 1158<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">MEITY</span></li> 1159<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Government Body that it is affected<br /> 1160</span></li> 1161</ol> 1162</div> 1163<div id="magicdomid78" class=""> 1164<h4><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Talking about the Security Issue in Public </b></span></h4> 1165<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">While it is very easy to talk about a security issue in public . It is also considered a honor by many and sometime a necessity to report. We recommend the following actions if you plan to do so </span></p> 1166</div> 1167<div id="magicdomid81" class=""> 1168<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b" style="color: #ffcc00"><b>As a general rule avoid talking about a leak or a issue before it has been fixed  </b></span></p> 1169</div> 1170<div id="magicdomid83" class=""> 1171<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Initiating the removal of sensitive data </b></span></p> 1172<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Make sure atleast the sensitive data is removed before you share a issue if you cant get the complete issue fixed. By Sensitive Data we mean Personally Identifiable Information. It is also recommended that you clean the data for secondary Identifiers ( these are identifiers when coupled with other information can still make data personally identifiable). If you are not sure of identifiers we recommend that you talk to organisations which have been working on Open Data for a while ( below is a list of some organisations) </span></p> 1173</div> 1174<div id="magicdomid86" class=""> 1175<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Building a campaign </b></span></p> 1176<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">While sporadic tweeting or sharing help sometime . It is always recommended that you build a plan to talk about the leak. </span></p> 1177</div> 1178<ul> 1179<li id="magicdomid89"> <span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Decide on your objectives for sharing the leak what would like to achieve . </span></li> 1180<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Identify people who are working in this field and could help you amplify your voice.</span></li> 1181<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Talk in as much accuracy of the effects of the leak and its origin </span></li> 1182<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">It might be best to leave out details of reproduction of the leak if you think it could harm more people  </span></li> 1183</ul> 1184<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Using Screenshots </b></span></p> 1185<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Sometimes using screen shots not amplifies your report and its impact. We recommend using it as opposed to share the methodology of replication in public. Though one has to be cautious while sharing screenshots make sure you block any personally Identifiable information or information that could cause damage to lives or property.</span></p> 1186<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Talking to Press </b></span></p> 1187<p style="text-align: left"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Before talking to the press please be clear of your intentions to do so. Again we recommend this only after the issues have been fixed. But sometimes it is important that you talk in your help to close the issues and we understand that. So we have put together a set of things that would make this conversation ethical and effective </span></p> 1188<p style="text-align: left"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Disclosure : </b></span></p> 1189<ul> 1190<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Make sure to disclose you intent of reporting leaks </span></li> 1191<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Disclose any funding you have received to do this work </span></li> 1192<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Avoid sharing in detailed description of the leak in case it has not been closed yet </span></li> 1193<li><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Make sure to not share sensitive data either through your screenshots or through data </span></li> 1194<li id="magicdomid102" style="list-style-type: none"></li> 1195</ul> 1196<p><em> </em></p> 1197<h3><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>List of organizations to ask for support<br /> 1198</b></span></h3> 1199<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Online Security and Whistle Blower Protection</b></span></p> 1200<ul> 1201<li id="magicdomid114"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z"><a href="https://www.accessnow.org/help/">AccessNow Helpline</a><br /> 1202</span></li> 1203<li id="magicdomid115"><a href="https://www.eff.org/about/contact"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">EFF </span></a></li> 1204<li id="magicdomid116"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">UNHCR </span></li> 1205<li id="magicdomid117"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Local Cryptoparty ( InfoSec )  </span></li> 1206<li><a href="https://www.frontlinedefenders.org/">Frontline Defenders </a></li> 1207<li id="magicdomid118"><a href="https://securitywithoutborders.org/"><span class="author-a-0vz78zaaz72zvz90zqz70zz84zz89zz66z5mz81z">Security Without Borders </span></a></li> 1208</ul> 1209<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Open Data Questions </b></span></p> 1210<ul> 1211<li id="magicdomid121"><a href="https://datameet.org/"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Data Meet </span></a></li> 1212<li id="magicdomid122"><a href="https://responsibledata.io/"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Responsible Data </span></a></li> 1213</ul> 1214<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Legal Support ( India ) </b></span></p> 1215<p><a href="http://altlawforum.org/"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">ALF  </span></a></p> 1216<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Research Methodologies </b></span></p> 1217<ul> 1218<li><a href="https://cis-india.org/"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">CIS </span></a></li> 1219<li><a href="http://www.orfonline.org/"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">ORF</span></a></li> 1220</ul> 1221<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><b>Security Methodology and Advice<br /> 1222</b></span></p> 1223<ul> 1224<li><a href="https://www.eff.org/about/contact"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">EFF </span></a></li> 1225<li><a href="https://null.co.in/"><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z">Null </span></a></li> 1226</ul> 1227<p><span class="author-a-z65z9z74z2z90zz90zrgipqiz78zz87zz81zz86z b"><b>Further Reading</b></span></p> 1228<ul class="list-bullet1"> 1229<li style="text-align: left"><span class="author-a-z65z9z74z2z90zz90zrgipqiz78zz87zz81zz86z url"><a href="https://cvth.nl/hhe.htm">https://cvth.nl/hhe.htm</a></span></li> 1230<li style="text-align: left"><span class="author-a-z65z9z74z2z90zz90zrgipqiz78zz87zz81zz86z">CERT-IN Brochure </span><span class="author-a-z65z9z74z2z90zz90zrgipqiz78zz87zz81zz86z url"><a href="http://www.cert-in.org.in/Downloader?pageid=2&type=2&fileName=BRO-2011-0101.pdf">http://www.cert-in.org.in/Downloader?pageid=2&type=2&fileName=BRO-2011-0101.pdf</a></span></li> 1231<li style="text-align: left"><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">Information technology Act 2000 </span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z url"><a href="http://www.dot.gov.in/sites/default/files/itbill2000_0.pdf">http://www.dot.gov.in/sites/default/files/itbill2000_0.pdf</a></span></li> 1232<li><span class="author-a-z65z9z74z2z90zz90zrgipqiz78zz87zz81zz86z">Responsible Disclosure Guideline by The National Cyber Security Centre (NCSC), Government of Netherlands </span> 1233<ul> 1234<li style="text-align: left"><span class="author-a-z65z9z74z2z90zz90zrgipqiz78zz87zz81zz86z url"><a href="https://www.ncsc.nl/english/security">https://www.ncsc.nl/english/security</a></span></li> 1235<li style="text-align: left"><span class="author-a-z65z9z74z2z90zz90zrgipqiz78zz87zz81zz86z url"><a href="https://www.ncsc.nl/english/current-topics/news/responsible-disclosure-guideline.html">https://www.ncsc.nl/english/current-topics/news/responsible-disclosure-guideline.html</a></span></li> 1236</ul> 1237</li> 1238</ul> 1239<p><em>This guide was written by Chinmayi S K with contributions and feedback from <span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">Thejesh GN , Chris Kubeca</span><b> </b><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z">, Amber Sinha</span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z b"> and</span><span class="author-a-z70ztw0z76zqbhuz72z2e4z84z4z77z"> Nisha Thompson</span></em></p> 1240<p><span class="author-a-167z70z6r6z88zkz65zz82zcvz66zz66zz66z b"><em>
1240This post is released under the Creative Commons Share Alike 4.0 License</em><b><br /> 1241</b></span></p> 1242<p><em>If you have any feedback or comments please feel free to write to us through this <a href="https://datameet.org/contact/">contact form</a> and we will get back to you asap </em></p> 1243<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 1244 data-shared="sharing-facebook-2917" 1245 class="share-facebook sd-button share-icon" 1246 href="https://datameet.org/2017/07/30/ethical-reporting-of-data-and-security-issues/?share=facebook" 1247 target="_blank" 1248 aria-labelledby="sharing-facebook-2917" 1249 > 1250 <span id="sharing-facebook-2917" hidden>Share on Facebook (Opens in new window)</span> 1251 <span>Facebook</span> 1252 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 1253 data-shared="sharing-linkedin-2917" 1254 class="share-linkedin sd-button share-icon" 1255 href="https://datameet.org/2017/07/30/ethical-reporting-of-data-and-security-issues/?share=linkedin" 1256 target="_blank" 1257 aria-labelledby="sharing-linkedin-2917" 1258 > 1259 <span id="sharing-linkedin-2917" hidden>Share on LinkedIn (Opens in new window)</span> 1260 <span>LinkedIn</span> 1261 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 1262 data-shared="sharing-email-2917" 1263 class="share-email sd-button share-icon" 1264 href="mailto:?subject=%5BShared%20Post%5D%20Ethical%20Reporting%20of%20%20Data%20
1264and%20Security%20Issues&body=https%3A%2F%2Fdatameet.org%2F2017%2F07%2F30%2Fethical-reporting-of-data-and-security-issues%2F&share=email" 1265 target="_blank" 1266 aria-labelledby="sharing-email-2917" 1267 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="aa887743d0" data-email-share-track-url="https://datameet.org/2017/07/30/ethical-reporting-of-data-and-security-issues/?share=email"> 1268 <span id="sharing-email-2917" hidden>Email a link to a friend (Opens in new window)</span> 1269 <span>Email</span> 1270 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 1271 data-shared="sharing-twitter-2917" 1272 class="share-twitter sd-button share-icon" 1273 href="https://datameet.org/2017/07/30/ethical-reporting-of-data-and-security-issues/?share=twitter" 1274 target="_blank" 1275 aria-labelledby="sharing-twitter-2917" 1276 > 1277 <span id="sharing-twitter-2917" hidden>Share on X (Opens in new window)</span> 1278 <span>X</span> 1279 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 1280 1281 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/data-security/" rel="tag">Data Security</a><a href="https://datameet.org/tag/ethics/" rel="tag">Ethics</a><a href="https://datameet.org/tag/infosec/" rel="tag">Infosec</a><a href="https://datameet.org/tag/privacy/" rel="tag">Privacy</a></span></footer></article><!-- #post-2917 --> 1282 1283<article id="post-2847" class="post-2847 post type-post status-publish format-standard has-post-thumbnail hentry category-gis category-map category-mapping tag-featured tag-letter tag-nakshe tag-survey-of-india"> 1284 1285 <a class="post-thumbnail" href="https://datameet.org/2017/05/03/survey-of-india-nakshe-portal/" aria-hidden="true"> 1286 <img width="1038" height="576" src="https://datameet.org/wp-content/uploads/2017/05/screencapture-soinakshe-uk-gov-in-Home-aspx-1493816348209-1038x576.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://datameet.org/wp-content/uploads/2017/05/screencapture-soinakshe-uk-gov-in-Home-aspx-1493816348209-1038x576.png 1038w, https://datameet.org/wp-content/uploads/2017/05/screencapture-soinakshe-uk-gov-in-Home-aspx-1493816348209-672x372.png 672w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /> </a> 1287 1288 1289 <header class="entry-header"> 1290 <div class="entry-meta"> 1291 <span class="cat-links"><a href="https://datameet.org/category/gis/" rel="category tag">GIS</a>, <a href="https://datameet.org/category/map/" rel="category tag">map</a>, <a href="https://datameet.org/category/mapping/" rel="category tag">mapping</a></span> 1292 </div> 1293 <h1 class="entry-title"><a href="https://datameet.org/2017/05/03/survey-of-india-nakshe-portal/" rel="bookmark">Survey of India Nakshe Portal</a></h1> 1294 <div class="entry-meta"> 1295 <span class="entry-date"><a href="https://datameet.org/2017/05/03/survey-of-india-nakshe-portal/" rel="bookmark"><time class="entry-date" datetime="2017-05-03T18:33:32+05:30">May 3, 2017</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/nisha/" rel="author">Nisha Thompson</a></span></span> </div><!-- .entry-meta --> 1296 </header><!-- .entry-header --> 1297 1298 <div class="entry-content"> 1299 <p>The Survey of India has launched a map sharing portal called <a href="http://www.soinakshe.uk.gov.in/">Nakshe</a>. Â This is a great first step for the SOI who have not exactly been the most open with their maps.</p> 1300<p>“In Nakshe portal, user can see the list and meta data of all Open Series map(OSM) district wise released by Survey of India in compliance with National Map Policy â 2005. These maps are available for free download once the user login to the site using his/her Aadhar number. ”</p> 1301<p>While we applaud this initiative we hope they make it even better and more useful to a wider population. We have submitted to the SOI a letter with recommendations for the portal you can see the letter below.</p> 1302<p>We hope to get some feedback from people who have used the portal to get maps. We are happy to keep sending them feedback in hopes they will continue to improve the portal.</p> 1303<div class="embed-documentcloud"><iframe loading="lazy" title="Feedback on the Nakshe Portal (Hosted by DocumentCloud)" src="https://embed.documentcloud.org/documents/3694123-Feedback-on-the-Naks
1303he-Portal/?embed=1&pdf=false&onlyshoworg=0&fullscreen=1&embed=1" width="474" height="711" style="border: 1px solid #d8dee2; border-radius: 0.5rem; width: 100%; height: 100%; aspect-ratio: 612.0 / 792.0; max-width: 474px; max-height: 711px;" allow="fullscreen" sandbox="allow-scripts allow-same-origin" data-source="oembed"></iframe></div> 1304<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 1305 data-shared="sharing-facebook-2847" 1306 class="share-facebook sd-button share-icon" 1307 href="https://datameet.org/2017/05/03/survey-of-india-nakshe-portal/?share=facebook" 1308 target="_blank" 1309 aria-labelledby="sharing-facebook-2847" 1310 > 1311 <span id="sharing-facebook-2847" hidden>Share on Facebook (Opens in new window)</span> 1312 <span>Facebook</span> 1313 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 1314 data-shared="sharing-linkedin-2847" 1315 class="share-linkedin sd-button share-icon" 1316 href="https://datameet.org/2017/05/03/survey-of-india-nakshe-portal/?share=linkedin" 1317 target="_blank" 1318 aria-labelledby="sharing-linkedin-2847" 1319 > 1320 <span id="sharing-linkedin-2847" hidden>Share on LinkedIn (Opens in new window)</span> 1321 <span>LinkedIn</span> 1322 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 1323 data-shared="sharing-email-2847" 1324 class="share-email sd-button share-icon" 1325 href="mailto:?subject=%5BShared%20Post%5D%20Survey%20of%20India%20Nakshe%20Portal&body=https%3A%2F%2Fdatameet.org%2F2017%2F05%2F03%2Fsurvey-of-india-nakshe-portal%2F&share=email" 1326 target="_blank" 1327 aria-labelledby="sharing-email-2847" 1328 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="7118085dec" data-email-share-track-url="https://datameet.org/2017/05/03/survey-of-india-nakshe-portal/?share=email"> 1329 <span id="sharing-email-2847" hidden>Email a link to a friend (Opens in new window)</span> 1330 <span>Email</span> 1331 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 1332 data-shared="sharing-twitter-2847" 1333 class="share-twitter sd-button share-icon" 1334 href="https://datameet.org/2017/05/03/survey-of-india-nakshe-portal/?share=twitter" 1335 target="_blank" 1336 aria-labelledby="sharing-twitter-2847" 1337 > 1338 <span id="sharing-twitter-2847" hidden>Share on X (Opens in new window)</span> 1339 <span>X</span> 1340 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 1341 1342 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/featured/" rel="tag">featured</a><a href="https://datameet.org/tag/letter/" rel="tag">letter</a><a href="https://datameet.org/tag/nakshe/" rel="tag">nakshe</a><a href="https://datameet.org/tag/survey-of-india/" rel="tag">survey of india</a></span></footer></article><!-- #post-2847 --> 1343 1344<article id="post-2824" class="post-2824 post type-post status-publish format-standard has-post-thumbnail hentry category-data category-gis category-map category-reports tag-featured tag-gis tag-mapping tag-maps tag-open-data tag-opendata"> 1345 1346 <a class="post-thumbnail" href="https://datameet.org/2017/03/15/home-for-all-our-maps/" aria-hidden="true"> 1347 <img width="1038" height="576" src="https://datameet.org/wp-content/uploads/2017/03/maps-1038x576.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://datameet.org/wp-content/uploads/2017/03/maps-1038x576.png 1038w, https://datameet.org/wp-content/uploads/2017/03/maps-672x372.png 672w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /> </a> 1348 1349 1350 <header class="entry-header"> 1351 <div class="entry-meta"> 1352 <span class="cat-links"><a href="https://datameet.org/category/data/" rel="category tag">Data</a>, <a href="https://datameet.org/category/gis/" rel="category tag">GIS</a>, <a href="https://datameet.org/category/map/" rel="category tag">map</a>, <a href="https://datameet.org/category/reports/" rel="category tag">Reports</a></span> 1353 </div> 1354 <h1 class="entry-title">
1354<a href="https://datameet.org/2017/03/15/home-for-all-our-maps/" rel="bookmark">Home for All our Maps</a></h1> 1355 <div class="entry-meta"> 1356 <span class="entry-date"><a href="https://datameet.org/2017/03/15/home-for-all-our-maps/" rel="bookmark"><time class="entry-date" datetime="2017-03-15T17:51:36+05:30">March 15, 2017</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/admin/" rel="author">Thejesh GN</a></span></span> </div><!-- .entry-meta --> 1357 </header><!-- .entry-header --> 1358 1359 <div class="entry-content"> 1360 <p>Over the years DataMeet community has created/cleaned lots of maps and made them available on GitHub. One of the biggest issue we had was visibility. Larger community couldn’t find them using google or couldn’t figure out how-to download maps or use them. Basically we lacked documentation. Happy to say we have started working on it</p> 1361<p>The home of all the projects will be</p> 1362<p><a href="http://projects.datameet.org/maps/" target="_blank">http://projects.datameet.org/maps/</a></p> 1363<p>From there you will be able to find links to others, This is the link you can use to share in general. More links below.</p> 1364<p>Most documentation have description of the map, fields, format, license, references and a quick view as to how the map looks. For example check the Kerala village map page. </p> 1365<p>There is a little bit of work left in documenting the Municipality maps. I am working on them. Otherwise documentation is in a usable state. P</p> 1366<p>lease add your comments or issues on GitHub or respond here. Each page has a link to issues to page on Github. You can use it.</p> 1367<p>In future I will try to add some example usage, links to useful examples and tutorials and also build our reference page. I am hoping </p> 1368<p>Thanks to Medha and Ataulla for helping to document these projects.</p> 1369<p>A few days back I also wrote about Community Created Free and Open Maps of India, let me know if I have missed any projects. I will add. </p> 1370<p>Map links</p> 1371<ul> 1372<li>Home – <a href="http://projects.datameet.org/maps/" target="_blank">http://projects.datameet.org/maps/</a></li> 1373<li>A.Cs – <a href="http://projects.datameet.org/maps/assembly-constituencies/" target="_blank">http://projects.datameet.org/maps/assembly-constituencies/</a></li> 1374<li>P.Cs – <a href="http://projects.datameet.org/maps/parliamentary-constituencies/" target="_blank">http://projects.datameet.org/maps/parliamentary-constituencies/</a></li> 1375<li>States – <a href="http://projects.datameet.org/maps/states/" target="_blank">http://projects.datameet.org/maps/states/</a></li> 1376<li>Districts – <a href="http://projects.datameet.org/maps/districts/" target="_blank">http://projects.datameet.org/maps/districts/</a></li> 1377<li>Municipalities – <a href="http://projects.datameet.org/Municipal_Spatial_Data/" target="_blank">http://projects.datameet.org/Municipal_Spatial_Data/</a></li> 1378<li>Village boundaries – <a href="http://projects.datameet.org/indian_village_boundaries/" target="_blank">http://projects.datameet.org/indian_village_boundaries/ </a></li> 1379</ul> 1380<p>On github they remain same, We have mainly three maps repos</p> 1381<ul> 1382<li><a href="https://github.com/datameet/maps" target="_blank">https://github.com/datameet/maps</a></li> 1383<li><a href="https://github.com/datameet/Municipal_Spatial_Data" target="_blank">https://github.com/datameet/Municipal_Spatial_Data</a></li> 1384<li><a href="https://github.com/datameet/indian_village_boundaries" target="_blank">https://github.com/datameet/indian_village_boundaries</a></li> 1385</ul> 1386<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 1387 data-shared="sharing-facebook-2824" 1388 class="share-facebook sd-button share-icon" 1389 href="https://datameet.org/2017/03/15/home-for-all-our-maps/?share=facebook" 1390 target="_blank" 1391 aria-labelledby="sharing-facebook-2824" 1392 > 1393 <span id="sharing-facebook-2824" hidden>Share on Facebook (Opens in new window)</span> 1394 <span>Facebook</span> 1395 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 1396 data-shared="sharing-linkedin-2824" 1397 class="share-linkedin sd-button share-icon"
1398 href="https://datameet.org/2017/03/15/home-for-all-our-maps/?share=linkedin" 1399 target="_blank" 1400 aria-labelledby="sharing-linkedin-2824" 1401 > 1402 <span id="sharing-linkedin-2824" hidden>Share on LinkedIn (Opens in new window)</span> 1403 <span>LinkedIn</span> 1404 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 1405 data-shared="sharing-email-2824" 1406 class="share-email sd-button share-icon" 1407 href="mailto:?subject=%5BShared%20Post%5D%20Home%20for%20All%20our%20Maps&body=https%3A%2F%2Fdatameet.org%2F2017%2F03%2F15%2Fhome-for-all-our-maps%2F&share=email" 1408 target="_blank" 1409 aria-labelledby="sharing-email-2824" 1410 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="d67e4e1431" data-email-share-track-url="https://datameet.org/2017/03/15/home-for-all-our-maps/?share=email"> 1411 <span id="sharing-email-2824" hidden>Email a link to a friend (Opens in new window)</span> 1412 <span>Email</span> 1413 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 1414 data-shared="sharing-twitter-2824" 1415 class="share-twitter sd-button share-icon" 1416 href="https://datameet.org/2017/03/15/home-for-all-our-maps/?share=twitter" 1417 target="_blank" 1418 aria-labelledby="sharing-twitter-2824" 1419 > 1420 <span id="sharing-twitter-2824" hidden>Share on X (Opens in new window)</span> 1421 <span>X</span> 1422 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 1423 1424 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/featured/" rel="tag">featured</a><a href="https://datameet.org/tag/gis/" rel="tag">GIS</a><a href="https://datameet.org/tag/mapping/" rel="tag">mapping</a><a href="https://datameet.org/tag/maps/" rel="tag">Maps</a><a href="https://datameet.org/tag/open-data/" rel="tag">open data</a><a href="https://datameet.org/tag/opendata/" rel="tag">opendata</a></span></footer></article><!-- #post-2824 --> 1425 1426<article id="post-2787" class="post-2787 post type-post status-publish format-standard has-post-thumbnail hentry category-gis category-how-to category-map tag-data-journalism tag-election-data-hackathon tag-featured tag-gis"> 1427 1428 <a class="post-thumbnail" href="https://datameet.org/2017/02/16/how-to-make-an-election-interactive/" aria-hidden="true"> 1429 <img width="782" height="544" src="https://datameet.org/wp-content/uploads/2017/02/img9.png" class="attachment-twentyfourteen-full-width size-twentyfourteen-full-width wp-post-image" alt="The sets of options available to the user while in the interactive" decoding="async" loading="lazy" srcset="https://datameet.org/wp-content/uploads/2017/02/img9.png 782w, https://datameet.org/wp-content/uploads/2017/02/img9-300x209.png 300w, https://datameet.org/wp-content/uploads/2017/02/img9-768x534.png 768w" sizes="auto, (max-width: 782px) 100vw, 782px" /> </a> 1430 1431 1432 <header class="entry-header"> 1433 <div class="entry-meta"> 1434 <span class="cat-links"><a href="https://datameet.org/category/gis/" rel="category tag">GIS</a>, <a href="https://datameet.org/category/how-to/" rel="category tag">How-To</a>, <a href="https://datameet.org/category/map/" rel="category tag">map</a></span> 1435 </div> 1436 <h1 class="entry-title"><a href="https://datameet.org/2017/02/16/how-to-make-an-election-interactive/" rel="bookmark">How to Make an Election Interactive</a></h1> 1437 <div class="entry-meta"> 1438 <span class="entry-date"><a href="https://datameet.org/2017/02/16/how-to-make-an-election-interactive/" rel="bookmark"><time class="entry-date" datetime="2017-02-16T09:59:55+05:30">February 16, 2017</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="https://datameet.org/author/shijithpk/" rel="author">Shijith Kunhitty</a></span></span> </div><!-- .entry-meta --> 1439 </header><!-- .entry-header --> 1440 1441 <div class="entry-content"> 1442 <p>So I created an interactive for Wionews.com (embedded below) on the assembly elections taking place in five states. This write-up goes into how I did the interactive and the motivations behind it.</p> 1443<div id="toc_container" role="navigation" aria-label="Table of Contents" data-nosnippet class="no_bullets toc_numbered toc_title_center"><p class="toc_title">Contents</p><ul class="toc_list"><li></li><li></li><li></li><li></li></ul></div> 1444 1445<p><center><br /> 1446The Interactive is embedded below. Click on Start to begin.</p> 1447<p><iframe loading="lazy" scrolling="no" width="400" height="650" src="https://shijithpk.github.io/2017_state_elections/homepage.html" style="text-align:center;width:400px,height:650px;border:none;overflow:hidden;"></iframe><br /> 1448</center></p> 1449<p>The interactive looks at three things:</p> 1450<ul> 1451<li>where each party won in the last assembly election in 2012 in each of the five states, visualised with a map.</li> 1452<li>where each party won in the last Lok Sabha (LS) election in 2014, if the LS seats were broken up into assembly seats. This was also done with a map.</li> 1453<li>the share of seats won by each major party in previous assembly elections, done with a line chart.</li> 1454</ul> 1455<p>I got all my data from the <a href="http://eci.nic.in/eci_main1/ElectionStatistics.aspx">Election commission</a> website and the <a href="https://github.com/datameet/maps/tree/master/assembly-constituencies" target="_blank">Datameet</a> repositories, specifically the repositories with the assembly constituency shapef
1455iles and historical assembly election <a href="https://github.com/datameet/india-election-data/blob/master/assembly-elections/assembly.csv" target="_blank">results</a>.</p> 1456<p>Now these files have a lot of information in them, but since I was making this interactive specifically for mobile screens and there wouldnât be much space to play with, I made a decision to focus just on which party won where.</p> 1457<p>As mundane as that may seem, thereâs still some interesting things you get to see. For example, from the break-up of the 2014 Lok Sabha results, you find out where the Aam Aadmi Party has gained influence in Punjab since the last assembly elections in 2012, when they werenât around.</p> 1458<figure id="attachment_2788" aria-describedby="caption-attachment-2788" style="width: 396px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img1.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img1.png" alt="The interactive page on the AAP in Punjab, 2014" width="396" height="567" class="size-full wp-image-2788" srcset="https://datameet.org/wp-content/uploads/2017/02/img1.png 396w, https://datameet.org/wp-content/uploads/2017/02/img1-210x300.png 210w" sizes="auto, (max-width: 396px) 100vw, 396px" /></a><figcaption id="caption-attachment-2788" class="wp-caption-text">The interactive page on the AAP in Punjab, 2014</figcaption></figure> 1459<h3><span id="analysing_the_data">ANALYSING THE DATA</span></h3> 1460<p>While I got the 2012 election results directly from the election commissionâs files, the breakdown of the 2014 Lok Sabha results by assembly seat needed a little more work with some data analysis in python (see code below) and manual cross-checking with other election commission files.</p> 1461<figure id="attachment_2789" aria-describedby="caption-attachment-2789" style="width: 1006px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img2.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img2.png" alt="Some of the python code used to break down the 2014 LS results by assembly seat." width="1006" height="443" class="size-full wp-image-2789" srcset="https://datameet.org/wp-content/uploads/2017/02/img2.png 1006w, https://datameet.org/wp-content/uploads/2017/02/img2-300x132.png 300w, https://datameet.org/wp-content/uploads/2017/02/img2-768x338.png 768w" sizes="auto, (max-width: 1006px) 100v
1461w, 1006px" /></a><figcaption id="caption-attachment-2789" class="wp-caption-text">Some of the python code used to break down the 2014 LS results by assembly seat. <a href="https://github.com/shijithpk/2017_state_elections/blob/master/election_results_5_state_results.ipynb" target="_blank">You can see all of it here</a>.</figcaption></figure> 1462<p>For calculating the percentages of seats won by major parties in the past, I had to do some analysis in python of Datameetâs assembly election results file.</p> 1463<figure id="attachment_2790" aria-describedby="caption-attachment-2790" style="width: 636px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img3.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img3.png" alt="Some of the python code used to calculate historical seat shares of parties." width="636" height="509" class="size-full wp-image-2790" srcset="https://datameet.org/wp-content/uploads/2017/02/img3.png 636w, https://datameet.org/wp-content/uploads/2017/02/img3-300x240.png 300w" sizes="auto, (max-width: 636px) 100vw, 636px" /></a><figcaption id="caption-attachment-2790" class="wp-caption-text">Some of the python code used to calculate historical seat shares of parties. <a href="https://github.com/shijithpk/2017_state_elections/blob/master/election_results_seat_percentages.ipynb" target="_blank">You can see all of it here</a>.<br /></figcaption></figure> 1464<h3><span id="putting_it_all_onto_a_map">PUTTING IT ALL ONTO A MAP</span></h3> 1465<p>The next thing to do was put the data of which party won where onto an assembly seat map for each state.</p> 1466<p>To get the assembly seat maps, I downloaded the assembly constituency shapefile from the datameet repository and used the software QGIS to create five separate shapefiles for each of the states. (Shapefiles are what geographers and cartographers use to make maps.)</p> 1467<figure id="attachment_2791" aria-describedby="caption-attachment-2791" style="width: 986px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img4.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img4.png" alt="A screenshot of the <a href="https://www.qgis.org" target="_blank">QGIS</a> software separating the India shapefile into separate ones for the states." width="986" height="519" class="size-full wp-image-2791" srcset="https://datameet.org/wp-content/uploads/2017/02/img4.png 986w, https://datameet.org/wp-content/uploads/2017/02/img4-300x158.png 300w, https://datameet.org/wp-content/uploads/2017/02/img4-768x404.png 768w" sizes="auto, (max-width: 986px) 100vw, 986px" /></a><figcaption id="caption-attachment-2791" class="wp-caption-text">A screenshot of the <a href="https://www.qgis.org" target="_blank">QGIS</a> software separating the India shapefile into separate ones for the states.</figcaption></figure> 1468<p>The next task is to make sure the assembly constituency names in the shapefiles match the constituency names in the election results. For example, in the shapefile, one constituency in Uttar Pradesh is spelt as Bishwavnathganj while in the election results, itâs spelt as Vishwanathganj. These spellings need to be made consistent for the map to work properly.</p> 1469<p>I did this with the <a href="http://openrefine.org/" target="_blank">OpenRefine</a> software which has a lot of inbuilt tools to detect and correct these kinds of inconsistencies. </p> 1470<p>The purist way would have been to do all this with code, but Iâve been using OpenRefine, a graphical tool, for a while now and itâs just easier for me this way. Please donât judge me! (Using graphical tools such as OpenRefine and QGIS make it harder for others to reproduce your exact results and is less transparent, which is why purists look down on a workflow that is not entirely in code.)</p> 1471<p>After the data was cleaned, I merged or âjoinedâ the 2012 and 2014 election results with the shapefile in QGIS, I then converted the shapefile into the geojson format, which is easier to visualise with javascript libraries such as <a href="https://d3js.org/" target="_blank">D3.js</a>.</p> 1472<p>I then chose the biggest three or four political parties in the 2012 assembly and 2014 LS election results for each state, and created icons for them using the tool <a href="https://inkscape.org/en/" target="_blank">Inkscape</a>. This can be done by tracing the party symbols available in various election commission <a href="http://eci.nic.in/eci_main/ElectoralLaws/HandBooks/HANDBOOK%20OF%20SYMBOLS.pdf" target="_blank">documents</a>.</p> 1473<figure id="attachment_2792" aria-describedby="caption-attachment-2792" style="width: 533px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img5.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img5.png" alt="Some of the party icons designed for the interactive" width="533" height="274" class="size-full wp-image-2792" srcset="https://datameet.org/wp-content/uploads/2017/02/img5.png 533w, https://datameet.org/wp-content/uploads/2017/02/img5-300x154.png 300w" sizes="auto, (max-width: 533px) 100vw, 533px" /></a><figcaption id="caption-attachment-2792" class="wp-caption-text">Some of the party icons designed for the interactive<br /></figcaption></figure> 1474<h3><span id="how_its_all_visualised">HOW ITâS ALL VISUALISED</span></h3> 1475<p>The way the interactive would work is if you click on the icon for a party, it downloads the geojson file which, to crudely put it, has the boundaries of the assembly seats and the names of the party thatâs won each seat.</p> 1476<figure id="attachment_2793" aria-describedby="caption-attachment-2793" style="width: 396px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img6.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img6.png" alt="The interactive map showing the NPF in Manipur in 2014" width="396" height="560" class="size-full wp-image-2793" srcset="https://datameet.org/wp-content/uploads/2017/02/img6.png 396w, https://datameet.org/wp-content/uploads/2017/02/img6-212x300.png 212w" sizes="auto, (max-width: 396px) 100v
1476w, 396px" /></a><figcaption id="caption-attachment-2793" class="wp-caption-text">The interactive map showing the NPF in Manipur in 2014</figcaption></figure> 1477<p>You then get a map with the seats belonging to that party coloured in yellow. And each time you click on a different party icon, a new map is generated. (If Iâve understood the process wrong, do let me know in the comments!)</p> 1478<p>Hereâs some of the d3 code used: </p> 1479<pre class="brush: plain; title: ; notranslate" title=""> 1480 map2 1481 .append("svg:image") //put an image onto the canvas 1482 .attr("xlink:href","../exp_buttons/bharatiya_janta_party_75.png") //take the image from the exp_buttons folder 1483 .attr('height', '75') 1484 .attr('width', '75') 1485 .attr('class','shadow partyButton') 1486 .attr('id','bjpButton') 1487 .attr("x", 30) 1488 .attr("y", 0) 1489 .on("click", function(){ 1490 map 1491 .append("svg:g") //create the map 1492 .style("fill","#4f504f") //fill the map with this black color 1493 .selectAll("path") 1494 .data(json.features) 1495 .enter() 1496 .append("path") 1497 .attr("d", pathx) 1498 .style("stroke", "#fdd928") //create yellow borders 1499 .style("opacity","1") 1500 .style("stroke-width", "1") 1501 .style("fill",colorParty); //colorparty is determined by the function below 1502 1503 //fill the seats with yellow if they were won by the âBharatiya Janta Partyâ 1504 //and if they were won by someone else, make them black 1505 1506 function colorParty(d) { 1507 if (d.properties.uttarakhand_2012_2012_1 == "Bharatiya Janta Party") { 1508 return "#fdd928" 1509 } else { 1510 return "#4f504f"; 1511 } 1512 }; 1513 }); 1514 1515</pre> 1516<p>I wonât go into the nitty gritty of how the line chart works, but essentially every time you click on one of these icons, it changes the opacity of the line representing the party into 1 making it visible while the opacity of every other line is reduced to 0 making them invisible.</p> 1517<figure id="attachment_2794" aria-describedby="caption-attachment-2794" style="width: 396px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img7.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img7.png" alt="The historical performance of the MGP in Goa." width="396" height="556" class="size-full wp-image-2794" srcset="https://datameet.org/wp-content/uploads/2017/02/img7.png 396w, https://datameet.org/wp-content/uploads/2017/02/img7-214x300.png 214w" sizes="auto, (max-width: 396px) 100vw, 396px" /></a><figcaption id="caption-attachment-2794" class="wp-caption-text">The historical performance of the MGP in Goa.</figcaption></figure> 1518<p>Hereâs some of the relevant d3 code:</p> 1519<pre class="brush: plain; title: ; notranslate" title=""> 1520svg 1521 .append("svg:image") //this tells D3 to put an image onto the canvas 1522 .attr("xlink:href","../exp_buttons/bharatiya_janta_party_75.png") //and this will be the bjp image located in the exp_buttons folder 1523 .attr('height', '75') 1524 .attr('width', '75') 1525 .attr('class','shadow partyButton') //this is what gives a button the shadow, attributes derived from css 1526 .attr('id','bjpButton') 1527 .attr("x", 0) 1528 .attr("y", height + margin.top + 20) 1529 .on("click", function(){ 1530 d3.selectAll(".line:not(.bjpLine)").style("opacity", "0"); //make all other lines invisible 1531 d3.selectAll(".bjpLine").style("opacity", "1"); //make the BJP line visible 1532 d3.select(this).classed({'shadow': false}); //remove the drop shadow from the BJP button 1533 //so that people know itâs active 1534 d3.selectAll('.partyButton:not(#bjpButton)').classed({'shadow': true}); //this puts a drop shadow onto other buttons 1535 //in case they were active 1536 1537 }); 1538 1539</pre> 1540<p>I then put everything into a <a href="https://github.com/shijithpk/2017_state_elections" target="_blank">repository on Github</a> and used Github <a href="https://pages.github.com/" target="_blank">pages</a> to âserveâ the interactive to users.</p> 1541<p>Now I havenât gone into the complexity of much of whatâs been done. For example, if you see those party symbols and the tiny little shadows under them (theyâre called drop shadows), it took me at least two days to make that happen.</p> 1542<figure id="attachment_2795" aria-describedby="caption-attachment-2795" style="width: 218px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img8.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img8.png" alt="It took two days to get these drop shadows!" width="218" height="117" class="size-full wp-image-2795" /></a><figcaption id="caption-attachment-2795" class="wp-caption-text">It took two days to get these drop shadows!</figcaption></figure> 1543<h3><span id="motivations_behind_the_interactive">MOTIVATIONS BEHIND THE INTERACTIVE</span></h3> 1544<p>As for the design, I wanted something that people would just click/swipe through, that they wouldnât have to scroll through, and also limit the data on display, giving only as much as someone can absorb at a glance.</p> 1545<p>My larger goal was to try and start doing data journalism thatâs friendlier and more approachable than the stuff Iâve been doing in the past such as this <a href="http://blog.shijith.com/2015/01/last-word-on-jharkhand-elections.html" target="_blank">blogpost</a>
1545 on the Jharkhand elections.</p> 1546<p>I actually read a lot on user interface design, after which I made sure that the icons people tap on their screen are large enough for their thumbs, that icons were placed in the lower half of the screen so that their thumbs wouldnât have to travel as much to tap on them, and adopted <a href="http://www.hongkiat.com/blog/flat-20/" target="_blank">flat design</a> with just a few drop shadows and not too many what-are-called <a href="http://glasscanopy.com/flat-design-vs-skeuomorphism-pros-cons/" target="_blank">skeumorphic</a> effects.</p> 1547<p>Another goal was to allow readers to get to the information theyâre most interested in without having to wade through paras of text by just tapping on various options.</p> 1548<figure id="attachment_2796" aria-describedby="caption-attachment-2796" style="width: 782px" class="wp-caption aligncenter"><a href="https://datameet.org/wp-content/uploads/2017/02/img9.png"><img loading="lazy" decoding="async" src="https://datameet.org/wp-content/uploads/2017/02/img9.png" alt="The sets of options available to the user while in the interactive" width="782" height="544" class="size-full wp-image-2796" srcset="https://datameet.org/wp-content/uploads/2017/02/img9.png 782w, https://datameet.org/wp-content/uploads/2017/02/img9-300x209.png 300w, https://datameet.org/wp-content/uploads/2017/02/img9-768x534.png 768w" sizes="auto, (max-width: 782px) 100vw, 782px" /></a><figcaption id="caption-attachment-2796" class="wp-caption-text">The sets of options available to the user while in the interactive</figcaption></figure> 1549<p>I hacked a lot of D3.js examples on <a href="https://bl.ocks.org/" target="_blank">bl.ocks.org</a> and <a href="https://stackoverflow.com/" target="_blank">stackoverflow.com</a> to arrive at the final interactive, Iâm still some way away from writing d3 code from scratch, but I hope to get there soon.</p> 1550<p>Because Iâm not a designer, web developer, data scientist or a statistician, I may have violated lots of best practices in those fields. So if you happen to come across some noobie mistake, do let me know in the comments, Iâm here to learn, thanks! ð</p> 1551<hr> 1552<p><a href="http://blog.shijith.com/" target="_blank">Shijith Kunhitty</a> is a data journalist at <a href="http://wionews.com">WION</a> and former deputy editor of IndiaSpend. He is an alumnus of Washington University, St. Louis and Hindu College, Delhi.</p> 1553<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><div class="sd-content"><ul><li class="share-facebook"><a rel="nofollow noopener noreferrer" 1554 data-shared="sharing-facebook-2787" 1555 class="share-facebook sd-button share-icon" 1556 href="https://datameet.org/2017/02/16/how-to-make-an-election-interactive/?share=facebook" 1557 target="_blank" 1558 aria-labelledby="sharing-facebook-2787" 1559 > 1560 <span id="sharing-facebook-2787" hidden>Share on Facebook (Opens in new window)</span> 1561 <span>Facebook</span> 1562 </a></li><li class="share-linkedin"><a rel="nofollow noopener noreferrer" 1563 data-shared="sharing-linkedin-2787" 1564 class="share-linkedin sd-button share-icon" 1565 href="https://datameet.org/2017/02/16/how-to-make-an-election-interactive/?share=linkedin" 1566 target="_blank" 1567 aria-labelledby="sharing-linkedin-2787" 1568 > 1569 <span id="sharing-linkedin-2787" hidden>Share on LinkedIn (Opens in new window)</span> 1570 <span>LinkedIn</span> 1571 </a></li><li class="share-email"><a rel="nofollow noopener noreferrer" 1572 data-shared="sharing-email-2787" 1573 class="share-email sd-button share-icon" 1574 href="mailto:?subject=%5BShared%20Post%5D%20How%20to%20Make%20an%20Election%20Interactive&body=https%3A%2F%2Fdatameet.org%2F2017%2F02%2F16%2Fhow-to-make-an-election-interactive%2F&share=email" 1575 target="_blank" 1576 aria-labelledby="sharing-email-2787" 1577 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-sh
1577are-nonce="c4e88415f2" data-email-share-track-url="https://datameet.org/2017/02/16/how-to-make-an-election-interactive/?share=email"> 1578 <span id="sharing-email-2787" hidden>Email a link to a friend (Opens in new window)</span> 1579 <span>Email</span> 1580 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 1581 data-shared="sharing-twitter-2787" 1582 class="share-twitter sd-button share-icon" 1583 href="https://datameet.org/2017/02/16/how-to-make-an-election-interactive/?share=twitter" 1584 target="_blank" 1585 aria-labelledby="sharing-twitter-2787" 1586 > 1587 <span id="sharing-twitter-2787" hidden>Share on X (Opens in new window)</span> 1588 <span>X</span> 1589 </a></li><li class="share-end"></li></ul></div></div></div> </div><!-- .entry-content --> 1590 1591 <footer class="entry-meta"><span class="tag-links"><a href="https://datameet.org/tag/data-journalism/" rel="tag">data journalism</a><a href="https://datameet.org/tag/election-data-hackathon/" rel="tag">election data hackathon</a><a href="https://datameet.org/tag/featured/" rel="tag">featured</a><a href="https://datameet.org/tag/gis/" rel="tag">GIS</a></span></footer></article><!-- #post-2787 --> 1592 <nav class="navigation paging-navigation"> 1593 <h1 class="screen-reader-text"> 1594 Posts navigation </h1> 1595 <div class="pagination loop-pagination"> 1596 <span aria-current="page" class="page-numbers current">1</span> 1597<a class="page-numbers" href="https://datameet.org/blog/page/2/">2</a> 1598<span class="page-numbers dots">…</span> 1599<a class="page-numbers" href="https://datameet.org/blog/page/16/">16</a> 1600<a class="next page-numbers" href="https://datameet.org/blog/page/2/">Next →</a> </div><!-- .pagination --> 1601 </nav><!-- .navigation --> 1602 1603 </div><!-- #content --> 1604 </div><!-- #primary --> 1605 </div><!-- #main-content --> 1606 1607<div id="secondary"> 1608 <h2 class="site-description">DataMeet is a community of Data Science and Open Data enthusiasts.</h2> 1609 1610 <nav class="navigation site-navigation secondary-navigation"> 1611 <div class="menu-cities-container"><ul id="menu-cities" class="menu"><li id="menu-item-1448" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1448"><a href="https://datameet.org/chapters/bangalore/">Bangalore</a></li> 1612<li id="menu-item-1482" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1482"><a href="https://datameet.org/chapters/delhi/">Delhi</a></li> 1613<li id="menu-item-1492" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1492"><a href="https://datameet.org/chapters/mumbai/">Mumbai</a></li> 1614<li id="menu-item-1801" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1801"><a href="https://datameet.org/chapters/ahmedabad/">Ahmedabad</a></li> 1615<li id="menu-item-1999" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1999"><a href="https://datameet.org/chapters/pune/">Pune</a></li> 1616</ul></div> </nav> 1617 1618 <div id="primary-sidebar" class="primary-sidebar widget-area" role="complementary"> 1619 <aside id="text-5" class="widget widget_text"> <div class="textwidget"><a href="https://datameet.org"><img src="https://datameet.org/wp-content/uploads/2014/05/cropped-datameet_logo_v.1.21.png"/></a></div> 1620 </aside><aside id="nav_menu-8" class="widget widget_nav_menu"><h1 class="widget-title">Cities</h1><nav class="menu-cities-container" aria-label="Cities"><ul id="menu-cities-1" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1448"><a href="https://datameet.org/chapters/bangalore/">Bangalore</a></li> 1621<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1482"><a href="https://datameet.org/chapters/delhi/">Delhi</a></li> 1622<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1492"><a href="https://datameet.org/chapters/mumbai/">Mumbai</a></li> 1623<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1801"><a href="https://datameet.org/chapters/ahmedabad/">Ahmedabad</a></li> 1624<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1999"><a href="https://datameet.org/chapters/pune/">Pune</a></li> 1625</ul></nav></aside> </div><!-- #primary-sidebar --> 1626 </div><!-- #secondary --> 1627 1628 </div><!-- #main --> 1629 1630 <footer id="colophon" class="site-footer"> 1631 1632 1633<div id="supplementary"> 1634 <div id="footer-sidebar" class="footer-sidebar widget-area" role="complementary"> 1635 <aside id="text-3" class="widget widget_text"><h1 class="widget-title">We share our Work</h1> <div class="textwidget"><p><a href="https://datameet.org/copyright/">All our work is shared under very liberal and community friendly licenses</a>.<br /> 1636<br />Unless explicitly stated<br /> 1637<br />⤠All our blog posts, video, audio and wiki text is under Creative
1637Commons â Attribution-ShareAlike 2.0 Generic (CC BY-SA 2.0).<br /> 1638<br />⤠All our code is under GNU GPL v3.<br /> 1639<br />⤠All our data is under Open Data Commons Open Database License (ODbL).</p> 1640</div> 1641 </aside><aside id="blog_subscription-4" class="widget widget_blog_subscription jetpack_subscription_widget"><h1 class="widget-title">Subscribe to Blog via Email</h1> 1642 <div class="wp-block-jetpack-subscriptions__container"> 1643 <form action="#" method="post" accept-charset="utf-8" id="subscribe-blog-blog_subscription-4" 1644 data-blog="40323761" 1645 data-post_access_level="everybody" > 1646 <div id="subscribe-text"><p>Enter your email address to subscribe to this blog and receive notifications of new posts by email.</p> 1647</div> 1648 <p id="subscribe-email"> 1649 <label id="jetpack-subscribe-label" 1650 class="screen-reader-text" 1651 for="subscribe-field-blog_subscription-4"> 1652 Email Address </label> 1653 <input type="email" name="email" autocomplete="email" required="required" 1654 value="" 1655 id="subscribe-field-blog_subscription-4" 1656 placeholder="Email Address" 1657 /> 1658 </p> 1659 1660 <p id="subscribe-submit" 1661 > 1662 <input type="hidden" name="action" value="subscribe"/> 1663 <input type="hidden" name="source" value="https://datameet.org/blog/"/> 1664 <input type="hidden" name="sub-type" value="widget"/> 1665 <input type="hidden" name="redirect_fragment" value="subscribe-blog-blog_subscription-4"/> 1666 <input type="hidden" id="_wpnonce" name="_wpnonce" value="3440e26f6b" /><input type="hidden" name="_wp_http_referer" value="/blog/" /> <button type="submit" 1667 class="wp-block-button__link" 1668 name="jetpack_subscriptions_widget" 1669 > 1670 Subscribe </button> 1671 </p> 1672 </form> 1673 <div class="wp-block-jetpack-subscriptions__subscount"> 1674 Join 974 other subscribers </div> 1675 </div> 1676 1677</aside><aside id="nav_menu-7" class="widget widget_nav_menu"><h1 class="widget-title">Events</h1><nav class="menu-events-container" aria-label="Events"><ul id="menu-events" class="menu"><li id="menu-item-734" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-734"><a href="https://datameet.org/category/events/data-workshops/">Data Workshops</a></li> 1678<li id="menu-item-735" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-735"><a href="https://datameet.org/category/events/datameet-up-event/">DataMeet-Up</a></li> 1679<li id="menu-item-736" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-736"><a href="https://datameet.org/category/events/opendatacamp/">OpenDataCamp</a></li> 1680<li id="menu-item-737" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-737"><a href="https://datameet.org/category/events/scrapathon/">Scrapathon</a></li> 1681<li id="menu-item-1163" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1163"><a href="https://datameet.org/category/events/geoblr-events/">GeoBLR</a></li> 1682</ul></nav></aside> </div><!-- #footer-sidebar --> 1683</div><!-- #supplementary --> 1684 1685 <div class="site-info"> 1686 <a href="https://wordpress.org/" class="imprint"> 1687 Proudly powered by WordPress </a> 1688 </div><!-- .site-info --> 1689 </footer><!-- #colophon --> 1690 </div><!-- #page --> 1691 1692
1692<script type="speculationrules"> 1693{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/twentyfourteen/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 1694</script>
1694 1695 1696
1696<script type="text/javascript"> 1697 window.WPCOM_sharing_counts = {"https://datameet.org/2018/07/18/odk/":3256,"https://datameet.org/2018/07/12/know-your-mp-probing-election-affidavits-with-maps/":3233,"https://datameet.org/2018/06/13/openrefine-bus-stop/":3195,"https://datameet.org/2018/04/13/a-tool-for-composing-transit-schedules-data-in-static-gtfs-standard/":3141,"https://datameet.org/2018/04/02/data-diaries-what-i-learned/":3103,"https://datameet.org/2017/07/30/ethical-reporting-of-data-and-security-issues/":2917,"https://datameet.org/2017/05/03/survey-of-india-nakshe-portal/":2847,"https://datameet.org/2017/03/15/home-for-all-our-maps/":2824,"https://datameet.org/2017/02/16/how-to-make-an-election-interactive/":2787}; 1698 </script>
1698 1699
1699<script id="syntaxhighlighter-core-js" src="https://datameet.org/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shCore.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 1699
1699
1700<script id="syntaxhighlighter-brush-plain-js" src="https://datameet.org/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPlain.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 1700
1700
1701<script type='text/javascript'> 1702 (function(){ 1703 var corecss = document.createElement('link'); 1704 var themecss = document.createElement('link'); 1705 var corecssurl = "https://datameet.org/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?ver=3.0.9b"; 1706 if ( corecss.setAttribute ) { 1707 corecss.setAttribute( "rel", "stylesheet" ); 1708 corecss.setAttribute( "type", "text/css" ); 1709 corecss.setAttribute( "href", corecssurl ); 1710 } else { 1711 corecss.rel = "stylesheet"; 1712 corecss.href = corecssurl; 1713 } 1714 document.head.appendChild( corecss ); 1715 var themecssurl = "https://datameet.org/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css?ver=3.0.9b"; 1716 if ( themecss.setAttribute ) { 1717 themecss.setAttribute( "rel", "stylesheet" ); 1718 themecss.setAttribute( "type", "text/css" ); 1719 themecss.setAttribute( "href", themecssurl ); 1720 } else { 1721 themecss.rel = "stylesheet"; 1722 themecss.href = themecssurl; 1723 } 1724 document.head.appendChild( themecss ); 1725 })(); 1726 SyntaxHighlighter.config.strings.expandSource = '+ expand source'; 1727 SyntaxHighlighter.config.strings.help = '?'; 1728 SyntaxHighlighter.config.strings.alert = 'SyntaxHighlighter\n\n'; 1729 SyntaxHighlighter.config.strings.noBrush = 'Can\'t find brush for: '; 1730 SyntaxHighlighter.config.strings.brushNotHtmlScript = 'Brush wasn\'t configured for html-script option: '; 1731 SyntaxHighlighter.defaults['pad-line-numbers'] = false; 1732 SyntaxHighlighter.defaults['toolbar'] = false; 1733 SyntaxHighlighter.all(); 1734 1735 // Infinite scroll support 1736 if ( typeof( jQuery ) !== 'undefined' ) { 1737 jQuery( function( $ ) { 1738 $( document.body ).on( 'post-load', function() { 1739 SyntaxHighlighter.highlight(); 1740 } ); 1741 } ); 1742 } 1743</script>
vendor: 1 bytes, line 1743
1743
1744<script id="toc-front-js-extra"> 1745var tocplus = {"visibility_show":"show","visibility_hide":"hide","toggle_style":"brackets","width":"Auto"}; 1746//# sourceURL=toc-front-js-extra 1747</script>
vendor: 1 bytes, line 1747
1747
1748<script id="toc-front-js" src="https://datameet.org/wp-content/plugins/table-of-contents-plus/assets/front.min.js?ver=202609.1"></script>
vendor: 1 bytes, line 1748
1748
1749<script id="imagesloaded-js" src="https://datameet.org/wp-includes/js/imagesloaded.min.js?ver=5.0.0"></script>
vendor: 1 bytes, line 1749
1749
1750<script id="masonry-js" src="https://datameet.org/wp-includes/js/masonry.min.js?ver=4.2.2"></script>
vendor: 1 bytes, line 1750
1750
1751<script id="jquery-masonry-js" src="https://datameet.org/wp-includes/js/jquery/jquery.masonry.min.js?ver=3.1.2b"></script>
vendor: 1 bytes, line 1751
1751
1752<script id="jetpack-stats-js-before"> 1753_stq = window._stq || []; 1754_stq.push([ "view", {"v":"ext","blog":"40323761","post":"7","tz":"5.5","srv":"datameet.org","j":"1:16.2"} ]); 1755_stq.push([ "clickTrackerInit", "40323761", "7" ]); 1756_stq = window._stq || []; 1757_stq.push([ "view", {"v":"ext","blog":"40323761","post":"7","tz":"5.5","srv":"datameet.org","j":"1:16.2"} ]); 1758_stq.push([ "clickTrackerInit", "40323761", "7" ]); 1759//# sourceURL=jetpack-stats-js-before 1760</script>
vendor: 1 bytes, line 1760
1760
1761<script data-wp-strategy="defer" defer fetchpriority="low" id="jetpack-stats-js" src="https://stats.wp.com/e-202640.js"></script>
vendor: 1 bytes, line 1761
1761
1762<script id="sharing-js-js-extra"> 1763var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"}; 1764//# sourceURL=sharing-js-js-extra 1765</script>
vendor: 1 bytes, line 1765
1765
1766<script id="sharing-js-js" src="https://datameet.org/wp-content/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js?ver=16.2"></script>
vendor: 1 bytes, line 1766
1766
1767<script id="sharing-js-js-after"> 1768window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {}; 1769window.WPCOM_sharing_popups[ "facebook" ] = "menubar=1,resizable=1,width=600,height=400"; 1770window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {}; 1771window.WPCOM_sharing_popups[ "linkedin" ] = "menubar=1,resizable=1,width=580,height=450"; 1772window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {}; 1773window.WPCOM_sharing_popups[ "twitter" ] = "menubar=1,resizable=1,width=600,height=350"; 1774//# sourceURL=sharing-js-js-after 1775</script>
vendor: 1 bytes, line 1775
1775
1776<script id="wp-emoji-settings" type="application/json"> 1777{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://datameet.org/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 1778</script>
vendor: 1 bytes, line 1778
1778
1779<script type="module"> 1780/*! This file is auto-generated */ 1781var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 1782//# sourceURL=https://datameet.org/wp-includes/js/wp-emoji-loader.min.js 1783</script>
1783 1784</body> 1785</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.