299 karma · joined December 27, 2018
So that is what we should be addressing.
Things like -> no personalized algorithmic feed for minors. The ability to disable algorithmic feed and revert to historical feed from contacts. Giving the user control over suggestions and feed via the requirement that it should be possible to switch to a "third party algorithm provider" or self-host, while still being able to have full access to the contents and social features of the platform.
The kind of quirks you see came from crowd-sourced human-in-the-loop fine-tuning, with not very good work conditions or level of qualification (so resulting in "what non-writers thought good writing looked like", before people had developed the flair to detect these patterns) as well as feedback loops during agentic reinforcement learning and RLVR.
I find AI agents really great for codebase exploration and understanding how it works. In some ways even moreso than from manual implementation since it's easier to get a global picture.
You can also ask it questions like "are there recurring patterns of how X is done in the codebase?" to which it might answer sometime like "there are actually three competing patterns" and tell you what they are and the exact files, and then you can choose to refactor them if you want.
The LLM will look through the codebase, think, and tell you what it would do and if there's any design decisions you would have to make, as well as other things you probably need to be aware of. Then you go through the LLM's output and address all those decisions point by point, asking the LLM more questions if something isn't clear or requires more investigation or you're unsure what to do. And end with "address what I wrote, and share any other thoughts or questions or things to clarify you might still have, don't implement yet"
And you do this back and forth until all the design decisions have been addressed and you feel confident of what the code and architecture will look like, and only then say "ok, implement"
That way you get a lot of the benefits of writing it by hand (being forced to think through what the best design would be and how it would integrate with existing code, and increasing understanding of how existing code works) but it's still much faster. The tool I personally use is Cursor in auto mode.
P.S. actually before even that you first ask the LLM "what is the current state of X in the codebase" and then you ask follow-up questions until you have a good understanding of all the details that are relevant to you. And then you can start having the design/implementation conversation in the same chat context, since having the above information in context is useful.
P.P.S. and you can also ask a bridge question like "can XYZ be cleanly added with how things are currently structured?" or "what would it take to add XYZ to the project?"
Big companies have processes for deciding what gets done and which features are prioritized, and if the people in that loop aren't power users of those features, and they don't have the kind of metrics or analysis framework that would indicate that those features are important, they won't be prioritized.
I don't think there's some kind of conspiracy to make search worse... I think it's just that nobody cares enough, and with time the features break as everything else around them is changed
I thought that the reason the US had a literacy crisis is because Phonics was specifically removed from the schools and replaced by ineffective methods
(Also... I thought there were more comments here on this article? What happened? was it submitted with a different link?)
Could it be a form of self-selection bias? That the kind of person that is likely to have such thoughts about a (family of) programming language is also more likely to start and preservere with Lisp?
I have noticed, in general, LLMs tend to "fix" problems by shoving them under the rug (like adding a cast) or writing a super-local "fix" instead of taking the time to understand the deeper problem or structure.
In Rust, when you get stuck in a complicated borrow-checking problem, Rust people will tell you it's a Good Thing(tm) because it forces you to think about the higher level architecture of your code. An LLM, on the other hand, might bash its head a couple of times trying to "fix" the problem, and then just throw in a Refcell (or other workaround), see that it compiles, and call it a day.
Refcells "move borrow checking to runtime", meaning that the code will compile, and will crash at runtime if the object is tried to be accessed from two different places at the same time. In most "normal" programming languages it's not an issue -- but it's a crash in Rust.
Now, maybe the models have gotten better, and maybe you can get around this problem by using a good system prompt/"tools" and a good testing methodology. What I am saying however is that you shouldn't automatically take "rewritten to Rust by AI" at face value of it being good Rust code, or a testimonial of "Rust and AI being a good match". (Go is better I think)
>whether these systems do or could in the future exhibit something similar?
I think the whole discussion is based on the idea that consciousness isn't something you can "exhibit". (Tell me, how can you "exhibit consciousness"?)
I guess you actually review and actively participate in making the plan, you just don't review the code afterwards?
Could you share some more details on the specifics of your workflow? (What models/harnesses? do you use the same or different context windows? How exactly do you run the review, and how do you pass along and act upon the information from the review?) Also, how big are the changes you usually implement with one plan/develop/review cycle?
Kinda, yeah. If I automatically apply lint suggestions, I would title my commit "apply lint suggestions".
While the thing that gives you quick dopamine might win in the very short term, you can still step back and recognize when it's not satisfying in the long term and you're not even enjoying it that much.
And people aren't stupid. Junk food exists, yet lots of people choose to eat more wholesome food as the majority of their diet.
The problem with instagram or youtube is that you can't separate the good from the bad.
It's like if every time you went to store Y to buy milk, you would be exposed to highly manipulative marketing trying to get you to buy junk food. You would probably want to go to a different store instead.
What I'm suggesting is the possibilities of different stores, with different philosophies and standards, so that people can choose where they go. Corner stores (where almost everything is junk food) exist, yet people still choose to go to real supermarkets.
Absolutely not. It's much easier to make a one-time switch than to be continuously resisting temptation. Changing the things in your environment is an important tool to break bad habits. The book "Atomic Habits" talks about this at length.
Although to some extent they're correlated, sometimes the things that are most enjoyable you wouldn't describe as "addicting" and vice-versa.
Eating a nice full meal is more enjoyable than eating doritos on your couch, but you wouldn't describe it as addicting.
If anything, I find my experience of youtube today to be less enjoyable than in the past
It could be perhaps as simple as allowing third-party websites and apps for watching Youtube on your phone. And it's okay if this would be a premium paid feature, so there's no counter argument that "it costs them money to host videos".
This is not an entirely new idea either. Before Spotify became popular, people would integrate Last.FM into their media players to get music recommendation based on their listening history, and you could listen to music via YouTube directly on the last.fm website.