Show newer

@kornel I can only see that being true from the point of view of applying the model to absolutely everything across the board. You want raw references or pointers to be borrowing, c++ says nope of course. You want a special borrowing reference? Nothing compatibility or ABI breaking there. It's just a matter of defining good fundamental abstraction in the language standard. Yes C++ will never have rust's model, it will more likely have a few new fundamental building blocks added with which you could implement rust's model as a library, and many other similar models.

@kornel your argument is the absolutist one in terms of the language. Asking how to make C++ absolutely safe in regard to object lifetime management, one arrives at rust as the answer. Except then one realizes that nothing is absolute and the language is fundamentally flawed without the unsafe code, that is there are efficient and safe data structures that are impossible to implement with the hard requirement of absolute language level safety.

C++ could easily have a subset, sticking to which you can have exact same guarantees. At that point it just becomes a question of opt-in versus opt-out. I imagine when it gets to it, we'll also know a lot more about object lifetime management, and employ better abstractions and customization points.

@GlowingLantern@misskey.de

one does not simply 

disqualify a library for misuse of mathematical terminology

Show thread

"Arbitrary in this case means that the ratio of input and output sample rates can be an irrational number."
- libsndfile.github.io/libsample

oh sweet summer child, I'm sure that's exactly what you cute little bunny of a library actually does

@b6hydra do you make conference calls with the whole school or district? Convince your class to switch, it's not impossible especially if you are the tech savvy of the bunch. Zoom for one doesn't work on my setup off the bat, I could probably get it to work, but It's always quicker to drop a link to Jitsi.

now javascript is a lot like c in many ways, but this kind of thing in particular is why you can find illegible low level hand optimized javascript that is almost identical to c. People would bit twiddle in javascript because browser API is utter trash.

Show thread

me: *jumps to all sorts of hoops to use browser built-in audio resampling to show respect*

browser built-in resampling: *cracks and pops*

me: *suspects everything else in the world out of continued respect for browser built-ins*

everything else in the world: *doesn't crack or pop*

me: *finally buckles under stress and hand rolls no effort linear resampling in freakin javascript*

hand rolled no effort linear resampling in freakin javascript: *sounds pristine*

@bonifartius it's just plain stupid on so many levels, i'm no no longer updating my personal repos there cause of that

I think I'm starting to slowly digest c++20 modules... it's basically pre-compiled headers done right + some language support for interface and implementation distinction.

pre c++20: logical component is a *header file* and bunch of *source files*.
post c++20: logical component is a *module interface file* and bunch of *module implementation files*.

pre: have to use an include guard to identify the *header files*, and name collisions cannot be diagnosed.
post: got a language level module name that compiler can diagnose, as there should be only one *module interface file*, identified by an export statement - two of those with the same name in a single translation unit is a conflict.

pre: no way to tell if a *header file* modification actually made a difference, changing a comment or white space can cause a massive recompilation chain reaction, as *header files* are just copied into the *source files*.
post: extra compilation step of *module interface file* allows the compiler to make a judgement about the nature of the modification, emitting a compiled interface file that other dependent modules use for compilation, instead of copying the text. This compiled interface does not change if you haven't actually meaningfully changed anything that is marked to be exported in the *module interface file*.

now what I don't get is what's going on with gcc's module mapper... why do you need an external server/file/program to map module names to files? Why don't just import the compiled interface file by name, and build up the dependency graph that way. My module files imports and depend on the compiled interface file of your module which depends on module interface file of your module... the module name to file name mapper seems like a whole lot of trouble for a minor convenience of having import and export declaration match exactly...

@georgia @newt hmmm, paying with knowledge sounds like hard work... like teaching... nah, I pay you to decipher my esoteric nonsense...

@freemo oh right, it's called hyperspace not hopperspace, makes sense

@nasser it's 1 dimensional nearest neighbor scaling, so I would initially call it
scale1_nearest(data, factor).

I would then generalize it to support different filters and fractional sealer, and call it
scale1(data, scaler, filter = nearest).

Still unsatisfied I would try to generalize it to N dimensions, preferably inferred from the parameters, so that I can call it simply
scale(data, scaler, filter = nearest).

so what do you call a multidimensional iterator (multiple choice cause I got 2 slightly different implementations of the same thing)

the horror of software complexity 

Thousands of people come together to build a skyscraper. It turns out to be this preposterous abomination, that is not my castle, and I can not change it or reshape it in any way to become my castle. Daaamn, fuck civilization, let us all crawl back into caves, so that I can be a king and a god of my cave, since, if I'm not a king and a god for another second, I'm going to cry.

@boing Once a person is dead their name is meaningless other than what it represents for those who are alive and wish to commemorate it. If it represents a moral ideal, then that's all it is. If you want to go out of your way to prove that said specific person was a piece of shit, while they are otherwise remembered as perfect, that's not about said specific person that's about you. You want to defy the ideal, for no other reason than to show that all are imperfect. People define perfection in order to strive for it, and personifying it makes it more compelling. If humble, one'll never think to have achieved it or even represent it, otherwise, even defiant, one would think of themselves as perfect, with the imperfections of others only helping to lower the "standard" to strive for, so at the end it is irrelevant whether you give dead people a god-like status or not. What you are arguing against is hubris, and I imagine it takes a lot of it to demand a renaming of a street.

@ken most work has downtime, even a computer can go idle every now and then waiting for something. The work hours are about dedication, in that time your work is your top priority, you must be active as soon as it's possible, as much as it's possible, constantly fussing about improving efficiency of the process, you must be available for your co-workers or clients if they need you and accountable for a certain portion of the work. In other words if there is nothing to do you must think of something to do and you must always be ready to go. That's the idea, not constant uninterrupted mechanical work, it's a form and a measure of dedication.

It's actually much easier to be flexible if the work is very mechanical and definite. Like if your job is to build some ginormous lego set by end of the week then nobody would care when and how you do it as long as you do it in time.

@tripu translation:

there are two types of authority:
1. authority I don't like
2. authority I like

the "position of power and influence" comes from authority, it's almost the definition ffs, but once again you must prove that the difference between cause and effect is beyond your comprehension.

people expect a professional to build their homes, everything from plumbing, electrical wiring, air conditioning to home appliances and furniture are all installed and/or maintained by professionals, on a case by case basis. But when it comes to software you just gotta poke around in it like an ape and turn in on and off until it somehow works.

Show older
Qoto Mastodon

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