[BUG] Harmony activityCommand not working anymore

Describe the bug
crazy story. since a few days my harmony commands are not executed anymore when i execute them from homkit. the command is displayed briefly but then reset to the command from before.
via the logitech remote control everything runs normal. now the crazy thing: when i hold the logitech remote control in my hand and execute the homebride-harmony actions, they are executed.
i'm pretty tired of what this can be. otherwise the software ran for months without a problem.
do you have an idea what i can try. is a new version of the harmony with new security feature or power safe feature to blame.
To Reproduce
To any command on homkit app
command will not execute
next fresh the last command will show
Expected behavior
command will execute
Screenshots
no help
IOS (please complete the following information):

Version 13.6.1
Device: iPhone 11

Logs
Not Working
[8/19/2020, 9:45:30 PM] [Harmony Hub] (Harmony Hub)INFO - SET Characteristic.Active 1
[8/19/2020, 9:45:30 PM] [Harmony Hub] (Harmony Hub)INFO - value of Characteristic.ActiveIdentifier 0
[8/19/2020, 9:45:31 PM] [Harmony Hub] (Harmony Hub)INFO - launching with default Activity - 32038360
[8/19/2020, 9:45:31 PM] [Harmony Hub] (Harmony Hub)INFO - sendInputCommand : Activty Center will be activated
[8/19/2020, 9:45:31 PM] [Harmony Hub] (Harmony Hub)INFO - activityCommand : Returned from hub {"cmd":"harmony.activityengine?runactivity","code":200,"id":"0.3186576771953533","msg":"OK"}
[8/19/2020, 9:45:31 PM] [Harmony Hub] (Harmony Hub)keysMap is :{"0":"{"command":"Rewind","type":"IRCommand","deviceId":"46813567"}|1","1":"{"command":"FastForward","type":"IRCommand","deviceId":"46813567"}|1","2":"{"command":"SkipForward","type":"IRCommand","deviceId":"46813567"}|1","3":"{"command":"SkipBack","type":"IRCommand","deviceId":"46813567"}|1","4":"{"command":"DirectionUp","type":"IRCommand","deviceId":"46813567"}|1","5":"{"command":"DirectionDown","type":"IRCommand","deviceId":"46813567"}|1","6":"{"command":"DirectionLeft","type":"IRCommand","deviceId":"46813567"}|1","7":"{"command":"DirectionRight","type":"IRCommand","deviceId":"46813567"}|1","8":"{"command":"Select","type":"IRCommand","deviceId":"46813567"}|1","9":"{"command":"Back","type":"IRCommand","deviceId":"46813567"}|1","10":"{"command":"Home","type":"IRCommand","deviceId":"46813567"}|1","11":"{"command":"Play","type":"IRCommand","deviceId":"46813567"}|1","15":"{"command":"Menu","type":"IRCommand","deviceId":"46813567"}|1"}
[8/19/2020, 9:45:31 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"32038360","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":314,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866281,"wifiStatus":1,"activityStatus":1,"runningActivityList":"","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:45:37 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"-1","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":315,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866281,"wifiStatus":1,"activityStatus":0,"runningActivityList":"","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:45:37 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : Refreshing activity to -1
[8/19/2020, 9:45:37 PM] [Harmony Hub] (Harmony Hub)keysMap is :{}
[8/19/2020, 9:45:37 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"-1","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":316,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866281,"wifiStatus":1,"activityStatus":0,"runningActivityList":"","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:45:37 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : Refreshing activity to -1
[8/19/2020, 9:45:37 PM] [Harmony Hub] (Harmony Hub)keysMap is :{}
Not Working
[8/19/2020, 9:48:03 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"-1","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":318,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866281,"wifiStatus":1,"activityStatus":0,"runningActivityList":"","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:48:03 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : Refreshing activity to -1
[8/19/2020, 9:48:03 PM] [Harmony Hub] (Harmony Hub)keysMap is :{}
[8/19/2020, 9:48:03 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"-1","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":319,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866281,"wifiStatus":1,"activityStatus":0,"runningActivityList":"","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:48:03 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : Refreshing activity to -1
[8/19/2020, 9:48:03 PM] [Harmony Hub] (Harmony Hub)keysMap is :{}
with ir control in hand
[8/19/2020, 9:49:01 PM] [Harmony Hub] (Harmony Hub)INFO - activityCommand : Returned from hub {"cmd":"harmony.activityengine?runactivity","code":200,"id":"0.7455265854026483","msg":"OK"}
[8/19/2020, 9:49:01 PM] [Harmony Hub] (Harmony Hub)keysMap is :{"0":"{"command":"Rewind","type":"IRCommand","deviceId":"46813567"}|1","1":"{"command":"FastForward","type":"IRCommand","deviceId":"46813567"}|1","2":"{"command":"SkipForward","type":"IRCommand","deviceId":"46813567"}|1","3":"{"command":"SkipBack","type":"IRCommand","deviceId":"46813567"}|1","4":"{"command":"DirectionUp","type":"IRCommand","deviceId":"46813567"}|1","5":"{"command":"DirectionDown","type":"IRCommand","deviceId":"46813567"}|1","6":"{"command":"DirectionLeft","type":"IRCommand","deviceId":"46813567"}|1","7":"{"command":"DirectionRight","type":"IRCommand","deviceId":"46813567"}|1","8":"{"command":"Select","type":"IRCommand","deviceId":"46813567"}|1","9":"{"command":"Back","type":"IRCommand","deviceId":"46813567"}|1","10":"{"command":"Home","type":"IRCommand","deviceId":"46813567"}|1","11":"{"command":"Play","type":"IRCommand","deviceId":"46813567"}|1","15":"{"command":"Menu","type":"IRCommand","deviceId":"46813567"}|1"}
[8/19/2020, 9:49:01 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"32038360","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":320,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866517,"wifiStatus":1,"activityStatus":1,"runningActivityList":"","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:49:03 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"32038360","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":321,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866539,"wifiStatus":1,"activityStatus":2,"runningActivityList":"","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:49:03 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"32038360","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":322,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866539,"wifiStatus":1,"activityStatus":2,"runningActivityList":"32038360","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:49:03 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : Refreshing activity to 32038360
[8/19/2020, 9:49:03 PM] [Harmony Hub] (Harmony Hub)keysMap is :{"0":"{"command":"Rewind","type":"IRCommand","deviceId":"46813567"}|1","1":"{"command":"FastForward","type":"IRCommand","deviceId":"46813567"}|1","2":"{"command":"SkipForward","type":"IRCommand","deviceId":"46813567"}|1","3":"{"command":"SkipBack","type":"IRCommand","deviceId":"46813567"}|1","4":"{"command":"DirectionUp","type":"IRCommand","deviceId":"46813567"}|1","5":"{"command":"DirectionDown","type":"IRCommand","deviceId":"46813567"}|1","6":"{"command":"DirectionLeft","type":"IRCommand","deviceId":"46813567"}|1","7":"{"command":"DirectionRight","type":"IRCommand","deviceId":"46813567"}|1","8":"{"command":"Select","type":"IRCommand","deviceId":"46813567"}|1","9":"{"command":"Back","type":"IRCommand","deviceId":"46813567"}|1","10":"{"command":"Home","type":"IRCommand","deviceId":"46813567"}|1","11":"{"command":"Play","type":"IRCommand","deviceId":"46813567"}|1","15":"{"command":"Menu","type":"IRCommand","deviceId":"46813567"}|1"}
with ir control in hand
[8/19/2020, 9:50:50 PM] [Harmony Hub] (Harmony Hub)INFO - SET Characteristic.Active 0
[8/19/2020, 9:50:50 PM] [Harmony Hub] (Harmony Hub)INFO - value of Characteristic.ActiveIdentifier 32038360
[8/19/2020, 9:50:50 PM] [Harmony Hub] (Harmony Hub)INFO - switching off
[8/19/2020, 9:50:50 PM] [Harmony Hub] (Harmony Hub)INFO - sendInputCommand : Activty PowerOff will be activated
[8/19/2020, 9:50:51 PM] [Harmony Hub] (Harmony Hub)INFO - activityCommand : Returned from hub {"cmd":"harmony.activityengine?runactivity","code":200,"id":"0.45734269950051587","msg":"OK"}
[8/19/2020, 9:50:51 PM] [Harmony Hub] (Harmony Hub)keysMap is :{}
[8/19/2020, 9:50:51 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"32038360","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":323,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866539,"wifiStatus":1,"activityStatus":3,"runningActivityList":"32038360","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:51:00 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"-1","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":324,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866539,"wifiStatus":1,"activityStatus":0,"runningActivityList":"32038360","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
[8/19/2020, 9:51:00 PM] [Harmony Hub] (Harmony Hub)INFO - onMessage : received message : {"type":"connect.stateDigest?notify","data":{"sleepTimerId":-1,"runningZoneList":[],"sequence":false,"activityId":"-1","errorCode":"200","syncStatus":0,"updates":{"100":"4.14.112","106":"4.14.112"},"stateVersion":325,"tzOffset":"7200","mode":3,"hubSwVersion":"4.15.264","deviceSetupState":[],"tzoffset":"7200","isSetupComplete":true,"configVersion":225,"activitySetupState":false,"time":1597866539,"wifiStatus":1,"activityStatus":0,"runningActivityList":"","tz":"CET-1CEST,M3.4.0,M10.4.0/3","discoveryServer":"http://svcs.myharmony.com/Discovery/Discovery.svc","contentVersion":96,"hubUpdate":false,"discoveryServerCF":"https://cf-svcs.myharmony.com/Discovery/Discovery.svc","accountId":"9966500"}}
Config
{
"platform": "HarmonyHubWebSocket",
"mainActivity": "Center",
"hubIP": "<IP_ADDRESS>",
"name": "Harmony Hub"
}
Additional context

LG TV
Apple TV

Hi, I have the same issue since a few days. I found in my Harmony Hub setup that the XMMP was disabled. Have you check that ? For me, I enabled it but I still can't execute activityCommand using my Home app with my iPhone. The Harmony app is still working perfectly. Very weird. I don't have any log from that plugin, is there a way to enable a debug mode ?

Hi, xmpp does not need to be enabled for this plugin. Could you telle me hub firmware revision please ? What does not work : commands through remote control widget or activities switch or tv accessory in home app ?

@nicoduj  thanks for inquiry. I'm glad you've decided to look at this topic.
Could you telle me hub firmware revision please ?
4.15.264
commands through remote control widget or activities switch or tv accessory in home app?
commands through remote control widget
work without problems
activities switch
not work anymore - only if logitech remote is active
tv accessory in home app
not work anymore - only if logitech remote is active
try fix ip mode if you are on auto discover
is already ip mode
Config
{
"platform": "HarmonyHubWebSocket",
"mainActivity": "Center",
"hubIP": "<IP_ADDRESS>",
"name": "Harmony Hub"
}

Thanks, have the same hub version. Since you talk about a remote "on", I think you have one with a lcd screen right ? And when you say on, it means screen activated ?

@nicoduj
Thanks, have the same hub version. Since you talk about a remote "on", I think you have one with a lcd screen right ? And when you say on, it means screen activated ?
I understand that this sounds relatively crazy but that's how it is. When the lcd display is on the command runs through. I also see in the display of the remote that this command is now also executed. if off, the command is no longer executed the command by the hub
I also see from your config that you don't have any switch, can try publish them and tell me if they work (I think you were talking about inputs on tv accessory)
my new config:
{
"platform": "HarmonyHubWebSocket",
"mainActivity": "Center",
"showCommandsAtStartup": true,
"hubIP": "<IP_ADDRESS>",
"switchAccessories": true,
"activitiesToPublishAsAccessoriesSwitch": [
"Center"
],
"name": "Harmony Hub"
},
the same here.... the new switch center switch on after 10 sec back to off and no change on the harmony command.
Also, are you on homebridge or hoobs ?
homebridge Version 1.1.2
And finally, does it has the same behavior if you launch harmony app on a phone ?
here it also looks like problems related to the remote.

@nicoduj SUPER !!!!! Okay, thats it... i have never changed this setting but only the remote setting is entered here. i have now set up all devices. now everything is as it always was. So no bugs in your software at all. thanks for the great help.

Nice if it works ! Was not aware of this capacity (I have a very simple remote with no screen)


Examples Ep: add Julia variant

Is there enough by now to "translate" to Julia with little complication?
(GPU-ifying Python variant may be needed first.)

Great job!


⚠ Bofrost.es has degraded performance

In dc2f81a, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1483 ms

Resolved: Bofrost.es performance has improved in 648c830 after 7 minutes.


file type filtering

Does this plug-in provide file type filtering?

+1

Thank you for your reply. I'm sorry for my misrepresentation. I mean when I submit a file of the wrong type, there will be friendly prompts.

I'm not familiar with the front end. If my requirement are wrong, please don't hit me, hahahaha

There would be two layers that you would need to check. First being your front-end, which you can do with the provided example or by writing some code that can check the file types and prevent uploading.
The other layer would be your server, after receiving the file that is acceptable. otherwise you could return some kind of server response to your front-end.

So I can't do this only on the front-end,right?thank you very much!

Hi @Leenshady, it's not the purpose of this plugin and as @jessycormier said it's not a good practice to do that only on the front side.
BTW thanks for using my plugin and thanks @jessycormier for answering 👍


"Parent of" sticks around after resolving conflict

The ||||| marker isn't removed when the conflict is resolved and ends up in the codebase.

Sorry for the really late reply but need a sample file where this happens. Thanks!


SVGs do not appear properly in Microsoft Edge

- Do you want to request a feature or report a bug?
bug
- What is the current behavior?
SVGs run off the edge of the media library view in Microsoft Edge. They seem to appear properly in FireFox and Chrome.
Broken:

Correct:

Closing as stale. Please comment if still relevant


invalid transactions on new OUI initialization

When setting up an OUI, we had repeated "bad_nonce" error from Router, which was trying to write a filter and open multiple state channels (oddly with 45 and 90 block expirations, depsite .env-router being set for 45).
Logs here
router.log
It seems like on boot, filter write and SCs are spammed and mutually invalidating each other (nonce collisions?).
We tried rolling back a few Router versions, to no avail. Finally, we set ROUTER_XOR_FILTER_WORKER=false and restarted which appeared to make the state channels work okay.

The 2 state channels will have different expiration date so that they can overlap.
There should not be any collision in between the 2 nonces  as they are different.
After talk with Louis seems like the chain was having issue which can cause so "funky"  behavior for the state channels.
Will close the issue for now as we already have the other state channels issue reported here https://github.com/helium/router/issues/223


Allow fetching of published objects without token

This MR adds a new endpoint which allows for the fetching of published BCOs without a token.
Closes #46 Closes #43

This just needs to be tested.

Tested; worked to retrieve object w/o token.
GET request to api/objects/published/
Returns
[
    {
        "id": 1,
        "contents": {
            "test_key": "test_value",
            "object_id": "http://<IP_ADDRESS>:8000/BCO_000010/1.0"
        },
        "object_class": "",
        "object_id": "http://<IP_ADDRESS>:8000/BCO_000010/1.0",
        "owner_group_id": "anon",
        "owner_user_id": "anon",
        "prefix": "BCO",
        "schema": "IEEE",
        "state": "PUBLISHED",
        "last_update": "2021-11-10T19:57:41Z"
    }
]


Subsequent declarations screw up the previous models

Hello, when I have 1 model, it works great (dynamic_dt below predicts correctly), but when I declare multiple ones (dynamic_dt, mde_dt, ...etc) the results are not accurate. What is happening here, how can I fix this?

Sorry for the delayed response @mysticaltech, and thanks for filing this bug. I was able to locate the issue in a shared variable used, that is now fixed in the latest release (>= 0.3.4). Feel free to re-open if I missed anything. Thanks!


api: migrate to jakarta.inject as the default api, with shims for bac…

…k-compat with javax.inject

Codecov Report
Attention: Patch coverage is 70.58824% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 78.19%. Comparing base (c4a07ed) to head (d50dcfe).

Files
Patch %
Lines

...a/com/noleme/vault/legacy/VaultLegacyCompiler.java
63.63%
1 Missing and 3 partials :warning:

src/main/java/com/noleme/vault/Vault.java
0.00%
0 Missing and 1 partial :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##             master      #96      +/-   ##
============================================
- Coverage     78.37%   78.19%   -0.19%
- Complexity      591      596       +5
============================================
  Files            74       74
  Lines          1716     1720       +4
  Branches        256      257       +1
============================================
  Hits           1345     1345
- Misses          280      281       +1
- Partials         91       94       +3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Meter values

can you explain about the meter value fucntion , how to print it on Serial monitor?
it showing zero value in steve dashboard ..

zits showing empty in value , uint , phase , measurand section ?

Sorry that your issue remained unanswered. I'm closing this assuming it's no longer relevant.


add multi private quantiles

Current dependencies on/for this PR:

main

PR #702

PR #753

PR #703

PR #704

PR #754

PR #705

PR #874

PR #907

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#915  👈
#913 : 1 other dependent PR (#952 )
#908 : 1 other dependent PR (#1479 )
#890 : 2 other dependent PRs (#774 , #856 )
#829 : 2 other dependent PRs (#854 , #888 )
#1515
#819
#868 : 1 other dependent PR (#864 )
#797 : 1 other dependent PR (#824 )
#847
#1454
#795
#1167
#769 : 1 other dependent PR (#771 )
#767
#765
#763
#917 : 1 other dependent PR (#921 )
#916
#907
#874
#705
#754
#704
#703
#753
#702
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @PaulineMauryL and the rest of your teammates on  Graphite

Closing as the implementation will significantly change-- this will need to be implemented outside of Polars, but will call into Polars.


Implementation of getCallSets required for HtslibVariantSet and SimulatedVariantSet

We need to implement getCallSets for the VariantSet implementations. For the HtslibVariantSet, we need  to create a GACallSet for every sample name. For the simulated variant set we should create a simulated sample name for all of the available calls. We should probably create the CallSet objects at initialisation time, and then implementing getCallSets will be trivial.
The majority of this can be performed the AbstractVariantSet class, and we can also move the convertCallSet method in WormtableVariantSet into the superclass.

Fixed in #295.


don't actually raise a DeprecationWarning

If you raise the DeprecationWarning then it acts as an actual exception.

It's intentional.  DeprecationWarning is a subclass of Exception, and people shouldn't be using sh.args anymore due to its lack of safety.

I see, it was actually removed. It still seems that this should be a different exception. I'm probably not the only person who was surprised that a warning was really an error.


implment bignum validator (optional validators Draft 7)

from #7, splitting into separate issues

Because json.Unmarshal unmarshals to float64 and the entire standard library json package is unaware of bit.Int, big.Float in math/big, need to write custom marshal/unmarshal functions that use json.RawMessage to get to the value

You can prevent the json package from unmarhalling numbers into float64  by using the Decoder.UseNumber. This will decode numbers into a json.Number, which is just a string.


Autumn cleaning part 3 - split transactron/core.py

Here is proposition to split core.py into smaller parts. Tests don't work yet (particularly I haven't started to solve circular imports yet).  Please comment about split and naming.
Method, Transaction, TransactionBase, TransactionManager are very big classes, so I decided that each of them will be in separate file.

There were needed some changes in transactron code to break cyclic references. Some of them are imports inside functions instead of top level imports. Affected functions:

MethodMap.transactions_for
Transaction.init
TransactionBase.context

The alternative is to use absolute names, which will be ugly in my opinion.

Second proposition has been just uploaded. Method, Transaction and TransactionBase still are in separate files. But imports from insides functions have been removed. This removal was possible because of:

Change of type hints from TransactionOrMethod to TransactionBase (in MethodMap, TransactionBase, Relation and RelationBase)
Moving TransactionContext to creators

Changes:

modules have been renamed to creators
sugar has been removed
relation_database has been removed

I think that this looks much better than the initial proposal. Would like to get a second opinion before deciding.

The big problem with this PR is that I see NO WAY to check what actual changes were made to the code, so there is no way to review them.

The big problem with this PR is that I see NO WAY to check what actual changes were made to the code, so there is no way to review them.

Yes, it is the problem and the reason why I wanted to have all split to small PR. I have two ideas:

I can create separate PR in which I will introduce all needed modification without moving files
You can compare first commit in this review with the newest. I did moves in the first, so all other contain changes which were needed to make the code works.

You can compare first commit in this review with the newest. I did moves in the first, so all other contain changes which were needed to make the code works.

Unfortunately, some of your later commits contain both moves and code changes, e.g. "Remove relation database". As you smuggled weakening of the type guarantees in the most fundamental code in this project there, I'm now becoming paranoid with regard to your changes.

Ok. So I will try to split the changes to separate PR without any moves.


Update TildeETerminology.java

Changed wrong header name for authentication:
https://en.wikipedia.org/wiki/Basic_access_authentication

Thanks for the bugfix. I have merged the request and updated freme-parent so the new changes will be installed on the server.


[Bug]: 23.9 - ShapeError from electrolyte equation when specifying "Ambient temperature [K]" as pybamm.Interpolant

PyBaMM Version
23.9
Python Version
3.9.13
Describe the bug
As of 23.9, using a pybamm.Interpolant to specify the "Ambient temperature [K]", to run a spatially isothermal model with a specified transient temperature profile, raises a ShapeError within Discretisation.process_dict() acting on the equation with key "Electrolyte current density [A.m-2]".
This parameter definition pattern was supported and functional in 23.5.
Steps to Reproduce
Works in 23.5.  If a symbol
    948 cannot be evaluated directly (e.g. it is a `Variable` or `Parameter`), it is
    949 instead given an arbitrary domain-dependent shape.
    950 """
--> 951 evaluated_self = self.evaluate_for_shape()
    952 if isinstance(evaluated_self, numbers.Number):

File ...\pybamm\expression_tree\symbol.py:769, in Symbol.evaluate_for_shape(self)
    768 except AttributeError:
--> 769     self._saved_evaluate_for_shape = self._evaluate_for_shape()
    770     return self._saved_evaluate_for_shape

File ...\pybamm\expression_tree\binary_operators.py:122, in BinaryOperator._evaluate_for_shape(self)
    121 right = self.children[1].evaluate_for_shape()
--> 122 return self._binary_evaluate(left, right)

File ...\pybamm\expression_tree\binary_operators.py:363, in Division._binary_evaluate(self, left, right)
    362 else:
--> 363     return left / right

ValueError: operands could not be broadcast together with shapes (41,1) (60,1)

During handling of the above exception, another exception occurred:

ShapeError                                Traceback (most recent call last)
Cell In[1], line 29
     16 parameter_values.update(
     17     {
     18         "Initial temperature [K]": 298.15,
     19         "Ambient temperature [K]": temp_drive_cycle
     20     }
     21 )
     23 sim = pybamm.Simulation(
     24     model=pybamm.lithium_ion.DFN(),
     25     parameter_values=parameter_values,
     26     experiment=experiment
     27 )
---> 29 sol = sim.solve()
     30 sol.plot()
     32 plt.plot(sol["Time [s]"].entries, sol["Volume-averaged cell temperature [K]"].entries - 273.15)

File ...\pybamm\simulation.py:618, in Simulation.solve(self, t_eval, solver, check_model, save_at_cycles, calc_esoh, starting_solution, initial_soc, callbacks, showprogress, **kwargs)
    616 elif self.operating_mode == "with experiment":
    617     callbacks.on_experiment_start(logs)
--> 618     self.build_for_experiment(check_model=check_model, initial_soc=initial_soc)
    619     if t_eval is not None:
    620         pybamm.logger.warning(
    621             "Ignoring t_eval as solution times are specified by the experiment"
    622         )

File ...\pybamm\simulation.py:462, in Simulation.build_for_experiment(self, check_model, initial_soc)
    455 self.op_conds_to_built_solvers = {}
    456 for (
    457     op_cond,
    458     model_with_set_params,
    459 ) in self.experiment_unique_steps_to_model.items():
    460     # It's ok to modify the model with set parameters in place as it's
    461     # not returned anywhere
--> 462     built_model = self._disc.process_model(
    463         model_with_set_params, inplace=True, check_model=check_model
    464     )
    465     solver = self._solver.copy()
    466     self.op_conds_to_built_solvers[op_cond] = solver

File ...\pybamm\discretisations\discretisation.py:214, in Discretisation.process_model(self, model, inplace, check_model, remove_independent_variables_from_rhs)
    210 # Discretise variables (applying boundary conditions)
    211 # Note that we **do not** discretise the keys of model.rhs,
    212 # model.initial_conditions and model.boundary_conditions
    213 pybamm.logger.verbose("Discretise variables for {}".format(model.name))
--> 214 model_disc.variables = self.process_dict(model.variables)
    216 # Process parabolic and elliptic equations
    217 pybamm.logger.verbose("Discretise model equations for {}".format(model.name))

File ...\pybamm\discretisations\discretisation.py:698, in Discretisation.process_dict(self, var_eqn_dict, ics)
    695         eqn = pybamm.FullBroadcast(eqn, broadcast_domains=eqn_key.domains)
    697 pybamm.logger.debug("Discretise {!r}".format(eqn_key))
--> 698 processed_eqn = self.process_symbol(eqn)
    699 # Calculate scale if the key has a scale
    700 scale = getattr(eqn_key, "scale", 1)

File ...\pybamm\discretisations\discretisation.py:730, in Discretisation.process_symbol(self, symbol)
    728     return self._discretised_symbols[symbol]
    729 except KeyError:
--> 730     discretised_symbol = self._process_symbol(symbol)
    731     self._discretised_symbols[symbol] = discretised_symbol
    732     discretised_symbol.test_shape()

File ...\pybamm\discretisations\discretisation.py:766, in Discretisation._process_symbol(self, symbol)
    764 left, right = symbol.children
    765 disc_left = self.process_symbol(left)
--> 766 disc_right = self.process_symbol(right)
    767 if symbol.domain == []:
    768     return pybamm.simplify_if_constant(
    769         symbol._binary_new_copy(disc_left, disc_right)
    770     )

File ...\pybamm\discretisations\discretisation.py:730, in Discretisation.process_symbol(self, symbol)
    728     return self._discretised_symbols[symbol]
    729 except KeyError:
--> 730     discretised_symbol = self._process_symbol(symbol)
    731     self._discretised_symbols[symbol] = discretised_symbol
    732     discretised_symbol.test_shape()

File ...\pybamm\discretisations\discretisation.py:765, in Discretisation._process_symbol(self, symbol)
    762 if isinstance(symbol, pybamm.BinaryOperator):
    763     # Pre-process children
    764     left, right = symbol.children
--> 765     disc_left = self.process_symbol(left)
    766     disc_right = self.process_symbol(right)
    767     if symbol.domain == []:

File ...\pybamm\discretisations\discretisation.py:730, in Discretisation.process_symbol(self, symbol)
    728     return self._discretised_symbols[symbol]
    729 except KeyError:
--> 730     discretised_symbol = self._process_symbol(symbol)
    731     self._discretised_symbols[symbol] = discretised_symbol
    732     discretised_symbol.test_shape()

File ...\pybamm\discretisations\discretisation.py:765, in Discretisation._process_symbol(self, symbol)
    762 if isinstance(symbol, pybamm.BinaryOperator):
    763     # Pre-process children
    764     left, right = symbol.children
--> 765     disc_left = self.process_symbol(left)
    766     disc_right = self.process_symbol(right)
    767     if symbol.domain == []:

File ...\pybamm\discretisations\discretisation.py:732, in Discretisation.process_symbol(self, symbol)
    730 discretised_symbol = self._process_symbol(symbol)
    731 self._discretised_symbols[symbol] = discretised_symbol
--> 732 discretised_symbol.test_shape()
    734 # Assign mesh as an attribute to the processed variable
    735 if symbol.domain != []:

File ...\pybamm\expression_tree\symbol.py:977, in Symbol.test_shape(self)
    975     self.shape_for_testing
    976 except ValueError as e:
--> 977     raise pybamm.ShapeError("Cannot find shape (original error: {})".format(e))

ShapeError: Cannot find shape (original error: operands could not be broadcast together with shapes (41,1) (60,1) )

@rtimms Feels like this is a side effect of #3257 where an unidentified breaking change has crept in. Is it the case that in this parameter definition structure, ambient temperature now has to be f(y,z,t), and can't just be f(t)?

Correct, you need to wrap the Interpolant in a function of (y,z,t)

This should have been documented as a breaking change. I don't know if there is some nice way to automatically detect if it is just a function of a single variable, in which case it is assumed to be a function of time only.

@rtimms If the thermal model is "isothermal" or "lumped", isn't every f(y,z,[vars]) by definition f([vars])?
It feels like this drives required usage in the opposite direction from the geometry-agnosticism defined for these thermal models, also in #3257.

Yes, that is a fair point. At the moment, every FunctionParameter is defined as a function of the variables it could be a function of, in any model/geometry, so we just define the function once in the parameters class. This is ok for variables that depend on other variables, e.g. D(c,T), but I agree shouldn't be the case for variables that depend on space and time. We should define these differently based on the model geometry so that we can throw an explicit and informative error.

Historically, most of the thermal stuff in PyBaMM was developed for single-layer pouch cell models, so there are lots of hangovers from design choices based on that.

I'd feel it's most Pythonic to put optional arguments last, and explicitly allow them to be optional. In general we don't want to have to write functions whose return values don't depend on their arguments, right?
What's happened here is that you've enabled complicated behaviour by requiring simple behaviour to have a complicated calling pattern!

#
# Example showing how to solve the DFN with a varying ambient temperature
#

import pybamm
import numpy as np

pybamm.set_logging_level("DEBUG")

# load model
options = {"thermal": "lumped"}
model = pybamm.lithium_ion.DFN(options)

# create geometry
geometry = model.default_geometry

# load parameter values and process model and geometry
times = np.arange(0, 1810, 10)
tmax = max(times)

def ambient_temperature(y, z, t):
    return pybamm.Interpolant(times, 298.15 + 20 * (times / tmax), pybamm.t)

param = model.default_parameter_values
param.update(
    {"Ambient temperature [K]": ambient_temperature}, check_already_exists=False
)
param.process_model(model)
param.process_geometry(geometry)

# set mesh
var_pts = {"x_n": 30, "x_s": 30, "x_p": 30, "r_n": 10, "r_p": 10}
mesh = pybamm.Mesh(geometry, model.default_submesh_types, var_pts)

# discretise model
disc = pybamm.Discretisation(mesh, model.default_spatial_methods)
disc.process_model(model)

# solve model
t_eval = np.linspace(0, 3600 / 2, 100)
solver = pybamm.CasadiSolver(mode="fast", atol=1e-6, rtol=1e-3)
solution = solver.solve(model, t_eval)

# plot
plot = pybamm.QuickPlot(
    solution, ["X-averaged cell temperature [K]", "Ambient temperature [K]"]
)
plot.dynamic_plot()

That works, but I get an error with your example. Will look into it.

@rtimms Any further insight into why the fix is not effective for the test case I suggested?

@ejfdickinson I'll make it a priority to look this week


Unable to load f1.h5

I trained the CNN and it worked well over all 100 epochs, but when I ran python GUI.py I got the following error:
Traceback (most recent call last):
  File "GUI.py", line 11, in <module>
    model = load_model('f1.h5')
  File "/usr/local/lib/python2.7/site-packages/keras/engine/saving.py", line 492, in load_wrapper
    return load_function(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/keras/engine/saving.py", line 583, in load_model
    with H5Dict(filepath, mode='r') as h5dict:
  File "/usr/local/lib/python2.7/site-packages/keras/utils/io_utils.py", line 191, in __init__
    self.data = h5py.File(path, mode=mode)
  File "/usr/local/lib/python2.7/site-packages/h5py/_hl/files.py", line 408, in __init__
    swmr=swmr)
  File "/usr/local/lib/python2.7/site-packages/h5py/_hl/files.py", line 173, in make_fid
    fid = h5f.open(name, flags, fapl=fapl)
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "h5py/h5f.pyx", line 88, in h5py.h5f.open
IOError: Unable to open file (file signature not found)

Not sure why I am unable to load the weights file.

I solved the error: replace model = load_model('f1.h5') with
with h5py.File(h5file,'r') as fid:
     model = load_model(fid)


[#847] Fixed

Main changes:

Hello @Didou09! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file tofu/data/_class8_plot.py:

Line 1350:61: W292 no newline at end of file


[BUG] Clear filter option for sub-filters missing

Is there an existing issue for this?

[X] I have searched the existing issues

Konveyor version
7.0.2
Priority
Critical
Current Behavior
Need to be able to clear select values for a specific sub filter. Instead of hunting and pecking through the chip group. For example, what if i just want to clear all application names instead of clearing all filters here:

Expected Behavior
I'd like to see an option to clear all filters of a sub filter type.
How Reproducible
Always (Default)
Steps To Reproduce
No response
Environment
- OS:

Anything else?
No response

https://www.patternfly.org/components/chip/#chip-groups-with-removable-categories


Increase the timeout of slow buildbots

On x86 Gentoo Non-Debug with X, test_peg_generator was killed after
25 minutes, it took 22 minutes on a previous successful build.

@pablogsal @zware: FYI I changed the project to use "Squash and merge", I'm not a big fan of merge commits.


Categorization and search

We could maybe use the hugo taxonomy feature to implement this functionality: https://gohugo.io/content-management/taxonomies/
Markus, Richard and Lucas checkout the possibilities while Lola collects categories from the BRIDGE members.

A simple search function based on a JS package is enabled now.

The taxonomy feature is enabled. Here is an example: https://smart-grid-use-cases.github.io/docs/usecases/platone/uc-ge-1-island-mode/


How to cast xsimd::batch<uint8_t, 16> to xsimd::batch<uint32_t, 4>

Hi @JohanMabille @serge-sans-paille ,
Thank you for your time.
In Arrow, I would like to cast xsimd::batch<uint8_t, 16> to xsimd::batch<uint32_t, 4>
for operating some shared data buffer:
using simd_batch_8 = xsimd::batch<uint8_t, 16>;
using simd_batch_32 = xsimd::batch<uint32_t, 4>;

simd_batch_32 rtn;
simd_batch_8 lhs, rhs;

rtn= xsimd::zip_lo(
    static_cast<simd_batch_32>(lhs),
    static_cast<simd_batch_32>(rhs),);

It failed to compile in Arm Neon, but it works correctly in x86 SSE:
error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
  367 |         using is_array_initializer_t = typename is_array_initializer<T, N, Args...>::type;

I noted that it would check the variadic arguments of template:
template <class... Args, class Enable = detail::is_array_initializer_t<uint8_t, 16, Args...>>
I didn't find  similar checking in xsimd_sse_int8.hpp,  xsimd_sse_int16.hpp,  xsimd_sse_int32.hpp...
It was found in Neon code branches:
https://github.com/xtensor-stack/xsimd/blob/master/include/xsimd/types/xsimd_neon_int8.hpp#L49
https://github.com/xtensor-stack/xsimd/blob/master/include/xsimd/types/xsimd_neon_int16.hpp#L49
May I ask the checking of template arguments is necessary here?
How to correctly cast them?
Thanks.

Hi, @serge-sans-paille
Maybe I missed something.
Could please share the way to cast <uint8_t, 16> to <uint32_t, 4> in xsimd?
Is it correct to cast by static_cast?
xsimd::batch<uint8_t, 16> batch8;
xsimd::batch<uint32_t, 4> batch32;

//casting by static_cast ?
batch32 = static_cast<xsimd::batch<uint32_t, 4>>(batch8);

Yeah, that's fine, it's the same register underneath, see https://godbolt.org/z/x8Trdb1cz

ok, it's fine on X86 but not on arm, which looks like a bug to me, let me investigate that.

Thanks for your feedback.

ok, it's fine on X86 but not on arm, which looks like a bug to me, let me investigate that.
Yes, static_cast  doesn't work on Arm64.
I'm working on adding these casing operations to xsimd and would like to submit the PR soon.

I'm working on adding these casing operations to xsimd and would like to submit the PR soon.

Great! I'm looking forward to review these

@guyuqi I believe you fixed that one in #487, correct?


docker push to registry with an mdns domain

Was unsuccessful pushing to a registry that had an mdns domain.
(this didn't work) docker push docker-registry.local:5000/fedora-puppet-sever
2014/03/07 07:15:20 Invalid Registry endpoint: Get http://docker-registry.local:5000/v1/_ping: dial tcp: lookup docker-registry.local: no such host
(this worked)docker push <IP_ADDRESS>:5000/fedora-puppet-sever

seems to be a problem with either your setup od boot2docker hosts so please open there if this is still an issue


Add Initial Support for xeus-cpp-lite

Description
Please include a summary of changes, motivation and context for this PR.
Fixes # (issue)
Type of change
Please tick all options which are relevant.

[ ] Bug fix
[x] New feature
[ ] Added/removed dependencies
[ ] Required documentation updates

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.80%. Comparing base (a7649c0) to head (7a91638).

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #199   +/-   ##
=======================================
  Coverage   80.80%   80.80%
=======================================
  Files          19       19
  Lines         974      974
  Branches       93       93
=======================================
  Hits          787      787
  Misses        187      187

Files with missing lines
Coverage Δ

src/xinterpreter.cpp
91.39% <100.00%> (ø)

Files with missing lines
Coverage Δ

src/xinterpreter.cpp
91.39% <100.00%> (ø)

Also some more context.
We need a way to store the temporarily generated files (incr_module_xx.o and incr_module_xx.wasm).
i) Jupyter Lite uses kind-of a fetch-based FS, except it's an in-browser server proxy. But it acts as if files were coming from a normal Jupyter server.
ii) For temporary/local files we probably shouldn't want to involve the server so using MEMFS makes sense here.
iii) Hence we move these temporary files to the "/tmp/" directory that emscripten provides by default to store temporary files.
There might be better methods to address this that I shall look into but for now the most straightforward way to do this is using this patch. (https://github.com/emscripten-forge/recipes/blob/main/recipes/recipes_emscripten/llvm/patches/shift_temporary_files_to_tmp_dir.patch)
And the discussion with Sam Clegg (maintainer of emscripten) and Martin Renou (maintainer of Jupyter Lite) here
https://github.com/emscripten-core/emscripten/issues/23228
Hence to get the above working

I built llvm with the patch
I then built cppinterop on top this llvm
Used it for xeus-cpp-lite.

The above would give you the following
https://github.com/user-attachments/assets/c8eeb845-4d08-4099-986a-d9e459d17660


Can't override Success of RequestTelemetry

List of NuGet packages and version that you are using: Microsoft.ApplicationInsights.AspNetCore 2.18.0
Runtime version: netcoreapp3.1
Hosting environment (e.g. Azure Web App, App Service on Linux, Windows, Ubuntu, etc.): Windows 10, Azure Web App

Describe the bug
The task is to override the Success of some calls to the Web API which consciously returns 404 in the case when some entity isn't found in order not to see these requests on Failures section in Azure portal.
The approach was taken from the docs https://docs.microsoft.com/en-us/azure/azure-monitor/app/api-filtering-sampling#addmodify-properties-itelemetryinitializer
To Reproduce

Create .net core 3.1 Web API project
Add latest Microsoft.ApplicationInsights.AspNetCore Nuget package
Add AppInsigts telemetry in Startup.Configure services: services.AddApplicationInsightsTelemetry();
Create an initializer in the same way it is done in docs:

 public class MyTelemetryInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            if (telemetry is RequestTelemetry request && request.ResponseCode == "404") {
                request.Success = true;
            }
        }
    }

Register initializer in the Startup:             services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
Make sure MyTelemetryInitializer.Initialize is being called and request.Success is set to true
See the results in App Insights Search

Can you look at the VS Debug window output (it should show the full json payload), and paste it here as well? That'll help confirm if this is an VS issue or not.

Pay attention that I observe the same situation in AppInsights on Azure Portal.
Application Insights Telemetry (unconfigured): {
    "name": "AppRequests",
    "time": "2021-09-01T10:11:32.7786101Z",
    "tags": {
        "ai.application.ver": "<IP_ADDRESS>",
        "ai.cloud.roleInstance": "LT-913658",
        "ai.user.id": "UrPUAgWCguh8QjAJYsAFgh",
        "ai.operation.id": "f64dba1a584b9240b1a2230ff4a63ad7",
        "ai.operation.name": "GET WeatherForecast/Get",
        "ai.location.ip": "::1",
        "ai.internal.sdkVersion": "aspnet5c:2.18.0+a9fc6af7538cc287d263d9bc216c7910bfc34566",
        "ai.internal.nodeName": "LT-913658.kyiv.ciklum.net"
    },
    "data": {
        "baseType": "RequestData",
        "baseData": {
            "ver": 2,
            "id": "5c7b8dc33e89ad48",
            "name": "GET WeatherForecast/Get",
            "duration": "00:00:00.1001573",
            "success": true,
            "responseCode": "404",
            "url": "https://localhost:44313/weatherforecast",
            "properties": {
                "_MS.ProcessedByMetricExtractors": "(Name:'Requests', Ver:'1.1')",
                "DeveloperMode": "true",
                "AspNetCoreEnvironment": "Development"
            }
        }
    }
}
Application Insights Telemetry (unconfigured): {
    "name": "AppRequests",
    "time": "2021-09-01T10:11:33.1465644Z",
    "tags": {
        "ai.application.ver": "<IP_ADDRESS>",
        "ai.cloud.roleInstance": "LT-913658",
        "ai.user.id": "UrPUAgWCguh8QjAJYsAFgh",
        "ai.operation.id": "5d61966b2dfaab41868cdef3f30cd8df",
        "ai.operation.name": "GET /favicon.ico",
        "ai.location.ip": "::1",
        "ai.internal.sdkVersion": "aspnet5c:2.18.0+a9fc6af7538cc287d263d9bc216c7910bfc34566",
        "ai.internal.nodeName": "LT-913658.kyiv.ciklum.net"
    },
    "data": {
        "baseType": "RequestData",
        "baseData": {
            "ver": 2,
            "id": "98e7a15632268349",
            "name": "GET /favicon.ico",
            "duration": "00:00:00.0016771",
            "success": true,
            "responseCode": "404",
            "url": "https://localhost:44313/favicon.ico",
            "properties": {
                "_MS.ProcessedByMetricExtractors": "(Name:'Requests', Ver:'1.1')",
                "DeveloperMode": "true",
                "AspNetCoreEnvironment": "Development"
            }
        }
    }
}
Application Insights Telemetry (unconfigured): {
    "name": "AppRequests",
    "time": "2021-09-01T10:11:34.5710993Z",
    "tags": {
        "ai.application.ver": "<IP_ADDRESS>",
        "ai.cloud.roleInstance": "LT-913658",
        "ai.user.id": "UrPUAgWCguh8QjAJYsAFgh",
        "ai.operation.id": "6616c1ebc1879b4bae95e3254918d93a",
        "ai.operation.name": "GET /favicon.ico",
        "ai.location.ip": "::1",
        "ai.internal.sdkVersion": "aspnet5c:2.18.0+a9fc6af7538cc287d263d9bc216c7910bfc34566",
        "ai.internal.nodeName": "LT-913658.kyiv.ciklum.net"
    },
    "data": {
        "baseType": "RequestData",
        "baseData": {
            "ver": 2,
            "id": "62b23abbe3beef49",
            "name": "GET /favicon.ico",
            "duration": "00:00:00.0010633",
            "success": true,
            "responseCode": "404",
            "url": "https://localhost:44313/favicon.ico",
            "properties": {
                "_MS.ProcessedByMetricExtractors": "(Name:'Requests', Ver:'1.1')",
                "DeveloperMode": "true",
                "AspNetCoreEnvironment": "Development"
            }
        }
    }
}

The above json output shows that "success": true already, so SDK is working as expected (i.e it respects your override and serializes it too)

I was not able to reproduce this.
I copied the exact json into our powershell script (https://github.com/microsoft/ApplicationInsights-dotnet/blob/develop/troubleshooting/Ingestion/PostTelemetry.ps1).
I also tried to reproduce this by manually creating RequestTelemetry using the ConsoleApp in our Examples.sln (https://github.com/microsoft/ApplicationInsights-dotnet/tree/develop/examples).
            telemetryClient.Track(new RequestTelemetry
            {
                Timestamp = DateTimeOffset.Now,
                ResponseCode = "404",
                Success = false,
                Url = new Uri("http://www.bing.com"),
            });

            telemetryClient.Track(new RequestTelemetry
            {
                Timestamp = DateTimeOffset.Now,
                ResponseCode = "400",
                Success = true,
                Url = new Uri("http://www.bing.com"),
            });

            // Explicitly call Flush() followed by sleep is required in Console Apps.
            // This is to ensure that even if application terminates, telemetry is sent to the back-end.
            telemetryClient.Flush();
            Task.Delay(5000).Wait();

@ISkomorokh is this still occurring for you?
I would be very interested to know if you can reproduce this in any of our example projects.

@TimothyMothra yes, I was able to reproduce this with AspNetCoreWebApp example easily.

Add Issue action to the HomeController

        public IActionResult Issue()
        {
            return new NotFoundResult();
        }

Run the app and navigate to the http://......../Home/Issue
Check the Json and VS AppInsights UI. Everything is correct. success is false and Successful request is shown as false

Application Insights Telemetry: {
    "name": "AppRequests",
    "time": "2021-09-03T05:29:24.1161831Z",
    "iKey": "00000000-0000-0000-0000-000000000000",
    "tags": {
        "ai.application.ver": "<IP_ADDRESS>",
        "ai.cloud.roleInstance": "xxxxxxx",
        "ai.user.id": "UrPUAgWCguh8QjAJYsAFgh",
        "ai.operation.id": "fd153437098814488f6512f80deebb6b",
        "ai.operation.name": "GET Home/Issue",
        "ai.location.ip": "::1",
        "ai.internal.sdkVersion": "aspnet5c:2.18.0+d54bae8aeaf74b6fa08c8033c2ce54ea6d8f437b",
        "ai.internal.nodeName": "xxxxxxx"
    },
    "data": {
        "baseType": "RequestData",
        "baseData": {
            "ver": 2,
            "id": "e27bf9880f6ab647",
            "name": "GET Home/Issue",
            "duration": "00:00:00.0036758",
            "success": false,
            "responseCode": "404",
            "url": "https://localhost:44318/Home/Issue",
            "properties": {
                "AspNetCoreEnvironment": "Development",
                "_MS.ProcessedByMetricExtractors": "(Name:'Requests', Ver:'1.1')",
                "DeveloperMode": "true",
                "MyCustomKey": "MyCustomValue"
            }
        }
    }
}

Modify an existing telemetry initializer MyCustomTelemetryInitializer

internal class MyCustomTelemetryInitializer : ITelemetryInitializer
        {
            public void Initialize(ITelemetry telemetry)
            {
                // Replace with actual properties.
                (telemetry as ISupportProperties).Properties["MyCustomKey"] = "MyCustomValue";
                // new peace of code
                if (telemetry is RequestTelemetry requestTelemetry && requestTelemetry.ResponseCode == "404") {
                    requestTelemetry.Success = true;
                }
            }
        }

Run the app again and navigate to the http://......../Home/Issue
Check the Json and VS AppInsights UI. Json is correct. success is true and Successful request is shown as false which is incorrect

Application Insights Telemetry: {
    "name": "AppRequests",
    "time": "2021-09-03T05:32:51.9551237Z",
    "iKey": "00000000-0000-0000-0000-000000000000",
    "tags": {
        "ai.application.ver": "<IP_ADDRESS>",
        "ai.cloud.roleInstance": "xxxxxxx",
        "ai.user.id": "UrPUAgWCguh8QjAJYsAFgh",
        "ai.operation.id": "0c21b859211b904bb7c37f263f7833c7",
        "ai.operation.name": "GET Home/Issue",
        "ai.location.ip": "::1",
        "ai.internal.sdkVersion": "aspnet5c:2.18.0+d54bae8aeaf74b6fa08c8033c2ce54ea6d8f437b",
        "ai.internal.nodeName": "xxxxxxx"
    },
    "data": {
        "baseType": "RequestData",
        "baseData": {
            "ver": 2,
            "id": "1d251ecf12a2154c",
            "name": "GET Home/Issue",
            "duration": "00:00:00.0035988",
            "success": true,
            "responseCode": "404",
            "url": "https://localhost:44318/Home/Issue",
            "properties": {
                "DeveloperMode": "true",
                "_MS.ProcessedByMetricExtractors": "(Name:'Requests', Ver:'1.1')",
                "MyCustomKey": "MyCustomValue",
                "AspNetCoreEnvironment": "Development"
            }
        }
    }
}

And the same can be observed in Azure portal App Insights.

Today I noticed that it started to work right in Azure portal App Insights 👍


Cannot import project in Android Studio

Hi!
I am following the import instructions here: https://developer.android.com/jetpack/compose/setup#sample but get the following error in Android Studio (posted in the Kotlin-slack): https://kotlinlang.slack.com/archives/CJLTWPH7S/p1572702912308100
When pressing finish I get a dialog saying "Failed to find any projects in Git repository". Copying and opening the URL leads to the correct repo, and cloning and opening the repo in AS works fine. Others are also getting this error.

It's happening because there is no project in root for of repo, JetNews is subdirectory which project itself

I see. Changing the url to point to the subdirectory sounds like an easy thing to do. I guess someone responsible will fix it.

Maybe this should be reported on the android issue tracker instead of Github?
Otherwise, yes, feels like a one-line fix which really should be done, spoils the fun of swiftly following a nicely written onboarding tutorial.

Yeah, I agree, and the tutorials are really good!
I think this is it: https://issuetracker.google.com/issues/143634579

Thanks for reporting, the docs have been updated to point to the sub-directory.

@nickbutcher Are you sure this is a docs only issue? The import still fails.
I.e. if I follow official Compose tutorial and do this:
File -> New -> Import sample -> Jetnews sample

It still fails with an error reported above.
It seems that some index file needs to be updated too somewhere

Ah I see and can repro. Re-opening and investigating.

Thanks again for reporting, this was an incompatibility between Android Studio's sample importer and the kts build script this project uses. This has been fixed internally and will be released in an upcoming version of Android Studio. I'll leave this bug open and resolve when it is released.

Fixed in AS 4.0 Canary 2.


Update env.go to revert default port to 3000

For backwards compatibility with older versions of the helm chart
Pull request checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been reviewed and added / updated if needed (for bug fixes / features)
[x] Build was run locally and any changes were pushed
[x] Lint has passed locally and any fixes were made for failures

Pull request type
Please check the type of change your PR introduces:

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?
Default port has changed to 3005 from 3000. This causes deployments that have previously unset PORT environment variable to cease working.
Issue Number: N/A
What is the new behavior?
This PR Reverts this change
Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.368%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1730

Relevant Lines:
1741

💛  - Coveralls


Plandek deployment 2.0.0

What to do if the build fails?
At the moment contributors do not have access to the CI workflow triggered by StepLib PRs. In case of a failed build, we ask for your patience. Maintainers of Bitrise Steplib will sort it out for you or inform you if any further action is needed.
New Pull Request Checklist
Please mark the points which you did / accept.

[x] I will not move an already shared step version's tag to another commit
[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

New Step
Thank you for the new Step share! The CI check might will fail due to our extended validation engine. Nothing to worry about yet, we will get back to you shortly.

Hi @kdybicz sorry for my late response and thanks for the new step.
I left a few comments, pls check them!


default network_sync_base_url  seems have data outdate, any other suggestions for this

Hi I try to create a shadow fork of holeksy  wth default setting of sync_base_url : https://ethpandaops-ethereum-node-snapshots.ams3.digitaloceanspaces.com/
everything works ,but the data is far behand the current holesky , I didn't have snapshot local, any suggestion of which other url I could use to sync data ?

Hi @BlueShells. Sorry for the late reply. We had a bug on our snapshot instances that caused the snapshot to not be executed. This bug should be fixed now and more recent snapshots should appear in the comming 1-2 days for the sepolia and holesky networks. For now we'll have snapshots for geth,reth,nethermind and besu. We're waiting for erigon to make a release on their v3 to also include them on our snapshots.


How do you run your contextual bandit ?

How do you run your contextual bandit ?

Hi, an example is on the file bibtex_example.py.
This blog post explains the inner workings.


Camera rendering in MuJoCo - How to take a picture from a simulated camera and still keeping the GUI active

Hello there,
I'm a research assistant and I'm trying to take pictures of my MuJoCo simulation using a simulated camera.
Currently, I have my main rendering loop running:

main render loop

def run(self) -> None:
  """
  Method for running the MuJoCo viewer main loop.

  Returns:
  - None.
  """
  with mj.viewer.launch_passive(model=self._model, data=self._data, key_callback=self.keyboard_callback) as viewer:

	  # load initial state
	  load_mj_state(self._model, self._data, "home", self._lock)
	  mj.mj_step(self._model, self._data)

	  # Toggle site frame visualization.
	  if self._args.show_site_frames:
		  viewer.opt.frame = mj.mjtFrame.mjFRAME_SITE

	  while viewer.is_running():
		  step_start = time.time()

		  # Step the simulation.
		  mj.mj_step(self._model, self._data)

		  viewer.sync()
		  time_until_next_step = self.dt - (time.time() - step_start)
		  if time_until_next_step > 0:
			  time.sleep(time_until_next_step)

while I have my keyboard_callback function defined as

`keyboard_callback`

def keyboard_callback(self, key) -> None:
  """
  Method for the keyboard callback. This method should not be called explicitly.

  Parameters:
  - key: Keyboard input.

  Returns:
  - None.
  """
  if key == glfw.KEY_COMMA:
	  print(self.cam.image)

When I call the cam.image attribute, the following function is run

get image attribute
@property
def image(self) -> np.ndarray:
  """Return the captured RGB image."""
  self._renderer.update_scene(self._data, camera=self.name)
  self._img = self._renderer.render()
  self._renderer.update_scene(self._data)
  return self._img

The self._renderer is here a mj.Renderer object defined by self._renderer = mj.Renderer(self._model, self._height, self._width) where self._model is the model object loaded from the scene file.
After I call the image attribute, the GUI becomes unresponsive while the main rendering loop still seems to be running just fine. Ideally, I would want to control the GUI after i have rendered a picture from the camera.
All feedback and/or ideas for how I could progress/solve this problem of mine are very much appreciated!

Same issue.

Hi @qgallouedec
I believe I found a solution, so to help out I have written the following that you hopefully can use to solve your problem :)

define the camera in the scene file

Add camera to scene
	...
		<camera
		  	name="cam"
		  	pos="1 1 1"
			mode="targetbody"
			target="<insert name of a body>"
		/>
	</worldbody>
</mujoco>

Define camera class, here you can just name mine. In this class, I am using two utility functions: One for making a spatialmath SE3 homogeneous transformation matrices called make_tf and one for writing point clouds pcwrite

Here is my camera class
class Camera:
    def __init__(self, args, model, data, cam_name: str = "", save_dir="data/img/"):
        """Initialize Camera instance.

        Args:
        - args: Arguments containing camera width and height.
        - model: Mujoco model.
        - data: Mujoco data.
        - cam_name: Name of the camera.
        - save_dir: Directory to save captured images.
        """
        self._args = args
        self._cam_name = cam_name
        self._model = model
        self._data = data
        self._save_dir = save_dir + self._cam_name + "/"

        self._width = self._args.cam_width
        self._height = self._args.cam_height
        self._cam_id = self._data.cam(self._cam_name).id

        self._renderer = mj.Renderer(self._model, self._height, self._width)
        self._camera = mj.MjvCamera()
        self._scene = mj.MjvScene(self._model, maxgeom=10_000)

        self._image = np.zeros((self._height, self._width, 3), dtype=np.uint8)
        self._depth_image = np.zeros((self._height, self._width, 1), dtype=np.float32)
        self._seg_id_image = np.zeros((self._height, self._width, 3), dtype=np.float32)
        self._point_cloud = np.zeros((self._height, self._width, 1), dtype=np.float32)

        if not os.path.exists(self._save_dir):
            os.makedirs(self._save_dir)

    @property
    def height(self) -> int:
        """
        Get the height of the camera.

        Returns:
                int: The height of the camera.
        """
        return self._height

    @property
    def width(self) -> int:
        """
        Get the width of the camera.

        Returns:
                int: The width of the camera.
        """
        return self._width

    @property
    def save_dir(self) -> str:
        """
        Get the directory where images captured by the camera are saved.

        Returns:
                str: The directory where images captured by the camera are saved.
        """
        return self._save_dir

    @property
    def name(self) -> str:
        """
        Get the name of the camera.

        Returns:
                str: The name of the camera.s
        """
        return self._cam_name

    @property
    def K(self) -> np.ndarray:
        """
        Compute the intrinsic camera matrix (K) based on the camera's field of view (fov),
        width (_width), and height (_height) parameters, following the pinhole camera model.

        Returns:
        np.ndarray: The intrinsic camera matrix (K), a 3x3 array representing the camera's intrinsic parameters.
        """
        # Convert the field of view from degrees to radians
        theta = np.deg2rad(self.fov)

        # Focal length calculation (f in terms of sensor width and height)
        f_x = (self._width / 2) / np.tan(theta / 2)
        f_y = (self._height / 2) / np.tan(theta / 2)

        # Pixel resolution (assumed to be focal length per pixel unit)
        alpha_u = f_x  # focal length in terms of pixel width
        alpha_v = f_y  # focal length in terms of pixel height

        # Optical center offsets (assuming they are at the center of the sensor)
        u_0 = (self._width - 1) / 2.0
        v_0 = (self._height - 1) / 2.0

        # Intrinsic camera matrix K
        K = np.array([[alpha_u, 0, u_0], [0, alpha_v, v_0], [0, 0, 1]])

        return K

    @property
    def T_world_cam(self) -> np.ndarray:
        """
        Compute the homogeneous transformation matrix for the camera.

        The transformation matrix is computed from the camera's position and orientation.
        The position and orientation are retrieved from the camera data.

        Returns:
        np.ndarray: The 4x4 homogeneous transformation matrix representing the camera's pose.
        """
        pos = self._data.cam(self._cam_id).xpos
        rot = self._data.cam(self._cam_id).xmat.reshape(3, 3).T
        T = make_tf(pos=pos, ori=rot).A
        return T

    @property
    def P(self) -> np.ndarray:
        """
        Compute the projection matrix for the camera.

        The projection matrix is computed as the product of the camera's intrinsic matrix (K)
        and the homogeneous transformation matrix (T_world_cam).

        Returns:
        np.ndarray: The 3x4 projection matrix.
        """
        return self.K @ self.T_world_cam

    @property
    def image(self) -> np.ndarray:
        """Return the captured RGB image."""
        self._renderer.update_scene(self._data, camera=self.name)
        self._image = self._renderer.render()
        return self._image

    @property
    def depth_image(self) -> np.ndarray:
        """Return the captured depth image."""
        self._renderer.update_scene(self._data, camera=self.name)
        self._renderer.enable_depth_rendering()
        self._depth_image = self._renderer.render()
        self._renderer.disable_depth_rendering()
        return self._depth_image

    @property
    def seg_image(self) -> np.ndarray:
        """Return the captured segmentation image based on object's id."""
        self._renderer.update_scene(self._data, camera=self.name)
        self._renderer.enable_segmentation_rendering()

        self._seg_id_image = self._renderer.render()[:, :, 0].reshape(
            (self.height, self.width)
        )
        self._renderer.disable_segmentation_rendering()
        return self._seg_id_image

    @property
    def point_cloud(self) -> np.ndarray:
        """Return the captured point cloud."""
        self._point_cloud = self._depth_to_point_cloud(self.depth_image)
        return self._point_cloud

    @property
    def fov(self) -> float:
        """Get the field of view (FOV) of the camera.

        Returns:
        - float: The field of view angle in degrees.
        """
        return self._model.cam(self._cam_id).fovy[0]

    @property
    def id(self) -> int:
        """Get the identifier of the camera.

        Returns:
        - int: The identifier of the camera.
        """
        return self._cam_id

    def _depth_to_point_cloud(self, depth_image: np.ndarray) -> np.ndarray:
        """
        Method to convert depth image to a point cloud in camera coordinates.

        Args:
        - depth_image: The depth image we want to convert to a point cloud.

        Returns:
        - np.ndarray: 3D points in camera coordinates.
        """
        # Get image dimensions
        dimg_shape = depth_image.shape
        height = dimg_shape[0]
        width = dimg_shape[1]

        # Create pixel grid
        y, x = np.meshgrid(np.arange(height), np.arange(width), indexing="ij")

        # Flatten arrays for vectorized computation
        x_flat = x.flatten()
        y_flat = y.flatten()
        depth_flat = depth_image.flatten()

        # Negate depth values because z-axis goes into the camera
        depth_flat = -depth_flat

        # Stack flattened arrays to form homogeneous coordinates
        homogeneous_coords = np.vstack((x_flat, y_flat, np.ones_like(x_flat)))

        # Compute inverse of the intrinsic matrix K
        K_inv = np.linalg.inv(self.K)

        # Calculate 3D points in camera coordinates
        points_camera = np.dot(K_inv, homogeneous_coords) * depth_flat

        # Homogeneous coordinates to 3D points
        points_camera = np.vstack((points_camera, np.ones_like(x_flat)))

        points_camera = points_camera.T

        # dehomogenize
        points_camera = points_camera[:, :3] / points_camera[:, 3][:, np.newaxis]

        return points_camera

    def shoot(self, autosave: bool = True) -> None:
        """
        Captures a new rgb image, depth image and point cloud from the camera.
        Args:
        - autosave: If the camera rgb image, depth image and point cloud should be saved.

        Returns:
        - None.
        """
        self._image = self.image
        self._depth_image = self.depth_image
        self._point_cloud = self.point_cloud
        self._seg_image = self.seg_image
        if autosave:
            self.save()

    def save(self, img_name: str = "") -> None:
        """Saves the captured image and depth information.

        Args:
        - img_name: Name for the saved image file.
        """
        print(f"saving rgb image, depth image and point cloud to {self.save_dir}")

        if img_name == "":
            timestamp = datetime.now()
            cv2.imwrite(
                self._save_dir + f"{timestamp}_rgb.png",
                cv2.cvtColor(self.image, cv2.COLOR_RGB2BGR),
            )
            cv2.imwrite(self._save_dir + f"{timestamp}_seg.png", self.seg_image)
            np.save(self._save_dir + f"{timestamp}_depth.npy", self.depth_image)
            pcwrite(self._save_dir + f"{timestamp}.pcd", self.point_cloud)

        else:
            cv2.imwrite(
                self._save_dir + f"{img_name}_rgb.png",
                cv2.cvtColor(self.image, cv2.COLOR_RGB2BGR),
            )
            cv2.imwrite(self._save_dir + f"{img_name}_seg.png", self.seg_image)
            np.save(self._save_dir + f"{img_name}_depth.npy", self.depth_image)
            pcwrite(self._save_dir + f"{img_name}.pcd", self.point_cloud)

Here are my utility functions
from typing import List, Union

import numpy as np
import pandas as pd
import spatialmath as sm
import spatialmath.base as smb

def make_tf(
    pos: Union[np.ndarray, list] = [0, 0, 0],
    ori: Union[np.ndarray, sm.SE3, sm.SO3] = [1, 0, 0, 0],
) -> sm.SE3:
    """
    Create a SE3 transformation matrix.

    Parameters:
    - pos (np.ndarray): Translation vector [x, y, z].
    - ori (Union[np.ndarray, SE3]): Orientation, can be a rotation matrix, quaternion, or SE3 object.

    Returns:
    - SE3: Transformation matrix.
    """

    if isinstance(ori, list):
        ori = np.array(ori)

    if isinstance(ori, sm.SO3):
        ori = ori.R

    if isinstance(pos, sm.SE3):
        pose = pos
        pos = pose.t
        ori = pose.R

    if len(ori) == 9:
        ori = np.reshape(ori, (3, 3))

    # Convert ori to SE3 if it's already a rotation matrix or a quaternion
    if isinstance(ori, np.ndarray):
        if ori.shape == (3, 3):  # Assuming ori is a rotation matrix
            ori = ori
        elif ori.shape == (4,):  # Assuming ori is a quaternion
            ori = sm.UnitQuaternion(s=ori[0], v=ori[1:]).R
        elif ori.shape == (3,):  # Assuming ori is rpy
            ori = sm.SE3.Eul(ori, unit="rad").R

    T_R = smb.r2t(ori) if is_R_valid(ori) else smb.r2t(make_R_valid(ori))
    R = sm.SE3(T_R, check=False).R

    # Combine translation and orientation
    T = sm.SE3.Rt(R=R, t=pos, check=False)

    return T

def is_R_valid(R: np.ndarray, tol: float = 1e-8) -> bool:
    """
    Checks if the input matrix R is a valid 3x3 rotation matrix.

    Parameters:
            R (np.ndarray): The input matrix to be checked.
            tol (float, optional): Tolerance for numerical comparison. Defaults to 1e-8.

    Returns:
            bool: True if R is a valid rotation matrix, False otherwise.

    Raises:
            ValueError: If R is not a 3x3 matrix.
    """
    # Check if R is a 3x3 matrix
    if not isinstance(R, np.ndarray) or R.shape != (3, 3):
        raise ValueError(f"Input is not a 3x3 matrix. R is \n{R}")

    # Check if R is orthogonal
    is_orthogonal = np.allclose(np.dot(R.T, R), np.eye(3), atol=tol)

    # Check if the determinant is 1
    det = np.linalg.det(R)

    return is_orthogonal and np.isclose(det, 1.0, atol=tol)

def make_R_valid(R: np.ndarray, tol: float = 1e-6) -> np.ndarray:
    """
    Makes the input matrix R a valid 3x3 rotation matrix.

    Parameters:
            R (np.ndarray): The input matrix to be made valid.
            tol (float, optional): Tolerance for numerical comparison. Defaults to 1e-6.

    Returns:
            np.ndarray: A valid 3x3 rotation matrix derived from the input matrix R.

    Raises:
            ValueError: If the input is not a 3x3 matrix or if it cannot be made a valid rotation matrix.
    """
    if not isinstance(R, np.ndarray):
        R = np.array(R)

    # Check if R is a 3x3 matrix
    if R.shape != (3, 3):
        raise ValueError("Input is not a 3x3 matrix")

    # Step 1: Gram-Schmidt Orthogonalization
    Q, _ = np.linalg.qr(R)

    # Step 2: Ensure determinant is 1
    det = np.linalg.det(Q)
    if np.isclose(det, 0.0, atol=tol):
        raise ValueError("Invalid rotation matrix (determinant is zero)")

    # Step 3: Ensure determinant is positive
    if det < 0:
        Q[:, 2] *= -1

    return Q

Finally what you need is to call the renderer from the main loop. Unfortunately, this means you cannot call it from your keyboard callback. Instead what I do is to append the event to a queue which is then popped whenever the main loop ticks again. I tend to package my simulations into classes so here is a rough sketch of what code you might need.

Here is my run

import queue
import mujoco as mj
import mujoco.viewer

class MySimulation:

	...

	self.cam = Camera(self._args, self._model, self._data, "cam")
	...

	def keyboard_callback(self, key) -> None:
		"""
		Method for the keyboard callback. This method should not be called explicitly.

		Parameters:
		- key: Keyboard input.

		Returns:
		- None.
		"""
		if key == glfw.KEY_SPACE:
			pass
		elif key == glfw.KEY_PERIOD:
			print("Shoot! I just took a picture")
			self.cam.shoot()

	def run(self) -> None:
		"""
		Method for running the MuJoCo viewer main loop.

		Returns:
		- None.
		"""
		# in order to enable camera rendering in main thread, queue the key events
		key_queue = queue.Queue()

		with mj.viewer.launch_passive(
			model=self._model,
			data=self._data,
			key_callback=lambda key: key_queue.put(key),
		) as viewer:
			self.cam._renderer.render()

			while viewer.is_running():
				step_start = time.time()

				while not key_queue.empty():
					self.keyboard_callback(key_queue.get())

				# step the simulation.
				mj.mj_step(self._model, self._data)
				viewer.sync()

				time_until_next_step = self.dt - (time.time() - step_start)
				if time_until_next_step > 0:
					time.sleep(time_until_next_step)

I hope this can assist you in solving your problem :)

Thank you!


Fix docker connection to host

Fixes: #580
It works for me locally on macOS:

and everything keeps working:

Very nice! I didn't know that kind of thing existed!

It is quite new, if I'm not wrong it is from December 2020.


⚠ Bofrost.lu has degraded performance

In 7ff7db8, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1071 ms

Resolved: Bofrost.lu performance has improved in 6e52db0 after 20 minutes.


Research: Generate GPP-compliant strings for non-EEA regions

Deliverables

technical design doc(s) for generating GPP-compliant strings for non-EEA regions
GH ticket(s) for the work needed to accomplish generating GPP-compliant strings for non-EEA regions

Design doc: https://ethyca.atlassian.net/wiki/spaces/EN/pages/2728984588/2023-06-28+Generating+a+GPP+string


[ MB-12170 ] Edit PPM net weight query invalidation clarification

Jira ticket for this change
Summary
Removed the reference to useMemo for the weight calculation allows for the weight calculation to get refreshed when only the Documents query gets invalidated. This way we don't have to invalidate the MTO shipments query.
I also removed the addition of the full weight to the initial values of the form since it is unnecessary for the validation check.
Setup to Run Your Code

💻 You will need to use three separate terminals to test this locally.
Terminal 1
Start the UI locally.
make client_run

Terminal 2
Start the Go server locally.
make server_run

Additional steps

Access the office app
Login as a services counselor
Access a PPM closeout move with excess weight (Move code XSWT01 is a good one)
click the review documents button at the bottom of the ppm shipment card
click on the edit net weight button

edit the  net weight to be greater or equal to the full weight
you should see an error message

Edit the net weight to make the move not overweight and click save
You should not see the warning on the net weight and the weights should have been refreshed in the calculations.

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

Messages

:book:
:link: MB-12170

  Generated by :no_entry_sign: dangerJS against cb0f7bc95c39db0ac8a94ce2d10c2e1150e99212


Provide functions to safely halt or reset the RP2040

A discussion on https://matrix.to/#/#rust-embedded:matrix.org showed that it's difficult to safely halt or reset a multicore MCU.
It would be nice if the HAL provided simple to use methods to halt / reset the full chip. Those could also be used from panic / HardFault handlers.
For reset, this seems to work:
        (*pac::PSM::PTR).wdsel.write(|w| w.bits(0x0000ffff));
        (*pac::WATCHDOG::PTR).ctrl.write(|w| w.trigger().set_bit());

However, it has the disadvantage that it also breaks the debugger connection.
Alternatively, this will first turn core1 off and then reset core0:
        (*pac::PSM::PTR).frce_off.write(|w| w.proc1().set_bit());
        pac::SCB::sys_reset();

This doesn't break the debugger connection. But it won't work when called from core1.
Similarly, for halting the MCU from core0, this works:
        (*pac::PSM::PTR).frce_off.write(|w| w.proc1().set_bit());
        loop {}

(Don't forget to also disable interrupts, though.)
Some method that works from both cores the same way would be nicer.

Is there a register we can read to know which core we are? Then we can do the right thing no matter.

Yes, the sio module has a register for this:
https://docs.rs/rp2040/latest/rp2040/sio/cpuid/index.html


⚠ Bofrost.at has degraded performance

In 8434cde, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1322 ms

Resolved: Bofrost.at performance has improved in fcf8b05 after 20 minutes.


Integrate the Go client with the DC/OS CLI

This integrates dcos/client-go to the project and uses it for Cosmos
requests.
https://jira.mesosphere.com/browse/DCOS-50012

@mesosphere-ci run integration tests


Add networking-console-plugin on start-console

📝 Description
With this we'll be able to run networking-console-plugin with our start-console.sh script .
Some changes have been required to make sure in networking-console-plugin we can do the exact same thing for kubevirt-plugin
the --port doesn't really work with the yarn start command so I used the env variable PORT but I left the flag in order to support both ways
needs https://github.com/openshift/networking-console-plugin/pull/147 to work
we'll be able to run the plugin within kubevirt repo with:
yarn start-console networking-console-plugin
or
yarn start-console-with-networking
🎥 Demo

@upalatucci so in order for this to work, we will need to run yarn start-console only in one project right?
If there are new steps for this to work please add them to the description of the PR.
Is will still be possible to run kubevirt plugin with the networking plugin right?

yes just like running start-console with the monitoring-plugin.
With yarn start-console networking-console-plugin

/lgtm


Use hasattr(), not getattr(), when checking exception object in boolean context

getattr will return the requests.response object, and it will be evaluated as a boolean. If the response had a 200ish code, it evaluates to True. If the code was 400ish or similar, it evaluates to False.
So any failed request will not enter the if block I changed in the diff, and we skip checking whether the code is retryable or not. Instead we just retry all requests, which is dangerous.

LGTM


New Python workflow seems to cause all sorts of "random" CI errors w/ extra module?

I'm not sure what's going on since it's really hard to read the Python build workflows  but after syncing the new CI changes, I'm getting all kinds of random failures. Some seem to run some don't for different reasons.
I have an extra module in the fork / branch this is running from:
https://github.com/KhronosGroup/MaterialX/actions/runs/5982377024
Any help to figure out what's going would help.

@kwokcb I haven't seen these errors in other forks of MaterialX, so it does sound like an issue that's triggered by specific differences in the Khronos fork.
Taking a step back, though, I wonder if it would be better to restrict the new python workflow to the ASWF repository of MaterialX, rather than running it in all forks of the MaterialX project.

In PR #1511, I've restricted Python Wheel generation to the ASWF MaterialX repository, so that this work doesn't also run in MaterialX forks.
I'll close out this issue for now, and going forward I believe it would be valuable to improve our documentation for the requirements of custom MaterialX modules with Python bindings.


Docker availablity

Thank you for open sourcing nomie6! I'm terribly sorry this didn't work out as a business, but you're helping a tremendous number of people by releasing it to the public.
Are there any plans for a Dockerfile and uploading to docker hub / ghcr? If not, are you accepting PRs for this? I think it would help in self-hosting.

A PR for this would be great! I was planning to add a docker-compose configuration to support self-hosting with a CouchDB server for storage as well.

Excellent, I'll draft that PR now. Adding a CouchDB server is a great idea


Update demo.md

Step 2 instructs the user to create the namespace argo, and the coin-flip (at least) uses the service account argo, so it makes sense to provide --serviceaccount=argo:argo so that the initial experience works, "out of the box".

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

How does a simple markdown change fail CI?


Preferences is blank

yeah that menu might be removed and i'll add the settings on the right instead

closing this since Preferences no longer exists


Doesn't work at all

I use this extension with moped (web gui for mopidy) and the YouTube search stopped working around 1-2 weeks ago out of nowhere. I've tried reinstalling the addon and restarting moped but that didn't help.
Someone else is also reporting similar problem here: https://discuss.mopidy.com/t/mopidy-youtube-no-play/585

Fixed with 4c29fe9161e341948149d5cfd4a1ca055a26a9f4


Code Style should follow Effective C++ guidelines

To make the source more workable it should follow the guidelines suggested in Effective C++.
Currently when using GCC with -Weffc++ there are several minor issues reported, which can be grouped into the following changes needed:

Always list all declared members in the constructor's initializer list (this applies to field m_S missing, adding m_S{} fixes this)

Make the ckms_* classes non-copyable by deleting their copy constructor and assignment operator.
Adding something like
ckms_foo(const ckms_foo&) = delete;
ckms_foo& operator=(const ckms_foo&) = delete;

in the header for all ckms_* classes fixes this. At the moment, when ever you accidentally copy your object you create a double-free bug, as the constructor of each instance free's your impl object.

Another note relates to the use of using namespace std;, which is kinda bad practice. It's so rarely actually useful in your code that the five or so cases where it is shortening the namespace reference (when accessing std::min, std::max and std::numerical_limits) it's actually shorter to skip using namespace std; and instead just qualify the places where these functions are used. I also despise people writing code where I have to guess the namespace their symbols come from ... ;-)

Fixed in commit a4c0aa838e01e5fd262a8396956fe90be2d10392


Thanks for opening this pull request! A GitHub docs team member should be by to give feedback soon. In the meantime, please check out the contributing guidelines.

          Thanks for opening this pull request! A GitHub docs team member should be by to give feedback soon. In the meantime, please check out the [contributing guidelines](https://github.com/github/docs/blob/main/CONTRIBUTING.md).

Originally posted by @welcome[bot] in https://github.com/github/docs/issues/26138#issuecomment-1600884206

for me

          Thanks for opening this pull request! A GitHub docs team member should be by to give feedback soon. In the meantime, please check out the [contributing guidelines](https://github.com/github/docs/blob/main/CONTRIBUTING.md).

Originally posted by @welcome[bot] in https://github.com/github/docs/issues/26138#issuecomment-1600884206

You're welcome!

🙋♂🍷🍷🍾🍾😂😋

Uploading video4ef03792-7983-4ae7-b005-89163460529fvideo-1.mp4…


The issue with launching simultaneously with OBS Studio

Description
Hi,
MediapipeUnityPlugin works well in many situations.
However, when I launched MediapipeUnityPlugin simultaneously with a software called OBS Studio, the screen did not display, and it didn't work.
Since OBS Studio is a software used by many live streamers, I would like to know if there is a way to use them together.
I tested it with MediapipeUnityPlugin v0.14.4, Unity 2022.3.6f1, and Windows 11 Home.
Thank you for your work.

Do you mean that the sample app doesn't run simultaneously with OBS?
Could you attach a screenshot or something similar that shows the problem?

I tested the sample scene for Face Landmark Detection.
Here are the error messages and images.

Could not start graph
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Mediapipe.Unity.WebCamSource/<Play>d__41:MoveNext () (at Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs:197)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Could not pause pControl
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Mediapipe.Unity.WebCamSource/<Play>d__41:MoveNext () (at Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs:197)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

TimeoutException: Failed to start WebCam
Mediapipe.Unity.WebCamSource+<WaitForWebCamTexture>d__48.MoveNext () (at Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs:261)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <b41119cc6741409ea29f63c7f98de938>:0)

Is the camera used by OBS not selected?
https://github.com/homuler/MediaPipeUnityPlugin/blob/e007dd75335ba8a9daba32ba71c4c641f257ec70/Assets/MediaPipeUnity/Samples/Common/Scripts/ImageSource/WebCamSource.cs#L135

Yes. It worked fine after removing the camera from OBS.

So may I close this issue?


Updation of contributing.md file

Wanted to do the following changes :-
Enhance the project structure
Add the help and support section
Add the pull request section
Add issue report process section

someone is already working on it. Will assign if he can't

I have updated the conducting.md file . If any further changes required tell me.

Please assign me this work.

I have updated contributing.md file please check it. If any further changes required please tell me.


[stable/kube2iam] Update strategy

This PR uses Helm's .Capabilities object to set the DaemonSet's UpdateStrategy if the cluster version is >= 1.6. The default strategy is OnDelete, which provides backwards compatibility.

@k8s-bot ok to test


Switch between model.train() and model.eval()

https://github.com/asyml/texar-pytorch/blob/95f3d644680656f38b7b1779f2ba184ef9e1f81a/examples/bert/bert_classifier_main.py#L164
Hello,
I find that after doing "_eval_epoch()"，you don't switch model.eval() to model.train(). Wouldn't that be a problem?

Hmm, this is a very good point, thank you for your report. @gpengzhi @AvinashBukkittu Could you verify this and maybe rerun the experiments?


WIP - outer joins

A few trivial changes to start out:

Removed extra spaces from generated SQL.
Picked a better example for the recursive query (1) test to show that it works with countries that have more than one city.
Fixed handling of empty resultsets so we get "No match" rather than "Not a table" when no rows were returned.

Slightly less trivial:

Got nullable fields working.
Got failed joins working.

The recursive queries can be implemented as joins rather than multiple fetches so but we need to implement table aliasing before we can do that. One thing at a time ;-)

Ok nullable fields work now.

Bit off more than I had intended but it seems to work.

Is this ready for review/merge or should I leave it until you get back?

I've reworked this in https://github.com/gemini-hlsw/gsp-graphql/pull/4/commits/35da44d9e64f6829bd9ed45477f095fdd1e2caf7 as part of #4.


Run cargo fmt once again

r? @philipc

Which rustfmt version?

$ cargo install rustfmt-nightly
<snip>
$ rustfmt --version
0.2.1-nightly ( )

The rustfmt crate is an old version of rustfmt, and rustfmt-nightly is the new thing. Eventually, it will go back to just rustfmt but I'm not sure when.

Coverage increased (+0.1%) to 94.113% when pulling 81dac1738d7841906c40035974524483d211cce5 on fitzgen:cargo-fmt into 8efbc70430854e979370b8e875096215aa85cc81 on gimli-rs:master.


Poll ADC for samples without FPGA

Prove we can get voltage samples from the ADC to the microcontroller.


Data flow posting all output documents to the SINK

With the changes in aggregator to detect duplicate usage docs, there are three docs that are generated for every accumulated doc. If a SINK is configured, all the three documents are posted to the SINK URL. Not all documents need to be posted to the SINK. Can the data flow module be modified that it can look for a certain key to determine if a document needs to be posted to SINK or not?

Closing this issue as a solution has been described in #278.


Combine duplicate implementations of toInstrumentedOdspTokenFetcher

One is toInstrumentedOdspTokenFetcher in odspUtils.ts (used by document service factory), and the other is toInstrumentedTokenFetcher in odspDriverUrlResolverForShareLink.ts (used by url resolver).
I don't think we would need two implementations.  And it tripped me up, because I was expecting the behavior of one when looking at the logs, but it was going through the other which doesn't behave the same way.

In particular, the url resolver one doesn't wrap thrown errors with fetchTokenError errorType, so it is basically impossible to aggregate them together in telemetry, which is a big miss.


⚠ Bofrost.fr has degraded performance

In 319449c, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1514 ms

Resolved: Bofrost.fr performance has improved in 2047438 after 6 minutes.


Remove ancient PHP versions from Travis

The PHP 5.3 job fails because PHP 5.3 does not exist in the Travis system.
So for starters get rid of ancient PHP versions from the build/test matrix.

Closing in favor of #296 which also adds new PHP and updated Symfony versions.


Support for ble advertisements.

All platforms should support advertising services and it would be a useful feature.

PRs are welcome. I think this will be the most restricted in CoreBluetooth. There advertising is done through a CBPeripheralManager instance and only local name and service UUID fields are allowed.

Ok. I've for now found a different solution, but thanks a lot.


Multiple Fixes

Fix this such as:

This fix the issues with spheres having spikes when using a different radius
Making cylinders work the same way as in csg.js, as well as fix the top and bottom faces from becoming spikes.
Fix how cubes scale, so its more like csg.js in the way that the sphere and the cube are the same size by default
Flip operation input order as to make stringing functions together work correctly

incorrectly done merge


fix: Awaiting user signature feedback & style fixes

What?

Fixed some styles thanks to @RominaMarchetti 's feedback
Added feedback for when the application is waiting the user's signature and it takes some time

test link https://play.decentraland.zone/fix/awaiting-user-signature-feedback/index.html?ENV=org

test link https://play.decentraland.zone/fix/awaiting-user-signature-feedback/index.html?ENV=org

https://play.decentraland.zone/branch/fix/awaiting-user-signature-feedback/index.html?ENV=org

Tested. Signature feedback appears correctly 👍


Error when asking a simple question

Describe the Bug with repro steps
Any question I ask of the Assistant, I get a "Sorry, something went wrong. Please try again.". Here is the chat-session-id: 4470C888-EF4F-4B17-8DFF-D4C70F3C7DF9
What type of Logic App Is this happening in?
Consumption (Portal)
Which operating system are you using?
Windows
Are you using new designer or old designer
New Designer
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
No
Workflow JSON
No response
Screenshots or Videos

Browser
Chrome - latest version (130.0.6723.92 (Official Build) (64-bit))
Additional context
See screenshot image

By clicking on the Assistant button

Hi @RobScott-Trimble thanks for raising this issue. We were able to repro it, we will work on the fix of it!

@RobScott-Trimble In the meantime as a workaround could you please use the following url to use portal? This private link has the fix for the workflow assistant aka.ms/emastaging