Python for Social Good

Python for Social Good

7874898d532b989d3a1108cade372cd2?s=128

Dražen Lučanin

May 04, 2018
Tweet

Transcript

  1. 2.

    • Let’s take a step back… • from startups, VR,

    chatbots, blokchains, Ubers for X… • take a broader look at the world and its problems • What does society really need at this point? • … and can we do it with Python? What’s this about?
  2. 3.

    ⚡Calls for action (CFA) • Talk sprinkled with ⚡calls for

    action • Lots of link – available on this awesome list • https://github.com/metakermit/awesome-python-for- social-good • The slides will be there and on Twitter
  3. 4.

    • PhD in computer science at TU Wien • Analysing

    energy efficiency of data centers • Punk Rock Dev – since 2015 • Developing apps with a kick! • https://punkrockdev.com/ • Music, drawing & some political activism here and there Who am I?
  4. 5.

    So, Python for Social Good • Modern society has many

    problems • (and we have limited time) • 7 big topics – lately in the spotlight & technology-related
  5. 6.

    The Open Systems Interconnection model (OSI model) of social good

    Volunteering Politics Democracy Free Press Privacy ☎ Internet Environment
  6. 9.
  7. 10.

    • Trump’s admin. deleting public climate change data • Public

    data archivers • https://envirodatagov.org/ • http://eotarchive.cdlib.org/2016.html • http://www.cdlib.org/ • http://www.ppehlab.org/datarefuge • https://climatemirror.org/ Global Warming Data
  8. 11.

    • ⚡Call for action (CFA) • Python scraping • Requests

    + BeautifulSoup • https://scrapy.org/ • https://scrapinghub.com/ Global Warming Data
  9. 13.

    • Is there a way to make mining computation more

    green? • Supply-demand balancing • Negative energy prices • Helping balance out volatility of e.g. wind turbines • Can a proof of environment friendliness be encoded? • A blockchain in less than 50 lines of Python • …and green? ♻ Blockchain mining ⚡CFA
  10. 16.

    • The "Mirai" botnet • > 500,000 compromised routers, refrigerators,

    TVs, DVRs, baby monitors, thermostats, and webcams • Took down DynDNS, causing an Internet blackout • Memcached attack • 88,000 misconfigured memcached servers on the Internet • 50k x amplification – a 203 byte request causes a 100 MB response • The largest DDoS attack ever! 1.3 Tbps Botnet DDoS attacks
  11. 19.

    • Make sure your servers are secure • Don’t expose

    Memcached to the Internet! • Keep your software up to date – https://github.com/punkrockdev/server • Unattended OS upgrades • Using ansible – a Python-based server management tool • Metasploit (PyMetasploit) – tools for pen-testing your sites • Learn the basics of internet security • Use HTTPS – Let’s Encrypt • Hash passwords with scrypt • Don’t roll your own crypto – https://cryptography.io/ for Python ☎ Internet ⚡CFA
  12. 20.

    • Don’t let your users behave insecurely • 86% of

    passwords are terrible (123456, password, …) • Appear in leaked password datasets • Pwned Passwords V2 • Elegant & safe API check • You send a part of the hashed password and get back a searchable dataset of “pwned passwords” • You can self-host the service too ☎ Internet ⚡CFA
  13. 21.
  14. 22.
  15. 23.

    • Snowden reveals government surveillance programs (June 2013) • Privacy-protecting

    solutions are hard to fund • I’ve tried with https://github.com/cloudfleet Privacy
  16. 24.

    • Great software for encrypted communication • Signal – peer-to-peer

    encrypted chat app • Mailpile – web-based email client w/ PGP in Python • Both are open source and could use help Privacy ⚡CFA
  17. 27.

    • Help fact-checking sites • https://www.snopes.com/ • http://www.politifact.com/ • http://fivethirtyeight.com/

    • Start something like this in your own community • Be wary of the possibility of tampering with information • TensorFlow detect fake news – Jupyter notebooks & datasets on Kaggle • https://www.kaggle.com/c/fake-news • https://www.kaggle.com/datasets?sortBy=relevance&search=fake+news Free Press ⚡CFA
  18. 28.
  19. 29.

    • Facebook + Cambridge Analytics + trolls + fake news

    = impact elections • Voting machines in Germany hacked • Outright "cyber warfare” – attack on Estonia’s systems Democracy
  20. 30.

    • Help find software vulnerabilities • Identify trolls / bots

    on social networks • TensorFlow • https://www.kaggle.com/vikasg/russian-troll-tweets Democracy ⚡CFA
  21. 31.
  22. 32.

    • Get involved! • A world where decisions aren’t based

    on facts takes us back to the dark ages • Science and humanism must prevail • Critical thinking and evidence (rationalism and empiricism) > dogma or superstition • “Ideological” divisions are crude • Debate is good, but we must ground it in facts • Daniel Kahneman – "Thinking, Fast and Slow” • Human biases • Think slow! Analyse available data Politics
  23. 33.

    • Analyse the data • Open data • Scrape it!

    • I’ve done this for the city budget spending data in Zagreb – https://github.com/za-grad/otvoreni-akti • Code for America / Europe / … • Civic hacktivism • Help your town make a better service for something Politics ⚡CFA
  24. 34.

    • Help politicians you support • Map candidates’ lists –

    http://liste.zagrebjenas.hr/ • Donations – https://zagrebjenas.herokuapp.com/ Politics ⚡CFA
  25. 35.

    • Subvert politicians you don’t support • Trump2Cash (@Trump2Cash) •

    A stock trading bot powered by Trump tweets • Open source in Python – https://github.com/maxbbraun/trump2cash • Twitter streaming API • Google Cloud NLP API • Wikidata company data • TradeKing stock API Politics ⚡CFA
  26. 36.

    • Make money • Donate it • American Civil Liberties

    Union • the Natural Resources Defense Council, an • Planned Parenthood Politics ⚡CFA
  27. 37.

    • Personally, I have a very particular set of skills,

    skills that allow me to have some fun with Mr. Trump’s emotional incontinence and maybe effect positive change along the way. – Max Braun Politics ⚡CFA
  28. 39.

    • Helping the economically disadvantaged • Helping the misrepresented •

    Other forms of helping your community Volunteering
  29. 40.

    • Both local & remote • http://www.refugeescode.at/ • https://www.freecodecamp.org/nonprofits/ •

    Help teach others • Python is the No. 1 language in education Volunteering ⚡CFA