Félix Fischer's Avatar

Félix Fischer

@felix91gr.bsky.social

Jack of all trades. Colors are frickin' amazing.

56 Followers  |  65 Following  |  454 Posts  |  Joined: 23.10.2024  |  2.0123

Latest posts by felix91gr.bsky.social on Bluesky

Two things make me love teaching.

The first one is to empower others. Fuck yeah fam, you'll conquer that cliff, and entirely with your own might.

The second one is to kindle their curiosity. There is nothing quite like seeing the eyes of someone who just got to love the world a little bit more.

07.11.2025 01:46 — 👍 1    🔁 0    💬 0    📌 0

For what it's worth, if you survive long enough to taste a soluble lithium salt, know that it will probably be very citrusy. Like zesty even :3

06.11.2025 01:12 — 👍 2    🔁 0    💬 0    📌 0
Preview
Python Software Foundation Sponsors The official home of the Python Programming Language

Forget about supporting the PSF, too abstract.

Pip installs from PyPI. It would be bad if `pip install` stopped working. Support the org that runs PyPI.

Surprise, it's the PSF! Your company depends on #Python. You want it to keep working and keep being good.

python.org/psf/sponsors/

05.11.2025 18:49 — 👍 45    🔁 21    💬 0    📌 0

semantically breaking change.

One can find similar examples of semantically minor changes as well.

So anyway. The type systems we use are incomplete. And we must keep that in mind when thinking about them, in relation to how we might be breaking things downstream.

03.11.2025 16:19 — 👍 0    🔁 0    💬 0    📌 0

it describes a Total Ordering (a relation over a set that is Reflective, Antisymmetric, Transitive and Total). However, this contract is not expressible in the signature of the trait. One could change an Ord impl to not be a Total Ordering anymore. This doesn't change the signature, but is a

03.11.2025 16:19 — 👍 0    🔁 0    💬 1    📌 0

All of them. Since the signature cannot express all of its behavior (at least not in... regular type systems), some of the behavior of a function might be part of its "contract" even though it is not expressed in its signature.
Take an implementation of Ord, for example. Part of its contract is that

03.11.2025 16:19 — 👍 0    🔁 0    💬 1    📌 0

Hell yeah Morre Morri Arrt!

03.11.2025 08:40 — 👍 1    🔁 0    💬 0    📌 0

Being normal be damned. Be weird instead ❤️

Also, :'c 🫂

02.11.2025 21:57 — 👍 2    🔁 0    💬 0    📌 0

Fwiw I always read your blog posts :3 they be very good.

02.11.2025 20:36 — 👍 4    🔁 0    💬 0    📌 0

The rest are fasteners and stuff, which are most likely not nutritious, yet probably made out of steel and thus survivable

The engine, oil and gas I'm guessing we'll treat like the excretory system: to be discarded during meal prep

If you're planning on eating an airplane, definitely get an oldie!

30.10.2025 04:42 — 👍 1    🔁 0    💬 0    📌 0

May I recommend a very old one? Nowadays they're made of aluminium, which would definitely be toxic in those amounts.

Very old models used mostly wood and fabric for their bulk. I bet that with good cooking, one could strip away the varnish and such things, and get something that's survivable.

30.10.2025 04:42 — 👍 1    🔁 0    💬 1    📌 0

Our society's moral failing isn't lack of "civility" or "respect for different viewpoints". It's that so many views are lacking in empathy/compassion that they support a government spending billons in weapons while scoffing at the idea of spending fractions of that to feed, clothe, and house people.

29.10.2025 01:51 — 👍 304    🔁 60    💬 3    📌 4

This has nothing to do with anything.

It's finally warm enough to swim. So, I swam today for a handful of minutes.

I love water so much 💖

28.10.2025 01:55 — 👍 0    🔁 0    💬 0    📌 0
Preview
The official home of the Python Programming Language

TLDR; The PSF has made the decision to put our community and our shared diversity, equity, and inclusion values ahead of seeking $1.5M in new revenue. Please read and share. pyfound.blogspot.com/2025/10/NSF-...
🧵

27.10.2025 14:47 — 👍 6418    🔁 2770    💬 128    📌 459

Help me, what did they do? I'm out of that loop owo.

27.10.2025 18:15 — 👍 2    🔁 0    💬 1    📌 0

Hmm. 65:35 split

26.10.2025 17:27 — 👍 1    🔁 0    💬 0    📌 0

2F03
(Looks small but weird. Turns out it's the year 12035 in a society that changed year representation to hexa)

24.10.2025 15:06 — 👍 2    🔁 0    💬 0    📌 0

If I get lucky again, I will go to Rustweek next year. Will you be there? I would love to go chill with you and talk about whatever :D

23.10.2025 23:46 — 👍 0    🔁 0    💬 1    📌 0

But then someone asks them in just the right way, and a small spark starts a chain of events that end up in a roaring fire of curiosity in their mind. Like "WAIT so how tf do they do it in A, or in B?!?!", and "how did anyone manage to estimate this decently for generic hardware???"
(2/2)

23.10.2025 20:22 — 👍 1    🔁 0    💬 0    📌 0

I wonder if they were underestimating how hard the problem is? Because... perhaps it's the kind of thing they take for granted, or believe is solved trivially in a couple lines of code or a lookup table of some kind.
(1)

23.10.2025 20:20 — 👍 1    🔁 0    💬 1    📌 0

🤣

It's a good interview question! I think.

I mean... at the very least the estimating technique would be very interesting to discuss.

That, plus also what to do depending on what information is available (eg disk fragmentation, bus availability, the specific filesystem's special properties...)

23.10.2025 19:29 — 👍 1    🔁 0    💬 5    📌 0
Preview
Estimation

Maybe they hired the same guy?

Relevant xkcd: xkcd.com/612/

23.10.2025 18:41 — 👍 1    🔁 0    💬 1    📌 0

Your voice acting is gooooood, dude! For reals! :>

21.10.2025 17:11 — 👍 1    🔁 0    💬 0    📌 0

If there is a choice between being earnest with how you feel and not doing so, picking earnestness is always best 💖

21.10.2025 17:10 — 👍 0    🔁 0    💬 0    📌 0

(To be clear: it's still impossible to reason about divergence (not returning-ness) in general, because of the halting problem. But an approximation is better than giving up the goal!)

21.10.2025 17:05 — 👍 0    🔁 0    💬 0    📌 0

It's very good documentation that's also expressible in the type system. And that also enables tooling to reason about it.

Like e.g. in safety critical you may want to be very strict about calling things that don't return. And with !, approximating such a thing becomes more tenable :)

21.10.2025 17:05 — 👍 1    🔁 0    💬 1    📌 0

Oh wow, the threads below have shared a lot of what I knew.

Before I forget to mention it, there's another thing in ! that's helpful, and that is: to be more explicit in intent.

Being able to say that a fn will never return is super nice: "this is an infinite loop; assume I don't return".

21.10.2025 17:05 — 👍 1    🔁 0    💬 1    📌 0

yet no ! that implements both at the same time can exist. Does that make sense? I hope that makes sense.

Another way to put it would be that there is an entire lattice of types above !, there's a set of nodes in there that implement Drop and another that implement !Drop, but those sets are disjoint

21.10.2025 00:18 — 👍 0    🔁 0    💬 0    📌 0

Awww! Dang it.

vvv Re: ambiguity error vvv

I actually don't know how it works internally.

But if I understand the structure of the type lattice underlying it, ! can be coerced into anything, as long as it (the thing) exists. So one ! could implement Drop, and another ! could implement !Drop,

21.10.2025 00:18 — 👍 0    🔁 0    💬 1    📌 0

....

Picric versioning, which is when as soon as the code dries, it becomes an explosion hazard.

20.10.2025 21:38 — 👍 1    🔁 0    💬 0    📌 0

@felix91gr is following 20 prominent accounts