I took a very similar class 9 years ago, and it was honestly one of the most helpful things I got out of my CS degree. The low level and limited tooling taught me to think before I start writing.
I've had other people look askanse at me, but on greenfield work I tend to start with pen and graph paper. I'm not even writing pseudocode, but diagramming a loose graph with potential functions or classes and arrows interconnecting them. Obviously this can be taken too far, full waterfall planning will be a different exercise in frustration.
I find spending a few hours planning out ahead of time before opening an editor saves me tons of time actually coding. I've never had a project even loosely resemble the paper diagram, but the exercise of thinking through the general structure ahead of time makes me way more productive when it comes time to start writing code. I've tried diagramming and scaffolding in my editor, but then I end up actually writing code instead of big picture diagramming. Writing it on paper where I know I'll have to retype everything anyway removes the distractions of what method to use or what to name a variable.
The few times I've vibe-coded something this was super helpful, since then I can give much more concrete and focused prompts.
I'm on mobile so can't easily pull up an example part number, but digital signage controllers can often be PoE powered. They're insanely overpriced new from the actual suppliers, but for hobby projects they can normally be sourced relatively easily on ebay. The trick is that many of the ebay sellers don't bother listing the specs, so you need to first search digital sign cintroller/computer on ebay then look up the spec sheet from the model number.
Every programming job I've ever had, I've been required at certain points to make open source contributions. Granted, that was always "we have an issue with this OSS library/software we use, your task this sprint is to get that fixed".
I won't say never, but it would take an exceedingly large comp plan for me to sign paperwork forbidding me from working on hobby projects. That's pretty orwellian. I'm not allowed to work on hobby projects on company time, but that seems fair, since I also can't spend work hours doing non-programming hobbies either.
I don't expect radiologists to have a good understanding of the software involved in the control loops for the equipment they operate. Why should a lawyer have to have a mental model or even understand how the pdf rendering engine works?
Have you ever had to actually react a document in acrobat pro? It's way more fiddly and easy to screw up than one would expect. Im not saying professionals shouldn't learn how to use their tools, but the UI in acrobat is so incredibly poor that I completely understand when reaction gers screwed up. Up thread there's an in complete but very extensive list of this exact thing happening over and over. Clearly there's a tools problem here. Actual life-critical systems aren't developed this way, if a plane keeps crashing due to the same failure we don't blame the pilot. Boeing tried to do that with the max, but they weren't able to successfully convince the industry that that was OK.
if a plane keeps crashing due to the same failure we don't blame the pilot
That's true, we blame the manufacturer and demand that they fix their product under threat of withdrawing the airworthiness certification. So where's the demand for Adobe to fix its software, under pain of losing their cash cow?
Yet, people here are arguing that it is perfectly OK that professionals keep working with tools that are apparently widely known to be inappropriate for their task. Why should we not blame the lawyers that authorized the use of inappropriate tooling for such a sensitive task as legal redaction of documents?
This is an inherently weak fastener design, it requires the driver to have 2 separate 'pins' to fit the 2 quadrants of the logo. Even with a proper forged tool this will be weaker than a torx or hex bit. Basically the only way this would be manufacturable is 2 forged pins shaped like quarter circles that are pressed into a socket.
This isn't that different to how other bit sockets are made, but instead of loading the bit in torsion, it will be subject to bending forces to loosen the bolt. This will make it far weaker than other tools. So good luck loosening these once they have a few years of corrosion on them. Plus, with the head design, they'll be far harder to drill out to get a bolt extractor on. Although 3d printing and scanning don't really help that much here.
I'm sure that's what Disney's lawyers specified in the contracts and what their execs expect. However, judging by how LLM controls have gone in the past, I'm fully expecting to see a slew of awful content featuring Disney's characters in the days after this launches. OpenAI also probably won't ever be able to actually stop people from generating harmful content with the characters, but the volume of awful stuff will probably eventually slow down as people get bored and move onto the next controversial thing.
So what grocery stores used to be ~90 years ago, when the norm was you would give the clerk a list and they would grab your items from the back? The only stores I'm still aware of that are setup like this are auto parts stores, where 90% of the inventory is in the back.
Toolstation still has a model like that, and I gotta say I love it. They also seem to hire people who actually know something about the products they sell which is an unfortunate rarity these days.
Professional supply houses are usually that way, too.
Graybar[1], for instance: There's a counter with bar stools, and behind that counter are people who know their inventory very well.
I just walk in and tell them what I want. They write it all down on paper faster than I can say the words and then disappear into the back to fetch it while I help myself to a free ice cream sandwich from the freezer over on the right that one of the local trade unions provides.
[1]: Graybar is a US-based electrical supply place. The companies I work for have accounts there, but as far as I know anyone can walk in and buy stuff. They also have some datacom stuff. If I'm in the middle of Nowhere, Ohio and need, say, a single-mode patch cord today, then there's probably a Graybar less than an hour away that has one in stock. Otherwise, they'll have one for me tomorrow before 7:00AM.
The instant I read the first sentence of your comment, I thought "McMaster-Carr but for food" might be the most appealing pitch for online grocery delivery I've ever heard.
...with the caveat that McMaster's facilities are staffed by people, not robots.
Amusingly, the Kroger near me is almost that way already.
Log into website, fill the cart, pick a time window, and push the button to order it. Someone starts working on it nearly instantly. The order is picked and waiting in a few minutes.
It's fast as fuck. Except...
---
If someone at Kroger ever reads this, then:
That time window aspect is the part of the system falls down hard for me.
Before I order, I have to pick a window in the future when I want to pick it up/get it delivered.
"I'm ready when you are; ASAP" isn't an option. Nor is "I'm already in the parking lot, you bunch of dweebs -- just bring my stuff out. Please?"
So if it's 6:05 when I order and the next window starts at 8:00, and they're fast as fuck (as they are) and have it done in less than 15 minutes, then: I'm waiting around for more than an hour and a half for nothing.
Because until the apparently-completely-arbitrary window is reached: It won't let me check in to pick up. It won't schedule a driver. My groceries are just sitting there (ideally stored at the right temperature but I can't know this) at the store while some wallclock mechanism that was designed by an asshole runs out.
This makes the whole thing feel clunky, stupid, and insulting.
It results a system that I use only when I absolutely do not want to be inside of a grocery store, like when I'm sick as hell in January and every body part hurts. Any other time, it's way faster for me to go in the store and shop it myself.
It should be convenient. It is instead almost always a burden instead of a benefit.
If picking up a pizza from Domino's worked like this, then they'd have gone completely out of business decades ago.
Our Kroger has the same service, we use it a lot. Grocery stores are annoying to me, and Kroger feels almost intentionally designed to piss me off, so that's why we use the pickup order thing. Beware:
1. Prices on the app are frequently higher than prices in the store.
2. Not all options available in the store are available in the app.
3. Don't assume they'll always have it ready on time. Or, at least, don't plan your day around it.
They force you to pick a window because stores have limited staffing, and only so many orders can be fulfilled at once. "Hire more people," you say? Hah!
We don't do delivery, so I can't comment on that aspect of the service.
And most of the process is very similar between Domino's and Kroger.
Just pick out a selection of stuff on a website, and order it. They both provide timely status updates of that order. They both have varying staff levels and workloads. They both certainly have days when they're running very far behind, and days when they feel like they don't have much to keep busy with.
They both have pickup and delivery options; sometimes, with different per-item prices, deals, or fees for each option.
But that's where the similarities end.
If a person orders a pizza at 6:05 and it happens to be ready by 6:30, Domino's doesn't make that person wait until 8:00 to pick it up. They want it gone; the sooner, the better. A person can pick it up (in the store, or they'll bring it out to the car) as soon as it is ready. Domino's does not want any queues at all; neither inbound, nor outbound. And this makes sense: They're in the business of selling pizzas, not storing pizzas.
Kroger isn't like that. If a person orders groceries at 6:05 and the order is ready by 6:30, then: They hold the groceries hostage until 8:00. It's as if an otherwise-complete order just isn't ripe to be picked up by a customer until it has had time to purge itself in a waiting area -- regardless of workload. The queue is mandatory, and is governed not by the physical readiness of the order but instead by the clock on the wall.
This is inconceivably stupid and unnecessary. It serves no benefit to me, nor to the corporation, nor to the employees that work for that corporation. One might think that they'd be aware that they're in the business of selling groceries, but this mandatory purgatory shows otherwise.
(I'll betcha McMaster-Carr doesn't sit on stuff while a clock runs. That's a Kroger specialization. :) )
One difference is that the Domino's employee's job is to make your pizza. None of their other duties are exactly rocket science. I ran a pizza place, I'd know. Meanwhile, preparing your grocery order is maybe the third priority on any given Kroger employee's list, behind running a register, stocking shelves, inventory, cleaning, tending to Kroger's spastic self-checkout machines, ...
I guess I prefer my groceries to be ready at a predictable time, rather than sitting around waiting between 1 and N hours. No experience I've ever had with food delivery in the age of DoorDash has made me think "yeah, I want more of this experience in my life."
My nephew works for Kroger, primarily picking stock for online orders.
He's a good dude and I enjoy hanging out with him, but I absolutely promise you that he doesn't do all of those jobs. He doesn't do anything quickly-enough to shift roles like that, and never has. To use a polite managerial description: He definitely works at his own pace.
I don't see that kind of task diversity at the store I usually shop at, either.
The register people do register stuff. The self-checkout people do self-checkout stuff. The order-pickers do order-picking. The people who bag groceries and fetch carts just bag groceries and fetch carts. The produce folks do produce. The florists florist. And so forth.
Sometimes I see a management-type range-walking from one problem to the next, but even that's exceptional.
It's the only real grocery store we have in the small city in which I live, so I get to spend a fair bit of time there whether I like it or not. I've spent years passively becoming familiar with the people who work there, and the jobs they do.
If they moved around much between different roles, I'd have noticed it by now.
(It's also a union shop, which may have something to do with it. When high-speed shifts from pushing a broom and heads out to the parking lot to fetch carts before he starts sorting produce, he's taking work away from the people who normally do those jobs and diminishing their roles. Unions may tend to dislike that kind of thing.
We didn't shift around much when I worked in union retail, either. It was a big deal for me to spend a day away from my department to help out with another one that was short-handed, and an opportunity was always presented for me to say "No, I'll just keep working where I normally work."
It was an even bigger deal if they needed help over on the grocery side of the store, which had a completely different union with a completely different contract. The union guys had to agree to allow it every time before that could happen.)
In the UK you have a whole chain of stores called Argos where you have a catalogue of items, you pick the items you want and the clerk brings them to you. Also Screwfix and Toolstation are both hardware stores that operate the same way.
"If you are eluding the cops at 100mph you are a danger to the public, they are not going to let you go home."
I'm not sure that the cops pursuing people at those speeds is doing anything besides making the situation more dangerous. Police in the US are grossly undertrained, I wouldn't trust them to actually be competent at what is very technical and difficult driving.
One would think that basic firearm safety would be the bare minimum, since we pay them to carry a gun. However, I have had to vacate a shooting range 3 times due to police showing up and being unsafe with firearms. I have had this happen in 3 different ranges, where off-duty cops have shown up and proceeded to ignore basic safety rules like not flagging people with guns. I'm not dumb enough to try to give a cop a safety lecture, so I've always packed up my stuff and left. However, if they aren't even given enough training to not figure out to point their guns downrange instead of at the firing line, they aren't trained well enough to trust with something technical and difficult like a pit maneuver.
One of these times was at a CA range, they were socal cops. Training standards for police in the US are woefully low, most cops aren't able to hit the broad side of a barn given ideal circumstances. They agitate about how dangerous their job is, but they don't train like it is. They fire a few rounds a year and have absolutely horrendous marksmanship standards. Don't get fooled, your average cop has roughly zero idea on firearms safety or even how to use the darn things.
I would argue that your 2 first examples are exceedingly apt. Sure, sculptors can turn clay into works of art and masons can build cathedrals. However, a potter can throw a basic jug to hold wine that doesn't have any care out into it besides being functional, and a mason can build a retaining wall.
These second examples aren't any less valuable, they solve real problems and improve people's lives. However, they aren't really art. Writing code is the same thing. I'm not creating art when I hack together yet another CRUD app that is basically plumbing together existing modules with a tiny bit of logic sprinkled on top, but it improves how our business functions and makes the employees who use the software more productive. That isn't art, but it's useful.
There is code out there that is art. But most programmers aren't writing it. We're writing the boring everyday stuff. Very few masons built cathedrals, but building a retaining wall is useful too.
I've had other people look askanse at me, but on greenfield work I tend to start with pen and graph paper. I'm not even writing pseudocode, but diagramming a loose graph with potential functions or classes and arrows interconnecting them. Obviously this can be taken too far, full waterfall planning will be a different exercise in frustration.
I find spending a few hours planning out ahead of time before opening an editor saves me tons of time actually coding. I've never had a project even loosely resemble the paper diagram, but the exercise of thinking through the general structure ahead of time makes me way more productive when it comes time to start writing code. I've tried diagramming and scaffolding in my editor, but then I end up actually writing code instead of big picture diagramming. Writing it on paper where I know I'll have to retype everything anyway removes the distractions of what method to use or what to name a variable.
The few times I've vibe-coded something this was super helpful, since then I can give much more concrete and focused prompts.
reply