Posted by they4kman on Thursday, January 19, 2012 at 10:02 p.m. (1 year, 3 months ago)
Fork this design doc: fork the gist
Let's build a better website to help us all learn. Essentially, lower the barrier as low as we can for entry, and for change. Editing your idea should be encouraged. Everyone should be able to fork an idea and run with it. There will be no comments, just forks. There will be a front page with all the ideas people post, in a stack, which is never destroyed or cleaned up. When an idea is posted, it goes to the top of the list. When an idea is forked, it goes to the top of the list. That is how we'll come up with better solutions faster. And we'll learn how to learn faster. There will be no usernames, but also no restrictions as to what you may say in your message. You can always mention your name, if you want.
- No requirements to entry other than being able to enter characters into the computer.
- No requirement for a unique identifier (user name, email address, etc).
- No restrictions on what may be discussed.
- Everything posted to the site must be saved.
- No idea is thrown away, ever.
- It must be easy to share an idea anywhere, starting with the internet first.
Why? That is how neurons work: they take good in, spit good out. We're one step ahead of that: we take good in and spit better out. We're a positive feedback loop. What we need is a huge queue of people's ideas, that we can go through without having to judge a person's character or personality, just simply evaluate the ideas. If they make sense, we'll eventually figure out ways to improve an idea. With enough people, we'll keep building on our ideas so fast we solve everything we've ever had trouble with in a few weeks.
This system would allow us to be completely honest without being forced to pet your ego. If people like you petting your ego, they'll try to understand your idea fully, at which point they'll think of something better, because everyone has a different set of tools to try to work out their current situation. Popular ideas are useful ideas. Ideas that are not popular are not useful. Remember, though, there's no barrier to change your idea. And once you change it, it goes to the top of the queue, so everyone visiting the site will reevaluate your new changes.
This will promote complete transparency and collective understanding. Eventually, we'll figure out all our problems. It'll just take time and and questions.
Development plan of action
There is only one database table, with very simple schema. The only object we need to store in the database is comprised of a blob of text and a number. The blob of text with the highest number will appear at the top. Extremely simple. We will have our first prototype out in minutes. And it's going to be fucking ugly. But it needs to be as simple as possible. The idea queue doesn't even need to be HTML. We'll make it pure text first. Same with the view certain idea page. The post and fork idea pages will have to be HTML, because they'll need to submit data through forms.
We must start from the most absolute simple idea and build from there. In fact, I think we should work in this direct order:
- Create database model
- Write backend for view certain idea
- Design and write frontend for view certain idea
- Write backend for idea queue
- Design and write frontend for idea queue
- Write backend for post new idea
- Design and write frontend for post new idea
- Write backend for fork certain idea
- Design and write frontend for fork certain idea
The goal of this is to build every idea off what you actually need right now, not what you think you might need. No guesswork; all built on logic. We don't live in the future. We don't even live in the past. We live in the present, and any time spent worrying about the past and future doesn't help you solve any problems now. If you're not solving a problem (and until we understand the entire universe, there will always be problems to solve), you are being inefficient. Because the entire goal of this site is to learn more efficiently, it follows that it should be as efficient as possible itself.
Those 9 steps are the simplest way to express discrete logical functions. By pushing new versions after every logical change, we can easily recognize patterns in how we develop logic. Through that, we will learn how to learn better. It's inevitable not to, when we base all of our ideas in reproducible logic.