60 karma · joined February 8, 2021
What's wrong with these?:
- C++: The Core Language by Gregory Satir and Doug Brown
- https://github.com/QuantumLeaps/OOP-in-C
- C++ Concurrency in Action
- C++ Templates the Complete Guide 2e
The first is particularly geared towards C programmers, and I prefer the second one to "Inside the C++ Object Model". (There's also another popular book by a German author who covers OOP in C.)
For the time being, I will be an "opportunist" who is waiting for the right time to switch to another language - Rust:
"To me using C++ means you are ready to give up a lot of time and energy in order to gain a complete control over certain aspects of your program. I was very much into that at the start of my career and gradually started drifting away to more immediate productivity while reserving the right to poke under the hood when necessary. This has led me to Rust and I find it to be the better natively compiled strongly & statically typed language, but YMMV of course."[1]
(No, the concepts I learn in C++11 and beyond won't go into waste even when C++ becomes less and less relevant in a couple of decades.)
According to Stroustrup himself[2], you should know 5 different kinds of programming languages. So for me it's:
- Systems programming: C (has a special place in my heart)
- General purpose: C++ (will switch over to Rust when the time is ripe)
- Scripting: Python
- JVM: Scala
I think with these, you are well-equipped for the "future".
Also, specialization has its benefits[3], that's why I am not "language hopping" constantly. I am "conservative" (C++) until I feel I that the time is right for me to be a "liberal" (Rust).
References:
[1] https://news.ycombinator.com/item?id=24805717
- "The function of this sound is to tell the user that the hardware is running like it is supposed to, and that the disc has successfully been read. To add, the swooshing reverse sound is designed so that it can go into loop if the disc couldn’t be read, and we can understand if something went wrong."
- "I thought of the structure, selected the tones, and gathered the instruments in 2 weeks, and the studio work was done essentially in 2 days. I kept thinking from the start that I wanted the sound image to be something exciting, like that feeling when you walk into a cinema. I really wanted to communicate and reinforce that something fun is going to happen."
References:
[1] https://blog.playstation.com/archive/2019/12/05/how-sound-de...
[2] https://www.mobygames.com/developer/sheet/view/developerId,5...
I have now produced an equivalent solution via a Bash script: https://github.com/d26900/Scripts/blob/main/setup.sh
My shortsightedness in this particular case, caused me to opt for a bad solution.
Nevertheless, thanks to the input I received here, I was able to correct this wrongheaded decision of mine.
Thanks again, I think I learned a valuable (life) lesson here.
Yes, you are right, my tool is pretty much redundant now (w/o any error handling as you rightfully pointed out).
Anyhow, good riddance, and thanks for your valuable feedback! (This is so embarrassing and painful at the same time for me, but in a good way.)
However, I also don't shrink my table, once it grows. It stays grown. (Another drawback of my lib I suppose).
Thank you for the feedback, I really appreciate it! :)
I made something similar to it being inspired by the C++ standard library. But it is for C89:
https://github.com/d26900/JamaisVu
I use tombstones for my hash table (unordered_map) though.
Another drawback of my lib: for each hash table entry, I allocate an extra byte for the tombstones.
All you need to do is to provide a list of packages that you want to install inside `npms.txt`. In the `npms.txt` you can list the package `react` and define the installation commands and options like so:
! npm install
? -g
react
Then you need to run `python3 workman.py` as an administrator. Done! (Don't forget to include the `npms.txt` into your `todos.txt`. The `todos.txt` is a requirement.)
(Note that you can also comment out to-dos from `todos.txt`.)