Weeknotes 2022-06-27
,Tried to use this new 9€ Ticket for a trip we would normally use a car for and it was possible, but not comfortable :).
Not much work this week due to covid. But I started to work on my own projects again and got a lot of deployment stuff done:
- Automated the deployment of a JupyterHub server to be able to give attendees of a python training just a username/password-combination and an url. This caused more work than expected, but at least I'm pretty sure now covid didn't rob me of my admin-mojo. Thanks jupyterhub. Things that turned out kind of unexpected:
- The jupyterhub package did not require pycurl, jupyter_server and jupyterlab, but wouldn't work correctly without them being installed (for example getting a 404 on starting a users jupyterlab server)
- Adding system users via jupyterhub admin UI adds system users, but removing them via admin UI removes them only from the jupyterhub sqlite, not the system, whoa. It also adds a valid login-shell to added users, which is not needed for jupyterhub, but makes forgetting to remove deleted users especially dangerous (ok, skipped jupyerhub useradding, just using ansible)
- Had to set c.Spawner.cmd = ['/path/to/venv/bin/jupyterhub-singleuser'] in the config, dunno why (probably because of the venv, but it's the one jupyterhub itself is running from, well)
- There are two attempts to provide a simplified installation for jupyterhub: The Littlest JupyterHub and Zero to JupyterHub with Kubernetes - for me, they caused more confusion than help. Just installing jupyterhub via pip and playing around til it showed a notebook worked for me, finally.
- Automated the deployment of WordPress
- Automated the deployment of MariaDB. The trickiest part was how to set the initial root password.
- After being able to deploy MariaDB, it was only a small step to be able to deploy WordPress on my own infrastructure. Never thought I would do something like this. The trickiest part was to get wordpress to run behind a ssl terminating reverse proxy (had to set some additional request headers at the loadbalancer + some variables in wp-config.php). Why is there this weird installation script greeting you after you installed wordpress? This whole wordpress environment feels really strange and quirky. Didn't managed to get podlove publisher to work, maybe next week :).
Articles
- Moving from Svelte to HTMX | Resonates with me
- The Grug Brained Developer A layman's guide to thinking like the self-aware smol brained | Very good
- “Don’t Mock What You Don’t Own” in 5 Minutes
- First impressions of DALL-E, generating images from text
- fundamental axioms that are false
- Well I REALLY don't like how similar all these pictures of "Crungus", a made up word I made up. Why are they all the same man? Is the Crungus real? Have I discovered a secret cryptid?
- ich mag auch dass da der apostroph gesetzt ist | Hegel's Angels! Where do I have to sign?
- The next() #python built-in lets you work with iterators directly. It has a default value to return if there are no more values in the iterator. This is extra-useful if you expect one or none:
Websites
- Daily Nous | News for and about the philosophy profession
- AI model drawing images from any prompt!
Books
- Safe Haven: Investing for Financial Storms | Main point is that risk mitigation is not a tradeoff against profit, but instead it should be cost effective (increase profit while reducing risk)
- The Art of PostgreSQL
Podcasts
- WR1374 Wrintheit in the Middle (Wrintheit)
- LOV022 podlove.org Relaunch mit Martin Fischer (Podlovers Podcast)
- Sonderfolge: Hybridimmunität (Das Coronavirus-Update)
- Testing PyPy - Carl Friedrich Bolz-Tereick (Test & Code in Python)
- Episode 153: Single Page Application vs Multi Page Application with Rich Harris (Web Rush) | Rich Harris is a great guest, but I don't like the podcast (too many hosts, lame jokes etc).
- Episode 57: Philosophers on the Internet (Hotel Bar Sessions) | Lots of great resources
- Leben zwischen Beharrlichkeit und Veränderung (Was denkst du denn?)