Weeknotes 2022-12-12
,Due to personal reasons, I've decided to replace my hair with snakes & turn people who stare at me into stone. @roxiqt@mastodon.social
Had a stressful week due to private turmoil and couldn't get anything done.
Articles
- Understanding A Protocol | Hmm, maybe I should try to deploy TakahÄ next week just to play around with it a little bit?
- A neophyte's introduction to video | I didn't bother to cut or add sound to my videos until now. But maybe I should đ..
- Test factory functions in Django | Lots of nice tips over there. I would use
Iterator
instead ofGenerator[T,
None
,
None]
as return value annotation, but maybe I haven't been hurt badly enough by type annotations to reach an appropriate level of passive aggressiveness. Bonus points for good arguments against factory boy. - Playing with ActivityPub
- The Origins of Python
Videos
- DjangoCon US and Europe 2022 Talks Available Online
- In a new Prodigy Short, @koaning explains how this works by building a custom interface to annotate *and* transcribe audio.
Weeklogs
- Weeklog for Week 48: November 28 to December 04 | Johannes
- Week in Review 2022-12-05 | Luis
Mastodon / Twitter
- I remember well when Google was first released. I felt confident that it would become a critical tool that we'd all rely on. I haven't felt that way again, until now: ChatGPT. In just a few days I've gotten so much out of it. | Resonates with me
- This modified version of the famous âturn #chatGPT into a pretend Linux systemâ prompt is also my prototype for a product that will sell millions.
- ok. which one | I like to use this exact argument against agnosticism: how to be agnostic without assuming there's only one true religion? How to be agnostic about things you don't even know about?
Software
- Python 3.11.1, 3.10.9, 3.9.16, 3.8.16, 3.7.16, and 3.12.0 alpha 3 are now available
- tox 4 was released
- Mona Sans | a font by GitHub
- showcode | create beautiful code snippets
Podcasts
- Folge 7: Die Krise des Allgemeinen (Andreas Reckwitz im GesprÀch: Die Gesellschaft der SingularitÀten)
- Yoshua Bengio: The Past, Present, and Future of Deep Learning (The Gradient Podcast)
- Bits und so #821 (Hipster/Lobster) (Bits und so)
Out of Context Images
Weeknotes 2022-12-05
,my work is terrible, and if *you* like it, well that says more about you than it does about me @carnapping
Worked the whole week with sick kids at home and finally got sick, too. Using the new Wagtail-based django-cast in production revealed lots of little bugs I tried to fix:
- Fixed the title tag for post detail pages - thanks to Johannes for reporting this
- Fixed gallery.html images to link to the original image source image (not relevant for this site, but sometimes relatives are trying to print out photos, etc: now they get at least a fair chance to print decent-looking images)
- Lazy loading for gallery images (the image sizes are not quite right, yet this is just a mitigation)
- Increased Gunicorn timeout to 10 minutes -> it's now possible to upload big videos
- Fixed the size of the feed logo for my homepage (the python-podcast logo is inside a javascript blob called subscribe button, I have no idea how to put a size on that)
- Upgraded from raven to
sentry_sdk
for my homepage and python-podcast (depleted my sentry transaction immediately, I have no idea why) - Fixed traefik config for mastodon: removed the separate config file for streaming
- Fixed x-forwarded-for logging for Gunicorn for django-template, homepage, and python-podcast.de
- Updated bootstrap and jquery for my homepage and python-podcast, removed popper
- Added Plausible to my homepage and python-podcast (my own analytics stuff is still broken, maybe someone fixed this in the meantime by providing a suitable SaaS?)
- Fixed a small bug in django-cast causing wagtail preview to fail
Merged a PR to my little kptncook command line scraper. More about this in Kptncook and Mealie.
Articles
- Git Notes: Git's Coolest, Most Unloved Feature | it would be great to have all the relevant information directly in the repository. what happens to the history of a project when GitHub goes away? We should plan for that.
- Thoughts on my first machine learning project | One of the creators of Django in ML land đ- insightful
- Energieflussdiagramm fĂŒr Deutschland 2020 | Iâm sure thereâs a lot of valuable information, but the UI makes it hard to find
- A quote from Will Larson | hint: do whatever works for you
- An Interactive Guide to Flexbox
- Prioritizing Pragmatic Performance for Dask | Most data processing is IO bound, don't loop in Python, it's not the GIL
- The Essential Django Deployment Guide |Â It's hard to find useful information about this topic out there. This article is long but unclear in the details (whitenoise won't serve your media files). Personally, I would go with real servers (not virtual, no docker, etc) and a bunch of ansible playbooks.
- Python Type Hints: case study on parsy | Good article. It's far from clear to me whether the trade-offs involved justify the effort. It probably depends.
Fediverse / Indieweb
Seems this should get its own category by now đ.
- Scaling Mastodon: The Compendium | I really like the attitude here
- Scaling the Mastodon | Article by Leah, one of the admins of chaos.social
- The fediverse and the indieweb
- moving to the fediverse and indieweb
- Fediverse
- Mastodon
- The IndieWeb for Everyone
Twitter / Mastodon
- In 1951, Adelbert Ames created the mind-boggling âAmes Windowâ. Itâs so effective that even when you know how it works you canât break the illusion [video from The Curiosity Show: https://buff.ly/36DvRNs]
- I am impressed. | chat.openai.com writing a poem
- OK it's hard to over-emphasize quite how much fun this new OpenAI chat Interface is
- So, a horse walks into a bar and orders a pint. The barkeep says, "You're in here pretty often lately. Do you think you might be an alcoholic?" The horse replies, "I don't think I am," and then vanishes from existence. You see, the joke is really about Descartes' famous quote, "I think; therefore, I am." but if I had explained this before the joke, I would've been putting Descartes before the horse. ... I'll show myself out now.
- OK so @OpenAI 's new #ChatGPT can basically just generate #AIart prompts. I asked a one-line question, and typed the answers verbatim straight into MidJourney and boom. Times are getting weird...đ€Ż
- You can add a âMastodonâ link in your project_urls now and it will get the Mastodon icon on PyPI đ
Software
- Movetodon: Find your Twitter Followers on Mastodon
- django-syzygy - Django application providing database migration tooling to automate their deployment
- SeaweedFS | like min.io but easier to extend, but maybe not as compatible to s3
Podcasts
- Butter CMS - Jake Lumetta (Django Chat) | Ranting about WordPress is always appreciated đ
- Kunstgeschichte - Von Kunst, guter Form und schlechtem Geschmack (Hörsaal)
- Folge 2: Ăber die spĂ€tmoderne Gesellschaft sprechen (Andreas Reckwitz im GesprĂ€ch: Die Gesellschaft der SingularitĂ€ten)
- #341 â Guido van Rossum: Python and the Future of Programming (Lex Fridman Podcast)
- WR1431 Zeitenwende bei den Wirtschaftsweisen (Wirtschaftskunde)
- Folge 3: Die Ăkonomie der SingularitĂ€ten (Andreas Reckwitz im GesprĂ€ch: Die Gesellschaft der SingularitĂ€ten)
- Folge 4: Der Wandel der Arbeitswelt (Andreas Reckwitz im GesprÀch: Die Gesellschaft der SingularitÀten)
- Folge 5: Digitalisierung als Singularisierung (Andreas Reckwitz im GesprÀch: Die Gesellschaft der SingularitÀten)
- Folge 6: Der Wandel der Sozialstruktur (Andreas Reckwitz im GesprÀch: Die Gesellschaft der SingularitÀten)
Kptncook and Mealie
,Kptncook is a popular app attempting to answer the infamous "What do you want to cook today?" question. The recipes and the design of the app are good. The technical implementation is a little bit wonky but sufficient.
But what if you want to store some additional information on a recipe? Or generate a grocery list from a recipe or include recipes from other sources? While kptncook is great as a source of inspiration, it is not possible to use it as a recipe manager. And it's also difficult to add recipes from kptncook to a real recipe manager like paprika since the URLs generated by kptncook don't include enough details to be useful.
But somehow the kptncook app can extract those details from a shared recipe URL, so it's probably possible to scrape those details using only the recipe id. This is what ktpncook does, a small command line client I wrote earlier this year. At about the same time, someone recommended Mealie to me, a powerful recipe manager using fastAPI in the backend and Vue.js in the front end, a stack I'm familiar with. So I thought: Hmm, maybe it's possible to just import all of my kptncook recipes into Mealie?
And yes, that's an additional thing the kptncook CLI app does now. But until this weekend it was limited to just one image per recipe and the ingredients were not properly transferred and therefore it was not possible to increase the number of portions in mealie etc.
This has all changed now due to this pull request by Alexander Detsch providing per-step images and improved information about food/ingredients. One of the especially useful tricks was to modify the headers of the request sent to the kptncook API to get a more detailed recipe. Thanks a lot đ.
Weeknotes 2022-11-28
,Did some cleanup after switching to the new wagtail-based django-cast for my homepage and python-podcast.de. Had to rename the users, backup, and remove the old services. Made sure the new backup is working. Then I deployed a self-hosted Mastodon instance and migrated my user there, which worked out well.
Went to the trivago Tech Get Together event to meet with friends and former co-workers. Had a lot of fun and heard about openpodcast.de - an open platform for podcast analytics, which is an interesting and promising project.
Articles
- Stable Diffusion and AI generated art is absolutely wild in every way | Some solid fun with stable diffusion
- Verifying your GitHub profile on Mastodon
- Fedi.Tips - An Unofficial Guide to Mastodon & the Fediverse
- The case for dynamic, functional programming
- Massively increase your productivity on personal projects with comprehensive documentation and automated tests | Writeup of Simon Willisons DjangoCon US 2022 talk
- Lazy loading images in HTML | Hmm, now I have to find out a way to determine the size of images on my website.. I usually use just 100vw, does this work?
- Science and Technology links (November 26 2022) |Â "MoliĂšreâs famous play, Tartuffe, the main characters is outwardly pious but fundamentally deceitful. Are people who insist on broadcasting their high virtue better people, who are they more like Tartuffe. Dong et al. (2022) conclude that people who say that they have good values are not necessarily better people in practice, but they are more likely to be hypocrites according. That is, Tartuffe is a realistic character. It is worth pointing out that MoliĂšreâs play was censored by the king." Hehe, we just talked about this in the last podcast episode, right?
- Mastodon on your own domain without hosting a server
TIL this week
Software
- Save Your Threads | High-fidelity capture of Twitter threads as sealed PDFs
- Comfort noise for different use cases
- Twitter Archive Parser | Written in Python
- Pleroma | ActivityPub implementation written in Elixir
- GoToSocial | ActivityPub implementation written in Go
- Mastodon website bookmarklets
Podcasts
- Bits und so #818 (GTO) (Bits und so)
- Folge 1: EinfĂŒhrung â Die Moderne verstehen (Andreas Reckwitz im GesprĂ€ch: Die Gesellschaft der SingularitĂ€ten)
- #13: Open Source Business Models (TOPP: The Open Podcast Podcast)
- Open Web mit Matthias Pfefferle (Wo wir sind ist vorne) | little bit slow, but lots of interesting resources
- Trööt statt Tweet - mit Leah Oswald (She Likes Tech)
Out of Context Images
TIL: Setting up a Mastodon Instance
,This was easier than expected. For the most part, I followed the official "Installing from source" documentation. But there were some differences, too. Therefore writing this up might be useful for someone with a similar setup.
The Stack I Used