I really like Observable a lot, and have made a couple of brief, messy visualisations with it (messy in terms of code at least). I hope at some point they can offer some sort of offline support. The focus on ease of sharing is great, and the volume and breadth of content has really helped me to get more proficient with d3. The inability to open and edit notebooks offline/locally is a real inconvenience, however. I ha…
Why We're Building Observable
51–60 of 86 posts
Re: Why We're Building Observable
#52Extremely dumb question: how is this different from tableau and/or jupyter notebooks? I don't use visualizations and don't understand this space :)
Re: Why We're Building Observable
#53Skimming the docs... the tutorials are really nicely done but it's hard to find a clear description of what exactly is possible. Can you install libraries (from npm?) Can you build and share custom components, not just notebooks? Can you connect to a web server?
Interactive vis is not very well integrated with the frontend ecosystem IMHO. Integrating a very interactive D3 vis with React, for example, can be painful.
Re: Why We're Building Observable
#54Observable is fantastic, but as others have hinted at, IMO, I think it's trying to lock you in. I want the raw JS, in one click, so that I can build out a visualization locally, just hacking on HTML/JS. Steps to doing this are highly obfuscated when they could be a single button. Overall you can see its evolution from prior sites- someone spent a huge amount of time demonstrating cool visualizations, then tried to ma…
Confession though, I might have been powered by Mike Bostock fanboy juice. d3 is part of what made me fall in love with programming.
Re: Why We're Building Observable
#55Observable is fantastic, but as others have hinted at, IMO, I think it's trying to lock you in. I want the raw JS, in one click, so that I can build out a visualization locally, just hacking on HTML/JS. Steps to doing this are highly obfuscated when they could be a single button. Overall you can see its evolution from prior sites- someone spent a huge amount of time demonstrating cool visualizations, then tried to ma…
I'm building something similar called Starboard Notebook[0] that has a different set of trade-offs. It ends up being something in between Jupyter and Observable:
* One of the goals is to build Jupyter how it would have been if it was designed for the web (only).
* It's open source [1], plays nice with git (the format is plaintext), and supports local viewing & editing [2]
* Because of that you can host it yourself, put it on your blog / github pages, anywhere.
* There is little magic, it actually is just Javascript at it's base. This means you can use standard browser APIs and HTML, and when you are ready to "graduate" the notebook implementation that should be straightforward. In my eyes notebooks are only for the first 20% of the work that does 80% of the job for small applications/experimentation (which is often where it ends anyway).
* You can "build the ship as you sail": you can load new cell types dynamically at runtime. This is also how Python is supported (through WebAssembly).
* You can have interop with Python and Javascript which is really powerful. Example: Create a drag an drop form using HTML+JS, then process the dropped CSV file using Pandas and visualize using matplotlib.
[0]: https://starboard.gg [1]: https://github.com/gzuidhof/starboard-notebook [2]: https://github.com/gzuidhof/starboard-cli
Re: Why We're Building Observable
#56I really like Observable and have used it quite a bit, but I absolutely hate that it is the default documentation form for D3, because D3 is a javascript library, and Observable is not javascript. At the very least it would be nice if there was a way to take an example and press a button to get the same thing in javascript.
The presentation is one more layer to understand between "here's the code" and "here's what the code produces". I do generally like the notebook format for exploratory data work, but it's not at all ideal as part of a workflow for writing code that will fit into a larger application, in my experience.
Re: Why We're Building Observable
#57Extremely dumb question: how is this different from tableau and/or jupyter notebooks? I don't use visualizations and don't understand this space :)
Tableau offers templated visualizations. You generally do not need to program to create stuff. Observable is a notebook environment where you can write JS (mostly) to create and tweak highly customized visualizations. It's similar to Jupyter on a very high level (they all have reactive cells for example), but for JS and visualizations.
Some more questions: 1) Assuming the bulk of folks use jupyter notebooks for analysis, why not integrate with jupyter or use d3.js in jupyter directly? I assume there would be a learning curve for data manipulation on js where analysts/scientists would prefer python 2) Assuming that this isn't even meant for the jupyter audience, who is it meant for within a company?
Re: Why We're Building Observable
#58My gripe with Observable is I can't fit into a Python-based workflow. I.e., a machine learning or gpu-training worfklow. It is a nice place to create explainers, though. I almost think of it as being like a Medium alternative.
Can you run arbitrary libraries like Tensorflow.js?
Re: Why We're Building Observable
#59Earlier quoted context omitted.
Check the link provided. It's just running inside of vscode, with no communication to their servers whatsoever.
I did, it's not the same literate programming environment like I said. Are we misunderstanding each other?
You can self host observble, but you can't self host observablehq.
Literate programming just means the combination of code and documentation/visualisation.
Observablehq provides a nice inline code editor, but that's incidental to what observable is.
Git can also be used with a GUI but that GUI is not essential to what git is.
Simularly observable notebooks can just as well be created without the GUI, in a quite convenient way.
Re: Why We're Building Observable
#60Earlier quoted context omitted.
Hosting the notebook and hosting the development environment are two different things. It's like saying git (observable) can't be self hosted because github (observablehq) is not open source.
Just to jump in and say my comment that you said wasn't true was "... improvement over an existing literate programming environment.".
But observable (the reactive notebook technology) can do everything a jupyter notebook can do, you just need to write a bit of communication code to hook up a websocket. (For me sandboxing the ui is a feature not a bug.)
And you can also self host it on a machine of your choice, and edit it locally.
We do that internally for all our dashboards.