Huh, so Tony Hoare invented null
and then Graydon Hoare invented Rust, immediately terminating the existence of which does not have a traditional null
null
value.
Huh, so Tony Hoare invented null
and then Graydon Hoare invented Rust, immediately terminating the existence of which does not have a traditional null
null
value.
With that name, I hope the guy is also a fan of Minetest: https://wiki.minetest.net/Mese_Block
🙃
I actually even made my own bullshit-Spotify. As in, I’ve got a server running on a single-board computer which reads my music folder and serves a small music player as a webpage.
I didn’t want to install a music player client on my work laptop, but still wanted to listen to my own songs there.
This looks like one of the color blindness filters got activated. Here on Plasma 6, it’s a Desktop Effect in the System Settings. Not quite sure, if that was also already the case in Plasma 5, but if you just type “blind” into the search bar of the System Settings, then it should show up and you can disable it.
But that is what I mean with it needing an extension of the language.
So, I’m not saying you could just build a library that calls existing PHP functions to make it all work. Rather I’m saying there’s certain machine code instructions, which just cannot be expressed in PHP. And we need those machine code instructions for actually managing memory. So, I am talking about reading/writing to memory not being possible, unless we resort to horrible hacks.
Since we are building our own compiler anyways, we could add our own function-stubs and tell our compiler to translate them to those missing machine code instructions. But then that is a superset of PHP. It wouldn’t be possible in PHP itself.
Again, I’m not entirely sure about the above, but my web search skills couldn’t uncover any way to actually just read from a memory address in PHP.
I mean, I’m a bit out of my water there, both in terms of the featureset of PHP and what’s actually needed for a kernel, but I’m still gonna go with no.
For one, PHP uses reference counting + garbage collection for memory management. That’s normally done by the language runtime, which you won’t have when running baremetal.
Maybe you could implement a kernel, which does as few allocations as possible (generally a good idea for a kernel, but no idea, if it’s possible with PHP), and then basically just let it memory leak until everything crashes.
Then again, the kernel is responsible for making processes crash when they have a memory leak. Presumably, our PHP kernel would just start overwriting data from running processes and eventually overwrite itself in memory(?). Either way, it would be horrendous.
Maybe you could also try to implement some basic reference counting into your own PHP code, so that your own code keeps track of how often you’ve used an object in your own code. Certainly doesn’t sound like fun, though.
Well, and secondly, I imagine, you’d also still need an extension of the language, to be able to address actual memory locations and do various operations with them.
I know from Rust, that they’ve got specific functions in the stdlib for that, see for example: https://doc.rust-lang.org/stable/std/ptr/index.html#functions
Presumably, PHP does not have such functions, because its users aren’t normally concerned with that.
How? You’d need to compile it down to machine code somehow, for the processor to have any clue how to run it. And you’d need some custom library with custom compile instructions, to be able to control memory allocations, memory addresses etc…
I did a quick search and found two operating systems written in JS, both of which cop out when it comes to the kernel. Did you maybe mix it up with those?
Agile tries to solve this differently.
First and foremost, it puts you into tight-knit communication with your team and the customers, so just ask if anyone remembers why it is like that.
If no one does, then Agile enables to basically fuck around and find out.
Which is to say, change it to how you think it’s supposed to be and see if anything breaks / anyone complains. If that happens, Agile allows you to react quickly, i.e. to change it back and quickly release a fixed version.
But yeah, as the others said, if your team feels like documents work better for them, then do Agile and documents. That’s why retrospectives are an integral part of Agile, because it’s not a perfect plan how to work together. You’ll know best what works in your context.
Good thing that this isn’t actually possible…
I mean, presumably there’s a microcontroller in this radio. For programming that, your only real mainstream choices are C, C++ and Rust, since you can’t have a language runtime without a filesystem.
But yeah, it’s neither the case that Rust is overwhelmingly popular for that (C/C++ do stick around still), nor is it the only discipline where Rust shines.
We use this framework at work: https://leptos.dev
I believe, it’s because various Python libraries ship with a pre-compiled C/C++/Rust library. That library needs to be compiled for a specific target, and you often only get Linux x86_64 on Pypi, because that’s what most library devs use themselves.
Conda tries to solve that by providing a separate repository, where they do have builds for more targets available, but as a result, they have fewer libraries available in that repo. That’s why we needed to install some via Conda and some via Pipenv/Pypi.
Early on in my career, I had to do a project in Python, together with another junior. Neither of us had any clue how to handle Python and he was on Windows, so, if I remember correctly, he had to install some dependencies from Pipenv, others from Conda, and his setup would break every two weeks in novel ways.
Eventually, we became quite good at installing a working setup, but correctly removing the broken setup was a pain. Often times, I thought that just reinstalling the whole OS would be quicker. 🫠
I mean, there is some legitimate concerns. For example, in theory, someone could register a domain “αpple.com” and use that to send phishing mails. That “α” is an alpha. The more alphabets and letter variants you allow, the more lookalikes there will be.
But yeah, in practice, domain registrars check that you’re not registering such a lookalike domain and then that’s not really a problem, as far as I’m aware.
deleted by creator
Well, there is Punycode, which, if I understand correctly, is a layer before DNS, which translates a Unicode string into a DNS-compatible ASCII string.
I don’t actually recommend using that, though. Every so often, the ugly ASCII string shows up in places, because Punycode translation isn’t implemented there. Certainly increases administration complexity.
Aside from the technology stack being the embodiment of vendor lock-in and misery, the scamming is really what makes me not want to work on Generative AI tasks, or whatever the next hype thing is going to be.
The worst part is that many people want to be scammed. We have customers come to us, asking for a solution to a problem they’ve had for long time, and asking it to be solved with GenAI.
Then we tell them that there’s really no use-case for GenAI there, that it could be better solved for half the money using traditional methods.
At which point, they ask us to integrate GenAI in some place anyways, because otherwise their boss will not give them the money. And of course, that boss also has a boss who also only frees up budget for GenAI.
And that just repeats upwards, until you have shareholders at the top, who eat up the hype, because other shareholders eat up the hype.
Ah, that’s a pity, but I half-expected that to be what’s still work-in-progress, especially since I’m also using Activities to group my workspaces.
I do hope the new system allows creating something more reliable in the long-term, though.
I’ve been waiting for this release, because of the first item on the first TWiK after the release of Plasma 6.0:
There’s a new KWin effect called “Hide Cursor” (off by default for now, but try it!) that will automatically hide the pointer after a period of inactivity (Jin Liu, Plasma 6.1. Link)
https://pointieststick.com/2024/03/02/this-week-in-kde-a-smooth-release/
If you just want correct metadata (no own adjustments), then getting it from the MusicBrainz database is probably easiest. You can use MusicBrainz Picard for that: https://picard.musicbrainz.org
It does also seem to have a scripting API. No idea how well that works, though.