6

Enabling Tasker to be able to write itself (thoughts for implementing it relatively fast)

In short, with the bigger end in mind it's for implementing machine learning (artificial intelligence); but here I am talking about making Tasker to write itself and what it enables to do.

Should accentuate that the main idea here is not directly about adding machine learning capabilities to Tasker. The main idea of this one is more about enabling Tasker to be able to do some of those basic things that are needed for users to build own AIs if they want to. What I talk about in this post will enable bunch of things. And it also provides fundamental groundwork for Tasker to be able to implementing machine learning.

Furthermore, the devices we carry will be getting more powerful and its sensors will be used for getting data. And users overall will become more programming-savvy. For this new world we are entering into more and more will be requiring it. When Tasker in the past was about bringing programming to Android users. It will soon to be about bringing AI programming to Android users.

Tasker is really great: It's mostly built out from what the creator of Tasker recognized as fundamental aspects of programming, to allow user to do most amount of things with least amount of elements (these least amount of elements seemingly are somewhat more fundamental aspects that enable writing a program). It has been great at bringing methods of programming down to some of the fundamentals aspects that allow to build useful sequences of behavior outside of our brain as extension of us

But there are some capabilities to do certain fundamental things missing from Tasker, - some fundamental aspects that making unnecessarily complicated for us to doing certain basic things with Tasker (one of such aspects is what I am referring to right here in this post). What is most limiting bottle-neck, seems that Tasker currently cannot add actions that can write new variable names, profiles and tasks. If this will be added, it will open door for many new very powerful things that could be created with Tasker. 

For instance, you could use Javascript to somewhat write a variable name from some conditions-dependent variable value. Yet what gives power is about not complicating what is not inherently complicated. If simple idea is complicated to implement, then it likely involves clutterous data such as to have a somewhat work-around solution, and so it involves "noise" that diffuses the "signal". It makes for us harder to see signals from the noise if much is built up around complex workarounds, and we will be able to do less, being less capable to building things, to engineering usefulness into our lives. 

Now we may ask that how hard could it be to implement this "making Tasker to be able to program itself? It may sound like it is a big thing, but it is not at all. Not at all if reasoning up from fundamentals as to what it takes to make it happen. At the below I will attempt to show you why implementing this one is not dramatically different or more time-consuming than any other important thing that could be built into the system.

So lets say, what if somebody would say something like this one:

"Implementing an idea like this wouldn't just be a quick add. This would most certainly require that Tasker be built from the ground up."

Here is what my reply would be: 

Definitely would NOT be about writing Tasker from scratch, if really envisioning what the fundamental parts of this would be: 

To implement this main idea to Tasker, it's about making a copy of triggers that are used in Tasker (such as with list of those triggers in front of your eyes, when tapping on a button - as tapping on any of these triggers - then whatever Action is associated with the button it sets this Action to the implementation sequence as what is shown in Task view. Once there is a copy of those trigger buttons, it is about adding (connector between each counterpart), which is the code (replicated to each counterpart) that is hitting the "tap on the screen trigger" as what's currently used in Tasker. So the "tap x on the screen" is run by Tasker itself, from within the Task view as one of the scheduled Actions in the sequence (from where, Tasker triggers this whatever you have specified as this specific Action to be added to specific place). 

In other words, if one taps some button on the screen, it triggers a chain of sequences to follow. It is to run this from the task by directly triggering the code, rather than from the input from the screen that triggers the same code that launches the sequences. It involves no major changes in Tasker (it's simply copying list of Tasker actions, then writing code for one Action - which when tapped it will put it in the Task view with saved specifications that would normally be specified with a handful of tapping on the screen, - mostly it's copying and modifying, such as when code is written for one Action it is same for others, and similarities will be connected automatically by multiplication/replication, as same connects to same, for why replicating list of Actions). 

When it runs, as any Action (as can be seen within Task view), the Action triggers the code parts that are normally triggered when manually tapping on buttons on the screen. It is overall about copying the list of actions in Tasker and then making each to refer to its own actual triggers that would normally be implemented when user taps on the screeen. When thinking of making Tasker to be able to write itself, it is only complex when we think of doing it in these very terms as "making Tasker to be able to write itself", and not going further to giving much thought as I just wrote out here, as to what the basic elements are that making it to work to enable Tasker to write itself. 

To say it more metaphorically, it's about taking general idea from the big picture and dividing it down to atoms and bits, as in order to do what at the macro-scale may appear undoable. Breaking things down to basic elements and operating out from those basic/fundamental elements is what enables us to build more clutter-free systems (faster-performing systems). Systems that work faster. It will allow us to achieve certain outcomes quicker. To build software with less time (enables to build more, and thus also, potentially better due having more time left for improving it farther with attention to details, bringing up your rate of improvement/innovation to come up with increasingly more useful systems). It is about increasing speed. Whether to making money faster, to develop your company faster, to be able to buy more expensive tech you want. All because of speeding up your rate of ability to making useful things. It's about getting what you want faster as what matters. 

Now furthermore, one side of the matter is how time consuming it is to implement into Tasker, another is how much impact this time investment will bring. I have somewhat covered that part that it will not take that much more time to implement than any other thing that could be implemented. Yet there's this opportunity cost. Why is this worth doing more than any other thing that could be done instead? Well, if you think about it, it's one of those more impactful things for Tasker to have. And it will not take much time compared to what it enables Tasker for. It wouldn't be some quick add like some minor thing like changing colors of theme a little or whatnot. And I wonder if anything worth doing would be quick add. I think not, or would be definitely very rare.

Yet with this one here, what I am talking about is apparently one of those rare things, which is both very powerful and close to the "quick add" territory as well. If done by one person, it should be doable within weeks. Definitely should take no more than one month. And maybe could be doable within week or two. 

It would increase Tasker's capability to do things dramatically (for Tasker's advanced users, and would extremely likely be attracting more users in general, as how Tasker can now do so and so amazing things).

Overall, artificial intelligence has started this wave that revolutionizing how we live. There is very big opportunity with AI. It's about getting Tasker into this game. Android devices allow sensors, which is the key. It's insanely unwise to let this opportunity by. Tasker has great potential. Google might want to buy it at some point, etc. Implementing this simple idea is what enables to get Tasker into this game (see above). 

(Not everything what I wrote might had come out as I see it but the benefits of implementing such into Tasker should come across if you try to envision the benefits.)

So it is about enabling us to let Tasker (through our specifications) to make own profiles/tasks/actions. Such as when certain conditions meet and to setting things up extremely fast by ways of repetitively differentiating, as well as able to reverse what it did; mathematically setting up more complex things from simpler elements, - multiplying with structured differentiating. 

This is one of those very high-leverage actions that Joao could do for Tasker, to really bring Tasker up for next levels. 

Only thing that can prevent from making it happen is when not enough people recognizing this great potential it brings. The size of reward does matter here. Some easy things are hard to implement too, if there's complete lack of benefit/reward at the end. So overall the intensity of rewards we see to come out from certain behavioral combination sequences are what making it possible for us to want to go for making something happen. It's how much time/effort we are willing to put into it. 

It is definitely one of those easier things to do as what this idea is about, to getting it implemented as I expressed above. It happens to be one of those rare cases where it is rather on the "adding something quickly" side and yet still having this great potential to enable Tasker to becoming able to do much more than now doable. 

I made this post to Tasker's subreddit too (here). Not sure if enough people will recognize this unique value that this can bring us. I think that if not many see it but Joao if you do see it, adding this will enable Tasker to become much more powerful tool. It's about rate of speed (which has a lot to do with: how much faster in relation to how much simpler, that is, as long as we don't improve our internal rate of computing speed of our individual brains, - so one way to make progress is also if it's about doing even with less repetitive input from us, by setting up systems more wisely).

 

2 replies

J

I made a new post at Tasker subreddit because the initial post was unclear. The new post is under the link above, but I deleted it because there were communication errors we had with some folks and the post-related comments somewhat "crashed" the value of this new post that I made that was with less confusing title/content. I value being nice to others, and some comments there telling bad things about the idea and about me are somewhat based on one other person's error of why I made another post which triggered me to making some errors (like confusing username, - basically did the same what the other guy did towards me, - quite some drama). And then another guy came and was probably looking the first comment, assuming it's true, and took it further on my own error of similar kind, generalizing up concluding that I'm a bad person and what not). Maybe it comes from us sometimes being in hurry and don't want to digest all the relevant context more thoughtfully. Anyway, the original post under the link below is here at the end of this comment; however, this initial post is reasonably misleading in a sense that the comments for this post were based on what I wrote initially in the post which was different, broader, included many remote tangents, and overall more confusing (edited but the comments refer more to the initial post):

https://www.reddit.com/r/tasker/comments/f79oaw/action_to_create_any_action_including/

A
As long as Ratchet_Guy won't be removed as mod from Tasker subreddit I am looking for ways to disconnecting myself from Joaos products. 
 
I am long-time Tasker user and will not trust a person who associates himself with idiot and douchebag like Ratchet_Guy. If Ratchet_Guy recognizes he made a mistake and is not usually as bad as I experienced he is, he should publicly apologize there for making untrue false claims. He should had read what I sent him before judging. 
 
There shall be no place for someone as mod of Takser subreddit who exaggeratedly over generalizes to straw man and ad hominem claims, as particularly in this case, where judging were made on basis of what the person is maybe going to say without actually reading what the person is saying, or/and judging on basis of what somebody else said who was just as ignorant on judging the matter. 
 
I have found myself sometimes guilty of carelessly evaluating somebody's expressions, but when somebody addresses error then I do not put a blind eye on it. I greatly honor truth, which means I do not try to hold up to whatever I said if it was erroneous. 
 
What is unsettling about the matter is that I shared what I see to be greatly valuable idea and came to share this idea with utmost friendly attitude of good will. But some hostile individuals were needing to paint things into dark and gloomy. Unfortunately for the worse, one of the mods is either inflicted with or part of the problem. 
 
What I sense from those unfriendly individuals is they are not open-minded to new ideas. It could be because they don't want to change themselves, what they believe, the way they live. In fact one of the reddit users commenting was actually writing on its own pinned profile post, quite literally, that he hates change.
 
It is likely to come with the ignoring and avoiding of anything that could expand or change own mental world to becoming different, wider, better. And from such a way, their tactics to avoiding change is feeding oneself to being ignorant, blaming and convicting with vague generalizations to trying to paint other people's expressions towards negativity/worthlessness. 
 
I tried being super nice to them by expecting that there was some reasonable error and they are actually nice guys, trying to empathize with possible reasons why they said as they said. But there was nothing. They were just so insanely ignorant. They didn't even care to read and were just responding with blame and hostility.
 
I attempted to disconnecting my idea from those idiotic morons (but I was unable to edit out the links here). After I deleted my expressions from there, they went further to really saying whatever they wanted to say, potentially leading others who may be reading their comments to thinking it is what was said as extremely dumb and worthless. It is quite worrying that somebody as Ratchet_Guy is mod at Tasker subreddit, that such irrational things can come from somebody as positioned to be voice of authority, being "mod" related to Tasker community.
 
It would be fair if he would be set away from being a mod due his ill-hearted irrational conduct. It should be fair to say that we are better off if not making business with assholes. If the person has demonstrated to be hateful in his responses to what he doesn't understand, he should not be allowed to be presented as Tasker mod at the very least. 
 
After all, one of the main reasons to do technical matters is to decrease assholeness in our lives. Great technical abilities in general won't come from being ignorant, and ignorant communication with others is showing one or two about ignorant communication with ones own self, such as lack of reasoning towards why something is worth doing in the first place. 
 
Overall, what goes around comes around. Had to write this comment here. Cannot allow ugliness in the world to get its way. This is my response here against injustice. 

Hi. I'm sorry if anyone was rude but the thread you linked to is deleted so I don't understand what the problem was about. Can you please enlighten me what Ratchet_Guy did wrong in your opinion?

U

To Joao: I don't know what it was from but totally false statements were said that were very negative (totally erronious evaluation of information/events). Part of the problem could perhaps be when people try to save time by not reading longer text and simply believe what friend said it was. The problem is if friend is being incorrect and believing what is said just because of coming from friend. Overall, a lot of bad judgement was driven by extremely ignorant attitude/response to what was actually said. Should not generalize up to saying that they are like this all the time. But it pretty much was what happened. If the guy is habitually like this most or some of the time, then this is an issue and this mod I think should be retired to normal user state. Otherwise this mod should admit error. 

In my experience that particular person is usually very helpful and polite! I find it strange that he would not be... Maybe it was a misunderstanding?

Also, although I really appreciate all your ideas, it's really really hard to go through this huge amount of text to try and figure out exactly what you have in mind...

Maybe you can make a more readable version with topics instead of long sentences so it's easier to get your ideas across and for other people to understand them?

Thanks in advance!

A

The crux of the matter is that currently Tasker cannot add actions to write new variable names, add and delete profiles, tasks, and actions. We have to tap on the buttons to set things up manually. Tasker could do it on its own on basis of sensory data. The rest of the post here is about why the above is valuable to have, with some short guidance to implementing. 

Actually if you think in terms of what the core of Tasker is about, it is that some of the Java is translated to GUI. I see the future of programming is going to be somewhat next version of Tasker and overall I consider it to be next version of evolution with object-oriented programming. If you look back, first computers were just typing and then graphical UI came. It is going to repeat over to programming.

Overall, I see how Tasker could be vastly better and I see it is more effective if I am going to do it myself to actualize what I see to being those improvements. I have idea to write universal UI that can deal with code in 3 dimensional environment. Tasker was big part of the inspiration for this one.

This is most likely my final idea here though. Unless Ratchet_Guy explains that there was some other guy who sent something, or some other good reason that I could empathize with to make us settle. 

The worst thing I actually said there was this: Life is not hard get over it. And to whom I said it to, this other guy in return responded to me that I am asshole. It comes out, the guy works as a cleaner and having autism. Saying the latter, only because he said bad things about me, and I am saying this one here in return (the same guy who hates change as mentioned above).

The bottom line what I meant regarding the above, to which he responded to that I am asshole, was that if you only target what is easy, life will be hard. And if you go for hard and difficult problems to solve and difficult things to build, life gets easier. Rather than coming with sayings, "Oh it cannot be done because of whatever. Oh it is too hard because of whatever. Oh it would not work anyway because of whatever. Oh don't even try because of whatever. Oh people don't want it because of whatever." Or, any justification in order to not doing it, implying there is some obstacle that making it hard to do.

The guy with autism said there was diatribe while there was actually not. And his description with tl;dr and what I "probably said" hints that he just picked out close to the quote in the post and ignored most of it. Overall what he said is extremely incorrect of what was expressed.

Ratchet_Guy made some serious errors judging the matter. He called me stupid banana-head without actually reading what I sent, which I consider to be act of being stupid banana-head right there. He didn't read, which I know to be true because I didn't send any rant whatsoever. We didn't have any back-and-forth communication whatsoever. And I did not sent PMs from different user names, I only sent from one other user name because I deleted my account as brodie7838 said there. All what I sent was what I sent to EllaTheCat and brodie7838. If anyone having to take pills and has mental issues then it is one of the users there confusing my confidence with arrogance (confidence in what I see will happen in the future with computing), and if the clueless part is mentioned as it was, then the person is clueless about why I am confident and what I know.

While the first person having autism, the other person is old woman who is having parkinson disease (with both as shown from comments and posts). And both conditions, autism and parkinson are mental disorders. So Ratchet_Guy coming to tell me about taking some damn pills is really about trying to make up some shit to throw me at. I don't take any pills other than D3 vitamin to boost my health because I take good care of my health to avoid getting sick in the first place. I am healthy individual who exercises, is not old, is eating healthy most of the time, and can go deep with problem solving both individually and with people in order to building things that will work without bugs. But eventually I do get very pissed if there are some jerk assholes needing to throw dirt on others who trying to bring some value to the table, as I came with good spirits and goodwill to share great opportunity for Tasker to become much better, to enhancing our ways of doing. I only writing here because of coming here and looking there underneath the link. There is only bullshit when I am looking there. It's kind of shit, when remembering this one when bringing focus to any Joao app.

Overall, Ratchet_Guy should recognize error and see how to do better next time to avoid such error and apologize. Otherwise, I will not forget. This is how you create enemies and potentially decreasing life on the run. If he is great guy he should recognize error. There is this natural way we respond with revenge to extreme injustice. I otherwise would not care, but I came here to share important and valuable idea and I expected it to be friendly environment, and what I got in return were some jerks coming and pissing on it.

Ok, so, just to summarize, the general idea is to add Tasker actions that allow you to add new profiles and tasks to Tasker?

A

Yes. To add Tasker action, which can add any new Tasker action, both within profile (such as within Application, Event, State), and task (such as within Select Action Category), as well as to add Tasker action which can delete any action, task and profile that has been set up (so that any that can be added can also be deleted). 

One of the main bottlenecks to building more complex systems within Tasker is that there is very bad feedback provided of what is going on. The logs and Run log is linear and not helpful if more things are happening (even as far as linear text-based logs go, it's very slow and difficult to figure out anything if there is some bug). There has to be proper map that can show history of what has been going on (could imagine those animations of maps that show cause and effect chains of how different things moving on Earth).

Thanks for the clarification! :)