Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions! #2

Closed
pranitsh opened this issue Jan 28, 2024 · 4 comments · May be fixed by #3
Closed

Questions! #2

pranitsh opened this issue Jan 28, 2024 · 4 comments · May be fixed by #3

Comments

@pranitsh
Copy link
Collaborator

Hey,

I've been looking to contribute, and couldn't figure out a couple of things. I'd really appreciate you answering a couple of questions related to my future contribution so as to ensure that my future pull request can be merged.

  1. What is the idea behind topic and peer? And which relates to uuid (because I saw cases of both using uuid)? Admittedly, this question is probably on the dumber side since I have yet to spend a decent number of hours understanding editorjs. For my plan, I want to build an import and export toolkit for markdown, html, text, docx, github through the unified library. I'm currently testing using the injector for database via specifically creating random id, topic, and createdBy/lastEditedBy and inadvertendly random peers and topics. This approach is probably not correct, but using the Shell class seems even messier, since I want to add to the current file or specified files alongside sending a thousand CustomEvents seems like a decent way to crash. Any thoughts on how to approach this?
  2. What is the purpose of the form component in src/app/notebook/form? I had a couple of guesses, such as its relation to localhost:3000/form or the use of jsonforms (which I would appreciate you didn't depend on since it is old and the main dependency preventing updating Angular to 16), but I don't even know the purpose of these two parts either. I plan to remove this component in my pull request, if it is okay? Later, I plan to update to Angular 16.
  3. I've seen similar projects, including Standard Note, and believe the use of componentization is going to be soon necessary. You have a process worker, a shell process worker, a database with SQL (we really need SQL), and dozens of components related to coding. Would you be open to me fixing up the componentization? I would appreciate being added as a contributor in such a case.
  4. Lastly, I plan to use a devcontainer folder instead of .gitpod.yml, would that be okay?
  5. There is also many, many unnecessary // @ts-ignore. I plan to add a .eslintrc file and fix up the code quality. Would that be alright?

Thanks for answering my questions, and I hope my contributions are successful.

@sanchezcarlosjr
Copy link
Owner

sanchezcarlosjr commented Jan 29, 2024

Hello @pranitsh,

  1. Topic and Peer UUIDs refer to overlay network identifiers, allowing users to distribute their content in a decentralized manner. The topic represents the notebook identifier, while the peer signifies the tab identifier. When I started the project, the goal of the Shell was to schedule the WebWorkers. However, I later realized that all languages face common tasks, prompting me to provide them with a common event-driven architecture. You're correct; browsers are not equipped to support thousands of CustomEvents efficiently. An alternative for communication between the main thread and WebWorkers is using shared memory or a filesystem, rather than message passing.

2 .You're right; we can remove JSONForms to migrate to Angular 16. I've realized that coupling with certain libraries wasn't the best approach. However, I had to make a decision to get the job done, especially since those libraries are incompatible with CDNs.

  1. Yes. I realized that creating a mono repo with different npm packages would be a good idea.

  2. It's okay. I was using Gitpod, but now I have a good computer to handle the job.

  3. It's okay to me.

P.S. I'm migrating to React with BlockNote but not with TypeCell. Additionally, I'm writing a paper about the architecture, decisions, and the problems that arise with this kind of software. Would you like to read a draft?

@pranitsh
Copy link
Collaborator Author

I would love to read the paper behind this. Admittedly, most papars fly above my head, but I'm still impressed by the comprehensivenees of your work. It significantly surprises anything else I've seen in this space, especially in regard to CRDTs, IPFS, and the necessitated architectural consistency.

If possible, could you clarify the purpose of the Form component and localhost:3000?

Thank you for answering my deluge of questions. This should be about it.

@sanchezcarlosjr
Copy link
Owner

sanchezcarlosjr commented Jan 30, 2024

The purpose of the Form component and other components was to provide reactive web components to developers working with WebWorkers, as they don't have direct access to the DOM.

We have a Discord channel where we've published the draft. You can find it at https://discord.gg/us9nYvSyM6.

@pranitsh
Copy link
Collaborator Author

pranitsh commented Feb 1, 2024

Thank you!

@pranitsh pranitsh closed this as completed Feb 1, 2024
@pranitsh pranitsh linked a pull request Feb 18, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants