[jira] [Commented] (OFBIZ-9567) [FB] Package org.apache.ofbiz.base.metrics
[ https://issues.apache.org/jira/browse/OFBIZ-9567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16121428#comment-16121428 ] Jacques Le Roux commented on OFBIZ-9567: Thanks Dennis, I see your point. I think we already had a discussion and a consensus on that because we follow *[Java|http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-137265.html#331]* [Coding Conventions|https://cwiki.apache.org/confluence/display/OFBIZ/Coding+Conventions]. So I'll not start a new discussion about that and will simply keep the parentheses. What makes things blurry to me is that APL's interpretation works like function composition. So in APL you would have to write it {{(10 * 2) + 50 * (1 - 0.5)}}. Else; w/o 1st parentheses, you would get 270. And believe me after 20 years of such habit it's hard to read it another way, it's also very logical (function composition) :D > [FB] Package org.apache.ofbiz.base.metrics > -- > > Key: OFBIZ-9567 > URL: https://issues.apache.org/jira/browse/OFBIZ-9567 > Project: OFBiz > Issue Type: Sub-task > Components: base >Affects Versions: Trunk >Reporter: Dennis Balkir >Assignee: Jacques Le Roux >Priority: Minor > Attachments: OFBIZ-9567_org.apache.ofbiz.base.metrics_bugfixes.patch > > > - MetricsFactory.java:236, ICAST_IDIV_CAST_TO_DOUBLE > ICAST: Integral division result cast to double or float in > org.apache.ofbiz.base.metrics.MetricsFactory$MetricsImpl.recordServiceRate(int, > long) > This code casts the result of an integral division (e.g., int or long > division) operation to double or float. Doing division on integers truncates > the result to the integer value closest to zero. The fact that the result was > cast to double suggests that this precision should have been retained. What > was probably meant was to cast one or both of the operands to double before > performing the division. Here is an example: > int x = 2; > int y = 5; > // Wrong: yields result 0.0 > double value1 = x / y; > // Right: yields result 0.4 > double value2 = x / (double) y; -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (OFBIZ-9567) [FB] Package org.apache.ofbiz.base.metrics
[ https://issues.apache.org/jira/browse/OFBIZ-9567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16121361#comment-16121361 ] Dennis Balkir commented on OFBIZ-9567: -- Hi Jacques, I removed the parenthesis because I learned at Uni that they're logically not necessary. You can of course reimplement them, if you find it easier to read, I didn't want to change your style of programming, that's just the way I learned it and the way I'm doing it everytime :D > [FB] Package org.apache.ofbiz.base.metrics > -- > > Key: OFBIZ-9567 > URL: https://issues.apache.org/jira/browse/OFBIZ-9567 > Project: OFBiz > Issue Type: Sub-task > Components: base >Affects Versions: Trunk >Reporter: Dennis Balkir >Assignee: Jacques Le Roux >Priority: Minor > Attachments: OFBIZ-9567_org.apache.ofbiz.base.metrics_bugfixes.patch > > > - MetricsFactory.java:236, ICAST_IDIV_CAST_TO_DOUBLE > ICAST: Integral division result cast to double or float in > org.apache.ofbiz.base.metrics.MetricsFactory$MetricsImpl.recordServiceRate(int, > long) > This code casts the result of an integral division (e.g., int or long > division) operation to double or float. Doing division on integers truncates > the result to the integer value closest to zero. The fact that the result was > cast to double suggests that this precision should have been retained. What > was probably meant was to cast one or both of the operands to double before > performing the division. Here is an example: > int x = 2; > int y = 5; > // Wrong: yields result 0.0 > double value1 = x / y; > // Right: yields result 0.4 > double value2 = x / (double) y; -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (OFBIZ-9567) [FB] Package org.apache.ofbiz.base.metrics
[ https://issues.apache.org/jira/browse/OFBIZ-9567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16121311#comment-16121311 ] Jacques Le Roux commented on OFBIZ-9567: Hi Dennis, Why did you decide to remove parenthesis in {{serviceRate = (rate * smoothing) + (serviceRate * (1.0 - smoothing));}} ? I find it easier to read like that. Disclaimer, I have been mostly using the [APL language|https://en.wikipedia.org/wiki/APL_(programming_language)] during my 1st 20 years of preogramming. In APL there is no notion of precedence, all expressions are evaluated from right to left (somehow like in Polish notation). So I have always find uneasy to read complicated algebric expressions in other languages ;) > [FB] Package org.apache.ofbiz.base.metrics > -- > > Key: OFBIZ-9567 > URL: https://issues.apache.org/jira/browse/OFBIZ-9567 > Project: OFBiz > Issue Type: Sub-task > Components: base >Affects Versions: Trunk >Reporter: Dennis Balkir >Assignee: Jacques Le Roux >Priority: Minor > Attachments: OFBIZ-9567_org.apache.ofbiz.base.metrics_bugfixes.patch > > > - MetricsFactory.java:236, ICAST_IDIV_CAST_TO_DOUBLE > ICAST: Integral division result cast to double or float in > org.apache.ofbiz.base.metrics.MetricsFactory$MetricsImpl.recordServiceRate(int, > long) > This code casts the result of an integral division (e.g., int or long > division) operation to double or float. Doing division on integers truncates > the result to the integer value closest to zero. The fact that the result was > cast to double suggests that this precision should have been retained. What > was probably meant was to cast one or both of the operands to double before > performing the division. Here is an example: > int x = 2; > int y = 5; > // Wrong: yields result 0.0 > double value1 = x / y; > // Right: yields result 0.4 > double value2 = x / (double) y; -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (OFBIZ-9567) [FB] Package org.apache.ofbiz.base.metrics
[ https://issues.apache.org/jira/browse/OFBIZ-9567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16121221#comment-16121221 ] Jacques Le Roux commented on OFBIZ-9567: Ouch, this is the kind of stuff that you easily not see when reviewing, thanks FB :) > [FB] Package org.apache.ofbiz.base.metrics > -- > > Key: OFBIZ-9567 > URL: https://issues.apache.org/jira/browse/OFBIZ-9567 > Project: OFBiz > Issue Type: Sub-task > Components: base >Affects Versions: Trunk >Reporter: Dennis Balkir >Assignee: Jacques Le Roux >Priority: Minor > Attachments: OFBIZ-9567_org.apache.ofbiz.base.metrics_bugfixes.patch > > > - MetricsFactory.java:236, ICAST_IDIV_CAST_TO_DOUBLE > ICAST: Integral division result cast to double or float in > org.apache.ofbiz.base.metrics.MetricsFactory$MetricsImpl.recordServiceRate(int, > long) > This code casts the result of an integral division (e.g., int or long > division) operation to double or float. Doing division on integers truncates > the result to the integer value closest to zero. The fact that the result was > cast to double suggests that this precision should have been retained. What > was probably meant was to cast one or both of the operands to double before > performing the division. Here is an example: > int x = 2; > int y = 5; > // Wrong: yields result 0.0 > double value1 = x / y; > // Right: yields result 0.4 > double value2 = x / (double) y; -- This message was sent by Atlassian JIRA (v6.4.14#64029)