MIT 6.170
modified 20/04/2024 22:56project idea
i wonder if it’s possible to create something like a cms but for concepts. like a no-code thing, where you’ve got blocks for concepts, and you can build your entire app based on concepts by dragging stuff like ‘Like concept’, ‘Friends concept’, ‘Post concept’. you could build a entire system in a week; both, backend and frontend. imagine that. however, i imagine that youd be kinda limited, since you’d essentially have to be tying concepts together, and that’s it? but isn’t this what software is all about? tying concepts together? for every concept, you’d have a bunch of other details too; for instance, for the ‘Like concept’, you’d be able to add additional functionality, such as:
- chosing between per-user, ip or cookie basis
- here, for example, if your app already uses the user concept, you’d get a recommandation saying that it might be a good idea to tie these two concepts together, and it would somehow happen seamlessly
- including downvotes, or just toggles
- changing the icons, name of the like
- enabling emoji reactions
- sorting: top posts, newest, best (if noticing that the project already uses the “post” concept, for example)
DONE Conceptual design 1
- every great piece of software has a few central concepts, or even one. these concepts are sometimes unique (the layer/mask idea of photoshop ), but generally build on older concepts, but provide a new touch (directories existed before the ios finder, but ios found a nice graphical representation for them) SCHEDULED: <2023-02-25 Sat>
DONE conceptual design 2
The Essence of Software
Outline
- TLDR: practical book explaining what concepts are, and how to use them to write good software, by showing both, good and bad examles.
- author has a lot of experiene in software design; he and his phd students built gitless, which is basically a redesign of git, where they took the concepts that git provides, and they created a simpler way to interact with them.
DONE read more about Daniel Jackson
- goal of the book is to 1. show how to improve concept design quality, thus improving software quality; 2. give a new perspective on software – that of software being a collection of concepts, tied together in some way;
- first part: motivation, part 2: everything about a concept; part 3: design principles of concepts; half of book is endnotes, so it doesn’t “clutter” the meat of the book, but also doesn’t leave stuff out.
Concepts
- concept: abstract piece of functionality, that can work independently; software is just a bunc of these pieces