Remove italic effect from science blog text

With this PR

Can I suggest also removing the text "Over the next few weeks" since in fact the science blog spans a period of months rather than weeks.
The changed sentence would be "We will be using this blog to publish answers to these questions as well as results from the research undertaken by the Robert Koch Institute." which would be more accurate and not tied to a time-period of weeks.

Thanks for the suggestion @MikeMcC399. It has been removed with https://github.com/corona-warn-app/cwa-website/pull/2523/commits/2633c2a44230156a903a2a08b52007731a893cc9


Improving unit tests coverage

This PR improves the unit tests coverage.

I would suggest explicit class level @covers annotations with forceCoversAnnotation="true" phpunit option to avoid false coverage

@weierophinney I updated the PR including your feedback.


Marked input as nullable on ResourceIdentifier.TryParse()

Resolves #39059.
Changes:

Marked input as nullable: string?
Split the test method into two (for redability)
Added null to test scenarios

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Core

@ArthurMa1978 all tests pass, please review.

@ArthurMa1978 ping

@ArthurMa1978 ping

hello @KrzysztofCwalina,
We always did:

Per the public doc

result
ResourceIdentifier
The structure that will contain the parsed value. If the method returns true result contains a valid ResourceIdentifier. If the method returns false, result will be null.

Per the spec (unit test):

https://github.com/Azure/azure-sdk-for-net/blob/4f13739967c97f56b68481481dbc1e5ebeb848ab/sdk/core/Azure.Core/tests/ResourceIdentifierTests.cs#L838C60-L838C69

Per the implementation details:

https://github.com/Azure/azure-sdk-for-net/blob/4f13739967c97f56b68481481dbc1e5ebeb848ab/sdk/core/Azure.Core/src/ResourceIdentifier.cs#L536-537

Per the nature of the TryXXX methods pattern which are liberal what they accept and just return false in case of invalid input, such as null.

All similar methods in BCL, such as Guid.TryParse and Int32.TryParse are beavhing and decorated accordingly:
public static bool TryParse (string? input, out Guid result);

public static bool TryParse (string? s, out int result);

So nothing has changed other than adding the corresponding annotation on the parameter, to let the compiler know that it's okay for the customer (such as myself) to pass null.

@abatishchev In my mind the difference comes down to whether or not the API excepts null as a happy path.  The tests and implementation protecting against null does not necessarily mean this is an expected case, they just mean we have to protect ourselves against the type constraints which do allow null.
Today if someone tries to pass in null and has nullability on they will correctly get a compilation error saying you should pass null to this API.  The API is 100% guaranteed to return false in that case.
I will defer to @KrzysztofCwalina which way we want to go here since we do see precedent for having the input be nullable in Guid.TryParse.
That being said the other changes in here around adding [MaybeNullWhen(false)] is an improvement since this will keep people from having to do a null check on the result inside of a true if block.


Infer FITSOpticalElement planetype from header keywords when not given

FITSOpticalElements are allowed to be initialized with a planetype of None, which confused the logic to look up the pixel scale from a header keyword. This PR changes it to set the planetype based on whether PUPLSCAL or PIXSCALE are found in the FITS header, with the amplitude/transmission header taking precedence.
This also includes a fix and test case for a typo in poppy.Instrument, where the spectra cache was not being exercised (masking a NameError from a typo'ed variable name).

This fixes an API problem where outside-POPPY uses of FITSOpticalElement could not specify the planetype explicitly, resulting in pupil plane maps being treated as image plane maps for the purposes of determining pixel scale. I ran into this with WFIRST, when I created a new pupil image that included scale information instead of supplying it as an argument and POPPY tried to look up 'PIXSCALE' from the header.

It's unclear to me whether an initialized FITSOpticalElement should have a planetype by the time __init__ finishes. It would seem to make sense to me, but there are currently code paths where planetype is None until it's added to an optical system with addPupil or the like.
I could add a check for that for the cases where pixel scale is not supplied through one of the two usual header keywords (i.e. if it's a float or a custom keyword, ensure planetype is not None).


Unexpected focusing behavior of content hover inside of a Jupyter notebook

This issue has first been noticed https://github.com/microsoft/vscode-jupyter/issues/13263. While the core issue of 13263 has been solved, there remains an unexpected behavior of the focusing of the content hover inside of the Jupyter notebook.

Open a Jupyter notebook
Hover on code inside of a cell. Click on the hover, notice how the cell remains focused. :bug:
Press Enter, the focus disappears from the hover and the cell? :bug:
Press on the hover, the cell becomes focused, but the hover does not become visibly focused? :bug:

https://github.com/microsoft/vscode/assets/61460952/07c43505-975c-43fc-9d04-c6e4350341ef
cc @rebornix

Hi @rebornix, I will place this on the next milestone

Hi @rebornix, I am verifying the issue, I am wondering if it is expected that the following happens:
https://github.com/microsoft/vscode/assets/61460952/fb928060-39e8-4151-b478-9037c304af5c
When I click on the hover, the hover focuses and the cell focuses too.

This is actually another case that I didn't cover.

I am not able to make a hover appear in a Jupyter notebook cell anymore. Did we disable hovers in cells?


bugfix: Fix issue of local variable 'routes' duplicate in create_radixtree_router function.

Fix issue of local variable 'routes' duplicate in create_radixtree_router function.
NOTE: Please read the Contributing.md guidelines before submitting your patch:
https://github.com/apache/incubator-apisix/blob/master/Contributing.md#how-to-add-a-new-feature-or-change-an-existing-one
Summary
SUMMARY_HERE
Full changelog

[Implement ...]
[Add related tests]
...

Issues resolved
Fix #XXX

merged, thx


C:\Users\Syatsuu\sdk\go1.17\pkg\tool\windows_amd64\link.exe: running g++ failed: exit status 1

Robotgo version (or commit ref):
Go version:
Gcc version:
Operating system and bit:
Resolution:
Can you reproduce the bug at Examples:

[ ] Yes (provide example code)
[ ] No
[ ] Not relevant

Provide example code:

Log gist:

Description
...

excekWorker/sya
C:\Users\Syatsuu\sdk\go1.17\pkg\tool\windows_amd64\link.exe: running g++ failed: exit status 1
C:/Users/Syatsuu/sdk/go1.17/bin/pkg/mod/github.com/andlabs/ui@v0.0.0-20200610043537-70a69d6ae31e/libui_windows_amd64.a(init.cpp.obj): In function DllMain': C:/projects/libui/windows/init.cpp:170: multiple definition of DllMain'
C:\Users\Syatsuu\AppData\Local\Temp\go-link-1268316365\000047.o:C:/Users/Syatsuu/sdk/go1.17/bin/pkg/mod/github.com/robotn/gohook@v0.31.2/hook/windows/properties_c.h:192: first defined here
collect2.exe: error: ld returned 1 exit status

The UI and hook have some repetition C defined, you can try other UI package.

You can use beta version, And maybe I will update hook API.


The first post is always marked on the map

Describe the bug
The first post is always marked on the map.
To Reproduce
Steps to reproduce the behavior:

Go to ‘home’
Enter ‘Macher/in’ as search term
Select a different post than the first one
Change to map view by closing the detail view
See error

Expected behavior
The pin should point to the location of the selected post.
Screenshots

Desktop (please complete the following information):

OS: Windows 10
Browser Google Chrome
Version 83.0.4103.106

Smartphone (please complete the following information):
Not tested
Additional context
/

This is a direct consequence of the issue described in #54 and will therefore be resolved by #54

Fixed with https://github.com/hochschule-darmstadt/einander-helfen/commit/67297695b8cdda0e3d843bd80f483a53bf084114


WIP: [Masonry] Build a Masonry Component

This is an implementation of the Masonry component requested by 17000
Summary

Given a specified number of columns, Masonry maintains a list of content blocks with a consistent width but variable height. The contents are ordered by row.
If a row is already filled with the specified number of columns, the next item starts another row, and the item is added to the current shortest column. This allows space to be used efficiently, not leaving unwanted gaps, or creating longer columns.
The main difference from the v5 ImageList with a variant of masonry is that this Masonry component orders contents by row rather than by column, and that the shortest column is filled first with an item.
The number of columns and the gap between items (in px) can be passed into the component.

Demo on local server
Preview: https://deploy-preview-27169--material-ui.netlify.app/components/masonry/
To do

[ ]  Start building tests
[ ]  Finish documentation
[ ] re-calculate the grid row span of MasonryItem's accordingly in response to window resizing

I edited the description to change references to "left-to-right" to "by column", since the order isn't strictly left-to-right; and removed the sentence "Moreover, MasonryItem is not limited to containing only images but it can handle div items as well." Although they are the primary use-case, ImageListItem isn't strictly limited to images:
https://github.com/mui-org/material-ui/blob/c6642e370d589985588e097f8ebd421dcd01efd0/packages/material-ui/src/ImageListItem/ImageListItem.js#L126-L132

I edited the description to change references to "left-to-right" to "by row", since the order isn't strictly left-to-right; and removed the sentence "Moreover, MasonryItem is not limited to containing only images but it can handle div items as well." Although they are the primary use-case, ImageListItem isn't strictly limited to images:
https://github.com/mui-org/material-ui/blob/c6642e370d589985588e097f8ebd421dcd01efd0/packages/material-ui/src/ImageListItem/ImageListItem.js#L126-L132

Possible Solutions:

The following solutions satisfy (1) ordering contents by row rather than by column (2) filling the shortest column first with an item. Yet, each comes with its own set of limitations.

CSS Only

CSS Grid Layout Level 3

masonry feature is provided; ex) grid-template-rows: masonry, grid-template-columns: masonry.
Still a draft and currently it is only available in Firefox (after activating the flag).

CSS Grid with items' heights defined

If items heights are given, there is no need for a JS script to figure out them. We will be able to compute the number of row spans for each item. This will use the same approach as (see below; CSS Grid + Configuring Grid-Row-End [Current Implementation]) except that this doesn't need a script to figure out the heights. Hence, it will have the same limitation.

CSS + JavaScript

CSS Grid + Configuring Grid-Row-End [Current Implementation]:

Ref: https://w3bits.com/css-grid-masonry/
Workflow: We utilise a Masonry that contains all MasonryItems and a MasonryItem that contains a content (div or img in most of the cases). The height of the content passed to MasonryItem is calculated: contentHeight. totalHeight = contentHeight + spacing, where spacing can be passed to Masonry, should be the height of the MasonryItem containing the content so that it is large enough to display the entire content. Then, the number of row spans for this MasonryItem is computed using the following formula: Math.ceil(totalHeight / spacing). As long as css grid row's height is set to 0 in Masonry, we do not need to worry about it for computation of MasonryItem's height or number of row spans.
Limitation: (1) As it is pretty clear from this formula, Math.ceil(totalHeight / spacing), MasonryItem's height is in increments of spacing. This causes the gap between items to look inconsistent visually. If spacing is small, it is not easy to detect the gap difference, but it gets clearer with higher spacing. (2) All items must finish loading in order to do computation and apply grid spans to MasonryItems. Currently, I hide all items until document fully loads everything. I think it is a good idea to accept a loader prop from user and display this loader instead of just hiding items.
Benefits: (1) Tab order is in sync with the order of MasonryItems (2) Applying setting can be done to items individually and hence there is no need to clone children elements. (3) Lighter JavaScript than the second solution

Flexbox + Configuring Order and nth-child:

Ref: https://css-tricks.com/piecing-together-approaches-for-a-css-masonry-layout/#order-shifted-elements-in-a-flexbox-layout
Workflow: This uses flexbox with direction of column. For each item, the column with minimum height so far should be found and the item is pushed to this column. After all items are pushed to some column, the maximum height of column is computed and this is used as the height of the entire masonry container. Then, lastly, the same order (from 1 to the number of columns) is attached to the elements in the same column, and hence all elements are visually arranged by row.
Limitation: (1) Tab order will not be in sync with the order of items as order only changes the visual order. (2) Applying setting cannot be done to items individually (3) Heavier JavaScript than the first solution (4) Similar to the first solution, all items must finish loading in order to do computation and apply settings.
Benefits: (1) MasonryItem will not be in increments of spacing as in the first solution but have specific height instead, and therefore there will not be gap difference between items

Thanks for the detailed write up and investigation. In my opinion we should start with the CSS only implementation. If I am not mistaken, the only API  difference between this and the JS implementation would be that the height of the MasonryItems would need to be defined. In the future we could based on this decide whether we should apply the JS implementation (to automatically calculate heights). cc @mui-org/core

@hbjORbj If you want to support css grid masonry, there is css feature queries that might help.

I removed all JS codes to compute content heights and instead implemented the following solution: 2.1.2 CSS Grid with items' heights defined. I will now start working on implementing 2.2.2 CSS Flexbox + Configuring order.

One of the main limitations of 2.1.2 CSS Grid with items' heights defined approach, which is that MasonryItem's heights are in increments of grid gap and hence cause visually inconsistent gaps between items (especially when gap is large), has been resolved in this commit: https://github.com/mui-org/material-ui/commit/00d6780715c090e3681a482446ce16f0c246bb4a.

Good progress.
We're definitely going to need a solution that doesn't require heights to be defined though. I don't think cropping images with object-fit: cover; will cut it in production, and the size (or aspect ratio) of the content may not even be known in advance in order to to approximate the heights.
For a div, a fixed height is going to mean odd gaps between the content and the bottom of the item at different widths, or perhaps not even fit due to localisation. (Thinking of a card with text for example.)

We're definitely going to need a solution that doesn't require heights to be defined though

Agree with Matt. Looking from developer experience, defining height for all items is not gonna work.
2.2.2 CSS Flexbox + Configuring order sounds interesting but need to think about some common use case like "infinite scroll" because that might affect performance (if my understanding is correct, all of the items order needs to be recalculated). Also I don't mean that we need to support it but at least we already consider it before making a decision.
I also like https://github.com/paulcollett/react-masonry-css. I think once masonry is available in all browser in the future, it will be like
// at this moment, the item is filled by column
<Masonry>

My Element

My Element

My Element

  ...
</Masonry>

// in the future, developer change the implementation to css grid masonry by
<Masonry autoPlacement>

My Element

My Element

My Element

  ...
</Masonry>

Since Limitation A has been resolved for 2.2.1 CSS Grid + Configuring grid-row-end in this commit https://github.com/mui-org/material-ui/commit/00d6780715c090e3681a482446ce16f0c246bb4a, I decided to implement this solution rather than 2.2.2 CSS Flexbox + Configuring order for CSS + JS solution as based on the tradeoffs in RFC.

I also like https://github.com/paulcollett/react-masonry-css.

I took a look at and I really like it. The tradeoff they have is that they don't support sorting based on height, and I think it is a reasonable one. @hbjORbj could you check if there is something else missing in their implementation? They do not require height to be known in advance. If this is solved will we need the JS implementation too?
@mbrookes so far we discussed that we need to also support CSS only implementation so that this component can be used in SSR. The idea was that we can do a JavaScript implementation that would be more flexible.
In my opinion if we manage to provide a CSS solution that does not require defining height on elements we should be good with only one implmementation.

In the future we could based on this decide whether we should apply the JS implementation
(https://github.com/mui-org/material-ui/pull/27169#issuecomment-880486981)

@mnajdova I took this to mean that the PR could potentially be closed without it.

if we manage to provide a CSS solution that does not require defining height

Unfortunately I don't believe that will be possible until CSS grid masonry is widely supported.

Implementation of 2.2.1 CSS Grid + Configuring grid-row-end solution which does not require pre-defined heights of items can be found here: https://github.com/mui-org/material-ui/pull/27439. Its preview is here: https://deploy-preview-27439--material-ui.netlify.app/components/masonry/

@hbjORbj Great exploration! The current approach (2.1.2) looks really interesting. Items that span multiple columns are easily approachable.

Simply set grid-column-end: span 2; and you get it:

It seems to be a great candidate baseline to build on top of. For instance, if we add a touch of resize observer on each item we can implement 2.2.1, right? #27439. A demo with this snippet:
var resizeObserver2 = new ResizeObserver(entries => {
  for (let entry of entries) {
    entry.target.parentElement.style.gridRowEnd = `span ${Math.ceil(entry.contentRect.height) + 16}`;
    console.log('ffo', entry.target.parentElement, entry.target.parentElement.style.gridRowEnd);
    console.log('entry.contentRect', entry.contentRect)
  }
});

resizeObserver2.observe($0);

https://user-images.githubusercontent.com/3165635/126915794-0366ce9e-51f3-4aff-b062-53d74a4ef12b.mp4
https://deploy-preview-27439--material-ui.netlify.app/components/masonry/. Could this be enough?

In yesterday's meeting, it was decided to go with the implementation in this PR: https://github.com/mui-org/material-ui/pull/27439. Hence, I will close this PR.


kube-scheduler: failed to create containerd container: failed to create prepare snapshot dir : stat /data/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots: no such file or directory Warning BackOff kubelet Back-off restarting failed container

Description
After reboot of Machines on one node and Absence of snapshots folders.
Similar issue [3369] (https://github.com/containerd/containerd/issues/3369)
[2457]  errormessages throws in containerd due to get snapshot fs failed #2457)
Steps to reproduce the issue
Absence or removal of snapshots folders.
Describe the results you received and expected
~ kubectl get po --namespace=kube-system -l component=kube-scheduler
NAME                   READY   STATUS             RESTARTS       AGE
kube-scheduler-node1   0/1     CrashLoopBackOff   23 (58m ago)   55m
kube-scheduler-node2   1/1     Running            12 (43h ago)   79d

Events:
  Type     Reason   Age                 From     Message
  ----     ------   ----                ----     -------
  Normal   Pulled   34m (x7 over 43h)   kubelet  Container image "registry.k8s.io/kube-scheduler:v1.24.6" already present on machine
  Warning  Failed   34m (x6 over 36m)   kubelet  Error: failed to create containerd container: failed to create prepare snapshot dir: failed to create temp dir: stat /data/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots: no such file or directory
  Warning  BackOff  33m (x13 over 36m)  kubelet  Back-off restarting failed container

Expexted it kube-scheduler in Running state
What version of containerd are you using?
1.6.8
➜  ~ kubectl version --short
Client Version: v1.25.0
Kustomize Version: v4.5.7
Server Version: v1.24.6
Any other relevant information
runc version 1.1.3
spec: 1.0.2-dev
go: go1.17.7
libseccomp: 2.5.2

Linux node1 4.18.0-372.19.1.el8_6.x86_64 #1 SMP Mon Jul 18 11:14:02 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux
Show configuration if it is related to CRI plugin.

version = 2
root = "/data/containerd"
state = "/run/containerd"
oom_score = 0

[grpc]
  max_recv_message_size = 16777216
  max_send_message_size = 16777216

[debug]
  level = "info"

[metrics]
  address = ""
  grpc_histogram = false

[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    sandbox_image = "registry.k8s.io/pause:3.7"
    max_container_log_line_size = -1
    [plugins."io.containerd.grpc.v1.cri".containerd]
      default_runtime_name = "runc"
      snapshotter = "overlayfs"
      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
          runtime_type = "io.containerd.runc.v2"
          runtime_engine = ""
          runtime_root = ""

          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
            systemdCgroup = true
    [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]

Would you mind to share the result of lsof -p $(pidof containerd) ? thanks?

I guess that the volume /data/containerd was mounted after containerd start. So, the path has been overrided.
(unless someone remove it).

Would you mind to share the result of lsof -p $(pidof containerd) ? thanks?

Here is the output of the command.

I guess that the volume /data/containerd was mounted after containerd start. So, the path has been overrided. (unless someone remove it). You can mount / into /tmp/root with readonly mode and check the /tmp/root/data/containerd.

I guess that the volume /data/containerd was mounted after containerd start. : I am not sure of this.
Yes after the content got deleted/moved from /data/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots, this problem started.

Yes after the content got deleted/moved from /data/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots, this problem started.

Manually delete it? it is not related to reboot, right?
If so, I think you should clean all the data and restart containerd.
If not, and there is volume about /data/ (you can check it with mount | grep /data), it might be overrided, which is similar to this one. https://github.com/containerd/containerd/issues/3671#issuecomment-539974858

Yes it got manually deleted.  So that mean the content under containerd should be cleaned up by deleting it ?

Yes it got manually deleted. So that mean the contents under containerd should be cleaned up by deleting it ? Can you please elaborate a bit on "clean all the data"

Please delete the root dir of containerd. In your case, it is /data/containerd. Just clean it all.
Before you delete it, please ensure the containerd stop.

Many thanks. I followed your instruction. The Cluster is back to its normal state.
I stopped the containerd, then the kubelet
Removed i.e deleted the root /data/containerd
restarted the containerd, kubelet
Then systemctl daemon-reload
systemctl reboot the node.
I am closing this issue.


Added temporary fix in server/load.json for issue ALAP#197

As per issue https://github.com/openBackhaul/AutomatedLinkAcceptanceProxy/issues/197, the equipment uuid is a dependent attribute for framing the attribute inventory/position-of-modem-board, added a temporary fix in server/database/load.json file for retrieving uuid along with cache response.
Based on decision made on above issue, this fix shall need to be modified.

This is Issue gets fixed by  MWDI #917 and  MWDI #923.
MWDI is now responding as expected, returning the key attributes in the fields-filtered response.


Remove index accesses from Azure provider

Bug
coreos-metadata Version
1.0.0+
Environment
Azure
Expected Behavior
The Azure provider should not use index accesses, as they can cause panics.
Actual Behavior
The Azure provider uses index accesses here and here.

More generally, I think it would be useful to audit the entire codebase for "things that can panic" and remove them wherever possible. I think we pretty much always want explicit error handling.


[MTSRE-401] Add annotations as labels to bundle images /w refactors

Here is a list of what is changed by this PR. It is a bit all over the place but tries to add more components and structure.

add --force-push flag, that allow us to force-push images
add --debug flag with extra logging
always rebuild images (previous behavior if image exists in remote we don't rebuild, makes it difficult to troubleshoot)
refactor some of ci.py as OO (work-in-progress)
replace subprocess.run("docker", ...) /w docker-py library
add authentication to dummy registry so we test the login workflow
remove double validation, where we use operator_sdk to validate all local bundles, but also validate all remote images afterward

Testing
I ran the following commands successfully to validate this PR against prod bundles living in managed-tenants-bundles:
$ (venv) $ managedtenants --addons-dir=../managed-tenants-bundles/addons --dry-run bundles
<built_everything_success>

$ (venv) $ managedtenants --addons-dir=../managed-tenants-bundles/addons --addon-name=gpu-operator --debug bundles --quay-org sblaisdo
<built_and_push_gpu_operator_to_my_repo>

Issues

We would like to use mtcli list-bundles to validate index images contain bundles, but it does not trust unsigned cert (can't enable in test), tried deploying full docker-compose + nginx /w TLS + IP SAN, but dont trust localhost: https://docs.docker.com/registry/recipes/nginx/
Had to remove the operator_sdk_validate(...) right after building a bundle, because we already validate all bundle using their directories, and it fails to integrate with the login workflow

Seems we can't pull images from dockerhub. Trying to create a mirror in quay, but not seing any options to set repository state to Mirror ...

Found a quay container -> https://quay.io/repository/openshift/origin-docker-registry


Error when Testing

I get the following error when trying the script?
/opt/google-compute-snapshot/gcloud-snapshot.sh: 8: /opt/google-compute-snapshot/gcloud-snapshot.sh: Syntax error: newline unexpected

Was not in root


Add new compute metrics to sql exporter

These are the perf counters added in commit 263dfba6ee.

Note also that this needs to update the default Neon extension version to 1.5 if that hasn't been done already

Yes, that was done in commit d696c41807306333dab3568da523937963f7a116. But good point, I'll call that out in the commit message.


lifecycleOwner is not recognized.

When  I use Android Studio  3.5.2 to import sunflower project, I  wonder   this lifecycleOwner is not recognized in PlantDetailFragment.kt. I  have no idea  to fix the problem.  Could you  help me? @nic0lette @tiembo , thanks a lot !

Hi @seuer
I tried using a fresh copy of Sunflower that's synced with master from GitHub but I couldn't reproduce the problem.
My suggestion is to try to use File > Invalidate Caches / Restart in Android Studio and see if that fixes the issue. Then, if it does not, try to make a fresh clone of the project and use "Import Project".

@nic0lette   thank you for your support, I have fixed  my problem and  I can run the project normally on my device.

Great to hear! =D


Fixed custom widget validation (#12629)

Q
A

Is bugfix?
yes

New feature?
no

Breaks BC?
no

Tests pass?
yes

Fixed issues
#12629

Thanks!


send multiple arguments in the same generic OSC message

Using the Generic OSC module, I try to send multiple arguments in the same message.
For example : /osc/path 1 2 "test" 3.5
Is there a way to do that ?
If I try to use the "send message" action, it understand the whole message as the path (by putting everything between quotes) and it is unreadable on the other side...

I submitted a pull request for this functionality. Tested it on my end so once approved, please test it, @jgastonraoul  And let me know.


Cannot view system widgets

Dev Home version
0.503.261.0
Windows build number
10.0.23550.1000
Other software
OS Build Version: 10.0.23550.1000.amd64fre.ni_prerelease.230915-1324
.NET Version: .NET 6.0.21
Steps to reproduce the bug
Try to add system widget
Expected result
Widgets show the proper data
Actual result
Everything shows as {example} (example) and when you try to add more, it doesn't show a preview and says it can't add it.
Included System Information
Physical Memory: 63.73GB (44.34GB free)
Processor Architecture: x64
Included Extensions Information
Extensions:
Microsoft.Windows.DevHomeGitHubExtension_0.501.261.0_x64__8wekyb3d8bbwe
Microsoft.Windows.DevHome_0.503.261.0_x64__8wekyb3d8bbwe

Duplicate of #1248


Build on JDK 8 internally

This will stop the build from breaking internally on Blazar when I switch things to JDK 11 tomorrow.
The failures should be fixable by upgrades to things like findbugs, jacoco, and mockito.
@ssalinas @jhaber @kmclarnon

🚢


build failed

Hi,
I got an issue with build on both centos 7.6 and fedora 27, any problem with my set up?
./build  make
Building image: rdma/sriov-plugin:x86_64
Sending build context to Docker daemon   215 kB
Step 1/13 : FROM golang:1.10.1 as build
Error parsing reference: "golang:1.10.1 as build" is not a valid repository/tag: invalid reference format

It should work, if the system that you are working on has access to docker hub.
A sample output looks like below.
./build
Building image: rdma/sriov-plugin:x86_64
Sending build context to Docker daemon  213.5kB
Step 1/13 : FROM golang:1.10.1 as build
1.10.1: Pulling from library/golang

I am not sure if it is go version so I replaced my go1.11.3 with 1.10.1 but it fails still.
it seems fine with my docker cos I have pulled a few images successfully.
Anyone got the same problem as well?
#docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
docker.io/golang              latest              213fe73a3852        7 days ago          774 MB
docker.io/rdma/sriov-plugin   latest              54e32a483991        9 months ago        63.4 MB
docker.io/rdma/sriov-plugin   x86_64              54e32a483991        9 months ago        63.4 MB
#./build make
Building image: rdma/sriov-plugin:x86_64
Sending build context to Docker daemon 213.5 kB
Step 1/13 : FROM golang:1.10.1 as build
Error parsing reference: "golang:1.10.1 as build" is not a valid repository/tag: invalid reference format
#go version
go version go1.10.1 linux/amd64

@Whishay
Can you make sure that docker images output look like this in your system.
docker images | grep golang
golang                                                          1.10.1              1af690c44028        11 months ago       780MB

Thanks. Still, it does not work after I downgraded the image to 1.10.1.
#go version
go version go1.10.1 linux/amd64
#docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
docker.io/rdma/sriov-plugin   latest              54e32a483991        9 months ago        63.4 MB
docker.io/rdma/sriov-plugin   x86_64              54e32a483991        9 months ago        63.4 MB
docker.io/golang              1.10.1              1af690c44028        11 months ago       780 MB
#./build  make
Building image: rdma/sriov-plugin:x86_64
Sending build context to Docker daemon 213.5 kB
Step 1/13 : FROM golang:1.10.1 as build
Error parsing reference: "golang:1.10.1 as build" is not a valid repository/tag: invalid reference format


Extend switch keyword to operate on the Type of the variable

Summary of the new feature / enhancement

As a PowerShell script and module developer, I want to be able to use syntactic sugar for defining a switch statement that operates on an input variable based on that variable's object type, so that I can reduce the amount of boilerplate code used for this purpose.

I find myself needing to switch on object types primarily under two conditions: when I'm munging unreliable data and processing collections of non-alike objects (especially tokens from parsing some sort of AST).
Right now, there's really only two effective ways (that I know of) to get this behavior:

Pass the object to act on to switch and then use a conditional check for each type you want to handle, specifying $_ -is <type-to-handle>.
Call the GetType method in the input expression, place the types in parentheses as the values, and then reference the input variable (not $_ or $PSItem) in the scriptblock.

Conditional Validation
For this construction of the switch statement, you pass the object directly to switch and then use conditionals for each handled type, checking if $_ is that type or not. You can then reference the current value by $_. This works for scalars and collections alike.
function Get-SwitchedOutput {
  param($InputObject)

  switch ($InputObject) {
    ($_ -is [string])    { "I am a string! My value is: '$_'" }
    ($_ -is [hashtable]) { "I am a hash table! My value is: '$($_.Message)'" }
    default              { "I am a $($_.GetType())! I'm not currently handled. :(" }
  }
}

$ExampleInput = @{
  String  = 'Hello, friendo!'
  Hash    = @{ ID = 'Greeting' ; Message = 'ohai!' }
  Boolean = $true
}

Get-SwitchedOutput -InputObject $ExampleInput.String
Get-SwitchedOutput -InputObject $ExampleInput.Hash
Get-SwitchedOutput -InputObject $ExampleInput.Boolean

Get-SwitchedOutput -InputObject $ExampleInput.Values

I am a string! My value is: 'Hello, friendo!'

I am a hash table! My value is: 'ohai!'

I am a bool! I'm not currently handled. :(

I am a string! My value is: 'Hello, friendo!'
I am a hash table! My value is: 'ohai!'
I am a bool! I'm not currently handled. :(

For short or infrequent use, this is okay, but it means repeating conditional statements over and over; it can be a little messy.
GetType Comparison
This option calls the GetType() method in the test expression itself, then has each type (wrapped in parentheses) as the conditional. In the action scriptblock for each matching type the actual object must be referenced; you can't use $_ or $PSItem because that value is now a RuntimeType object. This prevents the switch from working on collections as input; the switch needs to be called in a ForEach-Object scriptblock or other looping construct that iterates over the items in the collection.
function Get-SwitchedOutput {
  param($InputObject)

  switch ($InputObject.GetType()) {
    ([string])    { "I am a string! My value is: '$InputObject'" }
    ([hashtable]) { "I am a hash table! My value is: '$($InputObject.Message)'" }
    default       { "I am a $_! I'm not currently handled. :(" }
  }
}

$ExampleInput = @{
  String  = 'Hello, friendo!'
  Hash    = @{ ID = 'Greeting' ; Message = 'ohai!' }
  Boolean = $true
}

Get-SwitchedOutput -InputObject $ExampleInput.String
Get-SwitchedOutput -InputObject $ExampleInput.Hash
Get-SwitchedOutput -InputObject $ExampleInput.Boolean

Get-SwitchedOutput -InputObject $ExampleInput.Values

I am a string! My value is: 'Hello, friendo!'

I am a hash table! My value is: 'ohai!'

I am a bool! I'm not currently handled. :(

I am a System.Collections.Hashtable+ValueCollection, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e! I'm not currently handled. :(

This construction is more readable as long as you don't need to operate on collections; but if you do, it immediately becomes more complex. It also requires a referencing the value from the original variable instead of $_ or $PSItem, which can be confusing (and possibly a little fraught).
Proposed technical implementation details (optional)
In my experience, I read many more lines of code (especially if we include re-reads of the same line) than I write and I suspect this is true for everyone. For cases where this behavior is needed, it would be preferable to rely on some syntactic sugar to make the code more readable.
Ideally, an implementation would allow this:
switch -type ($InputObject) {
    [string]    { "I am a string! My value is: '$_'" }
    [hashtable] { "I am a hash table! My value is: '$($_.Message)'" }
    default     { "I am a $($_.GetType())! I'm not currently handled. :(" }
}

An implementation allowing that example block would, in my opinion, be clear, backwards compatible (because it relies on a new parameter for switch, not modifying existing behavior), and much more readable/maintainable.
Similar constructs exist in other languages, such as golang and ruby:
Go
In Go, you can use a type assertion in a switch statement. This is roughly similar to the GetType option above. item in this code is the inputObject with the listed type asserted (so you can access properties and methods of that object, since go is strongly typed and the compiler gets angry if you make it guess).
switch item := inputObject.(type) {
case string:
	fmt.Printf("I am a string! My value is: '%s'\n", item)
case map[string]string:
	fmt.Printf("I am a hashtable! My value is: '%s'\n", item["Message"])
default:
	fmt.Printf("I am a %T! I'm not currently handled. :(\n", item)
}

Ruby
In Ruby, you can have your case statement act on the type of the object without any special handling. This is the most similar to this feature request (though Ruby's implementation doesn't handle unwrapping collections for you, you'd need to put this in a recursive function - so in practice it's somewhere between the desired implementation and the existing one).
case inputObject
when String
  "I am a string! My value is: '#{inputObject}'"
when Hash
  "I am a hash table! My value is: '#{inputObject[:Message]}'"
else
  "I am a #{inputObject.class}! I'm not currently handled. :("
end

Summary
While this feature request is for syntactic sugar, I think it would be a worthwhile improvement for readability and maintainability of code bases that have to handle unreliable data types or collections of mixed data types.

I know a few people that would be glad to see this addition.

This is a good idea. Details which need bottoming out include:

Should it work like -is  so [valuetype] works for [int ? Or just check types are equal
Should the Typename as a string be converted to the type  ? It may need fewer parser changes if the type does not use []
Should it look at psTypeNames so something which is masquerading as a Widget is treated as [widget]. (I think this may be needed for deserialized objects, and quite a few "types" I work with aren't real types but are are PSCustomObject with PSTypeNames set to get formatting).

With the caveat that these are not strong opinions and are loosely held:

Probably it should work like -is [foo] since that's the closes replacement behavior and what I think users will naively expect

Casting 'Foo' via [type] seems okay to me for the conditional entries ahead of the scriptblocks, e.g. these blocks would have the same behavior as far as the user can tell:
# -type with string
switch -type ($InputObject) {
  'Int' { "Integer! $_" }
}
# -type with casting
switch -type ($InputObject) {
  [type]'Int' { "Integer! $_" }
}
# -type with type
switch -type ($InputObject) {
  [int] { "Integer! $_" }
}
# is with string cast to type
switch ($InputObject) {
  { $_ -is [type]'Int' } { "Integer! $_" }
}
# is with type
switch ($InputObject) {
  { $_ -is [int] } { "Integer! $_" }
}

I'm not familiar with this use case but that seems sensible to me.

Another option would be something like this:
switch ($obj) {
    -is [string] { }
    -is [int] { }
    'but this also works' { }
    default { }
}

This is a parse error today, so it would not be a breaking change to add this syntax.

@SeeminglyScience  you know these details better than I do , but I assumed the present
switch ($obj) {
    <String or number literal>  { }
    {Anything else}  { }
}

Was carved in stone. Pretty much all the flow control statements are name (thing to evaluate) {thing(s) to do} and switch is odd because it also has -regex and -wildcard, and what is in {thing(s) to do} is a bit more involved so it may already have its own special exceptions.
If it is practical for the parser to handle -is [type]   would -gt 100  or -in @( 'a', 'b') etc. be just as do-able.  (i.e. any  {$_  -op   <operand>}   can  be simply -op <operand>)  ? Because I'm sure they would be welcome too.

Nothing is carved in stone, everything is a scale of impact vs effort. Note though, I'm not weighing in on how I think the scales balance here. Language changes in general have a very high bar of impact to hit because they are very expensive to implement and to maintain.
But if the language were just for me, I'd add the syntax I suggested without a doubt.

If it is practical for the parser to handle -is [type] would -gt 100 or -in @( 'a', 'b') etc. be just as do-able. (i.e. any {$_ -op <operand>} can be simply -op <operand>) ? Because I'm sure they would be welcome too.

Interesting, I like the idea of that.

This is a parse error today, so it would not be a breaking change to add this syntax.

Just thinking ...
switch ( 'Test', $Null, 'String', [String], 'String'.GetType() ) {
    [string] { '-is string'}
    [int] { '-is int' }
   'Test' { '-eq Test' }
    default { 'Default' }
}

Although this doesn't parse currently an error, it (afaik) never triggers the type operand and therefore is currently useless (and unlikely breaks anything either).
Anyways, I do like the -op <operand> idea

Although this doesn't parse currently an error, it (afaik) never triggers the type operand and therefore is currently useless (and unlikely breaks anything either).

It's not an error, but the following works:
switch ('[SomeStuff]') {
    [SomeStuff] { 'Matched' }
}

What about ?
switch ($InputObject.GetType().ToString()) {
    "System.String" {
    }
    "System.Object[]" {
    }
}

@yaye0

What about switch ($InputObject.GetType().ToString?

That is probably the obvious substitute but that will cause an error if (one of) the $InputObject is $Null

This issue is also not about "are their functional workarounds for this" - it's about whether or not the use case and value is enough to justify adding syntactic sugar to the language to make authoring switch statements that operate on input object type.
@yaye0 - your proposed implementation has the same limitations as my note about using the GetType Comparison in the issue description - chiefly:

In the action scriptblock for each matching type the actual object must be referenced; you can't use $_ or $PSItem because that value is now a RuntimeType object. This prevents the switch from working on collections as input; the switch needs to be called in a ForEach-Object scriptblock or other looping construct that iterates over the items in the collection.


Stun batons can instantly stun when dropped

Description

Overlapping with a human holding a stun baton and stunning/critting said human that's holding a stun baton, will apply the stun on you when they drop it from their hand, potentially multiple times.
Reproduction

Equip stun baton and turn it on
Have someone stand where the baton would drop after you get downed
Observe how you have hit/stunned someone by being downed

Screenshots

Additional context

I've observed the stun baton applying multiple times, resulting in an instant stun, when the person being hit by the dropped/thrown stun baton is moving.

Fixed by #30115


v9 Schema: Index series, not chunks

Fixes #433
We should index the series, not chunks; this will reduce the number of entries in the index by replication factor * (chunk size / bucket size), or 3 * 6hrs / 24hrs - ie 12x. This will however mean we need another index from series to chunks, introducing 1 extra write an N extra reads per query.  Expectation is a reduction in query latency (and bigtable query usage, and memory cost) by 12x, and then an increase by 2x as we have to do a bunch of queries.
As part of this PR, promote the composite schema abstraction to "composite chunk store" - a chunk store which delegates to different chunk stores based on time.   This will allow us to vary the store implementation over time, and not just the schema. This will also unblock the new bigtable storage adapter (using columns instead of rows, see #753).

This will fail when queries cross schema buckets; plan is to move the compositeSchema code up one level to have a compositeStore, which multiplexes queries to different chunk stores based on time.

Got this deployed in our dev env and it seems to work.  Hard to draw any conclusions as there aren't any taxing queries, but there seems to be a drop in bigtable latency in line with a reduction the amount of data we're reading.

Running in prod for a few days now and seen the worse queries go from minutes to seconds, in line with a 6-10x latency improvement.  Once we rotate out the index tables, will report on their size.

The was a bug in the way we handled chunk spanning the transition; fixed now.

Seems to me that this schema should also allow (or lay the groundwork for) successful queries without invariant metric names... am I thinking on the right path there?

Seems to me that this schema should also allow (or lay the groundwork for) successful queries without invariant metric names... am I thinking on the right path there?

It could, but still doesn't avoid the problem of hotspotting the "name" row.  Although it would reduce the load on that row by 12x, so might be doable at this point.

This seems like rather a large change in performance characteristics, if you have a number of chunks to write.

Yes, it potentially is.  I don't think it will effect normal operation, as I think we only flush one chunk at once normally - we've been running this for a week or so, haven't notices anything.  But may effect shutdown flushes.
I think the correct solution is to potentially split out the ChunkStore (get and put chunks by ID) and ChunkIndex (write entries and find entries by matchers), something that is starting to happen with the seriesStore anyway.  Then the composite store can write the index entries and the chunks once, in a batch.  WDYT?

Do we really need to write another cache?

How many do we have?  I see the chunk caches (which are fundamentally different things), a vendored prometheus treecache (something to do with zookeeper) and some caches in k8s/client-go.  I guess the grpc connection pool is a cache, but thats a different beast too.  We also cache a single result in the chunk iterator, but thats just a single result.
I'm not actually aware of any other caches (like this) in use in the codebase.   We could use github.com/bluele/gcache, but I was never a fan of that library.
OTOH, not clear using a heap for evictions if the best idea; we could thread a link list through the entries and reorder that to get LRU.

I've tidied up this PR so it should be more reviewable.  I see two things left todo: figure out what do to with chunks on store boundaries (try and bring back the batching) and accurately record cardinality or rows for multi-day queries.
Let me know if you get a chance to take a look @bboreham @cboggs @gouthamve.

By "we" I meant the Go community.
I've used github.com/patrickmn/go-cache successfully in https://github.com/weaveworks/scope, to replace github.com/bluele/gcache for performance reasons.

I think we only flush one chunk at once normally

If the flush queue gets very large (and we've had it in the millions many times) this assumption breaks down.

Then the composite store can write the index entries and the chunks once, in a batch. WDYT?

I wrote some thoughts at https://github.com/weaveworks/cortex/issues/684#issuecomment-408143379

I also have some concerns about putting one chunk vs many chunks, and added a comment with a possible idea. I like the idea of splitting ChunkStore and ChunkIndex, or some of Bryan's comments, but perhaps not as part of this PR

I've used github.com/patrickmn/go-cache successfully in https://github.com/weaveworks/scope, to replace github.com/bluele/gcache for performance reasons.

I've looked at go-cache, it still uses a background goroutine to periodically expunge entries from the cache.  AFAICT this means the cache can grow without bounds between these periods, and it also locks the entire cache to do this.  The heap cache isn't ideal, I'm going to update it to use a simple FIFO list for evictions, but I think its better that go-cache.


[v4.4.2] [Build] _Static_assert(sizeof(esp_chip_id_t) == 2, "esp_chip_id_t should be 16 bit"); (IDFGH-8479)

IDF version.
v4.4.2-378-g9269a536ac
Operating System used.
macOS
How did you build your project?
Command line with idf.py
What is the expected behavior?
I'm using 4.4.2, top of branch, stock, it should build.
What is the actual behavior?
I should have brought up this issue a year ago.
On v4.3.x, v4.4.x, I've always had to comment out these 3 lines in esp_app_format.h because of a build error.
_Static_assert(sizeof(esp_chip_id_t) == 2, "esp_chip_id_t should be 16 bit");
_Static_assert(sizeof(esp_image_header_t) == 24, "binary image header should be 24 bytes");
_Static_assert(sizeof(esp_app_desc_t) == 256, "esp_app_desc_t should be 256 bytes");

I've never taken the time to figure out what causes it.
Steps to reproduce.
No special steps. Building with idf.py.
Build or installation Logs.
Log:
/Volumes/User/MBP-Google-Drive/jamcorder/firmware/esp-idf/components/bootloader_support/include/esp_app_format.h:24:15: error: expected constructor, destructor, or type conversion before '(' token
 _Static_assert(sizeof(esp_chip_id_t) == 2, "esp_chip_id_t should be 16 bit");
               ^
/Volumes/User/MBP-Google-Drive/jamcorder/firmware/esp-idf/components/bootloader_support/include/esp_app_format.h:91:15: error: expected constructor, destructor, or type conversion before '(' token
 _Static_assert(sizeof(esp_image_header_t) == 24, "binary image header should be 24 bytes");
               ^
/Volumes/User/MBP-Google-Drive/jamcorder/firmware/esp-idf/components/bootloader_support/include/esp_app_format.h:124:15: error: expected constructor, destructor, or type conversion before '(' token
 _Static_assert(sizeof(esp_app_desc_t) == 256, "esp_app_desc_t should be 256 bytes");
               ^
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

@chipweinberger
Missing CPP guards in following header (?)
https://github.com/espressif/esp-idf/blob/9269a536ac123677b165ff531369dfd1338ef103/components/bootloader_support/include/esp_app_format.h#L24
For C++, it should be static_assert

My code is all CPP, so that's a good theory.
Yes the capitalization is a bit weird.

This is still broken on v4.4 branch (maybe master too)?
I'd open a PR, but I think I should get the other PR's in first, hah.

Hi @chipweinberger ,
An internal PR on-going to fix this issue, it will be backported to v4.4 as soon as it is merged

appreciate the update! :)

I am using IDF v4.4.0, also tried V4.4.5 but I am getting this error while building the code. I am not sure what to do here or how to get around it. it is only happening with one repo. I can compile all the projects from the examples in the ESP-IDF

I am using IDF v4.4.0, also tried V4.4.5 but I am getting this error while building the code. I am not sure what to do here or how to get around it. it is only happening with one repo. I can compile all the projects from the examples in the ESP-IDF

@lamaanrana-eaton Do you have a minimal reproducing example?


Subscritptions are run twice

Is there an existing issue for this?

[X] I have searched the existing issues.

Is this issue related to iced?

[X] My hardware is compatible and my graphics drivers are up-to-date.

What happened?
I started to notice that the Subscription::channel closure in Cosmic Term run twice on startup, and started to track it backwards in the stack. This only happens with --release builds, and not an all platforms ( https://github.com/jackpot51 could not reproduce this on his hardware ), on my Thinkpad T15 Gen 1, it happens every time.
So, I notice that in iced/winit/src/application.rs we actually have two calls to runtime.track(application.subscription(...)). One in run_instance and another in update. Both these calls will trigger a new call to cosmic terms subscription::channel closure. This should not happen since there is a check in tracker.rs to prevent this:
https://github.com/iced-rs/iced/blob/878134883e5298aa8e12261a3ebd85879eae1d19/futures/src/subscription/tracker.rs#L85
But for some reason, this check fails, the id between the first call is different from the calls in the update function. So, when I started to dig further I found that the hashing function for Map, is the one that is getting different from the first to the following calls, and more exact it is the self.mapper.hash(state); that differs.
https://github.com/iced-rs/iced/blob/878134883e5298aa8e12261a3ebd85879eae1d19/futures/src/subscription.rs#L166
And I debug print the self.mapper, the function pointers have different values. So, for some reason, it seems that the compiler, when run in release mode, decides to perform some optimizations to either move the closure between the calls, or create two different closures (I'm no expert in compiler optimizations, I just see that the closure have different pointers for the call from run_instance and update ).
This is a quite critical bug, since that causes Subscription::channel to be run twice, and if you don't count on that but assume it only run once, you may end up with a dead channel in the application.
In Cosmic Term, this was worked around by commit
https://github.com/pop-os/cosmic-term/commit/4401a7dbef3e1579af9694c5f6c38c1b788a86e2
The iced version is
https://github.com/pop-os/iced/tree/6115280d5277c50b8539d4eff6ab61050c51b592
since that is what libcosmic uses. But, I don't see anything that would have fixed this.
This is with rustc rustc 1.75.0 (82e1608df 2023-12-21)
some info from /proc/cpuinfo
model name  : Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtsc
p lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fm
a cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb
stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust sgx bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt x
saveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities
vmx flags   : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_mode_base

What is the expected behavior?
The real fix would be to make the self.mapper.hash(state); stable.
Version
master
Operating System
Linux
Do you have any log output?
No response

mapper is only involved in mapped subscriptions, which does not seem to be the case for the channel subscription mentioned:
https://github.com/pop-os/cosmic-term/commit/4401a7dbef3e1579af9694c5f6c38c1b788a86e2#diff-42cb6807ad74b3e201c5a7ca98b911c5fa08380e942be6e4ac5807f8377f87fcR1599-R1615
Thus, I don't think the diagnosis here is correct. I will need an SSCCE to further investigate the issue.

        let runner = stream::once(f(sender)).map(|_| unreachable!());

That is the line with the map in channel.
But also, just add a eprintln! and print self.mapper ( or do a hash if you want to do it properly) to see it for your self.

        let runner = stream::once(f(sender)).map(|_| unreachable!());

That is the line with the map in channel.
But also, just add a eprintln! and print self.mapper ( or do a hash if you want to do it properly) to see it for your self.
I have also tested to remove the self.mapper.hash(state) line, and the issue went away.

There are many mapped subscriptions, so you will see multiple printed messages. That is perfectly normal.
We really need an SSCCE here.

For the channel subscription in cosmic term, I added debug lines to see the exact flow, and I calculated the hashes separately to for comparison. And for the channel subscription there the cash consists of first the hash of the channel is, but then also a map hash.
And I printed the hash of all the parts separately, and the hash of the mapper changed.
As I mentioned in the comment above, the issue goes away if you comment out the hashing of the mapper.
So, I'm quite confident that the issue is with the hashing of the mapper.

There are many mapped subscriptions, so you will see multiple printed messages. That is perfectly normal.
It's unclear what the issue is. We really need an SSCCE here.

Yes I saw these. But since I had calculated the hash for the id of the subscription, and printed all the parts of the hash calculation, I was able to identify and follow the hash calculation for the specific subscription.

During testing I used a panic that triggered the second time the channel subscription in cosmic term got invoked. So, it was quite easy to spot that things stopped to panic when the mapper hash was commented out.

Well, we certainly still need to figure out why there is a mapper involved in an unmapped subscription.
And I need an SSCCE to reproduce, debug, and fix the issue.

Furthermore, subscriptions are meant to be dropped when changes to the map function or the id happen. That is expected.

Furthermore, subscriptions are meant to be dropped when changes to the map function or the id happen. That is expected.

Yes, but in this case the hash of the map changes, even though there was no change to the actual subscription. The only change to the mapper function seems to be due to --release causing some optimization behavior, causing the mapper function pointer to change.
So, is it really stable to hash a closure like this?

Do you have the hardware to reproduce the issue? That can easily be tested by doing a release build of cosmic term master. If you have the hardware to reproduce this, you should see a warning at startup about the workaround used.

And I don't have a small and contained case for this, I just have used cosmic term to trigger this during my debugging.
If you need I can provide some more testing if needed.

I think the map we are talking about may be this one here:
https://github.com/pop-os/libcosmic/blob/ca1469a6b26eb7fbdc8e28d6135e86593e6a77fd/src/app/cosmic.rs#L171
I am not sure how optimizations could cause the function pointer super::Message::App to change between calls. Maybe the subscription calls are being inlined by the compiler in some circumstances.
Maybe an #[inline(never)] directive could fix it.

I think a better fix would be to replace the mapper instead of dropping the mapped subscription when it changes. I'll look into it.

@snaggen I've opened #2237 which suggests a relatively simple fix.


Bugfix/bower

This is a temporary fix - Polymer changed the paths, so the imports were not working. Made it local through bower

Just learning GitHub and Git in general... Ignore it


Document SQL fast paths

There are a number of conditions that trigger fast paths during execution that are faster than the normal operation. For example, if rows can be deleted without actually having to scan them, then cockroach will undergo an alternative 'fast delete'. (see canDeleteFast and fastDelete in delete.go)
Documenting these fast paths is important to users so they can know in what ways they can boost the performance of their queries.

CC @rmloveland this will be a late add (and priority for 2.1 in particular) due to work @emsal1863 has done to make a fast path for interleave deletes for customers like C and others. His work is close to merging but there are a few other fast paths that are useful to document at the same time

@emsal1863 do you have a link to an example of such a query or queries?  (for example in tests attached to a code PR?)

Looks like https://github.com/cockroachdb/cockroach/pull/28330

Interleaved fast path (https://github.com/cockroachdb/cockroach/pull/28330)
This fast path is triggered when issuing a DELETE statement on a table with interleaved tables that all have ON DELETE CASCADE clauses, have no secondary indices, and aren't foreign key-referenced by any other table. The path is not taken when there is any RETURNING claus in the delete query. When triggered, the delete operation will skip the expensive foreign key check operations, instead opting for using KV DelRange requests to delete all of the keys necessary.
The performance boost from using this fast path is several orders of magnitude, potentially going from second-scale to sub-nanosecond scale.

@rmloveland, what's left here after https://github.com/cockroachdb/docs/pull/3834?

@knz I recall that there are some other fast paths that you created diagrams for.  Are the other fast path operations in a state that we would want to document them at this time?

Yep, I say close it.


Problems with composer/installers

If I add a package like "athlan/custom-fields-permalink-plugin": "1.0.2" and then use in installer-paths the rewrite they are ignored and create a folder with a name like {$name|F}.
This happen because that package have a wordpress-plugin type in combo with composers/installers.
In LibraryInstaller.php on line 15 that name it's not available with all the problem that can create.

The problem is composer/installers don't support the dynamic paths system of this module so to use both the system I done a fork of the original that contain the system of this module https://github.com/WPBP/installers


iOS app build failure

The iOS app is having build failure and cannot find SignalDetectionAppiOS/ObjectDetection/Model/notquantizedmob.tflite as well as
SignalDetectionAppiOS/ObjectDetection/Model/notquantizedinc.tflite,
the coco zipped model also only has a detect.tflite file.
Are these the models that need to be trained again or are they missing?

Yes, the coco ones are the models that need to be trained with fine tuning on the data set. I can provide you those file that I gitignored if you want to give a try without train the models. You can find them here
And keep that in mind I made the gui only for iPhone X,XS and 11 Pro phones.
I've updated the readme with this link too.


1.3.x alignment?

Hi Bryan,
trying to compile it with Elixir 1.3.1, some warnings occurred (also from old version dependencies).
Are you going to align joken project to 1.3.X?
Thanks!

Hi Nicola,
I can take a look this weekend and update anything that is breaking and/or fix warnings

Merged in PR to resolve these warnings. Will be in the next version

Hi @bryanjos,
Is it possible to know the next release date of this new version please?

Hi @freiden - you can reference github in mix for the time being...
{:joken, git: "https://github.com/bryanjos/joken.git", ref: "15d3c18a1f3bfbe6fbed9d22192a36fe3114b2d1"}

I'll probably publish either tonight or tomorrow when I get a chance to update the changelog.

Published as 1.2.2

Ok thanks.


K2 compiler support

With K2 compiler coming it would be good to make this library work with it too. Right now I'm getting this error:
Class SomeParcelableClass is not abstract and does not implement abstract member describeContents

K2 compiler enabled via kotlin.experimental.tryK2=true in gradle.properties

Thanks for raising! This issue is being tracked in: https://youtrack.jetbrains.com/issue/KT-58892.

Thanks for speedy response. I was not aware of that ticket. Feel free to close this 🙇

Seems like KT-58892 has been postponed until Kotlin 2.0.

Unfortunately, KT-58892 has been closed as "As Designed", means we'll have to migrate to `kotlinx-serialization".

Oh interesting. So the whole Parcelable thing will be replaced with serialization then? Seems like a huge change. I guess this will also affect Decompose.

Yes. Basically, the following feature will not work in K2.
// commonMain

expect annotation class Parcelize
expect interface Parcelable

// androidMain

actual typealias Parcelize = kotlinx.parcelize.Parcelize
actual typealias Parcelable = android.os.Parcelable

The API will have to change, but fortunately it should look very similar to the current one. Plus, it will be fully multiplatform.

Ideally, we would need a stable Efficient Binary Format in kotlinx-serialization. Filed https://github.com/Kotlin/kotlinx.serialization/issues/2428.

Fixed in #115.

Released in v1.3.0-alpha01.

@arkivanov it seems Kotlin-parcelize was updated to allow using it from the common code, are there any plans for restoring the support for Parcelable now?
I'm asking just to decide if I should start working on the migration to @Serializable or if I should postpone it.

Indeed, Parcelize can now be used from the common code. However, I really like how kotlinx-serialization works and supports all platforms. There are no plans to go back to Parcelize for now.


JSON structure

I am loading a JSON file that has json structure described in it, but the Json structure is not appreciated when getting axes.
json_files= ['./test_MC1_all.json']
J = pcmdi_metrics.pcmdi.io.JSONs(json_files)
J.getAxisList()

In the sample JSON file, json_structure is given as below:
    "json_structure": [
        "type",
        "data",
        "metric",
        "item",
        "value or description"
    ],

But when run above code, below information is returned, which is completely different than above.
[   id: variable
    Length: 1
    First:  test
    Last:   test
    Python id:  0x111c0fd10,    id: model
    Length: 2
    First:  model
    Last:   obs
    Python id:  0x111c0f810,    id: reference
    Length: 21
    First:  ACCESS1-0
    Last:   Tropflux
    Python id:  0x111c0fcd0,    id: rip
    Length: 8
    First:  lhf
    Last:   thf
    Python id:  0x111c0f7d0,    id: region
    Length: 9
    First:  EnsoAlphaLhf
    Last:   EnsoSeasonality
    Python id:  0x111c0f990,    id: statistic
    Length: 2
    First:  metric_values
    Last:   raw_values
    Python id:  0x111c0fbd0,    id: season
    Length: 22
    First:  method_to_compute_diagnostic
    Last:   units
    Python id:  0x111c0f410]

@lee1043 it works for me in nightly, can you please check using nightly?
conda install -f -c conda-forge -c cdat -c pcmdi/label/nightly -c pcmdi pcmdi_metrics

@doutriaux1 thanks for following up this. J.getAxisList() returns below after installing pmp nightly, which I don't see any difference comparing to above, especially regarding the axis id. It does not match to the given json structure
[   id: variable
    Length: 1
    First:  test
    Last:   test
    Python id:  0x10c117750,    id: model
    Length: 2
    First:  model
    Last:   obs
    Python id:  0x10c117490,    id: reference
    Length: 21
    First:  ACCESS1-0
    Last:   Tropflux
    Python id:  0x10c1174d0,    id: rip
    Length: 8
    First:  lhf
    Last:   thf
    Python id:  0x104ea0890,    id: region
    Length: 9
    First:  EnsoAlphaLhf
    Last:   EnsoSeasonality
    Python id:  0x10c1177d0,    id: statistic
    Length: 2
    First:  metric_values
    Last:   raw_values
    Python id:  0x10c117510,    id: season
    Length: 22
    First:  method_to_compute_diagnostic
    Last:   units
    Python id:  0x10c117590]

@lee1043 @doutriaux1  Since we need this now to advance the ENSO project with our collaborators, is there an alternate json_structure we could use as a temporary kludge until this can get fixed?   I recall with the modes of variability we were able to do some reverse engineering... i.e., able to get the results even though they were not labeled properly.

@lee1043 are you using a nightly pmp? It works for me there's even a test with YOUR json file see:
https://github.com/PCMDI/pcmdi_metrics/pull/533

@lee1043 ping me when you get in, we'll fix this. I'm suspecting you have a pcmdi_metrics installed somewhere please paste the result of:
import pcmdi_metrics
print reload(pcmdi_metrics)

-bash-4.1$ source activate cdat8
(cdat8) -bash-4.1$ python
Python 2.7.14 | packaged by conda-forge | (default, Mar 30 2018, 18:16:04)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-15)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import pcmdi_metrics
>>> print reload(pcmdi_metrics)
<module 'pcmdi_metrics' from '/export_backup/lee1043/anaconda2/envs/cdat8/lib/python2.7/site-packages/pcmdi_metrics/__init__.pyc'>

@doutriaux1 hope this help to diagnose the problem. thanks!

issue solved with help from @doutriaux1 by replacing
J = pcmdi_metrics.pcmdi.io.JSONs(json_files)

to
J = pcmdi_metrics.io.base.JSONs(json_files)

@lee1043 thanks for confirming, indeed you should use the base class, I believe the one in pcmdi has been tweaked to reflect the structure produced by the compute_pcmdi_metrics script.

@doutriaux1 okay, thanks for confirming! 👍


Proxy???????

So I added an NGINX proxy, but the page just keeps reloading. I'm sure this is just because of a misconfiguration.
Here's the config for NGINX:
server {
    listen 80;
    listen [::]:80;

    server_name example.example.com;

    location ~ [^\/](.*) {
        proxy_pass http://localhost:4567;
    }
}

Here's pxls.conf
cors {
  // You should host your own proxy and link to it here.
  // Public cors proxies are unreliable and usually not intended for deployed use.
  // see https://github.com/Rob--W/cors-anywhere/issues/301 for why the default here will not work
  proxyBase: "https://example.example.com"
  // If your proxy takes the URL as an http parameter, set this to the name of the parameter
  proxyParam: ""
}

What am I doing wrong???????
And please, reply to my comments. Y'all just leave me hanging after I give you the info you want.

@zulujive,
Sorry that I might leave you hanging. I try and help out where I have expertise on a volunteer basis. If I don't have the expertise to answer a question I usually just set the label so that someone with the expertise can do so.
You need to configure both of those conf files to have this work. It looks like they are still mostly default settings?
Here are the first steps I would take, assuming that nginx is running on the same host as the app and you don't have a secondary SSL termination server:

Determine the port the app runs on. I assume its 4567 based on your line in nginx.conf.
Pick a server name you want to go to in the URL for the service. You have it set to example.example.com. Maybe call it something that makes more sense.
The location block regex looks unnecessary. Maybe set the location to /
I don't know what or why you have set for the value of ProxyBase in pxls.conf. We're running a local app so it should just pull up if you run it on http://localhost:port#

So you shouldn't even need a local proxy unless you want to change the app host name or set up SSL/TLS. The whole reason I thought you wanted to set this up in the first place was for SSL/TLS termination? You are only setting it up here as http.
So I would reset that cors proxyBase value to the default which I am assuming was just "" or commented out?
First make sure the application even loads via the value you are passing in for proxy_pass or you know there is an issue with the app server itself. Then once it works, focus on getting a proxy going.
If you are still interested in setting up SSL/TLS for this, mention so because you aren't even listening on 443 so I didn't recommend that change (yet)

@spark1313 Thanks for responding, I'm purposefully doing port 80 but I'm using cloudflare to have at least some encryption, but not end to end.
I think I figured out the issue, how should I handle the reverse proxy headers? I used this as my configuration in pxls.conf:
  // If you're using a reverse proxy, you need to set this up to identify the users' real IPs
  // If the connecting client's IP matches "server.proxy.localhosts", it will look up each header in the "headers" field
  // in sequence until it finds a non-local IP, and will use that IP throughout for rate limiting and storage
  proxy {
    // If you have a custom load balancer, reverse proxy, DDoS protector, etc, put its IP in here
    localhosts: ["<IP_ADDRESS>", "0:0:0:0:0:0:0:1"]
    headers: ["Host", "X-Real_IP"]

This is my (new) configuration for nginx:
server {
    listen 80;
    listen [::]:80;

    server_name example.example.com;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:4567;
    }
}

I'm sure it's just the headers are wrong or I need another one. I try the proxy, and it works for loading the page, but it seems like the browser just isn't able to establish a full connection with the server. I'm almost certain this is because Pxls isn't reading the remote IP through the proxy.

@zulujive,
Sure thing and nice progress.
In pxls.conf, were those the default values? It looks like the array set should be accepting a hostname and then an IP at a glance while you have IPv4 IP and IPv6 IP. If my hunch is correct, make those the hostname you are setting for your reverse proxy and the second value <IP_ADDRESS>.
nginx.conf looks better. However, note that right now you are passing the application into example.example.com
I'm assuming you don't own example.com and that your host server has internet connectivity. So unless you did some fancy iptables magic, your gonna have a bad time.
I would first choose a host name you want for your application. For example, zulupxls. I'm also assuming you want to do this local only and not pass in a subdomain from an actual domain name you own such as pxls.zulujive.com (assuming you owned zulujive.com). Whatever you choose for your application hostname, that is what you want to put after server_name in nxing.conf

I do own [mywebsite].com, I'm routing it through cloudflare as my DNS and have a record set up for [subdomain].[mywebsite].com for that extra security and just general freedom (registrar is Google, regretting it already).
I tried this config:
  // If you're using a reverse proxy, you need to set this up to identify the users' real IPs
  // If the connecting client's IP matches "server.proxy.localhosts", it will look up each header in the "headers" field
  // in sequence until it finds a non-local IP, and will use that IP throughout for rate limiting and storage
  proxy {
    // If you have a custom load balancer, reverse proxy, DDoS protector, etc, put its IP in here
    localhosts: ["<IP_ADDRESS>", "<IP_ADDRESS>:4567"]
    headers: ["Host", "X-Real_IP", "X-Forwarded-For", "X-Forwarded-Proto"]

I've had to block out the domain because it's a school thing and I want to keep the URL private because it does contain my full name (me a year ago buying that domain had no idea how I was going to use it). I've had it up and running publicly, but the lack of admin panel and stats page is not ideal so that's why I want to setup NGINX to handle the additional websites. I even got the Google login working and I'm working on keeping the email domains within my organization, but that's an entirely different beast by itself.
I'm going to try a couple more things tonight and talk to someone I know who's helped with developing the official pxls.space, but they're conveniently only awake at night.

Oh nice! Google is not too bad registrar imo, I use them too. Also straightforward to set up DDNS with them. Getting used to no admin panel or stats page is useful for real world application. Just set up an analytics application for your sites or pipe them into Google Analytics for a status page. There are some nifty dashboards out there too you could install, I'm working on implementing Dashy. Your admin panel is the command line and the VM hypervisor app or IaaS provider VM page. If you want to make easy navigation, just make a folder with symlinks to where you need to go.
Anyways, I understand the desire for anonymity, no problem.
For nginx.conf you will want to put:
server_name subdomain.domain.tld;
which correspond to your site
Also make sure that your VM allows for listening and traffic over port 80. Its commonly disabled by default since its a common attack vector.

@spark1313 Got it to work. I just used NGINX Proxy Manager to handle all of this, it works super well and adding SSL plus the reverse proxy takes about 30 seconds.


Agora_rtc_engine setRouteInCommunicationMode not Working

Hello Agora Team,
In my system I need to provide option for changing audio route between default Speaker, handset or bluetooth device. As per sdk documentation setRouteInCommunicationMode used for setting audio route. but it will not working for me.
Here is some sample code how I can change communication route. In my case onAudioRoutingChanged method not called means it indicate that no audio routing updated. As per SDK logs it will attempt to set with proper route but platform responds with default route 0. method '_setRouteInCommunicationMode_46f8ab7'
if (currentOutput.value == SupportedDeviceType.speaker) {
      _engine.setRouteInCommunicationMode(2).then((value) {
        currentOutput.value = SupportedDeviceType.headset;
      });
    } else if (currentOutput.value == SupportedDeviceType.headset) {
      _engine.setRouteInCommunicationMode(3).then((value) {
        currentOutput.value = SupportedDeviceType.speaker;
      });
    }

Anyone can help me?

@littleGnAl Please check SDK logs when I attempt to setting communication mode.
I/spdlog  (21226): [2024-04-09 15:40:05.097] [21226] [info] [iris_rtc_api_engine.cc:343] api name RtcEngine_setRouteInCommunicationMode_46f8ab7 params "{"route":2}"
I/spdlog  (21226): [2024-04-09 15:40:05.099] [21226] [info] [iris_rtc_api_engine.cc:407] api name RtcEngine_setRouteInCommunicationMode_46f8ab7 result 0 outdata {"result":0}
I/spdlog  (21226): [2024-04-09 15:40:15.054] [21226] [info] [iris_rtc_api_engine.cc:343] api name RtcEngine_setRouteInCommunicationMode_46f8ab7 params "{"route":3}"
I/spdlog  (21226): [2024-04-09 15:40:15.056] [21226] [info] [iris_rtc_api_engine.cc:407] api name RtcEngine_setRouteInCommunicationMode_46f8ab7 result 0 outdata {"result":0}
As per log it indicate that I am attempt to set route 2 or 3 but it take route 0 as default.

Which platform you are facing this issue on, can you fill in more details by following this template first? Thanks.
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/blob/main/.github/ISSUE_TEMPLATE/bug_report.yml

I am facing issues for both android & IOS


License of this project

under what license is this project distributed?
I see MIT for old areas repo, but no License file for this repo.

MIT too


Option and setting to auto delete old expired/revoked setup keys.

Is your feature request related to a problem? Please describe.
In the current versions, the expired/revoked setup keys are cluttering the interface, is it possible to remove them from the database, should be allowed based on the root/super user role. Other admin users should not be able to delete the history for the sake of audit trail
Describe the solution you'd like
Allow certain groups with specific roles to delete the expired keys and keep the interface de cluttered.
Also, allow the backend to automatically purge old revoked/expired keys.
Describe alternatives you've considered
Allow a setting to automatically delete expired keys after a certain period, this will auto clean the DB.
Additional context
As the number of devices grow this will add more expired keys that may not be required anymore after a certain period.

No one care about this request ?

+1 for the feature request to have a way to remove old setup keys.
I currently have accumulated > 5000 expired setup keys in one single account. This not only clutters the UI but has significant impact on the overall API performance. With >5000 setup keys a simple GET to /api/groups took > 1300 ms. After manually deleting the majority of the old keys I now have ~150ms. In my setup this is almost a 10x speed improvement in most API calls.
I was also able to reproduce this not only in my production system but also in a smaller test setup.
Removing old keys does help here, but probably this is a problem in the API implementation as all setup keys are always fetched in GetAccount: https://github.com/netbirdio/netbird/blob/b2379175fe856e24c71263b7f0dcfac77ab8a722/management/server/sql_store.go#L584
maybe also related to #2587