HN user

danra

430 karma
Posts12
Comments102
View on HN
Modeless Vim 3 years ago

Good to know.

Of course, I did have to google how to quit easy vim.

Sound Radix | Senior C++ Algorithm Developer | 80%- to Full-Time | Onsite/Hybrid/Remote, Tel Aviv, Israel

We are looking for a top C++ algorithm developer to join us in creating cutting-edge tools for audio professionals.

What we offer:

- Research and develop groundbreaking, world-class audio algorithms and software

- Join and make an impact in a small, expert team of developers

- Meaningful work: help the top artists, music producers and sound professionals in the world create music and audio. Our customers comprise the teams behind Coldplay, Rihanna, Ted Lasso, Dune, and many more

- Accommodation for a 4 days work week

- Flexible onsite/remote hours (fully remote is possible, onsite/hybrid preferred)

- Competitive compensation

Requirements:

- At least 8 years experience programming

- At least 5 years experience programming in C++ or other low-level language

- At least 3 years experience in R&D of algorithms (DSP is an advantage)

- Experience with JUCE is an advantage

- Experience with NumPy/PyTorch is an advantage

Soft requirements:

- Curiosity and creativity

- DRY and maintainable programming style

- High capacity for self-management and working independently

- Commitment to providing a great user experience to professionals - Passion for music and/or audio

Please send your application to jobs@soundradix.com

That's taking it to extreme, though. It's possible that a large number of medium companies, for instance, would have the same open source yield as the megacorps who just bought them out (in our reality). Especially if it were easier for them to attract more talented engineers, which would be the case if the big companies had less of a grip on the existing market (e.g. if Meta were forced to split up, as regulators push for)

By "techwashing" I mean using some of the money a company makes in its main business (which in the case of Meta and some other corporates has a bad impact on society) to make a positive technical contribution to the public , thus helping existing and prospective employees work there with less of a guilty conscience.

Similar, to e.g. a pharmaceutical company raising the price of a medicine excessively, but then donating some of the money to build a hospital.

It's just that in the case of tech companies, the reputation washing is done via technical contributions.

corporate funding of all the open-source projects that wouldn't exist without the megacorps

This is a fallacy: It's possible comparable open source contributions could have been made without the graces of the corporates.

For example: The giants tend to buy out their competition early, so how could it mature enough to be able to contribute comparably, or possibly better, to open source?

IMHO the open source contributions of these companies are a form of tech-washing, regardless of the honest and best intentions of their employees.

Can’t wait to try it out on my desktop.

On my mobile (iPhone), I get clicks and other artifacts on playback, which increase when scrolling the view, which I guess indicates samples not being generated fast enough.

At my company’s site[1] we have a non-intrusive banner at the bottom which lets you agree or disagree to tracking cookies, or just ignore it and browse the site.

You don’t get served any tracking cookies until you agree.

This fulfills the explicit consent requirement of GDPR as well as the requirement for people to be able to use your site even if they don’t accept cookies.

We get much less analytics then we used to - many people just ignore the cookies bar, either knowingly or just because they don’t notice it. But it’s totally worth it.

I hope the EU starts fining non-compliant (i.e. 99% of) sites aggressively, specifically those that pretend to care about your privacy, but don’t really (“Agree” button only).

[1] https://www.soundradix.com/

C++ apparently wants to separate 1 from 2 and 3, to move more high-level and get more "language magic" (templates, iteration stuff... ) without making the language any safer in any respect.

How so? Take std::unique_ptr for example, which exists since C++11. It facilitates using the language in a safer manner, and at a higher level of abstraction (you no longer have to manually malloc and free/new and delete - you just have the concept of scoped ownership), while at the same time not adding any “behind the scenes” magic (e.g. garbage collection) so as not to leave room for any high-level language to be more performant than it is - that’s the real motto of C++, to my understanding.

Every once in a while I search for something I need in Python and find that it only exists in Python 3, but I'm not quite convinced it's worth the effort to transition from 2.

However... I've just learned about Python 3's f-strings and they gave me a big smile, and probably the final push I needed :)

(Yes, I do know that sounds silly and there are probably much better reasons to transition to Python 3 ¯\_(ツ)_/¯ )

I’m far from the top expert on the history of C++, but here’s my understanding:

C++ aims to be the high level language which leaves no room for another high level language to be even more optimized below it - “pay for what you use”.

Having its roots in C, while having high level abstractions, C++ also has a lot of low level functionality which is hard to use correctly and safely unless you have a lot of experience (e.g. raw pointers). This low level functionality is sometimes needed, but definitely not always, and the recent iterations of the language over the last decade try to both add new abstractions which make the language easier to use, and deprecate the most tricky parts which are not really needed anymore and which have better, modern alternatives (this being limited by the need to maintain sane backwards compatibility) - all the while maintaining C++’s design goal described above.

An example of an addition is unique_ptr and shared_ptr added in C++11 and which make managing ownership and correct lifetime of allocated objects much easier.

An example of a deprecation is eliminating gotcha uses of the ‘volatile’ keyword, and thus simplify the language. (I believe this one is still undergoing approval.)

There is a big difference between modern and “classic” C++, but it’s mostly a good difference - C++ is much easier to start using and to teach than it was 15 years. It still has a way to go, and the standardization committee makes a lot of effort in that direction.

As for keeping up - it’s definitely a lot of work. Learning C++ isn’t something you start and finish - it’s more like culture. You spend some part of your life studying and enjoying it, and there’s always something new.

We can hope for a future in which learning C++ is something you just start and finish, but we’re not there yet (if ever). I’m not sure if that’s a good or a bad thing :)