WebPipers,
Intro + Vision
Greetings! I discovered WebPipes just a few days ago and love the idea. Why? A few reasons, including:
1. I'm a big believer in machine-readable schemas moving the web forward by making way for much more automated automation, with humans spending far less time digging through docs then manually gluing stuff together. I should be able to simply tell a web app about another one (by URL or perhaps, eventually, by name), and they should immediately...
(i) read each other's schemas;
(ii) auto-generate the types/classes to be used to internally represent each other's schemas as data structures in the programming language in which it is written (perhaps only for efficiency);
(iii) (perhaps) auto-generate or download each other's documentation;
(iv) (perhaps) perform diagnostics, by either (a) providing each other sample inputs and outputs (basically externally-verified, programming language-agnostic integration tests) and running those against each other, or (b) auto-generating test requests based upon the schemas and make sure each response is well-formed;
(v) (perhaps) notify all other web apps they've ever communicated with about each other, and/or adding each other to every registry/directory listing of these sorts of intelligent web apps;
(vi) (perhaps) add each other's schema, examples, and any other relevant docs to its own human-readable interface, so any technical or non-technical person trying to do something with it knows the full breadth of functionality he/she has at his/her fingertips
2. I've also thought that it'd be awesome to somehow create programming language-agnostic libraries. WebPipes can totally play this role, albeit in a relatively low-performance way, but this will often be good enough... and if the desired WebPipe is open source, it could be hosted on localhost (or a machine in the cluster), which would speed up the socket communication a bunch.
Two New WebPipe Blocks
Three days ago I created my first WebPipe block,
HTTP Status Code Retriever (
link). Today I finished my second one,
Web Latency Comparinator, which is only slightly less boring, but at least shows off Go's concurrency primitives a bit. Both have been added to
the registry.
Soon I'll send out my thoughts/opinions/ideas on the spec based upon my experiences writing these apps and relevant ideas I've seen expressed elsewhere.
Hope to talk to you all soon!
P.S. Thank you to Matthew (Hudson) for being responsive and
stoked... and accepting my pull requests :-)