I really don't know why I struggle so much with this stuff. I believe these models / agents / whatever write code that is often at least as good as the code I write, and they are super helpful tools, but it just feels like it takes away so much of the joy that is programming to me. I'm not saying it's "right" of me to feel this way, but for me the struggle, and the figuring things out by testing, identifying patterns, or looking deeper into a library's implementation (etc) is part of the challenge that makes programming and software construction fun.
I'm in your boat. I picked this career because I enjoy solving problems and thinking and understanding. I'm interested in how things work inside below the layers. To me, it's like the tech has a purpose of its own, and not just to provide value.
Using agents effectively is this whole other skillset including managing requirements, prioritization and, worse yet, I'm rarely left with any knowledge. I don't nearly get the same joy out of "I finished a task with an agent" like I do with "I had a problem, I delved deep to understand it, learned something new and solved it"
Then again, I bet people making furniture out of wood felt the same about industrial furniture factories. And it can be argued that not every use case needs custom tailored furniture...
I came here to ask if there is some way of fixing this. I'm guessing not.
Youtube lately seems particularly bad in terms of showing lots of "shorts" all over when I have zero interest in watching them, but also suggested videos seem somehow aggressively chosen. I'm not sure how to describe that, but that's what it feels like to me.
You can subscribe to channels you like, and then just look at your "Subscriptions" tab to see new content from them. They do stick a Shorts feed in there however which is annoying.
I don't see how this is an issue. To me, this does seem at least confusing, but possibly dangerous.
If you have internal auth testing domains at the same place as user generated content, what's to stop somebody thinking a user-generated page isn't a legit page when it asked you to login or something?
I relate to this. Also, I am not the best person in the world, but recently this hit the point where I decided because of these very same thoughts + nudging from my much better partner to donate to NPR, to cancel Netflix and move that money to NPR. Now no more Netflix, which is sort of a relief in ways, and I have to be more intentional about what I download / consume.
Same. Replacing all of my light switches with an app I have to use anytime I want to turn the lights on or off is indeed a huge step backwards IMHO.
Replacing all of the light switches with smart switches and monition sensors and things like this, plus automated schedules, to the point that you never need to switch any switches at all or think about lights, that is nice IMHO.
My lights are like this, I have a remote placed on top of each traditional switch. I never use the remotes, because most of it is automatic (e.g., dim lights for movies, turn off lights when we leave, turn on lights when we come home). Actually I do use my phone to switch to the "put child to bed" lighting.
The project was well made, but my read on it was that they wanted to be shown something interesting. Even if it wasn't as well made of polished, I got the impression they would have preferred something "fun" or imaginative.
Any guesses as to when a hobbyist might be able to buy the module without the dev board? Their aliexpress store didn't have them as far as I can tell, I assume they are prioritizing dev boards for the moment unless you're a big enough company to actually talk directly with Espressif.
Thanks for the link, but yeah as the other poster mentioned, this is for a dev board. I'd be interested in buying the module (which is somewhere between the bare IC and the dev board). Here is an example from their store of an ESP32-S3 module: https://www.aliexpress.com/item/1005006334720108.html?pdp_np...
Any chance you could explain this to somebody who is just learning about HID and has run this example: https://github.com/espressif/esp-idf/tree/master/examples/pe... ? "non-boot protocol" I'm guessing is the key here? I don't have a super deep understanding of HID or what the "boot-protocol" refers to.
The USB HID protocol is designed to support basically any device that regularly reports a set of values; those values can represent which keys are pressed, how a mouse has moved, how a joystick is positioned, etc. Now, different devices have different things that they support: joysticks have varying numbers of axes, mice have different sets of buttons, some keyboards have dials on them, etc. So, there's no single format for a report that simultaneously efficiently uses bandwidth and supports all the things a human interface device might do. To solve this, the HID protocol specifies that the host can request a "report descriptor" that specifies the format and meaning of the status reports. This is great for complex devices running a full OS; there's plenty of memory and processing power to handle those varying formats. However, these HID devices needed to also work in very limited environments: a real mode BIOS, microcontroller, etc. So, for certain classes of device such as keyboards and mice, there is a standard but limited report format called the "boot protocol". IIRC, the keyboard version has space to list 6 keys that are pressed simultaneously (plus modifiers), all of which must be from the same table of keys in the spec, and the mouse has an dX and dY field plus a bitfield for up to 8 buttons (four of which are the various ways you can scroll). To implement a more complex device, you'd want to be able to specify your own report format, which the ESP driver doesn't seem to allow you to do.
So your original comment / request was regarding USB specifically then?
I ask because I'd have guessed (possibly incorrectly!) that implement HID via GATT (BLE) you'd be able to support anything the BLE hardware revision could implement?
Perhaps the disconnect for me is that it's unclear when there is some special hardware that exists within the ESP32 itself (I think I2C, I2S, etc would be examples of this) vs something you are just implementing by manipulating the IO pins. Perhaps HID is one of those things?
Maybe. If you have Linux the command `lsusb -v` gives you a verbose breakdown of the attached USB devices, if you find your keyboard it will show which interfaces it provides (a USB device can offer several if it wants) and to work at boot you want:
interface class 3 (a Human Interface Device) sub class 1 (Boot protocol or Boot interface)
In contrast the sub class 0 of HID is just the ordinary case, which is arbitrarily complicated (six thousand keys and four axis input? Why not) and so understandably a BIOS or similar environment might not implement that but a full blown OS usually does.
Doubtless tools exist for other platforms which can show the same information as lsusb
I'll give you my anecdote. I'm building a device that reads the input of a USB game controller. In my case, it's a Sim Steering Wheel. I ended up needing to incorporate a MAX3421e USB Host chip to read the HID input, because the ESP firmware doesn't have this implemented. Hardware wise, all ESP32 chips with hardware USB could do this, but they haven't prioritized it in software. Some keyboards and Mice use a protocol called "boot protocol", and you can get those to work. It's not very common in game controllers though.
A bit similar for me, I grew up in the Midwest and spent a lot of time wandering around CompUSA and Circuit City / Best Buy when I was a kid. When I was old enough and had some reason to go out West, Fry's was one of the top things on my list of things to go see, it felt like a pilgrimage of sorts.