Today this is most apparent in autocorrect, but the idea -- in a more advanced form -- goes back to the early days of computing. Interlisp shipped with a feature called Do What I Mean, which corrected spelling but also basic programming logic errors.
A more advanced and fascinating idea is for the computer to detect intention and act on it. Humans do it all the time; we see the intention in other people and act on it.
Software too can and should do basic intention-detection and I'm surprised I don't see it much in the wild.
At Replit we've found intent-detection to be a powerful tool in keeping the environment simple while scaling with user expertise.
For example, package management can be a pain and can take you out of the flow of coding. So while we do have native UI for package management, we also built a system to detect your intent to install an OSS package based on your code
Intent detection is hard but worth it. It makes computers much more delightful to use. More examples here: amasad.me/right
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I've dealt with poor sleep for many years. As someone who's excited & energetic, I had a hard time going to sleep. And as a startup founder, I've had a hard time staying asleep.
Today I sleep ~8 hours, and almost every aspect of life is better. Here is an ordered list of tips:
1. Schedule
Your mum was right: Go to bed and wake up at a consistent time. Weekends, weekdays, holidays, etc -- always stick to a routine!
If you sleep late after a night out, wake up early. If you're tired, resist going to bed early.
Eventually, sleep will become automatic.
2. Sleep hygiene
It's all about programming yourself for better sleep. Keep your room a sleep sanctuary. Resist working in there. Or even reading. The more things you associate your bedroom with, the weaker its automatic connection to sleep is.
Fascinating that infinitely complex systems can be constructed from ONE key component. Examples:
- NAND gate and computers
- Neuron and brains/minds
What other systems are like that?
When I was designing a debugger I figured that you could construct it from one operation: STEP_IN which returns stack and other info. Then everything else could be on top of that. E.g STEP_OVER is simply a series of STEP_IN until the stack is length is equal to the starting point
It’s fun to design systems by boiling it down to one thing. But it might not be practical (eg slow). Nonetheless it gives you a better grasp on the problem.
We grew up in a very competitive field. Online environments have more dead startups than alive. We zoomed past startups 10x our size and capitalization, and we thrive despite incumbents many orders of magnitude larger than us.
We do it while rarely thinking about competition.
First, an axiom: humans are memetic creatures.
Remember how every startup was a chatbot startup a few years ago? Or a more recent example: Metaverse. Facebook renamed to Meta and two days later Microsoft announced their Metaverse strategy. I'm sure IBM is working on it too.
A new kind of program analysis is emerging: AI code analysis. Here is the current state of analysis and where I think it’s headed:
Static analysis, arguably a Good Old Fashion type of AI, it relies on explicit “reasoning” about the program using tree search and other algorithmic methods.
It’s painfully limited because it’s an ultimately undecidable problem. Eg, try proving that a program never halts.
To make code more analyzable there has been a trend to push the programmer to do more of the work. People are adding typing to all the dynamic languages: JavaScript, Python, Ruby.
As an early employee, I saw how painful startups were, in both success & failure.
Replit was forcing itself unto the world; it was no longer sustainable as a side project.
Before incorporating, here are all the ways we tried *not* to:
I tried to make it a project at Facebook where I worked.
I was careful in separating the two but when it became a big time and money sink, I told my boss. We tried to find a home for it but there was just no appeal.
I even emailed Zuck. No response. Time to move on.
I tried to merge it with two other startups at the time doing similar things.
Ultimately we had different visions for the future, and I didn’t think they were being ambitious enough.
AWS operated for 7 years without any competition. That's a hallmark of a non-obvious invention. If you watch early AWS pitch, even Amazon didn't know what it really was.
See this video (timestamped). The pitch was similar to @paulg's ViaWeb: "create your own store."