fix(module:tree-view): fix innerTrackBy function #7118

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

default innerTrackBy function value being assigned on each OnChanges call
during scroll further and back of VirtualTree, nodes is broken

Reproduce - Codesandbox

Issue Number: #7118
What is the new behavior?

innerTrackBy function value being assigned only in case when @Input trackBy changing
VirtualTree scroll recreates nodes as it should be

Fixed VirtualTree - CodeSandbox

Does this PR introduce a breaking change?
[ ] Yes
[x] No

Other information

@hsuanxyz thanks 🙏
any plans to release?


Add Min and Max timepicker options

A feature for adding the standard min and max (and ng-min and ng-max) properties to the rendered input element on the timepicker would be great.

+1

Is this rep alive yet? I don't see any activities last time here and important features (such as 12/24-h mode and min/max validation) are not implemented.

+1


FB_URL hardcoded - can it be configurable for better testability?

PROBLEM
In Botly.js, the URL to graph.facebook.com is hard-coded.
const FB_URL = 'https://graph.facebook.com/v2.6/';
const FB_MESSENGER_URL = `${FB_URL}/me/messages`;

Apps (such as mine) using this module are not able to do functional automation testing using a facebook simulator because the hardcoded URLs always force all interactions towards graph.facebook.com.
PROPOSAL
Without breaking compatibility, can we optionally override this URL using process.env?
Something like this:
const FB_URL = process.env.FB_URL || 'https://graph.facebook.com/v2.6/';

This way, apps that want to plug in a simulator for tests can do so without breaking other apps that are already using this module?
I have the change ready and working. I can raise a PR for this.

Thank you @miki2826 for the super-quick response, and the fix!
Cheers!


To-Do app #1531

Pull Request Type
What kind of change does this PR introduce?
[ ✔] Solved an issue/task
[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:
What is the current behavior?
 To-Do application using React
Issue Number: [#1531]
What is the new behavior?

Other information

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out our forkcommitmerge.io website repository. The repository contain real issues that you can help to resolve or create some of your own if you see any bugs or want to add new features to the site, etc. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


Darkmode icon issue fixed

Fixed issue no #370

@HK853 please correct it for homepage too.

done

once check it whether it is looking fine or not

@HK853 If any help needed contact me

Resolve the conflict and create a new PR


Nuxt Generator with -f openapi3 options is not working with 500 error code.

API Platform version(s) affected: x.y.z

Description

Nuxt Generator with -f openapi3 options is not working with 500 error code.
The error message is:
Cannot read properties of null (reading 'hydra:member')

at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async setup (C:\Users\LazyGeniusMan\git\nuxt-openapi\components\book\BookList.js:35:18)

How to reproduce

Follow step on https://api-platform.com/docs/create-client/nuxt/ but using -f openapi3 option and add docs.json to url.
Possible Solution

Additional Context

I also tried different OpenAPI 3 specs from Swagger's Pet Store 3, it still gave me the same error. I also tried Quasar generator with OpenAPI 3 specs and it's working fine.
A bit out of topic of this bug, I have some questions:

How to overwrite the generated files ? I can't find a way to do that.
Does some kind of "Headless" generator is possible/on the scope of this project so that UI components/pages is not generated?

I can reproduce the same issue on my system.
I've used this command:
pnpm create @api-platform/client http://sw-partly.ddev.site/api/docs.jsonopenapi . -f openapi3 --generator nuxt
The output of the command was:
Code for the "VehicleManufacturer" resource type has been generated!
Code for the "VehiclePartCondition" resource type has been generated!
Code for the "VehiclePart" resource type has been generated!
Code for the "Vehicle" resource type has been generated!

It recognizes all available API-Platform Endpoints, but when I try to access the generated page, i get this error:
Cannot read properties of null (reading 'hydra:member')
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async setup (./components/vehiclemanufacturer/VehicleManufacturerList.js:49:18)


[WIP] Get NullAway building with NullAway

Pull Request Test Coverage Report for Build #724

0 of 0   changed or added relevant lines in 0 files are covered.
261 unchanged lines in 21 files lost coverage.
Overall coverage decreased (-0.4%) to 89.113%

Files with Coverage Reduction
New Missed Lines
%

../nullaway/src/main/java/com/uber/nullaway/handlers/AssertionHandler.java
1
96.3%

../nullaway/src/main/java/com/uber/nullaway/handlers/contract/ContractNullnessStoreInitializer.java
1
95.65%

../nullaway/src/main/java/com/uber/nullaway/handlers/GrpcHandler.java
1
98.21%

../nullaway/src/main/java/com/uber/nullaway/handlers/RestrictiveAnnotationHandler.java
1
96.67%

../nullaway/src/main/java/com/uber/nullaway/NullabilityUtil.java
1
93.27%

../nullaway/src/main/java/com/uber/nullaway/handlers/MethodNameUtil.java
2
95.45%

../nullaway/src/main/java/com/uber/nullaway/dataflow/DataFlow.java
4
95.4%

../nullaway/src/main/java/com/uber/nullaway/handlers/AbstractFieldContractHandler.java
4
90.16%

../nullaway/src/main/java/com/uber/nullaway/AbstractConfig.java
5
92.42%

../nullaway/src/main/java/com/uber/nullaway/handlers/contract/ContractHandler.java
5
91.94%

Totals

Change from base Build #721:
-0.4%

Covered Lines:
4232

Relevant Lines:
4749

💛  - Coveralls


Show error while parallel attribute is true in ForEachChildElementPipe

We were reported that error message is not reported even though there is an error in one of the threads that are created thanks to the " parallel = 'true' " attribute in ForEachChildElementPipe.
In this PR, we throw an exception in case an error occurs during parallel execution in order to be able to report it back.
This is the issue reported in zaakbrug repo: https://github.com/wearefrank/zaakbrug/issues/144

I've added more tests (#5954), I'll try and see how we can implement this.

Superseded by #5961


Enumerate templates from local registry

Can you provide an overload of CertificateTemplates.EnumTemplates() that reads from the local registry rather than making a call to AD?

This will be available in v4.3


bug(custom-protocol): history push state error on windows

Describe the bug
Unable to use history API on windows.
Steps To Reproduce

Launch any wry example on Windows.
Open Console.
Execute code below:

history.pushState({}, "Test", "index.html");

Expected behavior
Expect no error
Screenshots

Platform and Versions (please complete the following information):
OS: Windows
Rustc: 1.51.0
Would you assign yourself to resolve this bug?

[ ] Yes
[x] No

Looks like it's possible to register a custom protocol with version 1.0774
https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2.addwebresourcerequestedfilter?view=webview2-dotnet-1.0.774.44#Microsoft_Web_WebView2_Core_CoreWebView2_AddWebResourceRequestedFilter_System_String_Microsoft_Web_WebView2_Core_CoreWebView2WebResourceContext_

Looks like it's possible to register a custom protocol with version 1.0774
https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2.addwebresourcerequestedfilter?view=webview2-dotnet-1.0.774.44#Microsoft_Web_WebView2_Core_CoreWebView2_AddWebResourceRequestedFilter_System_String_Microsoft_Web_WebView2_Core_CoreWebView2WebResourceContext_

Do you think we should open a PR to webview2 crate to add the binding?

Ah sorry I should link the issue instead: https://github.com/MicrosoftEdge/WebView2Feedback/issues/73
But again with the new stable version 1.0744, it should include this fix.
I'll test it on winrt first.


| displays as X

Hello!
Some characters seem to display as just an X/missing character. This might not be an ASBplayer problem, so sorry if it isn't, but it'd be nice if they displayed correctly since it looks weird.

This is a font issue. When I release asbplayer 1.0.0 a font menu will be available where you can select a font that supports your target language properly.

1.0.1 has a working font selector menu. For now, nothing more is actionable.


fix: issue with reused select cqns

We've observed a problem when a cqn is executed and reused as subselect.
Most probably this is due to our manipulation SELECT.expand='root' which is then also considered in the subsequent subselect and produces an incorrect subselect:
SELECT json_insert('{}', '$."name"', name, '$."title"', title) as _json_
FROM (
    SELECT a.name,
      b.title
    FROM sap_capire_bookshop_Books as b
      inner JOIN sap_capire_bookshop_Authors as a ON a.ID = b.author_ID
    WHERE b.ID in (
        SELECT json_insert('{}', '$."ID"', ID) as _json_  # this is wrong
        FROM (
            SELECT ID
            FROM sap_capire_bookshop_Books
          )
      )
    ORDER BY b.ID ASC
    LIMIT 1
  )

@BobdenOs I think you need to approve yourself :)


Add support for marshaling uint64 in client.

I spotted this when testing out Telegraf. I don't see any reason it shouldn't get handled here.

Seems sane.
On Wednesday, June 17, 2015, Todd Persen<EMAIL_ADDRESS>wrote:

I spotted this when testing out Telegraf. I don't see any reason it
shouldn't get handled here.
You can view, comment on, or merge this pull request online at:
https://github.com/influxdb/influxdb/pull/3033
Commit Summary

Add support for marshaling uint64 in client.

File Changes

M tsdb/points.go
https://github.com/influxdb/influxdb/pull/3033/files#diff-0 (4)

Patch Links:

https://github.com/influxdb/influxdb/pull/3033.patch
https://github.com/influxdb/influxdb/pull/3033.diff

—
Reply to this email directly or view it on GitHub
https://github.com/influxdb/influxdb/pull/3033.


Web - Security - Inconsistent Use of Enter Key in Two-Factor Authentication Section

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to Settings > Security > Two-Factor Authentication.
Hover over the "Copy" button and press Enter key. Note that it does not work initially.
Click on the "Copy" button once, then hover over it again and press Enter key. Observe that it works properly on the second attempt.

Expected Result:
When hovering over the "Copy" button and pressing Enter key, the copied items should be copied properly on the first attempt.
Actual Result:
Initially, the Enter key does not work when hovering over the "Copy" button. However, after clicking on the "Copy" button once and hovering over it again, the Enter key works properly on the second attempt.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: v1.3.54-11
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/1e4a43b7-bf2d-4647-8bdc-95ddca457ad1
https://github.com/Expensify/App/assets/115492554/4d978a7a-8e83-42e4-a3eb-786e498636ec
Expensify/Expensify Issue URL:
Issue reported by: @TewodrosGirmaA
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1691001716912119
View all open jobs on GitHub

I agree with @ExGraviton, I do not think this is a bug. Nothing should happen when you press enter on the 2FA codes page, unless you have focused one of the buttons. Copying the codes on enter could be confusing, what if the user instead wanted to download them? If a user really wants to use their keyboard on this page, they could just tab to the correct button.

I also agree with @exgraviton and @joh42, you should click or take an action to focus the selector before keyboard shortcuts  will interact with it. Closing as expected behaviour.


Stop rendering ALL cloaked views

It turned out that ember-cloakning uncloaks all views first and only then cloaks it back :expressionless:
Demo http://jsbin.com/ACikukuCA/35/edit (check out console)
Is it by design?
We can change this line to this.cloak() but it's half-measure. Some kind of progressive rendering should be implemented which would check what's on screen after each view uncloaked.

@eviltrout I believe we can close this: https://github.com/eviltrout/ember-cloaking/pull/15


NIFI-1856 ExecuteStreamCommand Needs to Consume Standard Error

Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@mattyb149 any chance you'll have time to look through this ?  It looks like a great contrib.  Enough shell/bashness that I'm not entirely confident in validating it.

Reviewing

@brosander are you still planning to review this at some stage? Happy to try to help if needed.
Cheers!

Any updates on the PR?  we see the same described activity with ExecuteStreamCommand, and this would be a nice addition in the next release.

@trixpan or @danoyoung if you can help review it and provide feedback that would be great. This processor is always a tough one to test well.

GitHub is reporting that the original repo link is broken, so I'm going to close. Feel free to resubmit.


Switch for Shutter

Hi, is it possible for a shutter to create a switch or a special Devise in the Config?
My radio 433mhz shutter has three commands. Up, Down, and Stop ?

Consider this a +1. Also would be nice if Siri recognized the verb open or close for this type of object. (I.e. garage door, shade, window etc)

An idea would be a switch with slider as with the fan. If I select 10% then start the shutter. The switch should automatically switch off after a programmed time and send the stop command.
Or a normal switch which automatically switches off and sends the stop command when switching off.

@SeanJohn888 How do you propose you then reverse the shutter?
@webpablo "Close" on window decreases it by 5% rather than setting it to 0% so it wouldn't work well there. Also with shades annoyingly it says "The Shades is open" rather than "The Shades are open" ha

@SeanJohn888 I don't see how the shades accessory is going to work well with IR. We could use the garage door opener which allows for fully open or fully closed. From what you've send it sounds like you need to be able to repeat the command to continue opening/closing the shades rather than just one command for open and one command for close?

How about this:
You specify a "percentageChangePerSend". If you were to set the value to 10 then when you set the blinds to 50% it will work out that it's currently at 20% and send the "up" code three times in order to get to 50%.  If you say "Open the blinds" and it's they're currently at zero then it will send the code up code 10 times.

Hey thanks for your answer.
Yes it is a command to open and close one. In addition, I have a button on the remote to stop. Fully open and close goes through a switch. If I want to stop the shutter at 50% I must use an additional switch.
I thought you could measure the times the shutter needs to reach certain positions to select these with a slider. Example switch: IR Start to 50% (time 20 sec) after 20 sec a stop command is sent automatically. I hope you can understand what I mean, unfortunately my English is not so good. Do you speak German?
(You specify a "percentageChangePerSend". If you were to set the value to 10 then when you set the blinds to 50% it will work out that it's currently at 20% and send the "up" code three times in order to get to 50%. If you say "Open the blinds" and it's they're currently at zero then it will send the code up code 10 times.)
This is also a very good idea!

Check out 1.3.0 and let me know how it goes!

Thanks for the quick help! Unfortunately, it still does not work properly. I have just tested.
The stop command is missing. The window cover does not stop. When the open or close command is sent, it goes up or down to the end. Is it possible that after each stage a stop command is sent after a certain time?
Exampel:
"name":"Blind",
"type":"window-covering",
"percentageChangePerSend":10,
"interval": 0.5,
"data":{
"open":"2600500000012...",
-> 2 Sec later a Stop command
"close":"2600500000012..."
-> 2 Sec later a Stop command
If that would go would be really great .-)

Thanks!
Luke
On 18 Apr 2017, 7:45 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

Thanks for the quick help! Unfortunately, it still does not work properly. I have just tested.
The stop command is missing. The window cover does not stop. When the open or close command is sent, it goes up or down to the end. Is it possible that after each stage a stop command is sent after a certain time?
Exampel:
"name":"Blind",
"type":"window-covering",
"percentageChangePerSend":10,
"interval": 0.5,
"data":{
"open":"2600500000012 (tel:2600500000012)...",
-> 2 Sec later a Stop command
"close":"2600500000012 (tel:2600500000012)..."
-> 2 Sec later a Stop command
If that would go would be really great .-)
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-294752082), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rffM0TP8nE5vgxI2pk6TnCWzwo5yks5rxIY0gaJpZM4M_Lo8).

I'm not sure what they mean exactly.
I hope I got it right:
It is possible. You brew some time to adapt it?

Are you able to press a button and they just open by a small amount?
Thanks!
Luke
On 18 Apr 2017, 8:08 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

I'm not sure what they mean exactly.
I hope I got it right:
It is possible. You brew some time to adapt it?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-294761919), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rSQVS0CqO1yjj6pF7iT1zK3Vl5OLks5rxIusgaJpZM4M_Lo8).

No, that's impossible. I have three buttons on the original remote control. One to open one to stop and one to close. When one of the buttons is pressed, the window cover moves up or down until the stop button is pressed.
The example of me above is also not correct, since the window cover stops there after each stage.
I am not at all sure whether it is possible to convert the service in stages.
Do you understand where my problem is? Do you have an idea how to fix it or best to integrate it into homekit?

Ok got it - I'll have a think
Thanks!
Luke
On 18 Apr 2017, 8:41 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

No, that's impossible. I have three buttons on the original remote control. One to open one to stop and one to close. When one of the buttons is pressed, the window cover moves up or down until the stop button is pressed.
The example of me above is also not correct, since the window cover stops there after each stage.
I am not at all sure whether it is possible to convert the service in stages.
Do you understand where my problem is? Do you have an idea how to fix it or best to integrate it into homekit?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-294775799), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rZPlytufeb-IbKUJ7Mbb8DkL70z3ks5rxJNNgaJpZM4M_Lo8).

I would like to thank again for the help. I hope we find another possibility.

Have now long thought.
I believe with the different stages for the shutter does not work. Even if a stop command is sent afterwards, different times result during the high and the downtime. Or do you have an idea?
Can you add more often a device (shutter) in the several switches can be added. These switches should turn off automatically?
Each shutter would then be a device with three switches.
That would be my view for the best way to use the shutter without stage.
Thank You!

Hey I've just released 1.3.3 which among other things includes some new functionality that's relevant to this:

The ability to create a "switch" accessory that automatically sends an "off" hex code after a specified amount of time.
The ability to add auto-off commands to the "window-covering" accessory

You now have three options:

use two "switch" accessories one for open and one for close
use a "window-covering" accessory and set the "percentageChangePerSend" to 100
use a "window-covering" accessory and set different "onDurationOpen", "onDurationClose" settings and a "off" hex. Then work out a % for "percentageChangePerSend"

The last one will give you the best result.

👏🏼👏🏼👏🏼👏🏼
I shall load up tonight and try it out.

That sounds great. I will test it today after work and tell you if it works.
Thank You !!!

Hello Iprhodes, I have tested the last cover in the Config (blind3) now. Unfortunately it does not work properly.
Here my experiences:
1.) If I set the slider from 0 to 50, stop the shutter after the programmed time (onDurationOpen) is however in reality only at 10. The command always goes only to 10 then will stop automatically.

I think here you need an (onDurationOpen) Time for each stage.
the programming must recognize that the (onDurationOpen) Time is not always valid when changing from 0 to 50 or 50 to 70.
This is also true for driving in mode.

Example: I have a shutter that takes 45 sec to 100%. These are for each stage of 10% - 100%
4.5sec. If I change from 0% to 10% it takes 4.5 sec and it stops. If I change from 0% to 50% the shutter 22.5 sec drive without stop. The stops automatically but after 4.5 sec.
What I have observed, the slider rounds up or down. When I exit the shutter and is not in the area of the round up. Closes the shutter immediately.
I think here should be a separation between driving out and driving in.
Extend = round up
Retraction = round down
I hope you understand what I mean and hope the whole thing is not too difficult.
I would be very happy if you have a possibility have still to improve
Until now already a big thank you!

What I had intended when going from 0 to 50% is for the following
Open for 4.5s (onDurationOpen)
Stop
Wait 0.5s (interval)
Repeat the above 5 times
Is this not what you're seeing?
Thanks!
Luke
On 19 Apr 2017, 10:44 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

Hello Iprhodes, I have tested the last cover in the Config (blind3) now. Unfortunately it does not work properly.
Here my experiences:
1.) If I set the slider from 0 to 50, stop the shutter after the programmed time (onDurationOpen) is however in reality only at 10. The command always goes only to 10 then will stop automatically.
I think here you need an (onDurationOpen) Time for each stage.
the programming must recognize that the (onDurationOpen) Time is not always valid when changing from 0 to 50 or 50 to 70.
This is also true for driving in mode.
Example: I have a shutter that takes 45 sec to 100%. These are for each stage of 10% - 100%
4.5sec. If I change from 0% to 10% it takes 4.5 sec and it stops. If I change from 0% to 50% the shutter 22.5 sec drive without stop. The stops automatically but after 4.5 sec.
What I have observed, the slider rounds up or down. When I exit the shutter and is not in the area of the round up. Closes the shutter immediately.
I think here should be a separation between driving out and driving in.
Extend = round up
Retraction = round down
I hope you understand what I mean and hope the whole thing is not too difficult.
I would be very happy if you have a possibility have still to improve
Until now already a big thank you!
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-295256621), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rX40VhgnDCz6mrVPwtcnNa8mx5xiks5rxgG0gaJpZM4M_Lo8).

...it already rounds up when opening and rounds down when closing.
If I'm at 20% and move to 22% then it will round up to 30%
If I'm at 30% and move to 28% then it will round down to 20%

The round up and round down works. I have tested it again.
The driving in and driving out is therefore only in single steps? I have thought that synonymous multiple stages are skipped?

I have now tested again. The up and downrounding does not work properly. If I jump to 35% at driving out then it jumps back to 30%.
Two commands are sent, first the driving out and then the driving in command. The shutter then goes back in. Normally it should be
Extend

Yes in single steps - that way it can also support people who have blinds that pressing open only opens it a little bit and then stops by itself right after they’ve pressed the button.
I’m working on an option to better cater for you and handle setting a new % while an existing one is in process.
On 19 Apr 2017, 11:20 PM +1000, wrote:

The driving in and driving out is therefore only in single steps? I have thought that synonymous multiple stages are skipped?

Thanks a lot! I look forward to the next version! I think the most 433mhz radio receiver for shutter or blends work like mine. If it works later, a lot of people can use this.

@SeanJohn888 I've just published 1.3.4, I think this is what you're after. It also now handles changing the % when it's already moving.

Super, I'm curious. Still I can not see the new version at npm -.-

Sorry I had forgotten to publish to npm - it's there now.

Not bad that you forgot it, in Germany was night and I slept .-)
I have now made a test. It works very well but still not perfect.
I'm still not sure what exactly does not work.
The slider now counted the percent when driving in and out which is very good.
I believe the window cover gets pressed by the slider from 0 - 30% more times the command driving out.
Example:
I push to 30 and the window cover makes short jumps (start - start - start) then it moves fluid motion out.
When I select 0 or 100, the window cover does not always reach the end position. It remains a piece before.
Do you have an idea why that is so?

The reason for it going in short jumps initially is because the accessory receives multiple values one after another unless you move the slider quickly and then stops so that it can recalculate based on the new position. I’ll add a delay so that it’s less likely to do this.
If it doesn’t reach then end then it’s most likely because of your calculations - try increasing the onDurationOpen slightly?
On 20 Apr 2017, 3:55 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

Not bad that you forgot it, in Germany was night and I slept .-)
I have now made a test. It works very well but still not perfect.
I'm still not sure what exactly does not work.
The slider now counted the percent when driving in and out which is very good.
I believe the window cover gets pressed by the slider from 0 - 30% more times the command driving out.
Example:
I push to 30 and the window cover makes short jumps (start - start - start) then it moves fluid motion out.
When I select 0 or 100, the window cover does not always reach the end position. It remains a piece before.
Do you have an idea why that is so?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

Give 1.3.5 a go - that fixes the start/stop start/stop

It works very well now !!! You are really great!!!
Just one thing. Is it possible that no stop is calculated when selecting position 0 and 100? The window cover has an automatic end stop for both positions?
That would be very good if the calculation for the position between 10 and 90 for some reason is no longer true.

I could but I’d rather get to the bottom of why the calculation isn’t correct - does the calculation in the logs look correct?
On 20 Apr 2017, 5:03 PM +1000, wrote:

That would be very good if the calculation for the position between 10 and 90 for some reason is no longer true.

The calculation of you is correct and also works.
I have set the interval time larger than the onDurationOpen and closeTime. This is the security that nobody sends a command before the action is completed.
In the homekit app before the end of the interval time can be made a new value without running it.
Then the calculation is no longer correct.
The slider does not have the correct position.
To put the window cover back in start or end position would be very good.
There is no other way to fix the position between slider and window cover.
The windowcover recognizes when it is at the start or end is automatic.
What do you think?

When you change the value in the Home app while is is opening or closing then it stops, waits a second and then moves from the last calculated % to the new one
So if it's at 0% and we set it to 30% it will go:
1%, 2%, 3%...18%, 19% 20%, 21%
then if we set it to 10% it will calculate that we need to move from 21% to 10%

Also I've just published 1.3.6 which allows you to optionally remove the following:
percentageChangePerSend
onDurationOpen
onDurationClose
and add these instead:
totalDurationOpen
totalDurationClose

Awesome !!! Now everything works perfectly! Many Thanks!!!
If you did not live on the other end of the earth. Then I would now go with you a drink on my bill .-)
Super cool plugin now! This function can not have any other pluging.
I will tell it in a German Homekit forum that even more people have something of it!
I will test it for the next days.
I tell you if everything still works.
Thanks for your great help and your quick reply!

Really? Great! Can you send me your config before and after please so I can figure out what the issue is with onDurationOpen
Thanks!
Luke
On 20 Apr 2017, 6:19 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

Awesome !!! Now everything works perfectly! Many Thanks!!!
If you did not live on the other end of the earth. Then I would now go with you a drink on my bill .-)
Super cool plugin now! This function can not have any other pluging.
I will tell it in a German Homekit forum that even more people have something of it!
I will test it for the next days.
I tell you if everything still works.
Thanks for your great help and your quick reply!
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-295628314), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rV1p8MPCATa7yMfPEsySi4cspOHsks5rxxUOgaJpZM4M_Lo8).

Sure, of course.
"name":"Shutter Test",
"type":"window-covering",
"percentageChangePerSend":10,
"interval": 5.5,
"disableAutomaticOff": false,
"onDurationOpen": 4.5,
"onDurationClose": 4.5,
"hold": true,
"data":{
"open":
"close":
"off":""
"name":"Shutter Test",
"type":"window-covering",
"percentageChangePerSend":10,
"interval": 5.5,
"disableAutomaticOff": false,
"totalDurationOpen": 45,
"totalDurationClose": 45,
"hold": true,
"data":{
"open":
"close“:
"off":

And error already found?
What I remember it will be two additional slider in homekit now. These were not there at the beginning of our experiments.
These also have no function:

[Broadlink RM] setTargetVerticalTiltAngle:
[Broadlink RM] setTargetHorizontalTiltAngle:

Can you remove these at the next update or are needed?

I have something else that I noticed.
If the Pi or homebridge makes a restart, the current status is lost.
If the window cover is on position 50 and a restart is made, the window cover can no longer be controlled (driving in) via homekit.
Homekit thinks that the window cover is in position 0.
I think it would be good 0 and 100 without calculation are in this case the window cover in the start position to put.
Or I build an additional switch which brings the window cover to the start position to fix that?
What do you think?

It's not a fix for the new way of configuring though - the old way needs fixing too.
On 20 Apr 2017, 7:22 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

I have something else that I noticed.
If the Pi or homebridge makes a restart, the current status is lost.
If the window cover is on position 50 and a restart is made, the window cover can no longer be controlled (driving in) via homekit.
Homekit thinks that the window cover is in position 0.
I think it would be good 0 and 100 without calculation are in this case the window cover in the start position to put.
Or I build an additional switch which brings the window cover to the start position to fix that?
What do you think?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-295648326), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rQZ8ALusm3gdn_avuFHlSvhf6o-Qks5rxyPOgaJpZM4M_Lo8).

I'm not looking to add persistent storage at the time sorry!
On 20 Apr 2017, 7:22 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

I have something else that I noticed.
If the Pi or homebridge makes a restart, the current status is lost.
If the window cover is on position 50 and a restart is made, the window cover can no longer be controlled (driving in) via homekit.
Homekit thinks that the window cover is in position 0.
I think it would be good 0 and 100 without calculation are in this case the window cover in the start position to put.
Or I build an additional switch which brings the window cover to the start position to fix that?
What do you think?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-295648326), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rQZ8ALusm3gdn_avuFHlSvhf6o-Qks5rxyPOgaJpZM4M_Lo8).

I don't see any issue with it staying there?
On 20 Apr 2017, 7:00 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

And error already found?
What I remember it will be two additional slider in homekit now. These were not there at the beginning of our experiments.
These also have no function:
[Broadlink RM] setTargetVerticalTiltAngle:
[Broadlink RM] setTargetHorizontalTiltAngle:
Can you remove these at the next update or are needed?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-295642134), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rZuJzaMw4lTtip8UaHFv5k5_O1oLks5rxx7IgaJpZM4M_Lo8).

I think the problem with the reboot and the status will all have.
When using the original remote control is the problem synonymous.
The slider should simply send at 0 and at 100 the start or stop command no matter where the position of the window cover is.
Without calculation and limitation

Yeah but only if the home bridge gets restarted - that's not a priority at the moment sorry.
On 20 Apr 2017, 11:09 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

I think the problem with the reboot and the status will all have.
When using the original remote control is the problem synonymous.
The slider should simply send at 0 and at 100 the start or stop command no matter where the position of the window cover is.
Without calculation and limitation
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub (https://github.com/lprhodes/homebridge-broadlink-rm/issues/49#issuecomment-295732264), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAJ8rTA8T0hNlOTahc1M8y46vhXopNK2ks5rx1kLgaJpZM4M_Lo8).

Why it did not go with the old config I can not say. I can test it again tomorrow if you want?

Now I've understood you. No problem. Maybe we can fix the problem later

FYI "disableAutomaticOff" and "interval" do not get used when "hold" is true

I just fixed an issue with it showing as "Opening" or "Closing" when complete as it wasn't setting the final "current position" correctly so the target position and current position were different.
Also your config can just look like this (though I thought you said it opened slower than it closes?):

        {
          "name":"Shutter Test",
          "type":"window-covering",
          "totalDurationOpen": 45,
          "totalDurationClose": 45,
          "data":{
            "open":"2600500000012...",
            "close":"2600500000012...",
            "off":"2600500000012..."
          }
        }

If I adjust the config as here in your example, then the automatic stop and the percentage setting no longer works.
The window cover goes directly to 100% when I set the slider to 10%.
Is it correct that way?
Driving in and out is the same speed and same duration.

The error (showing as "opening" or "closing" when complete as it was not setting the final "current position" correctly so the target position and current position were different.) Is also noticeable to me. Just forgot to tell you. Sorry -.-

If I adjust the config as here in your example, then the automatic stop and the percentage setting no longer works.

I just pushed out 1.3.9 which fixes the issue (I had forgotten to change the default of "hold" to true instead of false).
1.3.9 also no longer forces rounding to the nearest 10.

The reason I removed it allows to simplify the configuration as it was pretty confusing.

FYI 1.4.0 changes "off" to "stop" in the config and 1.4.1 gets rid of tilt, obstruction and hold characteristics.

The reason I removed it was to simplify the configuration as it was pretty confusing.

That's a good idea.
I hope only that still everything works further .-)
I will test the new version in the next 2 hours with me and tell you if everything works out.
Now it's still a bit early and the neighbors will get angry -.-

I have tested it now. I could not wait.
I have the config adjusted again and the lines removed.
The window cover does not stop. It goes directly to 100.
Here the Logfile:
Apr 21 05:35:49 raspberrypi homebridge[3044]: [4/21/2017, 5:35:49 AM] [Broadlink RM] Markise Balkon setTargetPosition: currently 8%, moving to 0%
Apr 21 05:35:49 raspberrypi homebridge[3044]: [4/21/2017, 5:35:49 AM] [Broadlink RM] Markise Balkon setTargetPosition: 3.6s (45 / 100 * 8) until auto-stop<PHONE_NUMBER>380
Apr 21 05:35:49 raspberrypi homebridge[3044]: [4/21/2017, 5:35:49 AM] [Broadlink RM] Hex sent to Broadlink RM device (192.XXX.X.XX; XX:XX:XX:XX:XX:XX)

Can you please confirm your config.

The log shows it moving from 8% to 0%

"name":"Markise Balkon",
"type":"window-covering",
"totalDurationOpen": 45,
"totalDurationClose": 45,
"data":{
"open":"
"close":"
"off":"

Apr 21 07:48:35 raspberrypi homebridge[3434]: [4/21/2017, 7:48:35 AM] [Broadlink RM] Markise Balkon setTargetPosition: currently 0%, moving to 10%
Apr 21 07:48:35 raspberrypi homebridge[3434]: [4/21/2017, 7:48:35 AM] [Broadlink RM] Markise Balkon setTargetPosition: 4.5s (45 / 100 * 10) until auto-stop<PHONE_NUMBER>904
Apr 21 07:48:35 raspberrypi homebridge[3434]: [4/21/2017, 7:48:35 AM] [Broadlink RM] Hex sent to Broadlink RM device
Apr 21 07:48:36 raspberrypi homebridge[3434]: [4/21/2017, 7:48:36 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 1
Apr 21 07:48:36 raspberrypi homebridge[3434]: [4/21/2017, 7:48:36 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 2
Apr 21 07:48:37 raspberrypi homebridge[3434]: [4/21/2017, 7:48:37 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 3
Apr 21 07:48:37 raspberrypi homebridge[3434]: [4/21/2017, 7:48:37 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 4
Apr 21 07:48:38 raspberrypi homebridge[3434]: [4/21/2017, 7:48:38 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 5
Apr 21 07:48:38 raspberrypi homebridge[3434]: [4/21/2017, 7:48:38 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 6
Apr 21 07:48:39 raspberrypi homebridge[3434]: [4/21/2017, 7:48:39 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 7
Apr 21 07:48:39 raspberrypi homebridge[3434]: [4/21/2017, 7:48:39 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 8
Apr 21 07:48:40 raspberrypi homebridge[3434]: [4/21/2017, 7:48:40 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 9
Apr 21 07:48:40 raspberrypi homebridge[3434]: [4/21/2017, 7:48:40 AM] [Broadlink RM] Markise Balkon setPositionState: 2
Apr 21 07:48:40 raspberrypi homebridge[3434]: [4/21/2017, 7:48:40 AM] [Broadlink RM] Markise Balkon setTargetPosition: stop
Apr 21 07:48:40 raspberrypi homebridge[3434]: [4/21/2017, 7:48:40 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 10
Apr 21 07:48:49 raspberrypi homebridge[3434]: [4/21/2017, 7:48:49 AM] [Broadlink RM] Markise Balkon setTargetPosition: 3
Apr 21 07:48:50 raspberrypi homebridge[3434]: [4/21/2017, 7:48:50 AM] [Broadlink RM] Markise Balkon setTargetPosition: 0
Apr 21 07:48:50 raspberrypi homebridge[3434]: [4/21/2017, 7:48:50 AM] [Broadlink RM] Markise Balkon setTargetPosition: 0
Apr 21 07:48:51 raspberrypi homebridge[3434]: [4/21/2017, 7:48:51 AM] [Broadlink RM] Markise Balkon setPositionState: 0
Apr 21 07:48:51 raspberrypi homebridge[3434]: [4/21/2017, 7:48:51 AM] [Broadlink RM] Markise Balkon setTargetPosition: currently 10%, moving to 0%
Apr 21 07:48:51 raspberrypi homebridge[3434]: [4/21/2017, 7:48:51 AM] [Broadlink RM] Markise Balkon setTargetPosition: 4.5s (45 / 100 * 10) until auto-stop<PHONE_NUMBER>001
Apr 21 07:48:51 raspberrypi homebridge[3434]: [4/21/2017, 7:48:51 AM] [Broadlink RM] Hex sent to Broadlink RM device
Apr 21 07:48:51 raspberrypi homebridge[3434]: [4/21/2017, 7:48:51 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 9
Apr 21 07:48:51 raspberrypi homebridge[3434]: [4/21/2017, 7:48:51 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 8
Apr 21 07:48:52 raspberrypi homebridge[3434]: [4/21/2017, 7:48:52 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 7
Apr 21 07:48:52 raspberrypi homebridge[3434]: [4/21/2017, 7:48:52 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 6
Apr 21 07:48:53 raspberrypi homebridge[3434]: [4/21/2017, 7:48:53 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 5
Apr 21 07:48:53 raspberrypi homebridge[3434]: [4/21/2017, 7:48:53 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 4
Apr 21 07:48:54 raspberrypi homebridge[3434]: [4/21/2017, 7:48:54 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 3
Apr 21 07:48:54 raspberrypi homebridge[3434]: [4/21/2017, 7:48:54 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 2
Apr 21 07:48:55 raspberrypi homebridge[3434]: [4/21/2017, 7:48:55 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 1
Apr 21 07:48:55 raspberrypi homebridge[3434]: [4/21/2017, 7:48:55 AM] [Broadlink RM] Markise Balkon setPositionState: 2
Apr 21 07:48:55 raspberrypi homebridge[3434]: [4/21/2017, 7:48:55 AM] [Broadlink RM] Markise Balkon setTargetPosition: stop
Apr 21 07:48:55 raspberrypi homebridge[3434]: [4/21/2017, 7:48:55 AM] [Broadlink RM] Markise Balkon setCurrentPosition: 0

I have now tested it again. The windowcover does not stop.

Looks like you missed this:

FYI 1.4.0 changes "off" to "stop" in the config

What exactly does that mean?
Can you if in my config what is missing this adjust and show here?

Now I understand, I try it out now.

Fantastic!!! It works without problems. You are the greatest!
 Do you build the function in the future at 0 and 100 the command open and close without calculation are sent to correct position errors which come by manual operation or restart of the Pi?
2.) The RF function for the RM3 hub is coming soon?
Thank You again for the great work!

Must the two values with in the config? In the example config it does not?
persistState (required?)
resendHexAfterReload (optional)

They both say optional in the read me
On 21 Apr 2017, 7:19 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

Must the two values with in the config? In the example config it does not?
persistState (required?)
resendHexAfterReload (optional)
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

1.) Do you build the function in the future at 0 and 100 the command open and close without calculation are sent to correct position errors which come by manual operation or restart of the Pi?

No - you can add switches to do this

2.) The RF function for the RM3 hub is coming soon?
There should be basic support already as mentioned in https://github.com/lprhodes/homebridge-broadlink-rm/issues/29

Roger that! .-)

No - you can add switches to do this

That I thought synonymous, the function would have saved a switch. Homebridge can take only 99 devices to my knowledge. I have already 90. Must then use a second Pi in use -.-
If you say it does not go then this is perfectly in order.
You are my hero at the moment!
So many cool things in such a short time. Respect!

I have just tested this feature really great:
-persistState
I have not quite understood what this function is.

disableLogs

Sorry if I sometimes ask too much, that is due to my not so good English.

You read the release notes?
persistState defaults to true by the way so you don’t need to add it
On 21 Apr 2017, 7:54 PM +1000, SeanJohn888<EMAIL_ADDRESS>wrote:

I have just tested this feature really great:
-persistState
I have not quite understood what this function is.
• disableLogs
Sorry if I sometimes ask too much, that is due to my not so good English.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

I have not added it. I've only tested it with a reboot.

🙄Oh no I've always read under commits and under code.
Releas note I did not know. There everything is described. Thanks for the advice.

Hello, I have probably found another error.
If the window cover closes is in the homekit app under the line position window cover is on open.
When opening stands windowcover is close at.
I have already tried the codes to turn open in close but then the direction of the slider no more.

Can you fix that?

I have also noticed that the times are interchanged by:
"TotalDurationOpen": 25,
"TotalDurationClose": 28,
I thought the times were up and down the same but my window covers have different times for up and down
The problem belongs together?

If the window cover closes is in the homekit app under the line position window cover is on open.

Try out 2.0.5 and let me know how it goes.

I have also noticed that the times are interchanged by...

Maybe I misunderstood you but I checked and "totalDurationOpen" is definitely being used when calculating the time for opening the window-covers and "totalDurationOpen" is definitely being used when calculating the time for closing it.
You should see the calculation in the log as something similar to "setTargetPosition: 22.05s (45 / 100 * 49) until auto-stop" where 45 is replaced with either "totalDurationOpen" or "totalDurationClose" depending on whether the window-covering is opening or closing.
Can you open future issues as new issues please.

Thank you for the reference I think you have understood me correctly.
Unfortunately, I have not yet come to consider it
But I will still make it and give you a feedback.

OK - please create a new issue if you need.
It's work checking out the release notes for 2.1.0 as you will probably want to add "resendHexAfterReload" to your window-covering accessories.


Create mechanism of checkpointing constant-pH simulation

We currently have no straightforward way to continue simulations after termination. It would be helpful to add a feature to instantiate the ProtonDrive and Sams sampler from a previous simulation.
This would include:

[ ] Saving the protonation states, and (potentially updated) weights of each state.
[ ] Sams iteration numbers for resuming calibrations.

I've previously used NetCDF to store information about state in a way that makes it easy to resume. How are you storing data right now?
@Lnaden also has a storage layer he is going to merge into openmmtools very soon. You might see if this could fit your needs.

Most of the driver data gets stored in netCDF, but not the weights as updated by SAMS. The regular storage strategy would need some updating to support this.
As of now some of the SAMS stuff gets pickled, but not everything I need gets stored at the moment. I want to come up with a clean way to do this, potentially adding it to the same netCDF file.
On the side though, I was considering coming up with a way to serialize the Driver and Sams sampler into some XML object.  The serialization could be helpful because normally it can take a few minutes to instantiate the drive from scratch due to looking up interactions/exceptions in the system. Being able to serialize the drive alongside the system could be very helpful for debugging speed, and it could provide a browsable view of the instantiated objects. This would be lower priority.

Created a new issue to keep track of changes to the netCDF format.

Most of the driver data gets stored in netCDF, but not the weights as updated by SAMS. The regular storage strategy would need some updating to support this.

I'd definitely store (1) anything you need to resume from, and (2) anything we might ever want to plot for the paper.
I agree that serialization is lower priority. We do expect to knock out a few papers with protons, but its eventual home will either be moved to an MCMCMove and/or a lower-level OpenMM API, so we may not need to spend so much effort on speeding up restarts.

See #112


FIX postInstall echoing without formatting

Coverage remained the same at 100.0% when pulling 264a78e4ce2575e193687a85005a0e5aa2b43665 on necipallef:patch-1 into 0dbeb09ad97189488cab9e98ddb7565211bc3af8 on WebReflection:master.

Coverage remained the same at 100.0% when pulling 264a78e4ce2575e193687a85005a0e5aa2b43665 on necipallef:patch-1 into 0dbeb09ad97189488cab9e98ddb7565211bc3af8 on WebReflection:master.


Automatically select an item in the dropdown when using arrow keys

closes #32954
Preview: https://deploy-preview-34052--twbs-bootstrap.netlify.app/docs/5.0/components/dropdowns/

@patrickhlauke addressed the key up/down behaviour you mentioned :+1:

So, this looks good, just one observation. The v4 branch just opens the dropdown on the first arrow down/up and only goes to one direction.

So, this looks good, just one observation. The v4 branch just opens the dropdown on the first arrow down/up and only goes to one direction.

v4 branch? 😯 I didn't backport it yet, or did I?

I know, just mentioning the differences in the behavior. :)

Oh ok.. 😅 I got a bit confused for sec. If you want me to change it for v4 too, I can do that.

Dang, I tried to rename the branch but I had no idea that the PR will be closed too 😫

@alpadev can you backport this please?


kill clouddata variable

The variable clouddata and its derivatives originate from the fact that all services we need for a cloud deployment are offered on one single host - for us at SUSE.
There are however other users of mkcloud who use services on existing servers. So we need to be able to configure the hostnames by service and not by assumptions which services are combined.
This PR will drop the variable $clouddata (still being backwards compatible and using its values, if it was set) and introduce one variable per service (nfs, repo(http), rsync, smt).
The new variables can be set to IPs or hostnames. mkcloud-common will compute the missing part on its own.
The idea is:
$reposerver, $nfsserver, $rsyncserver and $smtserver are only set from outside.
They can be set to an IP or a hostname. But these variables must not be used in the script(s).
The only ones that are to be used are the ones with the suffixes:
*_ip or *_fqdn
So this means:
The user sets
export reposerver="somehostname.company.ldt"
mkcloud-common.sh will resolve to suffix variables.
In the code we only use:
wget $reposerver_fqdn/some/path/package.rpm

@tpatzig can you test if you can deploy with this patch applied? In this form it uses FQDNs in URLs where it used IP addresses before

... In this form it uses FQDNs in URLs where it used IP addresses before ...

Just in a few places it behaves differently. But we think that it is cleaner this way.
The places that needed the ip address (nfs shares) still stick to the ip address.

@aspiers
the nitpicks are addressed now


A brace style that puts { on a new line if the function or if condition is multiline

In terms of the placement of the {, the following style is one I prefer to use. Examples by showing expected style below.
Expected (same line { when function signature is short - this is similar to existing SameLineWhere):
fn lorem(ipsum: usize) -> usize {
    ipsum
}

Expected style (new line before { with multiline function signature)
fn format_with_overflow(f: &mut fmt::Formatter<'_>, length: usize, limit: usize,
                        separator: &str, ellipsis: &str,
                        fmt_elem: &mut dyn FnMut(&mut fmt::Formatter, usize) -> fmt::Result)
                        -> fmt::Result
{
    Ok(())
}

Expected style - alternate (new line before { with multiline function signature)
fn format_with_overflow(
    f: &mut fmt::Formatter<'_>, length: usize, limit: usize, separator: &str, ellipsis: &str,
    fmt_elem: &mut dyn FnMut(&mut fmt::Formatter, usize) -> fmt::Result,
) -> fmt::Result
{
    Ok(())
}

Description: Like SameLineWhere except newline before the opening brace if the function signature is multi-line.

I'm not quite sure I follow, could you expand on the issue description?
For example, when you refer to "expected" style are you suggesting the formatting currently emitted by rustfmt does not produce the format dictated by the Style Guide, or are you requesting opt-in support for a new style, or something else?

It's a feature request for a new style option, no relation to the style guide. :slightly_smiling_face:


Add message signing support

Right now our useWallet hook does not have any utility methods that let the devs request a signature from the user.
This is a widely-used functionality in the ecosystem and we should have this!

Hello 👋🏿 I would be happy to contribute and handle this issue.

@elijahhampton I saw you picked up one issue already. Wanna work on that one first?

@elijahhampton I saw you picked up one issue already. Wanna work on that one first? You can always pick this one up later :D

Okay that's fine

Closing since our hooks have been deprecated


Outdated link

The link of this part is outdated:
"Develop your system such that it can handle connection blips because of patching and failover."
Instead of linking to https://gist.github.com/JonCole/317fe03805d5802e31cfa37e646e419d#file-azureredis-patchingexplained-md, it should link to https://docs.microsoft.com/en-us/azure/azure-cache-for-redis/cache-failover

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c0871634-2298-89b8-8bd3-b6f0e1585c76
Version Independent ID: 70c092f0-eafd-c066-763e-12794d3c4010
Content: Best practices for Azure Cache for Redis
Content Source: articles/azure-cache-for-redis/cache-best-practices.md
Service: cache
GitHub Login: @JonCole
Microsoft Alias: joncole

@stefankip Thank you for pointing out the issue and helping us make our documentation better.
I have updated the doc accordingly. The changes should be live EOD or tomorrow.
We will proceed to close this issue now.


Setup lode ui

Provide a simple ui to work with lode artifacts.
The current state is able to load manifest files
and render the different lod artifacts.

this permits comparing the artifacts next to each-other.


Core: remove misleading @delayed_action ivar from Chef::Resource

see https://github.com/chef/chef/pull/5443#issuecomment-253279021

@coderanger Array.new(nil) gives [] which is just a no-op,  IDK if you had better behavior in mind...

i suppose we could just drop the default value and make it ArgumentError if you don't pass it an action.

:+1: for making it required. That basically reduces this to being (well needed) sugar for add_delayed_notification.

done, travis willing...

@lamont-granquist Can you PR the merge as enhancement or bug for changelog generation in the next release? Thanks!


Can't select/highlight text within an overlay using useOverlay and FocusScope

🐛 Bug Report

Can't select text using the mouse when using useOverlay + FocusScope
🤔 Expected Behavior

I should be able to click and drag to highlight text within an overlay
😯 Current Behavior

No highlighting is shown
💁 Possible Solution

Could be way off here, but there's this comment from another issue that seems relevant: https://github.com/adobe/react-spectrum/issues/1604#issuecomment-781574668
The recommended solution here is to set tabindex=-1 on a containing div. That works, but it feels like something that the useOverlay hook should handle. The useDialog hook already sets this here, so I'm wondering whether tabindex=-1 should be added to the overlayProps in the useOverlay hook here?
🔦 Context

An example is we have a side drawer component that slides out over everything. We want focus to be contained, so useOverlay + FocusScope seems like the appropriate tools to use(?), but this drawer can also contain debug information etc so it is useful to be able to copy/paste text from it.

💻 Code Sample

see e.g. https://github.com/grafana/grafana/blob/main/packages/grafana-ui/src/components/DateTimePickers/TimeRangePicker.tsx#L121
🌍 Your Environment

Software
Version(s)

@react-aria/focus
3.5.0

@react-aria/overlays
3.7.3

Browser
Chrome 97.0.4692.99

Operating System
macOS Monterey 12.0.1

🧢 Your Company/Team

🕷 Tracking Issue (optional)

Here's a codesandbox showing the issue. I think the solution you suggested would fix that. Seems correct, as long as it's okay to remove all overlays from navigation flow, which I'm not sure about.

You mentioned it already, but I think this is handled by useDialog. You should be using that hook in addition to useOverlay for this use case, as it also handles other aspects like adding the dialog ARIA role.

ahhh ok, i think in my head i was associating useDialog only with modals, when actually the docs page states:

A dialog is an overlay shown above other content in an application.

in that case i think you're right and we should be using useDialog as well. thanks for the clarification!

Yeah. We are thinking of ways to simplify our overlay API a bit so it's more clear and easier to use. Sorry for the confusion!


Documentation: Adapt to sensor.batteries_charge_discharge_power

Adapt documentation to all batteries related sensors to e.g.  sensor.batteries_charge_discharge_power ...

As mentioned in the README, this package is based on a two inverter + one battery setup. Huawei has changed the naming convention and introduced the new sensor name. This has been implemented in the latest update.


1924 netcdf metadata edit

@gantian127 I have now finished reviewing and have left some comments.

@gantian127 I have made few more comments.

@gantian127 +1. Should merge once the Jenkins checks are successful.

@pkdash I will merge after the check. Thanks for the code review.


Make non-top-level connection errors debug level

This avoids spamming the home-assistant logs, which can occur when home-assistant has been running but the roomba hasn't been turned on, so no initial connection has been established.
This allows users to read the logs/investigate other home-assistant issues, without having to disable the roomba integration.
For example instead of this message being repeated 3x:
2024-MM-DD HH:MM:SS.MMM ERROR (roombapy) [roombapy.remote_client] Can't connect to <IP_ADDRESS>
Traceback (most recent call last):
  File .../lib/python3.12/site-packages/roombapy/remote_client.py", line 93, in connect
    self._open_mqtt_connection()
  File .../lib/python3.12/site-packages/roombapy/remote_client.py", line 117, in _open_mqtt_connection
    self.mqtt_client.connect(self.address, self.port)
  File .../lib/python3.12/site-packages/paho/mqtt/client.py", line 914, in connect
    return self.reconnect()
           ^^^^^^^^^^^^^^^^
  File .../lib/python3.12/site-packages/paho/mqtt/client.py", line 1044, in reconnect
    sock = self._create_socket_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File .../lib/python3.12/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
    return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File .../lib/python3.12/socket.py", line 865, in create_connection
    raise exceptions[0]
  File .../lib/python3.12/socket.py", line 850, in create_connection
    sock.connect(sa)
OSError: [Errno 113] No route to host

and these then following:
2024-MM-DD HH:MM:SS.MMM ERROR (roombapy) [roombapy.remote_client] Unable to connect to <IP_ADDRESS>
2024-MM-DD HH:MM:SS.MMM WARNING (roombapy) [roombapy.roomba] Unexpectedly disconnected from Roomba <IP_ADDRESS>, code The connection was lost
2024-MM-DD HH:MM:SS.MMM WARNING (roombapy) [roombapy.roomba] Periodic connection lost due to Unable to connect to Roomba at <IP_ADDRESS>

we now receive:
2024-MM-DD HH:MM:SS.MMM WARNING (roombapy) [roombapy.roomba] Unexpectedly disconnected from Roomba <IP_ADDRESS>, code The connection was lost

With the ability to get back more detailed connection logs by enabling debug logging in home-assistant.

Rebased

The build error is on unchanged code - looks like it's been picked up by looking at context around the changes

I noticed this PR as I was about to create one myself after seeing the log spam when my Roomba had an empty battery after being stuck. Current main branch does not return any ruff errors (ruff 0.8.1) with the latest commits from past couple of days, so a rebase should make the unrelated errors go away.
However, it seems the only Exception returned there is OSError so it might be cleaner to address that.
But even if the logging is changed from exception to debug, it's still spamming the logs up to 3 times with no added value compared to this
self.log.error("Unable to connect to %s", self.address)

one at the end of the connect method. No?

[...] so a rebase should make the unrelated errors go away.

Thanks for the prompt - rebased

However, it seems the only Exception returned there is OSError so it might be cleaner to address that.

Nice idea - sorted in #382

But even if the logging is changed from exception to debug, it's still spamming the logs up to 3 times with no added value compared to [...] at the end of the connect method. No?

Agreed - I wanted to keep this change minimal to increase its chances of being accepted - however if the larger change (with other debug lines removed) would be accepted, I'll make the change. @pschmitt wdyt?

all right let's do this :)


[DO-NOT-MERGE] complex type creator should always output unsafe format

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)
Please review https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark before opening a pull request.

Test build #67584 has started for PR 15645 at commit 9f5bb11.

Test build #67584 has finished for PR 15645 at commit 9f5bb11.

This patch fails Spark unit tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/67584/
Test FAILed.


Manage EBS volumes

As far as I can tell, there isn't an existing way to provision EBS volumes independently of creating VMs. I'll need to do that for our web stack, because we need to use an NFS server, and the way I'd like to do HA failover for it on AWS will be to create an EBS volume that gets automatically attached to a secondary NFS server which also takes over the floating IP. That would allow me to skip using lsyncd or similar to keep the two nodes in sync. It would be critical to be able to specify that the volume not be destroyed when the node it's attached to is destroyed.

:+1: Would love to see this supported.

+1

+1

See https://github.com/puppetlabs/puppetlabs-aws/pull/281

+1

When will a new version be stamped? This will include the much wanted enhancements included in #400 ( aka #281 )?

I believe this issue has been addressed by https://github.com/puppetlabs/puppetlabs-aws/pull/400, and if so, I'm planning to close this. If I'm wrong, please speak up. Thank you!


Change readthedocs site to new one

I just set up a new RTD site for the server: https://readthedocs.org/projects/ga4gh-server
The old one is here: https://readthedocs.org/dashboard/ga4gh-reference-implementation
When we are sure that the new one is stable, we should delete the old one and change all the links in the docs (if there are any, and for all repositories) to the new link.

Thanks @dcolligan. We should create a doc on the old site that points to the new one. There are a lot of external links that will break if we delete the old one.

I think we need to do the following:

[ ] I will contact the GA4GH.org and genomicsandhealth.org web team and get them to move their pointers.
[ ] make this release and we get the "stable" link up
[ ] create a new page for the old RTD site that just has a link to the new site (in case there are other links out there).

This issue was erroneously closed.  The old RTD site is still up.  We should decide what to do about it.


Calendso starter doesn’t work

I have tried to deploy it normally it didn’t work, on further digging I found out about this issue
https://github.com/calendso/calendso/pull/393
I tried adding it into my code and ran the build, still same error.

Yeah I'm currently facing the same issue. I wonder if anything can be done with the react-dates dependency.

https://github.com/calendso/calendso/pull/393 got merged and this is working now.
Refer to the image below to verify it is working.

Thanks and closing the issue.


Calling guest function via get_func_from_idx() can trigger "Invalid Hostcall"

Apologies if I am missing something obvious here. I am working on embedding Lucet in a runtime with hostcalls which require copying host information back into the guest. To this end I've attempted to follow the memory management design outlined in the Fastly blog here: https://www.fastly.com/blog/webassembly-memory-management-guide-for-c-rust-programmers.
What I'm finding is that I am triggering this panic message: "Invalid state: Instance marked as in a hostcall while entering a hostcall." because when I call the registered guest memory allocation function (via the function table idx) it in turn is triggering a hostcall to grow the wasm memory (lucet_vmctx_grow_memory).
Any suggestions or pointers to workarounds would be appreciated. Thank you!
P.S. - I am using Lucet v0.6.1

@dshiell15 we don't currently recommend calling back into Wasm from hostcalls. The memory management strategy I'd recommend is to have the guest provide the host with a pointer to a pre-allocated buffer that the host can copy results into. This of course means having to get the buffer size right, but we have had good results with the following approach:

Return a status/error code from the hostcall so that you can identify when the write succeeds or fails.
Use an nwritten output parameter in the hostcall so the host can return to the guest how many bytes were written by a successful copy.
When the hostcall fails because the guest-provided buffer is not large enough, write the number of bytes that are necessary to an output parameter (you can reuse nwritten as the guest checks for the error case).
Allocate a new buffer of the required size in the guest, and call the hostcall again.

Excellent, thank you! - got a little too hung up on the other approach...


Fix admission controllers

This fixes/clarifies the taint names used by an admission controller.

This change is

May your base branch is out of date... so too many commits in your PR.

this was wrong, I was supposed to propose it to the master branch.


feature(portal): Add styled errors pages (404, 422, 500)

Closes #2136
Screenshots for 404 and 500

As a quick note, I pretty much just followed this doc page: https://hexdocs.pm/phoenix/custom_error_pages.html
@AndrewDryga If there is a better way of doing this just let me know and I'll update the PR.

LGTM. I always dreamed about nice funny error pages like those https://codepen.io/affectionatelettuce/pen/BarrJKJ but we need a designer for that :).

but we need a designer for that :).

I'm sure there's an AI tool that can make us one!

Yeah, I'm down to make something funnier, I just did these because it was easy.  I'm no animator though, I'd definitely need to find a pre-made animation if we wanted to do something like you linked.

Cool it! You're making too many requests

ChatGPT did an image for us:


Use babel-preset-env in 'init'

This PR switches the default Babel preset to use babel-preset-env - this preset adjusts based on the current Electron version which Babel plugins to use. This PR also enables async/await and React by default, since these features are super common and don't have any overhead to enable if not in-use.

Also for some strange reason the CI didn't run, adding another commit should trigger those though 👍


[FR]: Add template options

Contact Details
<EMAIL_ADDRESS>Present your request
Currently, the template button inserts the columns that another file has.
I would like to see the option to add a template from my templates folder into that creation so it inserts my template into the page when a new file is created in that database.
For which platform do you request this request??
Desktop

I figured it out 😆


Confusion matrix and related metrics

adds functions

confusion_matrix (also confmat)
accuracy (1 - mcr)
precision, recall (+ sensitivity), auc, specificity (+ selectivity), f1score as callable measure
FScore{beta}
auxilliary functions  truepositive, truepositive_rate etc

the CM can be used for multiclass as well and eventually we should add a multiclass auc see #84
Finally there's a bit of re-org in view of possibly modularizing in the future and extracting  metrics, I've just gathered the metrics-related files in one folder.
Also some minor cleanup here and there (like removing a stray @show in distributions)
To facilitate the review:

main changes: https://github.com/alan-turing-institute/MLJBase.jl/pull/88/files#diff-46dbee1cc440de145a5046799515efe1R132-R321
tests: https://github.com/alan-turing-institute/MLJBase.jl/pull/88/files#diff-0c5aa36b3340a0854f75e096fbfe9cd4R29-R77

cross referencing:

https://github.com/alan-turing-institute/MLJ.jl/issues/277
https://github.com/alan-turing-institute/MLJBase.jl/issues/60

Hmm the last fail is due to some traits stuff that wasn’t on Dev before ...

(The fail is because you have taken the TRAIT_GIVEN_FUNCTION declarations out of init again.)
Thanks indeed to @vollmersj  and @tlienart for their work on this important PR. There are a couple of issues here, the first essential, the second more a design preference.
1. Meausures cannot have keyword arguments.
In particular, in binary classification problems where a choice of "true" class is needed for the measure to make sense, this should be a field of the measure type which the user must specify on constructing the measure object. The rest of the API depends on this kind of convention. For example, in evaluate! there is no mechanism for you to pass keyword arguments to the measures being computed there.
For example, if you want to use a cubic loss function from LossFunctions.jl, the existing workflow is like this:
julia> l3 = LPDistLoss(3)
LPDistLoss{3}()

julia> evaluate!(mach, measure=l3, ....)

So, for example, you should handle a measure like "true positive" like this (more-or-less):
struct TruePositive{T}
    truth::T
end

(t::TruePositive)(yhat, y) = (yhat .== t.truth) .& (y .== t.truth) |> sum

with user workflow
tp = TruePositive("male")
tp(yhat, y)
evaluate!(mach, measure=tp, ....)

2. Regarding confusion matrices
I think confusion matrices are dumb because you need to specify the "true class" and they don't generalise to the multiclass case. Couldn't we simply have a confusion table instead? The column headings are the class labels, in the order the labels appear in classes(any_element_of_y). (You could still call it a confusion matrix to avoid the innevitable "Where are confusion matrices?" and I don't think anyone would care it isn't a matrix. )

the keyword thing is addressed;
as for the confusion matrix, I'm not sure I get your points, basically as it stands it's what you'd expect from what you describe to be the "confusion table"; the ordering of classes follows that of levels which I think is perfectly reasonable; you can swap it in the binary case with the keyword rev=true.

A couple of notes from looking at MLR https://mlr.mlr-org.com/articles/tutorial/performance.html

they expose all the auxiliary metrics like FPR, PPV etc; it wouldn't be very hard to do that too, there's just an API question of whether we'd call them with abbreviated name or not but I guess both can be supported setting const fpr = false_positive_rate
they don't have  an option to set what's positive/negative as far as I can tell; but their effective show is something we could mimick which shows clearly the class name above the column / rows

Regarding AUC

Okay, I've revisited (binary) AUC and can show that the true AUC score of a classifier does not depend on the choice of "true" label (although the ROC naturally does depend on this). I have not checked if this is true for common AUC estimates, but would be suspicious of any definition of AUC estimate that does not preserve this invariance. So our discussion on interface points for the "true" label is moot in this case.

I have not checked if mutliclass AUC is independent of class ordering, but if it is not it would not want to implement it anyway.

As a side note, I think we should be cautious about using AUC in tutorials. Despite it's widespread use, it has serious flaws, not least of which is that it is not a proper scoring rule.  Maybe brier is a better choice when cross_entropy is problematic.

More discussion about interface points for "true" class
I have had long think about this issue. Some thoughts:

@tlienart I agree with your criticism on slack that it is best to avoid needing to "show" a measure data to instantiate it, for this complicates systematic benchmarking of a model against multiple data sets. So my suggestion true_positive = TruePositive{"male"} is flawed.

I think that I could accept the implementation of the binary measures you suggest if their use is restricted to OrderedFactor{2} data, where a default order is part of the data prescription. Otherwise, I think there is too great a danger for insidious errors if the user is not confronted to explicitly declare a "true" label. For example, the default "true" (according to the lexicographical ordering implemented by the categorical constructor) in the case of levels "accept/reject" is false="accept" and true="reject", which is counter-intuitive.

We could deal with Multiclass y safely, although less satisfactorily,  in two ways:
(i) The binary measure returns an informative error, explaining the measure called can only be used on OrderedFactor{2} data. This is more restrictive but requires less explanation.
(ii) the binary measures return a callable object instead of a number. For example, true_positive(yhat, y) returns a callable object c, such that:

the show methods for c return something like 25 if true=$default (callable object), where  default=levels(y)[2]`
c(levels) is the true_positive if we declare levels[1] to be the "false" level (see also below)

To get the default, you just do c(levels(y)).

confusion matrix
Similar suggestions concern confusion_matrix with the exception that I don't think restricting use to OrderedFactor data is an option. We need an analogue of (ii) for Multiclass data:  confusion_matrix(yhat, y) returns a callable object c where c(levels) has the obvious meaning (and levels needn't cover all the values of levels(y) (more precisely, classes(y[1])).
Thoughts?

Ok the recent commit addresses I think everything with a few minor changes which I hope you won't mind  too much, I'll follow your comments to try to simplify review:
AUC

yes, this is now checked explicitly
Multiclass AUC is not implemented in this PR (and I agree with your statement)
noted

True class etc
Ok I've pretty much done what you suggested apart from the fact that I do still allow metrics on Multiclass{2} BUT they will show a warning with the explicit ordering used; this warning can be suppressed by specifying an ordering explictly.
In short, all metrics fallback on metrics on the confusion matrix. When the confusion matrix is built, it checks whether an order is specified and if not, if y is OrderedFactor, if it isn't a warning is displayed:
julia> y = categorical(['a','b','a','b']);
julia> ŷ = categorical(['a','a','b','b']);
julia> confmat(ŷ, y)
┌ Warning: The classes are un-ordered,
│ using: negative='a' and positive='b'.
│ To suppress this warning, consider coercing to OrderedFactor.
└ @ MLJBase ~/.julia/dev/MLJBase/src/measures/confusion_matrix.jl:74
              ┌───────────────────────────┐
              │       Ground Truth        │
┌─────────────┼─────────────┬─────────────┤
│  Predicted  │      a      │      b      │
├─────────────┼─────────────┼─────────────┤
│      a      │      1      │      1      │
├─────────────┼─────────────┼─────────────┤
│      b      │      1      │      1      │
└─────────────┴─────────────┴─────────────┘

this warning will show with any of the derived metrics
julia> recall(ŷ, y)
┌ Warning: The classes are un-ordered,
│ using: negative='a' and positive='b'.
│ To suppress this warning, consider coercing to OrderedFactor.
└ @ MLJBase ~/.julia/dev/MLJBase/src/measures/confusion_matrix.jl:74
0.5

the warnings will  not show if OrderedFactor.
There are also keywords constructor which allow the user to do what I call above "specifying the ordering", in which case it's assumed the user knows what they're doing and all warnings are suppressed:
julia> rec = Recall(rev=false)
julia> rec(ŷ, y)
0.5

extra
the show is now much nicer as shown above.

I hope that kind of makes sense; I thought it would be nicer to allow user to smoothly transition from stuff they may be used to rather than face them with errors...

@tlienart Thank you for taking my suggestions on board and, I believe, improving on them in the updated implementation!
My remaining concern is that because true_positive etc derive from a confusion matrix, we cannot add them to the list of measures in an evaluation! call. So, one would like to do something like this:
evaluate!(mach, resampling=CV(), measure = [misclassification_rate, recall, true_positive, false_positive])

Is there a reason you do not want to implement them as stand-alone measures, with behaviour mirroring what have for recall?

We should implement Statistics.mean for ConfusionMatrix objects, so that it can be aggregated in performance evaluations (so that specifying measure=confusion_matrix works).

I was just thinking that the implementation does not support missing values in the ground truth; this should be easy to circumvent (just skip those) but I’ll be happy to hear ideas of other things that could be done, it’s a bit pathological though

Right, see also issue #95 , I added a lot of metrics then ended up getting a bit bored and also thinking that this might be a pain to  review...
Anyway  long story short:

all are now metrics, so you can do  tp tpr and TPR(rev=true) in the same way you can call recall etc
I did not implement the Statistics.mean for confusion matrix as I'm not 100% clear on what you want here (do you want  confusion matrix to be a measure itself?), if you could open an issue with very short guidelines I'll do that in another PR
I added a bunch of oother stuff like Matthews correlation, Balanced accuracy, PPV etc and  where appropriate I tested the implementations explicitly with sklearn which should help  the review.

I'd suggest not adding anything to this PR (apart from fixes suggested in reviews) and possibly opening new issues for stuff that could be added  in that vein.
I also thought that there's  now a  lot of blueprint that people can  just follow to add more metrics which makes for good and easy isssues.

@tlienart That's fantastic.
Regarding point 2: You are correct, of course: confusing_matrix (and other measures such as true_positive) should be summed and not averaged in aggregations. But this points to a gap in the measure interface. We need a new trait aggregation defaulting to mean, and a corresponding change to evaluate! to call the appropriate method.
Here's a plan to finish this PR:

[ ] Add aggregration trait to this PR @ablaom

[ ] Create new branch MLJ#confmat (same name as this one) with necessary changes to evaluate! @ablaom

[ ] Overload trait value to summation for appropriate measures introduced here (@ablaom to initiate)

[ ] @ablaom to finish detailed code review

[ ] @tlienart to check trait values and address any remaining issues

Oops. Closed by mistake.

For the record, I'm implementing :mean for the aggregation of the F-score, although the non-linearity of its definition means "interpret with caution"; see, eg, https://datascience.stackexchange.com/questions/16179/what-is-the-correct-way-to-compute-mean-f1-score . I think the best we can do is document our choice clearly.

Ditto rms.
Okay, we allow aggregation to return any callable object, with built-in Sum() and Mean() and Mean() as default. And we can do a custom one for rms, etc

FYI, I've added docstrings for AUC, BACC, and MCC but it's on the roc branch which I'll push soon. Just so  that you don't add these yourself 😄

Okay, I am done with my additions (see above) and my review. Not covered above:

added "registry" for measures (essentially just list of all measure types, auto-generated for now)

add facility to query measure registry as we do models. Do ?measures for details.

Although technically non-breaking, I suggest we make this part of a minor release as MLJ will not really work properly for all the new measures that don't use Mean() as the aggregation method. (And we  should consider the existing MLJ resampling as flawed in the case of rms family of metrics, since these are currently mean-aggregated. My bad.)
I have left confusion_matrix as a non-measure because it looks complicated to fix, and I don't think it is a great loss. It's just a pity that the API for it is slightly different.
@tlienart Please review the aggregation trait values for each measure and pull when ready. Naturally, for some complicated measures, there is no ideal aggregation method (eg, Score) and I left them as Mean().
julia> for m in measures()
       println("$(m.name) \t$(m.aggregation)")
       end

auc     MLJBase.Mean()
accuracy        MLJBase.Mean()
balanced accuracy       MLJBase.Mean()
cross_entropy   MLJBase.Mean()
FScore  MLJBase.Mean()
false discovery rate    MLJBase.Mean()
false negative  MLJBase.Sum()
false negative rate (miss rate)         MLJBase.Mean()
false positive  MLJBase.Sum()
false positive rate (fallout)   MLJBase.Mean()
l1      MLJBase.Mean()
l2      MLJBase.Mean()
mav     MLJBase.Mean()
matthews_correlation    MLJBase.Mean()
misclassification_rate  MLJBase.Mean()
negative predictive value       MLJBase.Mean()
precision (positive predictive value)   MLJBase.Mean()
rms     MLJBase.RootMeanSquare()
rmsl    MLJBase.RootMeanSquare()
rmslp1  MLJBase.RootMeanSquare()
rmsp    MLJBase.RootMeanSquare()
true negative   MLJBase.Sum()
true negative rate (specificity, selectivity)   MLJBase.Mean()
true positive   MLJBase.Sum()
true positive rate (sensitivity, recall, hit rate)      MLJBase.Mean()
BrierScore{UnivariateFinite}    MLJBase.Mean()
LossFunctions.DWDMarginLoss     MLJBase.Mean()
LossFunctions.ExpLoss   MLJBase.Mean()
LossFunctions.L1HingeLoss       MLJBase.Mean()
LossFunctions.L2HingeLoss       MLJBase.Mean()
LossFunctions.L2MarginLoss      MLJBase.Mean()
LossFunctions.LogitMarginLoss   MLJBase.Mean()
LossFunctions.ModifiedHuberLoss         MLJBase.Mean()
LossFunctions.PerceptronLoss    MLJBase.Mean()
LossFunctions.ScaledMarginLoss  MLJBase.Mean()
LossFunctions.SigmoidLoss       MLJBase.Mean()
LossFunctions.SmoothedL1HingeLoss       MLJBase.Mean()
LossFunctions.ZeroOneLoss       MLJBase.Mean()
LossFunctions.HuberLoss         MLJBase.Mean()
LossFunctions.L1EpsilonInsLoss  MLJBase.Mean()
LossFunctions.L2EpsilonInsLoss  MLJBase.Mean()
LossFunctions.LPDistLoss        MLJBase.Mean()
LossFunctions.LogitDistLoss     MLJBase.Mean()
LossFunctions.PeriodicLoss      MLJBase.Mean()
LossFunctions.QuantileLoss      MLJBase.Mean()
LossFunctions.ScaledDistanceLoss        MLJBase.Mean()

Just adding one more thing: simplification of name trait values.

Yeah, sorry. I just dumped those extra descriptors. I will put them back via docstring.

sure no worries, fine by me, we can do that in another PR btw, maybe merge this so that you can do the other stuff and  tag me in an issue to add docstrings?


fix(cicd): Use the master version of pipeline library

Revert "fix(cicd): Use a development branch from pipeline library (#2513)"
This reverts commit 0abb8469ae114b4c08eec91ce7405f7ad5060aa4.
There is no need to use the branch anymore since we fixed in on master.
Ref: https://github.com/fabric8io/fabric8-pipeline-library/pull/395

Can one of the admins verify this patch?


[Question] How do I force specific format for stdin?

If I do:
echo \
'foo:
   bar:
     baz: 3' | micro

how can I force proper highlighting when I know the format of standard in (like yaml in given case)?
Thanks for wonderful product!

I tried
echo \
'foo:
   bar:
     baz: 3' | micro -filetype yaml

without success.

You could do a temp file with the filetype on the dot extension.
echo "test" > /tmp/test.go | micro /tmp/test.go
Not best solution but it works.

Peeking at the beginning of the yaml syntax file:
filetype: yaml

detect:
    filename: "\\.ya?ml$"
    header: "%YAML"

Since it's stdin you need to match the header pattern—this works for me w/ zsh:
echo \
'%YAML
foo:
   bar:
     baz: 3' | micro

Also, once the buffer opens you can enter the command set filetype yaml while in micro, managed to miss that option for a couple years until earlier this month

@dodalovic You can also set it with a keybinding—add this to your ~/.config/micro/bindings.json:
    "Ctrl-y": "command:setlocal filetype yaml",

I tested that on macOS/WSL/Win10 so it should work. I'm trying a couple other things atm, but in the meantime this is still way better than manually entering it in command mode or having to write files


build error relating to ceres solver

On my Ubuntu 20.04, running on VMware windows host,
when running setup.py, I get this kinds of error everywhere:
/usr/local/include/ceres/internal/variadic_evaluate.h:74:52: error: ‘ParameterBlockIndices’ was not declared in this scope
/usr/local/include/ceres/internal/parameter_dims.h:74:40: error: ‘ceres::internal::IsValidParameterDimensionSequence’ cannot be used as a function
Traceback (most recent call last):
File "setup.py", line 49, in
build_c_extension()
File "setup.py", line 45, in build_c_extension
subprocess.check_call(['make', '-j4'], cwd='cmake_build')
File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', '-j4']' returned non-zero exit status 2.
which I can't figure out why. Tried reinstalling ceres & opencv multiple times with different methods, apt-get, build from source, fPIC flag and other CMAKE parameter flags but no luck.
Anybody has an insight to solve this problem?

Hey @yuni-g ,
I am facing the same issue. Were you able to resolve it?
If yes, could you please share the details on the same?
Thank you.


cant go to the next step.

Challenge Waypoint: Create a Bootstrap Headline has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
<h3 class="text-primary text-center" jQuery Playground </h3>
I cant go to the next step .Please help.

@GOGOLDATTA you need a closing brace after the quoted class.
 jQuery Playground

thanx


Collaborating

Hello vadimkim,
Nice work you have done here ^^. Since we were impatient we also have done the same work.
https://github.com/mecodia/cert-manager-webhook-hetzner
But we are no Go Programmers (Python really), our code quality is not yet up to standard.
The question is now if you want to collaborate. We use the webhook in production and are really interested in something either we can maintain for longer or that gets maintained for the foreseeable future.
Let me know what your plan is and in what ways you would be open for collaboration. :-)
Beste regards,
Dennis

Can you list the changes that have been made in your repository in a MR so that we can review?

I think the biggest difference is, that the mecodia cert-manager has no restriction on Zones but can use all the Domains you have within Hetzner. Other than that I can't remember any difference and the code was mostly copied directly from the Hetzner Docs and slightly edited to fit our usecase.

Hi @NotANormalNerd
I'm not sure what you mean by "restriction on zones"? I have built a new webhook based on this repo and I have even upgraded to cert-manager 1.4.alpha1  without any restrictions on zones. I will be very happy to collaborate and maintain such a project!  I have running projects on Hetzner and I think I will keep updating for a while.
maybe we can unify our work under one repo ?! here or mecodia ...? I can push my code anywhere we can work on.
kindly check my work and let me know
repo
artifacthub


uutils-coreutils: 0.0.20 -> 0.0.21

Description of changes
Changelog (0.0.22): https://github.com/uutils/coreutils/releases/tag/0.0.22
Changelog (0.0.21): https://github.com/uutils/coreutils/releases/tag/0.0.21

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Should probably rename the pr to 0.0.22 instead of 0.0.21