Sunday, September 16, 2018

PyconAU 2018 - Keep Notes

This is a raw dump of notes I took on keep while attending PyconAU. Each to be fully expanded to an article on its own. Suitably redacted to keep my intrusive thoughts to myself. 

Documentation and Technical Writing
  • Persuasive, Referential, Literary, Expressive. Writing pull requests. Foucault on discourse.
  • Think goals, Think audience, Write (structure, conventions). Active vs Passive (active is shorter). Bullets.
  • Plain English, easy words. Edit. Find good writing.
API Design
  • Forestry Data. User interface for developers. Access control , pagination. API versioning. Break in controlled fashion. Deprecation schedule.
  • Accept versioning header. URL Path versions. Less emotional versions. Small changes version transformer. Django middleware.
  • Auth- Token. OAuth.
  • Standardized (familiarity, avoid pitfalls, standards win) - jsonapi.org (next,.previous), graphql, Basecamp. Swagger.
  • Larger data sets out of band
  • Documentation. Selling page. Dev account, demo key, root url. Encodings, formats
  • OpenAPI, Swagger, tools, docs/code, reduce friction, automation.
Working with Spatial data in Python
  • Routing. Isochrones, Latte line.
  • Db spatial extension. Point in polygon.
  • Basemaps, JS library.
  • Geomesa.
Multi-lingual Python
  • i18n, l10n, language_code, locale, po (files translation). Language session choice flow. Url-conf.
  • trans and trans block tag. Every file must have the i18n tag. Use lazy in models.py.
  • makemessages in all depencies. Zh_cn.
  • Model fields to enter data. Keep tables in _zh_cn. Transifix.
Web without Javascript
  • Intercooler.js. CSOF… use web 1.0 submissions in a 2.0 way.
  • Large data. Out of-band.
Database optimization
  • Write amplification. Partial index. Hash, GIN(generalised inverse index) , BRIN (min/max)
Design for non-designers
  • Choose few fronts. Use different spacing. Curated fonts. Beautiful Web Type. Fontpair.co . Google Fonts. Making things clean (whitespace). Data analytics. Less is more. Unsplash, Photopin, Fiverr. Importance of imitation.
Designing environments with Docker
  • Front end builder. Task queue/Celery. Postgres. Docker compose .
Hypothesis to replace auto-manual tests
  • Hypothesis for testing by schema. Always true unless there is a bug. Fuzz the code with variety of input. Faker. Django integration push model and clean up. Quick check.
  • Generators.
  • Use lib2to3 parse through Python code and refactor / reformat. Bowler, safe refactoring for Python. Reuse refactoring code.
Tom Eastman - Keynote
  • koordinates, geospatial data. Effective learning for programmers. Effortful retrieval.
  • Fixed vs Growth mindset.
Lightning talks
  • DRF model pusher. Ably, Django Channels.
  • Claire Krause, GA satellite imagery analysis
  • Wrapt, allows introspection of wrapped functions. Context manager.
Many Python Web Frameworks
  • Cherrypy, Class based views. Falcon API first framework , fast, returns json for microservices. Hug with syntactic sugar. CCBV. Tornado, Async. Sanic.
Women in Python
  • Jason Fagon.
  • Katherine Johnson.
  • Carol Willing (Jupyter)
Celery and alternatives
  • Celery message formats, task chaining. Disable pre-fetch, long running. Own task queue. RQ (redis queue). Huey. TaskTiger(distributed locking). Dask (pydata), scheduler distributes pandas and numpy dataframes. Task chaining, celery import chain. RQ failed queue.
Trouble with sensor data
  • Kafka stream processing. React and Socket.io. HTML5 gyroscope API.
Pub conversations
  • RNN (Fast.ai), pre-trained model zoo.