4 ms·
Hm. So, without a kernel that can do heavily lifting, you're limited to basically what you get when have the browser console open; ie. html + js. Is that the
by wokwokwok 6y ago
Hm.
So, without a kernel that can do heavily lifting, you're limited to basically what you get when have the browser console open; ie. html + js.
Is that the idea? A better / structured browser console?
Or am I missing something?
I mean, I completely appreciate the benefit of notebooks; but if you're limited to running code inside your browser window sandbox... how do you do anything useful with it?
How do you import a dataset?
> const data = await fetch(`https://api.exchangerate.host/timeseries?start_date=2020-01-01&end_date=${today}`); https://api.exchangerate.host/timeseries?start_date=2020-01-...
Is great for trivial public datasets, but CORS is going to forbid you from loading any personal/private data right?
unpkg can give you public packages, but if you have any personal code, how do you use it?
It seems like you basically end up with an empty sandbox.
- brainless 6y agoI somehow felt very similarly. In that this is a very cool project, but what does it really solve. People who work with data also actually need Python, do you really expect me to recreate all the Py libs in JS now? I am really curious what was the author's thinking process here with regards to solving the problem, what in fact was even the problem. Perhaps the author could share their thoughts. Edit: grammar
- brainless 6y agoAfter looking at https://starboard.gg/about https://starboard.gg/about things are clearer now. The use-cases are clear and I can see the audience it targets.
- SiempreViernes 6y agoCan you explain it, because even after reading the about page I think your objections in the first post stand unchallanged.
- oarsinsync 6y agoTo me it looks like while Jupyter is good with Big Data, this may be good with Small Data that doesn't need the overhead that is Jupyter, but saves the need to reinvent all the wheels yourself manually. I'm looking at this and comparing it to the situation I find myself in with looking for a syslog collector. I want something that can collect all my syslog and present them in a web UI in a sensible way. My options appear to be limited to commercial solutions, ELK (Elastic, Logsearch, Kibana), or text files. There's no middle ground. I have ~20 VMs + containers, and no way to view all of their logs in a central sensible manner unless I roll my own (or buy more hardware to be able to run the ELK cluster).
- wokwokwok 6y agobut, but... how? I feel like I must be missing something here; you want to aggregate your syslog data; you have a bunch of files and a web browser. Now what? You beat your keyboard against the monitor while your browser sandbox steadfastly refuses to load your local file system files? [1] You write your own server that serves data and the open source core? [2] Yay, you now have the dubious honour of having re-invented jupyter notebooks, only, you had to roll it yourself, and it's insecure and really not very good compared to an existing mature product. What can you actually do with this, that you can't do by right clicking on your browser window and picking 'inspect', and then clicking on 'console'? You can certainly make interactive blog posts; absolutely, I 100% acknowledge that as a blog plugin, when you have already got a server to host your content, this would be pretty awesome. If you do want to run your own databricks / notebook SAS, then I also see it as being a really great kickstart for you, absolutely. However, out of the box? I'm... like, I think this is interesting, but I don't see how I could actually use it. [1] - https://stackoverflow.com/questions/50007055/fetch-request-to-local-file-not-working https://stackoverflow.com/questions/50007055/fetch-request-t... [2] - https://github.com/gzuidhof/starboard-notebook https://github.com/gzuidhof/starboard-notebook
- protoduction 6y agoI don't have all the questions yet and there are definitely things that a Jupyter notebook does much better. As for interacting with local files: I imagine a CLI tool that spawns a webserver that will serve local notebook files and perhaps the files in folders you point it at. Or: you generate a notebook file with the data baked into it (as a JSON blob or something). As for security: I think the browser sandbox is a lot more safe than running Python (Jupyter) with a lot of dependencies you will have to verify. And finally: you need to be able to get the data into the browser. For a company the most 'scalable' would probably be self-hosting Starboard and (setting up CORS to) allow reading from various datasources from your internal network, or otherwise authenticating the requests from notebooks. Another thing that has worked well for me in the past with other web tools: support drag and drop. You drop in the file you want to visualize. In the end Starboard notebook is a tool for creating a small website that you can instantly share, without needing a backing Python server always on, and without the need of any build tooling (webpack, what have you). It's good for small web tools, articles and tutorials. I hope this makes it a little bit more clear!
- pjmlp 6y agoMany of those Py libs are actually C libs with Python bindings, they can just as easily get JS bindings, and maybe even be compiled to WebAssembly in the process.
- indigochill 6y agoPyodide (https://pyodide.readthedocs.io/en/latest/using_pyodide_from_javascript.html https://pyodide.readthedocs.io/en/latest/using_pyodide_from_...) gives you a mostly-full Python interpreter in WebAssembly (there are still some issues around sockets). You can import and work with Numpy and Pandas in the browser using it.
- roywiggins 6y agoCould integrate Pyodide: https://github.com/iodide-project/pyodide https://github.com/iodide-project/pyodide
- lewisjoe 6y agoAt first look, I could use this as an interactive documentation for JS modules in my codebase.
- angleofrepose 6y agoOutside of the datascience context, I would argue that notebooks like these are how information in a world of compute should be presented. It's ironic that we have codeblocks upon codeblocks of content served on the web on technical sites and blogs that aren't immediately executable in the context of the post. The most popular software in the world are javascript vms, yet we talk about and teach javascript code on websites in a javascript vm that can't run the code on the screen.
- zamber 6y agoSO has runnable snippets, there are services like CodePen too and some articles are using it, but there's one simple trick making your point moot. F12 or Ctrl+Shift+i and Ctrl+c Ctrl+v and you're executing code in the context of the post ;). It's not a notebook but does the job well enough.
- angleofrepose 6y agoHaha, sure, sure. But that's not really the point. We have machine code right? Who needs an assembler? Tools and workflows are worth thinking about and improving. Right?
- zamber 6y agoDepends a lot. Debugging is awesome when you have source maps and good devtools in a modern browser but the code itself is not editable. That said it's possible to open a plain html file from disk with devtools and save changes done in it to disk making devtools essentially a development environment. I wonder how much value there is to this particular use case because it lives somewhere between devtools and an online IDE. Also arguably testing out a library in a codepen is more comfortable than an inline which you potentially can't save.
- angleofrepose 6y agoVery good points. Makes me think about a persistent web, what if every javascript code visible on your page could be edited and persisted between loads or visits or you could send a blog post link to a friend with your edits/comments/changed environment. Not arguing for that immediately, it's just interesting to think about. Then what do you do when someone is demonstrating how to reset a page, whether that be document.body.innerHTML = "" or document.body.removeChild(main). They could be run in sandboxes, like starboard here in iframes. Or a powerful history tool can be attached to the page. Every program takes an environment as a parameter, maybe we can make it as easy to shuffle around them as playing with cards. To really simplify it down, I'm exploring the space of digital workspace + shell. What do you get with a compute environment in OneNote or Figma or Sketchup. What do you get if you can position things in a freeform space rather than a filesystem and text based browser? Can I build a Sketchpad with code editing, and take advantage of viewport macros to build a space of my project and explorations? Makespace.fun + jsfiddle/observable seems like an environment that I'd like to work in with myself, my collaborators and arbitrary content. To play with things like history and alternatives, and associations of material and ideas. I have a good example of success of programmatic control of content and auto layouts working with my tiling window manager. Being able to explicitly describe compositions and demonstrating computational content seem to be targets not yet hit by the pop culture of personal computing. I might be just blowing hot air with all this, but it is fun to play around with.