I'm giving a talk on Python Concurrency tomorrow at Py Web SF. I gave the same talk at BayPiggies two years ago, and I wrote an article on it for Dr. Dobb's Journal. However, I've updated the talk to cover new topics such as Tornado Web, gevent, and nginx.
I decided to give Ubuntu 20.04 a try on my 2015 15" MacBook Pro. I didn't actually install it; I just live booted from a USB thumb drive which was enough to try out everything I wanted. In summary, it's not perfect, and issues with my camera would prevent me from switching, but given the right hardware, I think it's a really viable option. The first thing I wanted to try was what would happen if I plugged in a non-HiDPI screen given that my laptop has a HiDPI screen. Without sub-pixel scaling, whatever scale rate I picked for one screen would apply to the other. However, once I turned on sub-pixel scaling, I was able to pick different scale rates for the internal and external displays. That looked ok. I tried plugging in and unplugging multiple times, and it didn't crash. I doubt it'd work with my Thunderbolt display at work, but it worked fine for my HDMI displays at home. I even plugged it into my TV, and it stuck to the 100% scaling I picked for the othe
Comments
Last night I managed to accomplish what I set out to do: I strapped gevent onto the side of my tornado project and replaced the underlying db drivers with pg8000 (which is 100% python code) and upgraded sqlalchemy to the latest version to support it. I now have a fully feature web stack on top of gevent :) It ran some unit tests and it seems to be solid, but I still need to confirm that I'm getting the speed/concurrency from gevent and there aren't any blocking calls.
Python: Asynchronous Networking APIs and MySQL:
http://jjinux.blogspot.com/2009/12/python-asynchronous-networking-apis-and.html