Energy use of #Kubernetes when it's not doing anything is off the charts. There's about 4 processes that just sit there doing 'something' even when there's zero happening on the cluster. Initialize k8s, start it up and do nothing. Energy being burnt. So if you have less than 8 cores on that box, then it's spamming the scheduler making everything else laggy.
Lovely sunny day here today. Yesterday it felt like all the gnomes came out of their winter caves. Today pure joy.
Got back from park, and played around a bit with #direct3d and #rust. Got a window up! Found people who have done X11, Wayland and MacOS too. Glad to not be blazing any trails, but didn’t try any of that out.
Decided instead to hack on an old game called Zanthor. Giant castle powered by steam. Want to finish off a few issues with it running on #Python the Third.
In #python is there a standard for custom commands? (development scripts/tasks)
Like scripts in package.json with JavaScript or Makefile targets, or custom commands in rust (and alias in rust). For development tasks like format, test, make check... and custom dev scripts.
In python with setup.py you could define custom commands. But now?
Doesn't seem to be a standard for this, just a bunch of separate tools. But I would love to know if I'm missing something for custom commands/scripts.
Reminded that #python packages don't support patch number pins for dependencies, so things break as time progresses MUCH more because packages are upgraded to breaking new major/minor versions.
You can't specify a major version to rely on. Additionally, because this isn't supported few packages actually even care.
A 1.0.0 depends on B>=1.0.0. Now several months pass. You had pinned A=1.0.0.
Now, B releases 1.0.1 1.0.2, 1.1.0, and 2.0.0.
Which means A==1.0.0 is broken.
When quality is measured then you have a very different result. The consultant study, and the art student study come to mind. Consultants made more errors, and art students made worse results. By common measures of productivity was up! But the end result was damaging or bad.
Using quantity as a proxy measure for productivity at point of production is a bad idea. As is self reporting on quality (acceptance/thumbs up). All our standard quality techniques should be used.
@deshipu Sure. “than required” is a good point. It’s also that higher quality can be cheaper. And that working at a higher quality can eventually be quicker. I don’t think old school generic management measurements work. Just simply measuring bums on seats, or activity is not a good proxy really. Knowing that a piece of code meets a goal or not is needed. Using self reported likes, tab completes accepted or even if code churn / defect counts are measured later doesn’t see if a goal is reached.
It's really cool, but also a bit weird to me doing a #linux kernel training using #rust at microsoft. 90s me probably wouldn't believe C was still being used. I can see some good ergonomic improvements and statically checking things like reference counting. I have used static checkers for reference counting in C with the CPython API via a compiler plugin, but I'm not sure it is as "sound" as the rust for kernel abstractions. The linux driver future seems joyful.
With so many breaking changes in python 3.12 it should be called #python 4. Breaking 90% of published code (no distutils) is certainly grounds for a major version change.
I like these two compiler videos by some #TypeScript folks. First https://learn.microsoft.com/en-us/shows/Seth-Juarez/Anders-Hejlsberg-on-Modern-Compiler-Construction "Anders Hejlsberg on Modern Compiler Construction". With some stories going back to turbo pascal style (stop on first error, everything all together) to dragon book style, to C# style with separate IDE services and compiler. To finally one where the compiler is an API... ones that provide modern language services with all the bells and whistles (as of 2016 anyway).
The main difference with older style compilers were they would often be top down (top down precedence) using mutable data structures (either oo or data oriented). But these ones are using functional techniques like lazy evaluation and immutable data structures. #TypeScript is also mainly about the tooling (user experience) aspects of programming and not the code generation parts. Research and uni courses today are often very heavy on the code optimization phase, which doesn't even exist in TS.
An architecture walk through for #TypeScript in about 45 minutes. So, quite fast. There's a version in 20 minutes as well... but that one is maybe toooo quick.
The interesting thing for me was how it shows that it combines different stages together. Reducing the number of passes over the code, and how to reduce the amount of work that pipelines of processing happens.