Comments (6)
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.
@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:
- Misplaced cursor
- Vanishing text
- Selection is awry (from the same screenshot)
- Not sure if its the same bug, but there's a lot of latency when typing... 😅
from olive.jl.
Thanks a lot for your efforts on this project. ^^
from olive.jl.
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.
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.
closing this :)
from olive.jl.
Related Issues (20)
- `build_base_repl_cell` HOT 1
- improve base `txt` cells, and `Cell{<:Any}` HOT 1
- Unsaved
- open the same project twice
- 0.0.92 Release HOT 17
- #L search
- tab style change
- new O
- Proposal -- No more setup HOT 1
- `Styler` moving to base
- `shellrepl` -> `env.pwd`
- no `Base` modules
- 0.0.93 Release HOT 3
- Easy extensions HOT 1
- Settings adjustment
- `module`/`include` revamp
- Lines
- 0.0.94 Release HOT 1
- create_new olive extension
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from olive.jl.