May have to make the switch from Notion. SEO is the necessary evil. Le Promise – import JavaScript libraries. YMMV. I loved the title. Since design patterns are used to solve specific problems in software, let’s try to define such a problem and work to solve it using a design pattern in JavaScript. https://observablehq.com/@observablehq/five-minute-introduct... https://observablehq.com/@observablehq/introduction-to-noteb... https://observablehq.com/@observablehq/why-observable, https://news.ycombinator.com/newsguidelines.html. Yes, it's nice that you can "observe" your code auto updating. It seems to be a core part of JavaScript. If you want you can certainly carve your Javascript programs into stone, but I wouldn’t bet on anyone being able to run them in 4000 years. https://observablehq.com/@tophtucker/inferring-chart-type-fr... https://observablehq.com/@vorth/exploring-4d-quaternion-rota... https://observablehq.com/@sethpipho/fractal-tree, https://observablehq.com/@esperanc/sketchable-vector-fields. I personally have a lot of faith in the Observable team’s commitment to not breaking documents published on their platform or letting them disappear. observable and promises are used to handle the asynchronous calls in a javascript. IMHO call it something other Observable? I wasn’t seriously engaging because I didn’t take your comment about ancient civilizations to be especially serious. Also, yes, I've been keeping a very close eye on Svelte 3 and have been experimenting with it :). It's good that you're aware of the basic aspects of the archival problem, but you're mistaken about the role of digitality — being digital makes it possible to copy documents losslessly, thus preserving them even when the original substrate is lost. Observable is breaking from Javascript more than I thought, which will allow it to do really cool things and hit an audience that doesn't necessarily care that it's not quite Javascript. You navigate around the notebook, toggling open and closed the code editors, and typing into them. 3. Making your documents' interpretability conditional on the survival of a mere commercial interest is a good example of such archival sabotage, as many authors and historians have discovered, to their sorrow, in the Geocities era. > it's a tall order to expect him to rewrite everything in Observable. The JS of course is JavaScript. I notice whenever I highlight a paragraph, clicking the paragraph again doesn't de-select it, unlike every other program and webpage. Embedding An Observable Notebook. I try to use a plain text format, I also implemented pullrequest and versions like that of github. https://observablehq.com/@pstuffa/making-maps-with-nyc-open-... https://observablehq.com/@mootari/getting-artsy-with-lloyd, https://observablehq.com/@bps10/sensations-from-single-cones. Eh. Pretty well everything that was written on a flexible organic surface from 2000+ years ago has been destroyed, but scattered bits of oral history retold by generations of storytellers and some written books repeatedly copied by generations of scribes have managed to survive. I am an avid user of Jupyter Notebooks for prototyping and code sharing in data science / deep learning. Non-linear is a plus. I thought they were talking about Observables as in the Reactive Observables (1) from RxJS (2) et al. This code is written in the app.component.ts file. ", Edit: with regard to ReactiveX...well yeah. With the rise of frameworks like React, we often hear about ‘application/component state.’ When the state is updated, components will re-render accordingly. We did just launch a big improvement to keyboard controls this week that mirrors vim’s “Normal Mode”: I saw that. I thought this might be because my response doesn't match the interface, which I have double check and it does. Note that if order mus… I am here to do and not to observe. I can't decide whether that's a good thing or a bad thing, and whether it says more about me or observable. Any help on where I am going wrong would be great. I agree. https://github.com/n-riesco/ijavascript, [2] https://github.com/jupyter/jupyter/wiki/Jupyter-kernels. That said, if you're interested something less notebook-y, check out what Rich Harris is doing with Svelte 3. (2a) Being able to pin the source of a cell to be shown / hidden at the author’s discretion makes for an improved reader experience in the typical case (assuming a conscientious author). Angular2 rxjs missing observable.interval method, You need to import the Observable class this way to be able to use the interval method: import {Observable} from 'rxjs/Rx';. This code is written in the app.component.ts file. It introduces the notebook paradigm to JavaScript projects, those of you familiar with Jupyter notebooks, this is the equivalent with JavaScript instead of Python. If you click (without dragging) in the left margin next to a cell output, it will show the source for that cell. But you can do both! But it’s nice that it’s implemented in so many languages! knockout observable is not a function. Angular is a platform for building mobile and desktop web applications. You can use the more general Proxy object instead. You know what would be nice, in a scifi universe? Very few works are going to be copied as widely as a foundational religious text. My point in the comment above is that, although I think Jupyter is fantastically designed, and I love the kernel abstraction, it began and is all about the notebook and graphical UI. https://observablehq.com/@observablehq/downloading-and-embed... https://observablehq.com/@stared/tree-of-reddit-sex-life, https://news.ycombinator.com/item?id=19640562, https://observablehq.com/@mbostock/hello-tau-prolog. 1. https://github.com/observablehq/parser, 2. https://github.com/observablehq/runtime, Fir JavaScript (and D3.js in particular), still - I don't have a default go-to solutig. Thanks! Being able to mix text, diagrams, data tables, multimedia output, interactive inputs, easily modified subroutine implementations, imports of external data and subroutine libraries, ... makes for a very expressive and reader-friendly (albeit with a bit of reading learning curve) platform for writing interactive documents and for doing research. I kinda want Observable to be it's own language that can compile to JS... not saying it would be a good general purpose lang by any means, but it would be interesting to experiment with a 'first-class observable' language. As for Observable: you could relatively quickly and straight-forwardly build yourself a mediocre version of the editor interface. 4. It is quite likely that if the platform becomes extremely popular better archival solutions will be found. We have imported an observable library, and then we have created a new instance of an observable via invoking a new keyword. https://observablehq.com/@gre/introduction-to-functional-ren... https://observablehq.com/@redblobgames/delaunator. One of the explicit goals is to make it easier to create explorable explanations. But whatever observable is usefool for some few, I am sure most … https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... (4) It is fairly easy, but it’s a fair complaint that it takes some trust / involves some risk to build work on top of a closed-source platform, especially for folks with strong free software ideology; even if it is possible to mirror code outside observablehq.com, it is at least mildly inconveient, and necessarily loses access to some great platform features. Output: Making an Observable: In the following example, we will be making a simple observable for getting a table of 2. Interestingly enough, from my quick tests, the highlighting behaviour works as normal in Firefox, but not in Chrome. I don’t believe micro-engraving to be a serious long-term archival plan for individuals; if the metal plate (or whatever) gets lost, buried, melted down, ... then it doesn’t really matter what is engraved on it. I imagine someone using this mostly to embed charts and graphs alongside code a la Jupyter Notebooks. Observable is where people can create, collaborate, and learn with data. of the Observable platform. We can even create Observables in the Node.js platform or inside any Javascript library. Crystal clear – well written! Here, the producer is the WebSocket, but the twist here is that we aren’t creating this WebSocket, the producer, during subscription. A kernel that works with several languages, and can communicate using a socket with any program, not just the browser. The Markdown tagged template literal is part of the standard library, and you can define your own that work just like it. It is a project about highly interactive content on the web. Because indeed, I personally thought that Observable was mostly just Javascript. Your individual documents can be pretty easily exported and self-hosted. Being able to hover over HN links and get a short context for the topic. So we can keep passing the blame about who steals SEO from who... To be clear, I was only quoting RxJS as the most popular implementation in js for the Observable primitive. The Observable does not even maintain a list of attached Observers. Not entirely right. We don't have a lot of information about what the next 3000 years are like, but with modern machinery it's relatively straightforward and affordable to produce sub-gigabyte-scale archives that would have easily survived short periods like the last 3000 years, even without copying. I'm happy to hear there is some consideration. https://observablehq.com/@fil/modified-stereographic-project... https://observablehq.com/@mbostock/tissots-indicatrices-on-a... https://observablehq.com/@mbostock/manipulating-flat-arrays, https://observablehq.com/@awoodruff/diy-hillshade. Nobody wants to read e.g. What is Pull?In Pull systems, the Consumer determines when it receives data from the data Producer. I have 3 Observables. But now I understand it a lot more and more importantly have an idea now of where they are going with it. Org Mode in Emacs has been around for quite a while now, and it has full literate programming features. The Subject is another type of Observable, and it allows value to be consumed by many Observers, not like in the normal Observable just by one. We’ve added more keyboard shortcuts, so you can now "Shift-A" to select every cell, and then press "P" to pin every cell open at once (and then to close them again). Working on fundamentally reactive code in a traditional text editor is ... alright, I guess. I have found this to be extremely helpful in the past year or two trying to work during my 2-year-old’s nap time. Typical, that 5 mins after I post, I find a solution. As much I try to like this project, still, something feels clunky. Before using Observables do import Observables from rxjs library by writing the following code. It's totally a not-so-distant cousin. This is insanely cool - I didn't know an implicit DAG notebook was on the market already. I think Matlab and Fortran are great. Isn't the whole point of Observablehq that your computation reacts correctly to modifications? ;) — I'll try to respond in good faith: What's the rationale for results above code? I'm going to check these out. The term “observable” used as a noun in a programming context seems to me very clunky and vague. It's a very gradual progression into that. In other news, check out my new web framework, called MVC. I think Jupyter has a lot of legs and will be great for many, many years ahead. [closed], Regex using negative lookahead is not working properly. Am I right in thinking that this is mostly interesting for statistics-adjacent fields? Andrew calls them "view" and "data object," respectively. https://epiphany.pub/post?refId=2684bc94f9fcb9ffe637ebfbeba2... for 1. epiphany is also non-linear, because I'd like to reveal the results and then explain pieces. for 3. epiphany uses vanilla js with some apis to print results and create ui. But making Lots Of Copies does indeed Keep Stuff Safe, which is why I was puzzled that you seemed to be dismissing that route in your original comment. Observables in JavaScript and development are something else, only reason I clicked the headline is due to the confusion, and I'm slighly upset and baseline hostile to the product. I'm making an alternative called epiphany, focusing on tech blogging. How to add media queries to styles prop in react-select? Please don't post shallow dismissals and please don't be snarky. You say, "when business is involved, there's no absolute guarantee", but to me, that sounds like an absolute guarantee that your documents will disappear — consider how many companies are still around from only 3000 years ago, right before the Bronze Age Collapse, and compare to how many documents survive from that time. This has nothing to do with the Observable primitive. Here are a small handful of my favorite notebooks, chosen for variety of style/theme/author, and in no particular order: What a generous comment! 2. Allow listeners to subscribe to changes 3. Ultimately, that’s why each cell has content before source code — the content is always there, and the code may or may not be visible, so working with the notebook as a whole feels much more stable and less jumpy with the rendered value as primary and the source code as secondary. you could download all your data. This website requires JavaScript. ... After this code runs we will get Observable, because the map function returns Observable. My complaint isn’t that this steals SEO, it’s that this becomes less searchable because any search for “Observable JavaScript” is going to turn up RxJS/MobX or one of the other libraries that implement Observable primitive types. In what sense is an Observablehq document without the editor GUI the same document? With the gentle caveat that this list of concerns feels fairly low effort — surely, with a little elbow grease, you can think of much more damning complaints! I think the kernel design is fantastic. https://docs.oracle.com/en/java/javase/11/docs/api/java.base... https://www.learnrxjs.io/concepts/rxjs-primer.html, https://en.wikipedia.org/wiki/Observer_pattern, https://en.wikipedia.org/wiki/Design_Patterns. Personally I find it to be the best (most reader friendly) available platform for most types of code documentation and learning materials, as long as the code involved happens to be Javascript. Follow. Haskell has .lhs ('literate haskell') files where comments are the. I can not do anything with observable. This hostility is probably because I suspect the confusing name is intentionally confusing. After all I thought, Observable is JavaScript code in the cells, and I know JavaScript. Netanel Basal. Knuth has been doing literate programming for 35+ years, That's not true, big-O notation (also called Landau symbols) was used as early as 1894 by Paul Bachmann (. Operators are the horse-power behind observables, providing an elegant, declarative solution to complex asynchronous tasks. Your comment would be just fine without that last sentence. 1 https://en.wikipedia.org/wiki/Literate_programming. That'll encourage me to use Observable more. (I added an example to the notebook.) I love the Raft visualization (https://raft.github.io/) and would be ecstatic to see more stuff like that surfacing around, making it easier to grok sophisticated distributed systems. handles everything nicely. My exact reaction - and the reason I clicked through, though I must say I was pleasantly surprised it was this, and not JavaScript Observables. Have you had a chance to try our project. On the iphone, safari tries to open these links in mail.