Pinned post

Latest post is a big one: "Why you shouldn't invoke setup​.py directly"

A lot of people don't know about this because we haven't been great about getting the word out. This blog post is in part an attempt to remedy this.

Please help spread the word!

blog.ganssle.io/articles/2021/

Pinned post

From the archives of my blog but still very relevant: "pytz: The Fastest Footgun in the West", about why you probably shouldn't be using pytz:

blog.ganssle.io/articles/2018/

Is there a good library out there in Python that provides a simple abstraction over the major LLM providers, such that it's easy for me to swap out which one I'm using for a given project?

I find myself writing my own version of this because each of the LLMs have strengths and weaknesses, and sometimes for a project I want to test them all out before committing to use a specific one.

A few months back I looked at @simon's `llm`, but from what I could tell it was mostly wrapping ChatGPT or compatible APIs, and I wasn't sure how to use it for everything.

¿Me podrían recomendar blogs, glosarios u otros recursos con terminología tecnológica en español? Quiero aprender a comunicar conceptos sobre programación, redes, seguridad, "open source", "dev ops", accesibilidad, etcétera.

Can anyone recommend blogs, glossaries and other resources with technological terminology in Spanish? I want to learn to communicate about concepts in programming, networking, security, open source, dev ops, accessibility, etc.

If you are learning Spanish like me, just remember that *ser* is for permanent characteristics like your job title or the location of a party, whereas *estar* is for transitory conditions like death or the location of Barcelona.

Spanish often has an H where most other Romance languages have an F.

Take 'hijas' (daughters) vs. French 'filles', Italian 'figlie', Portuguese 'filhas'.

In Old Spanish, Latin [f] became an [h] sound.

Later, this sound disappeared.

Click to hear how it went:

A thread: 1/

I was explaining retirement to my son today and he said, "Oh, I might not ever have to work."
"Why not?"
"I am going to ask Santa for $2M this year. Then I'll be able to retire."
"Hmm.. I have never heard of Santa giving anyone enough money to retire on, to be honest. And $2M might not be enough..."

I noticed that he and my wife made the list today and he has now upped the request to $2B. Go big or go home, I guess. 😅

Man my package has been stuck at a UPS facility in Koeln, Germany for 10 days now, apparently this is a very common theme: reddit.com/r/UPS/comments/1f96

And from older threads, it seems like it has been like this for years (I dunno if it is constant or intermittent).

I wonder if this is just a dysfunctional facility or if stuff gets stuck there because everything goes there before coming to the US and the problem is getting stuff from Europe to the US in general...

Just released: humanize 4.11.0 🚀

github.com/python-humanize/hum

This adds a new API:

>>> natural_list(["egg", "sausage", "beans"])
'egg, sausage and beans'
>>> natural_list(["egg", "sausage"])
'egg and sausage'
>>> natural_list(["egg"])
'egg'

Adds the newest ronna and quetta SI prefixes: npl.co.uk/si-prefix

Drops support for Python 3.8,
fixes rollover from ZB to 1.0 YB, fixes French & Chinese translations & finding location of translations, & improves import times.

#Python #humanize #release

I've been conducting more interviews lately, some of which involve traversing a tree / graph, and I am kind of surprised to find that uniformly everyone does these traversals with recursion. I'm not surprised to find that it's popular (I think it's often taught as an example of something where recursion is appropriate), but I personally almost never use recursion (especially in Python).

I think the main reasons I almost always avoid recursion (both in interviews and in practice) are:

1. I prefer to be very explicit about the resources I am using. It's easy to not realize how much overhead you are storing in the frame stack, whereas when you have an explicit stack or queue of nodes, it's quite easy to see what you are storing and passing up and down the stack.
2. No running into recursion limits (mostly Python specific thing).
3. It's pretty easy to switch between depth and breadth first searches by changing from a stack to a queue and vice-versa, whereas if you change your mind and decide you need to do BFS when you've written a recursive traversal, you have to rip everything out and start over.
4. When I need access to some resources outside of the traversal (either to modify them or for some other reason), it seems cleaner to use a variable that is already in scope rather than a closure (though maybe that's a dubious distinction).

Looking at this list, I do think that (other than the recursion limit thing), this is mostly just a bias against recursive functions. I think the primary benefit of a recursive function is that I think it's easier to pivot to a concurrent traversal by spawning multiple child nodes and letting the stack handle your resolution order for you.

Man, every time I've used Discord it has been an aggressively unpleasant experience. How is this platform so popular?

Traveling to Seattle without renting a car or bringing an umbrella...

It is supremely weird to me that the default view of stock charts I've seen always seems to show a chart from the last day. I guess it is consistent with the hyperbolic and (arguably) borderline irresponsible nature of modern media...

Hm.. Website has cross-site-origin headers configured incorrectly on their feedback form, meaning I cannot actually send them any comments, like, "By the way your feedback form is broken..."

Para los que tienen el español como lengua materna, ¿le encuentran sentido a este chiste malo de papá sin necesidad de traducirlo al inglés?

youtu.be/CpcWbwwLHkg?si=d_W8Ml

(4m29s si el enlace no te lleva directamente al momento exacto)

New #cattrs is out (24.1.0) but I'm too exhausted to do a large thread about it. The changelog is pretty large: catt.rs/en/stable/history.html

A couple of my favorite features:

Hook factories can have the converter injected as an argument now. This very simple change makes them much more self contained and more fun to write.

Some converter APIs can be used as decorators now, and will read type hints from the decorated functions. It's a small thing but it adds finesse.

@hynek helped focus the docs!

I entered a game into #ifcomp2024 called Birding in Pope Lick Park! Its a peaceful simulation of one of my #birding walks in my favorite park. It includes photos taken by me of actual locations in the park, and photos taken by me of many of the birds mentioned in the game.

Play here: ifcomp.org/ballot?alphabetize=

It should take roughly 30 minutes. Play on WiFi because of the high resolution images. Should work on phones or computers.

#ifcomp #InteractiveFiction

Mildly chuffed that I can't find recommendations for practical tips for which phone to get for a young kid (6-7).

All I can find is moral panic narrative stuff about not getting your kid a phone and recommendations for super locked down, deliberately crippled Orwell phones. I am looking for stuff like, "This one is cheap and rugged and they can operate it with their tiny hands" not "This one doesn't have a browser and you can remotely activate the camera to spy on your child, if you're insistent on raising a damaged child who had a phone too early."

STOP DOING ONLY VIDEOS FOR MANUALS OR TUTORIALS! i just want to have a fucking written text with screenshots!

Ok, so I just watched the first episode of Dragon Ball for I think the first time, and upon meeting Goku, Bulma hits him with her car, then shoots him several times with a *gun*, and then **expresses surprise that this has failed to kill him** (note: he is obviously a child and she clearly believes this).

I guess there are talking dinosaurs and other prehistoric beasts around trying to eat people, so maybe this is just a post apocalyptic, kill-or-be-killed hellscape?

Show older
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.