It is currently May 25th, 2020, 2:33 pm

[Suggestion] Enhancements to Include

Report bugs with the Rainmeter application and suggest features.
User avatar
Yincognito
Posts: 1611
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: [Suggestion] Enhancements to Include

Post by Yincognito »

Brian wrote:
April 23rd, 2020, 9:01 am
I don't think any of the developers are against some sort of "dynamically created objects" or "repeating section creation" per se, I just think we haven't seen any idea that an average user can follow easily. We have added some fairly complicated items over the years such as measures: FileView, ActionTimer, and Lua scripts - and Container/Contained meters. A lot of users, even very experienced users, avoid these features alot of the time.
The Container option will, in my view, overcome this "adoption" hurdle eventually, simply because there is no other alternative that does what this does.
Brian wrote:
April 23rd, 2020, 9:01 am
Incorporating any "procedural" non-ini formatted syntax is just going to confuse the bulk of our users.
As it is now, there's probably a similar amount of "confusion" caused by the big number of measures / meters needed in some situations, for the bulk of Rainmeter users. Hence what I said before about the difficult task of balancing things between different type of approaches to this, for the devs ... :confused:
User avatar
Yincognito
Posts: 1611
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: [Suggestion] Enhancements to Include

Post by Yincognito »

Another possible alternative, looking like the Loop measure: a new type of measure and meter, called, say, "Iterator" (could be "List", "Array", "Wrapper" or any other name, since "Container" or "Group" is taken). The measure would behave somewhat similarly to how a "parent" measure like WebParser or NowPlaying is behaving, and the meter similarly to how a Container is, with both of them being more or less "fake" / invisible and used just for creating the actual [ComputeSomethingN] / [DisplaySomethingN] measures and meters, respectively:

Code: Select all

[MeasureIterator]
Measure=Iterator
IterationStart=1
IterationStep=1
IterationCount=3
IterationTarget=SomeCounterVariable

[ComputeSomething]
Iterator=[MeasureIterator]
Measure=Calc
Formula=(#SomeCounterVariable#)

Code: Select all

[MeterIterator]
Meter=Iterator
X=(#IteratorLeft#)
IterationStart=1
IterationStep=1
IterationCount=3
IterationTarget=SomeCounterVariable

[DisplaySomething]
Iterator=MeterIterator
Meter=String
X=((#SomeCounterVariable#-0.5)*#ThisMeterWidth#)
StringAlign=Center
Text="Meter #SomeCounterVariable#"
DynamicVariables=1
Sorry for beating a dead horse here, but you know ... I'm never out of ideas of how to make the impossible possible. :lol: Feel free to dismiss these ideas if they lack or break something.
element
Posts: 25
Joined: April 24th, 2019, 1:29 am

Re: [Suggestion] Enhancements to Include

Post by element »

Yincognito wrote:
April 23rd, 2020, 7:13 am
Sure, it doesn't guarantee that it will be accepted
It won't be and I don't waste my time on futile efforts. For those who want to play with a mod of Rainmeter that creates measures/meters programmatically, it's here:

http://permetix.com/rainmeter/index.php?page=multi
Yincognito wrote:
April 23rd, 2020, 9:13 am
Since we're at it, I'll add my (possibly, less "intrusive") bit to the repetition "issue"
For my needs, I settled on an HTML-type <> notation. It's not used elsewhere (AFAIK), so it stands out visually as a macro, not Rainmeter code.

Code: Select all

[mBand<COPY>]
Meter=Bar
MeasureName=msBand<COPY>
X=(<COPY>*#off#+3)
Copies=14
BTW, I'm leaving this forum. Looks like the Rainmeter project is now in the typical ego-driven "Not Invented Here" stage.

https://en.wikipedia.org/wiki/Not_invented_here

Ideas not coming from the in-crowd (no matter how usable / oft requested) are all rejected, which makes discussing them a waste of time. For power users / developer types, who need a certain feature, it's more productive to just implement the feature and release it elsewhere (in case someone else needs it).
User avatar
jsmorley
Developer
Posts: 20629
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: [Suggestion] Enhancements to Include

Post by jsmorley »

I really don't think "ego" plays any role in this project. Mostly we just have very few resources able to spend significant time in the actual code of the application, and so we look at things with a few criteria in mind.

Is the requested change something that would have broad appeal among either skin authors, skin users, or both? We are just not going to focus on some "nice to have" that is really, really wanted by one or two people, and of no interest to others.

Can this change be reasonably done in a way that protects our all-important commitment to backwards compatibility? This is always non-negotiable.

What is the impact of the change on resource usage? CPU, memory? What are the possible impacts on performance?

Does the change change in some fundamental way that Rainmeter "works" from a user-facing standpoint? We are not interesting in making Rainmeter any more complicated to use unless the benefit outweighs that cost. We are not going to look favorably on "kludges", "bags on the side of the machine", or anything that just doesn't feel like "Rainmeter". Rainmeter is not perfect by any means, but it is pretty good at what it does.

To be honest, it's the first criteria that almost always causes us to park what might be a perfectly reasonable idea. So often it is a change that makes something just a hair less "repetitive" for one or two skin authors, and while there is no reason to oppose that in principle, it's just not where we are going to focus our very limited time.

So I regret you are not satisfied with how ideas are received. I readily confess that when we see an idea that just doesn't interest us, we tend to "ignore" it, rather than get into a protracted back-and-forth about the relative merits of the idea, which pretty much always ends in someone being compared to Hitler.

I would point out that anyone who wants to is welcome to code any change to the source code they want, and submit a pull-request on Github. There is no certainty that doing that will ensure your change gets in, as ALL of the criteria above will still apply, but it is just in the nature of things that if we have some help in actually coding the change, it's going to make it easier to evaluate.
User avatar
Yincognito
Posts: 1611
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: [Suggestion] Enhancements to Include

Post by Yincognito »

Ok, I'll try to walk on middle ground here and just ask, both element and jsmorley: isn't any way that such things can be implemented as a plugin? If it is, then problem solved: element will write it, and any user who wants to use it will use it, no strings attached. If it has a large following, maybe include it in the list of "built-in" Rainmeter plugins. Everybody goes home happy. ;-)

So, out of curiosity: could this behavior be implemented in a plugin, or is this changing how Rainmeter handles things too much and a Rainmeter fork is absolutely needed? :???:
User avatar
jsmorley
Developer
Posts: 20629
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: [Suggestion] Enhancements to Include

Post by jsmorley »

Yincognito wrote:
April 29th, 2020, 2:03 pm
Ok, I'll try to walk on middle ground here and just ask, both element and jsmorley: isn't any way that such things can be implemented as a plugin? If it is, then problem solved: element will write it, and any user who wants to use it will use it, no strings attached. If it has a large following, maybe include it in the list of "built-in" Rainmeter plugins. Everybody goes home happy. ;-)

So, out of curiosity: could this behavior be implemented in a plugin, or is this changing how Rainmeter handles things too much and a Rainmeter fork is absolutely needed? :???:
I doubt that a fundamental change to how code is written in Rainmeter is going to be a good fit for a plugin. The point of a plugin is that Rainmeter tells the plugin to go out and do something, and then the plugin returns some result to Rainmeter that you can use. I don't see a logical way that a plugin can be written to alter how Rainmeter itself works. There may be some "think outside the box" approach that is not obvious to me.

Having said that, 3rd-party plugins are entirely up to the author. We have no role in them, and anyone is welcome to write any plugin they want and distribute it.
User avatar
Yincognito
Posts: 1611
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: [Suggestion] Enhancements to Include

Post by Yincognito »

jsmorley wrote:
April 29th, 2020, 2:10 pm
I doubt that a fundamental change to how code is written in Rainmeter is going to be a good fit for a plugin. The point of a plugin is that Rainmeter tells the plugin to go out and do something, and then the plugin returns some result to Rainmeter that you can use. I don't see a logical way that a plugin can be written to alter how Rainmeter itself works.

Having said that, 3rd-party plugins are entirely up to the author. We have no role in them, and anyone is welcome to write any plugin they want and distribute it.
Well, not to alter, but to somehow write a single time those repeating measures / meters in the skin file and then refresh / update it (or something along those lines) and afterwards continue as usual. On that "refresh", the respective measures / meters will have their normal Rainmeter format (but they will have been already "duplicated"). The plugin could return the number of measures / meters created as number and string, for example (or the number and the string of the error code, if any).

I'm just trying to help here with a different approach to a matter bound to produce different opinions on it.
User avatar
jsmorley
Developer
Posts: 20629
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: [Suggestion] Enhancements to Include

Post by jsmorley »

Yincognito wrote:
April 29th, 2020, 2:32 pm
Well, not to alter, but to somehow write a single time those repeating measures / meters in the skin file and then refresh / update it (or something along those lines) and afterwards continue as usual. On that "refresh", the respective measures / meters will have their normal Rainmeter format (but they will have been already "duplicated"). The plugin could return the number of measures / meters created as number and string, for example (or the number and the string of the error code, if any).

I'm just trying to help here with a different approach to a matter bound to produce different opinions on it.
I think this whole idea of a "template" approach is a better fit for some fully external, 3rd-party utility that takes a skin with template features coded into it, and outputs a new skin that is "resolved" to be a normal Rainmeter skin with normal behavior. I doubt that I would ever use such a thing, as I predict that the trouble to use it will be more than the problem it purports to solve, but to each his own. I'm all for someone who wants to write such a thing.
User avatar
Yincognito
Posts: 1611
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: [Suggestion] Enhancements to Include

Post by Yincognito »

jsmorley wrote:
April 29th, 2020, 2:39 pm
I think this whole idea of a "template" approach is a better fit for some fully external, 3rd-party utility that takes a skin with template features coded into it, and outputs a new skin that is "resolved" to be a normal Rainmeter skin with normal behavior. I doubt that I would ever use such a thing, as I predict that the trouble to use it will be more than the problem it purports to solve, but to each his own. I'm all for someone who wants to write such a thing.
Actually, it may be even a better fit for a "visual designer skin" (i.e. that creates other skins, visually). I know, this has been tried before (and as far as I know, it failed) ... but it wasn't tried by me. I just lack a "motivation sparkle" here, LOL, besides the usual "it's impossible, it won't work, I won't use it" stuff that normally drives me to make such attempts. I've been thinking about this the other day, though.
User avatar
DanDaBear
Posts: 39
Joined: February 23rd, 2018, 3:12 am

Re: [Suggestion] Enhancements to Include

Post by DanDaBear »

Well . . . :confused:

It didn't quite work with that other widget maker, probably more because of a strange UI and lack of help and tutorials.
(and a lack of updates) O.O