Open MuxZeroNet opened 6 years ago
What is the problem we are trying to solve using this?
What is the problem we are trying to solve
DAG helps keep the manifest files small. i.e. Break a large manifest file into smaller vertices and "glue" them together with arrows.
DAG helps file archiving with minimal modification. Just make a new file and "point" to the older revision.
Lazy storage. i.e. To view a user's most recent posts, download and save manifest file (1)
on the disk. Only when necessary, download file (0)
to see the person's older posts.
I see, looks interesting!
Not recommended .... complicates the structure and makes it less accessible to new developers
All dependencies must be fully cached in the repository. Do not become dependent on third party repositories and third party auto-loading dependency management. Do not reference github in the code. Do not use json dependent dependency management with github, do not use obfuscating libraries or private company algorithms
Always put clear step-by-step instructions to compile code for all operating systems
Always make program files easy to manage for programmers developing on their own computers. We don't exist for github, it exists because we want to communicate.
Not recommended .... complicates the structure and makes it less accessible to new developers
Doesn't git compilcate it all? Doesn't chromium complicate it all, can't we use just curl? Doesn't Windows/Linux complicate it all, oh, I see, it does, let's switch to DOS!!
I'm sorry if that was rude, but this is a very interesting feature, and if we make it optional, it can be used without problems (for new developers and structure).
Always put clear step-by-step instructions to compile code for all operating systems
I think @HelloZeroNet has already answered, but anyway: ZeroNet is using Python which is an interpreter. So you usually don't need to compile code, but if you need, you can use https://github.com/HelloZeroNet/ZeroNet-win/tree/dist https://github.com/HelloZeroNet/ZeroNet-kivy https://github.com/HelloZeroNet/ZeroNet-mac/tree/dist https://github.com/HelloZeroNet/ZeroBundle
The project looks simple and powerful, but still its a maze. I have always been the kind to write my own solutions instead of using other code, even when it is fully developed. It is faster to write my own code then learn someone elses code. But in the case of ZeroNet, I don't have the years to write this on my own. So I need to disect it. I need it fully disected. ZeroNet doesn't do what I want, but it does every piece of what I need to do. I just need to rearrange it. But how long will it take to dissect? How can you help me with this? Where should I start? I need every piece from the open to the close of the base program.
Right now I cannot understand what exact features you need, so I can't tell you what parts of code you need to change/remove, but if you tell me a bit about your project, I could help you. imachug [at] gmail [dot] com
I need the full code base, fully documented. Each line with an explanation of what it does, what it tests, where its going. Using other people's code is usually an enormous waste of time, especially when they don't actually want you to change the code. If you want further contribution to this project, at this stage in the maturity of your code, you need to fully document the code. If this seems "naked" and undesirable to make public for every chinaman, create a zite with a fully referenced code-base for zeronet and give me the link please. @imachug
create a zite with a fully referenced code-base for zeronet and give me the link please
:laughing: Okay, I'll try to create it.
Hey, ZeroNet dev!
Doing version control? Consider the following Directed Acyclic Graph.
Suppose these are your ZeroMe posts. Each file contains several posts. Each file is a vertex. You started with file
(0)
. You wrote a lot and file(0)
exploded. You decided to make a new file(1)
and continue writing. Weeks later, file(1)
became full and you made another new file(2)
.Then you decided to edit one of your old posts and expand it a little bit. It is contained in file
(0)
. Unfortunately, your edit cannot be saved in file(0)
because the file hit its size limit. Using a DAG, what you need to do is toa) make a new file
(3)
and put your edited post there; b) delete the old post from file(0)
; c) draw an arrow from file(3)
to file(0)
.Each vertex has multiple arrows going in (in degree), but only 1 arrow going out (out degree).
The earliest file is a sink, it has no "out" arrow. Newer files point to older files, letting you to go back in time.
You may ask, "what about file name conflict?" Short answer: This is how file systems work. To keep multiple versions of the same file, all you need to do is to name them properly.
Good luck hacking DAGs and keeping manifest files small!
References:
Git for Computer Scientists
Git - Basic Branching and Merging