evolve-maz
Joined 10 months ago
Joined 10 months ago
If you're putting anything out there for consumption (software, articles, presentations, documentation) ensure your own voice is the dominant one in the output.
I'm glad they're doing this, because it lets me see an extreme of LLM development.
Those sorts of changes are really rough to manage. Maybe still manageable by LLMs but we'll find out.
While that's not technically the case here (given Mononoke's license) it is still quite negative in my view. We will have fewer people wanting to share ideas openly since LLMs are so good at not only finding them, but also not attributing them. This also leads to a loss in diverse collaboration, which is probably one of the biggest drivers for good software.
Right now there's probably a lot of these "novel" ideas floating around which models can present as their own, but that's raiding our coffers with no inbound future stream.
That exploration helped me see whether general "best practices" are applicable in this frame, and let me justify if not.
That was also prevailing opinion pre LLM:
> Only the hands on engineers can shape it since the design evolves in step with writing the code.
So I'm curious to know where people changed their minds.
> Architecture astronauts are out of touch and shouldn't give any advice because they haven't written code in ages. Only the hands on engineers can shape it since the design evolves in step with writing the code.
To
> I focus on the architecture patterns and high level goals and let the LLM take care of the rest.
Similar commentary was shared about anyone not writing the code daily, not just the architects.
No gotchas, I just think it's something which calls for introspection.
If I still need to do db-like things in python I think duckdb is better.
Sorry to hear you're having a rough time with work. I do think AI availability has made otherwise smart people put out lazy work. But I also think that there are more people who still "code by hand" than you think.
You might find some joy by going to certain events where people talk about different items coding-wise. I enjoyed the talks for this conference recently https://www.youtube.com/@softwareshouldwork (particularly Richard Hipp's, Delaney Gillilan's and Carson Gross' talks), maybe you can find similar spaces. The benefit has been Youtube's algorithm recommending me better software talks now too.
This work was fraught with bugs, a large portion of which came down to disagreement of what was coded v/s what was written. Even if you had airlines sign off sentence by sentence exactly what you wrote down in English, that's too open to interpretation.
People don't appreciate how the same sentence can be read five different ways by different people (or the same person on different days). We had to structure our documents to be closer to pseudo-code than to English to get any meaningful consensus on the definition.
.PHONY: help
help: ## Show this help message
@grep -E '^[a-zA-Z_-]+:.?## .$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' @echo "" @echo "Examples:" @echo " make deploy" @echo " make deploy-branch BRANCH=feature-x" @echo " make deploy AUTO_START=true"
.PHONY: deploy
deploy: ## Deploy from current branch (default main) (use AUTO_START=true to restart service after)
@$(MAKE) _deploy BRANCH=$(git branch --show-current)
On the flip side, it helps to have endpoints which have a query param linking to some sort of resource update time stamp. That way you can query to only get those items changed since last poll.
They need that data so they can push into wider job automation, displacing the SaaS companies who used Anthropic in the first place.
- Ask cursor to summarize your existing repo to write you a nice readme
- Cursor opens repo
- Cursor looks at current code
- Because it's going above and beyond, it also wants to give you some metadata about the code (other branches for things in development, maybe previous tags as milestones, etc)
- To do that, it runs some git commands
Now the malicious behavior. I ask Cursor to evaluate some remote repo. It clones it down and then runs the git command from the working directory. However, if you just call "git ..." from the command line there is ambiguity about that. What if there's already a git file in the directory which windows thinks you want to execute?
This could happen with an untrusted repo. Or could happen from you switching branches to a compromised branch (which you wouldn't expect to immediately run some code).
Normal way to handle this is using fully qualified path names for things. E.g. instead of git ... you give the full path to system installed git. Annoying for humans to type but trivial for Cursor.
The good managers I saw also had this ability. The managers I didn't enjoy working with / saw struggle were ones who either never had that ability, or had lost it a long time ago.
Note I'm speaking about line management. There's a world of difference between managing a dozen or so individual contributors vs managing senior managers / directors. However, managing LLMs is analogous to line management.
Sentinels just help you wrap that up nicely and for more general use cases, but theres value in stepping back and thinking about where the unset vs no op case matters.