
Huginn, an Open Source IFTTT / Yahoo Pipes - tectonic
https://github.com/cantino/huginn/
======
anigbrowl
Good stuff, although I'm not a Ruby user. Tools like this should be much more
widespread. Code Is Bad because you can't write code without a minimum level
of vocabulary and syntax, and that excludes a lot of people. True, code offers
the most flexibility, but 99% of the time people don't need all that
flexibility and want to accomplish fairly straightforward tasks - which is why
GUIs are the norm. With GUIs and visual network design, users select from a
palette of what's available and can connect components together without
wasting time on syntax.

The oft-repeated cry that 'everyone should learn to code' is wrong, wrong,
wrong. It's like telling a kid to learn CAD and use a makerbot instead of
providing them with a Lego set. Coding is great when you want to make a
procedural _something_ generator. If you want to make something specific, then
coding often imposes an annoying and unnecessary layer of abstraction. For
example, you can write music and/or perform sound synthesis in a superbly
powerful language called CSound, but only a tiny number of academic masochists
bother to do so. Commercial DSP engineers write in C or assembler, commercial
sound designers use Max or Reaktor, much as most electronic engineers use
SPICE rather than describe their circuits in code.

In short, keep up the good work!

~~~
lifeisstillgood
>> The oft-repeated cry that 'everyone should learn to code' is wrong, wrong,
wrong.

It is right, right, right. We don't tell our children, it's ok to stop at
crayons and comic books.

Yes, DSPs and CAD are much more productive at their niches than coding in a
"normal" language. I find Chrome more productive than "telnet 80" - but
knowledge of coding helps me structure my excel spreadsheets more usefully
than those produced by intelligent people who cannot code.

Code literacy is important not just because there are faster or easier ways to
express ones ideas in a given domain. Literacy is not about using one language
- it's about learning to structure thoughts and express them in the best way
possible - something learnt cover thousands of years and code literacy is the
same - we epxress our thoughts better if we are literate.

Having said that, I cannot wait to try this out,

~~~
rektide
No one would call crayons and comic books bullshit, because they are artistic
mediums where the expression can stand by itself, has the intrinsic value of
being expressive.

Yet in CS there are very smart people such as Alan Kay and the Constructivist
types such as former-OLPC now-Sugar, all screaming about how we're learning
brain-dead languages on machines doing their worst to make it impossible to
become useful and literate without a ten year breaking in period until we
become journeymen codesmiths. These machines & languages are not trying to
help all of us become fluent about what it is that is running: they are there
so that those who already know the language and the program can continue
advancing it, until it's shippable, at which time it will execute: when we say
learn to program, more often than not we mean learn to fit yourself in to that
production cycle.

I'm not trying to argue one way or another about the learning to code merits,
but it's important not to think of coding as this completed worthwhile thing
_in the way_ we _do it!_ OP is an example of systems research to allow us to
create agency in systems: that is programming, coding of behaviors, and one
who gets good at it has gained a coding literacy. Ditto for spreadsheet
wizards!

My point is that we are free to build entirely new forms of literacy both akin
and unlike the programming languages we have now, and that the one's we have
now are arbitrary. And, judging purely from the size of assumed knowledge
passable programmers rely on, I'd contend, as do others, we'd do a lot better
at making a literate society with different languages and forms, more tailored
to introspection and mirroring their behaviors than towards producing a
running application artifact: if we want people to learn systems, make the
systems be more about being learnable and meddle-able than about being
execution engines. It's our agency we need to see reflected, and IFTTT and OP
are great examples of coding where seeing our agency at work at the end is far
more of a direct path: it is radically different than how programming today
works, in a good, different and fundamentally very important way.

In leaving, I'll point to a perspective on these better machines: these are
machines that build agency by way of using APIs of other machines. I'm
convinced that machine to machine interface is the key to making programming
not suck, not a drain for this planet, for those who would be composers of
code. rektide's gentle suggestion- machine to machine systems interfacing is
the way to beget human/machine interface.

~~~
lifeisstillgood
Thank you.

In the spirit of understanding, can I try to summarise your points as I get
them

1\. Programming as it is currently practised is still very focused on
implementation / procedural.

2\. Anyone who uses a DSP / other system to perform a task they want (agency)
_is_ doing some form of programming, and that is valid, as it is a step on the
path of literacy.

3\. The path of literacy might not be towards the current endpoint of
neckbeards and Assembler and 10 years to be good.

4\. There is likely to be new languages, new systems that will enable people
to do programming / achieve agency at different points and with different
degrees of abstraction

5\. Its Lisp isn't it :-)

I agree with you. Which tells me I may have misunderstood!

But I am perfectly happy to agree that _some form of code literacy_ is a good
thing, and that the language of the future has not yet been invented I am also
quite prepared to believe.

Aw, hell, it _is_ Lisp :-)

Edit: I like the idea of OLPC etc being about how to meddle. I suspect that
the machine you are referencing might be the one in Nand2Tetris - an
interesting project that takes undergrads from Nand gates through to compilers
and languages on a virtual machine interpreting the CPU built from the
interpreted Nands.

~~~
anigbrowl
_2\. Anyone who uses a DSP / other system to perform a task they want (agency)
is doing some form of programming, and that is valid, as it is a step on the
path of literacy._

Well, it's the path to literacy in signal processing (or whatever domain it
happens to be). I learned to code >25 years ago and I still sort of like doing
small things in assembler or throwing something together quickly in C. But I
really don't like dealing with collections of big lengthy text files for
projects of any magnitude. It's like reading a description of a painting that
begins in the top left corner.

Put another way, _text_ is the problem. Why, I ask myself, don't IDEs
automatically generate dynamic flowcharts? Why do I have to spend so much time
_typing_ to create structure, when I want to focus on algorithms? Have a look
at this software, which is aimed at roboticists but has other applications; it
has modules that let you drop into Ruby as needed (and there's another version
that allows entry of C or assembler) but doesn't require you to work that way
if you don't need it. this is what an IDE ought to look like.

~~~
lifeisstillgood
I think I meant DSL.

But, a graph of a novel is not a novel.

We are story telling chimps who have created a tool in our image - a tool to
tell stories to other chimps, but based on rigid symbols and calculations.

Or maybe it's just late

------
tectonic
This has been my side project for the last few months. I'm very interested in
your feedback!

~~~
Stwerner
This is awesome! We were just talking about building a desktop IFTTT. Can't
wait to play with this tonight and learn to make agents.

~~~
tectonic
Please let me know if you have questions. I'm planning to make a screencast
tutorial on how to make and link Agents.

------
jfim
Interesting project. Were you aware there's also an unrelated project called
Hugin[1]?

[1] <http://en.wikipedia.org/wiki/Hugin_(software)>

~~~
tectonic
Nope, I wasn't. :) Do you think I should change the name?

~~~
skeletonjelly
Ah just saw the reason for the name on github. I thought you chose it out of
the blue. What about a line from Anchorman: "Great Odin's Raven!" or something
to that effect :P

~~~
icebraining
@Metapony: you're hellbanned, for quite a while now.

~~~
icebraining
Don't ask me, I just see that your posts are [dead] (so, only someone who has
'showdead' in their profile, like me, can see them), and you don't seem like a
troll or spammer, so I decided to tell you.

------
jmathai
Wow, that's one hell of a side project. Looks really awesome.

Do you have plans on having a hosted version people can use?

I love the idea of hosted open source projects which allow you to easily
export your data if you decide later to run it yourself.

~~~
tectonic
Thanks! I'd like to make a version that's trivial to deploy to Heroku, or
perhaps a pre-build micro EC2 image? I'm not sure I want to host more than a
demo version because it could be used for scraping. The core idea is that this
is something that you run yourself because you care about who has your data.

~~~
coopdog
A Heroku or EC2 build would be amazing

Hosted would also be good though, I think there are a whole class of people
who don't care all that much who has access to their data so long as they
could self host it (or have someone else host it for them) if the service ever
stopped running.

~~~
cbhl
I don't understand why those people would be using Flickr, Facebook and
Twitter instead of, say, OpenPhoto, Diaspora, and StatusNet.

~~~
beambot
Because those services are 3-10 orders of magnitude larger than a startup
running open-IFTTT as a service? Because they already have critical business
operations interacting with these large(r) services?

(Just two reasons I could imagine. But I get your point... especially with my
recent sadness over Google Reader.)

------
mindcrime
As a side note, there is another "pipes like" project out there, called DERI
Pipes[1]. Development appears to have ended some time back, but I've created a
fork[2] of the Github project and am planning to do some work on this.

Anybody else who's interested in this sort of thing, give me a shout.

We also have a demo server setup where you can play with the thing, at:
<http://demo2.fogbeam.org:8080/pipes/>

[1]: <http://pipes.deri.org>

[2]: <https://github.com/mindcrime/semanticwebpipes>

------
urza
Oh nice! Can I use it (create custom agents) if I dont know any ruby?

Also I will need to intall ruby on my debian personal server.. which I'd
rather avoid (I already have there python, php, perl..), but having custom
IFTTT+pipes is just too tempting :)

------
eclipxe
This is nicely done - not just the idea and code, but the documentation and
examples. Very nice, I look forward to using this, thank you for sharing it!

~~~
tectonic
Thank you for your kind words. I think good documentation is very important. I
will also be adding a screencast that explains how to use the UI.

~~~
Serow225
I agree - great looking docs!

------
frenchman_in_ny
Great project, though the name is confusingly similar to an existing open
source tool [1] for photographers.

[1] <http://hugin.sourceforge.net/>

------
pitchups
This is great! Since it allows combining and parsing RSS and XML feeds - do
you think it could be used to build a personalized RSS / Google Reader
replacement? Just a thought.

~~~
tectonic
Well, that's very hot right now. :)

Yes, actually, I use it to scrape a couple of RSS feeds myself since I
couldn't be bothered to use a reader when I had this.

~~~
pitchups
Thanks, that is what I was thinking of doing. Maybe even set up a list of the
RSS feeds on a simple text / HTML page; then use Huginn to pull the entire
list from the URL, combine, sort, remove duplicates and output the HTML.
Anytime you wanted to change the list of feeds, you can just edit the HTML
page.

------
arunbahl
This is really fantastic. I've been working on a new UI for something like
this and I'd love to compare notes once I dig in a little bit. Great stuff!

~~~
tectonic
Send me an email :)

------
ichirotherager
Yahoo pipes is the bomb. I wish they would have maintained it. Thanks for
building this, I can't wait to put it through it's paces!!

------
ericcholis
Without diving into the code (which I plan to do over coffee tomorrow), what
would the User-Agent string of the spider be?

~~~
tectonic
At the moment, it's the curl default I believe.

------
sebul
Really cool! Did you consider using phantomjs thru capybara in order to use
webkit to interact with javascript websites?

~~~
tectonic
I looked into letting you write your Agents in sandboxed JS, but didn't end up
going very far down that path. If you'd like to add a PhantomJS Agent, that'd
be slick.

~~~
sebul
I'll have a look ;-)

------
fasteddie31003
Reminds me of my side-project that I just decided to work full time on,
Process Smith <https://process-smith.com>

------
frabcus
Lovely! Is there a ready-hosted version, so I don't have to install it?

------
mat3001
Does it also run with postgres?

~~~
tectonic
Great question. I'm not sure. If not, it should be very simple to get it
there. Please try it and send a pull request. :)

~~~
mat3001
Will do. P.S. Looks really nice. Good job.

------
smogzer
Should have been coded in python :( . Whenever i see a project that i think is
cool and then see that it has been coded in languages other than js, c++ or
python i consider it just for my usage, and not for my contributions as
developer.

~~~
outside1234
hai Google employee!

