AdventOfCode2020
jupyter
AdventOfCode2020 | jupyter | |
---|---|---|
1 | 31 | |
0 | 898 | |
- | 1.1% | |
0.0 | 8.5 | |
over 2 years ago | 18 days ago | |
Smalltalk | Emacs Lisp | |
The Unlicense | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
AdventOfCode2020
-
On Repl-Driven Programming
> At the end of the day, you quit your environment and shut down. How do you ensure your interactive work is not lost and the environment is still what you expect it to be when you start again the next day. How would you compile such a program?
Modern Smalltalks have solved this problem. Smalltalk has the concept of Packages just like Java, and as you go along building your environment, even though you are modifying the Smalltalk image, you can export these packages to plain-text files, and put them in Git, just like any other language. The environment itself supports Git integration (called Iceberg in Pharo).
> Also, if significant parts of the source code are written inside the REPL, wouldn't the lack of modern IDE features be a hassle? No syntax highlighting, no code completion, no code inspections etc. Or are there tools that offer those?
The command-line REPLs that other languages have are NOT what you get in Smalltalk. I believe the author means the entire interactive environment, and the "style" of development is REPL, not the actual UI. The Smalltalk "IDE" is just as powerful as any other IDE, including code completion, automatic generation of certain getters/setters, renaming methods/classes, finding uses, jumping to declarations and even refactoring within methods. The difference between a normal IDE for Java is that this "IDE" is pervasively available, including in breakloops and the debugger. Since the system is live, there is no separate notion of debugging, the debugger is always there, and you can use all the editor IDE features when stopped in a debugger. You no longer have to deal with a crippled debugging environment way different from your authoring environment. It truly is mind-blowing!
I highly recommend giving Pharo Smalltalk a spin (by following their MOOC or similar). This video is also worth a watch - https://www.youtube.com/watch/baxtyeFVn3w
I did most of this year's Advent Of Code in Smalltalk and saved it in Git just like any other language. Someone else can then import it into their image. https://github.com/nikhilm/AdventOfCode2020.
Note that the source code looks very verbose, but you never actually interact with the source like that. The source is just a serialization. Your actual environment only ever shows you UI elements and entire IDE windows describing your classes and individual methods.
The only thing I miss in Pharo is that it doesn't have Vim keybindings :)
jupyter
-
IPython and :results output is too verbose
For ipython, you'd better use some more specialized package like https://github.com/emacs-jupyter/jupyter, not the generic python support.
- Ask HN: Why don't other languages have Jupyter style notebooks?
-
Does anyone have a solution for displaying plotly plots in org mode?
I have seen this thread, but I don't want to have to put an extra source block to set the renderers in every org file where I use plotly. Does anyone have a good solution for the moment? Any help is appreciated.
-
Bounty on ein package startup times
Should no one take you up on the bounty, I suggest trying emacs-jupyter instead. I've had better luck with it in the past.
-
Replace Jupyter with Emacs Org Mode: Unleash the Power of Literate Programming
For anybody following along with the examples, a few points/tips that might help newcomers:
1. (By default) before you can use Python source blocks, you need to have the Org Babel Python functionality loaded which is most easily done by evaluating the elisp (require 'ob-babel), but there are other ways also [1].
2. The first example, which uses the print function, will not output anything because the Python blocks by default are evaluated inside a function body and the return value is returned to Org [2]. To return the printed output instead, you need the header argument ":results output". There is an example of this syntax later in TFA.
3. If you are serious about replacing (or complementing) other Jupyter tools with Org mode, you might want to eventually look at emacs-jupyter [3], which provides a more advanced handling of outputs and also supports other (i.e. non-Python) kernels.
Also, I don't think I've ever seen anything like the debugging example and when I tried to replicate it out of curiosity, the block simply failed with a bdb.BdbQuit exception. Am I missing something? What is supposed to happen?
[1] https://orgmode.org/manual/Languages.html
[2] https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-...
[3] https://github.com/nnicandro/emacs-jupyter
- Replace Jupyter Notebook With Emacs Org Mode
-
For Julia is there some thing like VSCode's python interactive window?
Emacs, Sublime Text 3 and Atom Pulsar can all do this with arbitrary Jupyter kernels with the emacs-jupyter/code-cells, helium and hydrogen packages, respectively.
-
Is org-mode an adequate replacement for Jupyter Notebook/rmarkdown for literate programming?
You can use emacs as a jupyter client if that would help in your case https://github.com/nnicandro/emacs-jupyter
-
Switched to VSCode... I miss Atom :(
I've been using code-cells together with emacs-jupyter, the combination of the two lets you work pretty much identically as you would in Atom with Hydrogen, Sublime with Helium, or VSCode with the Jupyter Python extension; you just delimit code cells with #%% and execute in a separate Jupyter REPL buffer. It does require some getting used to the key bindings though (or some tweaking to make it more similar to what you're used to).
-
Using emacs as a study environment
For writing source blocks: https://github.com/nnicandro/emacs-jupyter
What are some alternatives?
Nvim-R - Vim plugin to work with R
jupytext - Jupyter Notebooks as Markdown Documents, Julia, Python or R scripts
preplish - A Perl 5 REPL written in Bash
lsp-mode - Emacs client/library for the Language Server Protocol
cloture - Clojure in Common Lisp
vim-ipython-cell - Seamlessly run Python code in IPython from Vim
emacs-ipython-notebook - Jupyter notebook client in Emacs
lsp-julia
nbterm - Jupyter Notebooks in the terminal.
interactive - .NET Interactive combines the power of .NET with many other languages to create notebooks, REPLs, and embedded coding experiences. Share code, explore data, write, and learn across your apps in ways you couldn't before.
coc.nvim - Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
julia-vim - Vim support for Julia.