Startups can still win against big players by building better products faster (with AI), collecting more / better data to feed AI, and then feeding that into better AI automation for customers. Big players won't automatically win, but more data is a moat that gives them room to mess up for a long time and still pull out ahead. Even then, big companies already compete against one another and swallowing a small AI startup can help them and therefore starting one can also make sense.
What I love about this is how the design looks different from what you'd get if you designed a site in a more common way. Every tool has different affordances. And I love that you can see that in the site. It's immediately obvious that something about the creation of the website is unique
I've had the same frustration. I want to go from intent to a UI as quickly as possible.
My intuition about solving this is to create components where instead of a select and a radio button being separate components, they're the same component with basically the same API.
And instead of deciding on a spacing between components, you just get spacing more or less automatically so everything looks good by default.
If these proofs really are like codebases, wouldn't we eventually expect these proofs to be written as software?
You'd install lemmas using a package manager and then import them into your proof.
You can then install updates to proofs. Maybe someone has found the proof to be wrong, in which case you either find a different proof or invalidate the lemma so all the dependents can be invalidated automatically.
That is not too far from what proof assistants actually do.
Agda is a dependently typed language (strongly resembling Haskell in Syntax, but with a lot more Unicode) where you rarely, if ever, "run" your programs but rather just check if they "compile", i.e. type check. If it does type check, you proved what you set out to prove.
And the individual lemmas could have author and chronology metadata attached, then you could plot the DAG as a roadmap/tech tree of sorts with an axis corresponding to time.
You'd be able to at a glance see the year a result entered public domain, who authored it, etc
I have wondered this as well. In theory, I want to say yes. But in practice, at least in this subfield, there are so many unimportant details that might make this really difficult.
It's not a perfect analogy, but some parts of the proof feel more like neural networks than procedural algorithms. So instead of verifying the composition of two procedural algorithms g(f(x)), you have something more like g(nn(f(x))), where nn is some sort of ML model / neural network. Interestingly, we are starting to see progress in importing ML models as libraries (eg Huggingface), so maybe that can carry over someday? I don't know.
Another challenge is simply a practical one. You would need someone heavily interested in both black hole mathematics and formal proof verification to be able to do this. Both of these require years of training.
I've thought about making something like this in the past.
I've used the "Nutrients" iOS app for tracking nutrition, but not in the way it's meant to be used. Maybe my usage patterns could help you writing your app.
I tend to use the app to get a pulse on the nutrient density of the foods I consume (or feed my daughter). I would make simple meals, and plug them in, and then try to get all the nutrient bars filled up. It was harder than I expected. It was a puzzle to figure out because foods have different levels of each nutrient. I want to avoid adding onto nutrients I'm already consuming enough of.
I tried to use the Nutrients app to search for foods dense in some nutrient I was lacking, but I often found Google searches to be better for this. The way the app ranked foods wasn't useful to me. Was it measuring nutrients by weight? What if I wanted to rank by price, or by region? I don't care that raw Moose Liver has lots of Riboflavin.
I preferred using the app to determine my grocery list because I don't like recipes. I want to know how to cook things individually (pasta, rice, eggs, asparagus, etc) with salt + (butter or oil), and then figure out how to assemble meals on my own. With recipes, I would often have leftovers I didn't know what to do with. I could look up more recipes, but I couldn't see how this would make me a better cook since I didn't know what I was doing or why. I was inspired by Samin Nosrat's Salt Fat Acid Heat approach to cooking. This way I could get nutrition and flavor simultaneously.
This all got really complicated, and I eventually figured I wouldn't reach the end of it. For example, rice grown in different regions has different levels of arsenic. I'm not concerned about arsenic specifically, but the finding got me more curiously interested in toxins, and soil differences around the world. I got into nutrition thinking I could be convinced of one specific diet over another, but I soon found myself looking into differences between soil in different regions.
After I used the app enough, I got a sense of some of my blind spots, and used that to adjust my diet intuitively.
Some changes that more-or-less stuck:
- More sun for Vitamin D
- More Avocados
- Omega-3 from fish oil
- Nutritional Yeast for B Vitamins
- More greens (especially for magnesium)
- Spinach in smoothies
- Less sugars, carbs, and bread
- Parmesan cheese for calcium
- More beans
I have decent intuition around green means chlorophyll molecule means there's a magnesium atom in there, and some others. The minerals are easy enough for me to get enough of. I can usually get enough Vitamin C. I don't have good intuition around Vitamin K, E, Niacin, Riboflavin, Folate. Beans have lots of Folate. This makes sense, but lots of other foods I regularly eat have it too.
I'm inspired to get back into this and start tracking again.
--
BACKGROUND:
After my daughter was born, I was suddenly extremely interested in nutrition. I worried what might happen if my daughter started missing important nutrients. However, it was hard to get trustworthy information on nutrition. Important debates weren't settled. I wasn't confident that I could trust things like the food pyramid. Like you, I felt more confident about using micro and macro nutrients as a way to decide what to eat, but also to compose meals that were nutritionally complete. This is something I didn't see much focus on. People would tout some specific food as "healthy" without putting it in context.
From there, I still wanted to cover my bases for unknown unknowns. If I added more traditional foods, I'd be able to cover for it. As an outsider, I don't know how likely it is that we've discovered all the nutrients we need. For example, I recently saw a research paper asking if Lithium is a micronutrient. Maybe there were foods that had nutrients that weren't discovered, or maybe different people need different levels of the same nutrients. Maybe microplastics are a bigger problem than we imagine. It's hard to account for everything. I wanted a baseline I could start from. I looked into traditional slavic foods. I found that potatoes were more recents, for example, so I wouldn't use them to cover for unknown unknowns. However, cabbage and buckwheat are both nutritionally rich and slavic staples. Maybe I could use this finding to trust dishes that feature these ingredients.
> Some changes that more-or-less stuck: - More sun for Vitamin D - More Avocados - Omega-3 from fish oil - Nutritional Yeast for B Vitamins - More greens (especially for magnesium) - Spinach in smoothies - Less sugars, carbs, and bread - Parmesan cheese for calcium - More beans
+1 for blind spots. Choline (eggs), Iodine (Iodized salt, seaweed), Zinc (pumpkin seeds, etc) are a few others in my experience. Intuition builds up steadily after tracking a while. Good luck!
I would suggest looking into meat based dishes, including organ meats, eggs, bone/meat broths and such. You'll find it much easier to 'fill' all the nutrition bars if you use that.
I would also suggest avoiding leafy vegetables in general, since there are a lot of defensive chemicals in them that are not very good for you, especially concentrated blended versions of them. You tend to want to eat plants in states that they want to be eaten in, such as fruit flesh. Plants don't want their leaves and seeds to be eaten, thus the large amount of protective chemicals in them to discourage that from happening. The ideal situation for plants is you eat a fruit when it's ripe, swallow the seed whole, and pass the seed in your stool somewhere else in a stool fertilizer bed on the ground somewhere. This means low sugar fruits that we call vegetables like cucumbers and tomatoes are also ok.
Also fish and liquid oils tend to go rancid fairly fast. Solid oils tend to stay fresh longer. If you want more fish in your diet, eating actual fresh wild fish vs a fish oil significantly healthier.
This is great information. I'm not against meat. However, I was toying with a vegan/vegetarian diet when I got into tracking nutrients, and my learnings reflect that (ex: nutritional yeast). My daughter still struggles with chewing meat. Organ meats might be a good idea for her.
I'm aware that plants have defensive chemicals though I haven't researched it in too much depth. I can probably be convinced to drop spinach and nuts.
I don't eat enough organ meats. Chicken liver seems cheap for the nutrition you get out of it. I never bothered getting into cooking it, but it seems like a good idea.
Good point on the fish oil. My daughter is totally fine consuming the gross-tasting fish oil (even without the lemon flavoring) out of a spoon. My guess is she's really craving the nutrients in there. I keep the oil in the fridge, but there might be no real way to compete with fresh fish.
Change jobs, but not because of others moving slowly.
It's amazing that people trust you, but you're worried you'll let your team down. One of the biggest reasons why people leave jobs is because of a lack of growth opportunities, and the longer you stay in your position, the more likely it's going to beat the ambition out of others on the team.
And if most of the code is written by you, this doesn't make you bad for leaving. The easiest code to maintain is code that's written by one person. Sure, some people might get mad and try to shame you, for leaving them to maintain all your code. However, this might be a result of people not believing in themselves. They need encouragement, and some nurturing.
So I don't think the problem is whether you're a 10x developer or not. If you're good, it's like a white tablecloth at a restaurant. The cloth isn't bad just because it got stained. The problem is you're lonely, increasingly resentful, increasingly complacent, and it's not going to be good for those around you.
If you leave the company and it goes well for you, it's also motivating for others since they know the company won't try to sabotage them on their way up. If the company does sabotage you, then this is also good since it'll help you determine the difference between a team that has your back vs a team that wants to use you. Either way, it's important to appreciate them regardless.
So you got to your position because a you cared about others. It's important to not let your accomplishments blind you and overshadow just how much of your success comes from your care for others.
A lot of people are wondering how this will stop misinformation. I agree that we can't crowdsource truth. But we can crowdsource information that can help reduce misinformation. When you have two sides disagreeing the first step is to build some common ground.
Twitter is trying to solve a tough problem. On one hand you've got people accusing Twitter of hosting and platforming hateful, harmful content. On the other hand you have people claiming that Twitter is calling the shots about what's true and suppressing information it doesn't like.
Maybe this is the first step towards something like a digital court. People on both sides present evidence, experts, witnesses. The two sides get a hand in picking the jury.
Or maybe the solvable problem is that information gets misconstrued and propagated. A video clip might get edited a certain way, for example. Solving this problem may not help us all agree on what happened in the video clip. However, we should at least be able to agree on what the two interpretations are. To make this happen, both sides would have to steel man the other side. Otherwise, the opposing side would claim they're being misportrayed. Having things that opposing sides agree upon would greatly help reduce unnecessary conflict.
I like the idea of building websites and writing blog posts by starting with text and slowly taking different parts of it and adding dynamic functionality
Maybe I want to embed the current date somewhere
Maybe I want to embed a chart
It's not exactly a new idea, but doing things with LISP might provide some useful invariants
I've felt companies would want what the post lays out:
- A safe software stack
- Make code understandable (industry best practices)
- Focus on employee ramp up time
I was confused when some companies stressed different things, and I didn't quite realize until reading this post that it might be coming from a place of fear of losing engineers.
What I've seen:
1) Committees for coding standards
2) Teamwork over code ownership
3) Peer code reviews to enforce quality
Sounds like these things would help increase code quality and reduce the bus factor. But I think there are some dangers.
1) Committees can mean that no individual is responsible for bad decisions
2,3) Teamwork is great if people have separate roles. Too many cooks can become a real problem otherwise.
I suspect people afraid of responsibility are more likely to embrace committees and teamwork. Dickheads incapable of working with others are more likely to take ownership (or else they'd be completely unemployable).
I also suspect many startups cargo cult practices that work well for giants, but are net negatives that encourage your employees to leave if you're small. Lacking ownership but getting paid super well is a better tradeoff than lacking ownership AND lacking amazing pay.