|17 days ago||3 months ago|
|Mozilla Public License 2.0||MIT License|
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.
Turns Jupyter notebooks into standalone web applications and dashboards
7 projects | news.ycombinator.com | 31 Aug 2021
You could consider an in browser notebook to get your cost down to near nothing - it depends a bit on what kind of tasks your students do whether they fit in the browser (one wouldn't train a large neural network in one for instance)
There's Starboard (which I'm building, it's built specifically for the browser and can integrate into a larger app deeply) and JupyterLite (the closest you will get to JupyterLab in the browser), either can be a good choice depending on your requirements. Both use Pyodide for the Python runtime.
Enabling COOP/COEP without touching the server
2 projects | dev.to | 5 Aug 2021
A few examples of web-applications that have this problem are in-browser video converters using ffmpeg.wasm, a web-based notebook that supports Python and multithreaded Emscripten applications.
I want to learn D3. I don’t want to learn Observable. Is that ok? (2019-2021)
6 projects | news.ycombinator.com | 13 Jun 2021
Outside of that use-case, I think notebooks are great for the first 20% of the effort that gets 80% of the work done. If it turns out one also needs to do the other 80% of the effort to get the last 20%, it is time to "graduate" away from a notebook. For instance if I am participating in a Kaggle machine learning competition I may train my first models in a Jupyter notebook for quick iteration on ideas, but when I settle onto a more rigid pipeline and infra, I will move to plain Python files that I can test and collaborate on.
This "graduation" from notebook to the "production/serious" environment should be straightforward, which means there shouldn't be too much magic in the notebook without me opting into it. Documentation in my eyes is not so different, I should be able to copy the examples easily into my JS project without knowing specifics of Observable and adapt it to my problem. Saying "don't be lazy and just learn Observable", or "you must learn D3 itself properly to be able to use it anyway" is not helpful. Observable being a closed, walled garden doesn't help: not being able to author notebooks without using their closed source editor is a liability that I can totally understand makes it a non-starter for some companies and individuals.
I think it's ok to plug my own project: It's called Starboard  and is truly open source . It's built on different principles: it's hackable, extendable, embeddable, shareable, and easy to check into git (i.e. I try to take what makes the web so great and put that in a notebook environment). You write vanilla JS/ES/Python/HTML/CSS, but you can also import your own more advanced cell types. Here's an example which actually introduces an Observable cell type  which is built upon the Observable runtime (which is open source) and an unofficial compiler package . I would be happy for the D3 examples to be expressed in these really-close-to-vanilla JS notebooks, but I can convince the maintainers to do so.
5 projects | news.ycombinator.com | 8 Jun 2021
Pyodide: Python for the Browser
5 projects | news.ycombinator.com | 12 May 2021
If you want to play with Pyodide in a web notebook you can try Starboard .
A sibling comment introduces JupyterLite and Brython, which are Jupyer-but-in-the-browser, whereas with Starboard I'm trying to create what Jupyter would have been if it were designed for the browser first.
As it's all static and in-browser, you can embed a notebook (or multiple) in a blog post for instance to power interactive examples. The bundle size is a lot smaller than JupyerLite for the initial load - it's more geared towards fitting into existing websites than being a complete IDE like JupyerLab.
Brython: Python in the Browser
1 project | news.ycombinator.com | 12 Apr 2021
Ask HN: What personal tools are you the most proud of making?
5 projects | news.ycombinator.com | 6 Apr 2021
PyTorch: Where we are headed and why it looks a lot like Julia (but not exactly)
18 projects | news.ycombinator.com | 26 Nov 2021
Show HN: prometeo – a Python-to-C transpiler for high-performance computing
19 projects | news.ycombinator.com | 17 Nov 2021
No intermediate AST. To understand the various stages of transpilation and separation of language specific and independent rewriters, this file is a good starting point:19 projects | news.ycombinator.com | 17 Nov 2021
This is awesome! The direction of using a subset of python, while leveraging the user base and static typing to accomplish some other everyday task in a different language is very legit IMO.
I took a cursory look at:
It seems quite similar in spirit to
I'm not spending much time on py2many last few months (started a new job). Let me know if any of it sounds useful - especially the ability to transpile to 7-8 languages including Julia, C++ and Rust.
Implicit Overflow Considered Harmful (and how to fix it)
2 projects | news.ycombinator.com | 5 Oct 2021
Link to the test that's relevant for this discussion:
This is an explicit deviation from python's bigint, which doesn't map very well to systemsey languages. The next logical step is to build on this to have dependent and refinement types.
Work in progress here:
Structural pattern matching in Python 3.10
2 projects | news.ycombinator.com | 20 Sep 2021
If you stick to this subset of python
The tool can convert your code to C++/Rust/Go and give you a native binary which like you observe will run faster without the python runtime.
There are many open tasks that could use help.
Nuitka: An extremely compatible Python compiler
10 projects | news.ycombinator.com | 1 Sep 2021
It seems to be fully statically typed, for starters:
But, given LuaJIT and V8, it's obviously possible to generate high-performance code without such restrictions.
As for PyPy adoption, it's hindered more by the lack of API compatibility with CPython native extensions.10 projects | news.ycombinator.com | 1 Sep 2021
Renaming the language in the future is still a possibility. For now, all the tests here:
are run with cpython interpreter and verified for compatibility.
Even when there is a desire to innovate (design by contract or pattern matching as an expression), hope to do so without breaking cpython (as long as you stick to the subset).
Kind: A Modern Proof Language
7 projects | news.ycombinator.com | 11 Aug 2021
I thought SMT2 (what you can feed to z3 -smt2), is a s-expression language that is the lowest level ("bytecode") thing. If you look at Dafny/Boogie, boogie is a much more human readable IR. I'm trying to build a pythonic variant of Boogie.
Paxos vs Raft: Have We Reached Consensus on Distributed Consensus?
5 projects | news.ycombinator.com | 16 Jul 2021
Functools – The Power of Higher-Order Functions in Python
5 projects | news.ycombinator.com | 9 Jul 2021
I'm interested in similar proposals that can provide the basis of some common syntax that could be transpiled to other functional programming languages https://github.com/adsharma/py2many
I'm less interested in the syntax (will take anything accepted by a modified ast module), more in the semantics.
Here's a syntax I played with in the past:
def area(s: Shape):
What are some alternatives?
julia - The Julia Programming Language
PyCall.jl - Package to call Python functions from the Julia language
PyO3 - Rust bindings for the Python interpreter
rust-numpy - PyO3-based Rust binding of NumPy C-API
pybind11 - Seamless operability between C++11 and Python
jq-console - Feature complete web terminal
PythonNet - Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.
monadless - Syntactic sugar for monad composition in Scala
jupyterlite - Wasm powered Jupyter running in the browser 💡
riju - ⚡ Extremely fast online playground for every programming language.
pybenchmarks - Python Interpreters Benchmarks
unofficial-observablehq-compiler - An unofficial compiler for Observable notebook syntax