Thanks a lot for investigating this further. I'll write a cleaner blog post to alert other potential victims. From the package downloads they're hacking around 200 people per week, just with `json-mappings`. I've definitely would have fallen myself if it wasn't for the few red flags they didn't even try to avoid.
Some time ago I was looking for a similar solution –offline first and easy sync– and was happy to find https://jazz.tools/. There are many things in common between these two projects. Just mentioning in case you want to check it out.
It's a shame that modern browsers don't optimize SVG to be processed in the GPU. It has plenty of potential, not only feTurbulence, but many other effects as well. And being able to use SVG masks on standard HTML elements would also open a bunch of creative opportunities.
Unfortunately, as you say, it's very easy to freeze a GPU if you start doing more complex SVGs.
My wife recently got her O1 visa approved and I'll be getting an O3 as dependent. I currently have an app that I'm actively developing that generates $50-$100 per month. I might be able to stop development, but at the very least would need to support the customers. I also have some product ideas I'd like to build and potentially monetize.
So the only argument is that the token window is a disadvantage for languages that use more tokens for an equivalent program. But token windows are only getting bigger, and there's also no need to fit the entire codebase in a single prompt.
If anything, it sounds like ruby on rails should've been _the past_ of AI. But it clearly wasn't.
Was going to mention this site. One nice thing it has that could be useful for this app is to have the ability to save a preset and load it in the future. I found it quite useful in mynoise.net
From my research to write the post, it looks like:
- the HFP standard was developed mainly for taking calls in a car. It seems like taking calls is still the main use case up to the latest version 1.9,
- macOS switches to HFP whenever the bluetooth headset is in use for both input and output. Interestingly, using the bluetooth mic and macbook speaker doesn't activate the HFP,
- bluetooth in general (not just HFP) seems to be designed to work under the constraint of tech from 20 years ago. Small bandwidths, small batteries, and small computational power,
- there are very nice codecs like Opus that are not used even though they've been working for over a decade.
From there I think the main problem is:
- macOS should not assume you're in a call just because you're using the mic. There are a few scenarios where that's not the case and you might not care about low latency,
- better existing codecs should be used, but aren't for some reason,
- bluetooth specs should update the constraint they have to work under.
I have the pixel buds A-series, and using my pixel 7a I can feel the quality going down when on a call. It might be just the latest buds, or my pixel 7a not supporting the codec, or the HFP not being set to use it ¯\_(ツ)_/¯
I actually didn't know about Opus, but having read a bit about it, how aren't we using that codec for all things audio? It's open source, has good platform support, quality seems to similar to AAC, it could be used for HPF. What's stopping the adoption of Opus in Bluetooth standards?
I tried this as well and didn't work for me. Maybe it works for other people?
When I connect my headphones and switch to the microphone, the same crappy sound comes up. I had tried before with the checkbox in the bluetooth explorer to disable HFP, but also didn't work.
Ouch. I'm sorry about this. I've had users on Sonoma report this. It seems they made it harder to make Gatekeeper happy. I'll reach out to your email directly to figure out how to fix it.
This made me think about the mic on my $300+ headphones. It's probably even a good mic. However, because they will only be used via bluetooth, it will most definitely be used under a HFP mode, which means that a probably decent audio signal from a probably decent mic gets completely destroyed. Nice.
Your proposal doesn't solve the actual problem.