You are viewing archived messages.
Go here to search the history.

Tom Larkworthy 2022-06-27 12:40:20

I've updated webcode so that owners of endpoints can configure "public livecoding", which allows any logged in user to grab the public traffic to that endpoint (well, each logged in user gets their own fingerprinted endpoint, so traffix is not mixed between users). So finally I can write a public demo of livecoding. This article is maybe too long but its how to implement a webserver including: serving and responding to web forms, serving a dynamic image (e.g. dashboard), and streamed responses.

webcode offers a fairly low level HTTP interface so achieving most of those things requires a fair amount of HTTP knowledge, hence I thought I would just write it up.

observablehq.com/@endpointservices/livecode

Ivan Reese 2022-06-27 16:12:36

[Moved from top level. Original post by @Peter Saxton]

This is cool. Certainly, the first time i've seen anyone else make the client a server. I made a proof of concept of a similar thing a while back. spotless.run

Though I had no idea of making it a business, and the notebook angle is cool.

Tom Larkworthy 2022-06-29 05:56:31

Thanks @Peter Saxton. spotless is very interesting. How did you do the custom domain per function thing? I really need to do that too.

I've had the idea for dynamic functions in my head for many years (since working on Firebase Functions and hearing every customer complain about deploy times), but it wasn't until I met Observable that there was enough external infrastructure around to make doing it worthwhile. You need a good editor for code content that is URL addressable... though these days there are other options like vscode.dev so I am wondering if I should branch out and make it a library.

Peter Saxton 2022-06-29 08:58:27

Hey. I just use a wildcard domain and then make the domain part of the routing logic here github.com/midas-framework/spotless/blob/master/proxy/lib/spotless/router.ex#L53

Tom Larkworthy 2022-06-29 09:13:00

Which wildcard hosting provider do you get? Or you running you own vm with letsencrypt

Nilesh Trivedi 2022-06-28 10:26:23

Hello all, I have been building a visual editor for compound graph datasets: grapheralpha.netlify.app

Compound graphs are those where nodes have two kinds of connections: Adjacency and Inclusion. I.e. A node can be a child of another node - in addition to having other kind of edges.

Cytoscape JS is great at visualizing such graphs, but I couldn’t find a visual editor for these kind of datasets. This is NOT a diagram-editor for which there are plenty of choices (like TLDraw or Excalidraw).

This is built with SVG and Svelte and works completely in the browser. I will be open-sourcing it in the coming weeks.

Andrew F 2022-06-28 17:52:48

Interesting. So a compound graph is to a statechart/HFSM as a regular graph is to an FSM?

Justin Blank 2022-06-29 14:32:31

Interesting. Is it currently impossible to move a node out of its containing node (to fix a mistake, for instance).

Nilesh Trivedi 2022-06-30 10:12:55

@Justin Blank Right-click -> Detach should work.

Nilesh Trivedi 2022-06-30 10:15:05

Andrew F Not quite. Arbitrary edges are still supported.

Here’s an example of a compound graph: pathwaycommons.github.io/cytoscape-sbgn-stylesheet

Matija Sosic 2022-06-29 09:37:34

Hey all,

we’ve made some more progress on Wasp lately and added a few bigger features (e.g. running async jobs/workers - wasp-lang.dev/blog/2022/06/15/jobs-feature-announcement) so wanted to share with the community here 🙂.

Since we’re moving towards Beta and plan to release in a couple of months, we’d also appreciate your feedback - we’re running a small Alpha Testing Program (takes ~45mins + we tried to make it fun :D) and would be thrilled to get your thoughts and ideas on how we can make Wasp better 🙂. You can find more details and apply here: wasp-lang.notion.site/Wasp-Alpha-Testing-Program-Admissions-dca25649d63849cb8dfc55881e4f6f82

Thanks a lot and honored to be a part of the community!

Tony Worm 2022-06-29 11:44:47

I've seen wasp before, cool to see you hear

I'm working on something similar (DSL / declarative programming), but using CUE (cuelang.org) for the language and trying to be more general (any lang / tech, not specific to web apps)

github.com/hofstadter-io/hof

🔗 CUE

Tony Worm 2022-06-29 11:48:22

feedback: What kept me from trying out Wasp is the custom language for a single tool and that the tool is written in Haskell (which I don't know or use)

I have been meaning to dig in to see how Wasp is similar & different from hof

Tony Worm 2022-06-29 11:53:11

Can users supply their own templates?

Matija Sosic 2022-06-29 13:19:09

CUE looks really interesting, I’d love to dig deeper into it 🙂 Re Haskell - that is actually only under-the-hood, for the contributors building the compiler, the end-user only needs to know JS (React & Node.js)

So re templates, you’d probably use React components for that

Matija Sosic 2022-06-29 14:09:43

@Tony Worm btw one language development question 😄 How do you get GitHub to “recognize” CUE language as a language in this bar?

Tony Worm 2022-06-29 15:05:27

re: templates

What if I want to use Vue vs React, or I need a specialized query against the database?

I was using goa.design and it was because the author didn't want to support user customized templates that hof was born

Tony Worm 2022-06-29 15:08:56

Have you used Dhall?

Matija Sosic 2022-06-29 15:42:14

Thanks! ah sorry, just now got that you are building hof (starred it!) using CUE, thought you were behind CUE initially 🙂

About react vs Vue, for now we support only React, but the “big vision” for the future would be the support all the main UI libs/langs (Vue, React, Svelte, …)

For DB layer we are using Prisma (prisma.io), so their SDK is used for forming queries.

🔗 Prisma

Tony Worm 2022-06-29 18:41:25

These are just examples, the point is that customization is almost always required for "low-code" created applications. One place for that in template driven code generation is the templates themselves. Mostly wondering if that can be done with Wasp? It was an important design consideration for hof , more so that the templates be external to the tool.

Tony Worm 2022-06-29 18:42:32

By moving them out, it opens the door for an ecosystem to evolve

Mariano Guerra 2022-07-01 14:42:38

I'm building a new prototype, working title: GLUI

It's an attempt to enable creating complex configurations and scripts while avoiding the problems and limitations of configuration languages, scripting languages and UIs

Here's the introduction video: youtube.com/watch?v=9PJ9UjX-Odk

If you find it too long you may want to use the Chapters feature to jump to sections that interest you.

The introduction and motivation may be useful to get an overview.

For a quick take on the powerful aspects of the prototype you may want to jump to 14:34 where I reuse a connection config in 3 places by linking to it

and the derive a new configuration from it by using the derive feature.

You want to try it? here it is, just remember it's the first version:

instadeq.com/experiments/glui/v1

Please let me know what you think, if you would like to know more, contact me and we can get into the details and/or long term objectives.

Tony Worm 2022-07-01 16:28:14

fwiw, I use CUE (cuelang) for config now. It is a brainchild from a Google engineer who was involved in writing both of the internal config languages there. Many lessons learned are incorporated. It's a logical language and uses unification to prove the input is correct.

It also has a DAG engine (cue/flow) which can be used for scripting.

( cuelang.org | cuetorials.com )


Looking at your project, a few of questions come to mind

  • Do you have a written introduction or documentation?
  • Can this work with version control like git? What are "code" reviews like?
  • Who is this targeted at? Professional developers or more of the "low/no-code" crowd?
Mariano Guerra 2022-07-01 16:31:57
  • No documentation yet, this is the first thing I share, I've been working on it on an off for some weeks
  • It has a serialization format, that could be version controlled, snapshots could be versioned in the tool itself, it's pretty easy to make diffs of different versions
  • Not decided yet, I don't think I will target professional developers, or if I do it will be for the glue/scripting part
Tony Worm 2022-07-01 16:40:04

Congrats on the launch!

I'm more of the prof dev, so I'm not sure how valuable my feedback / opinions will be... I prefer text based systems, UIs are too clunky for creating scripts. (though I have to admit, I have a plan for a "ui" like system for devs like me)

  • I didn't like the way adding options created inputs below, they would probably be easier to relate / understand if they were inline. For example, when I click "header", just add a row with two inputs for key/value.
  • The dots look like a drag-n-drop reorder indicator, the vertical three dots typically used for menus would probably be better. Reordering would also be a good feature
  • I think tooltips would be helpful, especially on icons
  • lifting the remove button up (as an "X") would make it easy to remove entries added by misclicks / exploration.

Docs will definitely help uptake, anecdotally from my own projects

Mariano Guerra 2022-07-01 17:34:50
  • I have to find the right balance of nesting and flatness, I still think headers should be nested to give them meaning, make it easier to collapse and avoid them layin around at the top level
  • I kind of copied notion, I changed to the 3 dots as you mention, still have to decide how to support reordering in a way that works well on mobile, I'm trying to avoid features that depend only on precise drag and drop (I have stories to share from instadeq 😄)
  • there will be tooltips and contextual help (I can always nest help inside each node 🙂)
  • I'm trying to avoid clutter by default, my objective is that if nothing has focus it should almost look like text, adding remove outside also makes it more error prone if close to other things 😕
Tony Worm 2022-07-01 17:50:51

Is mobile something you expect to have a meaningful amount of usage? I would think that the screen space is too small to support a good DX/UX

Mariano Guerra 2022-07-01 18:11:28

I plan to use the horizontal space to create different columns, so I want to keep each column slim. In terms of avoiding drag and drop, I want to support touch devices but also I've seen people get frustrated with missed drops after long drags

Mariano Guerra 2022-07-01 18:11:34

or just plain annoying long drags

Tom Larkworthy 2022-07-02 19:01:42

Cool demo! I have been thinking about a better version of Zapier's Oauth configurer (and in general most of Zapier interface). This seems quite close and has some very nice features like reuse and minimizing the clutter to jsut what is non-default. I really like it!

One thing I often need to do is bind a part of one thing to another thing, like set the AUTH token to a secret value for instance. I don't get a sense that interpolation is possible, it's close to what you described as a link but I don't think its the same thing. (I like that derive thing too).

The thing reminds me a little of JSONEditor json-editor.github.io/json-editor if you have not seen it.

Mariano Guerra 2022-07-03 08:57:17

I used to do that kind of thing a long long time ago 😄 github.com/marianoguerra/json-edit

André Terron 2022-07-03 18:27:47

I love seeing a Notion-like interface!

From the presentation perspective: it would be easier to understand if you framed it in a more story-like structure. For example: "If you need to get some data from Google Maps API, and store it in a CSV, this is how you would do that...", and show it end-to end. Even after watching the video and playing with it I'm still unclear if this is supposed to be executed, deployed, or if it will generate code or just a yaml config file.

My opinions on the UI:

  • it would be nice to have the cards be either pop-ups (be on top of content), or be on the side of the active column, that way it wouldn't move the content up and down.
  • It's a bit hard to visually parse the indentation level, maybe increase the horizontal space added with each level, and/or reduce the blank space between the item (icon + text) and the parent line
Kartik Agaram 2022-07-03 00:17:15

I showed lines.love 💬 #share-your-work@2022-06-05T17:46:04.815Za few weeks ago, and I've been mostly fixing bugs since. It might be converging to a fixed point now; no more features, bugs slowing to a trickle, most changes containing a 1-line fix and a dozen lines for a test. Then my hope is that it will continue to work reliably for a while without needing any updates (assuming future versions of love2d.org cooperate).

To freeze things I need to provide escape hatches. When people ask for new features, provide them either in forks (example) or as separate applications entirely. That way the lines.love codebase stays approachable/hackable/habitable, particularly for people who don't need the additional features. Here's an example of a separate application: an exporter to markdown+SVG: codeberg.org/akkartik/lines2md.

You can see it in action in this video. There's minimal UI here. I export files by dragging them on the exporter window, and it emits new files in the folder window that I can then open in any markdown application (that can render SVG).

Jack Rusher 2022-07-03 07:20:52

It feels in many ways like the drawing DSL you've embedded in the text is to SVG as markdown is to HTML.