> I've come to realize that I often take constructive criticisms personally.
Somebody once told me, "never fall in love with your ideas." Because you are not your ideas. You are not the things you create. Your work and your creations exist outside of you and they can receive criticism without it being targeted at you personally.
> Everything from an unintentionally snarky comment in a PR I've made to someone highlight a mistake I’ve made that I probably couldn't have known about.
When someone points at your work and says "this is bad" they are not pointing at you and saying "you are bad" are they? And if they are attacking you directly, and not your work, that seems more like a problem with them than it does you.
> I see this as one of my major flaws and try hard to mask how I feel. But I just hope to learn to stop feeling bad for honest mistakes.
Feeling your feelings is not a flaw. Wanting to stop feeling bad is worthwhile, but many people accomplish it by becoming calloused and cynical. They stop caring about what they do and both they and their work suffer accordingly.
Focus instead on separating your feelings about yourself from your feelings about your work. Be critical of the things you're doing. Acknowledge where things aren't great but you're trying to do better and nothing can be perfect.
I am the proprietor of the OpenEuphoria Group (https://openeuphoria.org/). We make maintain the Euphoria programming language: a general-purpose interpreted programming language with a simple syntax and flexible type system.
The original developer released Euphoria 3.0 as open source in 2006 and the new group was formed to continue development. And they were quite successful for a while. Euphoria 4.0 was released in 2008 with many new features. But after a few more patches, the original group effectively disappeared around 2015 and version 4.1 was never released officially.
I took over ownership of the domain and website in 2018, then migrated the code hosting to GitHub (https://github.com/OpenEuphoria) and started digging into continuing development. The hosting and domain registration cost me about $100/year, some of which is paid by donations from the community. But money isn't really the concern; what I need is time.
I've been using Euphoria for over 25 years but I only started working on its development in the past few years. If I could do this full time I would, but right now I can only put in a few hours a week and I'm not even sure how viable Euphoria could be as a means of income.
We need at least one or two more actively involved volunteers who can help get version 4.2 out the door. And after that we need to rebuild the website, finish migrating to GitHub, and focus on new features and development tools. If you're reading this and would like to contribute, please comment here, sign up on our forum, or email me directly: [email protected]
It started as that but it's since turned into completely usable C compiler that supports 32-bit and 64-bit x86 and ARM platforms. There are still developers adding to the project every day.
> this breaks the identity `arr[idx] == (arr + idx)`. as a c++ (and sometimes c) dev, I tend to consider "index" and "offset" to be functionally equivalent. hard pass.
And I think that's the problem. Programmers have collectively conflated the concept of "offset from the address" and "position in the list" as the same concept, and they're not the same thing. Both concepts have their uses but they're separate distinct concepts. C and C++ don't index* a list, they simply offset it, and too many other languages that don't care about in-memory addresses or offsets have carried the concept from offset over to index erroneously.
I can see how in a higher-level language it might make sense to use 1-based indices. this is, after all, how humans typically count. I just don't agree with it as a general statement over all programming languages. in low-level contexts where you are working directly with memory, it is quite natural for indices (or idx * element_size) to be equivalent to offsets.
Would a Pi Zero W work for this, or do you need a full-size Pi 4? I would think that with the HDMI dongle doing the hardware MJPEG encoding, a Pi Zero might suffice. It'd be really neat to A) bring the cost down another $30 and B) be able to package everything into a tiny 3D printed case.
>Would a Pi Zero W work for this, or do you need a full-size Pi 4?
I tested Key Mime Pi (the keyboard-only version) on the Pi Zero W and it worked great. I haven't tested TinyPilot on the Pi Zero W, but I think it will work. The video encoding is happening in the HDMI dongle, so it doesn't hammer resources much. I don't have a USB to microUSB adaptor on hand, but I'll order one now and see if it works.
>be able to package everything into a tiny 3D printed case.
Yeah, that would be neat! One of the biggest issues I have with TinyPilot's setup right now is that it looks kind of like a bunch of random hobbyist parts stuck together. A 3D printed case would be good and wouldn't have the heat issues that Pi 4 has.[0]
You might also be able to use the "standard" radio kit metal boxes - tap some standoffs, carefully drill some holes for wires etc. Dunno which works out better for the world - ordering a pre-fab metal box that you have to do some work on (or perhaps use https://www.frontpanelexpress.com/ to get a customised enclosure), or printing something from plastic. Might depend on production volume, metal used etc.
The video capture part should work, but I don't believe they support USB OTG, so they wouldn't be able to impersonate the keyboard.
The official documentation[0] says all Pi devices have USB OTG, but I'm not sure if there's something else about the Pi 4 and Pi Zero W that allows USB gadget mode because I've never found anyone talking about using it before recent generations of Pi. This StackExchange answer says the A and the A+ had it, but that the 2 doesn't.[1]
I'd expect the Pi Zero W to be fast enough to pass through the MJPEG stream and impersonate the keyboard, which should cut the cost by $20+ plus however much you save on not needing a fancy case.
Yeah that's true. I stopped thinking about the Pi Zero W early in the project because I assumed it would choke on video encoding. When I discovered that the HDMI dongle was doing the heavy lifting, I forgot to revisit that assumption. I'm going to order an USB to micro-USB adaptor to test it out because it would slim things down significantly.
Woops, forgot the major issue-- the Pi Zero only has one USB port (the other is just for power), so you couldn't get video frames in at the same time as you pretended to be a keyboard.
I think you might run into a lack of connectivity on the Pi Zero W. Since the only data USB port has to run in device mode, I would assume you can't connect the HDMI capture device.
The immediate issue would be the Pi Zero W only has one usable (micro)USB port, the other port is Power In only. If you run it for OTG, you can't use it for the dongle.
There would be ways around this though, perhaps using a cheap microcontroller for the USB HID stuff.
Yeah I forgot that only one of the USB ports actually does data. I guess you could use a Teensy that interfaces through the GPIO pins and pretends to be the keyboard and mouse.
That's what I'm thinking, or worst case, one that communicated via USB to TTL adaptors. Or an ESP-based board that connects over WiFi. Or BT-enabled board.
Combined with a HDMI switch, you could then control multiple devices with just one Pi+Cap device.
I've been looking to do something similar for a while, albeit possibly with Windows as that's where I've (very rusty Delphi) programming experience.
Somebody once told me, "never fall in love with your ideas." Because you are not your ideas. You are not the things you create. Your work and your creations exist outside of you and they can receive criticism without it being targeted at you personally.
> Everything from an unintentionally snarky comment in a PR I've made to someone highlight a mistake I’ve made that I probably couldn't have known about.
When someone points at your work and says "this is bad" they are not pointing at you and saying "you are bad" are they? And if they are attacking you directly, and not your work, that seems more like a problem with them than it does you.
> I see this as one of my major flaws and try hard to mask how I feel. But I just hope to learn to stop feeling bad for honest mistakes.
Feeling your feelings is not a flaw. Wanting to stop feeling bad is worthwhile, but many people accomplish it by becoming calloused and cynical. They stop caring about what they do and both they and their work suffer accordingly.
Focus instead on separating your feelings about yourself from your feelings about your work. Be critical of the things you're doing. Acknowledge where things aren't great but you're trying to do better and nothing can be perfect.