Very cool, I'll definitely be playing around with this some more! Two questions:
- How difficult would it be to add many-valued functions to this? It would be really nice to be able to get the full set of [pi/2, pi/2] + n[2pi, 2pi] from asin(1) without needing to break out Mathematica.
- And:
> Numbers input by the user are interpreted as the smallest interval that contains the IEEE 754 value closest to the input decimal representation but where neither bounds are equal to it
Am I missing something obvious, or should this be the other way round, i.e. the output bounds are the closest two IEEE 754 numbers that contain the input number?
The way it's written I'd interpret the smallest interval to be IEEE754(input)+[-epsilon, epsilon] for infinitesimally small epsilon.
There's a story by a guy who did something similar when he was in 2nd grade, and successfully pitched an aardvark plush to a toy company! It always makes me smile whenever it pops up again.
As others have pointed out, tkinter is just a wrapper around Tk, so the best way to learn more about it is to learn about Tk. The documentation for Tk [1] is fairly comprehensive: for example, the algorithm used by the `pack` command that you asked about is explained here: [2].
It's definitely worth learning at least some very basic Tcl if you want to get as much as possible out of tkinter - sometimes you end up having to use `widget.tk.eval()` to use a Tk feature that tkinter doesn't provide a good wrapper for.
A better way to organise and find papers I've looked at before. For example, being able to ask an LLM "what was that paper again that tried using X to solve Y but ran into some issue" which I vaguely remember skimming a month ago but only just realised that it might actually be useful to me, and it will find the right one from my reference manager and/or subset of my browser history.
There's a few projects that can package a python environment into a single executable (the main tradeoff is you end up including a copy of python with every single executable if you have lots of tools) - when I wanted it to create an installer (.msi/.dmg), I've found cx_Freeze came the closest to "it just works".
Of all things, rowing. It's a way to force myself to keep a consistent exercise routine because others depend on me to show up for each session, and given that my club has active members who are decades older than myself, I expect to continue doing it for as long as I can. It's especially great in a coxed boat with an experienced cox, it feels like the microphone wire is plugged directly into your brainstem so you completely outsource your executive functioning for two hours and respond to every call without even consciously parsing it.
And if you're after an adrenaline rush, a close race can teach you a whole new meaning of maximum heart rate.
I only gained an appreciation for ruler and compass constructions early in secondary school, at age 7 I'm not sure I could fully understand the beauty of deriving a huge system from axioms.
For making Euclid interesting to children, I remember really enjoying a game called Euclidea: https://www.euclidea.xyz/
Something about the way the text got more and more glitched while keeping the rhythm of the sentences intact made me want to keep reading. I think it managed to create the perfect amount of entropy that makes it feel like there could be a meaning in there, just barely out of reach, rather than feeling completely random.
- How difficult would it be to add many-valued functions to this? It would be really nice to be able to get the full set of [pi/2, pi/2] + n[2pi, 2pi] from asin(1) without needing to break out Mathematica.
- And:
> Numbers input by the user are interpreted as the smallest interval that contains the IEEE 754 value closest to the input decimal representation but where neither bounds are equal to it
Am I missing something obvious, or should this be the other way round, i.e. the output bounds are the closest two IEEE 754 numbers that contain the input number?
The way it's written I'd interpret the smallest interval to be IEEE754(input)+[-epsilon, epsilon] for infinitesimally small epsilon.