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?)
Weeknotes 2022-06-20
,Finally got covid, felt like shit for three days, getting better now. Not much besides covid and some work this week.
Articles
- Johannes Weeklog
- Money and Finance in the Macro-Economic Process
- The best vision models for fine-tuning | Jeremy Howard latest work on finetuning with image models.. applied to a kaggle competition: First Steps: Road to the Top, Part 1 | including videos Walkthru 8 Walkthru 9 Walkthru 10 Walkthru 11 Walkthru 12 Walkthru 13
- If you want to generate a tree view of a specific structure such as files in a directory, use rich.tree. rich also allows you to add color to each branch
- I would be much more proud of this new t-shirt had it not been recommended to me by Amazon
- Just learned about the unittest.mock.ANY object in Python. Super useful for assertions: >>> assert f() == (42, ANY) # ignore the second item
- renting and returning ten books a day from my local library while subtlety increasing the size of my cranium with latex and makeup until they say something | Hrhr
- Women's Pockets are Inferior | If you ever needed some data about this, here it is..
Software
- Tetra: Full stack reactive component framework for Django using Alpine.js
- drf-spectacular - Sane and flexible OpenAPI 3.0 schema generation for Django REST framework
- OpenAPI Generator | OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec
YouTube
- Why π^π^π^π could be an integer (for all we know!)
>>> math.pi ** math.pi ** math.pi ** math.pi Traceback (most recent call last): File "
Worth a shot 🙃", line 1, in OverflowError: (34, 'Result too large') - Slavoj Žižek – Die Revolution und das Reale | Sternstunde Philosophie | SRF Kultur
Podcasts
- Bits und so #796 (Messy by Default) (Bits und so)
- (114) Mit BA.4 und BA.5 in den Sommer (Das Coronavirus-Update) | Listening to this episode while staying in bed because of covid (probably BA.5)
- Porno in geil – Passen Feminismus und Pornografie zusammen? – mit Paulita Pappel (Sexindustrie 1/2) (Lila Podcast) | Thought this might be entertaining while having to stay in bed. Meh. I don't believe that banning some content would magically improve the remaining stuff. Most movies are bad, most books are not really good - hell, even most source code is crap. It might sound pessimistic, but imho the best we can hope for is that most content will stay esthetically unsatisfying with some rare exceptions. Making those exceptions possible is the best we can do.
- Geoffrey Hinton (Part Two) (The Robot Brains Podcast) | Big recommendation
Weeknotes 2022-06-13
,Spent lots of time on the road. But also went outsides and enjoyed the great weather. Met a lot of people and attended a circus performance. Covid hit very very close.. still unsure whether it missed. Finished the post-production of a podcast episode about databases.
Articles
- Johannes Weeklog
- How to play with the GPT-3 language model
- Adding a dunder to an object | How to spy on attribute changes
- Python Type Hints - How to Use TypedDict | For runtime type checking on dicts see trycast
- Speed Needs Design, or: You can’t delight users you’ve annoyed | This whole article series is great. It's about building a version of the Kroger e-commerce site that works on the slow phones they are selling over there - via Simon Willison
- Here's a PDF for a #Python #PyConIT2022 talk: Structural Pattern Matching in the Real World: New tooling, real code, problems solved | Great presentation
- If you need a simple ad-hoc #Python object, you can use types.SimpleNamespace
YouTube
- PyCon 20220 Keynote - Łukasz Langa | How to use type annotations - great talk!
- Miroslav Šedivý: There Are Python 2 Relics in Your Code | Catch up with PyCon DE talks
- Adam Serafini: Speeding up Python with Zig | Catch up with PyCon DE talks
- 1000x faster data manipulation: vectorizing with Pandas and Numpy
Books
- Einführung in Python3 | Hmm
Podcasts
- FG094 Vulkanologie (Forschergeist) | Really nice, didn't know the Eifel-vulcans were still active.
- WR1370 The Aging Hypothesis, Übergewinne und Zölle (Wirtschaftskunde)
- Bits und so #795 (Expect Delays) (Bits und so)
Weeknotes 2022-06-06
,The conveniently located bakery across the street closed their doors forever: no bread for you! Leveled up my outdoor game: spent time outside despite it was raining. Recorded a podcast episode about databases. Apple notes keeps autocorrecting weeklog to "Wehklag" - it isn't that bad, is it?
Articles
- Johannes Weeklog
- Double-entry Bookkeeping for Programmers | via Manuel
- überflussland | Should reed more blog posts again, lots of fun and wonderful stuff there
- It’s embarrassing how many WiFi problems in macOS can be fixed with this | sad but true
- Best transformers movie review ever
- You may not like it but this is how all men are supposed to look like
- This tweet has haunted my every waking moment for years
YouTube
- Talk - Anthony Shaw: Write faster Python! Common performance anti patterns
- Are There Many Worlds? David Deutsch in conversation with Markus Arndt
- PGConf.Russia 2019 Miroslav Šedivý «Asynchronous Python and PostgreSQL Using asyncpg»
- How to Wrap a Cable Over Under
- ACATIS Value Konferenz 2022 - Was ist eigentlich eine Kryptowährung? - Felix von Leitner - Code Blau | Fun talk. Not deep into technical details, but still correct, which is a rare combination.
- PyScript - Programming for Everyone: 2022 PyCon Keynote
- Python + pyscript + WebAssembly: Python Web Apps, Running Locally with pyscript
Software
- Pathy: a Path interface for local and cloud bucket storage | pathlib like interface for object stores
Podcasts
- Optimizing PostgreSQL DB Queries with pgMustard (Talk Python To Me)
- Django 4.1 Preview - Jeff Triplett (Django Chat) | Good episode / Django News has about 2.5k subscribers / Django 4.1 gets an async orm api / Changes in Django 4.1 forms start to make things like crispy-forms obsolete 🤩
- Beglückend? - das Reisen (Das philosophische Radio) | Really good episode
- Episode #285: Where we talk about UIs and Python (Python Bytes)
- Episode #284: Spicy git for Engineers (Python Bytes)
- Episode #282: Don't Embarrass Me in Front of The Wizards (Python Bytes)
- Geoffrey Hinton (The Robot Brains) | Great episode
- PP05 - Datenbanken (Python Podcast) | Preparation for the new episode
- What's so exciting about Postgres? (The Changelog) | Preparation for the new episode
- Scaling Postgres Episode 214 Backup Compression, Postgres IO, Parquet Files, pg_stat_monitor (Scaling PostgreSQL) | Preparation for the new episode
- Scaling Postgres Episode 216 PG 15 Beta 1 Release, Query Breakdown, Sort Performance, Prepared vs. Partitioned (Scaling PostgreSQL) | Preparation for the new episode