I've some experience in visual programming languages (both professional and in my studies) and I advise against the graph-form where you connect nodes and edges.
This does not mean that text is the only way to implement programs (and even if you connect nodes, you're still programming), but maybe a good local optimum is in-between, e.g. interactive shells like Jupyter's Notebook and the Mathematica interface. I know there is LabView, the Blender-Editor and AFAIK some Unreal-Engine tool that uses this model, but bigger programs seem really incomprehensible to me.
It's always easy to show-case 5 programs in these node-&-edge editors, but I do not think it is the best approach for visual languages, as one should not under-estimate the layout problems and how to represent information in boxes.
So, I am all for new ideas in visual programming, but I am not sure if the "free canvas" approach works.
I don't think you remember how the yahoo pipes worked. It was a brilliant mix of graphs for flow control, premade boxes for all common data manipulation and scripting for that extra feature if needed
I miss them a lot and appreciate the effort here, but don't forget the visual model for data manipulation wasn't invented here but was testsd refined and proved functional by previous existing services
"Patch and wire" can work in certain contexts, especially for data flow models. You are right they don't scale well (Burnett's scaling up problem), but if the programs are relatively small, they are completely manageable. And it does force you to keep your components relatively small and simple (using compounds to hide wiring for more complex designs).
I work for SnapLogic (an enterprise visual integration product) - the "free canvas" works great for us with live preview of results/data; here's an example linking a third-party code review tool's webhooks with JIRA: https://i.imgur.com/gNr1gGD.png
All of our integrations can be converted into a API with a click of a button too.
Compared to putting together the net list of even a mildly interesting digital circuit interactively this is actually really easy. Not as easy as doing it with a text editor and some programming language or scripting solution would be but I think that Y! pipes was never aimed at the developers, much more at ordinary users and those are much more comfortable with such visual solutions than they are with text.
There are some successful commercial products that use a visual graph model. MaxMSP [1] and Shake [2] (now discontinued) come to mind. You're right that it doesn't scale well as a UI, however.
Pipeline Pilot (Biovia/Dassault) - Deeply entrenched, industry-grade visual (+textual(PLSQL)) programming system. Depending on who you ask, it is either the bees-knees or a f*ing cancer.
Have a look at the ideas SGI 'explored' with 'IRIS Explorer'. This was ahead of its time and ahead of even SGI hardware. However you could layer up lots of interesting datasets in ways that would otherwise require programming at some other level.
"I've" is not normally used where it is spoken as "I have". This is similar to people using "an" in front of a word starting with "h" where the "h" is pronounced. Not sure why people do this.
Node.js-based with a Pipes-like visual wiring interface. It's quite popular with the Raspberry Pi and Arduino crowd. Lot's of input and output plugins, and you can drop into Node scripting when necessary. I quite like it.
They do a fraction of the data manipulation options available from pipes and they require connectors being custom developed, plus they limit you on result delivery, which cannot be pulled.
I'm interested in the answer to this questions myself :) For me, this is about the ease of use of the visual programming interface, and the focus on feeds to enable the pipe concept. I do not see this in the same space as Zapier and IFTTT, but I might be wrong!
I'd be interested to know which blocks and functionality is missing to support the use cases you used Yahoo Pipes for! And of course general feedback is always welcome.
Nice. It's not very clear that you need to link the pipeline to the right-hand side. (I can't remember if you had to do that on Yahoo, it's been so long!). It's particularly a problem on a wide screen because the eye starts on the left, and I built my pipeline on the left and it took me a while to figure that out.
But well done on scratching an itch that lots of people have had!
> I can't remember if you had to do that on Yahoo, it's been so long!
I have a screenshot on my disk: https://imgur.com/a/TExPX - it had a bigger pipe output block at the bottom. I can see how the red circle alone is not enough, thanks!
Nice. Anyone else here ever use Ab Initio? It's an ETL tool for transferring data between databases and manipulating in the process. Seems very similar.
I've always wanted to recreate something with those ideas because it was a very efficient cross between visualizing code and writing it. This looks pretty similar although for different data sources.
This discussion is very interesting to us, as we are building a workflow system for collaborative learning (students might do an activity individually, the output of that activity is aggregated and transformed, students are grouped based on an algorithm that processes data from the previous activity, output from one activity is redistributed to another activity, etc). (quick demo: https://www.youtube.com/watch?v=HQ9AyzLOn3Q)
So this discussion about visual languages, data transformation etc, is very relevant to us. One thing we're working on is how to make data transformation more intuitive... Right now we are using JSONPath to enable selection of one field to aggregate on (ie. you have a form where people input ideas, and another activity that takes a list of ideas, so you can input a JSONPath for the field to get aggregated). However, looking at JMESPath (http://jmespath.org/examples.html), it looks much more powerful. Has anyone seen any examples of graphical interfaces for going from one data representation to another, with preview, selecting fields, aggregation etc?
Unrelated to pipes specifically but along the same lines, I feel like app developers ought to conform to a pre-defined standard like schema.org for their respective content so that everything can be inter-operable in theory. That way if I'm using Microsoft Todo or Google Keep or whatever, the potential for Google Assistant or Siri or Cortana to add to whichever Todo App I'm using is already there.
What are the drawbacks behind something like this?
No incentive. If your service is used through something else then you are easily replaceable and users don't spend time in your app.
edit: Just to be clear, I'd love that too. Hopefully it will start happening when everything is driven more by micropayments rather than ads. I'd imagine you'll have "gui companies" and "service companies".
It's also really hard to do. I mean, imagine how one would achieve interoperability for a project like this. Placing blocks via an API from another service? The language/spec supporting that and everything else would be too complex.
But thankfully we have RSS for the data representation, which is a related idea, just the output side. The core of that idea is what enables this site in the first place.
I used to use yahoo pipes for a few twitter bots I had. There was an rss to twitter webapp that I hooked up and it was fully automated for years before it stopped working.
I didn't see the thin red circle on the right, which I now understand to be the output. I almost gave up before realizing my mistake.
Using yahoo! pipes I created a lifestream application[0] some years ago that won an honorable mention for the 10k javascript challenge. It was nice to have a dynamic site that required no server work on my part.
Updating it for this would probably be a neat way to test out the RSS feed usage.
Very interesting, I do think that visual programming tends to work better when constrained to a small niche of computing, that's the hypothesis behind https://github.com/AlvarBer/persimmon
I've made something[1] that used "jq for everything" in the past.
RequestHub was initially a way to connect webhooks from one service to API calls to another services, using jq scripting for all the customization.
Later I realized it could be used for processing anything (even text!), not only webhooks, but it was too late. Maybe someday I'll do a Yahoo Pipes revival that will just use jq for scripting inside the boxes.
If I understand you correctly, you want to be able to join the results of multiple sources? You can do something like that with a library I wrote, riko [1]. A simple example would look something like this:
You connect and configure various compontents (Input, Output and Manipulation) to achieve you desired dataflow.
It's compiled to Java and really Vera versatile.
You can check out my library riko [1, 2]. While it doesn't have a slick GUI, it does support most of the original yahoo pipes (including xpath [3] and regex [4]).
I'm not sure. There are a couple of existing services that do that already, and which give you a rss feed you could then import here. But if it gets requested I would look whether it is doable in the constraints of this system - at least I remember yahoo pipes supported it, that's a plus.
Every pipe is a recursive list of blocks, like a tree. Basically, a pipe has a starting block that produces the pipe output. To do that it calls the process function of its input block, which again run their input blocks, ..., the feed blocks serve as tree leaves.
[+] [-] zeptomu|8 years ago|reply
This does not mean that text is the only way to implement programs (and even if you connect nodes, you're still programming), but maybe a good local optimum is in-between, e.g. interactive shells like Jupyter's Notebook and the Mathematica interface. I know there is LabView, the Blender-Editor and AFAIK some Unreal-Engine tool that uses this model, but bigger programs seem really incomprehensible to me.
It's always easy to show-case 5 programs in these node-&-edge editors, but I do not think it is the best approach for visual languages, as one should not under-estimate the layout problems and how to represent information in boxes.
So, I am all for new ideas in visual programming, but I am not sure if the "free canvas" approach works.
[+] [-] LoSboccacc|8 years ago|reply
I miss them a lot and appreciate the effort here, but don't forget the visual model for data manipulation wasn't invented here but was testsd refined and proved functional by previous existing services
[+] [-] seanmcdirmid|8 years ago|reply
[+] [-] robinhowlett|8 years ago|reply
All of our integrations can be converted into a API with a click of a button too.
[+] [-] jacquesm|8 years ago|reply
[+] [-] lobster_johnson|8 years ago|reply
[1] https://cycling74.com/products/max/
[2] https://images-na.ssl-images-amazon.com/images/G/01/software...
[+] [-] phreeza|8 years ago|reply
[+] [-] shiven|8 years ago|reply
[+] [-] Theodores|8 years ago|reply
http://www-sldnt.slac.stanford.edu/hepvis/Papers/Web/9/x1602...
[+] [-] supergreg|8 years ago|reply
[+] [-] metachris|8 years ago|reply
[+] [-] sidegrid|8 years ago|reply
[+] [-] beardicus|8 years ago|reply
Node.js-based with a Pipes-like visual wiring interface. It's quite popular with the Raspberry Pi and Arduino crowd. Lot's of input and output plugins, and you can drop into Node scripting when necessary. I quite like it.
[+] [-] perryprog|8 years ago|reply
[+] [-] michaelbuckbee|8 years ago|reply
[+] [-] LoSboccacc|8 years ago|reply
[+] [-] kilroy123|8 years ago|reply
(I have no affiliation, just a happy customer)
[+] [-] GordonS|8 years ago|reply
I've been trying to find such a system that can read from RSS feeds and post to a Facebook Company Page, but to no avail.
[+] [-] wocram|8 years ago|reply
[+] [-] onli|8 years ago|reply
[+] [-] onli|8 years ago|reply
[+] [-] insomniacity|8 years ago|reply
But well done on scratching an itch that lots of people have had!
[+] [-] onli|8 years ago|reply
I have a screenshot on my disk: https://imgur.com/a/TExPX - it had a bigger pipe output block at the bottom. I can see how the red circle alone is not enough, thanks!
[+] [-] unityByFreedom|8 years ago|reply
I've always wanted to recreate something with those ideas because it was a very efficient cross between visualizing code and writing it. This looks pretty similar although for different data sources.
[+] [-] bergie|8 years ago|reply
[+] [-] mgkimsal|8 years ago|reply
[+] [-] houshuang|8 years ago|reply
So this discussion about visual languages, data transformation etc, is very relevant to us. One thing we're working on is how to make data transformation more intuitive... Right now we are using JSONPath to enable selection of one field to aggregate on (ie. you have a form where people input ideas, and another activity that takes a list of ideas, so you can input a JSONPath for the field to get aggregated). However, looking at JMESPath (http://jmespath.org/examples.html), it looks much more powerful. Has anyone seen any examples of graphical interfaces for going from one data representation to another, with preview, selecting fields, aggregation etc?
[+] [-] fareesh|8 years ago|reply
What are the drawbacks behind something like this?
[+] [-] comboy|8 years ago|reply
edit: Just to be clear, I'd love that too. Hopefully it will start happening when everything is driven more by micropayments rather than ads. I'd imagine you'll have "gui companies" and "service companies".
[+] [-] onli|8 years ago|reply
But thankfully we have RSS for the data representation, which is a related idea, just the output side. The core of that idea is what enables this site in the first place.
[+] [-] bsandert|8 years ago|reply
[+] [-] anonfunction|8 years ago|reply
I didn't see the thin red circle on the right, which I now understand to be the output. I almost gave up before realizing my mistake.
[+] [-] Xeoncross|8 years ago|reply
Updating it for this would probably be a neat way to test out the RSS feed usage.
[0]:https://github.com/Xeoncross/MicroStream
[+] [-] mortadelegle|8 years ago|reply
[+] [-] onli|8 years ago|reply
[+] [-] Mister_Snuggles|8 years ago|reply
I was intrigued by Yahoo Pipes a while back, but didn't want to invest much in it in case it was shut down. Sadly, that worry was well founded.
[+] [-] jonincanada|8 years ago|reply
[+] [-] jwives|8 years ago|reply
[+] [-] onli|8 years ago|reply
[+] [-] hehheh|8 years ago|reply
[0] https://stedolan.github.io/jq/
[+] [-] fiatjaf|8 years ago|reply
RequestHub was initially a way to connect webhooks from one service to API calls to another services, using jq scripting for all the customization.
Later I realized it could be used for processing anything (even text!), not only webhooks, but it was too late. Maybe someday I'll do a Yahoo Pipes revival that will just use jq for scripting inside the boxes.
[1]: http://archive.is/nGyH3, https://github.com/fiatjaf/requesthub.xyz
[+] [-] reubano|8 years ago|reply
[1] https://github.com/nerevu/riko
[2] https://github.com/nerevu/riko/blob/master/riko/modules/join...
[+] [-] infectoid|8 years ago|reply
Also this reminds me of and IoT solution I was shown recently.
https://nodered.org/
[+] [-] hehejo|8 years ago|reply
You connect and configure various compontents (Input, Output and Manipulation) to achieve you desired dataflow. It's compiled to Java and really Vera versatile.
[+] [-] Toast_|8 years ago|reply
[+] [-] reubano|8 years ago|reply
[1] https://github.com/nerevu/riko
[2] https://www.youtube.com/watch?v=bpn2G3TAAYY
[3] https://github.com/nerevu/riko/blob/master/riko/modules/xpat...
[4] https://github.com/nerevu/riko/blob/master/riko/modules/rege...
[+] [-] onli|8 years ago|reply
[+] [-] RandomBookmarks|8 years ago|reply
[+] [-] arjie|8 years ago|reply
[+] [-] onli|8 years ago|reply