6 ms·
I mean, I’m a front end web developer, and I get fucked up about how little I know about backend web development. Embedded programming? Dealing with signals?!
by ketzo 5y ago
I mean, I’m a front end web developer, and I get fucked up about how little I know about backend web development.
Embedded programming? Dealing with signals?! God forbid, man.
There’s just so much of everything! Terrifying! But fun!
- joezydeco 5y agoThat's funny. I've been doing full-stack embedded development (bootloader assembly all the way to touchscreen UIs) for 30 years but the idea of trying to learn modern web front end scares the hell out of me. React? Angular? Node? What happened to Notepad and Apache?
- xondono 5y agoI would recommend to revisit that with fresh eyes. I’ve found that’s easier to build a simple UI by loading chromium + webapp than having to deal with the intricacies of multitarget crosscompiling.
- joezydeco 5y agoThat ecosystem used to suck heavily as of 3-5 years ago, but I know it's improving. But you still need Node and a bunch of shit running underneath to glue the UI to the drivers. As much as I'm starting to hate Qt, I can still have it up and taking to hardware in a few minutes. And the onscreen touchscreen keyboard is worth the money.
- VRay 5y agoNode is a nightmare I can get a decently functional UI app working in native code with just the SDK for whatever platform it’s on, but try to use React and suddenly I’ve got a web of 200 dependencies, each more shady than the last. And that’s just for “hello, world” Plus the JavaScript engine is single-threaded and insanely slow.. it’s gross. I’m guessing that one of these days app developers are collectively going to snap out of it and throw Node in the trash
- joezydeco 5y agoNo, it's only going to get worse. As single-board devices get faster and cheaper by the week there's a flood of developers that have cut their teeth on Node/JS/React and they get something working on a Raspberry Pi and think "Yeah, embedded development is a piece of cake. I can do this." And maybe they're right, because doing it all by scratch and cobbling together robot parts to make a system work is just really getting to be old. I used to get annoyed at the RPi newbies but now I welcome it as job security because someone still needs to write the bootloader and drivers. And if you read StackOverflow/Reddit you'll see there's nobody teaching that anymore.
- VRay 5y agoMan, I kinda feel like embedded software is doomed. There are only a dozen or so companies where embedded software is a first-tier product for them that gets a lot of resources put into it. It feels like everything is moving toward using super low-quality Chinese drivers/firmware and really badly-designed microkernels (or treating linux like a microkernel) to squeeze all the functionality out of the OS and into bad managed software stacks. Then again, any company that takes firmware engineering seriously can make devices 5+ years before Moore's Law makes it feasible for others, so maybe there'll always be room for us.
- joezydeco 5y agoIt feels like everything is moving toward using super low-quality Chinese drivers/firmware You must be a Broadcom user. My sympathies. =) But I totally hear you. I'm not as pessimistic because I tend to follow parts that the automotive sector uses (yeah, not great right now) and they typically don't put up with random Chinesium parts and code. And yeah, it seems more and more like everyone is just throwing Linux into the mix and hoping that some OSS developer and/or Otavio Salvador swoops in and fixes things up. RISC-V may be a way out of this. Maybe. Or it will make things ten times worse.
- xondono 5y agoIt does depend on the platform you are using. One of the devices I’m working on had to use rust (we were looking for some niche libraries, and we found that the C ones weren’t working, while the Rust ones did). Building GUIs in rust is still a WIP, and I had to spend 2-3 days fixing libs and tweeking stuff to get to something that compiled but was very buggy. Instead of losing more time on that I set chromium + apache on the thing, and built the GUI as a web app. The rust executable has a simple API with actix that works flawlessly. In that case it was the perfect solution because I had to add an API for remote management anyway, but I found the approach quite nice to work with.
- BenjiWiebe 5y agoNotepad and Apache are still present and working. Probably not a good choice for a payment processing single page online store, but fine for a simple informational website.
- tentacleuno 5y ago> Probably not a good choice for a payment processing single page online store Why not, out of curiosity?
- collinmanderson 5y agoI got started making websites with Notepad and eventually Apache. Nothing wrong with Apache, but syntax highlighting would be nice to have in Notepad.
- throw0101a 5y ago> What happened to Notepad and Apache? * https://motherfuckingwebsite.com https://motherfuckingwebsite.com
- throw0101a 5y ago> Embedded programming? Dealing with signals?! God forbid, man. "How does a USB keyboard work? by Ben Eater: * https://www.youtube.com/watch?v=wdgULBpRoXk https://www.youtube.com/watch?v=wdgULBpRoXk
- prox 5y agoI wonder what a better approach is : do an intro on Assembly programming or get a SoC like Pi or Arduino to learn more about it.
- deleted 5y ago[deleted]
- boondaburrah 5y agoIntro to assembly using an arduino? :P My strategy has been to get into 80s game consoles where assembly programming was expected but the platform is small and standard enough that I can use emulators with memory views/debuggers & see everything going on. heck at the end I might even have a game!
- bhasi 5y agoNice, I'd like to do this too. Which console would you recommend starting with? I'd love to see an old timey programming manual and emulators for that platform. I've heard good things about Nintendo consoles, but I don't know where to start.
- phyrex 5y agoI’ve only read the first couple of pages but this looked really neat: https://famicom.party/book https://famicom.party/book
- boondaburrah 5y agoI think nintendo consoles, by virtue of being the most popular of the era, and therefore the most nostalgia, have probably the best debugging/tools of the lot. Personally I'm not a fan of the 6502 as a general-purpose CPU, but it's just fine for single-tasking games and global variables (there's almost no stack space). I'm starting out on z80 since I have an MSX and I hope to move to Sega Megadrive/Genesis later since I hear nothing but good things about the motorola 68k. The z80 seems pretty easy to understand (though it's not always consistent). It's worth checking the limitations of the video and sound hardware to see what you like as well. I'm partial to FM synthesis so Sega consoles make sense to me. 8-bit stuff is going to land you with really tough colour restrictions (often about 3 per 8x8 square, tops). You may want to start with the "16-bit" era, which generally used 4-bit colours (16 for the whole screen, easier to create assets for).
- rxhernandez 5y agoHaving done both frontend and embedded professionally for years, they're about equivalent in difficulty for a moderately complex system. For self-learning, frontend is orders of magnitude more accessible.
- Kliment 5y agoStrong disagree. I do embedded development of varying complexity. I often have to learn and figure out new things, but once I have something figured out, I have it figured out, and I can drill down to hardware register level to figure things out when something is misbehaving. Every single time I touch anything web-related I discover that the entire landscape has shifted, all the tools I used last time are now abandonware, and I have to figure out everything anew. It may be more accessible if you're starting from scratch, but it's a constant treadmill that you instantly fall off of as soon as you do anything else. And when something doesn't work? Good luck finding out what's happening in the countless layers on top of layers on top of layers.
- Ginden 5y ago> all the tools I used last time are now abandonware I think you are exeggarating. Over last few years, there were no hard deprecations, except for AngularJS. Many tools, popular in past, went "maintanence mode" and receive mostly bug fixes, but these tools are still viable.
- xondono 5y agoAnd yet it’s trivially easy to understand that new shinny thing, and most problems you have, there’s thousands of posts explaining how to solve them. Embedded has advanced a lot on this front, but for a lot if the industry, good luck finding anything but the original documentation.
- Kliment 5y agoMaybe it's just me. Vendor documentation in hardware tends to be kinda crap but there's usually plenty of other sources for information from other people who implemented something using the part, and that information doesn't get stale, ever, and documentation state improves over time. I've had problems finding reliable info on what's going on in webdev, most posts are "do this" solutions which don't really help you understand what is happening under the hood, and there are countless crappy tutorials. To be fair, I'm an extreme case, I touch web stuff once every few years, and only if there's really no way around it, and a lot happens in browser capabilities and javascript in a few years.