can't wait to quit my day job and start my new landscaping company, Move Fast and Rake Things --Annika Backstrom
- "Sure, the abyss is great for staring into. But if screaming is your thing, you'll want to go with the void."
- Bits und so #844 (Cook Time) (Bits und so)
- Gayatri Spivak: Wie gelingt guter Fortschritt? (Sein und Streit)
- Revision 567: Design Patterns in der Webentwicklung (Working Draft) | I think there's some truth to this old "design patterns are a workarounds for missing language features" saying. Yes, you probably won't need most of the design patterns in a language like Typescript. Same for Python.
Out of Context Images
"sorry about that, i wasn’t making a strange face because of what you said on the team sync meeting, but because i’ve been watching my own camera the whole time, and at all times i am nothing but a horse discovering his own reflection" --henry ✷
Less busy week, good. Created a first release for cast-vue, a Vue.js theme for django-cast. It's a weird mix of pre-rendered html via Django and classic http API based SPA. I like it 😆. To support cast-vue, some changes had to be made to django-cast, so there's a new release for it too. The only major feature that is missing from cast-vue in comparison to the bootstrap ones is comments.
- Even Amazon can't make sense of serverless or microservices | The prices of all this cloud stuff are absolute crazy compared to rolling your own hardware, I still don't get why this is so popular
- Real Multithreading is Coming to Python - Learn How You Can Use It Now | Using subinterpreters
- How China’s hottest social media app turned Düsseldorf into a foodie destination | Düsseldorf? Time to re-explore my hood..
- The Sauce That Survived Italy’s War on Pasta
- llm, ttok and strip-tags—CLI tools for working with ChatGPT and other LLMs | Need to try to use more of them more regularily
- vWriting a chat application in Django 4.2 using async StreamingHttpResponse, Server-Sent Events and PostgreSQL LISTEN/NOTIFY
- Below are the major highlights in JupyterLab 4.0.0 | JupyterLab 4.0 Release!
- Weights & Biases - The developer-first MLOps platform | Somehow I didn't notice it until now
- Tandoor Recipes | Recipe management using Django!
- (117) Long Covid: Das Rätsel nach der Pandemie (Das Coronavirus-Update) | Interesting: If you watch a group of people the risk to catch long covid increases with every new infection while the absolute count of long covid cases goes down. Why? Because it's correlation instead of causation: The people you detect as reinfected have a higher risk of catching long covid (because you only detect symptomatic cases).
- Geoff Hinton Returns (The Robot Brains Podcast) | Ok, this gets me a little bit worried, too.
- Was ist kritisch an der Kritischen Theorie? (Sein und Streit)
- 100 Jahre Frankfurter Schule - Ist unsere Lebensweise unvernünftig? (Sein und Streit)
- Yejin Choi - Teaching ai common sense and morality (The Robot Brains Podcast) | Good episode!
- UKW110 Ukraine: Balance des Schreckens (unsere kleine welt)
For this blog I have a "Filter / Full text search" box at the top. Now I wanted to build a Vue.js theme for the Wagtail based blog engine. Since I now have to fetch all posts via the Wagtail API v2, I wondered if it would be possible to keep the filter box and just pass the form data as query parameters to the API (which is based on Django REST framework).
When I tried to add one of the query parameters, I got the following error message from DRF:
Query parameter is not an operation or a recognized field: date_facets
Fortunately, it was relatively easy to combine my existing django-filter filterset called
PostFilterset with a slightly modified
PagesAPIViewSet by adding a
... class FilteredPagesAPIViewSet(PagesAPIViewSet): def get_filtered_queryset(self) -> QuerySet: # allow additional query parameters from PostFilterset + use_post_filter flag additional_query_params = PostFilterset.Meta.fields + ["use_post_filter"] self.known_query_parameters = self.known_query_parameters.union(additional_query_params) queryset = super().get_queryset() return PostFilterset( data=self.request.GET.copy(), queryset=queryset, fetch_facet_counts=True).qs def get_queryset(self): if self.request.GET.dict().get("use_post_filter", "false") == "true": return self.get_filtered_queryset() return super().get_queryset() ... wagtail_api_router = WagtailAPIRouter("cast:api:wagtail") wagtail_api_router.register_endpoint("pages", FilteredPagesAPIViewSet)
"Adam Smith's invisible hand — the idea that free markets lead to efficiency as if guided by unseen forces — is invisible, at least in part, because it is not there." --Joseph Stiglitz
Another busy week for me. Time for a regular week, I think. Or vacation or something. The pytest workshop was a lot of fun and we used a simple mastodon client as a sample application. Mastodon.py is great and now I have to fight the urge to build some mastodon bots by connecting GPT-4 (yay, got API access) to the fediverse (what could possibly go wrong?). Since we used bootstrap5 for the pytest sample app, I thought: How hard could it be to create a bootstrap5 theme for django-cast? So now this site and python-podcast are both bootstrap5. Also some health issues - the kids were sick with scarlet fever and some serious dental work 🦷 for me. Fun.
- community.general.django_manage module | Manage django applications with ansible - didn't know about that, cool!
- FS265 Mansplaining as a Service (Freakshow) | Elixir is interesting but not magical, those concepts are well established in other languages, too. In fact, the most interesting thing about phoenix liveview is, that it is not a singular feature, but part of a broad trend. The LLM discussion is only interesting on a meta level for me..
- Solving the pain-points of ai researchers and practitioners - Lukas Biewald (The robot brains) | Good episode!
- Scott Aaronson: Against AI Doomerism (The Gradient Podcast) | There are really interesting connections between complexity theory and AI safety
"The worst thing that ever happened in software engineering was when Kirk asked Scotty how long something would take and Scotty said thirty minutes and Kirk said you’ve got five and Scotty got it done in five and impressionable children watched this and grew up to become managers." --Isaac Freeman
Had a busy week. I have been working on a Vue.js theme for django-cast. It's not finished yet, but enough to see how it works. Hope to get back to it soon. Then we produced a new podcast episode about building GUI applications with Python and miaplan. It was a lot of fun. And then I did a stream about the reading of the nlp with transformers book. Doing so many different things and making meaningful progress is kind of hard. Speaking of which: I also had to do some more preparation for the upcoming pytest course.
- Social media cards generated with shot-scraper
- Color Formats in CSS
- The Math Behind Nesting Rounded Corners
- Carl Braun’s Writing Lessons for Clear Thinking and Productive Communication
- Building a combined CSS-aspect-ratio-grid
- CSS :has( ) A Parent Selector Now
- Crafting the Next.js Website
- Google "We Have No Moat, And Neither Does OpenAI" | Really fascinating article
- Mojo may be the biggest programming language advance in decades | Maybe not
- Modern CSS Solutions
- Weeklog for Week 17: April 24 to April 30
- Weeknotes: Miscellaneous research into Rye, ChatGPT Code Interpreter and openai-to-sqlite
Mastodon / Twitter
- "I don't know how the gods feel, but sacrificing financial advisors makes me feel happy." | web comic
- Wagtail 5.0 release notes
- Architectural Decision Records (ADRs)
- Mojo 🔥 — a new programming language for all AI developers
- Darts - Time Series Made Easy in Python
- Phind - The AI search engine for developers
- kagi - Fast, accurate, and ad-free. The search engine you deserve
- The A.I. Dilemma - March 9, 2023 | Just to have it seen, it's well produced but often wrong
- Possible End of Humanity from AI? Geoffrey Hinton at MIT Technology Review's EmTech Digital | Hmm, I don't know