[V2.7] Only Regenerate Kubelet Serving Certificate When Necessary

Issue: #36025
Problem
A denial of service is encountered when many clusters configured with generate_serving_certificate connect to the Rancher server at the same time. This is due to the fact that Rancher cannot intelligently determine if a certificate must be regenerated or not as kubelet certificates are not stored or tracked by the Rancher server. This resulted in Rancher always regenerating the kubelet certificate whenever the node agent reconnects with the Rancher server. At scale, this behavior results in all CPU time being dedicated to generating certificates. Additionally, Rancher was regenerating all of the nodes certificates for each node, resulting in many unused certificates being placed on each node and additional CPU resources being consumed.
Solution
Before attempting to reconnect with the Rancher server, the node agent will first find and inspect the kubelet serving certificate stored locally and determine if it needs to be regenerated. If the certificate needs to be regenerated, either because the SAN is out of date, the IP address is out of date, or the certificate will expire within three days, then a value is specified in the header of the reconnection attempt which will indicate that the certificate needs to be regenerated.
Testing
when  generate_serving_certificate is enabled for the clusters kubelet service, the new kubelet certificate will be generated under these conditions

The certificate does not already exist
The certificate will expire in three days or less
The hostname name included in the certificate does not match the nodes hostname name
The IP address included in the certificate does not match the current IP address of the node

Some of these conditions are hard to test, such as the expiry time which is set to 10 years in the future. The two cases below cover the main goal of this ticket.

Test Environment / Setup

This issue requires that you have the ability to stop/scale down rancher to 0 pods. We are interested in the reconnection process once an existing Rancher server is brought back online. Any setup in which you can restart Rancher will work, but an HA setup will likely be the easiest configuration.
Create an RKE1 cluster with three nodes

one of the nodes will have the etcd control plane roles
two of the nodes will only have the worker role

Before creating the cluster, edit the YAML and find the services section. Add the generate_serving_certificate as described in this documentation
Create the cluster and wait for all nodes to come online. Once they've come online, double check the config YAML and ensure that generate_serving_certificate is set to true.

1) Certificate should not regenerate on each reconnection

SSH into one of the worker only nodes and navigate to /etc/kubernetes/ssl. You should see several .pem files with the following naming convention kube-kubelet-<IP_ADDRESS>.pem and kube-kubelet-<IP_ADDRESS>-key.pem. Mark the time at which these files were created using ls -l. Make sure you mark the file which belongs to current node you are SSH'd into
Scale down / restart the rancher server and wait for all nodes to reconnect
Ensure that no certificates have been updated by checking the file creation time

2) Certificate should be recreated when deleted

SSH into one of the worker only nodes and navigate to /etc/kubernetes/ssl. Delete the kube-kubelet certificate and key which belongs to the node you are SSH'd into (the file name will include the nodes IP address)
scale down / restart the rancher server and wait for all nodes to reconnect
ensure that the deleted files have been recreated and are present on the node
Also ensure that no other certificate files have been updated or modified

Engineering Testing
Manual Testing
I've done the above steps during development to ensure that the new node agent logic works as desired.
Automated Testing
N/A
QA Testing Considerations
You will need an HA rancher server or any other type of Rancher server which can be restarted.
Regressions Considerations
Any features or functionalities which require the proper configuration of the kubelet serving certificate.

@kinarashah would you mind giving this PR a glance?


Analyse and correct problem with robot protocol

Describe the bug
The Rest-Call https://lab.open-roberta.org/rest/data/robot/summary shows, for instance:
number of robots connected: 308
max time a robot is waiting: 435913586
state distribution:
ROBOT_IS_BUSY                            : 39
GARBAGE                                  : 36
ROBOT_WAITING_FOR_PUSH_FROM_SERVER       : 5
WAIT_FOR_TOKENAPPROVAL_FROM_USER         : 0
WAIT_FOR_PUSH_CMD_FROM_ROBOT             : 228

Especially the max time show, that there could be a bug in the protocol. The problem should be analysed and solved.
See also the issues #165 and #248 which are related to the protocol.

no real problem


Housekeeping: Refactor all duplicated calls to Request to a base class with a method

Proposal
I propose that a serious refactor is performed to reduce all of the code duplication in this library predominantly around how Request objects are repeatedly constructed and the code to do so is duplicated all over the library.
This was exposed when we recently began the work on adding support for API versioning by adding the api_version= argument, which requires updating the calls in numerous places when it should be done in ONE and only one place.
Justfication
For example, consider the source for pynautobot.core.api where the Api class has three properties: Api.version vs. Api.openapi vs Api.status. Each of these is making the exact same duplicated call to Request(base=self.base_url, http_session=self.http_session, api_version=self.api_version) and then calling a method on the Request object (get_version(), get_openapi(), and get_status() respectively):
https://github.com/nautobot/pynautobot/blob/3956bd928c36eb87be0048971d02e61e2743a44b/pynautobot/core/api.py#L91-L165
Following the code path to the source for pynautobot.core.query.Request, you can then see that each of these methods ALSO has nearly the exact same code duplicated for each instead of calling a centralized method that already sets the same header value and input parameters:
https://github.com/nautobot/pynautobot/blob/3956bd928c36eb87be0048971d02e61e2743a44b/pynautobot/core/query.py#L145-L198
Longer term this is not a maintainable pattern. There are so many individual calls to create Request instances where instead each of the various Api and Endpoint objects or anything that is behaving as a client to the API should inherit from a common base and call the same underlying method on every request using the same centralized code path.
This will make the code easier to maintain and easier to use across the board and assert that when we want to extend or augment existing functionality to support new API features, they can be done in a single place, and won't require scouring the entire source tree.

In this refactor, should we also look at moving from using Requests to perhaps HTTPX that may get some async capabilities for users while maintaining the similar Requests API calls?

HTTPX

Worth considering as part of the scoping at a minimum. First I've personally heard of httpx.


ContentTypes route grasshopper data object does not recognize .query()

tests are broken, despite following the same pattern (worked with nodes and content)

This is gh core issue. Closing this in favor of the core issue: https://github.com/Solid-Interactive/grasshopper-core-nodejs/issues/93


Plugin fails to load in a new Obsidian installation

What happened?
I am a new Obsidian user, trying to using it on top of MacOS.
I installed obsidian-plantuml and every time I try to enable it I get an error from Obsidian:

Failed to load plugin obsidian-plantuml

In the developer tools console I get:
app.js:1 Plugin failure: obsidian-plantuml TypeError: a is not a constructor
    at t.<anonymous> (app.js:1)
    at app.js:1
    at Object.next (app.js:1)
    at s (app.js:1)

Obsidian version
0.13.23
Plugin version
1.5.0
What distribution are you seeing the problem on?
Desktop
Are you using a local .jar or a remote server
local .jar
Relevant log output
app.js:1 Plugin failure: obsidian-plantuml TypeError: a is not a constructor
    at t.<anonymous> (app.js:1)
    at app.js:1
    at Object.next (app.js:1)
    at s (app.js:1)

I didn't had any chance to tell the plugin which plantuml.jar to use.

Whoops,
forgot how much chaos a single ^ can cause for older versions(I am on the latest insider)

Confirming that it works perfectly now!
Thanks @joethei!


Make new optimizer more extensible, easier to integrate downstream for FSDP

Description
This PR makes it easier for users to use FSDP with MS-AMP from their existing optimizers. This is especially beneficial for library authors, as currently we need to go through quite a bit to get the FSDP version of these optimizers working when a user passes in optim.Adam.
Instead we delegate the FSDPAdamW to an OptimWrapper, which calls an underlying optimizer as a passthrough. This lets us add in any logic that should be done before/after said logic easier, and it takes in a constructed Optimizer rather than being inherited.
Let me know what we think about this, currently I'm going through integrating FSDP and DeepSpeed w/ MS-AMP into Accelerate and found this to be a critical painpoint, as our users pass in normal PyTorch optimizers and don't create special versions themselves.
@tocean @wkcn let me know what you two think :)
New working FSDP:
model, optimizer = ...
model, optimizer = msamp.initialize(model, optimizer, use_fsdp=True, weight_qtype=Dtypes.kfloat8_e4m3)
model = FP8FullyShardedDataParallel(model, use_orig_params=True, auto_wrap_policy=my_auto_wrap_policy)
optimizer = FSDPAdamW(optimizer)

@microsoft-github-policy-service agree company="Hugging Face"

Sorry for the extranious pushes while I was figuring something out. Good to go now :)

You can see our new accelerate benchmarking scripts here: https://github.com/huggingface/accelerate/tree/muellerzr-msamp-ds-fsdp/benchmarks/fp8/ms_amp

@tocean @wkcn any particular issues with this? :)
(Ideally it'd be great to include this in the next accelerate release on the 1st :) )

@muellerzr Thanks for your contribution!
The PR looks good to me.
Sorry that I am not at Microsoft and do not have the authorization to review and merge the pull request.

Ack okay, I suppose we'll have to wait for @tocean/@abuccts/@guoshzhao to take a look. Thanks for the flag 🤗


How to run a load job in bq emulator with auth service account json?

I am trying to load a file in bigquery emulator using a load job
 LoadJobConfiguration loadConfig =
                    LoadJobConfiguration.newBuilder(tableIdObj, csvFilePath)
                            .setFormatOptions(FormatOptions.csv())
                            .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED)
                            .setWriteDisposition(JobInfo.WriteDisposition.WRITE_APPEND)
                            .setAutodetect(true)  // Automatically detect schema
                            .build();

bigquery.create(JobInfo.of(loadConfig));
fails with
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
POST http://localhost:57058/bigquery/v2/projects/test-project/jobs?prettyPrint=false
{
  "code": 400,
  "errors": [
    {
      "location": "",
      "message": "failed to import from gcs: dialing: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information",
      "reason": "jobInternalError",
      "debugInfo": ""
    }
  ],
  "message": "failed to import from gcs: dialing: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information"
}

But when running normal queries like bigquery.query(conf) works with auth. How to pass the auth? bigquery client is init with NoCredentials()

public BigQuery getBqService(BigQueryEmulatorContainer bigQueryEmulatorContainer) {
        String url = bigQueryEmulatorContainer.getEmulatorHttpEndpoint();
        BigQueryOptions options = BigQueryOptions
                .newBuilder()
                .setProjectId(bigQueryEmulatorContainer.getProjectId())
                .setHost(url)
                .setLocation(url)
                .setCredentials(NoCredentials.getInstance())
                .build();
        return options.getService();
    }

Any update here?

Same problem here


chore: Update/tweak content strings

Changes for conciseness and clarity
Fixing small issues found in reviewing pages and content related to #2739.
This includes:

Consistency in how we label data classification
Conciseness of items on Publish and Settings pages
Shifting from logo to branding language
Missing or wrong French strings

Will look to marge this after https://github.com/cds-snc/platform-forms-client/pull/2739 goes in


Improved Russian translation

right here https://github.com/octobercms/october/pull/5291

@WebVPF just out of curiousity, what is the specific reason for changing "Content" and "Assets" back to English?

To avoid misleading users.
It is better to leave the original folder names from the English language for these menu items. Translation into Russian only makes things worse.
In Oсtober 2 the problem with naming was solved by removing the menu by making the folder-file structure.
This is not a spontaneous decision to change to English. This has been discussed many times before in the Russian-speaking community of October (even before the fork).
Until the release is released, I decided to fix it.

Alright - I'll merge this then, but will leave a note in the commit linking to your comment, given that there is the possibility that someone else may see this as an untranslated string in the future and submit a PR to translate them back.


removeHs=False

to fix https://github.com/choderalab/espaloma_charge/issues/8

@yuanqing-wang is this still needed? It looks like #8 has been closed.

Reading the issue and the function doc string, seems to indecate we do want to keep the H.

Could we add a test to make sure (1) we get the same number of charges as there are atoms, and (2) we throw an Exception if the input mol2 file does not have explicit hydrogens?

@yuanqing-wang : I think we still need some updates here before we can merge this.


SetText hangs indefinitely on Linux

I'm not sure how no-one has noticed this yet, but here it is...
Since #137 was merged, the bashrunner xclip process (when calling SetText) never returns until copying something to the clipboard (e.g. pressing CTRL+C).
This is expected behavior since the xclip -loops option is set to 0 by default and xclip does not close stdout.
From the man page:
-l, -loops
        number of X selection requests (pastes into X applications) to wait for before exiting, with a value of 0 (default)
        causing xclip to wait for an unlimited number of requests until another application (possibly another invocation of
        xclip) takes ownership of the selection

The solution seems to be adding -loops 1 to the command, but I'm not sure if this creates other problems...
A different solutions is using xsel since it immediately closes stdout after forking.

happy to accept that as a change. but first can u share a failing unit test that illustrates this issue

happy to accept that as a change. but first can u share a failing unit test that illustrates this issue

The Snippets tests are failing (because SetTest hangs until I copy something). I'm not sure how I would create unit test specifically for this issue.
I'll create a test application and try it out on different Linux distro's. I'm currently on Fedora 33.

@SimonCropp
I've created this application and had some people test it.
It was tested on the following distros:

Fedora
Arch

Sadly couldn't test it on debian or ubuntu, but I'll try to update when I find someone.
It hangs (as expected) on the first call, until something is selected or copied (depends on the desktop environment I think)
The other 2 work fine.
using System;
using System.Diagnostics;
using TextCopy;

namespace TextCopyTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("TextCopy test");
            Console.WriteLine("If the process hangs, copy something to exit.");

            var sw = new Stopwatch();
            sw.Start();
            ClipboardService.SetText("This is a test");
            Console.WriteLine("Copied text: " + ClipboardService.GetText().Trim());
            Console.WriteLine(sw.Elapsed.Seconds + " seconds" + Environment.NewLine);

            Console.WriteLine("xclip with -l 1 test");

            var arguments = "-c \"echo 'This is a test' | xclip -i -loops 1 -selection clipboard\"";
            using var process = new Process {
                StartInfo = new ProcessStartInfo {
                    FileName = "bash",
                    Arguments = arguments,
                    RedirectStandardOutput = true,
                    RedirectStandardError = true,
                    UseShellExecute = false,
                    CreateNoWindow = false,
                }
            };

            sw.Restart();
            process.Start();

            process.WaitForExit();
            Console.WriteLine("Copied text: " + ClipboardService.GetText().Trim());
            Console.WriteLine(sw.Elapsed.Seconds + " seconds" + Environment.NewLine);

            Console.WriteLine("xsel test");
            arguments = "-c \"echo 'This is a test' | xsel -i --clipboard\"";
            using var process2 = new Process {
                StartInfo = new ProcessStartInfo {
                    FileName = "bash",
                    Arguments = arguments,
                    RedirectStandardOutput = true,
                    RedirectStandardError = true,
                    UseShellExecute = false,
                    CreateNoWindow = false,
                }
            };

            sw.Restart();
            process2.Start();

            process.WaitForExit();
            Console.WriteLine("Copied text: " + ClipboardService.GetText().Trim());
            Console.WriteLine(sw.Elapsed.Seconds + " seconds" + Environment.NewLine);

            Console.WriteLine("Test finished");
        }
    }
}

@SimonCropp I think it should be fine to change it. Do you want me to make a PR, or should I let more people test it?

@principis happy to accept a PR. can u also include a test to verify the change?

Whatever you set -loops to it's not going to fix things.
xclip works by spawning a long-lived child process to communicate the clipboard contents (according to a quick strace), it looks like this is what ultimately causes the stdout and stderr file handles to not be closed, and as a result this is what WaitForExit() is waiting for.
If you set -loops 1, then xclip will exit pretty swiftly, but then you don't have the background process running that contains your clipboard contents, which defeats the purpose of the call in the first place...
Looking at the initial PR, it's clear whether this change was tested or not - I'm not sure how it would have ever worked (https://github.com/CopyText/TextCopy/pull/137).
Could I suggest that a reasonable compromise might be to not attempt to print stdout and stderr events when using xclip?

Looking at the initial PR, it's clear whether this change was tested or not - I'm not sure how it would have ever worked (#137).

@mcon I think your DE (KDE, Gnome, ...) clipboard manager probably handles it.
Your solution seems to work fine, but I'm not sure if that is what we want?
A different solution would be using xsel which properly forks and disassociates itself, so we can exit the process without waiting (the xsel process keeps running until a different program takes over the selection). The downside is that it would break backwards compatibility.

Just checking it out now I agree, xsel is better behaved, have verified locally that it fixes the tests for Linux and updated the PR. I agree keeping stdout and stderr is preferable :+1:.
Worth noting that e.g. Ubuntu 18.04 doesn't have xsel installed by default, but it's in the Ubuntu PPAs, and the error message propagates up through TextCopy, so don't think this is a huge usability blow (certainly it's better than being broken!), but it's certainly backwards incompatible.
Not sure Gnome vs KDE should have anything to do with this, as xsel/xclip both use the standard X "selections" under the hood.

Not sure Gnome vs KDE should have anything to do with this, as xsel/xclip both use the standard X "selections" under the hood.

Most desktop environments(?) have their own clipboard manager to cache X selections. That's why it worked fine. You can check it with xclip -v, it immediately gets copied when xclip is executed.

This is fixed with #345.
Thank you @mcon


[Doc] add docs for additionalJavaRuntimeArguments

Add docs for https://github.com/apache/pulsar/pull/13282

Hi @eolivelli any progress on this doc?

Closed this issue as per https://github.com/apache/pulsar/pull/13791.


Can't get workspace icons to work on i3

Workspace icons are not displaying
Hello, I have the problem that the icons I have set for the i3 workspaces are not showing in polybar
The bar only shows "1" "2" "3" and so on.

I have set in my i3 config the following code:
# to display names or symbols instead of plain workspace numbers you can use
# something like: set $ws1 1:mail
#                 set $ws2 2:
set $ws1 1:
set $ws2 2:
set $ws3 3:
set $ws4 4:
set $ws5 5:🗏
set $ws6 6:❻
set $ws7 7:❼
set $ws8 8:❽

And in my polybar config this:
type = internal/i3
format = <label-state> <label-mode>
index-sort = true
wrapping-scroll = false

ws-icon-1 = 1:
ws-icon-2 = 2:
ws-icon-3 = 3:
ws-icon-4 = 4:
ws-icon-5 = 5:🗏
ws-icon-6 = 6:❻
ws-icon-7 = 7:❼
ws-icon-8 = 8:❽

; Only show workspaces on the same output as the bar
;pin-workspaces = true

label-active-font = 3

label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = ${colors.primary}

; focused = Active workspace on focused monitor
label-focused = %index%
label-focused-background = ${module/bspwm.label-focused-background}
label-focused-underline = ${module/bspwm.label-focused-underline}
label-focused-padding = ${module/bspwm.label-focused-padding}
label-focused-font = 3

; unfocused = Inactive workspace on any monitor
label-unfocused = %index%
label-unfocused-padding = ${module/bspwm.label-occupied-padding}
label-unfocused-font = 3

; visible = Active workspace on unfocused monitor
label-visible = %index%
label-visible-background = ${self.label-focused-background}
label-visible-underline = ${self.label-focused-underline}
label-visible-padding = ${self.label-focused-padding}
label-visible-font = 3

; urgent = Workspace with urgency hint set
label-urgent = %index%
label-urgent-background = ${module/bspwm.label-urgent-background}
label-urgent-padding = ${module/bspwm.label-urgent-padding}
label-urgent-font = 3

; Separator in between workspaces
; label-separator = |

(By the way, font 3 is Noto Sans.)
If I delete the "XNUMBER:" part, so as to only have the icon:
set $ws1 
ws-icon-1 = 
Polybar displays "-1" in every workspace

Environment:

WM: i3-gaps
Output of polybar -vvv:

 3.3.0

Features: +alsa +curl +i3 +mpd +network(libnl) +pulseaudio +xkeyboard

X extensions: +randr (+monitors) -render -damage -sync +composite +xkb +xrm +xcursor

Build type: RelWithDebInfo
Compiler: /usr/sbin/c++
Compiler flags: -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -Wextra -Werror -Wno-noexcept-type -pedantic -pedantic-errors
Linker flags: -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now```

Duplicate of #1569


feat(css): allow specifying stopDir for postcss config resolution

Description
postcss-load-config has a behavior where it will find any postcss.config.js (or other supported postcss configuration formats) recursively from the current directory to the home directory of the user.
As of Sanity Studio v3, we're using Vite to power the development experience, and we are seeing quite a large number of reports from people who get an error such as this one upon starting the studio:
[plugin:vite:css] [postcss] Cannot read properties of undefined (reading 'config')
    at getTailwindConfig (/Users/adamsmith/Desktop/codingprojects/portfolio/node_modules/tailwindcss/lib/lib/setupTrackingContext.js:84:63)
    at /Users/adamsmith/Desktop/codingprojects/portfolio/node_modules/tailwindcss/lib/lib/setupTrackingContext.js:96:92
    at /Users/adamsmith/Desktop/codingprojects/portfolio/node_modules/tailwindcss/lib/processTailwindFeatures.js:46:11
    at plugins (/Users/adamsmith/Desktop/codingprojects/portfolio/node_modules/tailwindcss/lib/index.js:38:63)
    ...

This is caused by the user having a postcss configuration file in a parent folder, which while technically speaking is a documented behavior, is not easy to understand or discover for the user.
We are wanting to disable this behavior for our users, instead requiring a postcss configuration to reside inside of the project folder. This can be done by passing a stopDir option to cosmicconfig (technically speaking, lilconfig), which is used by postcss-load-config in order to find the configuration file in vite.
This PR introduces a new option to the CSS options of vite, resolveOptions, which currently only accepts the stopDir option (the other options did not quite make sense to me in the context of vite on first look, so I decided to limit it for now).
Open to other suggestions for how to solve this.

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the PR Title Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

I've just stumbled upon this issue and it's annoying. Why an postcss config file that is in the home directory can affect the build process of projects that don't have one? I don't think that anybody would want for anything outside the project root to be able to influence the build process. This just produces wired issues like this one. I think this newly proposed stopDir should actually stop on the project root by default.
There is a quick workaround in the vite config file to disable this behaviour, if anyone stumbles on this issue:
export default defineConfig({
  css: {
    postcss: {} // Disable Post CSS
  }
})

I've just come across this and it was very confusing to figure out. On my local I use Docker and only mount the subdirectory so the issue didn't appear there. However, the entire repo is pushed to Vercel, which would cause the error:
Error: Cannot find module 'postcss-import'

This was for a brand new Sanity.io Studio project, which made it even more strange.

Closing as #18440 was merged. It will be released in Vite 6. Thanks for the PR 🙏


Release 0.3.0

Btw, I think that in time, the mention to the Framework target in the README completely disappeared, although it is still created https://github.com/dic-iit/bipedal-locomotion-framework/blob/master/CMakeLists.txt#L91-L93. Does it makes sense to bring it back?


unbalanced transport

Hi there,
First thanks for a great method and paper. I've recently been looking at integrating scATAC-seq and scRNA-seq datasets for identically prepared but distinct cell populations. In doing so, one issue that I am wary of is that cell populations may not be represented in identical proportions in both datasets due to sampling or batch-to-batch variation in abundance. As a result, using balanced transport can result in erroneous assignment of mass between domains.
To address this, I've experimented with using an unbalanced Gromov-Wasserstein formulation and demonstrated some examples of this in two notebooks (one simulated dataset and also in SNARE-seq example). I have implemented this in a fork of the repo here: https://github.com/zsteve/SCOT
Although these modifications were motivated by my own use case, I thought this extension might be useful more generally as part of the package. If you are interested, let me know and I can make a pull request.
Stephen

Hi Stephen,
Firstly, thanks a lot for opening this useful issue, as well as the experiments in your forked repository. The explanations in your notebooks look great and are even complete with proper references and the results look very nice, too!
Your issue brings up a good point: it is not too uncommon to have some cell types underrepresented in one of the domains (or sometimes even completely missing cell types in a domain, although it is a less common scenario).
We started experimenting with this scenario a little too close to a submission deadline. One thing that we were not yet able to assess was whether GW distance could still be used as a reliable approximation for alignment quality in fully unsupervised settings in this scenario. This would be important when there is no correspondence information available to carry our hyperparameter tuning.  SCOT with balanced OT is able to use this approximation for self-tuning its hyperparameters in fully unsupervised settings (the unsupervised_scot() function in src/scot.py -- I believe our bioRxiv preprint has been updated with those results recently but we will also need to update the repo with notebook demonstrations soon).
It sounds to me that your case of aligning data from identically prepared but distinct cell populations would require fully unsupervised alignment, as well, right? Have you been able to obtain trustworthy alignments with any of the available methods or with your unbalanced OT implementation?
Going back to your forked repository, I will go ahead and create a pull request and make sure to explicitly acknowledge your contributions in our repo (and the GitHub pages we are creating for the repo and whatever material would be relevant moving forward). We'll also continue to experiment with the fully unsupervised alignment in this setting. In the meantime, I think your contributions will be valuable to have available to people, who have similar application scenarios. Even without the fully unsupervised tuning, it could be used with recommended hyperparameter ranges (epsilon= 5e-4 to 1e-3 range, which seems to affect the result more than the k hyperparameter). Again, thank you for opening this issue and for your experiments. We are always excited to have interactions that stem from common research interest!  Also, let us know if we can do anything to help out with the alignment of your datasets.


Don't send a manual F7 keyup

Summary of the Pull Request
When someone asked "Do we need to send a F7 keyup too" in #6309, the right answer was actually no. Turns out that while XAML will eat the F7 keydown, it won't eat the F7 keyup.
References

regressed in #6309

PR Checklist

[x] Closes #6438
[x] I work here
[ ] Tested manually
[n/a] Requires documentation to be updated

Validation Steps Performed

Checked this with the debug tap

@msftbot merge this in 1 minute


Unable to find zones with cross-account role using kube2iam

Our environment is such that we have multiple AWS accounts with a kube cluster in each account.  Each account/cluster has an associated hosted zone; however, these zones exist in a separate single account.  ie the zone for accounts 1-3 exist in account 4.
I have been attempting to use external-dns and kube2iam to solve this problem.  I am able to successfully install and configure kube2iam on my cluster such that when I kubectl exec into the external-dns pod, I can run aws route53 list-hosted-zones (after install aws-cli) and retrieve the hosted zones from the dns mgmt account without any configuration.  Curling for meta-data/iam/security-credentials/ properly shows the cross account role.  However when external-dns starts it gets the following:
time="2018-02-22T16:16:09Z" level=info msg="Connected to cluster at https://<IP_ADDRESS>:443"
time="2018-02-22T16:16:10Z" level=error msg="NoCredentialProviders: no valid providers in chain. Deprecated.\n\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors"
time="2018-02-22T16:17:10Z" level=error msg="NoCredentialProviders: no valid providers in chain. Deprecated.\n\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors"
time="2018-02-22T16:18:10Z" level=error msg="NoCredentialProviders: no valid providers in chain. Deprecated.\n\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors"
time="2018-02-22T16:19:10Z" level=error msg="NoCredentialProviders: no valid providers in chain. Deprecated.\n\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors"
time="2018-02-22T16:20:10Z" level=error msg="NoCredentialProviders: no valid providers in chain. Deprecated.\n\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors"
time="2018-02-22T16:21:10Z" level=error msg="NoCredentialProviders: no valid providers in chain. Deprecated.\n\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors"

Please let me know what additional info I can provide to help troubleshoot.

Same issue in my side. @ryan-dyer-sp did you solved the problem?
My scenario:
I have external-dns up and running in the cluster, then install kube2iam and both work excellent. After a certain amount of time (can be 2-3 hours, but not 100% sure, only know it is not immediately) the external-dns pod starts showing the exact same error message you are presenting.

@mariomerco No luck on figuring anything out either.  Would love for someone working on this project to chime in.  If you figure anything out, please reach out as I am at a loss.

@ryan-dyer-sp I solved the problem!
Let's say Role-A is the role assigned in the kubernetes worker, and Role-B is the default role (--default-role: https://github.com/jtblin/kube2iam#options) provided when installing kube2iam. My issue was that, as external-dns doesn't have a tag of a role to use, it will try to assume the default role, but the Role-A was not allowed to assume Role-B, so had to create a trust relationship in Role-B to allow Role-A to assume it.
The service is running correctly for more than 12 hours at this point.
Hope it works!

@mariomerco Sorry but that doesnt sound like my issue.  My nodes(in account A) have an assume role permission.  In account B, I have my role for route53 manipulation and have added a trust to the role in account A.  In my external-dns config I have an annotation for the role in account B.  Within the external-dns container I can successfully run the commands to view the route53 zones via aws-cli, but the application itself cant seem to obtain a valid credential.  If this does sound the same, then I'm not sure what I'm missing from what you said.

Hi just a follow-up from our side. We're currently working on a solution.


Feat: add message for vela addon enable pyroscope

Signed-off-by: Xiangbo Ma<EMAIL_ADDRESS>Description of your changes

Add message for vela addon enable pyroscope
I have:

[x] Read and followed KubeVela's contribution process.
[x] Related Docs updated properly. In a new feature or configuration option, an update to the documentation is necessary.
[x] Run make reviewable to ensure this PR is ready for review.
[x] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested

Special notes for your reviewer

In this case, we will harccode for every add-on, that's a disaster

I proposal that we need to add a field message in add-on's metadata.yaml, e.g

name: pyroscope
version: 0.17.1
description: Pyroscope is an open source platform, consisting of server and agent. It allows the user to collect, store, and query the profiling data in a CPU and disk efficient way.
url: https://github.com/pyroscope-io/pyroscope
icon: https://raw.githubusercontent.com/pyroscope-io/pyroscope/main/webapp/images/favicon.ico

tags:
  - profiling tool

deployTo:
  control_plane: true

dependencies:
  - name: fluxcd

needNamespace:
  - pyroscope-system

invisible: false

meaaasge:
 - first-msg
 - second-msg

Print the message when using vela addon enbale xxx.
@wonderflow

I proposal that we need to add a field message in add-on's metadata.yaml.

Yes, we need something like this, can you propose a more detailed design? I think the message is not only fixed string, we will need some dynamically runtime variables here. \cc @wangyikewxgm

What are the runtime variables? Can you give an example.

What are the runtime variables? Can you give an example.

We should align with the helm chart Note.txt

Let's add a 'note' field in the metadata file, and print it after the addon is installed.

I will give a new feature request for detailed https://github.com/kubevela/kubevela/issues/4114

Should be able to add customized message with NOTES.cue as mentioned https://kubevela.io/docs/platform-engineers/addon/addon-cue#notes-info-notescue .
Feel free to reopen it if it does not solve the issue.


Count of blocks = count of errors; nothing is getting blocked

This seems to be related to #5 which is now closed.  Every time I run block chain I am getting the count of blocks = count of errors and no blocks actually occur.  It had been working previously.  It seems like it stopped working around Tuesday May 7.  Let me know what other info I can provide to you.

Is this on the old twitter UI or new twitter UI?

Hi.  I ran it on my laptop using Chrome, so it's the web site, not the app.  When did the UI change?

can you post a screenshot of the whole page when this problem happens? i can tell what UI you're on based on what it looks like :^)

Hi.  Here you go.  I took the screen shot while it was running.

I have this problem too.

when i inspect the network part of the site, i get "your account cannot perform this action", if that helps

so, you're currently using the "old" twitter UI which will be deprecated soon. try using twitter block chain on mobile.twitter.com or on firefox. let me know if that works @madethisjustfortwitterblockchain @ikesnopes @hockeyjamie

Where do we get twitter block chain for android mobile?

@ikesnopes twitter block chain only exists for chrome and firefox on PC/Mac.

Thank you, I misunderstood and thought it was available for Android, it's
working fine for me in firefox! :)
On Mon, May 20, 2019, 10:20 AM Cecelia Wren<EMAIL_ADDRESS>wrote:

@ikesnopes https://github.com/ikesnopes twitter block chain only exists
for chrome and firefox on PC/Mac.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/satsukitv/twitter-block-chain/issues/30?email_source=notifications&email_token=ABMVF75R7JF4HTBK6HWJXI3PWKXRXA5CNFSM4HMRVEH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVY7M2Y#issuecomment-494007915,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABMVF76PXS2S5BDFONZQDZLPWKXRXANCNFSM4HMRVEHQ
.

@ikesnopes Yandex browser and Firefox for Android can install Twitter-block-chain extension and it works pretty well.

This seems to be functioning once again.


Add Transactions support

System.Transactions is part of .NET Core 2.0. It only supports local transactions, but that should be enough for some workflow scenarios.

I started porting the transactions, but realized it was larger than I thought and needed some serious effort. Also, it will be much easier when we have Xaml support to generate transacted workflows. I'll get back to it when Xaml works on core and/or framework.
Also, the tests will be vital here.


Can I import a static catalog?

I have made a catalog using PySTAC. Can I make it stream in QGIS using the STAC Browser?

These are the .json files living in the local machine. I have 2 sets of 'hrefs', one pointing the image to S3. The other is having an absolute path in the local machine.


Enhance Tagline by Hovering Effects

Issue Number
fixes #
ISSUE #161
Describe the changes you've made
Added a text shadow effect on hovering on the tagline of front page
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
NA
Additional context (OPTIONAL)
Shades of orange  has been used for text shadow.
Test plan (OPTIONAL)
On hovering the tagline , text shadow can be seen
Checklist

[ x ] I have added my name in the contributors list at the end of README.md file.
[ x ] My code follows the code style of this project.
[ x ] My change requires a change to the documentation.
[ x ] I have updated the documentation accordingly.
[ x ] I have added tests to cover my changes.
[ x ] All new and existing tests passed.
[ x ] The title of my pull request is a short description of the requested changes.
[ x ] Open Source Program names

Sir,
I have resolved all the errors, bugs & problems in this pull request. the error was space between heading and braces.

@QAZIMAAZARSHAD
Please , Kindly review this last pull request. this doesn't have any problem.

This is perfectly fine.
Always make PR's like this.

Thank you sir. I have learned one new thing today to check those bars on the top.

Keep learning.

Yeah Sir Surely 💯


Correctly calibrate confidence values for non-ML policies

https://github.com/RasaHQ/rasa/pull/7616 introduced a bug with model_confidence set to cosine & inner in TEDPolicy. Since the confidences are not guranteed to stay in the range of [0,1] and other non ML policies like FormPolicy, MappingPolicy, etc. still predict a confidence value in the range [0,1], it messes up the logic of picking the best prediction from different policies. We see two solutions:

Changing the confidence values of non-ML policies to be either +infinity or -infinity for a match v/s no match.

Changing the confidence values of non-ML policies based on model_confidence set in TEDPolicy. So [0,1] for softmax, [-1,1] for cosine, [-infinity, infinity] for inner.

Technically, option (1) seems better because it keeps things simple and logical too (confidences should not have a finite value for deterministic policies) but then users may see potentially confusing debug messages like

DEBUG    rasa.core.processor  - Predicted next action 'action_listen' with confidence +infinity.

But +infinity could be replaced with something more logical?

From discussions we decided to do the following -
We create a distinction between policies where confidence calculation is part of the algorithm(like TEDPolicy) and others where it is chosen artificially by us(like RulePolicy). Only TEDPolicy and FallbackPolicy fall in the first bucket whereas all others fall in the second bucket. Let's call the first bucket of policies as ML-based policies and the second bucket as rule-based policies.
In addition, we move the logic of fallback action prediction outside of RulePolicy and place it inside FallbackPolicy.
With this refactor in place we plan to follow these steps to pick the best action prediction -

Pick the best prediction from all rule-based policies based on priorities assigned to them.
If none of the above policies predicted an action, then look at confidence of ML-based policies and pick the prediction with higher confidence. (This will just be a competition between FallbackPolicy and TEDPolicy for now).

This removes the need for ranking policy predictions from rule-based policies based on confidences.
The only exception to the steps above is when TEDPolicy makes a prediction using the text of the input rather than intent of the input. In that case prediction of TEDPolicy always wins.(This is already happening in the code currently as part of e2e).

This is no longer a bug for releases post 2.4.0 since the option of inner as model confidence was removed. However, there is still merit to re-introducing it with proper support as described above.

@dakshvar22 is there a definition of done for this? It seems like it would really benefit from having policy evaluation in place first.

What kind of policy evaluation do you mean? Anything other than what rasa test core does?

The issue should be considered done when this is the state of how action is picked in the policy ensemble.

I mean an evaluation which gives more insight into how policies in the ensemble interact, one of the directions for measuring success.

I don't have a hard opinion but I don't see these related.
This issue's purpose was to avoid the usage of "confidences" for rule-based policies in our code so that the code reflects our understanding of how the ensemble works "currently". Once that is done, trying different confidence measures (like unbounded dot product similarities) will become possible.

I just mean that it's not necessary for the two to be linked. The upcoming model regression tests for core is a good enough evaluation for it.


fix(chat): fix application dialog issues (Issue #2247, #2251, #2262)

Description:

Save /Add buttons for custom app form should be synchronised with fields' validation
Incorrect url format should be validated and hint error should be displayed if input format is not correct
When user click 'x' icon on 'Select application icon' or 'Settings -> Custom logo' form, then action should be treated as Cancel: no changes should be applied

Issues:

Issue #2247
Issue #2251
Issue #2262

Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[x] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review


Bug fix for Issue #17

Fixed issue with hotloader starting many websocket servers even on files not using the extensions passed through the initializer.

@rmosolgo Any update on this? Has been quite some time since this has been opened...? Still having the issue, and it is quite annyoing and time consuming


Changed return of :self instead the object name

Thanks, I think its better to remove the php-cs-fixer self accesor rule for the moment, if necessary will add the rule again.


MI does not retry to connect to RabbitMQ broker after connectivity fails with AlreadyClosedException.

Description
When MI lost the connectivity to RabbitMQ broker, initially MI tries to recover the connection. During the recovery process, if MI used an already closed connection or channel to reconnect, we could observe the AlreadyClosedException as below.
[2023-04-20 20:29:59,785] ERROR {ForgivingExceptionHandler} - Caught an exception when recovering topology Caught an exception while recovering queue SalesOrderQueue: connection is already closed due to connection error; protocol method: #method<connection.close>(reply-code=320, reply-text=CONNECTION_FORCED - broker forced connection closure with reason 'shutdown', class-id=0, method-id=0) com.rabbitmq.client.TopologyRecoveryException: Caught an exception while recovering queue SalesOrderQueue: connection is already closed due to connection error; protocol method: #method<connection.close>(reply-code=320, reply-text=CONNECTION_FORCED - broker forced connection closure with reason 'shutdown', class-id=0, method-id=0)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.recoverQueue(AutorecoveringConnection.java:753)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.recoverTopology(AutorecoveringConnection.java:665)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.beginAutomaticRecovery(AutorecoveringConnection.java:579)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.lambda$addAutomaticRecoveryListener$3(AutorecoveringConnection.java:509)
	at com.rabbitmq.client.impl.AMQConnection.notifyRecoveryCanBeginListeners(AMQConnection.java:797)
	at com.rabbitmq.client.impl.AMQConnection.doFinalShutdown(AMQConnection.java:774)
	at com.rabbitmq.client.impl.AMQConnection.handleIoError(AMQConnection.java:748)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.lambda$null$1(AutorecoveringConnection.java:134)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.rabbitmq.client.AlreadyClosedException: connection is already closed due to connection error; protocol method: #method<connection.close>(reply-code=320, reply-text=CONNECTION_FORCED - broker forced connection closure with reason 'shutdown', class-id=0, method-id=0)
	at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:258)
	at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:341)
	at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:282)
	at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:141)
	at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:968)
	at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:52)
	at com.rabbitmq.client.impl.recovery.RecordedQueue.recover(RecordedQueue.java:53)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.lambda$recoverQueue$5(AutorecoveringConnection.java:722)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.wrapRetryIfNecessary(AutorecoveringConnection.java:818)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.recoverQueue(AutorecoveringConnection.java:721)
	... 8 more

After this exception the MI listener does not retry to connect to the broker and needs a redeployment of the listener service.
Steps to Reproduce

Enable the rabbitmq listener with below configs

[transport.rabbitmq]
listener_enable = true

[[transport.rabbitmq.listener]]
name = "AMQPConnectionFactory"
parameter.hostname = "localhost"
parameter.port = 5672
parameter.username = "guest"
parameter.password = "guest"
parameter.retry_interval = "1000"
parameter.retry_count = 5

Set up rabbitmq server. (RabbitMQ 3.10.19 / Erlang 25.3)
Deploy the below listener proxy.

<proxy xmlns="http://ws.apache.org/ns/synapse" name="AMQPProxy" transports="rabbitmq" statistics="disable" trace="enable" startOnLoad="true">
<target>
 <inSequence>
   <log level="full"/>
   <property name="OUT_ONLY" value="true"/>
   <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
   <drop/>
    <!-- <send>
     <endpoint>
       <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
     </endpoint>
    </send> -->
 </inSequence>
</target>
 <outSequence>
   <drop/>
 </outSequence>
    <parameter name="rabbitmq.queue.name">SalesOrderQueue</parameter>
    <parameter name="rabbitmq.connection.factory">AMQPConnectionFactory</parameter>
   <description/>
</proxy>

Start the MI server in debug mode (-debug 5005)
Add a debug point[1] and enable remote debugging.
Stop the rabbitmq server and this will hit the debug point[1]. Using the evaluator call the channel.close() method and resume the debugging. You will observe the below logs;

[2023-04-20 13:19:08,612]  WARN {ForgivingExceptionHandler} - An unexpected connection driver error occured (Exception message: Connection reset)
[2023-04-20 13:19:35,488]  WARN {ChannelManager} - Consumer dispatcher for channel didn't shutdown after waiting for 10000 ms
[2023-04-20 13:19:35,490]  INFO {ServiceTaskManager} - The consumer with consumer tag: amq.ctag-Q_JQCyAuvcanKj0dmJdWhA was shut down.

Then restart the broker and you will observe the below error.

[2023-04-20 13:24:41,018]  WARN {ForgivingExceptionHandler} - An unexpected connection driver error occured (Exception message: Connection reset)
[2023-04-20 13:24:41,026] ERROR {ForgivingExceptionHandler} - Caught an exception when recovering topology Caught an exception while recovering queue SalesOrderQueue: connection is already closed due to connection error; protocol method: #method<connection.close>(reply-code=320, reply-text=CONNECTION_FORCED - broker forced connection closure with reason 'shutdown', class-id=0, method-id=0) com.rabbitmq.client.TopologyRecoveryException: Caught an exception while recovering queue SalesOrderQueue: connection is already closed due to connection error; protocol method: #method<connection.close>(reply-code=320, reply-text=CONNECTION_FORCED - broker forced connection closure with reason 'shutdown', class-id=0, method-id=0)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.recoverQueue(AutorecoveringConnection.java:753)
	at com.rabbitmq.client.impl.recovery.Listening for transport dt_socket at address: 5005
AutorecoveringConnection.recoverTopology(AutorecoveringConnection.java:665)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.beginAutomaticRecovery(AutorecoveringConnection.java:579)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.lambda$addAutomaticRecoveryListener$3(AutorecoveringConnection.java:509)
	at com.rabbitmq.client.impl.AMQConnection.notifyRecoveryCanBeginListeners(AMQConnection.java:797)
	at com.rabbitmq.client.impl.AMQConnection.doFinalShutdown(AMQConnection.java:774)
	at com.rabbitmq.client.impl.AMQConnection.handleIoError(AMQConnection.java:748)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.lambda$null$1(AutorecoveringConnection.java:134)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.rabbitmq.client.AlreadyClosedException: connection is already closed due to connection error; protocol method: #method<connection.close>(reply-code=320, reply-text=CONNECTION_FORCED - broker forced connection closure with reason 'shutdown', class-id=0, method-id=0)
	at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:258)
	at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:341)
	at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:282)
	at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:141)
	at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:968)
	at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:52)
	at com.rabbitmq.client.impl.recovery.RecordedQueue.recover(RecordedQueue.java:53)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.lambda$recoverQueue$5(AutorecoveringConnection.java:722)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.wrapRetryIfNecessary(AutorecoveringConnection.java:818)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.recoverQueue(AutorecoveringConnection.java:721)
	... 8 more

After the above exception MI listener does not retry to connect to the broker even though the broker is available.
[1] https://github.com/wso2/wso2-axis2-transports/blob/v2.0.0-wso2v65/modules/rabbitmq/src/main/java/org/apache/axis2/transport/rabbitmq/ServiceTaskManager.java#L190
Affected Component
MI
Version
4.1.0
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

This issue has been resolved after changing the load balancer configurations of the RabbitMQ cluster.


20151208...md: address Google Datalab hosted service

Include with Digital Ocean and Wakari as hosted service.
https://cloud.google.com/datalab/

check that comment on attaching storage is correct

reference best practices for ssh connections: https://cloud.google.com/solutions/connecting-securely


Improve unit-test

Describe the feature or improvement you're requesting

Update AddDeploymentTextModel and others in settings with Create and on startup the entire list (ListAsync in Deployments Test) line 90
Understand the calculation for completionTokens in Edit endpoint (Cost tests, line 124, method ExecuteRequestWithCostAsync())

Additional context
No response

Added


Getting error in range measurement more than 2m in vl53l4cx with esp32s3

Hello!!
Greetings!!
I am using vl53l4cx with esp32s3 and it works fine in range up to 2m. But I am getting error with range more than 2m although its max range is 6m. It gives coercion value 8191 and status code 12, 255 in rage of more than 2m. I tried to get a value in the range of more than 2 meters by changing the tuning parameters as suggested in the user manual But it didn't work. I have changed timing budget to 40ms and set long distance mode but still I am not getting valid range.
This is what I get at ranges up to 2m.

And this is what I get in a range over 2m.

I have put the sensor on the wall and also tried in light mode and dark mode but there is some problem with more than 2m range.
Can anyone guide me what to do with this kind of error?
How to make this sensor work in maximum range.

Hi @Pratiksha0102 ,
what is your hardware setup? What is the color of your target? If it is very dark, it is normal that the maximum range is about 2000 mm.

Best Regards,
Carlo

Hello @Pratiksha0102 ,
first of all you should filter the outputs of the sensor. If the range status is 255 or 12, the measurement is not reliable and you should skip it. Another point, if you invert the position of the sensor, for example putting it on the floor, is it able to measure correctly the height of the ceiling?
Best Regards,
Carlo

Hi @Pratiksha0102 ,
If the inverted condition works as expected, it means that it could be also a problem of the orientation of the sensor (it could be not perfectly orthogonal to the target). It could be also an issue of the target that is too small with respect to the field of view of the sensor when it is attached to the ceiling. Could you try to put 4 card boxes (with the same height) close each other a see if the detection improves?
Best Regards,
Carlo

Hello @cparata ,
Greetings!!
Okay I'll try that way and will update you soon.Thanks for your support.

No feedback since a while. Close it.


404 on pushState

Hello. I get 404 error page for milliseconds when trying to go back in history by clicking 'back' browser button.
How to get a bug?
For example, go to /plans page first.
Then, without using of client router, go to root page /.
Try to click back button in a browser, you will get 404 and after some ms after, the target page will be loaded.
What it can be? Looks like that problem is related to history.

When you do it this way you will get a full page refresh when hitting the back button.
My guess is that your pages don't map to your index.html/js
for example, if you navigate to /plans then F5, do you get the "404" error. if so then you need to configure your server to serve all URL traffic to the same index.html/js root.

This is a bug tracker, not a support system. For usage questions, please use Stack Overflow or Reactiflux. Thanks!


Tune the default tlp.conf to increase powersaving

There are a few easy things that can be changed in tlp.conf to get more battery life at expense of performance. Provide some default with tunables.

Not managing power with TLP on 22.04.


Meet the designer #5

Meet the designer will be held the 24th November. The theme will be EDS Zero Height documentation.
It will be held by @BeckyBrekke

I just booked a short chat on Monday to discuss. :-)

Victor takes care of recording

closing this as its cancelled


[NEW ALGORITHM] Add Hamming Distance Algorithm to bit manipulation

Issue will be closed if:

You mention more than one algorithm. You can create a separate issue for each algorithm once the current one is completed.
You propose an algorithm that is already present or has been mentioned in a previous issue.
You create a new issue without completing your previous issue.

Note: These actions will be taken seriously. Failure to follow the guidelines may result in the immediate closure of your issue.

Name:
[NEW ALGORITHM]
About:
Propose a new algorithm to be added to the repository
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Labels:
new algorithm, gssoc-ext, hacktoberfest, level1

Assignees:

[ ] Contributor in GSSoC-ext
[ ] Want to work on it

would like to work on it ,can you please assign it to me


Handle Remote Unavailable

Hi,
at this time I'm setting the routes of mfe in the "dynamic" way:
export function buildRoutes(options: CustomManifest): Routes {

     const lazyRoutes: Routes = Object.keys(options).map(key => {
         const entry = options[key];
         return {
             path: entry.routePath,
             loadChildren: () =>
                 loadRemoteModule({
                     type: 'manifest',
                     remoteName: key,
                     exposedModule: entry.exposedModule
                 })
                 .then(m => m[entry.ngModuleName])
         }
     });

     return [...APP_ROUTES, ...lazyRoutes];

in our environment one remote could be down/unavailable and that locks all the frontend.
I'd like to add a fallback when the remote module is unavailable but i can't find out where to catch the error.
When module is unavailable I'd like to change the return as it follows:
return {
             path: entry.routePath,
             component: MfeFallback
}

thanks

@fraschizzato  Hi,  check this ngx-mfe , this lib allow you to declare fallback component

Also, here, you can go with traditional Angular features. For instance, you can register for the router events (router.events) or you can register a global error handler.


WEB-6573: Slide generator fix

For some reason it suddenly defaults to a different font-weight......?!

on a repo bin/serve, it builds staging robles when it is merged,  but I can't check in progress changes locally (as in, I don't know how to)


@seq_task does not appear to be working

I have several tasks that should run in inverted order than how they appear in the python locust file. The below is a subset of what I have in the locust file (I have a total of 8 tasks):
from locust import HttpLocust, TaskSequence, between, constant, seq_task #, TaskSet, task, between, constant
from dotenv import load_dotenv
load_dotenv()
import os
import pandas
import random
import locust.stats
import json
import requests

class UserBehaviour(TaskSequence):
    @seq_task(2)
    # @task()
    def qpp_status_v5(self):
      year = [someYearValue]
      headers = {"Accept": "application/json", "Content-Type": "application/json", "Authorization": user_tkn}
      params = {[some parameters]}
      self.client.get("[some end point]", params=params, headers=headers)
      print("Step 2")

    @seq_task(1)
    # @task()
    def qpp_search_v5(self):
      year = [some year value]
      skip = [some skip value]
      limit = [some limit value]
      someValue= [someValue value]
      headers = {"Accept": "application/json", "Content-Type": "application/json", "Authorization": user_tkn}
      body = {"someValue": someValue, "Years": [year], "sort": [{"path": "[someValue2]", "order": -1}], "skip": skip,
            "limit": limit}
      self.client.post("[some end point]", json=body, headers=headers)
      print("Step 1")

class WebsiteUser(HttpLocust):
  task_set = UserBehaviour
  # wait_time = between(1, 1)
  wait_time = constant(1)

The problem I am seeing is that the print statements are not printing out in the order I would expect. I am seeing "Step 8" appear between a "Step 2" and "Step 4", for example.
Am I looking at this wrong?:

Hi! What version of locust are you using?
And in that log, what were your hatch options set to? (hatch rate, user count etc.)
Do the prints appear in the expected order when you only use one user?

I am running on version 0.14.5. The hatch options I ran the tests under were "--no-web -c 100 -r 10 --run-time 1m --csv=example". Yes, when I indicate "-c 1", for a single user, the print statements do appear as expected. Why the difference?

From: Trouv<EMAIL_ADDRESS>Sent: Monday, April 20, 2020 9:52 PM
To: locustio/locust<EMAIL_ADDRESS>Cc: bwelch0581<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [locustio/locust] @seq_task does not appear to be working (#1345)
Hi! What version of locust are you using?
And in that log, what were your hatch options set to? (hatch rate, user count etc.)
Do the prints appear in the expected order when you only use one user?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/locustio/locust/issues/1345#issuecomment-616920066, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK2VHBKLV2ZXLUM4XV7CHX3RNUC6FANCNFSM4MMZ5CRQ.

I believe locust is working as expected then.
When you use 100 users, they're all running simultaneously, and they all are running through the TaskSequence independently from the other users. And since the users don't all start at the same time, one user could be on step 5 of their run while another user is just starting step 1 of their run. So, they're all out of sync with each other, and the exact order of the print statements will be unpredictable.
To see this effect you could do something like this:
from locust import HttpLocust, TaskSequence, constant, seq_task
from random import randint

class UserBehaviour(TaskSequence):

    def on_start(self):
        self.id = randint(0, 10000)

    @seq_task(3)
    def step3(self):
        print(f"{self.id}: Step 3")

    @seq_task(2)
    def step2(self):
        print(f"{self.id}: Step 2")

    @seq_task(1)
    def step1(self):
        print(f"{self.id}: Step 1")

class WebsiteUser(HttpLocust):
    task_set = UserBehaviour
    wait_time = constant(1)

And run with maybe 10 users. Each user will be given an id and their print statements will show that id, so you can watch each user individually go through the steps in the correct order.

Thank you , so much, for your help. I really appreciate the explanation and the suggested code to see how even multiple users are still working in the indicated order. This, all, was very helpful. Thank you.
Please feel free to close this issue as I see, now, that everything is working, as expected.

From: Trouv<EMAIL_ADDRESS>Sent: Tuesday, April 21, 2020 8:37 AM
To: locustio/locust<EMAIL_ADDRESS>Cc: bwelch0581<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [locustio/locust] @seq_task does not appear to be working (#1345)
I believe locust is working as expected then.
When you use 100 users, they're all running simultaneously, and they all are running through the TaskSequence independently from the other users. And since the users don't all start at the same time, one user could be on step 5 of their run while another user is just starting step 1 of their run. So, they're all out of sync with each other, and the exact order of the print statements will be unpredictable.
To see this effect you could do something like this:
from locust import HttpLocust, TaskSequence, constant, seq_task
from random import randint
class UserBehaviour(TaskSequence):
def on_start(self):
    self.id = randint(0, 10000)

@seq_task(3)
def step3(self):
    print(f"{self.id}: Step 3")

@seq_task(2)
def step2(self):
    print(f"{self.id}: Step 2")

@seq_task(1)
def step1(self):
    print(f"{self.id}: Step 1")

class WebsiteUser(HttpLocust):
task_set = UserBehaviour
wait_time = constant(1)
And run with maybe 10 users. Each user will be given an id and their print statements will show that id, so you can watch each user individually go through the steps in the correct order.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/locustio/locust/issues/1345#issuecomment-617184922, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK2VHBK6MW6YUPE2UAHHTNLRNWOQ3ANCNFSM4MMZ5CRQ.


Notes release notes 0.39

commands: Execute => Response

TODO:

check --config, see https://discourse.gohugo.io/t/hugo-0-39-help-test-it/11496/3?u=bep


[BEAM-8935] Fail fast if sdk harness startup failed.

Currently the runner waits for the sdk harness to startup blockingly until the sdk harness is available or timeout occurs. The timeout is 1 or 2 minutes. If the sdk harness startup failed for some reason, the runner may be aware of it after 1 or 2 minutes. This is too long.

R: @tgroh

Run Java PreCommit

R: @lukecwik

Good catch! I have not found direct documentation for this question. However, I did find some useful information which maybe helpful.
According to the doc, the status of a docker container could be one of created, restarting, running, removing, paused, exited, dead. So I think we only need to consider if the status of a container could be created in race conditions after executing docker run(for the other status, it's obvious that there is something wrong). According to StackOverFlow, docker run = docker create + docker start. I guess that docker create will change the state of container to created and docker start will change the state of container to running. It is further explained in StackOverFlow in which case the status of docker container could be "created": docker create and docker run. For docker run, it says that Docker container has been created using docker run but it hasn't been able to start successfully. So we can infer that if the docker status become created after docker run, the docker container isn't started successfully.
So, I think current logic would be fine :) What do you think?


shift click walk under npc

It would be awesome if you could shift left click on an npc to walk under him, basically ignoring the npc and just left clicking the tiles, as if your NPC left click option is set to 'hidden' or always right click

There's an issue already open with this exact title... #1412


move the configuration from .config()

I would like to avoid to have all my translation directly in my app.js file.
Ideally I would like something like this:
      $translateProvider
      .useSanitizeValueStrategy(null)
      .translations('en', translationService.en)
      .translations('fr', translationService.fr)
      .preferredLanguage('en')
      .registerAvailableLanguageKeys(['fr'])
      .determinePreferredLanguage()
      .fallbackLanguage('en');

And than define objects for each languagues in another file.
Is it possible?

Have you read the docs? http://angular-translate.github.io/docs/#/guide

I got a little confused with the docs.
I didn't look in asynchronous loading.
Thanks


Minor fix to DescriptorHeap::Increment() to return uint32_t.

Returning size_t just means it has to be further cast to UINT when it's put into a D3DX12_CPU_DESCRIPTOR_HANDLE struct.

Normal usage is to get the D3DX12_CPU_DESCRIPTOR_HANDLE from GetGpuHandle or GetCpuHandle.
Where are you finding yourself creating them directly?

In fact, because of normal usage I don't see any of my code or samples that actually use that method :) Seems like an easy fix to take.

I started with your VS 2022 Direct3D12 DR template and converted over from using ComPtr<ID3D12DescriptorHeap> to using DirectXTK12 DescriptorHeap and you need the Increment() in code like this:
 // Obtain the back buffers for this window which will be the final render targets
    // and create render target views for each of them.
    for (uint32_t n = 0; n < BACK_BUFFER_COUNT; n++) {
        CHECK_HR(m_swapChain->GetBuffer(n, IID_PPV_ARGS(m_renderTargets[n].GetAddressOf())));
        auto name = fmt::format(L"Render target {}", n);
        m_renderTargets[n]->SetName(name.c_str());

        D3D12_RENDER_TARGET_VIEW_DESC rtvDesc = {};
        rtvDesc.Format = m_backBufferFormat;
        rtvDesc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D;

        CD3DX12_CPU_DESCRIPTOR_HANDLE rtvDescriptor(
            m_rtvDescriptorHeap->GetFirstCpuHandle(),
            INT(n),
            UINT(m_rtvDescriptorHeap->Increment())
        );
        m_d3dDevice->CreateRenderTargetView(m_renderTargets[n].Get(), &rtvDesc, rtvDescriptor);
    }

Thanks for the details.
Generally we don't use DescriptorHeap or DescriptorPile for render target views or depth/stencil views. The reason is that you can always create a new heap for additional RTVs/DSVs. The RTV and DSV do not have to be in the heap you are using via SetDescriptorHeaps as they are implicitly activated when you bind them. Of course for MRT, you need them to be in the same heap.
In any case, after reviewing I'm fine with taking this fix as it shouldn't have any disruptive impact to customers at all. The underlying Increment coming from DirectX 12 is explicitly an 32-bit unsigned int.


Deprecate voiceThreads

Threads created when users join voice chat should be removed in favor of the new (soon-to-come) chats built into voice channels.

Fixed in 86cb24fbed2774a5e6f7e0485f5a69aa2d42aa4c


Adding a sample script for bulk-adding admins to various Yammer communities

Category

[ x] New script

What's in this Pull Request?
New script to handle bulk assignment of admins to various Yammer groups, README, and image showing how the required CSV should look.

[celebrate]     Alejandro Lopez reacted to your message:

From: David Whitney @.>
Sent: Friday, June 30, 2023 6:30:19 PM
To: microsoft/FastTrack @.>
Cc: Alejandro Lopez @.>; State change @.>
Subject: Re: [microsoft/FastTrack] Adding a sample script for bulk-adding admins to various Yammer communities (PR #164)
Thanks Alejandro. Dean, keep them coming, sorry for the delay!
—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/FastTrack/pull/164#issuecomment-1615041853, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AG44X24XWNTNQLXTMS7XA3LXN4LLXANCNFSM6AAAAAAZRY4TZQ.
You are receiving this because you modified the open/close state.Message ID: @.***>


promql: move some legacy tests out into dedicated files.

Matrix Tests
Duplicate Label Test.

Relates to #740

Superceded by #7989


Revert "(PUP-6675) Use pipes instead of temporary files for Puppet exec"

Reverts puppetlabs/puppet#5870, which was accidentally merged.

👍


Upgrade Linux Kernel for main from 6.6.12 to 6.6.13

Subject says it all.

Closing in favor of https://github.com/flatcar/scripts/pull/1627


when run tvm deploy app on android, exception  at jni_helper_func.h:182

I am trying to load tvm on android, by generating tvm android deploy app.
But when i load the  module (deploy.so), i get exception  at jni_helper_func.h:182.
Please help me resolve the issue , Thanks.

Could move this to general discussion.
Also please share more details of the exception.

move to https://discuss.tvm.ai/