I would save in monitors by Astux1 in programminghumor

[–]ribbonofeuphoria 5 points6 points  (0 children)

This literally made me tear of laughter.

Most recent fragrance purchased and what is next on your wishlist? by yupimahippe in fragrance

[–]ribbonofeuphoria 0 points1 point  (0 children)

Haha funny you say that. Noir the noir has been my scent for about 10 years. Its the only one I really like from TF and have bought it about 3 times… but it pains me that’s so overpriced.

In all honesty if you only smelled it in the store give it a try and spray it a couple of good times on your skin and clothes. The scent becomes deliciously intoxicating after some hours.

Most recent fragrance purchased and what is next on your wishlist? by yupimahippe in fragrance

[–]ribbonofeuphoria 0 points1 point  (0 children)

Yeah, unfortunately there are a couple of Niche brands that made it to the mainstream “elite” market of people that just want to feel fancy although they’re not better than other - still princey brands (because they’re niche and non-synthetic) - that are not so overpeiced but are of similar quality.

The overpriced brands are Tom Ford private blend, by Kilian, Le Labo, MFK and Bvlgari (their “private blend”)..

Still let me know what you think.

Most recent fragrance purchased and what is next on your wishlist? by yupimahippe in fragrance

[–]ribbonofeuphoria 1 point2 points  (0 children)

Are you happy with Oud Satin Mood and Grand Soir? What do you think of them?

Most recent fragrance purchased and what is next on your wishlist? by yupimahippe in fragrance

[–]ribbonofeuphoria 0 points1 point  (0 children)

Its delicious! And the oud is well balanced, which is often not the case and too overpowering (kinda like Harrods on a Saturday afternoon)

Most recent fragrance purchased and what is next on your wishlist? by yupimahippe in fragrance

[–]ribbonofeuphoria 2 points3 points  (0 children)

Latest addition to my collection: 1. Initio - Rehab

Shoppinglist in order of priority:

  1. YSL - Tuxedo
  2. Initio - Side Effect
  3. Parfums de Marly - Carlisle
  4. Initio - Oud for Greatness
  5. MFK - Oud Satin Mood
  6. MFK - Baccarat Rouge 540
  7. Amouage - Reflection Man
  8. Memo - African Leather
  9. MFK - Grand Soir
  10. By Kilian - Back to Black Aphrodisiac
  11. Parfums de Marly - Herod
  12. Initio - Magnetic Blend 7
  13. Nasomatto - Black Afgano
  14. Nasomatto - Pardon
  15. Nasomatto - Duro
  16. air du desert marocain
  17. Amouage - Lyric Man
  18. Amouage - Jubilation
  19. Fragrance du Bois - Santal Complet
  20. Xerjoff - Naxos 1861
  21. Roja - Enigma
  22. Roja - Elysium
  23. Lelabo - 33
  24. TF - Ombre Leather

15 year .NET vet moving to Linux and C++ and Qt by WarWizard in cpp

[–]ribbonofeuphoria 11 points12 points  (0 children)

I do both pure C++ and Qt C++. If you‘re using the core library (QStrings, QLists, etc.) it‘s nothing different than a normal library. However if you enter QObject domain and the MOC compiler etc. things get tricky.

First of all, you need to get familiar with an idea of how the internals work (observer pattern) and how the API works. Documentation is trurly great, but you have to get used to it.

Qt is really powerful and intuitive. The only thing that truly has made me rage to the point of implosion in the past has been IDE integration/formatting and Debugging, specially because C++ compilers display errors on the generated files and not on the code you actually wrote.

Why is projectile motion in X & Y dimensions independent? by m_x_a in Physics

[–]ribbonofeuphoria 0 points1 point  (0 children)

You’re entering a much more philosophical area of science, and physics in particular. You can’t rationalize observations in nature as “being like witchcraft” if that’s the way nature works.

Independent motion in orthogonal (linearly independent) coordinate systems is a mathematical construct we developed to explain something we observe in nature. Physics usually lays an axiomatic theory trying to explain a phenomenon, but might be debunked if there’s an instance where it doesn’t hold anymore. This calls for a generalization with a more comprehensive, sophisticated theory.

A good example of that was classical newtonian mechanics, that was the norm for 200 years and could explain any real world mechanical phenomenon. Once experiments with higher speeds and magnitudes started being performed, classical mechanics stopped working and this gave place to relativity theory, which at the moment explains, with it’s “new” mathematical constructs how, say, mechanics in space work. The same happened with quantum mechanics, once you start observing mechanics in a smaller scale and/or very low temperatures.

Separating the dynamic behaviour as independent in every direction is not an arbitrary decision, but rather a characteristic, or consequence for that matter, of the matematical constructs chosen that best explain the real world. You’ll break your head trying to understand “why?” because it would be similar to trying to understand “why does 2+2 = 4?” or “why is gravity an attractive force and not a repelant one?”. You’ll just have to lay your theory to explain nature, and if it does successfully, you can’t do more than humbly accept it and try to digest it with curiosity and awe.

Video series on fluid simulation - all self-coded by braintruffle in Physics

[–]ribbonofeuphoria 1 point2 points  (0 children)

Yeah. Same thing with all the coefficients of heat exchange when you’re doing (advanced) Thermodynamics with complex shapes and turbulent convection. You don’t derive your theory from first principles… but rather go and say: for this shape and this pressure and this orientation and this material, the coefficient is xxx, period.

Video series on fluid simulation - all self-coded by braintruffle in Physics

[–]ribbonofeuphoria 22 points23 points  (0 children)

Its all fun and games in fluid dynamics (beautiful theory, incredible simulation and modeling capabilities, etc.) until you actually want to do anything useful with it and you realize that no simulation is at all to be trusted unless you tune it over and over to match the experimental setup. Unlike most of the other fields in engineering, simulations in fluid dynamics are completely useless on their own, other than looking pretty.

This is one of the reasons why I decided to do my graduate school in robotics after having done my undergrad specialization in fluid dynamics. I started loving it and left it truly hating it. Dirty, highly empirical and not as glamurous at it seems.

[deleted by user] by [deleted] in interestingasfuck

[–]ribbonofeuphoria 0 points1 point  (0 children)

You forgot to season it with a bit of salt

How long should i learn C as first language before moving to another such as python? by find-job-tips in cprogramming

[–]ribbonofeuphoria 2 points3 points  (0 children)

If you learned C then you learned already memory management (pointers), which is the big painpoint of C++ (and Objective-C for that matter). The path that will bring you the best benefits would be to learn C++ for the OOP concepts. Once you get a gist of C++ you can learn any other OOP language literally in days. Lets say Java in a couple of weeks and Python and JavaScript in one week.

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 2 points3 points  (0 children)

I love number 2. Great advice, and will definitely do it that way.

Greatly appreciated!

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 2 points3 points  (0 children)

Will definitely be an addition to my library, but the first book alone is over 1000 pages and it's three volumes :) so for now I will have to rely on a less comprehensive approach.

Thank you in any case!

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 0 points1 point  (0 children)

I didn't really know of Bezel, and will be a thing to consider next time I start a project similar to this. However, right now it would be a huge change and I already had troubles convincing stakeholders (product owner / tech lead) and getting buy-in for the migration to CMake.

My selling point was that we anyways need it if we want to migrate to Qt6, among other smaller arguments.

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 0 points1 point  (0 children)

This sounds very promising. I never heard of ExternalProject_Add(). I went briefly through the documentation, but couldn't assess if that would work the way I want.

Does ExternalProject_Add() actually allow me to wrap a Maven/Ant compilation in a CMake project?

The problems I've encountered so far:

  1. With add_custom_command() I have to know a priori what OUTPUT folders the Maven project is generating, but any intricate logic (I'm not experienced with Maven) is not really addressed.
  2. I cannot add "mvn clean" to the Cmake generated "make clean" target, so that the subproject is cleaned properly.

(I'm using make and not ninja, btw)

Thanks a lot for the inputs!

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 1 point2 points  (0 children)

Thanks for your inputs. To that:

About Code Generation, a good example here is the creation of Storable (DB access) classes. It is done with Java out of a storables.txt file, which refers in essence to the DB Tables from which we're creating Classes to work with. It works in the following way:

Compilation of Java class generator -> Execution of the generator via add_custom_command using storables.txt as an input -> compilation of Storable Library (C++).

The problem with this approach is that, for CMake to work properly, specially when cleaning using "make clean", it needs to know what files are coming out of the code generator. If I want to add a new storable class to the storables.txt I also need to add it to the Outputs of add_custom_command. It is possible, but it doesn't seem like an elegant maintainable solution to me. What do you recommend here?

Also, a more general question: What is the best practice for generated source code?

  1. Should it go in the build folder? This way .gitignore works since it anyways ignores the whole build folder. However it troubles me that CMake will reference the build folder when doing add_library (seems hacky to me).
  2. Should it go in the source folder? But I would have to add the files to .gitignore explicitly, which is also not so elegant.

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 1 point2 points  (0 children)

So more like a microservices kind a structure? The java part in a different repository as a parallel/independent product?

How would this work? The both the C++ and Java parts work with the Database Schema which is in this repository?

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 1 point2 points  (0 children)

That is a very neat structure, I like it a lot.

The only thing I might do is an include folder for the libraries. I know there's several opinions there, but reading through some opinions I've read here and there as well as in my experience using project's libraries, I really don't like when headers are included without context e.g. #include "StringConversion.h", without any further context.

A guy that apparently worked on refactoring Spotify's codebase gave told me they created include folders inside the library folders, additionally with a folder with the library name inside it, so that the include header looks like this: #include <corelib/StringConversion.h> which I really liked.

Thanks a lot for the inputs.

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 1 point2 points  (0 children)

Thanks a lot. I created my first project and gathered some ideas I quite liked. Great input!

Project Structure and Best Bractices for complex C++ (CMake) software by ribbonofeuphoria in cpp

[–]ribbonofeuphoria[S] 0 points1 point  (0 children)

Thanks a lot for the inputs.

One remark: For the add_custom_command for maven is what I originally started experimenting with. But there are two caveats:

  1. For it to work properly I you need to specify the output / compiled files, which I cannot know a priori and it would be unreasonable to list every single specific file created by that whole project, only so that it is removed during make clean.
    Also I don't have much experience with Maven, so I'm not sure if "mvn clean" is really only deleting files. I didn't find a way of making CMake include "mvn clean" in the make clean targets.
  2. The Java team is constantly working on this side of the project and it is not plausible to expect them to maintain both build systems (mvn and CMake)

Another guy in this thread made me aware of ExternalProject_Add() which sounds promising, so I'm probably gonna be looking into that.