11 ms·
> Which is why when folks nowadays say "you cannot use XYZ for embedded", given what most embedded systems look like, and what many of us used to code on 8 and
by pkolaczk 9mo ago
> Which is why when folks nowadays say "you cannot use XYZ for embedded", given what most embedded systems look like, and what many of us used to code on 8 and 16 bit home computers, I can only assert they have no idea how powerful modern embedded systems have become.
Yet, I still need to wait about 1 second (!) after each key press when buying a parking ticket and the machine wants me to enter my license plate number. The latency is so huge I initially thought the machine was broken. I guess it’s not the chip problem but terrible programming due to developers thinking they don’t need to care about performance because their chip runs in megahertz.
- pjmlp 9mo agoWhat can you expect, when people assume as normal shipping the browser alongside the "native" application, and scripting languages using an interpreter are used in production code? Maybe that ticket machine was coded in MicroPython. /s
- eru 9mo agoInterpreters don't have to be slow. Forth is usually interpreted and pretty fast. And, of course, we have very fast Javascript engines these days. Python speed is being worked on, but it's pretty slow, true.
- anthk 9mo agoSome Forths are dog slow such as PFE compared to GForth. Meanwhile others running in really slow platforms such as subleq (much faster in muxleq) run really fast for that the VM actually as (almost something slightly better than a 8086).
- ErroneousBosh 9mo agoIt's not really "interpreted", in the way that for example BASIC or Java is. It's a list of jumps to functions.
- upofadown 9mo agoClassic Forth Dimensions article: Why Forth Isn't Slow * https://www.forth.org/fd/FD-V06N5.pdf https://www.forth.org/fd/FD-V06N5.pdf Basically it is because Forth programs are fairly flat and don't go deep into subfunctions. So the interpreter overhead is not that great and the processor spends most of the time running the machine code that underlays the primitives that live at the bottom of the program.
- anthk 9mo ago- TCL/Tk slowish under P3 times, decent enough under P4 with SSE2. AMSN wasn't that bad back in the day, and with 8.6 the occasional UI locks went away. - Visual Basic. Yes, it was interpreter, and you used to like it. GUI ran fast, good for small games and management software. The rest... oh, they tried to create a C64 emulator under VB, it ran many times slower than one created in C. Nowadays, with a P4 with SSE2 and up you could emulate it at decent speeds with TCL/Tk 8.6 since they got some optimized interpreter. IDK about VB6, probably the same case. But at least we know TCL/Tk got improved on multiprocessing and the like. VB6 was stuck in time. - TCL can call C code with ease, since the early 90's. Not the case with Electron. And JS really sucks with no standard library. With Electron, the UI can be very taxing, even if they bundle FFMPEG and the like. Tk UI can run on a toaster. - Yeah, there is C#... but it isn't as snappy and portable TCL/Tk with IronTCL, where it even targets Windows XP. You have JimTCL where it can run on scraps. No Tk, but the language it's close in syntax to TCL, it has networking and TLS support and OFC has damn easy C interops. And if you are a competent programmer, you can see it has some alpha SDL2 bindings. Extend those and you can write a dumb UI with Nuklear or similar in days. Speed? It won't win against other languages on number crunching, but for sure it could be put to drive some machines.
- pjmlp 9mo agoI worked on a startup that was mostly powered by Tcl, the amount of rewriting in C that we had to do between 1999 and 2003, when I left the company among all those dotcom busts, made me no longer pick any language without at least a JIT, for production code. The founders went on creating OutSystems, with the same concepts but built on top of .NET, they are one of the most successful Portuguese companies to this day, and one of the few VB like development environments for the Web.
- stavros 9mo agoOr maybe they think they should be sending each keystroke to a server and waiting for the response.
- amelius 9mo agoA server on Mars?
- stavros 9mo agoGotta have multiple AZs.
- me551ah 9mo agoThe server is probably running Python
- bigfishrunning 9mo agolol it's the flask debug server, "don't use this in production" banner and all
- JoelMcCracken 9mo agoNa each key press goes to a separate lambda invocation that gets submitted to a Kafka queue, and what happens after that is a mystery to all involved. We can make crazy latency ourselves just fine, no space transmission necessary
- labcomputer 9mo agoNo, not a mystery, in fact. Each keypress is appended to an 80 line prompt (key name along with timestamp of keypress and current text shown on the screen) and fed to a frontier LLM. Some of the office staff banged on the keypad for a few hours to generate training data to fine-tune the LLM on the task of denouncing key presses. Thanks to some optimizations with Triton and running multi-GPU instances, latency is down to just a few seconds per digit entered. You see, we needed to hit our genAI onboarding KPIs this quarter…
- csomar 9mo agoEveryone was locked out in a building am staying at (40 something stories) for several hours. When I asked the concierge if I can have a look at the system, it turns out they had none. The whole thing communicated with AWS for some subscription SaaS that provided them with a front-end to register/block cards. And every tap anywhere (elevators/doors/locks) in the building communicated back with this system hosted on AWS. Absolute nightmare.
- exikyut 9mo agoI wonder what happened to the building when us-east-1 went down.
- csomar 9mo agoThis is in SEA. They probably operate from ap-southeast-1 or 2. But yeah, if the internet goes down, the provider service goes down or AWS goes down they are cooked.
- Ekaros 9mo agoNow I am waiting for time when they move us-east-1 physical security to run in us-east-1... Thus locking themselves out when needing some physical intervention on servers to get backup.
- proctorg76 9mo agoFacebook already got bit by this when their BGP setup pooped its pants on Oct 4, 2021
- iamtedd 9mo agoThey could ask facebook for advice. https://skeptics.stackexchange.com/questions/52448/were-facebook-employees-unable-to-enter-their-own-building-to-fix-router-problem https://skeptics.stackexchange.com/questions/52448/were-face...
- blitzar 9mo agoI wonder what happened to the building when the internet went down. How do you get into the room to reboot the router?
- jwr 9mo agoThat's programmer incompetence. Unfortunately pervasive, especially with devices like parking meters, EV chargers, and similar, where the feedback loop (angry customer) is long (angry customers resulting in revenue decrease) or non-existent.
- ttoinou 9mo agoIt could be a management problem instead also, while developers are just following instructions sent by management
- graemep 9mo agoThey also prefer you to use the mobile app so they can gather more data so they do not want the devices to work well in the first place.
- s1mplicissimus 9mo agoIt's a nice theory, but many of those terrible parking ticket machines predate smartphones, so it might be the case for machines built now, but it's really hard to imagine that that was the original intention
- smokel 9mo agoOne of the more inspired design choices of the parking ticket devices in my area is the inclusion of a key repeat feature. If you keep your finger on the touchscreen for just long enough, it helpfully repeats the keystroke while you're entering a license plate. Given the inevitable hardware issues, this means that what should be a single tap frequently becomes a burst of identical characters. The programmers who worked on this probably would've liked to be game developers instead.
- contravariant 9mo agoGive it some slack, it's probably doing its best to inexplicably run windows.
- mrguyorama 9mo agoDisagree. Windows for embedded runs extremely well, though can take a minute to boot. My underpowered cash register that hadn't been updated in a decade could run POS on top of Windows 7 Embedded POSReady buttery smooth. Occasionally they would start performing poorly, and it was always a network issue.
- HWR_14 9mo agoIt could also be intentional UX design. Or a result of the keyboard hardware.
- fennecfoxy 9mo agoAnd the self service kiosks/checkouts at supermarkets. So infuriating! Like I'd have to try to make something that slow myself on purpose! Besides the fact that scanning a barcode seems beyond much of the general population, they do it so sloooow.
- jon-wood 9mo agoThe self service kiosks are intentionally throttled when scanning barcodes, at a guess to prevent people accidentally scanning the previous/wrong item - I once had some problems with one and a staff member flipped it into supervisor mode at which point they were able to scan at the same rate you'd see at a manned checkout.
- Nextgrid 9mo agoI think that's handled by the barcode scanner itself, at least on the ones I've used. The scanner will not recognize the same code immediately, but will immediately pick up a different code. What's slow is that after each scan it needs to check the weight which means it lets the scales settle for one second before accepting another scan.
- TeMPOraL 9mo agoNow take that, and add someone in our Polish supermarket chain (Biedronka) having the dumb "insight" to disable "scan multiple" option. Until ~month ago, whenever buying something in larger quantity, I could just press "Scan multiple", tap in the amount, scan the barcode once, and move all the items of the same type to the "already scanned" zone. Now, I have to do it one by one, each time waiting for the scales to settle. Infuriating when you're buying some spice bag or candy and have to scan 12 of them one by one.
- fennecfoxy 9mo agoIdt that's it, at least in my experience. I scan as fast as a manned checkout (I did my time in retail). And I can scan my groceries at the speed whilst the people next to me spend most of their time rotating an item to find the barcode.
- ZiiS 9mo agoWhilst I can not see a motivation I refuse to accept that parking machines are not advisarial design. Why do they have haf a dozen things that look a bit like tap n pay if they are not trying to make it eaiser for card skimmers.
- tialaramex 9mo agoThere's no pressure to make a good product because nobody making this decision has to use the machine. Everywhere I've worked purchase decisions are made by somebody with no direct contact to the actual usage, maybe if you're lucky they at least asked the people who need the product what the requirements are, otherwise it's just whatever they (who don't use this product) thought would be good. "Key presses are 15x slower than they should be" gets labelled P5 low priority bug report, whereas "New AI integration to predict lot income" is P0 must-fix because on Tuesday a sales guy told a potential customer that it'd be in the next version and apparently the lead looked interested so we're doing it.
- littlestymaar 9mo ago> There's no pressure to make a good product because nobody making this decision has to use the machine. Most software sucks, even when people have to chose using it. Everything is buggy and slow, people are just used to software being bad.
- ryandrake 9mo agoWhile this is a decision-making problem, it is also an engineering incompetence problem. No matter what pointy haired boss is yelling about "priorities" ultimately software developers are the ones writing the code, and are responsible for how awful it is. When it comes to priorities about what to write and what to focus on, the buck stops at management and leadership. When it comes to the actual quality of the software written, the buck stops at the developer. Blame can be shared.
- lazide 9mo agoYou mean the developer hired by (and fired by) management?
- freetinker 9mo agoTo paraphrase Upton Sinclair: “It is difficult to get a man to prioritize something when his salary depends upon his not prioritizing it.”
- lallysingh 9mo agoMy first guess was debouncing. They assume that the switches are worn out, deeply weathered, and cheaply made. Each press will cause the signal to oscillate and they're taking their sweet time to register it. When the device is new this is an absurd amount of time to wait. As the device degrades over 10, 20 years, that programming will keep it working the same. Awful the entire time, yes, but the same as the day it was new.
- philipallstar 9mo agoThat's a good point. When I use them I assume they're making API calls to a central server to validate (or something) them.
- Schlagbohrer 9mo agoMaking API calls to a server to do button debouncing does sound like something so stupid a tech company would do it
- bigfishrunning 9mo agoin the worst case, they don't know they're doing it, because they've called some 'debounce.js' microservice wrapper and haven't audited it
- scrumper 9mo agoI was late for a train at my local station and the parking machine was taking ages to respond to keypresses. I could see the training pulling up to the platform and I was still stuck entering the second digit of seven. In my shameful frustration I hit the machine fairly hard. While the button presses might take a while to register, the anti-tamper alarm has really low latency and is also quite loud.
- bluGill 9mo agoYou need to find the right person to complain to. Here we are sympathetic, but can't do anything. The right person is the other riders on the train - but the hard part is to frame this such that they join you on a march to the the agency that owns that machines to complain. I wish you the best of luck figuring out how to do that (I don't know how to do it - and if I did there are might higher priority things that need to be fixed).
- megablast 9mo agoAnything that makes the world worse for car drivers is a huge bonus for The planet.
- afpx 9mo agoSorry to rant, but this kind of stuff is the only thing that triggers me. It's gotten so bad that my family makes me put a dollar in a 'complain jar' everytime I talk about how poor quality software has become. Just one recent example: few months ago, I replaced a Bosch dishwasher with the latest version of the same model. Now, when I press the start button to initiate the cycle, it takes over 3 seconds for it to register! Like, what is going on in that 3 seconds? How was it possible that even 'kind of good' developers like me were able todo much more with much less back in the 90s? My boss would be like, "Here's this new hardware thingy and the manual. Now figure out how to do the impossible by Monday." Was it because we had bigger teams, more focus, fewer dependencies?
- mordechai9000 9mo agoI think we've been trained to accept bad software at this point, and a lot of people don't know anything different. I suspect that a lot of it is caused by shoving Android onto underpowered devices because it is cheap and seems like an easy button. But I don't know for sure, that's just an impression. I have no numbers. Could there be an opportunity here, for a specialized kiosk OS or something like that?
- itsamario 9mo agoOnly in America. America is deigned to make you mad that public common life isn't keeping up with whats in everybody's pocket. Gently forcing the individual to choose sapient or insentient.