<p>Sponsored by <strong>Linode!</strong> <a href="https://pythonbytes.fm/linode"><strong>pythonbytes.fm/linode</strong></a></p>
<p>Special guest: <a href="https://twitter.com/ogimoore"><strong>Ogi Moore</strong></a></p>
<p>Watch the <strong><a href="https://www.youtube.com/watch?v=8kfMpwpE_5Q">live stream on YouTube</a></strong>.</p>
<p><strong>Michael #1:</strong> <a href="https://github.com/grantjenks/python-diskcache"><strong>diskcache</strong></a></p>
<ul>
<li>via Ian Maurer</li>
<li>Python disk-backed cache (Django-compatible). Faster than Redis and Memcached. Pure-Python.</li>
<li>The cloud-based computing of 2020 puts a premium on memory. Gigabytes of empty space is left on disks as processes vie for memory. </li>
<li>Among these processes is Memcached (and sometimes Redis) which is used as a cache. </li>
<li>Wouldn't it be nice to leverage empty disk space for caching?</li>
<li><strong>Features:</strong></li>
<li>Pure-Python</li>
<li>Fully Documented</li>
<li>Benchmark comparisons (alternatives, Django cache backends)</li>
<li>100% test coverage</li>
<li>Hours of stress testing</li>
<li>Performance matters</li>
<li>Django compatible API</li>
<li>Thread-safe and process-safe</li>
<li>Supports multiple eviction policies (LRU and LFU included)</li>
<li>Keys support "tag" metadata and eviction</li>
<li>Developed on Python 3.8</li>
<li>Tested on CPython 3.5, 3.6, 3.7, 3.8</li>
<li>Tested on Linux, Mac OS X, and Windows</li>
<li>Tested using Travis CI and AppVeyor CI</li>
</ul>
<p><strong>Brian #2:</strong> <a href="https://toml.io/en/"><strong>TOML is 1.0.0 now.</strong></a> </p>
<ul>
<li>What does that mean for Python?
<ul>
<li>Hopefully, some kind of toml parser will make it into Python core. </li>
</ul></li>
<li>Any Python access to 1.0.0? Mixed
<ul>
<li><a href="https://github.com/toml-lang/toml/wiki">Implementations and TOML version support page</a> lists:</li>
<li>pytomlpp supports 1.0.0-rc.3, which is a wrapper around C++ tomlplusplus, which does support 1.0.0. Confusing</li>
<li>tomlkit supports 1.0.0-rc.1, so that’s promising</li>
<li>toml supports 0.5.0, great name. It’d be cool if it would support 1.0.0</li>
</ul></li>
<li>What’s different between 0.5.0 and 1.0.0?
<ul>
<li>Unless I’m mistaken, not much: <a href="https://github.com/toml-lang/toml/blob/master/CHANGELOG.md">CHANGELOG</a></li>
<li>1.0.0-rc1</li>
<li>Leading zeroes in exponent parts of floats are permitted.</li>
<li>Allow raw tab characters in basic strings and multi-line basic strings.</li>
<li>Allow heterogenous values in arrays.</li>
<li>Other than that, lots of “Clarify …”, which I’m not sure how those all affect implementation.</li>
</ul></li>
<li>I’d love to hear more from people who know more about this</li>
</ul>
<p><strong>Ogi #3: <a href="http://www.pyqtgraph.org/">pyqtgraph</a></strong></p>
<ul>
<li>pyqtgraph - plotting library, for when you need fast/interactive plots</li>
<li>Uses qt5 (and soon qt6) bindings to generate plots within Qt applications</li>
<li>Fills a niche role, want easy mouse interactivity, running locally on a machine</li>
<li>Often used in engineering/scientific applications when looking at a lot of data, and wanting interactivity </li>
</ul>
<p><strong>Michael #4:</strong> <a href="https://twitter.com/shaunking/status/1349495948972593154"><strong>Parler + Python = Insurrection in public</strong></a></p>
<ul>
<li>via <a href="https://twitter.com/jimkring">Jim Kring</a> and Mark Little</li>
<li><a href="https://en.wikipedia.org/wiki/Parler">According to Wikipedia</a>: Parler (/ˈpɑːrlər/) is an American alt-tech microblogging and social networking service. Parler has a significant user base of Donald Trump supporters, conservatives, conspiracy theorists, and right-wing extremists.</li>
<li>ArsTechnica article send in by Mark Little</li>
<li>Ars: <a href="https://arstechnica.com/information-technology/2021/01/parlers-amateur-coding-could-come-back-to-haunt-capitol-hill-rioters/">Parler’s amateur coding could come back to haunt Capitol Hill rioters</a></li>
<li>Coding mess
<ul>
<li>A key reason for her success: Parler’s site was a mess. Its public API used no authentication. </li>
<li>When users deleted their posts, the site failed to remove the content and instead only added a delete flag to it. </li>
<li>Oh, and each post carried a numerical ID that was incremented from the ID of the most recently published one.</li>
<li>Another amateur mistake was Parler’s failure to scrub geolocations from images and videos posted online.</li>
</ul></li>
<li>Some 80 terabytes of posts, 1M videos, many already deleted, preserved for posterity.</li>
<li>Catalog and Python pointed out by <a href="https://twitter.com/shaunking">Shaun King</a>.</li>
<li>See <a href="https://www.tommycarstensen.com/terrorism/index.html">the catalog</a> (maybe, it’s the ugly side of people).</li>
<li>The gist: <a href="https://gist.github.com/kylemcdonald/d8884da1a82ef50754ee49e0b6561071">https://gist.github.com/kylemcdonald/d8884da1a82ef50754ee49e0b6561071</a></li>
<li>Partially back online with Russian hosting service?</li>
</ul>
<p><strong>Brian #5:</strong> <a href="https://github.com/ml-tooling/best-of-web-python"><strong>Best-of Web Development with Python</strong></a></p>
<ul>
<li>Suggested by Douglas Nichols</li>
<li>Cool list with nice icons</li>
<li>Covers
<ul>
<li>Frameworks, HTTP Clients, Servers</li>
<li>Auth tools, HTML Processing, URL utilities</li>
<li>OpenAPI, GraphQL, Websocket</li>
<li>RPC, Serverless, Content Management</li>
<li>Web Testing, Web Forms, Markdown</li>
<li>Third-party APIs</li>
<li>Email, Web Scraping & Crawling, Monitoring</li>
<li>Admin UI</li>
<li>API Proxies</li>
<li>Flask/FastAPI/Pyramid/Django Utilities</li>
</ul></li>
<li>Nice to see lots of FastAPI projects:
<ul>
<li>fastapi-sqlalchemy - Adds simple SQLAlchemy support to FastAPI. </li>
<li>fastapi-plugins - FastAPI framework plugins. </li>
<li>fastapi_contrib - Opinionated set of utilities on top of FastAPI. </li>
<li>starlette_exporter - Prometheus exporter for Starlette and FastAPI. </li>
<li>fastapi-utils - Reusable utilities for FastAPI. </li>
<li>fastapi-code-generator - This code generator creates FastAPI app from an.. </li>
<li>slowapi - A rate limiter for Starlette and FastAPI. </li>
<li>fastapi-versioning - api versioning for fastapi web applications. </li>
<li>fastapi-react - Cookiecutter Template for FastAPI + React Projects. Using.. </li>
<li>fastapi_cache - FastAPI simple cache. </li>
</ul></li>
</ul>
<p><strong>Ogi #6: Assorted</strong> </p>
<ul>
<li>Pyjion - <a href="https://github.com/tonybaloney/Pyjion">https://github.com/tonybaloney/Pyjion</a> a JIT extension for CPython that compiles python code using .NET 5 CLR </li>
<li>CuPy - NumPy compatible multi-dimensional array on CUDA, uses <code>_``*array_function_*</code> (enabled with numpy 1.17) code using numpy to operate directly on CuPy arrays
<ul>
<li><a href="https://numpy.org/neps/nep-0018-array-function-protocol.html">see NEP-18</a> and <a href="https://docs.cupy.dev/en/stable/reference/interoperability.html">CuPy docs</a></li>
<li>compatible with other libraries as well</li>
</ul></li>
</ul>
<p>Extras:</p>
<p>Michael:</p>
<ul>
<li>Trying Firefox + Brave + VPN</li>
<li><a href="https://www.papercall.io/pwc-2021">Python Web Conf 2021</a> call for talks, due Jan 29, I’ll be speaking!</li>
<li><a href="https://us.pycon.org/2021/speaking/">PyCon US 2021</a> launched call for proposals:
<ul>
<li>December 22, 2020 — Call for proposals opened</li>
<li>February 12, 2021 — Proposals are due</li>
<li>March 16, 2021 — Notifications will be sent to presenters</li>
<li>March 23, 2021 — Deadline for speakers to confirm participation</li>
<li>March 30, 2021 — Schedule is publicly released</li>
<li>April 28, 2021 — Deadline to submit pre-recorded presentation (tutorials will be live)</li>
<li>May 12-13, 2021 — Tutorial days</li>
<li>May 15-16, 2021 — Conference days</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=tlWPdAWEjys">Apple launching Racial Equity and Justice Initiatives</a> with partners across a broad range of industries and backgrounds — from students to teachers, developers to entrepreneurs, and community organizers to justice advocates</li>
</ul>
<p><strong>Brian:</strong></p>
<ul>
<li>PyCascades 2021 schedule <a href="https://2021.pycascades.com/program/schedule/">https://2021.pycascades.com/program/schedule/</a></li>
</ul>
<p>Ogi: </p>
<ul>
<li><a href="https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY">Anthony Explains Video Series</a></li>
<li><a href="https://learnxinyminutes.com/">Learn X in Y minutes</a></li>
<li>Reading <a href="https://www.amazon.com/Working-Public-Making-Maintenance-Software/dp/0578675862">Working in Public</a> by Nadia Eghbal - provides some sanity checks for existing maintainers, might be a fantastic perspective for new contributors to open source</li>
</ul>
<p>Joke</p>
<p><strong>Tech Support, 2x</strong></p>
<p>Working at the help desk? Get the theme song:</p>
<p><a href="https://youtu.be/_GTnJDvWpt0">Here to help song</a></p>
<p>And help by chat:</p>
<p><img src="https://trello-attachments.s3.amazonaws.com/58e3f7c543422d7f3ad84f33/5fdd9751558ca32ee444023f/2e82ec305e266150baa3a4dca1717111/Screen_Shot_2020-12-18_at_10.01.17_PM.png" alt="" /></p>
<ul>
<li>"Running a successful open source project is just Good Will Hunting in reverse, where you start out as a respected genius and end up being a janitor who gets into fights." - Byrne Hobart</li>
</ul>
↧