Support multiple replacements for a string

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I am embedding a script inside a bicep template and would like to perform multiple replacements based on parameters.  I am unable to use the format function as the script can contains curly braces.  The replace function only performs one substitution and needs to be nested which can look messy.  Here is an example bicep file:
var script = '''
#!/bin/sh

echo "{0} {1}"

// this will fail if I use the format function:
echo "${script_variable}"

'''

/* Messy solution with nested calls to replace */
output formatTest string = replace(replace(script, '{0}', 'hello'), '{1}', 'world')

/*
  Using the format function fails with the following error details:

    {
      "code":"DeploymentOutputEvaluationFailed",
      "message":"Unable to evaluate template outputs: 'formatTest'. Please see error details and deployment operations. Please see https://aka.ms/arm-debug for usage details.",
      "details": [{
        "code":"DeploymentOutputEvaluationFailed",
        "target":"formatTest",
        "message":"The template output 'formatTest' is not valid: Unable to evaluate language function 'format': the format is invalid: 'Input string was not in a correct format.'. Please see https://aka.ms/arm-template-expressions/#format for usage details.."
      }]
    }
*/
//output formatTest string = format(script, 'hello', 'world')

Describe the solution you'd like
A clear and concise description of what you want to happen.
I would like the replace to take multiple values, e.g.
var replacements = [
  {
    oldstring: '{0}'
    newstring: 'Hello'
  }
  {
    oldstring: '{1}'
    newstring: 'World'
  }
]

output formatTest string = replace(script, replacements)

Would #3389 be a good alternative for solving this for you?

The proposed syntax in #3389 will conflict with any bash scripting in the multi-line string.  This is the same as the issue with the format example shown above (and why the format command is unusable in my case).

I think this is a great suggestion - it allows picking your own placeholder format, and avoids having to implement interpolable verbatim strings (meaning that it'll also work for files that can be fetched from disk).
I'm not sure if we could add an overload to replace, as it may introduce ambiguity with the existing usage, but creating a new function such as replaceMultiple should be pretty safe and easy to do.
This would allow for some pretty concise one-liners e.g.:
var foo = replaceMultiple('''
My name is {0} and I love {1}!
''', {
  '{0}': 'Anthony'
  '{1}': 'Bicep'
})

And
var foo = replaceMultiple('''
My name is $name and I love $thing!
''', {
  '$name': 'Anthony'
  '$thing': 'Bicep'
})

Powershell already does this:
var interpolated = @"
    ${my_variable}
"@

And if you want to say ${my_variable} literally, you escape the $:
var interpolated = @"
    `${my_variable_literally}
"@

This would avoid all kinds of workarounds and complexities in calling functions etc.

Is there any update here?  I find myself continually having to workaround this limitation with nested replace calls.

User-defined functions may answer to this need:  https://github.com/Azure/bicep/pull/10465
The feature is merged but you need to add the following to your bicepconfig.json in order to enable this experimental feature.
{
  "experimentalFeaturesEnabled": {
    "userDefinedFunctions": true
  }
}

P.S. I have never seen multi-replace in any language and I wouldn't think it'd work well in practise with bicep either. If you have 1..n multiple replacements, you need to loop through them and call replace on each iteration.

Solution with lambdas:
var script = '''
#!/bin/sh

echo "{0} {1}"

// this will fail if I use the format function:
echo "${script_variable}"

'''

var replacements = [
  { key: '{0}', value: 'hello' }
  { key: '{1}', value: 'world' }
]

var replaced = reduce(replacements, script, (cur, next) => replace(string(cur), next.key, next.value))

output replacedOut string = replaced

Result:
#!/bin/sh
echo "hello world"
// this will fail if I use the format function:
echo "${script_variable}"

@kamilzzz thanks for sharing!
As of Bicep 0.26.54, you can use func and @export() to make this reusable! I've refactored your original solution:

functions.bicep@export()
func replaceMultiple(input string, replacements { *: string }) string => reduce(
  items(replacements), input, (cur, next) => replace(string(cur), next.key, next.value))

main.bicepimport { replaceMultiple } from 'functions.bicep'

var script = '''
#!/bin/sh

echo "{0} {1}"

// this will fail if I use the format function:
echo "${script_variable}"

'''

output replacedOut string = replaceMultiple(script, {
  '{0}': 'hello'
  '{1}': 'world'
})


fix: #2246 onboarding loading duration message

What

The timeout duration is set to 5 seconds and a little error message will appear in case of timeout
Screenshot

https://user-images.githubusercontent.com/87010739/173798794-dccd59fe-7802-4813-a176-ecbf05a495f1.mp4
Fixes bug(s)

Fixes: #2246

Codecov Report

Merging #2282 (868e961) into develop (2ea0da3) will decrease coverage by 1.15%.
The diff coverage is n/a.

:exclamation: Current head 868e961 differs from pull request most recent head 9b9a2e0. Consider uploading reports for the commit 9b9a2e0 to get more accurate results

@@            Coverage Diff             @@
##           develop   #2282      +/-   ##
==========================================
- Coverage     8.86%   7.71%   -1.16%
==========================================
  Files          161     182      +21
  Lines         6623    9234    +2611
==========================================
+ Hits           587     712     +125
- Misses        6036    8522    +2486

Impacted Files
Coverage Δ

...kages/smooth_app/lib/widgets/attribute_button.dart
0.00% <0.00%> (-92.00%)
:arrow_down:

...s/smooth_app/lib/data_models/user_preferences.dart
8.73% <0.00%> (-23.57%)
:arrow_down:

packages/smooth_app/lib/themes/smooth_theme.dart
60.00% <0.00%> (-22.98%)
:arrow_down:

...p/lib/generic_lib/dialogs/smooth_alert_dialog.dart
19.23% <0.00%> (-14.98%)
:arrow_down:

...mooth_app/lib/data_models/product_preferences.dart
26.47% <0.00%> (-4.96%)
:arrow_down:

.../smooth_app/lib/pages/onboarding/welcome_page.dart
0.00% <0.00%> (-3.13%)
:arrow_down:

.../smooth_app/lib/pages/onboarding/scan_example.dart
0.00% <0.00%> (-2.28%)
:arrow_down:

packages/smooth_app/lib/main.dart
15.74% <0.00%> (-2.16%)
:arrow_down:

...p/lib/pages/onboarding/consent_analytics_page.dart
0.00% <0.00%> (-1.57%)
:arrow_down:

...smooth_app/lib/pages/product/new_product_page.dart
0.00% <0.00%> (-0.88%)
:arrow_down:

... and 170 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 41ad027...9b9a2e0. Read the comment docs.

All of your comments have been taken into account


__dirname reference to node-gyp-build prevents packaging as executable

In trying to package my node app as an executable using 'pkg' I receive this error when launching the .exe:
Error: No native build was found for platform=win32 arch=x64 runtime=node abi=83 uv=1 libc=glibc node=14.4.0
    loaded from: D:\snapshot\order_flash\node_modules\cue-sdk

It's described well here: https://github.com/parcel-bundler/parcel/issues/5090
The problem arises in line 1 of index.js:
const binding = require('node-gyp-build')(__dirname)
To recreate: simply require the cue-sdk module, and run pkg.

Maybe this isn't the most correct fix, but I got around it by changing line 1 to:
const binding = require('node-gyp-build')('node_modules/cue-sdk')

This is more like an issue with pkg: https://github.com/vercel/pkg#native-addons

Native addons (.node files) use is supported, but packaging .node files inside the executable is not resolved yet. You have to deploy native addons used by your project to the same directory as the executable.

Try to copy node_modules/cue-sdk/prebuilds folder to the same folder as the executable.


Why won't my file run after dump

Why won't my file run after dump
AgileDotNet-Dumped.zip
?

From a quick look, it seems like the dumper did it's job. Anything beyond that, I cannot help with.


How to uninstall?

There is no documentation on how to uninstall / completely remove the program.

Run the installer, click remove/uninstall
On 18 Apr 2024 at 11:24 +0200, dcherrie @.***>, wrote:

There is no documentation on how to uninstall / completely remove the program.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

As described by rickvandijck.
Isn't documented since a red "Remove" Button does not need much Explanation 😉

The most common way of removing software is through Add or remove programs which it wasn't there so that's why I asked.


Bump httpx

Codecov Report

Merging #43 (ba8e0fe) into master (c343d23) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #43   +/-   ##
=======================================
  Coverage   98.48%   98.48%
=======================================
  Files          19       19
  Lines        1318     1318
  Branches      222      222
=======================================
  Hits         1298     1298
  Misses         10       10
  Partials       10       10

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c343d23...ba8e0fe. Read the comment docs.

Probably we should modify pyproject.toml to request the patched version as the minimum version, wdyt ?

Done


updated to fix "Error" on ISP requests

Fix issue where ISP requests added "'Error: not a valid request" to ssml output

@dblock please review :).
I think a long term fix for handling when AZ introduces new requests types might be needed but for the time being this solves my problem

Ping @dblock

Ok, I read the docs. It's not much :( They don't say anything about these "connections" other than "to implement a purchase request put Connections.Response here" or something like that.
I understand we're fixing an error for these requests, but it feels to me we want to do more than just resolve the call here. Two thoughts:

It's only a matter of time till Amazon adds some new type of request/response and maybe our code needs to handle the future better instead of always handing a special case like this one. If that's true, then maybe there's a different/better fix for this specific problem?
Do we want to handle purchase flow natively? I think the answer is yes. It doesn't mean we don't want a fix for this specific problem, but if we're going to be checking for a specific request type we should be doing more than a Promise.resolve, similar to audio requests.

Thoughts?
Also cc: @lazerwalker who was doing a lot with this and maybe has an opinion

And an even more basic question, we have support to handle these via on.
app.on('Connections.SendRequest', (request, response, request_json) => {
});

So why do we need this code?

Yes, these new types of requests will keep coming faster than we can directly support the new features. That's exactly why I added .on() so devs could handle new request types.
Ideally, each new type of functionality that sends new request types will get full support with helpful utilities and built in handling. Eventually.
There is a lot of new stuff coming. Trust me. :)

Ok maybe I was just using the sdk wrong. But the issue I was trying to solve was that the SDK kept adding "Error: not a valid request" (INVALID_REQUEST_TYPE) to requests with Connections.SendRequest.
@matt-kruse can you confirm if I move to app.on('Connections.SendRequest', ... I will avoid this error?

Yep, switching to app.on will clear up that exact error; the result should be functionally identical to your proposed patch. If you're curious about the code, I'd poke at https://github.com/alexa-js/alexa-app/blob/master/index.js#L619-L623 and https://github.com/alexa-js/alexa-app/blob/master/index.js#L466-L468.
Just otherwise wanted to +1 @dblock and @matt-kruse's points here. Eventually, having our own consciously-designed API methods and helpers for the payment flow would rock. But it's probably fairly unstable on Amazon's end, and fairly unclear on our end what the correct abstraction is. app.on feels like the right tool for right now.


VS Code not showing files with errors in red in some folders

VSCode Version: 1.51.0
OS Version: Windows 10

I'm working on a flutter project with VS Code. Today, VS code suddenly stopped highlighting files that contain errors in red, which is really annoying. Restarted everything, doesn't matter.
The funny thing is, files inside lib/Bloc/ do get highlighted, other lib/ folders don't. Any ideas?

Does this issue occur when all extensions are disabled?: It can't because there's no error analysis without the dart extension.

Sounds like a duplicate of https://github.com/microsoft/vscode/issues/110188
Due to file casing @jrieken

@isidorn Unsure... diagnostics from extensions are passed through the uri identity service and I believe the explorer is doing the same. With that both should talk about the same uri casing

Yeah, explorer is also using the identityService
@Jackilion do you maybe have a repository which we can clone and easily reproduce this?


Replace mentions of "Google Docs" with "Google Sheets"

Thanks for this bot!
We were just tripped up by the fact that the README still mentions the "Google Docs API" instead of the "Google Sheets API". Apart from that, it was fairly easy to follow, so thanks!
Greetings from Lörrach!

Thanks for this!
I don't remember exactly since it's been some time since we created this, but it might just have been renamed. I think I remember Google doing some rebranding on that front.
But anyway, thanks again!


Identify inconsistencies between Code Ocean asset names and data_description.name

Currently many spike sorted results have a data_description.name field that is inconsistent with the asset name. Let's look through all raw data and processed results to identify when they are inconsistent so we can clean them up.

@dyf by inconsistent, do you mean that data_description.name does not match the asset name (in what platform? CodeOcean?)


Deleting more than (n/2) etcd nodes causes quorum loss

When etcd node gets deleted, the machine will be deleted immediately before RKE update happens and removes the etcd node gracefully, so quorum may be lost if the user deleted more than half of etcd nodes in the cluster

Tested few times with master from march 2nd

Created a cluster with 3 node pools
N1 - all roles
N2 - etcd
N3 - etcd
Deployed workloads
Deleted both N2 and N3 (which is more than n/2 nodes)
The nodes were deleted successfully and cluster was active again. There was no quorum loss
The old workloads were still active. Deployed more workloads successfully


[To do] Network - Detailed view - Text changes and mising fields

Add the short description and regions of intervention to the detailed view
For the fields with an icon on the preview (thematic and type of organizations), show these icons on the detailed view.
Change « Description » to « Description and outcomes”
Change « Countries of interventions » to “Countries of intervention”
For ORCasA, the country “Viêt Nam” is missing. DONE
For Afodek, the main area of intervention is not good. DONE
For CarboSeq, the country “Lituania” is missing. DONE
When the type of organization is “Other”, the value entered manually should be displayed (ex: Promotional Centre for Family Farming – CPP)

Several information is missing: short description, regions of intervention --> CB: The short description is meant to be shown only in the list preview. Regions of intervention we can add it in sprint 6.
Adding the same icons as in the result list --> CB: Not sure what you mean with this. Could you please clarify?
Change « Description » by « Description and outcomes” --> CB: we'll do this change in sprint 6.
Change « Countries of interventions » by “Country of interventions of intervention” --> CB: Could you please double-check the wording suggested? It sounds incorrect to me.
For ORCasA, the country “Viêt Nam” is missing --> CB: I've added it. The right spelling, according to the list, is Vietnam. That is why it wasn't showing.
For Afodek, the main area of intervention is not good --> CB: I've updated it to "Networking/structuring partnerships". Not sure why it was incorrect.
For CarboSeq, the country “Lituania” is missing --> CB: I've added it. The right spelling, according to the list, is Lithuania. That is why it wasn't showing.

short description is nice to keep in the detailed view because we tried not to repeat text from the short description to the "complete "description and, as the complete description is not compulsory, it will sometimes be empty.
it can be good for thematic and type of organization
ok
ok
ok
ok
ok

Other bugs (in issue 39 that has been closed):

When the type of organization is “Other”, the value entered manually should be displayed (ex: Promotional Centre for Family Farming – CPP)
When there is no website, do not display the button (ex: Promotional Centre for Family Farming – CPP)
Add the icons from the list of results (thematics and type of projects)

Hi Emilie, 8 and 10 are already listed in this item description. For 9 I've created a separate item for our convenience. https://github.com/Orcasa-Platform/orcasa/issues/65

Hi Emilie,
2 This suggestion won't be implemented because it is not aligned with the design guidelines.
5 and 7. I see both countries available in the BO. What is the issue you are experiencing?
8 I will ask the team to implement this.

Hello Carla,

OK
5 and 7. It should be my mistake I see them now
ok for doing it for V2

Hello Carla,
I prefer to leave this one open for V2, only for this task:
When the type of organization is “Other”, the value entered manually should be displayed (ex: Promotional Centre for Family Farming – CPP)
Thanks

Hi Emilie, aiming to have a clean list for the backlog prioritization. I created a separate item for what you mentioned above (https://github.com/Orcasa-Platform/orcasa/issues/163).
I'm believe it is safe to close this item now, but let me know any comments.

ok for me


Modernizr script causes page to jump to top

Thanks for making this theme available. I'm finding it incredibly helpful!
I've noticed that when clicking 'back' in the browser, or linking to a different page with a hash in the URL to anchor to specific section, the browser briefly shows the correct position and then snaps to the top of the page.
Removing the Modernizr script seems to make the issue go away.
Tested in Chrome (Version 78.0.3904.87) and Safari (Version 13.0.3 (146<IP_ADDRESS>.1))

Thanks for finding this. I update the Modernizr script periodically so I will do some digging and try to find out which part of the script is causing this behavior.
All that said, if you don't need the Modernizr features, you can safely remove.
I'll leave this open for now.

Looks like this was addressed in this PR: https://github.com/Modernizr/Modernizr/issues/1781
Going to update the Modernizr package and see if that fixes the issue.

@bestify I just pushed up a commit with an updated Modernizr package without hyphens and in my local testing it is going to anchor links without jumping to the top of the page.
If you've made customizations, just grab the current script and replace it in your theme: /library/js/libs/modernizr-custom-min.js
https://github.com/joshuaiz/plate/blob/master/library/js/libs/modernizr-custom-min.js
This issue brings up a few thoughts for me:

do we need to keep including Modernizr, or should we leave this to devs to add what they need?
if we keep it in, what CSS/js features do we need to support?

Our normal Modernizr build is focused on CSS so I'd be curious to see what other people prioritize...or if they use Modernizr at all.

I'm going to close this but if you are still seeing the jump after replacing the script, I'll reopen.


Non-fatal JS error after bulk operation

module.js:2151 Uncaught TypeError: Cannot read properties of undefined (reading 'webPath')
    at module.js:2151:53
    at Array.map (<anonymous>)
    at sk.addEventListener.once (module.js:2151:22)
    at fireEvent (module.js:1071:10)
    at module.js:3367:25

:tada: This issue has been resolved in version 6.45.5 :tada:
The release is available on:

GitHub release
v6.45.5

Your semantic-release bot :package::rocket:


Do some checks before running eval on the stringToParse

See:
https://github.com/lwkchan/make-a-type/blob/991cf42a23b0b7b4101d2ea57e39629cfc007ac1/src/transformers.ts#L13
Should check that the string passed into eval is some kind of object with opening and closing {} before running eval. just incase running eval on it causes something unexpected

Use github actions: https://code.visualstudio.com/api/working-with-extensions/continuous-integration#github-actions-automated-publishing


Support allow-newer

Eta currently uses these two packages together:
https://www.stackage.org/lts-6.27/package/semigroupoids-5.0.1
https://www.stackage.org/lts-6.27/package/tagged-0.8.4
But semigroupoids got a revision which disallows this version of tagged. This is documented here:
https://github.com/ekmett/semigroupoids/issues/71#issuecomment-384374955
Eta uses the describe workaround of setting allow-newer.

I'm guessing this would mean just using jailbreak.


Make sure only root can modify configuration

Configuration should only be editable by root/admin user.

Great, thanks, I will add it to 18.10.


Version 0.0.56 never published

I don't think version 0.0.56 was ever published. This version introduced changes to the AcToolbarComponent.

Thank you for the issue.
You are correct - 0.0.56 will be published very soon

Thanks!


feat: Import export environment flags

Thanks for submitting a PR! Please check the boxes below:

[x] I have run pre-commit to check linting
[x] I have added information to docs/ if required so people know about the feature!
[x] I have filled in the "Changes" section below?
[x] I have filled in the "How did you test this code" section below?
[x] I have used a Conventional Commit title for this Pull Request

Changes

Allows a user to export an environment to a JSON file
Allows a user to import an export to a project, specifying the merge strategy as either skip or overwrite destructive.
Both the import and export allow you to preview changes
Tag filtering now lets you choose between a union and intersection

How did you test this code?

Exported multiple environments flags
Imported using both strategies, alternating between new projects and environments

^ this isn't strictly true when using the 'skip' import strategy.

Adjusted, I think I can just remove the first part so it's as such:

The UX as shown in the screencast below is kinda shonky. I'd argue that the small toast message is not enough feedback for the user here - and they can continue hitting the 'Import Project' button as many times as they like, which I imagine 80% of people will do when 'nothing' happens after they click it the first time.

Adjusted, it'll now clear the file and show the following:

Finally, is there a way to tell if the import is a no-op? When using the skip strategy, I think this is a valid use case. The preview can help a little here but I'd say that it's only really helpful for smaller projects. We may want to consider how we handle projects with very large numbers of features for this functionality. Perhaps a search option or filter by tag?

Hmm yeah ok, I think I could reuse the compare features page for this and just show changed flags?
.
I'm not entirely sure how we'd page these results if we did this since the imported file contains all features. I'm also conscious of the fact we're probably doing none of this for the LD importer?

The feedback is still pretty weak here:

I would suggest that we add a new API endpoint to get a feature import by it's ID so that the FE can poll it for the status. Currently it gets the entity back on the POST request to create the import but the "status" is returned as "PROCESSING". This will eventually change to "COMPLETE" I believe, but the FE has no way of knowing this. cc @zachaysan
This can perhaps be a future improvement, but I do think the feedback at the moment is really weak and, as a user, it would make me confused as to whether anything has happened or not.

@matthewelwell correct it should be showing new flags, it attempts to filter them whilst filtering existing. This should now be fixed


Location of Backup Data

Hello,
The document states the following:
"All backup data is stored in Recovery Services vaults."
Per my understanding of how Azure Backup works on Azure Files, it is an orchestration mechanism for creating and destroying Azure File Snapshots. I also understand that Azure File Share snapshots are stored in the same storage account as the Azure File Share itself. If this understanding is true, then the Recovery Services Vault that orchestrates backups for Azure Files Shares does not actually store any backup data. It only stores the metadata for the backup jobs. This would also mean that setting the Recovery Services Vault to "GRS" has no bearing when backing up Azure File Shares as the redundancy is determined by the Storage Account where the File Share resides. So even if the Recovery Services Vault is set to GRS, if the Storage Account where the File Share resides is set to LRS, both the data and its backups (snapshots) reside in the same Azure Datacenter (LRS.) The same would be true if the Recovery Services Vault was set to LRS and the Storage Account was set to ZRS or GRS. In other words, the resiliency of the backup follows the resiliency of the Storage Account.
Can you please confirm if the above statements are true and comment/correct as you see fit?

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

ID: 61c0f8e6-5a57-58aa-ecd6-2bf83809c44d
Version Independent ID: ee8b8f60-bffd-e6ec-5f21-bfd3208fc511
Content: Back up Azure File Shares
Content Source: articles/backup/backup-azure-files.md
Service: backup
GitHub Login: @markgalioto
Microsoft Alias: markgal

@tFable I agree that there is a bit of confusion on which redundancy would override, storage account VS backup services, I have assigned the issue to the content author to evaluate and update as appropriate.

@tFable Yes the current backup solution utilized snapshots and does not move the backup data to a different storage account. However, we will have it available at GA. The "All backup data is stored in Recovery Services vaults." statement is futuristic and thank you for pointing it out. I will edit the document to avoid confusion.

Thank you, all.


Remove jackson-databind and jackson-annotations dependencies now coming from core

jackson-databind and jackson-annotations were added as api dependencies in server of opensearch core.  Therfore, all plugins now have these as transitive dependencies.  Plugins that currently consume these dependencies directly will break while building unless the direct dependencies are removed.  If your plugin does not consume jackson-databind or jackson-annotations directly, feel free to close the related issue in your plugin's repository.
Example of solution in security plugin: https://github.com/opensearch-project/security/pull/2325

We do not use jackson-databind and jackson-annotations.


update packages

:x: Build TheIdServer 1.0.3-fix-dependencies1-0121 failed (commit https://github.com/Aguafrommars/TheIdServer/commit/fcb0164cd0 by @)

:white_check_mark: Build TheIdServer 1.0.3-fix-dependencies.1+121.build.797 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/fcb0164cd0 by @)


Displacement files not loading in the correct order

In the trajectory_generator.py file the files are read in using
def auto_load_displacement_frames(path: str) -> list[NemdDisplacementFrame]:
"""Convenience function for parsing loading of displacement frame files.
When provided with a path to a directory, this function will locate all files
of the form "average_xyz_displacement_*ps". Matching files will be parsed
into a list of `NemdDisplacementFrame` entities. Note that displacement frames
will be sorted in chronological order according to the timestep specified
in their file names.

Arguments:
    path: the path to the directory within which the displacement data files
        are all stored.

Returns:
    displacement_frames: a chronologically sorted list of displacement frames.
"""
# Locate all files matching the expression "average_xyz_displacement_*ps"
# where "*" is the time elapsed.
files = glob.glob(join(path, "average_xyz_displacement_*ps"))

# Sort the file list so that frames will be in chronological order
pattern = re.compile(r'(?<=average_xyz_displacement_)\d*(?=ps)')
files.sort(key=lambda i: int(pattern.search(i).group(0)))

# Parse the files into displacement frame entities
displacement_frames = list(map(NemdDisplacementFrame.load, files))

# Return the displacement frame list
return displacement_frames

I found that my files were being read in a weird order, it was reading them in the order;
average_displacement_0ps
average_displacement_1000ps
average_displacement_100ps
average_displacement_1010ps
average_displacement_1020ps
e.t.c
I added a function that I defined before the previous function
def natural_sort_key(s):
return [int(c) if c.isdigit() else c.lower() for c in re.split(r'(\d+)', s)]
and sorted the files this way, I think this fixed the issue

This is rather odd. The order you have shown is what you would expect if you tried to sort the file names, or the numbers contained within their names, as strings rather than integers. The file names you provided do not exactly match the anticipated format; i.e. they are missing the _xyz_ component of the name. However, this would just result in a hard error rather than an incorrectly ordered list. Please provide me with the full list of file names; and the order into which they get sorted. Thank you.

All sorted, thanks again!


Autocomplete now makes use of the default-max-batch-size

Onnxruntime backend now makes use of the default max-batch-size value which is passed to it. If the final max-batch-size is greater than 1 then the backend turns on dynamic batching if no other schedulers are found.

Added section in README explaining the default-max-batch-size configuration.


Stack Problem

In computer science, a stack or LIFO (last in, first out) is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the last element that was added.(Wikipedia)
A string containing only parentheses is balanced if the following is true: 1. if it is an empty string 2. if A and B are correct, AB is correct, 3. if A is correct, (A) and {A} and [A] are also correct.
Examples of some correctly balanced strings are: "{}()", "[{()}]", "({()})"
Examples of some unbalanced strings are: "{}(", "({)}", "[[", "}{" etc.
Given a string, determine if it is balanced or not.
Input Format
There will be multiple lines in the input file, each having a single non-empty string. You should read input till end-of-file.
The part of the code that handles input operation is already provided in the editor.
Output Format
For each case, print 'true' if the string is balanced, 'false' otherwise.
Sample Input
{}()
({()})
{}(
[]

Sample Output
true
true
false
true

i would like to solve this in c++.

Yes . I have assigned you. Solve it and raise a PR

I would like to solve this in Python.

i would like to solve this using c


X3 HAC 22P

Is it possible to integrate the new Solax EV Charger in this intergration?
I'm using the Solax X3 HAC 22P

Hi. Definetely it is so possible. But there are prerequisites:

I have time. Till 12.12. I'm away so no chance for coding.
API of new version is similar to old one. If it is something completely different, it will be more work.
You have time for testing and you accept risk connected.

Thank you very much,
December is fine form me.
of cource I can test the Integration.
Is there a docu of the API available, so that I can check ist?
I tried the command you sent me and that is the result:
{"SN":"RegNr","ver":"003.02","type":3,"Data":[0,0,0,23382,23225,23300,0,0,0,0,0,0,0,0,0,4,0,11,65527,65528,65534,65535,65535,0,15,21,0,0,0,0,0,0,0,4984,4988,4984,13074,1810,6155,4,0,0,0,0,0,0,0,0,1,0,0,1338,1301,6153,48,1195,1000,60,49,0,0,1,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,13,50,5,0,5,0,0],"Information":[22.000,3,"SerialNr.",2,2.03,4.03,0.00,0.00,0.00,1,1,0,0],"OCPPServer":"","OCPPChargerId":"","QRContent":""}

On first look it seams it is same or very similar API. I think it should work with minimal changes.
Please send me first four characters of "SerialNr". It should look somehow like "C3221".
It is 3 phase 22kW, yes?

That sounds good ;)
Yes it is a 22kw with 3 phases. (Model: X3 HAC 22P)
https://www.solaxpower.com/products/smart-ev-charger-g2/
SerialNr : 5030M...

SN does not look like one for other models.
Is is really one you find in response posted on third position in "information"?

I have done the check another time, and the SerialNr is correct!
In the solax App is the same SerialNr.

Here is resume.
Data field is not same as on older model. Most of the registers are probably on same place but sume not.
I have to rewrite mapping for plugin to be able to read from HAC model. But it is possible and relatively easy.
I'll do it when I'm back home (12.12).
Writing settings and parametrrs is more problematic part. In first phase I'll desible write operations for HAC becaouse it can do some harm. Later you have take risk and test.
If you want to help till I'll get to it:
Check this sheet https://github.com/PatrikTrestik/homeassistant-solax-http/blob/main/doc/Mapping.xlsx
Second tab shows mapping for "Data" fields. Index is zero based.
You can repeatedly read from your EVC as you did before (curl) and check if mapping is ok, or needs different index.
Feel free to start with obvious and most usable values. I also started using my EVC integration with just few (Power, Voltage, Charging mode).

Hi, i also own a X3-HAC-11-P, installed and connected (wifi) and with inverter via COM1-S- port.
If logs or tests are need let me know.
Wallbox: X3-HAC-11-P
SerialNr. 5030B
ARM Version	002.03
Module version	003.02
Inverter: X3-Hybrid-G4 15kw
WIFI3.0 Dongle
ARM Version	1.44-1.15
Main DSP Version	1.46
Battery: Solax 	HS36 (18.4 kwh)
Master battery version	2.01

Sounds great! Thanks

Thank you very much for the update!
Shoud the Integration also be able to identify the X3-HAC-22-P?
Because after the Update to Version 1.2.8 the Integration is not able to find any Entity or Device.

Hi,
updated to 1.2.8, restarted HA etc.

no entities
enabled debug

2024-12-18 13:09:26.199 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration solax_http which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant 2024-12-18 13:09:29.576 ERROR (MainThread) [custom_components.solax_http.coordinator] Failed to read data from http: 0:code,message:"failed"} 2024-12-18 13:09:29.725 ERROR (MainThread) [custom_components.solax_http.coordinator] Failed to read data from http: 0:code,message:"failed"} 2024-12-18 13:09:29.725 WARNING (MainThread) [custom_components.solax_http.plugin_solax_ev_charger] Attempt to read serialnumber failed 2024-12-18 13:09:29.725 ERROR (MainThread) [custom_components.solax_http.plugin_solax_ev_charger] unrecognized inverter type - serial number : unknown 2024-12-18 13:10:22.314 ERROR (MainThread) [custom_components.solax_http.plugin_solax_ev_charger] unrecognized inverter type - serial number : 5030Bxxxxxxxx 2024-12-18 13:10:58.519 DEBUG (MainThread) [custom_components.solax_http] setup entries - data: {}, options: {'host': '192.168.x.20', 'name': 'SolaX API', 'scan_interval': 15, 'serial_number': 'xxxxxxxx'} 2024-12-18 13:10:58.519 DEBUG (MainThread) [custom_components.solax_http] Setup solax_http.SolaX API 2024-12-18 13:10:58.519 DEBUG (MainThread) [custom_components.solax_http.coordinator] Setting up coordinator 2024-12-18 13:11:00.657 INFO (MainThread) [custom_components.solax_http.plugin_solax_ev_charger] Read serial number: 5030Bxxxxxxxxx 2024-12-18 13:11:00.657 INFO (MainThread) [custom_components.solax_http.plugin_solax_ev_charger] Trying to determine inverter type 2024-12-18 13:11:00.657 ERROR (MainThread) [custom_components.solax_http.plugin_solax_ev_charger] unrecognized inverter type - serial number : 5030Bxxxxxxxxx 2024-12-18 13:11:00.657 DEBUG (MainThread) [custom_components.solax_http.coordinator] Finished fetching solax_http-192.168.x.20 data in 2.139 seconds (success: True)

Be patient 😃 This is not version you wait for.
See release notes :"only small text charge"
Your version with Phase 1 will be 1.3.x and I'll comment here. 😁

@alna-laurentiu , @ChristophPeterseil please send me data for Settings request.
It is same HTTP post as you did last time, but "optType=ReadSetData".
I'm finishing with first version which will recognize your EVC. Might be available today.

Hi Patrik,
here you go...
[0,0,70,16,0,0,0,1,0,1,0,10,6,265,160,0,0,0,0,0,0,44,25,0,0,12593,12593,12593,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4600,0,0,0,0,0,1,257,2,0,0,0,0,220,0]

Hi Patrik,
here you go...
[0,0,70,16,0,0,0,1,0,1,0,10,6,265,160,0,0,0,0,0,0,44,25,0,0,12593,12593,12593,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4600,0,0,0,0,0,1,257,2,0,0,0,0,220,0]

Thanks.
It is sad that mapping is completely odd. Lot of work ahead of us. 😃

@PatrikTrestik  i have time...tomorrow is the last workingday for me ...at least for this year!

I published version 1.3,1 which should correctly identify new HVC charger (two types we know SN and type for).
Please look on it and test:

Integration starts, identifies charger and shows some entities.
Each entity

Shows value
Value has meaningfull value
If visible in SolaX cloud web or app compare
If can be set by SolaX cloud web or app check if reflects setting and changes

I mapped only totaly obvious entities. For rest I have to decompile SolaX app and check there. Mainly for writes it is critical.
I don't want to waste time on not used stuff. Please let me know which values/settings you are currectly looking for.
Create new Issue asking to add specific sensors/settings. Best ios to refere to it exactly as in SolaX app (screenshot is best).

Nice.... 16 entities available

I also have 16 Entities, available. Thank you very much, for this new Update.
When I have installed and Configured the Integration nearly all Entities where disabled.
(only the Run Mode was enabled)

When I have installed and Configured the Integration nearly all Entities where disabled. (only the Run Mode was enabled)

Yes, it is normal. Integration enables only frequently used entities.
Unfortunately on first look I was able to map only few not very interesting entities 🙂

First of all, i want to say a BIG thank you!
I think basic controlls like START/STOP Charging and maybe changing MODES (ECO/GREEN/FAST) will be nice. Then we can for sure automate pretty much anything with HA. At the moment i only use the inverter setting "Battery to EV Charger" in order to manage at least something, start and stop i can do via Solax APP or Hyundai APP...... If battery is over 80% then "Battery to EV Charger" is enabled and below is disabled.

When I have installed and Configured the Integration nearly all Entities where disabled. (only the Run Mode was enabled)

Yes, it is normal. Integration enables only frequently used entities.
Unfortunately on first look I was able to map only few not very interesting entities 🙂

The entities are very helpfull, now I can start with my automation.

Ok. I believe that we have Charging Mode working. What next? 😃
You can look in file 'custom_components/solax_http/entity_definitions.py' to see what is implemented for G1.
If you find something you want to have, start new issue with request.
I'm now pretty sure that I have enough information to implement G2 quickly. But I'll rather do it on request and not waste time on something you have no use for.


HTTPS default port should be 443 and not 80

Summary
Hello everyone.
When I register a service using the url parameter with a https address and the port value is not in the url string ( something like: https://www.google.com.br/ ), Kong register the service with port 80. This causes the following error:
[error] 13997#0: *815304 SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream

When I use the PATCH service route to set the port to 443, everything works fine.
Steps To Reproduce

Add a Google service with url set to: "https://www.google.com.br/".
Add route to the service.
Execute a request, see the error.
PATCH service to port 443.
Execute another request and see that it works.

Since Kong is able to understand the protocol in the url parameter, I believe it should set the default port accordingly, 80 to http services and 443 to https services.
I know it's a small matter but I though it shouldn't pass unnoticed. :smiley:
Additional Details & Logs

Kong version: 0.13.0

Kong debug-level startup logs:
2018/05/08 16:35:20 [verbose] Kong: 0.13.0 2018/05/08 16:35:20 [debug] ngx_lua: 10011 2018/05/08 16:35:20 [debug] nginx: 1013006 2018/05/08 16:35:20 [debug] Lua: LuaJIT 2.1.0-beta3 2018/05/08 16:35:20 [info] Kong stopped 2018/05/08 16:35:20 [verbose] reading config file at /etc/kong/kong.conf 2018/05/08 16:35:20 [debug] admin_access_log = "logs/admin_access.log" 2018/05/08 16:35:20 [debug] admin_error_log = "logs/error.log" 2018/05/08 16:35:20 [debug] admin_listen = {"<IP_ADDRESS>:8001","<IP_ADDRESS>:8444 ssl"} 2018/05/08 16:35:20 [debug] anonymous_reports = true 2018/05/08 16:35:20 [debug] cassandra_consistency = "ONE" 2018/05/08 16:35:20 [debug] cassandra_contact_points = {"<IP_ADDRESS>"} 2018/05/08 16:35:20 [debug] cassandra_data_centers = {"dc1:2","dc2:3"} 2018/05/08 16:35:20 [debug] cassandra_keyspace = "kong" 2018/05/08 16:35:20 [debug] cassandra_lb_policy = "RoundRobin" 2018/05/08 16:35:20 [debug] cassandra_port = 9042 2018/05/08 16:35:20 [debug] cassandra_repl_factor = 1 2018/05/08 16:35:20 [debug] cassandra_repl_strategy = "SimpleStrategy" 2018/05/08 16:35:20 [debug] cassandra_schema_consensus_timeout = 10000 2018/05/08 16:35:20 [debug] cassandra_ssl = false 2018/05/08 16:35:20 [debug] cassandra_ssl_verify = false 2018/05/08 16:35:20 [debug] cassandra_timeout = 5000 2018/05/08 16:35:20 [debug] cassandra_username = "kong" 2018/05/08 16:35:20 [debug] client_body_buffer_size = "8k" 2018/05/08 16:35:20 [debug] client_max_body_size = "0" 2018/05/08 16:35:20 [debug] client_ssl = false 2018/05/08 16:35:20 [debug] custom_plugins = {"kong-authorization-plugin","kong-authentication-plugin","cerberus-plugin","kong-url-rewrite-plugin","kong-plugin-authorization","template-transformer"} 2018/05/08 16:35:20 [debug] database = "postgres" 2018/05/08 16:35:20 [debug] db_cache_ttl = 3600 2018/05/08 16:35:20 [debug] db_update_frequency = 5 2018/05/08 16:35:20 [debug] db_update_propagation = 0 2018/05/08 16:35:20 [debug] dns_error_ttl = 1 2018/05/08 16:35:20 [debug] dns_hostsfile = "/etc/hosts" 2018/05/08 16:35:20 [debug] dns_no_sync = false 2018/05/08 16:35:20 [debug] dns_not_found_ttl = 30 2018/05/08 16:35:20 [debug] dns_order = {"LAST","SRV","A","CNAME"} 2018/05/08 16:35:20 [debug] dns_resolver = {} 2018/05/08 16:35:20 [debug] dns_stale_ttl = 4 2018/05/08 16:35:20 [debug] error_default_type = "text/plain" 2018/05/08 16:35:20 [debug] latency_tokens = true 2018/05/08 16:35:20 [debug] log_level = "notice" 2018/05/08 16:35:20 [debug] lua_package_cpath = "" 2018/05/08 16:35:20 [debug] lua_package_path = "./?.lua;./?/init.lua;" 2018/05/08 16:35:20 [debug] lua_socket_pool_size = 30 2018/05/08 16:35:20 [debug] lua_ssl_verify_depth = 1 2018/05/08 16:35:20 [debug] mem_cache_size = "128m" 2018/05/08 16:35:20 [debug] nginx_daemon = "on" 2018/05/08 16:35:20 [debug] nginx_optimizations = true 2018/05/08 16:35:20 [debug] nginx_user = "nobody nobody" 2018/05/08 16:35:20 [debug] nginx_worker_processes = "auto" 2018/05/08 16:35:20 [debug] pg_database = "kong" 2018/05/08 16:35:20 [debug] pg_host = "<IP_ADDRESS>" 2018/05/08 16:35:20 [debug] pg_password = "******" 2018/05/08 16:35:20 [debug] pg_port = 5432 2018/05/08 16:35:20 [debug] pg_ssl = false 2018/05/08 16:35:20 [debug] pg_ssl_verify = false 2018/05/08 16:35:20 [debug] pg_user = "kong" 2018/05/08 16:35:20 [debug] prefix = "/usr/local/kong" 2018/05/08 16:35:20 [debug] proxy_access_log = "logs/access.log" 2018/05/08 16:35:20 [debug] proxy_error_log = "logs/error.log" 2018/05/08 16:35:20 [debug] proxy_listen = {"<IP_ADDRESS>:8000","<IP_ADDRESS>:8443 ssl"} 2018/05/08 16:35:20 [debug] real_ip_header = "X-Real-IP" 2018/05/08 16:35:20 [debug] real_ip_recursive = "off" 2018/05/08 16:35:20 [debug] server_tokens = true 2018/05/08 16:35:20 [debug] ssl_cipher_suite = "modern" 2018/05/08 16:35:20 [debug] ssl_ciphers = "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256" 2018/05/08 16:35:20 [debug] trusted_ips = {} 2018/05/08 16:35:20 [debug] upstream_keepalive = 60 2018/05/08 16:35:20 [verbose] prefix in use: /usr/local/kong 2018/05/08 16:35:20 [verbose] preparing nginx prefix directory at /usr/local/kong 2018/05/08 16:35:20 [verbose] SSL enabled, no custom certificate set: using default certificate 2018/05/08 16:35:20 [verbose] default SSL certificate found at /usr/local/kong/ssl/kong-default.crt 2018/05/08 16:35:20 [verbose] Admin SSL enabled, no custom certificate set: using default certificate 2018/05/08 16:35:20 [verbose] admin SSL certificate found at /usr/local/kong/ssl/admin-kong-default.crt 2018/05/08 16:35:20 [warn] ulimit is currently set to "1024". For better performance set it to at least "4096" using "ulimit -n" 2018/05/08 16:35:20 [debug] searching for OpenResty 'nginx' executable 2018/05/08 16:35:20 [debug] /usr/local/openresty/nginx/sbin/nginx -v: 'nginx version: openresty/<IP_ADDRESS>' 2018/05/08 16:35:20 [debug] found OpenResty 'nginx' executable at /usr/local/openresty/nginx/sbin/nginx 2018/05/08 16:35:20 [debug] starting nginx: /usr/local/openresty/nginx/sbin/nginx -p /usr/local/kong -c nginx.conf 2018/05/08 16:35:20 [debug] nginx started 2018/05/08 16:35:20 [info] Kong started

Kong error logs: [error] 13997#0: *815304 SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream.

Kong configuration: I have just this service registered.

Operating System: Ubuntu 16.04

Hi,
Thanks for the report, this has been fixed in 0.13.1 already, with #3358. See the 0.13.1 Changelog :)

Oops, sorry about that.


Kestrel as a Reverse Proxy Supporting HTTP/2

We are looking into use gRPC to connect to our EDMS (M-Files).  Our clients would use the M-Files desktop client to connect to a reverse proxy in the DMZ that would direct requests to the M-Files application server in the internal network.  So far, I have only heard of this working with proxy servers running on Linux (eg. HAProxy, NGINX), because M-Files requires HTTP/2 in this configuration.  I have heard that Application Request Routing using HTTP/2 is not yet supported in IIS.
Is this still true?  Or does using Kestrel provide a suitable way to do this in Windows?

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

ID: 93ed7bfe-e34c-540c-8cd6-92cbca4c301a
Version Independent ID: c02fcf64-71fc-d05b-8e0a-87e4c0b97030
Content: Use HTTP/2 with the ASP.NET Core Kestrel web server
Content Source: aspnetcore/fundamentals/servers/kestrel/http2.md
Product: aspnet-core
Technology: aspnetcore-fundamentals
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@JamesNK, I don't know the answer to this one.  It does seem like it would be out of scope for this doc.  Thoughts?

Yes, YARP - built on Kestrel - supports proxying gRPC.
https://microsoft.github.io/reverse-proxy/articles/grpc.html

See When to use Kestrel with a reverse proxy
I think that's the right place to surface YARP.  @JamesNK  let me know if we should add that YARP link in other places.

I think what is there today is fine.


org settings: Change join org permissions to dropdown.

Modal is working now.
Updated GIF:

This is great, merged, thanks @shubhamdhama!  A few quick follow-ups:

The spacing here is wrong; the "Allowed domains" subitem should feel like part of the previous setting.  We should either indent, put a box around it, or just make it a low closer to the setting it's part of than the setting below.
We should add an animation to hide the "Changes saved" alerts inside the “allowed domains” modal.  Currently, they stick around forever (even after closing and re-opening the modal)
We should change the 3 “Invite required” checkboxes to a dropdown for the 3 valid states, rather than having the layered checkboxes.

For these, I'd just make a PR fixing what you fix right away, and if there's anything that seems like its own project, just make an issue for it so we don't lose the project (comments at the end of a PR at a poor place to persist TODOs).


Updates useDarkMode hook

Summary of changes

Updates useDarkMode hook to emit localstorage changes event such that we can listen to the event to get the current selected theme.
Adds isDarkMode state to statsContext such that we can use const { isDarkMode } = useStatsContext() in any component to get the current selected theme.
Updates text, labels and few elements colors of Stacked Area Chart to match the design with light and dark mode accordingly.

Reference issue to close (if applicable)

Closes #618

@devpavan04 any chance you could record a loom / video for new features and add to your PRs? That would be awesome to see alongside it!

Changes overview
@drewstone
https://user-images.githubusercontent.com/53374218/208000881-c13af1a4-bbe1-4cac-a922-56ebc1280286.mov


Uncaught TypeError: _modernizr2.default.mq is not a function

I'm using the exact configuration as specified in the Readme, and the import of Modernizr works.
However, when I go to use the thing, I get the error Uncaught TypeError: _modernizr2.default.mq is not a function.
Here is my modernizr config:
{
  "minify": true,
  "options": [
    "setClasses",
    "mq"
  ],
  "feature-detects": []
}

When I use mq, I get the error above. Here is my code:
import Modernizr from 'modernizr'
...
var query = Modernizr.mq('screen and (max-width: 600px)')

Incidentally, if I print out the Modernizr object, I get this:
{
  "minify":true,
  "options": ["setClasses","mq"],
  "feature-detects":[]
}

Where it's quite obvious that mq is not even a direct descendant, let alone a function.
However, this is what the docs say to do, so what gives?

You have a modernizr configuration included in your code instead of modernizr itself. It means that loader isn't configured correctly. Need to look at your config to see what's wrong.


[cmake] Add find_package(SWIFT) that was removed during a rebase

A rebase of a change to LLDBStandalone.cmake lost the
find_package(SWIFT) invocation. Bring it back here.

@xiaobai @JDevlieghere


Update coveralls and cssmin dependencies.

Update outdated dependencies to latest versions of coveralls and cssmin.

Coverage remained the same at 100.0% when pulling a6b6f6aeb6ca95a5b877139bb62fd80bdc870fe8 on update-dependencies into e3d4e9c6692d9de32b717969d38cfd434fe4735c on master.


Update plex-media-server to <IP_ADDRESS>.1192-9a47d21

Thank you for the contribution. It was merged directly as 096a05f29bffb04d5813b8688122c4cde46026f0 to keep commit history cleaner. Your contribution is still credited to you.


Diagrams, images, and GIFs

This issue lists all diagrams/images/GIFs that are needed in the chapters.

[x] Chapter 2: example of address string
[x] Chapter 2: example of a QR code containing an address
[x] Chapter 6: bitcoin to satoshi conversion
[x] Chapter 6: different symbols for the bitcoin and satoshi units
[x] Chapter 7: screenshot of the menu screen offering the recovery phrase

Added in f78648263c2fcd50ca78c7612c85ff56d46c0f43!


Physiopy - Documentation of Physiological Signal Acquisition Best Practices

Title
Physiopy - Documentation of Physiological Signal Acquisition Best Practices
Short description and the goals for the OHBM BrainHack
Physiopy is a community formed around developing tools to operate physiological files in MRI setups. This project specifically will expand our package documentation containing tips and strategies on how to collect various forms of physiological data and the use of our packages. We aim to provide a succinct overview of what physiological data are typically recorded during an fMRI experiment, how these signals are recorded, and how these signals can improve our modeling of fMRI time series data. This is an active field of research, and we hope to encourage all users to get the latest recommendations prior to initiating a new study.
Link to the Project
https://github.com/physiopy/physiopy.github.io
Image for the OHBM brainhack website
https://github.com/physiopy
Project lead
Sarah Goodale, Github Username: goodalse2019 , Discord Username: sarah goodale#5094
Inês Esteves, Github Username: isesteves, Discord Username: iesteves#5699
Main Hub
Glasgow
Other Hub covered by the leaders

[X] Glasgow
[ ] Asia / Pacific
[X] Europe / Middle East / Africa
[ ] Americas

Skills
Excitement for learning the best practices in physiological signal acquisition. We welcome all contributions from any skill set and level, this project will predominantly be focused on documentation contributions.
Git - we welcome any level of git (0-3), markdown knowledge helpful
Recommended tutorials for new contributors

[X] Set up a brainhack friendly computing environment
[X] A introduction to Bash
[ ] Python: Writing a script
[ ] Python: Data analysis with Python
[ ] Python: Visualisation
[ ] Machine learning basics
[ ] BIDS
[ ] Machine learning for neuroimaging
[X] VCS: Using Git and Github
[ ] VCS: Data management with Datalad
[ ] Virtualization
[ ] High Performance Computing: Oracle cloud resource

Good first issues

Improve documentation for package
Build best practices libraries and summaries for various physiological signals (e.g., respiratory, cardiac, skin conductance, etc.)
Check open source libraries and software similar to what we do
Find links to educational courses of interest
Build list of open source datasets with physiological signals

Twitter summary
Come join us at Physiopy working on documentation of physiological signal acquisition and best practices
physiopy/physiopy.github.io
@s_goodale23 @isesteves
#OHBMHackathon #Brainhack #OHBM2022
Short name for the Discord chat channel (~15 chars)
physiopy-documentation
Please read and follow the OHBM Code of Conduct

[X] I agree to follow the OHBM Code of Conduct during the hackathon

please provide a proper link to the image

@djarecka sorry, my fault. Woudl this link work? https://github.com/physiopy/phys2bids/blob/master/docs/_static/physiopy_logo_1280x640.png?raw=true

https://raw.githubusercontent.com/physiopy/phys2bids/master/docs/_static/physiopy_logo_1280x640.png

Thank you for submitting the project! We have 35 projects right now, woohoo! But that means the projects pitches will have to be short. We will give you tomorrow 2 minutes to pitch your project, you can have one slide or no slides!
If you decide to use a slide, please include the link to the slide here.
And don't worry, you will still have more time to talk about your project during the BrainHack :-)


[KOGITO-2002] fix hot reload when a new rule unit is added

what was wrong exactly?

what was wrong exactly?

yep, sorry I did some refactory (the IncrementalRuleCodegen.generate() was 200+ lines long and became unreadable) and it is not easy to see what changed. Basically 2 things:

The AssignableChecker, the class using the "right" classloader to check if a type is a DataSource (I introduced it to workaround the problems caused by Quarkus CL, remember?) is now taken directly from the RuleUnitDescription when possible https://github.com/kiegroup/kogito-runtimes/pull/491/files#diff-aaf0409efde7bd18867eb25de7988419R357 I'm afraid this is still a bit brittle and I don't think this is totally solved now, but anyway if I don't do this once again the incremental codegen is not able to recognize that a variable is a DataSource in Duncan's test case.

Before the ProjectRuntime (that contains the definition of all KieBases included the ones inferred from the units) wasn't regenerated in case of an hot reload https://github.com/kiegroup/kogito-runtimes/pull/491/files#diff-aaf0409efde7bd18867eb25de7988419L350 I had to remove that condition (it's unfortunately impossible to understand if a new ruleunit has been added or not) and now the ProjectRuntime is always regenerated.


Proposal: account delegation via callFrom

Abstract
This proposal introduces a modular mechanism allowing accounts to delegate other accounts to execute functions on their behalf. By modularizing the delegation logic, we can cater to various use cases, from simple unlimited delegations to complex, conditional ones.
Design Goals

Enable accounts to authorize other accounts for delegated function calls.
Provide flexibility for various delegation types and restrictions.
Aim for minimal complexity in the core protocol to maintain simplicity and modularity.

Sample use cases

Session accounts

Allow main accounts to delegate a burner wallet with restricted permissions.
Set conditions such as the number of calls, specific function access, or duration of the delegation.
More use case specific restrictions could be “allow delegation for the duration of this match”

Trusted Forwarder**: [EIP-2771](https://eips.ethereum.org/EIPS/eip-2771)**, where users can authorize their preferred forwarder.
Atomic Operations: Like ERC20's approve + transferFrom mechanism.

Ex. 1: Let a user delegate a module to call registerHook without transferring namespace ownership.
Ex. 2: Flash lend an army in an onchain strategy game.

Modular Systems: Build higher-level abstractions using pre-existing systems. Refer to https://github.com/latticexyz/mud/issues/319

Proposed solution
Overview

An account can register a delegation in the world.
The delegation can be specific to a particular caller, or general to all callers who wish to call functions on behalf of the account.
The delegation can be unlimited or limited. Limited delegations require an associated contract which validate’s a caller’s attempt to perform an actions on behalf of the account.
Delegated actions are executed via the callFrom entry point.

Implementation

Any contract implementing the DelegationCheck interface can be associated with a limited delegation.
interface DelegationCheck {
	function check(address grantor, bytes32 systemId, bytes funcSelectorAndArgs) returns (bool);
}

contract World {
	function registerLimitedDelegation(address grantee, address delegationCheck) {
		Delegations.set({ grantor: msg.sender, grantee: grantee, delegation: delegationCheck });
	}

	function revokeDelegation(address grantee) {
		Delegations.deleteRecord({ grantor: msg.sender, grantee: grantee });
	}
}

For efficiency, a constant (address(1)) can represent unlimited delegations, circumventing the need for contract calls in this case.
address constant UNLIMITED_DELEGATION = address(1);

contract World {
	function registerUnlimitedDelegation(address grantee) {
		Delegations.set({ grantor: msg.sender, grantee: grantee, delegation: UNLIMITED_DELEGATION });
	}
}

Once a delegation is registered, the “grantee” can call functions on behalf of the “grantor” using callFrom. The world checks the validity of a delegation by calling the delegation check system registered for this grantee/grantor. There may be a different delegation check contract for each grantee, and/or a default delegation check for each grantor.
contract World {
	function callFrom(address from, bytes32 systemId, bytes funcSelectorAndArgs) {
		// Check if there is an explicit delegation check set for the msg.sender
		Delegation explicitDelegation = Delegations.wrap(Delegations.get({ grantor: from, grantee: msg.sender }));
		if(explicitDelegation.check(from, msg.sender, systemId, funcSelectorAndArgs)) {
			// forward the call with `from` as `msgSender`
		}

		// Check if `from` has a fallback delegation check set
		Delegation fallbackDelegation = Delegation.wrap(Delegations.get({ grantor: from, grantee: address(0) }));
		if(fallbackDelegation.check(from, msg.sender, systemId, funcSelectorAndArgs)) {
			// forward the call with `from` as `msgSender`
		}

		revert NoDelegationFound();
	}
}

type Delegation is address;
using DelegationInstance for Delegation;

library DelegationInstance {
	function exists(address self) returns (bool) {
		return self != address(0);
	}

	function isUnlimited(address self) returns (bool) {
		return self == UNLIMITED_DELEGATION;
	}

	function isLimited(address self) returns (bool) {
		return exists(self) && !isUnlimited(self);
	}

	function check(address self, address grantor, address grantee, bytes32 systemId, bytes funcSelectorAndArgs) returns (bool) {
		// Early return if there is no valid delegation
		if(!exists(self)) return false;

		// Early return if there is an unlimited delegation
		if(isUnlimited()) return true;

		// Check the delegation if it's a limited delegation
		// Note: this is pseudo-code; in reality we'd use a library that appends `msg.sender` to the calldata so `msgSender()` works in the system
		try DelegationCheck(self).check(grantor, systemId, funcSelectorAndArgs) returns (bool success) {
			return success;
		} catch {
			return false;
		}
	}
}

With this setup in place delegation types such as limiting the number of calls can be added via a module.
// The DecayingDelegationModule installs a DecayingDelegationSystem and DecayingDelegationTable in the world. It allows users to create delegations that are limited in the number of calls.

// Like other systems, this system is only ever called by the World contract it reads/writes to/from.
// (It can be called by anyone, but always reads from and writes to the caller)
contract DecayingDelegationSystem is System, DelegationCheck {
	function check(address grantee, bytes32 systemId, bytes funcSelectorAndArgs) returns (bool) {
		uint256 numCallsLeft = DecayingDelegationTable.getNumCalls(_msgSender(), grantee, systemId, keccak256(funcSelectorAndArgs));
		if(numCallsLeft == 0) {
			revert NoCallsLeft();
		}
		DecayingDelegationTable.set(_msgSender(), grantee, systemId, funcSelectorAndArgs, numCallsLeft - 1);
		return true;
	}

	function initializeDelegation(address grantee, bytes32 systemId, bytes funcSelectorAndArgs, uint256 numCalls) {
		DecayingDelegationTable.set({
			grantor: _msgSender(),
			grantee: grantee,
			funcSelectorAndArgsHash: keccak256(funcSelectorAndArgs),
			numCalls: numCalls
		});
	}
}

We can add similar systems for all primitive delegation times (e.g. approve delegation until block number), and more advanced ones like “approve until the current match is finished”
A user can create a new delegation using this system by setting this system as the delegation check and calling the system to set the number of calls. The UX of this can be improved using libraries (for the client and contracts).

world.registerLimitedDelegation(grantee, decayingDelegationSystem);
world.DecayingDelegationSystem_initializeDelegation(grantee, systemId, funcSelectorAndArgs, numCalls);

We could also extend the registerLimitedDelegation function to include a parameter for arbitrary bytes, which are passed to the system’s init function. This would simplify the UX of creating and initializing a limited delegation

function registerLimitedDelegation(address grantee, address delegationCheck, bytes args) {
	// Store the delegation check contract as before
	Delegations.set({ grantor: msg.sender, grantee: grantee, delegation: delegationCheck });

	// Initialize the delegation
	delegationCheck.call(abi.encodePacked(DelegationCheck.init.selector, args, msg.sender));
}

Related issues

https://github.com/latticexyz/mud/issues/327
https://github.com/latticexyz/mud/issues/393
https://github.com/latticexyz/mud/issues/319

account delegation from EOA to burner wallet for an indefinite period of time.

if the delegation is not limited to certain functions, the UNLIMITED_DELEGATION can be used and no additional CALL would be required. If it should be limited to certain functions it would have to happen via a CALL to a delegation check in the current design. There is some overhead in that, but there are simply too many variants of limitations to hardcode some of them in the core function (eg. limit to all functions of a namespace, limit to all functions of a system, limit to a specific function, limit to a specific function with specific arguments). If the check happens via a CALL the respective delegation check system can just perform the checks that are actually required, which saves some gas over doing more checks in the core function that might not be relevant for the specific type of limitation.

Ohh got it! I glossed over the unlimited delegation bit. 👌


react and svelte icons added

Hi! I love this theme and it was missing react & svelte icons, so I decided added 🙂. I'll be waiting your comments

Thanks for contributing @abrahamBerzunza , I'll take a look later today and generate a new version with this.


Runtime query'able version information API spec

Spec for new API to query Windows App SDK runtime version in use at runtime
WindowsAppSDK-VersionInfo.h at build-time provides what you're built with, but that's merely a "minimum criteria" what you'll use at runtime when using WinAppSDK framework-dependent (aka as MSIX packages). If you build with 1.2.3 you could run with 1.2.3, or 1.2.4, or 1.2.5, or... This lets you query for what is in use at runtime
See Runtime query'able version information #2889 for the implementation
https://task.ms/41026156

/azp run


Question? How can this be applied to a basic GPT transformer text generator?

do you know of how to apply this to a GPT like model, I assumed a from scratch pytorch model.

ff is very limiting right now, but i think it is something one can work on.

It would be very benefitial for more fine tuning be exspically for edge device models like those in the STM32 model zoo ie tensorflow lite and onnx models for microcontrollers.
Last year I was interested in this and wrote to<EMAIL_ADDRESS>a post grad who did a few sample repos on using Forward Forward from Geoffery Hintons paper examples, the MINST working code he had but Hadia's work was a bit  to complex for me i think and could not get a functioning example using Forward Forward in GPT type NN.
But this would be a greate subject of research and could allow for super low resource ML and open up Anolog computation for not just inference of models but maybe even training.
I see it as a kind of digital/anolog biology way to train machines. meh i digress.

yes sorry, here is the repo I experimented with. https://github.com/ghadialhajj/FF_unsupervised


[PF2e] Critical Damage Rolls and Spell Damage Rolls Not Prompting

Any damage rolls for spell damage or critical hit damage are rolling automatic virtual rolls despite dice types set as manual rolls.

I've tested my PR #31 with critical hits, spell damage and others and it works fine now. /cc @aaclayton @117ksk

Can confirm this PR fixes all crit and spell damage issues in PF2e as per my original post. Thank you!


Emacs: Error running timer `tern-reparse-on-idle': (user-error "Host name must not match method "plink"")

Ternjs within local .js file works fine.
But editing remote .js file on server,
using plink with Tramp mode on windows in Emacs 24.5, there's always a message as below:
Error running timer `tern-reparse-on-idle': (user-error "Host name must not match method \"plink\"")

The path is C-x C-f /plink:1:/root/some-file.js
The plink in windows using putty pre-generated key chain to connect to server(server name is 1), Dired and remote file editing & save all works fine, except this message.

That error looks like it is generated by some library function that tern.el calls -- it certainly isn't throwing it itself. Are you able to get any kind of stack trace? (I must admit I forgot how to get elisp stack traces.)

I've open debug as below in init.el:
(setq debug-on-error t)

and the Backtrace window show nothing, and Message window has text below:
Error running timer `tern-reparse-on-idle': (user-error "Host name must not match method \"plink\"") [2 times]
Mark saved where search started
Error running timer: (user-error "Host name must not match method \"plink\"") [3 times]
Error running timer `tern-reparse-on-idle': (user-error "Host name must not match method \"plink\"")
Error running timer: (user-error "Host name must not match method \"plink\"")
Error running timer `tern-reparse-on-idle': (user-error "Host name must not match method \"plink\"")
Error running timer: (user-error "Host name must not match method \"plink\"")
Error running timer `tern-reparse-on-idle': (user-error "Host name must not match method \"plink\"")

Or, please tell me how to let ternjs to output Backtrace?
Thank you

When tested in MacOS 10.9.5, with ssh configured to use key chain to login remote without password both in terminal and Emacs, the message as below:
Error running timer `tern-reparse-on-idle': (user-error "Host name must not match method \"ssh\"")

I suspect it's the problem of determine tern-project-dir in remote, whether can provide an option to disable finding .tern-project remotely but only use .tern-config locally?

Does #739 solve this?

tested in different platform and it's fixed. thanks for the job!


Create SEO social image (card) for the homepage

A simple update to make the 4C site more attractive in social posts
We need a new design for the SEO card to appear on twitter, facebook, Linkedin, and anywhere else the site might be shared.
This card should allow the flexibility that it can be used on other pages (with design changes).
This will then need to be uploaded to the repo and passed to the SEO component on the homepage

You could also add the image as the sharing image in the repo settings also.

Closing the issue. PR for this feature has been merged.


Grey background when editing a short page/snippet and a message is shown

Issue Summary
When editing a page or snippet that has a short content so that the whole form takes less space than the available vertical viewport space, and a message from Django's messages framework is shown on the page, a grey background can be seen at the bottom of the page:

Seems to be caused by leftover styles for .content-wrapper in _grid.legacy.scss:
https://github.com/wagtail/wagtail/blob/1af0815af0baaca801e2a09169d461a259f731ea/client/scss/components/_grid.legacy.scss#L30-L39

Steps to Reproduce

Make sure your screen height is big enough (you can use DevTools with smaller zoom levels to simulate this)
Spin up bakerydemo
Create a Standard page
Fill the title and hit save
Scroll to the bottom

Any other relevant information. For example, why do you consider this a bug and what did you expect to happen instead?
The page editor should have a consistent background colour (white).

I have confirmed that this issue can be reproduced as described on a fresh Wagtail project: Yes

See also potentially related issues.
https://github.com/wagtail/wagtail/issues/9199
https://github.com/wagtail/wagtail/issues/8664


A problem about prompt

Thanks for your nice work!
I noticed that in the third stage of texture optimization the prompt is prefixed with the string "a DSLR photo of XXX", but some prompts already have this prefix string in front of them, which results in two identical prefixes in front of the prompt, like "a DSLR photo of a DSLR photo of XXX", will this make the result worse? Or is this harmless?

Sorry for that. Prompt is critical for a text-to-3D sampling process, try to remove the duplicate prefix and it should produce better results~


USB HID Mouse on RP2040

Title

updated platform to rp2040

appears to be working; still getting all the build stuff right, but the following binary looks good:
hid-servers-brain-rp2040.zip


CI optimisations

Issue

Currently CI is taking more than 1 hour to finish all the checks

Suggestions

Reduce time taken by tests runners
Caching of mvn or yarn will help us in reducing time

[ ] We also need to figure out a way to reduce Docker Image Build time of Ingestion and Ingestion-Base. Currently it takes around 1 hour 50 minutes to build and publish docker images (cc - @pmbrull, @ayush-shah )


More tests on games

Test for compatibility with database and frontend:

Game actions should be replayable

Prevent situations where a deserialized object is not the same object as the one in game, causing updates on something else
Replaying actions should generate the same view as when the original action was made.
Store JSON-files of replays that are tested, with assertions of what is to be expected? This can also detect for view-changes or breaking replay-changes.

No Kotlin-specific data sent to frontend
Data is correctly serializable and de-serializable to/from database
Use a random amount of players in DslRandomPlayTest, with a flexible amount of WSClients.

If these tests take too long time, perhaps look into a way to not run them for each Jenkins-build?

Should be easier with The Big Refactoring™ #302


jsdoc won't work with (function(window) {})() type of scripts (ECMA5 block definition)

as we know, for modules that are compatible with both node and windows, we use
(function (window) {
  var foo = function () {
    ...
  }
  ...
  if (exports) exports = foo;
})()

And jsdoc will simply ignore this syntax. can you guys please fix it.

I have exactly the same issue, jsdoc wil simply put the complete file inside the generated HTML file

Duplicate of #456.

Does #456 actually contain a resolution for documenting IIFEs?
We have a structure that's basically
MySingleton = (function() {
    innerObject = {
        someMethod: function(x, y, z) {
        }
    }
    ....

   return innerObject;
})();

Now, comments on the structure aside (I don't like this but I'm not being paid to refactor this and bug test all the potential regressions, so that's not an option at the moment), I would expect that I could just tell JSDoc that the inner methods end up accessible at e.g. MySingleton.someMethod() but JSDoc doesn't seem to get the hint. This is not a "module", and not really a namespace, so those aren't appropriate (not that they seem to work anyway).

@BillyWM If you don't mind documenting MySingleton as a class, this works for me:
/**
 * Singleton.
 * @class
 */
var MySingleton = (function() {
    var innerObject = {
        /**
         * Method.
         * @param {string} x - X param.
         * @param {string} y - Y param.
         * @param {string} z  - Z param.
         * @memberof MySingleton
         */
        someMethod: function(x, y, z) {
        }
    };

   return innerObject;
})();

Yes it seems this was VSCode's fault for having poor JSDoc support. I tried Webstorm and it gave me the right hints. My mistake.


Allow toggling of features in swipe

The swipe dijit just places the swipe layer on top of existing layers and doesn't clip the layer underneath. Any features underneath bleed through onto the swipe layer. This is fine in some circumstances but in others you want your swipe layer to be visible on the swiping side but another layer visible on the other side.
Is it possible to get an option to have non-swipe layers clipped so that their features are not visible on the swipe side?

Hey @shoe788 you can specify multiple layers to "swipe" which will clip them. It only clips the ones that the widget is supplied.

@shoe788 I think I understand. You want an option to hide the layers that aren't being swiped on the swipe side. I'll have to think about that.
It would be another option for clipLayers[] that would clip the layers on the swipe side. It's doable but would be a little bit of work.

Yes exactly. The purpose would be to satisfy the condition where each side maintains their own layers instead of a "main" side and swipe side.

I'd also like to see this functionality.  I'm working on an app that will allow our staff to compare two different versions of the FEMA 100 year floodplain.   Since the floodplain increases in some areas and decreases in others, overlaying the two doesn't work well.  And toggling the layers on and off isn't as clean as being able to swipe back and forth.

I think this is something we'll work into the 4.x version of this widget.


Propose the promql-langserver in a Docker container

Maybe it will be nice to have the langserver in docker. It's usually a nice a way to try it easily

It's not really easier than downloading and running a binary, but I don't have any objections against providing docker images. So if you want to write a Dockerfile and add a CI job to build it, go ahead.
I guess there's a good chance that these images can be pushed to https://hub.docker.com/u/prom/, but we'd have to talk to someone who has access there.

@SuperQ do you know if it will be possible to push the docker image in https://hub.docker.com/u/prom/ ?
And if yes, then what would be the step to do it (excepting of course the creation of the new job in the CI :))

Yes, we have a prometheuscommunity Docker org.  We have a bot account that can upload.  We typically use CircleCI.
I can help with the setup.

Nice ! Thank you :). I'll take a look at the others repo to know how to set up it and let you know when I'll need your help !

I  take a look at the repository stackdriver_exporter, and it seems the simpler to publish the docker image would be to align the makefile and so to have the common makefile Makefile
Would you be agree if I'm changing it @slrtbtfs ?

Promu, the build system used by Makefile.common tends to have extremely slow crossbuilds.
I'd prefer if we keep using goreleaser, which has support for Docker images as well.

I guess it will depend if it works with prometheus bot mentionned above. I guess it won't be an issue.
@SuperQ is it important to use promu if we want to use the Prometheus bot to publish a docker image ? Or actually it doesn't really matter because we just need to have the bot credentials for docker ?

@Nexucis AFAIK, promu is used only for building binaries across different platform/arch, like windows/amd64, linux/arm64.
Many prometheus related projects use a shared Makefile to do that.
But, you can definitely choose the way you want to build a docker image.

thanks for the hint @nevill :)
But I was more questioning if we should follow what other projects are doing (using a common Makefile and then in circle-ci, using a common CI template with predefined job). To be a bit more aligned with others

issue has been fixed through the PR #159


Toolframe for robotiq's s model gripper

New link named toolframe.
The toolframe has its origin between the three fingers.
The toolframe link is handy to use as an end effector to plan for an arm
with the gripper attached.

How did you select the location of the toolframe?  Does it make sense for everyone to use the same frame or should the tool frame be specified for each application (via combination by xacro)?

The position of the toolframe is a compromise for the different modes. For the pinch mode the toolframe should obvious be in the centre between the fingertips, but it should also work with this position. For the basic and wide mode it is not really clear where the toolframe should be, but this solution works pretty well for these two modes. To use the scissor mode with this toolframe you have to apply an additional transformation.
I think it is not a good idea to specify it in the xacro, because you can change the mode at runtime, but you can not change the toolframe transformation. A more appropriate solution would set the toolframe at runtime depending on the current mode but this probably does not work well with move it... so this is a simple compromise.

I think it is not a good idea to specify it in the xacro, because you can change the mode at runtime, but you can not change the toolframe transformation.

To clarify, I meant that we should allow users to specify tool frames because there isn't an obvious frame.  It's possible for users to do this by using a xacro that includes a robotiq and a tool frame transform separately.

A more appropriate solution would set the toolframe at runtime depending on the current mode but this probably does not work well with move it... so this is a simple compromise.

This bugs me about MoveIt to no end.  We've made several work-arounds that utilize TF to calculate poses from "variable" tool frames to one MoveIt understands.  However, we've never figured out how to fix this in MoveIt itself.

@shaun-edwards Could you clarify your idea of toolframe-support for this gripper?
Don't specify a toolframe and leave it to the user to specify one in the xacro that includes your gripper definition?
This is always possible, independent of this request.
This request aims to have a "simple" toolframe around that works for many scenarios out of the box,
reducing the entry barrier.
Is this enough motivation to get this change upstream?

This bugs me about MoveIt to no end. We've made several work-arounds that utilize TF to calculate poses from "variable" tool frames to one MoveIt understands. However, we've never figured out how to fix this in MoveIt itself.

I might have to look into this code anyway over the next months.
Could you specify a bit more in detail, what exactly you would like to see supported by moveit?

@Jntzko and @v4hn, I feel you've out-voted me on this, plus I buy the usability argument.  My one request is to change the frame name to the ROS-I standard ${prefix}tool0

@v4hn

Could you specify a bit more in detail, what exactly you would like to see supported by moveit?

We tried to implement a MoveIt adapter for our Descartes project that allowed the user to specify a toolpoint pose in an arbitrary frame (relative to the robot base frame) for an arbitrary toolpoint(relative to the robot tool).  This capability is built into every robot controller, but missing from MoveIt as I understand it.  It seems MoveIt does not have access to the full TF, rather it only knows what is in the URDF.  We achieved partial functionality by utilizing TF to get back to a URDF frame.  I think this is a valid approach and would enable things like moving robot based and tool changers.

I changed the tooframe name as requested to ${prefix}tool0.

+1..Awesome!...Thanks for the contribution.  Please keep 'em coming.


CumulusCI 4 refresh token error

Describe the bug
Since upgrading to CummulusCI 4, all commands that work with orgs are outputting the following error:
Exception ignored in: <_io.TextIOWrapper encoding='utf-8'> Traceback (most recent call last):   File "/Users/kai.amundsen/.local/pipx/venvs/cumulusci/lib/python3.13/site-packages/cumulusci/core/config/sfdx_org_config.py", line 212, in refresh_oauth_token     self.sfdx_info AttributeError: 'Capture' object has no attribute 'flush'
Reproduction steps

Upgrade to CumulusCI 4.0.1 and sf cli 2.67.7
run cci org browser --org <existing org alias>

Org will open in browser successfully but an exception will be output one or many times to the command line.
Your CumulusCI and Python versions
CumulusCI version: 4.0.1 (/Users/kai.amundsen/.local/bin/cci)
Python version: 3.13.0 (/Users/kai.amundsen/.local/pipx/venvs/cumulusci/bin/python)
@salesforce/cli/2.67.7 darwin-arm64 node-v22.11.0
Operating System
MacOS 15.1.1 (24B91)
Windows environment
No response
CumulusCI installation method
pipx
Error Gist
No response
Additional information
No response

I am getting exactly the same issue, and I noticed that it also happens when running the cci org default command.

@yippie Thanks for reporting this. Python 3.13 made a change that now logs errors in file handling that were previously ignored.  It’s related to how sarge (a library we use) interacts with io.TextIOWrapper.
This error doesn’t affect functionality. You can safely ignore it for now while we wait for an update from the sarge maintainers. If you prefer, you can downgrade to Python 3.12 to stop seeing the error.


KTX2: unsupported pixel formats R/RG/RGB linear/srgb

Bevy version: Current main: 989fb8a7
What you did
Created some KTX2 files from source png files (grayscale, grayscale+alpha, RGB) using the toktx tool. No gpu/block texture compression, data is uncompressed (just zstd, but that's irrelevant). Tried to load them in Bevy.
I created a little test project for reproducing the issue: https://github.com/inodentry/bevy_ktx2_test
It contains KTX2 files in a variety of formats. I also created linear versions in addition to sRGB, for good measure.
What you expected to happen
The textures can load and be used for rendering. The spawned sprites appear on-screen.
What actually happened
WARN bevy_asset::asset_server: encountered an error while loading an asset: Error reading image file logo_bevy.ktx2: unsupported texture format: R8_SRGB, this is an error in `bevy_render`.
WARN bevy_asset::asset_server: encountered an error while loading an asset: Error reading image file logo_bevy_linear.ktx2: unsupported texture format: R8_UNORM, this is an error in `bevy_render`.
WARN bevy_asset::asset_server: encountered an error while loading an asset: Error reading image file logo_rust_grey.ktx2: unsupported texture format: R8G8_SRGB, this is an error in `bevy_render`.
WARN bevy_asset::asset_server: encountered an error while loading an asset: Error reading image file logo_rust_grey_linear.ktx2: unsupported texture format: R8G8_UNORM, this is an error in `bevy_render`.
WARN bevy_asset::asset_server: encountered an error while loading an asset: Error reading image file logo_rust_linear.ktx2: unsupported texture format: R8G8B8_UNORM, this is an error in `bevy_render`.
WARN bevy_asset::asset_server: encountered an error while loading an asset: Error reading image file logo_rust.ktx2: unsupported texture format: R8G8B8_SRGB, this is an error in `bevy_render`.

Perfect, thanks for doing this!

So:

R8_SRGB would have to be converted to linear and use R8Unorm
R8_UNORM should be possible to load as R8Unorm but for some reason I chose to respect the is_srgb flag which is set to true for sprite textures.
R8G8_SRGB would have to manually convert it to linear and use Rg8Unorm.
R8G8_UNORM should be possible to load as Rg8Unorm but for some reason I chose to respect the is_srgb flag which is set to true for sprite textures.
R8G8B8_SRGB would have to have an alpha channel added and use Rgba8UnormSrgb
R8G8B8_UNORM would have to have an alpha channel added and use Rgba8Unorm


Can I use trx object created with knex.transaction() with objection models?

Can I use trx object created with knex.transaction() with objection models? For example can I do
trx = await knex.transaction();
Model.query(trx).insert()

?

Yes you can.


prePatch default.nix

Related to this
https://github.com/input-output-hk/haskell.nix/issues/767
Fix is
prePatch = "hpack --force";

done in https://github.com/tkachuk-labs/stack-templates/commit/416ff889bef60c10167f3c0da2e84338b245cfbf


Determine reward distribution behavior when all accounts have zero earned rewards for epoch

We should determine what happens when all accounts have zero earned rewards for the epoch, and there is a non-zero amount to distribute:

in the contract with forge test converage
in the rewards distribution CLI with jest test coverage

Some basic validation is done in the CLI here
https://github.com/shapeshift/rFOX/pull/64/files


[New Feature] Implement "Interact with Following"

Hi, the option to interact with followers is very good "-ff" but it causes a softban very quickly. another awesome feature that is almost the same should be the Interact with Following "-if" , which basically instead of looking at the "followers" of the account will look at the "following".
This is how the softban looks and it lasts 24 hours:

@ap0l0 This should surely add to the usability. Thank you for the suggestion.


Implements DataFrame.to_markdown

This PR proposes DataFrame.markdown() which is newly added in pandas > 1.0.0.
(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_markdown.html#pandas.DataFrame.to_markdown)
>>> kdf = ks.DataFrame(data={"animal_1": ["elk", "pig"], "animal_2": ["dog", "quetzal"]})
>>> print(kdf.to_markdown())
|    | animal_1   | animal_2   |
|---:|:-----------|:-----------|
|  0 | elk        | dog        |
|  1 | pig        | quetzal    |

Codecov Report

Merging #1377 into master will decrease coverage by 0.02%.
The diff coverage is 87.50%.

@@            Coverage Diff             @@
##           master    #1377      +/-   ##
==========================================
- Coverage   95.26%   95.23%   -0.03%
==========================================
  Files          34       34
  Lines        7785     7792       +7
==========================================
+ Hits         7416     7421       +5
- Misses        369      371       +2

Impacted Files
Coverage Δ

databricks/koalas/missing/frame.py
100.00% <ø> (ø)

databricks/koalas/frame.py
96.79% <87.50%> (-0.04%)
:arrow_down:

databricks/koalas/usage_logging/__init__.py
94.59% <0.00%> (-0.91%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 710b753...a18f64d. Read the comment docs.


add constants for separators

Currently the separators are internally hard-coded. Add public constants instead.

Closed by b8baac19ced8d81142d5ad9e20d0300e11076e81


Int parse error

Return relevant error if parsing of integer argument for (incr, incr_by, decr, decr_by) fails

Hey @rahulghangas - thank you for this PR. Can you take a look at the tests? It seems that one is failing. Thank you 🙏

Ah yep, that's the test that I added. I believe it might related to a deeper bug since the error returned has characters missing, I will debug it when I get back to my machine later.

@evoxmusic please review again

Sure, I'll this weekend


Add a services provided section

The homepage needs in it and additional section describing the services I provide.

[ ] teaching/mentoring
[ ] open-source authoring
[ ] consultation
[ ] accessibility auditing
[ ] collaboration

Teaching and Mentoring
As I am able to write less and less code, I've become more and more excited to pass on my lessons learned to the next generation of designers and developers. Learning to code, I have found, is generally a very steep learning curve.  My primary role when helping others learn is to help them ramp up into this curve, dispelling myths and worries while elucidating shortcuts and gotchas, and promote their own capacity to learn.

Open Source Authoring
Producing robust open-source resources for common digital accessibility implementations is one way in which I hope to generate technology for accessibility (#tech4a11y) AND promote accessibility for technologists (#a11y4tech).
Reusable software will be written organically (in-project) before being modularized, packaged, and published under the @accessitech namespace.

Consultation
Accessibility Audits
I audit existing design and/or software for accessibility compliance (WCAG 2.x) and best practices. I will generate a report with the results, including general suggestions and resources for basic audits and project-specific recommendations for advanced audits.
Project Management
I offer project management services to support existing technical teams implementing digitally accessible products. Whether you're refactoring your site for accessibility, developing web tooling for assistive tech, or designing SDKs for disabled developers, I will help. Typically this involves scope definition, codebase analysis, product research, project work planning, and LOTS of Github issues organized via sprints and milestones. If that doesn't sound like your team, that's fine too, I'm flexible and adaptable! With a tenure of UX design and engineering behind me, I am prepared to help your team ship robust and accessible software in a safe and sane manner.
Individual Contribution
Unfortunately, my capacity to contract as an individual contributor is pretty limited at this time. However, I am still very interested in collaborating as much as I can on a project to project basis.


Revert "HDDS-9078. Set ratis.thirdparty.io.netty.native.workdir as OZONE home temp directory"

What changes were proposed in this pull request?
Reverting the change for now.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-9078

Reverting the change for now.

Can you please explain why you would like to revert the change, as well as what is the plan to fix the original issue after the revert?

@adoroszlai , this changes the previous temp directory used by netty from /tmp to $OZONE_HOME/temp. "temp" is not there after Ozone installation. In the case that OM/SCM/DN process doesn't have r/w/x permission of $OZONE_HOME and "hdds.grpc.tls.enabled" is enabled, then process will fail to start, because of netty failure "java.lang.UnsatisfiedLinkError: failed to load the required native library".
After revert this change, netty will got back to use /tmp as the directory to place the .so file extract from the Ozone jar file, which is fine to work.

Thanks @ChenSammi for the explanation.


Hackathon project upload to gallery

This python notebook has my hackathon project. I use cmip6 analysis platform data and plot the global mean precip versus temperature for 2 scenarios.

@apendergrass, I just sent you an invitation to join the organization ( the invitation can also be accepted at https://github.com/ncar-hackathons).  You will have permissions to merge the pull requests once you've accepted the invitation.


Show errors and statuses of config nodes in the sidebar when no catch…

… nodes are used

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

Proposed changes

Checklist

[x] I have read the contribution guidelines
[ ] For non-bugfix PRs, I have discussed this change on the forum/slack team.
[ ] I have run grunt to verify the unit tests pass
[ ] I have added suitable unit tests to cover the new/changed functionality

Related issue: #4219

Hi @bvmensvoort - sorry for the delay.
As this is a potential change in behaviour, we should target the dev branch for the 3.1 release.
We also need to resolve the CLA check that is failing. It looks like the email on the commit isn't one associated with your github ID - so the CLA tool cannot verify it was made by you.
Can you either add that email to your github account, or redo the commit with your proper github id?


Support two multiline doctests, both using ...>, without a result or newline between them

This code:
      iex> FlattenArray.flatten(
      ...> [1,2,3]
      ...> )
      iex> FlattenArray.flatten(
      ...> [555]
      ...> )

Should result in two separate 3-line doctests. Currently it results in a single 6-line doctest.

Actually, the current behavior is correct! After further testing, this kind of test counts as a single one:
doctest:
 ## Examples

      iex> FlattenArray.flatten(
      ...> [1,2,3]
      ...> )
      iex> FlattenArray.flatten(
      ...> [555]
      ...> )
      [554]

test output:
  1) doctest FlattenArray.flatten/1 (1) (FlattenArrayTest)
     test/flatten_array_test.exs:3
     Doctest failed
     doctest:
       iex> FlattenArray.flatten(
       ...> [1,2,3]
       ...> )
       iex> FlattenArray.flatten(
       ...> [555]
       ...> )
       [554]
     code:  FlattenArray.flatten([555]) === [554]
     left:  [555]
     right: [554]
     stacktrace:
       lib/flatten_array.ex:7: FlattenArray (module)


Express Generated app shows content of app.js file

Hi, I have the following problem - I have created a NodeJS Express application using express-generator.
I have pushed the said application to the server using Plesk. There I specified the app.js generated by express as startup file. But now the problem is that when I  surf my test domain, the content of the app.js is displayed and doesnt get executed and it doesn't go automatically to the index router - this works fine in localhost.
I am grateful for any help!

This has been solved, this is no problem with express at all.
There are apparently issues with iisnode which causes the above behaviour, the app works fine if it runs as a service


BuildTask to expose task output

Expected Behavior
org.gradle.testkit.runner.BuildTask exposes related task build output, so it will be easier to make assertions for the specific task.
Current Behavior
Currently, I need to use hand-crafter brittle regexps to parse whole build output to get specific task output. Also this regexps depends on log level used in the build.
Context

Simplify writing test for custom Gradle plugins.

still actual


External ID overwrites always

Hi - whenever we set the external_id "setEndUserExternalId" it overwrites this value for all existing responses. This breaks all our data.

Hi @claimsforce-cto what do yo mean it ovewrites the value for all existing responses? For the same End User?

we send with every request our internal userId. Each new id we send changes the external id for all existing responses - even if they have had another external id before.
`[Wootric configureWithClientID:clientId accountToken: accountToken];
if([email length] > 0) {
[Wootric setEndUserEmail: email];
}
if([userId length] > 0) {
[Wootric setEndUserExternalId: userId];
}
[Wootric setEndUserProperties: properties];
[Wootric forceSurvey:YES];
[Wootric surveyImmediately: YES];
[Wootric showSurveyInViewController:rootController];`

@claimsforce-cto this behavior is expected. The external id is related directly to he End User, not each response. One question I have looking at your code: is the email not always present? If the email is not present, then we won't be able to identify the user and it will show as Unknown, which is actually a visitor user.  I recommend setting the end user email with a value you know it's always present and unique: either with the email [Wootric setEndUserEmail: email]; or with the userId [Wootric setEndUserEmail: userId];