Beyond Web 2.0 Russell Keith-Magee
- Django guy
- Back in 2005 when Django first came out
- Web was fairly simple, click something and something happened
- model, views, templates, forms, url routing
- The web c 2016
- Rich client
- API
- mobile clients, native apps
- realtime channels
- Rich client frameworks
- reponse to increased complexity that is required
- Complex client-side and complex server-side code
- Isomorphic Javascript development
- Same code on both client and server
- Only works with javascript really
- hacks to work with other languages but not great
- Isomorphic
javascriptdevelopment- Requirements
- Need something in-between server and browser
- Was once done with Java based web clients
- model, view, controller
- API-first development
- How does it work with high-latency or no-connection?
- Part of the controller and some of the model needed in the client
- If you have python on the server you need python on the client
- brython, skulp, pypy.js
- <script type=”text/pyton”>
- Note: Not phyton being compiled into javascript. Python is run in the browser
- Need to download full python interpreter though (500k-15M)
- Fairly fast
- Do we need a full python interpreter?
- Maybe something just to run the bytecode
- Batavia
- Javascript implementation of python virtual machine
- 10KB
- Downside – slower than cpython on the same machine
- WASM
- Like assembly but for the web
- Benefits from 70y of experience with assembly languages
- Close to Cpython speed
- But
- Not quite on browsers
- No garbage collection
- Cannot manipulate DOM
- But both coming soon
- Example: http://bit.ly/covered-in-bees
- But “possible isn’t enough”
- pybee.org
- pybee.org/bee/join
Using “old skool” Free tools to easily publish API documentation – Alec Clew
- https://github.com/alecthegeek/doc-api-old-skool
- You API is successful if people are using it
- High Quality and easy to use
- Provide great docs (might cut down on support tickets)
- Who are you writing for?
- Might not have english as first language
- New to the API
- Might have different tech expertise (different languages)
- Different tooling
- Can be hard work
- Make better docs
- Use diagrams
- Show real code (complete and working)
- Keep your sentence simple
- Keep the docs current
- Treat documentation like code
- Fix bugs
- add features
- refactor
- automatic builds
- Cross platform support
- “Everything” is text and under version control
- Demo using pandoc
- Tools
- pandoc, plantuml, Graphviz, M4, make, base/sed/python/etc
Lightning Talks
- Nic – Alt attribute
- need to be added to images
- Don’t have alts when images as links
- http://bit.ly/Nic-slides
- Vaibhav Sager – Travis-CI
- Builds codes
- Can build websites
- Uses to build Resume
- Build presentations
- Steve Ellis
- Openshift Origin Demo
- Alec Clews
- Python vs C vs PHP vs Java vs Go for small case study
- Implemented simple xmlrpc client in 5 languages
- Python and Go were straightforward, each had one simple trick (40-50 lines)
- C was 100 lines. A lot harder. Conversions, etc all manual
- PHP wasn’t too hard. easier in modern vs older PHP
- Daurn
- Lua
- Fengari.io – Lua in the browser
- Alistair
- How not to docker ( don’t trust the Internet)
- Don’t run privileged
- Don’t expose your docker socket
- Don’t use host network mode
- Don’t where your code is FROM
- Make sure your kernel on your host is secure
- Daniel
- Put proxy in front of the docker socket
- You can use it to limit what no-priv users with socket access to docker port can do