Giter Club home page Giter Club logo

Comments (6)

emmaccode avatar emmaccode commented on August 26, 2024 1

Thank you for kind words @PallHaraldsson , and your support for all this time.

A ( I )

This certainly would not be a bad idea -- I plan to expand this documentation (and rewrite some sections) into an eventual documentation that hosts Olive. The thing is that languages are added to Olive via an extension. OlivePy is cited as an example because this package is nearly done. And yelp, it ties the objects from all languages in together -- just as the tomlvalues cells do for data into Julia. There are just a few things left to do on that project, mainly some fixes for the ability to open .py files (rather than just using python in a .jl file) and updates to the syntax highlighter.

I did not use any Pluto tech-stack. Pluto files are not regular Julia files, though they do contain normal Julia code; they contain special characters which denote cells and a list of cells with their evaluation order at the top. Fortunately, IPyCells checks if a .jl file contains Pluto cells, Olive cells, or just regular Julia text -- so reading Pluto is in fact supported.

Writing to pluto... not so much.

A (II)

Hmm.. If I understand this correctly, you mean you are able to select from the end of the text but not the start? I will try to replicate the issue on my machine tomorrow. The error C seems to be coming from the fullstack parser -- I will look into making some updates to fix both of those. Thank you for bringing these to my attention :)

B

The line that this code comes from just does Pkg.add("Pkg"). This error might be some sort of fluke or something. I am not exactly sure how I could replicate this, or if solving such an issue falls into my hands. I will make sure to look into it a bit more before writing it off though.

Thanks for the issue and letting me know all of this, as well as the feedback ! Have a wonderful rest of your day 👍🏻

from olive.jl.

VarLad avatar VarLad commented on August 26, 2024 1

@emmaccode I can replicate the same error!

On the other hand, one recommendation from my side:

Skip the initial setup

Like Pluto, it'd be better if all stuff related to Olive went (by default) into .julia/olive_notebooks folder, and within the notebook, we had the option to save the notebook somewhere else if we actually wanted to.

Have a home page:

I did not see a home page, but it would be nice if at the start we get a homepage which displays a list of:

  • Recently opened project/folders/workspaces/notebooks (anything)
  • Preferences/Settings.
    It would be much preferred if these are in the home page, and not a part of the notebook.

Workspace oriented file inspector

  • Since Olive is trying to go for more of an "notebook oriented editor" approach, it would be awesome if Olive supported VSCode's Workspace format, instead of the current Inspector Space. Reference: https://code.visualstudio.com/docs/editor/workspaces
  • I believe this works better since Olive is going for the same thing overall, and majority of Julia users use VSCode (or workspaces) in some form.

Some other issues I encountered are:

  1. Misplaced cursor
    image
  2. Vanishing text
    image
    image
  3. Selection is awry (from the same screenshot)
  4. Not sure if its the same bug, but there's a lot of latency when typing... 😅

from olive.jl.

VarLad avatar VarLad commented on August 26, 2024 1

Thanks a lot for your efforts on this project. ^^

from olive.jl.

PallHaraldsson avatar PallHaraldsson commented on August 26, 2024 1

I edited my comment to what I meant to say:

I've seen people argue against (Python) notebooks, for some reasons, mostly that I recall, not being reactive

I suppose most people in Python or R would just use what they are used to from their ecosystems, even if non-ideal, though there may exist some reactive notebooks there I do not know of. And Julia people would use Pluto (for reactivity), so it's unclear why they would use your project. Except for e.g. Python and R with. I'll look it over more, there are probably a not more features I'm overlooking.

I did not use any Pluto tech-stack. Pluto files are not regular Julia files, though they do contain normal Julia code; they contain special characters which denote cells

It's intriguing you wrote from scratch. It may be a pro and a con. I know of Pluto (and Neptune), though I don't use notebooks much. I've just tried a bit, and will see if I like yours better. Most users would want to know pros and cons of yours vs. other options, as users, but for you I would have thought helpful to reuse much code, less duplication, and then Pluto could even have reused your code.

from olive.jl.

emmaccode avatar emmaccode commented on August 26, 2024 1

I edited my comment to what I meant to say:

I've seen people argue against (Python) notebooks, for some reasons, mostly that I recall, not being reactive

I suppose most people in Python or R would just use what they are used to from their ecosystems, even if non-ideal, though there may exist some reactive notebooks there I do not know of. And Julia people would use Pluto (for reactivity), so it's unclear why they would use your project. Except for e.g. Python and R with. I'll look it over more, there are probably a not more features I'm overlooking.

I did not use any Pluto tech-stack. Pluto files are not regular Julia files, though they do contain normal Julia code; they contain special characters which denote cells

It's intriguing you wrote from scratch. It may be a pro and a con. I know of Pluto (and Neptune), though I don't use notebooks much. I've just tried a bit, and will see if I like yours better. Most users would want to know pros and cons of yours vs. other options, as users, but for you I would have thought helpful to reuse much code, less duplication, and then Pluto could even have reused your code.

I think you are missing a substantial part of the project -- this project is not just a notebook editor. Olive is an anything editor, which allows a reproducible Project, Cell, and Directory structure to be applied to any context with multiple dispatch. The central idea is that more features are added to the project using multiple dispatch. This is part of why the project is so challenging. Point being, Olive grants the ability to edit any file and export to any format, execute any type of code, syntax, or data language, or even be an image editor.

In the case of Pluto, we are comparing a green apple to a red apple -- yeah they are similar, but they do not taste the same. Pluto is a reactive notebook built for creating reproducible Julia code. Olive is an open-ended development notebook development environment centered around multiple dispatch. The base Olive just comes with extensions to program Julia. I even plan to eventually build things like visual-web-editors for Toolips into it -- whatever data Julia is able to transmit, Olive can work with. While Pluto is designed for one thing that it does really well, Olive is designed to make all of those capabilities optional and added with extensions. The extensions also plan to make Olive applicable to contexts where I think Pluto is less applicable, such as deployment or hosting documentation or notebooks.

I understand why this is hard to understand -- right now, I have just gotten my first registered pre-release of Olive into Pkg (the first patch of the pre-release, 0.0.91, and there are no extensions yet. With time, I am one person, more extensions will be released and I think this will demonstrate that concept a lot better. I also think #135 (@VarLad) will help with this, making it more obvious how to load extensions and making loading extensions more accessible.

One last thing I will also say on the front of highlighter issues -- if you are having issues with the highlighter, make sure you are on the latest version of ToolipsMarkdown, you can check your version like this:

julia> using Olive.ToolipsSession; using Olive.ToolipsMarkdown

julia> pkgversion(ToolipsSession)
v"0.3.5"

julia> pkgversion(ToolipsMarkdown)
v"0.1.4"

These are the latest (and greatest) versions of the packages. The problem you encountered with the exponent is actually an issue with the ToolipsSession package. I opened an issue for it there.
ChifiSource/OliveSession.jl#1

That being said, I would also recommend upgrading highlighters, I think the version step is actually pretty substantial there -- and it makes sense for reporting issues to be on the latest, to upgrade just do

pkg> add ToolipsMarkdown

in that environment. Any issues concerning this, (you will get a stacktrace from ToolipsMarkdown) can go here.

As for the other issue, I will take the time to pinpoint all of these things.

For your final paragraph -- yeah, it is terrifying. I tried using various different packages for essentially everything in Olive. You must understand that the design of Pluto is incredibly different to that of Olive -- Pluto is built primarily in Javascript, Olive is built atop a fullstack web-development framework for julia in nothing but Julia code, aside from some JavaScript strings of course that run on the client. Point being, yeah it is not optimal at all that I had to build most of the things to support this -- it means I have an entire web-development framework to maintain now, as well as a bunch of extensions. It is not the easiest thing, but I promise you I am dedicated. Olive is still working into its form, and a 0.1.0 release is still a lot of issues away -- Olive will continue to improve, as will all of these dependencies I have created -- and it seems to have gone reasonably well so far, at least!

Again, thanks for your issue -- your comments and concerns, it is helpful to think about these things and also have them written somewhere for everyone to hear. I know I have been seeing your name all for years, and I appreciate you making your impact and contributions in the Julia space, and to my projects. Have a lovely day :)

from olive.jl.

emmaccode avatar emmaccode commented on August 26, 2024

closing this :)

from olive.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.