psobot
Using Models to Create Models of New York City
A.I. and Burnout
Shelling Out Is Selling Out
AI and Burnout
Shelling Out Is Selling Out
The fobs were visible by an IR camera (including the average smartphone) and could trivially be decoded as a short bit sequence with an IR sensor wired into a microphone jack, as the bit pattern was transmitted at ~audio rates.
Needless to say, I moved.
The first and best solution is to help these people improve, obviously. You've tried that, but it's not working quickly enough. (People can always be coached; some are just more coachable than others. When I hear that someone "isn't learning," that always reads to me as someone who's "learning more slowly than I have patience for.")
Then, the second-best solution is for management to move people around to other teams, or out of the company. Unfortunately, that's difficult and slow - and sometimes impossible, depending on the company culture or regulations.
Then, the third-best solution: move yourself to an environment with "better" people in it. This also may not be possible or desirable; job changes are difficult and can be risky.
So, the fourth-best (but most common) solution: make your peace with the situation by finding ways to become comfortable with the gap between your expectations of your colleagues and their actual performance.
Some strategies:
- Remind yourself that "the company pays me well to put up with this." (And if the company doesn't pay you well enough to make it worth it, then yes, absolutely leave. I assume Microsoft pays you well though.)
- Dig deep to find out what frustrates you about working with these people, and address those concerns instead. Are you frustrated because these people increase your workload? Are you worried that their lack of quality work will reflect poorly on you? Do you worry that they will compromise work that you care about? These are all insecurities that can be addressed.
- Remember that intelligence is not linear; nobody is strictly smarter than somebody else in every aspect of life. These people may be good at parts of their jobs that you don't see, in which case your expectations of these people may be what needs to change.
See: https://support.apple.com/en-ca/guide/messages/icht8a28bb9a/...
K2000 – a Python interface to the Kurzweil K2 series of synthesizers
Reviving an Analog Polysynth with an Arduino, Ghidra, and Python
Reviving an Analog Polysynth with an Arduino, Ghidra, and Python
Reviving an Analog Polysynth with an Arduino, Ghidra, and Python
Debugging an empty spam email (2016)
I'll give you a hint - the post was originally twice as long and _did_ go into detail about why I wanted to patch something, but a reviewer of the post pointed out that I could potentially have run afoul of one or more laws in one or more countries if I had succeeded in doing so.
Debugging an empty spam email (2016)
Pedalboard doesn't support GUIs at the moment, but there's an issue on GitHub to track that: https://github.com/spotify/pedalboard/issues/8
(Fun fact: the Echo Nest's Remix API was what got me interested in writing code way back in high school. Now, more than a decade later, I'm the tech lead for the team that owns what's left of it. I still can't believe that sometimes.)
Pedalboard would also be usable in situations that are tolerant of high latency and jitter, though, given that all audio gets handed back to Python (which is both garbage collected and has a global interpreter lock) after processing is complete.
That's correct: Pedalboard just adds effects to audio, but doesn't have any notion of layers (or multiple tracks, etc). It uses the Numpy/Librosa/pysoundfile convention of representing audio as floating-point Numpy arrays.
Mixing two tracks together could be done pretty easily by loading the audio into memory (e.g.: with soundfile.read), adding the signals together (`track_a * 0.5 + track_b * 0.5`), then writing the result back out again.
Adding silence or changing the relative timings of the tracks is a bit more complex, but not by much: the hardest part might be figuring out how long your output file needs to be, then figuring out the offsets to use in each buffer (i.e.: `output[start:end] += gain * track_a[:end - start]`).