adrianmonk
Joined 16 years ago
Joined 16 years ago
If it were built-in, you could even minimize the wasted ink and paper. Just print a single line every few days or something and keep the same sheet of paper in place for weeks or months and add to it instead of using a new sheet of paper. The ink has plenty of time to dry, so you can probably print over the same areas repeatedly.
Alternatively, you could implement it in the driver, but there's more opportunity for things to go wrong if you restart the computer, lose the connection, or have multiple computers sharing a printer.
Basically, there are often different ways of putting a particular idea into words. Sometimes the longer way might be clearer, and the shorter way might be more confusing. If you care about being understood, sometimes you will use the wordy option. This is what humans usually do.
However, LLMs have context windows. All else being equal, verbosity eats up more context. If the LLM is trained (with reinforcement learning) to reason most effectively, it can do that by using terse phrasing. Especially on certain tasks that really need a large context window. Why? Because being terse is like getting a larger context window for free.
But in another sense, it's not really free. You're trading off clarity for context window. Sometimes you have to choose between verbose+clear and terse+unclear. If you're biased toward terse, that will also shift you toward unclear.
I do agree that LLMs are verbose sometimes, though. I think they are also trained to please the user, and they see sharing extra knowledge and insights as a way to do that. I don't think this idea is in conflict with what the paper says. If an LLM's training rewards both spitting out neat bonus info and doing reasoning that requires making the most of its limited context window, then that LLM may generate a large quantity of text which is written in a slightly terse and confusing style.
That claim was ever made. The comment was about actual pieces of software that exist in the real world, not about all possible software that could exist in theory.
In real-world usage, for a user to be exposed, a necessary ingredient was to use a particular piece of software that actually exists and that happens to be vibe coded.
That does not preclude the possibility that a non-vibe-coded piece of software could have been vulnerable. It's just that such a piece of software did not happen to exist.
So why even mention vibe coding? Presumably it's relevant for some other reason. Perhaps the implication is this vibe-coded software is not an established piece of software with lots of users. (Since vibe-coded software is easier to create, maintainers may be less invested in it or committed to maintaining it. Vibe coding changes the economics and opens up the possibility of creating throwaway software.) Or perhaps the implication is that users should be more careful about using vibe-coded software.
That's part of the premise of the movie "The History of Future Folk".
Why did the label on my Fig Newtons get redesigned? It's not because it lacked in usability. It's because the company knows that customers respond to visual updates. If something looks the same year after year, lots of people will see it as old and tired. A redesign makes it feel modern and fresh. At least to enough people that it matters.
I had the same experience on a recent trip to The UPS Store. The color scheme was all different from the previous time I shipped a package. I commented to the clerk that they'd redecorated. He said they do it pretty often.
Software has a visual aspect to it, and the same forces are in effect. Part of a UI designer's job is to be on that treadmill. That's probably not what the job should be, but the people who pay their salary want it to be.
I guessed wrong. I still like my idea, but their solution is simpler and probably more efficient and more durable too.
My local transit agency just stopped allowing rear door boarding, and that was one of the main reasons: https://waypointblog.com/capmetro-is-ending-rear-door-boardi...
Each phrase or sentence is an operation that changes the state. The state is the mind of the reader. For it to work, you have to understand the starting state, and then construct a valid sequence that modifies the state step by step until it reaches the desired state. Every step has preconditions and postconditions. You can't leave important values uninitialized. You can't refer to symbols that haven't been defined. You can't just sit down and blurt out whatever comes to mind; you have to "play computer" (or "play reader") in your head to model the effects of what you're writing. You need to be aware of which "platform" you're targeting (developers, users) and understand quirks of each variation of that platform. Some of your operations might fail, and you may need a way to detect and/or recover.
Obviously don't take it too far and reduce writing to this. But I think it's helpful for getting into a mindset where you are thinking about communication in an end-to-end, closed-loop way. Your mind needs to be engaged and stay engaged with the question of what the experience is like for the reader. It's very easy to default to an open-loop mode where you just have a random string of thoughts about the subject, let your brain translate them into words, write that down, and call it done. There's a big difference between expressing thoughts and communicating ideas effectively.
Thinking about it this way could also maybe help with motivation. It's satisfying to write computer code and really nail it and have it do its job effectively, right? You can get a similar feeling of satisfaction from good writing.
This doesn't totally automate it, but it takes away the need to manage the proceeds from a reverse mortgage between the time you receive a payout and the time you pay your taxes.