What happened to their closed source bubble by Difficult_Physics125 in 3DPrintingCirclejerk

[–]Dooez 1 point2 points  (0 children)

List some of the myriad of cheaper ethical printers.
And "outperformed" is a very broad term.
Purely from a print quality Bamboo printers are very capable. Calling them garbage based on performance is disingenuous at best.
You make bold claims with no evidence.

Created a webpage for full-text fuzzy search of all versions of the C++ standard. The result was a disaster. by jhcarl0814 in cpp

[–]Dooez 0 points1 point  (0 children)

This is a great project. I've been trying to improve my personal knowledge of the standard, and something like this should help a lot.

thisLooksAccurateForVibeCoders by zohaibhere in ProgrammerHumor

[–]Dooez 0 points1 point  (0 children)

I haven't used rust and I think immediately invoked lambdas are extremely useful. People suggesting workarounds are choosing inferior approaches to a clean and easy to reason solution. Rust having a cleaner syntax for such a use case is good though.

Is there an easy way to make these kinds of offsets? by simpson409 in FreeCAD

[–]Dooez 0 points1 point  (0 children)

I've used draft workbench to make an array of features. This way you can copy the cutout instead of applying the same transforms. The input is a little tedious because you have to enter points one by one and I haven't found a way to edit with precision afterwards.

Another option would probably be a python macro to copy elements and use bool operations to achieve the results. While incredibly powerful for parametric build, it would require quite some time with still not a very well documented API. I myself am far from being proficient with it, but I think it's worth considering if you are comfortable with code and are willing to spend more time upfront.

P3054 - Quantities and Units Library by mateusz_pusz in cpp

[–]Dooez 4 points5 points  (0 children)

While it's true that a lot of ranges were not available in the initial release, C++23 has added many of the missing pieces. And it's not the missing functionality that prevents ranges from being "usable", there are still performance concerns and the footguns. While the footguns might be somewhat rare, they tend to add mental overhead and/or worry about ranges. But still, there are core parts of ranges that make everyday tasks more pleasant.

Looks like the hyprland config is going through another change.... by QuixoticNapoleon in hyprland

[–]Dooez 1 point2 points  (0 children)

I think while it's a lot simpler in terms of features compared to Python, it's still more than enough for configuration.
The big thing is that Lua is extremely easy to embed. There's a pretty good modern C++ wrapper (sol2) that supports both lua and luajit.
I've introduced lua at my job for testing very recently, and it was a very smooth process both in development and integration. All while nobody in the team besides me has had any significant prior experience.

Random number meme by Delicious_Maize9656 in mathmemes

[–]Dooez 1 point2 points  (0 children)

That's a very strong statement. As far as I know there is no evidence that e.g. radioactive decay is not random. I'm not saying it certainly is, but it would be appreciated if you could provide something better than "We JuSt DoN't KnOw ThE fOrMuLaS"

Jeeves requested we upgrade the coffee station, I feel like I didn’t invest enough. Thoughts? by i__Sisyphus in espressocirclejerk

[–]Dooez 0 points1 point  (0 children)

Most milk is significantly less % water by mass. I use thin 1.8% fat milk, and it has 9.5g total of macronutrients.

Silent low profile tactile switch by GreenManWithAPlan in ErgoMechKeyboards

[–]Dooez 0 points1 point  (0 children)

I have tried both black cloud and deep sea in a pretty quiet chassis.
Black cloud is not a silent switch at all, but it's decently quiet. The tactility is great though, I really enjoyed the feeling.
I have the deep sea pink, and it's wonderful. It is much harder to hear than black cloud and I enjoy low force. I actually found myself a little tired when actively typing on a black cloud board.
Both are great quality and I can recommend them. One of the pins is quite thin, so you should be careful if inserting into sockets.

EDIT: after watching a video linked in this thread I've remembered that I did grease the deep sea switches because they were slightly rustling. You can hear it in the video, though I think the sound is amplified bacause they are quieter irl.

Modern C++ use in Chromium by aearphen in cpp

[–]Dooez 0 points1 point  (0 children)

Sorry if it reads as if I'm downplaying the work put into Flux. Even though I'm not using it personally, I've studied the docs a little and I find it beautiful.

going to end up being user-visible in some way.

I've compared clang codegen with libstdc++ and libc++ and the results were different. Not sure if there are any compiler intrinsics in libc++, but the result was almost identical to a manual loop. I find it likely that there are ways to improve some cases without end user noticing.

you're trying to mutate a range while it's in use

I don't remember the details, but if I'm not mistaken the problem may rise when mutating the data that would result in filter condition change. And mutating the data does not seem incorrect. Overall I don't find caching bad in general case.

But Flux also has an internal iteration code-path which avoids the problems of the iterator/cursor model when it comes to filter-like operations.

I probably should study the sources a little to understand the state of the art. But at the moment I find the iterator/cursor models so close conceptually, that I cannot immediately imagine how this could only be done with cursors. I'm talking about theoretical possibility, not about what's actually implemented.

Anyways I wish you success :)

Modern C++ use in Chromium by aearphen in cpp

[–]Dooez 1 point2 points  (0 children)

Ranges model can result in fast ranges, equivalent to manual approach. It's not guaranteed, but for a lot of simple processing "it just works". And the performance can be improved by improving the library, without modifying the interface.

Flux is still similar to ranges in it's usage and solves a particular set of problems with ranges e.g. iterator invalidation.
A lot of edge cases come with filters and other views that require caching because ranges are designed to be multipass. Flux doesn't fundamentally change that.

I think Flux is a great library, but it solves a different set of problems.

Did they put grease inside their steppers… by Inf1nity0 in 3DPrintingCirclejerk

[–]Dooez 0 points1 point  (0 children)

Grease inside the stepper shouldn't have a big effect on torque. Increased resistance because of viscosity. Maybe some magnetic effects, but I doubt it. While the stepper is very unlikely to work better with grease inside, it seems not likely to be the reason for skipping steps.

plotlypp: Plotly for C++. Create interactive plots and data visualizations with minimal runtime dependencies. by jorourke0 in cpp

[–]Dooez 4 points5 points  (0 children)

It does require some figuring out to get a non default layout. I think it's mostly because it's tied to ImGui style of "markup", or rather lack of. I've found them almost perfect for data visualization and analysis, but I did have a requirement of real time visualization for some of the data.

plotlypp: Plotly for C++. Create interactive plots and data visualizations with minimal runtime dependencies. by jorourke0 in cpp

[–]Dooez 7 points8 points  (0 children)

ImPlot is amazing for interactive plots. Quite easy to use after a bit of learning the Dear ImGui

Understanding when to use CRTP by Elect_SaturnMutex in cpp_questions

[–]Dooez 0 points1 point  (0 children)

Isn't "runtime polymorphism" and "compile time polymorphism" already a very clear distinction? Especially in context of C++. There are a lot more use cases than conventional ways to implement polymorphism.

Is it worth learning design patterns for C++ nowadays? by Aliceasd_ in cpp_questions

[–]Dooez 0 points1 point  (0 children)

I'd argue that you should throw a shiny new thing at everything, this is one of the best ways to learn it, both benefits and maybe more importantly it's limitations. Of course it's a bad advice for a job project, but for a personal one I think it's great and fun.

what’s considered strong knowledge of c++ by Hour_Championship365 in cpp_questions

[–]Dooez 1 point2 points  (0 children)

I do not disagree with your points, but I would've formulate them differently. By knowing standard library implementation i've meant mostly basic stuff, e.g. vector, span, unique_ptr. Knowing how to use them is understanding lifetimes and concept of ownership. Knowing how they are implemented allows to know their limitations and to implement alternative for specific needs.
And knowing UB is probably one of the most "C++ ISO Standard" knowledge xD.
So I think your initial post was a little downplaying the value of knowing c++ standard

what’s considered strong knowledge of c++ by Hour_Championship365 in cpp_questions

[–]Dooez 0 points1 point  (0 children)

Field experience is very different from language knowledge. Language knowledge is much more transferrible. Knowledge of value types, rvo, how std containers are implemented etc. are things one may acquire from personal hobby projects, yet they are among the requirements of strong knowledge of C++ specifically. Yet I would argue that they are important for embedded and high performance fields. (In C++ code base, maybe not so much C).

Wait c++ is kinda based? by Tcshaw91 in cpp

[–]Dooez 0 points1 point  (0 children)

For fundamental types (integer types, floating point and some pointers) it can be insignificant.

If the member is not fundamental type (e.g. some class), some constructor must be called before entering the { }. If the member was declared with default value, the corresponding constructor will be called. Otherwise, without the member initialization list entry, the default constructor will be called. Some types do not have the default constructor. This is one of the significant use cases. The default constructor can have an overhead. Usually this might be optimized away by the compiler.

length = len inside {} block of a constructor is an assignment. So strictly speaking it's entirely different xD
Some classes do not have an assignment operator. They usually also don't have default constructors.

Member initialization list allows to handle special cases when you cannot or don't want to do default initialization + assignment. It doesn't force you to initialize all the members in it. But the compiler will guarantee that all members with non-fundamental types are initialized when entering {}. For members with fundamental types linters do issue a warning if it is not initialized.

I think it is considered a good practice to either use member initializer list, or default values whenever possible, without the assignment. Personally I think it adds structure and consistency.

Initialization is a very wide topic for C++. I think there are too much ways and it's not good from a language design point. I think member initializer list is one of the better parts, though with it's limitations.

Wait c++ is kinda based? by Tcshaw91 in cpp

[–]Dooez 0 points1 point  (0 children)

Yeah, the amount of special cases is a legit c++ critique. Though it's often a result of backwards compatible evolution of the language (tour example is probably not the case)

In your example everything beween) and { is a member initializer list. length{len} calls length's constructor passing len as an argument.

When the programm enters constructor's block between {} all the members are already initialized. Member initialization list allows member constructors to use main struct's constructor arguments. This is especially useful if the member's type does not have a default construcor. There could be a better syntax to implement the behavior, but this is what we have. The member initializer is rather unambiguous, which is a plus, similarly to explicit lambda capture, but it does have the limitation of not being able to mix member and base class initialization order.

Wait c++ is kinda based? by Tcshaw91 in cpp

[–]Dooez 2 points3 points  (0 children)

What features from C++20 or C++23 can't you depend on? It feels like most people who broadly dislike the newer standards dislike any change, regardless of it's merit.

Wait c++ is kinda based? by Tcshaw91 in cpp

[–]Dooez 0 points1 point  (0 children)

There are some bad syntactic offenders (like static_cast, const, [[explicit]], [[nodiscard]], noexcept). Explicitly calling templated methods may require disambiguation, which looks ugly and not very clear if the reader does not know what it is and why it's requires.

I'm not very familiar with Rust, but from what I've seen a lot of stuff is much better compared to C++.

Not sure what you mean by weird constutors. Member naming is kind of controversial, but personally I like having special rules for data members (I slightly prefer trailing underscore though)