> 8051s love talking to each other after all, otherwise USB would not exist.
Can anyone explain what the author meant by that? I thought 8051 is just an ISA, is there something special there for cross IC communication compared to other ISAs? And what the the connection to USB?
Due to its historical influences, 8051-based microcontrollers and cores are still widely used in a huge number of embedded devices and ASICs everywhere - motherboard EC, Ethernet, Wi-Fi controllers, this also includes the peripheral devices that plug into USB ports, like a mouse, a keyboard, a sensor, or industrial controllers, or whatever, so the first part of the joke is most communications via USB are just 8051s talking to each others. The second part of the joke is that even USB ASICs themselves, like USB hubs or host controllers, are often powered by 8051 cores.
I think the author's simply referencing the fact that it's a common chip used in many usb controllers and make it easy to build peripherals that work with USB standards.
Awesome post! I'm confused about the schematics of the keyboard and I wonder if anybody here might point me in the right direction:
The HWB pin is pulled permanently low, so the MCU runs the default USB DFU bootloader on startup/reset.
Then the application firmware can be programmed using dfu-programmer.
But what happens after programming, when you unplug the keyboard and plug it back in? Since HWB is still pulled low, doesn't the MCU go back into the DFU bootloader instead of running the application?
How does the keyboard run the actual application firmware rather than the bootloader?
Good eyes! That’s a handy feature of this MCU: power-on boots start the application, not the bootloader. External resets switch to the bootloader if HWB is pulled low.
> Git is one of those technologies where it's super important to get a good grasp of how to internals work.
I fully agree, that's why I built a tutorial where you learn about Git internals by implementing Git yourself in Python:
https://www.leshenko.net/p/ugit/
Looks nice,
I wanted to submit a project and I spent time to fill the forms but I was greeted with a login wall after I filled all the details. There was no indication anywhere in the process that it would be required. It made me feel somewhat deceived.
I think it would be more honest towards your users to be upfront that you require login to submit a project.
I guess it makes sense that signing up is required for obvious spam-prevention reasons, but it could be more clear when you fill the form. I’ll fix that ASAP.
If that is your goal, you also can just code up a moderation queue - sign up to have your content posted immediately, or submit anonymously and it will be moderated before it is visible.
> but I was greeted with a login wall after I filled all the details.
and? that sort of user-hostility is the signature of the modern web. for example: posting on imgur.com does the same thing with the added bonus that you lose your context and your comment after logging/signing in.
reddit does the same thing so that you spent time crafting the perfect comment only to get told you have to wait an arbitrary amount of minutes before you can post.
the whole point is to get the user to invest as much as possible and then make them pay the price as a mechanism to force them to reconcile with the sunk cost fallacy. the web is built upon such an outwardly hostile environment, and it will only get worse.
I've seen people's Git skills improve after I taught them Git internals, but I taught them in a standard lecture format.
I didn't try teaching Git internals using code before, but I hypothesized it would be a good idea, and here is the result :) I'm curious about its effectiveness as well.
Yes! I'm going to adopt that wording.
Originally I tried to do a screencast about guided Git source code exploration but it didn't work because of that reason.
It was custom made for the tutorial. I didn't release it yet because I mostly focused on polishing the tutorial itself and not the code for the interface. Do you think people would be interested in the interface by itself?