Start with the question: what is the problem that you want to solve? Next, find codebases that solve that problem and study how they do it.
Good design is so deeply tied to the domain details. Wonham's Internal Model Principle applies to code.
Example: I wanted to solve the problem of unit testing for embedded targets. I found open source projects that do this and read the code critically to see how and why it is written. As I build my own approach, I revisit theirs to learn more as my understanding of the domain deepens.
This is a wonderfully concise description of why software testing, especially GUI testing is cursed by dimensionality.
Type checking, borrow checking, invariants, hell even MISRA rules are all constraints imposed to reduce unmanaged state in programs. I like them for software reliability because they can help keep the complexity demon locked in the crystal.
I've had a couple of experiences in the past month where I do respond to the enthusiastic sales engineer's check-in with a genuine product question, only to receive an immediate, lengthy, and subtly wrong LLM generated response. It feels gross.
Two comically bad lines in an AI-generated spam email I recently received:
"Saw on LinkedIn that you spoke Spanish. I've heard that the way "¡Qué chévere!" brings such energy and brightness to a conversation is uniquely charming. Have you had a chance to practice it recently?"
"Develop a compliance automation tool that adapitates to changing regulations, reducing overhead costs while ensuring secure and efficient investment programs."
No human would ever see my "limited working proficiency" of Spanish on LinkedIn and say something like the first line! And the second? "Adapitates" is not a real word, it's a hallucination. https://old.reddit.com/r/ChatGPT/comments/1d8gc6x/did_chatgp...
Sales isn't the problem, and most people are tolerant of some level of sales. I've gotten unpersonalized cold outreach from a data replication company that actually made me interested in the product, because it was short, to the point, and (as far as spam emails can be), authentic.
For the recruiters, a really good way to tell if you are being LLM'd is to put a little special watermarking sauce in your LinkedIn profile current company/position. For example, if you are a database engineer at some specific government agency, in the current position, you'd put something like "DB Engineer" at "Government". A quality recruiter will dig more, maybe look at your actual resume you have linked from your static site or whatever and come up with a good greeting in an email. A bot/LLM will simply insert that generic text into the direct message or email - "your position at government".
One can even go as far as entering something with even more of a watermark. An example: Adding more spaces in the role, like "DB Engineer" with two spaces instead of one. Using the Alt + (Numpad 255) unicode instead of a regular space is a bonus here.
Doesn't always work, but anecdotally I've noticed it will more often than not in differentiating automated garbage.
IIUC the input to LLMs is tokenized not on word boundaries but some kind of inter-syllable boundaries, because then whatever the model associated with "task" will also apply to "tasking", "tasked", "taskmaster", etc for example. So a model making up compounds that don't exist would be fully possible and even desirable, especially since real humans do it with English all the time.
Was the main reason you were interested in it because you actually could see yourself using the product? Rather than because it was short and to the point?
Please consider responding and telling them how you feel and providing feedback in whatever feedback forms that accompany the ticket.
Every company on Earth is exploring this tech and if we don't give them strong signals when they fuck it up we are just dooming our future selves to this garbage.
Where do you work that this is an effective strategy?
In my experience telling a vendor something is broken wastes my time and has no effect on the vendor. I don't know whether sales don't care or sales can't make dev changes. The only exception is when I can contact the devs and I know the devs have a history of fixing problems.
I used to work in customer service in a big tech company, what you are told to do is to reply with a sorry message and to fill a ticket but the ticket is not actually handled, it's just there to be recorded and maybe they will lookup it up by the end of the quarter.
Pay me so I'll provide feedback. Otherwise stop wasting my time with unwanted spam.
You are wasting my time, not yours, because you automated your spam workflow. The only strategical response is to flag your emails as spam ans to block your emails in the future.
Everything else is a losing game strategy because there are more spam emails per day than available time already.
You misunderstand. Think of it from a data standpoint.
What they have. Ticket. Feedback.
If they see tickets with certain feedback scores, some rep's score will go down and some manager's score will go down and if enough people do this (it literally takes a 1-2 digit amount of people in most cases), someone will raise an eyebrow and ask some questions and read the <99 responses that came in about this topic.
Since so few people actually respond to feedback, anyone who does has a massively outsized impact on the numbers that get reported inside the company, and the messages that get passed around inside the company.
I should clarify that when I say "Feedback" it does not mean yelling at a support rep, it means responding with a low score or a frowny face or whatever metric in their system that indicates quantitative disapproval.
I'm not talking about telling them that something is broken, but moreso telling them that you are disappointed. They only care that something is broken insofar as it affects their sales. A soured customer or potential customer, or famous person, or professional, or anyone else, is a long term drag on the reputation of a company. Much more than a silent customer that does nothing.
Just do something instead of nothing. Mark as spam. Post a negative thing. Email them. Post on social media. Just do something instead of nothing. Show your disapproval out loud to everyone instead of silently accepting it and moving on. Please.
Also, being a victim is by definition a waste of time because you didn't ask to be a victim. You can be a victim and quietly take it, letting it perpetuate and condemning both your future self and those you care about, or you can be a victim and fight back, refuse to take it, and defend your future self and those you care about.
This behavior is that of a bully and abuser. Bullies and abusers will only listen to a slap in the face, not to quiet submission.
I think you are saying we should blame the victim.
Bullies want you to fight back because now you're playing their game according to their rules which they know how to win and you implicitly authorise them to hurt you and often you have handed them a moral highground excuse they can spit back at you later. Bullies don't "listen" to a slap in the face, instead they escalate further: good luck!
To win against a bully often requires changing the game so that you can win by other rules.
However not everyone has the ability/practice to handle conflict - a friend talking back with a female bully recently had a panic attack which was a horrific side effect for them.
The core value proposition of GitHub, GitLab, etc is to provide a nice GUI atop git. That's huge. I think that user-studies to improve one of the many existing foss git GUIs would be much better use of brain than deprecating git checkout.
reply