- The ribs yesterday ended up VERY spicy. The ghost pepper sauce (bhut jolokia) is 150k scoville heat units. I used a lot. Also made sweet potato pancakes properly today.
- Game of thrones was good, but the resolution was too simple. No warging, no myths, no allegiance swapping, no surprises, bad battle tactics, no legendary explanations, no major deaths, etc. The night king isn’t apparently the primary antagonist. We’re gonna end politically with a human vs human war.
- Python at Netflix: https://medium.com/netflix-techblog/python-at-netflix-bba45dae649e. Their CDN for all media is called Open Connect, but a lot of their service infrastructure is Python (load balancing, ML, automation, monitoring, alerting, infosec, marketing, metrics).
- AWS for hosting, spinnaker for deployment, atlas for monitoring, genie for job execution, winston to pull it all together.
- BLESS = their SSH certificate authority.
- Jupyter
- I’ve never really found a need for Jupyter notebooks, but they’re becoming more essential for data scientists.
- Features
- You can run code, visualize output, execute and tinker all the browser, and more.
- You can basically created parametrized notebooks as templates to allow inputs and output configuration, across many languages (not just python!).
- You can add notes, diagrams, and more surrounding the code.
- There’s an API for data in and out of notebooks, for integration with actual services.
- I installed it and played around (via pip into my sys python).
- You can edit local files in the browser, run them, open a generic terminal. Useful stuff.
- You can create a “notebook” which allows you to enter code and markdown together, as before (for reports, for datasharing, for notes, for more!). This saves as extension `.ipynb`.
- Jasmine
- Comparison to python unittesting
- describe = class (like `unittest.TestCase`)
- it = unittest (like `def test_x()` – these are also called “specs”)
- expect = assert (there are a ton)
- beforeEach beforeAll afterEach afterAll = setup setupClass teardown teardownClass
- self = this (persists across tests)
- spies = mocks
- `jasmine server` allows you to iterate your tests in the browser. `jasmine ci` uses selenium to run for builds.
- While jasmine focuses on being a test framework (for describing the tests, like unittest), karma is a very popular js testrunner (for execution of the tests, like nose).
- Supercontest
- Separated all python and js tests into distinct make recipes. The python suite still enters with tox, while eslint and jasmine run for js.
- Globally installed nodejs and npm (although not using for anything right now).
- Added the jasmine infra and a basic test. My js isn’t very complicated so I was intentionally light here. I could organize some of the event callbacks into separate functions to be tested, but it’s fine in scope for now.
- Closed #20 after lots of testing! Pylint, pytests, eslint, jasmine.
- Modified my app dockerfile to use joyzoursky/python-chromedriver directly instead of pulling the python base image and installing chrome/chromedriver/selenium in the dockerfile.