I've discovered something which pushes all the right buttons for me. Almost literally.
IFTT - If this then that, is a service which enables various internet services and objects in the internet of things (such as automated plant monitors, lightswitches, internet enabled lights, thermostats, various functions of android and iphone smartphones etc. etc.)
Essentially it allows you to take certain things as input and then do something - sending information to an output. So, for example, using the time input and the android volume output I can make sure that just before my phone's alarm goes off the volume of my phoen is turned right up.
However it has its limitations in what it can do itself.
It can only take one input and only give one output for example.
Because of this it also can't do logic.
So for example I can say:
IF it's the time of day where it should be dark out side THEN turn my smart light on
But I couldn't say
IF it's the time of day where it should be dark out side AND motion sensors in my house detect motion THEN turn my smart light on.
Or could I? My first foray into logic programming was trying to solve the conundrum of cross-posting on three different types of social media. There are plenty of methods of allowing a cross-post but none that I could find which would cross-post regardless of where the original post was made. I could get something which posted on twitter when I posted on Facebook or something which posted on Facebook when I posted on twitter but using both together would end up in a loop.
With IFTTT on the surface of it you have the same problem. However you don't just have to use ONE IFTTT recipe and the power of IFTTT is in that and in using the features of the services it links to.
So rather than having a script that says "When I post on this post to that" I have a script that says "When I post to this - send to gmail and make use of it's ability to take labelled email (Anything+gmailadress.gmail.com enabling you to better filter your mail)
Then gmail will examine the mail, check for certain text and adds tags (So, for instance if something comes in on twitter+mygmailadress.gmail.com it will add tags fo 'Googleplus' and 'facebook' unless it finds the words"originally posted on ....".)
IFTTT then has scripts looking out for any new tags and posts to the appropriate services and puts "originally posted on" whatever service it was originally posted on.
Similarly I can't take more than one RSS feed as an input for IFTT but with the use of Yahoo Pipes I can filter, combine and perform logical operations on multiple RSS feeds combining them into one and providing only the information I need. IFTTT doesn't have a Yahoo pipes channel - it doesn't need one. It has an RSS feed channel.
The power of the RSS channel on IFTTT is that it enables integrations of multiple things that don't have their own official IFTTT channel.
Including your own server. If you have CRON capability and can write an RSS parser or an emailer then you can send output that can be input into IFTTT.
More interestingly the RSS parsing allows for input. There's no outputs on the RSS channels in IFTTT but there is a blogger channel which allows IFTTT to make posts.
Only one Blogger account is needed because the resultant feed can be filtered and manipulated via Yahoo pipes or a server side script.
With creative use of the services it takes inputs from and gives outputs to the world can be your oyster. So normal users can get the simple functionality that IFTTT provides but with the use of multiple IFTTT accounts, a bit of web hosting, CRON, Gmail and pipes those of us with the mind of a hacker can make the world our Oyster!