[homebridge-config-ui-x] Invalid token sent by admin: jwt expired

Hi,
In the log I get token and webSocket errors, about every 3-10 seconds
[homebridge-config-ui-x] Invalid token sent by admin: jwt expired
[homebridge-config-ui-x] Unauthorised WebSocket Connection Closed
Yesterday I have updated the UI to v3.8.8,  I do not know if it's related or if it's another plugin
Thanks for advice

Do you have a tab open somewhere with an expired session?

Oups maybe!!!
but because I have tried many things to understand why, I had the bad idea to uninstall the package to tried a clean install.
But now I get this error when I try to install the package:
Failed to install package error = [263]


TreeKDE bugfix, consistent data ordering, classifier dumping

Preparing some groundwork for running experiments on tree base KDE. There are three main changes here:

Added a new type of classifier, DumpClassifier.

It just wraps another classifier, forwards its output, but also dumps the data to a file. Dumping can be enabled or disabled in the standard pipeline with a conf flag. The dump consists of rows of the form datum #, isOutlier.

In order for datum # to make sense I made the data stream ordering immutable.

Previously the MAD and PercentileClassifier both modified the stream ordering by sorting it. I replaced some usages of sorting with the apache Percentile library but this changes a key behavior: you are now no longer guaranteed x% if x is y our percentile if too many of your points have the exact same value. I think this is better than arbitrarily picking some points as outliers.

Cleaned up some KDETree logic so that it works well on the energy data:

./bin/batch.sh conf/local_kde.yaml should identify about 6000 outliers.
This required changing to unnormalized densities to avoid underflow, and I also switched to working with log densities for interpretability. The leaf approximation did not work for the energy data so I disabled it while I work on a more refined version.

Generally LGTM, some comments inline to address / note.
Also, do you think it makes more sense in the long term to have a separate dumper pipeline?
I am thinking of having a bin/custom.sh and corresponding Dropwizard command to allow us to run custom, pre-defined, non-default pipelines. We could even make batch and streaming act as instances of this. We could even use reflection to load the specific pipeline by name...?

Totally agreed polluting the basic pipeline is bad, I'll move all the dumping logic to a new pipeline when we make it possible to run different pipelines from the command line easily.

LGMT, minor comments. Can you fix and then rebase commits into one?
For merging the PR, rebase master to your branch locally, then push to origin...
https://github.com/stanford-futuredata/macrobase/wiki/Development-Notes#git-workflow

This required changing to unnormalized densities to avoid underflow, and I also switched to working with log densities for interpretability. The leaf approximation did not work for the energy data so I disabled it while I work on a more refined version.

I didn't notice you disabling leaf approximation, if I missed it could you make that a flag? I'm currently using TreeKDE too, I'd really like not to see change in behavior.

If you're depending on a given behavior, unit tests should prevent check-ins that break the behavior.

Though it fixes very poor accuracy on my dataset, disabling the leaf approximation mainly makes TreeKDE slower which is understandably annoying for arsen. I talked with Arsen offline and I will fork the KDE classes for separate experiments in my next diff so I don't block him on his experiments and we can agree on a unified final KDE class some time down the road.


improvement: split composition of url into two variables

Bugfix that occured while working on mantra-benchmarks.

Consider disabling the linter here via # fmt: skip or # noqa. I think it's a valid argument to keep the URL in one (long) line.


Add abstraction for command path variables in all corresponding files

Issue EKS-A #142, if available:
Description of changes:
Changed command paths to PROJECT_PATH variable and corresponding files to use in EKS-A prow jobs.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm
/approve


fix pkgconfig sdl

I will convert it to draft for now. I will fix it later, thanks!

Please review it again, thank you!

Looks good, well done!


Custom workspaceFolder

When creating a new devcontainer with the elixir preset, vscli fails to open the project.
The project comes with the following devcontainer.json (comments modified for brevity):
{
	"name": "Elixir, Phoenix, Node.js & PostgresSQL (Community)",
	"dockerComposeFile": "docker-compose.yml",
	"service": "elixir",
	// Custom workspace folder
	"workspaceFolder": "/workspace",
	"customizations": {
		"vscode": {
			"extensions": [
				"jakebecker.elixir-ls"
			]
		}
	},
	"forwardPorts": [4000, 4001, 5432],
	"remoteUser": "vscode"
}

It defines a custom workspaceFolder.
vscli prints the following debug output:
D: Could not read workspace folder from config -> using default folder
It will the proceed with launching this devcontainer with the default workspace folder /workspaces/<vscode project name> which will not succeed.
Maybe there is something wrong with our parsing code? Is serde failing because of the comments?

So according to the schema the devcontainer.json file indeed can hold comments: https://github.com/devcontainers/spec/blob/main/schemas/devContainer.base.schema.json#L4
However, serde-rs/json does not support reading comments: https://github.com/serde-rs/json/issues/168
Since there are no actively maintained hjson crates and we really only want the comment feature from hjson, I think the proper way to go here is by stripping the comments before parsing. There is even a snippet, which does exactly that: https://github.com/serde-rs/json/issues/168#issuecomment-761831843


Link to docs is broken

Heya - thanks for the new release! I'll submit a package for review in Fedora soon. In the meantime, I was looking for the docs and noticed that the link to the docs returns a 404 error: http://karlch.github.io/vimiv/documentation/

Unfortunately I will have to release a follow-up in a few moments as I forgot about removing the dependency to "pillow" in setup.py...
Wow, this is weird, it looks like the complete homepage is rather broken, I have no idea why and I will have to look into this. Thanks for reporting.

Should be fixed, the problem was setting baseurl in the _config.yml of the website although Github Pages does this automatically. Funny that it worked before and suddenly broke. Big shoutout to Github support for finding this issue quickly :smiley:

Oh? Weird. I'm still getting the same 404 error somehow..

This is really weird, works without the trailing "/" in your link, I only tested it from the website itself, will have to check all references I use...

haha! Yeh! That's a weird one! I wouldn't have thought that a slash would make so much of a difference but then, I'm not exactly a web dev. If I come acorss any other links, I'll open PRs with changes :)
Thanks again :)

If you haven't found any more issues, I would close this.
As there were two bugfixes (fullscreen and temp-basedir) and the links in the man pages were wrong, I would release another follow-up sometime soon. Hopefully updating the Fedora package is not much work.

Yeh, it isn't much work. No worries. Closing this now.

vimiv is on release-monitoring.org already, so I'll get a new bug informing me of an updated version :)
https://release-monitoring.org/project/16321/


Task doesn't execute bash commands in background (with &)

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.71.0
OS Version: Ubuntu 20.04.3 LTS

Hi !
Here is my tasks.json :
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "browser",
            "type": "shell",
            "command": "folder/browser.sh",
            "options": {
                "cwd": "${workspaceFolder}"
            }
        }
    ]
}

and here is the content of the file browser.sh :
firefox

When I go to Terminal -> Run Task... the browser task works fine.
But if I write this in browser.sh instead :
firefox &

I don't manage to launch firefox anymore with my task.
And I can NOT remove the '&' because I use the same browser.sh as other developers of my team.
Why can't VScode tasks execute bash commands in background ?
Cheers!

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.84.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.84.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

I've just retry on 1.84.2 on MacOS 14.0. The problem is still here.

Ah ok I see what is actually happening. When I run :
firefox &

firefox is launched but stop running right away.
Indeed, when I run :
firefox &
sleep 5

firefox is launched and keep running for 5 seconds.
So my VScode task actually execute my bash command. I just don't see it because it stops immediately.


UPnP sensors not found depending on default gateway

Home Assistant release with the issue: 0.90.1

Last working Home Assistant release (if known): ??
Operating environment (Hass.io/Docker/Windows/etc.): hassio-vagrant on macOS

Component/platform: https://www.home-assistant.io/components/upnp/

Description of problem: I've noticed that the UPnP component seems to fail to detect sensors in some situations depending on the network configuration of the host.  In my case, I noticed that the vagrant box that HA was running inside of was set up with two default gateways, the first of which was an internal network (not the router).  For example, this is what ip route displayed:
vagrant@hassio:/etc/cloud$ ip route
default via <IP_ADDRESS> dev enp0s3 proto dhcp src <IP_ADDRESS> metric 100
default via <IP_ADDRESS> dev enp0s8 proto dhcp src <IP_ADDRESS> metric 100
<IP_ADDRESS>/24 dev enp0s3 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> dev enp0s3 proto dhcp scope link src <IP_ADDRESS> metric 100
<IP_ADDRESS>/16 dev docker0 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/24 dev enp0s9 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/23 dev hassio proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/24 dev enp0s8 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> dev enp0s8 proto dhcp scope link src <IP_ADDRESS> metric 100

With this configuration, if I attempted to set up the UPnP integration, it would not find any devices.  However, if I delete the default route for the internal network:
vagrant@hassio:/etc/cloud$ sudo ip route delete default via <IP_ADDRESS>
vagrant@hassio:/etc/cloud$ ip route
default via <IP_ADDRESS> dev enp0s8 proto dhcp src <IP_ADDRESS> metric 100
<IP_ADDRESS>/24 dev enp0s3 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> dev enp0s3 proto dhcp scope link src <IP_ADDRESS> metric 100
<IP_ADDRESS>/16 dev docker0 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/24 dev enp0s9 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/23 dev hassio proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/24 dev enp0s8 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> dev enp0s8 proto dhcp scope link src <IP_ADDRESS> metric 100

...and try to set up UPnP again, it finds my router and its relevant sensors.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
# Discover some devices automatically
discovery:

#upnp:
#  sensors: true

(Note: the above config entries remained the same both for the non-working before state and the working after state.)
Additional information:
I could see a couple of possible solutions to this issue: either the UPnP component should scan ALL default networks/gateways set up, or we should be able to specify the router IP and/or the network interface ID in the UPnP config.

Update: It appears that if I add the local_ip value to UPnP configuration, e.g.:
upnp:
  sensors: true
  local_ip: <IP_ADDRESS>

...UPnP appears to work even if there are multiple default gateways set.  This works fine for me (although the argument could be made that the less configuration, the better with UPnP).
However, the documentation does not make it clear that local_ip is useful for the sensor functionality...  My assumption was that it was strictly for configuring ports.

Maybe you can create a PR :)
It's right there on the top left corner of the UPnP documentation


Memory leak of diff preview editor

VSCode Version: checked on both 1.42.0 and 1.42.1-1581432938
OS Version: Ubuntu 18.04.3 LTS

Steps to Reproduce:

Open the repository with the reproducation
Follow the steps in README.md of that repo to behold the bug.

You should see the following proof:

 Demo gif image

Also, notice that text documents have no public identity (i.e. text editors don't have a unique identifier), so that I can't easily take apart different editors in the extension code. Anyway, this is yet another complaint, that  deserves a separate issue, or am I wrong, might I ask you to elaborate on this, guys? Pretty please!

Does this issue occur when all extensions are disabled?: Yes
References

Original use case issue that revealed the bug: https://github.com/rust-analyzer/rust-analyzer/issues/3008

Also, take a not on that weird main.rs.git non-existent file that is added to active editors each time you open the diff preview.
Also, notice that each time you open the diff preview you get onDidChangeVisibleTextEditors triggered two times: first with main.rs.git file added, then with main.rs file.

Also, take a not on that weird main.rs.git non-existent file that is added to active editors each time you open the diff preview.
Also, notice that each time you open the diff preview you get onDidChangeVisibleTextEditors triggered two times: first with main.rs.git file added, then with main.rs file.

Reading this again and I found it's not a bug but how we implement the diff editor. The diff editor consists of two normal editors, the left side one for the original content (before the change) and the right side one is the current file. That's why you will see two visible editors open event as technically they are two files.


[Compatibility] Trigger driver CREATE OR REPLACE command

When initing listeners by trigger driver, driver is going to execute CREATE OR REPLACE FUNCTION and CREATE OR REPLACE TRIGGER.
OR REPLACE command is supported by postgresql since 14.
Use DROP TRIGGER IF EXISTS and CREATE TRIGGER instead of CREATE OR REPLACE TRIGGER

Thank you for this PR, could you add a comment to explain why these 2 operations instead of the replace?


Skip deleted packages in analysis

Potential fix for comment here.

Do you think you'd be able to a test for this cas without too much trouble?

I've added a cram test for this case.


Python3.7 support?

Hi! A quick question:
Why have you dropped python3.7 support in this commit https://github.com/antonagestam/phantom-types/commit/c0817edd886237d288b277c93a89c04d286e54e1 ?
Looks like python3.7 was supported not a long time ago: https://github.com/antonagestam/phantom-types/commit/c2e6d37a0afa2a9dd531df016414a12688341006
From what I can see the only feature of python3.8 you are using is / arguments, which can be easily converted into regular arguments (which is even cleaner in my opinion). Anything else that I've missed?

@sobolevn I think it was related to ProtocolMeta, but I can't remember the specific details, it might be the / that you mentioned too.
More generally however, I felt that I wanted to prioritize being able to iterate fast and being able to focus on working out ergonomic APIs in the early stages. Perhaps naïvely, but I'm thinking the intersection between projects that has the ability to try out something like phantom-types and projects that aren't able to upgrade to Python 3.8+ isn't that common. Of course, that reasoning doesn't take libraries that want to use phantom-types as a dependency and needs to keep support for 3.7 into account. Is that your situation? Basically I think the choice was made mostly because I wanted to spend as much time as possible on exploring what Phantom types in Python could look like and didn't want to think about backwards compatibility.

From what I can see the only feature of python3.8 you are using is / arguments, which can be easily converted into regular arguments (which is even cleaner in my opinion).

Well, those aren't added for cleanliness, but for explicitness. I'm not saying this is a big issue but if Python 3.7 support is added it would then require a future major release to add these back as limiting to positional only is a breaking change. I do have a quite strong opinion that the code is better with them than without them. Also note that, having / in place means that the implementations are free to rename the value parameter and being guaranteed not to break call sites.
As you probably can tell, I wouldn't be very excited to bring back support for Python 3.7, but I'm not necessarily completely against it either.

@sobolevn If you think adding Python 3.7 compatibility means more usage, it's definitely on the table for discussion! 🙂

If you think adding Python 3.7 compatibility means more usage, it's definitely on the table for discussion!

Yes, I think that python3.7 is widely popular!
Here are some data: I am checking requests stats on https://pypistats.org/packages/requests

From here we can see that python3.7 is the most used Python right now.
I also don't struggle with 3.7 at all, from my experience it does not add any extra maintaince work. (well, there are some cases like ast.py changes or asyncio, etc, but it is not related to this project)

Of course, that reasoning doesn't take libraries that want to use phantom-types as a dependency and needs to keep support for 3.7 into account. Is that your situation?

Yes, this is exactly the case for me. I am trying to add phantom-types as a test dependency, but I cannot do that:
» poetry add --dev phantom-types
Using version ^0.9.1 for phantom-types

Updating dependencies
Resolving dependencies... (0.4s)
Resolving dependencies... (0.5s)
  SolverProblemError

  The current project's Python requirement (>=3.7,<4.0) is not compatible with some of the required packages Python requirement:
    - phantom-types requires Python >=3.8, so it will not be satisfied for Python >=3.7,<3.8

  Because no versions of phantom-types match >0.9.1,<0.10.0
   and phantom-types (0.9.1) requires Python >=3.8, phantom-types is forbidden.
  So, because classes depends on phantom-types (^0.9.1), version solving failed.

  at ~/.poetry/lib/poetry/puzzle/solver.py:241 in _solve
      237│             packages = result.packages
      238│         except OverrideNeeded as e:
      239│             return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
      240│         except SolveFailure as e:
    → 241│             raise SolverProblemError(e)
      242│
      243│         results = dict(
      244│             depth_first_search(
      245│                 PackageNode(self._package, packages), aggregate_package_nodes

  • Check your dependencies Python requirement: The Python requirement can be specified via the `python` or `markers` properties

    For phantom-types, a possible solution would be to set the `python` property to ">=3.8,<4.0"

    https://python-poetry.org/docs/dependency-specification/#python-restricted-dependencies,
    https://python-poetry.org/docs/dependency-specification/#using-environment-markers

I can get around this problem via some hacks here and there, but I don't want to, because I would have to put a large "warning" sign in docs (link) as well saying "only for python3.8+".
So, I would love to contribute python3.7 support, because it would help me a lot and I hope won't cause much (any) problems.

@sobolevn I'm not convinced those numbers are relevant, but I think your use-case makes sense, let's go for it! 🙂

TL;DR: I agree with OP, Python 3.7 is widely used and nice to support.
The long version: You underestimate the inertness of the enterprise 🙃 We're still on Python 3.6 and going to migrate on Python 3.7 soon, just because 3.6 is reaching EoL this December. Our motivation is that we deliver a medical device (hence the interest in phantom types and other means to improve reliability) that heavily relies on ML. So, every change in the product requires a long careful validation of correctness and performance, and changing the Python version can't be done without putting in a lot of effort.
Thank you for the project. I'm wondering if I can generate phantom types in deal under the hood from provided by the user contracts.

@orsinium A bunch of discussion here, nice! 😄
However, I wasn't questioning whether or not Python 3.7 is popular, I know it is!
What I'm questioning is whether the intersection of projects that can bring in an experimental tool like this library (the only production usage I know of is my own, and it's still quite limited), and the set of projects that can't upgrade Python, is a large set.
In my experience, upgrading from Python 3.7 to 3.8 and 3.9 has been extremely smooth with no problems whatsoever for me personally. Introducing phantom-types into a project is a huge change in comparison. So my reasoning is that most projects that have the ability to bring on phantom-types probably have the ability to upgrade Python. I appreciate your feedback and take it as a datapoint that the project you are working on actually is in that intersection 🙂

So, every change in the product requires a long careful validation of correctness and performance, and changing the Python version can't be done without putting in a lot of effort.

Why don't you upgrade to the most recent version while you're at it? 🙂 The same amount of work will give you 2 more years of support.

I'm wondering if I can generate phantom types in deal under the hood from provided by the user contracts.

It's my opinion that basically every implementation of "design by contract" in Python goes about it in insufficient ways as they don't interact with the type system. Taking the type system into account, everything becomes a question about "how do I express this as type?", or "how do I narrow this type?". Using a contracts library or even just assertions works for runtime, but there's no way for Python type checkers to work with that. As soon as you've found a way to narrow the type of function arguments properly, verifying those contracts at runtime is a job best left to tools like beartype and typeguard. A setup like that will give you identical runtime guarantees to using a contracts library, but will also allow static type checking.

@orsinium Taking the example from the deal readme, the problem is that the post condition isn't expressed as a type. Rewriting it with phantom-types and typeguard, we can do something like this:
from phantom.numeric import Natural
from typeguard import typechecked
from typing import cast

@typechecked
def count(items: List[str], item: str) -> Natural:
    return cast(Natural, items.count(item))

But if we always want to assert the post condition, we might as well skip typeguard and just parse into Natural:
from phantom.numeric import Natural

def count(items: List[str], item: str) -> Natural:
    return Natural.parse(items.count(item))

Why don't you upgrade to the most recent version while you're at it?

Sure, we will try our best to do the full leap, hard to say what we will face there.

It's my opinion that basically every implementation of "design by contract" in Python goes about it in insufficient ways as they don't interact with the type system

Deal is different, we go beyond runtime. We generate tests, have static checker for simple cases, and soon will have our own formal verifier. An integration with mypy is in question, though, it provides limited capabilities for what plugins can do.
I love liquid/phantom/refined/dependent types, and contracts are basically about the same more strict formal verification. The only difference is that contracts are easier for the user for the cost of much more complex type checker implementation. Like, "hey, compiler, there is my contract, IDK if it is bounds, subclass, or whatever, just figure it out".

@orsinium If I've understood what others have said about Eiffel correctly, which seems to be the holy grail of DbC, it actually infers type narrowing from pre- and post conditions. It sounds like that's what you want to do?
To me though, the real beauty of having phantom types is to use them very tightly together with a static type checker, because without any runtime burden the static type checker can tell me which of these are invalid:
def do_with_count(count: Natural):
    ...

do_with_count(1)  # incorrect because not *proven* to be Natural
do_with_count(count(...))  # correct because count() returns Natural

I love liquid/phantom/refined/dependent types, and contracts are basically about the same more strict formal verification.

Phrased differently: phantom types provide a way to express contracts in a language understood by static type checkers, as well as verifiable by runtime type checkers.

contracts are easier for the user

I sympathize with that, but trying to achieve the level of integration with the type system that a language like Eiffel has in Python seems like swimming upstream. I'd be very impressed by something like that though. With regards to program structure, the idea of reusing contracts is very compelling though and seams to be lost with a DbC approach. E.g., why do I need to specify over and over again what a Natural is?

I'm wondering if I can generate phantom types in deal under the hood from provided by the user contracts.

I don't understand why you would want to do this if not to use the generated types for static type checking?

In deal, do_with_count(1) is correct but do_with_count(-1) is not. This is the difference.
❯ cat tmp.py
import deal

def natural(x):
    return x > 0

@deal.pre(natural)
def do_with_count(count: int):
    ...

@deal.pure
def example():
    do_with_count(1)
    do_with_count(-1)

❯ python3.9 -m flake8 tmp.py
tmp.py:13:1: DEAL043 missed marker (io)
tmp.py:16:5: DEAL011 pre contract error (-1)

Anyway, I see your point, subclassing is also fun and helpful. The truth is always somewhere in the middle. I like type checking not less than contracts. And it's up to you if you want to use any of it.


Slow performance on yocto builds

Required information
Operating system:
Linux version 4.18.33-yocto-standard
Compiler version:
GCC 8.2.0
iceoryx version
<IP_ADDRESS>
Observed result or behaviour:
I ran Iceperf application in my yocto build. Performance of Iceoryx is very slow (~3ms) as compared to MQ or UDS (~0.2ms for max size data packets).

Payload Size [kB]
Average Latency [µs]

1
2e+03

2
1.9e+03

4
1.9e+03

8
1.9e+03

16
2e+03

Yocto image specs:
BB_VERSION           = "1.40.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "i586-poky-linux"
MACHINE              = "qemux86"
DISTRO               = "poky"
DISTRO_VERSION       = "2.6.4"
TUNE_FEATURES        = "m32 i586"
TARGET_FPU           = ""
Expected result or behaviour:
Performance of Iceoryx on my Ubuntu 18.04 LTS machine (Intel core i3 7th gen) is approximately 5 microseconds and I expected it to be atleast faster than MQ/UDS on Yocto
Does anyone know the cause and possible resolution for the same

Thanks for opening the issue @Indra5196
You are writing MACHINE = "qemux86". Does this mean it the yocto image and your setup was running virtualised inside qemu?

Yes

@Indra5196 this could have multiple reasons. First of all please be aware that we support 32 bit system but do not optimize for them!

When we acquire shared memory it is usually stored in the main memory but if the memory has insufficient size and a swap partition is enabled then the shared memory is allocated on your hard drive/sd card (wherever the swap partition is stored). Do you have swap enabled? And can you maybe share the output of df -h and cat /proc/meminfo once before your system is started and once roudi is started and the communication is ongoing.
Also see this here: https://www.halolinux.us/kernel-reference/ipc-shared-memory.html

Could you please provide the whole benchmark results. I am interested if the performance is also low for tiny data packages. If the performance drops at a certain size it would support the swapping theory.

How much main memory does the board have?

Here are the stats of df -h and cat/proc/meminfo of my QEMU instance BEFORE runninng RouDi:

Here are the stats of df -h and cat/proc/meminfo of my QEMU instance AFTER runninng RouDi:

MQ performance:

Payload Size [kB]
Average Latency [µs]

1
1.1e+02

2
1.1e+02

4
1.2e+02

8
1.7e+02

16
2.8e+02

32
4.8e+02

64
9.6e+02

128
1.5e+03

256
3.1e+03

UDS Performance:

Payload Size [kB]
Average Latency [µs]

1
2e+02

2
2e+02

4
2.1e+02

8
3.8e+02

16
6.8e+02

32
1.3e+03

64
2.9e+03

128
3.6e+03

256
5.9e+03

Iceoryx Performance:

Payload Size [kB]
Average Latency [µs]

1
3.7e+03

2
3.7e+03

4
3.7e+03

8
3.7e+03

16
3.7e+03

32
3.7e+03

64
3.7e+03

128
3.8e+03

256
3.7e+03

Due to memory limitations of QEMU instance and to save some time, I only tested up till 256KB packets for 1000 iterations
I am using one shared memory segment with 100 chunks of size 256KB for this test

Thanks for providing the numbers. I'd like to understand your use-case better. Is the QEMU environment your target system or you want to use it for development? Have you tried booting the Yocto imagine natively on your board and re-run iceperf?

@mossmaurice We want to run it on both QEMU and RaspberryPi 3

I got my old RaspberryPi 2 running with the current Raspberry Pi OS (January 11th 2021) and could not reproduce the numbers, meaning the iceoryx performance was much faster than the MQ and UDS performance.
@Indra5196 Could you please build everything first with
cmake -Bbuild -Hiceoryx_meta -DCMAKE_BUILD_TYPE=Release otherwise you enable the debug flags and then it is clear why it is so much slower.
Additionally, I thought there was somehow somewhere a bug that even when -DCMAKE_BUILD_TYPE=Release was enabled the examples where still being build with debug flags. Therefore, could you please checkout our current 0.9 release or master and perform the benchmarks again and -DCMAKE_BUILD_TYPE=Release.

If current master and -DCMAKE_BUILD_TYPE=Release solves your issue then the debug flags caused the problem.

But maybe it is a QEMU issue?! Could you please try the following:
Run the performance example on your target hardware (Raspberry Pi 3 as far as I understand) with a current Raspberry Pi OS and with your Yocto image.

If the numbers with Raspberry Pi OS and Yocto are good we know it is a QEMU issue.
If Raspberry Pi OS is faster then your Yocto image it is a clue that its a kernel configuration issue in your yocto image or maybe some sysctl configuration issues?!
If Yocto is much faster than Raspberry Pi OS we know it is a QEMU issue.
If it is as slow as in your QEMU environment we have to dig deeper.

Hi @elfenpiff,
Just FYI, I tried building a 64-bit Image in release mode (previously i was using debug mode). But I saw no performance improvement. Since you've already tested it on R-Pi, I hope its a QEMU only issue. Will soon test on R-Pi also

master debug PI(last updates installed):
./iceoryx_examples/iceperf/iceperf-laurel

******   MESSAGE QUEUE    ********
waiting for follower
Measurement for: 1 kB, 2 kB, 4 kB, 8 kB, 16 kB, 32 kB, 64 kB, 128 kB, 256 kB, 512 kB, 1024 kB, 2048 kB, 4096 kB,

#### Measurement Result ####
10000 round trips for each payload.

| Payload Size [kB] | Average Latency [µs] |
|------------------:|---------------------:|
|                 1 |                   36 |
|                 2 |                   37 |
|                 4 |                   45 |
|                 8 |                   60 |
|                16 |                   89 |
|                32 |              1.4e+02 |
|                64 |              2.5e+02 |
|               128 |              4.7e+02 |
|               256 |              9.1e+02 |
|               512 |              1.8e+03 |
|              1024 |              3.6e+03 |
|              2048 |              7.1e+03 |
|              4096 |              1.4e+04 |

Finished!

****** UNIX DOMAIN SOCKET ********
waiting for follower
Measurement for: 1 kB, 2 kB, 4 kB, 8 kB, 16 kB, 32 kB, 64 kB, 128 kB, 256 kB, 512 kB, 1024 kB, 2048 kB, 4096 kB,

#### Measurement Result ####
10000 round trips for each payload.

| Payload Size [kB] | Average Latency [µs] |
|------------------:|---------------------:|
|                 1 |                   60 |
|                 2 |                   60 |
|                 4 |                   64 |
|                 8 |                   83 |
|                16 |              1.2e+02 |
|                32 |              1.9e+02 |
|                64 |              3.5e+02 |
|               128 |              6.7e+02 |
|               256 |              1.3e+03 |
|               512 |              2.6e+03 |
|              1024 |              5.3e+03 |
|              2048 |                1e+04 |
|              4096 |              1.9e+04 |

Finished!
2021-02-13 20:13:31.236 [ Debug ]: Application registered management segment 0x72d51000 with size 64440704 to id 1
2021-02-13 20:13:31.241 [ Info  ]: Application registered payload segment 0x69f17000 with size 149134400 to id 2

******      ICEORYX       ********
Waiting for: subscription, subscriber [ success ]
Measurement for: 1 kB, 2021-02-13 20:13:31.324 [ Error ]: ICEORYX error! POSH__MEMPOOL_POSSIBLE_DOUBLE_FREE
iceperf-laurel: /home/pi/iceoryx/iceoryx_utils/source/error_handling/error_handling.cpp:56: static void iox::ErrorHandler::ReactOnErrorLevel(iox::ErrorLevel, const char*): Assertion `false' failed.
Aborted

debug PI tried again:
pi@raspberrypi:~/taps $ ./iceoryx_examples/iceperf/iceperf-hardy

******   MESSAGE QUEUE    ********
registering with the leader, if no leader this will crash with a message queue error now

****** UNIX DOMAIN SOCKET ********
registering with the leader, if no leader this will crash with a socket error now
2021-02-13 19:33:01.382 [ Debug ]: Application registered management segment 0x72dc6000 with size 64440704 to id 1
2021-02-13 19:33:01.387 [ Info  ]: Application registered payload segment 0x69f8c000 with size 149134400 to id 2

******      ICEORYX       ********
Waiting for: subscription, subscriber [ success ]
2021-02-13 19:33:01.467 [ Error ]: ICEORYX error! POSH__MEMPOOL_POSSIBLE_DOUBLE_FREE
iceperf-hardy: /home/pi/iceoryx/iceoryx_utils/source/error_handling/error_handling.cpp:56: static void iox::ErrorHandler::ReactOnErrorLevel(iox::ErrorLevel, const char*): Assertion `false' failed.
Aborted

PI info:
pi@raspberrypi:~/Downloads $ cat /etc/debian_version
10.8
pi@raspberrypi:~/Downloads $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@raspberrypi:~/Downloads $ uname -a
Linux raspberrypi 5.10.11-v7+ #1399 SMP Thu Jan 28 12:06:05 GMT 2021 armv7l GNU/Linux
pi@raspberrypi:~/Downloads $ cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 1
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 2
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 3
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : BCM2835
Revision        : a01041
Serial          : 00000000c13b61ba
Model           : Raspberry Pi 2 Model B Rev 1.1
pi@raspberrypi:~/Downloads $ gcc --version
gcc (Raspbian 8.3.0-6+rpi1) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

master debug cubox:
pi@cubox-i:~/taps$ ./iceoryx_examples/iceperf/iceperf-laurel

******   MESSAGE QUEUE    ********
waiting for follower
Measurement for: 1 kB, 2 kB, 4 kB, 8 kB, 16 kB, 32 kB, 64 kB, 128 kB, 256 kB, 512 kB, 1024 kB, 2048 kB, 4096 kB,

#### Measurement Result ####
10000 round trips for each payload.

| Payload Size [kB] | Average Latency [µs] |
|------------------:|---------------------:|
|                 1 |                   60 |
|                 2 |                   69 |
|                 4 |                   80 |
|                 8 |                1e+02 |
|                16 |              1.1e+02 |
|                32 |              1.9e+02 |
|                64 |              2.9e+02 |
|               128 |              5.4e+02 |
|               256 |                1e+03 |
|               512 |              2.1e+03 |
|              1024 |              4.1e+03 |
|              2048 |                8e+03 |
|              4096 |              1.6e+04 |

Finished!

****** UNIX DOMAIN SOCKET ********
waiting for follower
Measurement for: 1 kB, 2 kB, 4 kB, 8 kB, 16 kB, 32 kB, 64 kB, 128 kB, 256 kB, 512 kB, 1024 kB, 2048 kB, 4096 kB,

#### Measurement Result ####
10000 round trips for each payload.

| Payload Size [kB] | Average Latency [µs] |
|------------------:|---------------------:|
|                 1 |                   95 |
|                 2 |              1.1e+02 |
|                 4 |              1.1e+02 |
|                 8 |              1.8e+02 |
|                16 |              2.9e+02 |
|                32 |              4.1e+02 |
|                64 |              7.6e+02 |
|               128 |              1.5e+03 |
|               256 |              2.9e+03 |
|               512 |              5.8e+03 |
|              1024 |              1.1e+04 |
|              2048 |              2.3e+04 |
|              4096 |              4.5e+04 |

Finished!
2021-02-14 01:15:01.089 [ Debug ]: Application registered management segment 0xffffffffb2e99000 with size 64440704 to id 1
2021-02-14 01:15:01.093 [ Info  ]: Application registered payload segment 0xffffffffaa05f000 with size 149134400 to id 2

******      ICEORYX       ********
Waiting for: subscription, subscriber [ success ]
Measurement for: 1 kB, 2 kB, 4 kB, 8 kB, 16 kB, 32 kB, 64 kB, 128 kB, 256 kB, 512 kB, 1024 kB, 2048 kB, 4096 kB,
Waiting for: unsubscribe  [ finished ]

#### Measurement Result ####
10000 round trips for each payload.

| Payload Size [kB] | Average Latency [µs] |
|------------------:|---------------------:|
|                 1 |                   45 |
|                 2 |                   43 |
|                 4 |                   43 |
|                 8 |                   43 |
|                16 |                   44 |
|                32 |                   43 |
|                64 |                   43 |
|               128 |                   43 |
|               256 |                   43 |
|               512 |                   43 |
|              1024 |                   43 |
|              2048 |                   43 |
|              4096 |                   43 |

Finished!

******   ICEORYX C API    ********
Waiting for: subscription, subscriber [ success ]
Measurement for: 1 kB, 2 kB, 4 kB, 8 kB, 16 kB, 32 kB, 64 kB, 128 kB, 256 kB, 512 kB, 1024 kB, 2048 kB, 4096 kB,
Waiting for: unsubscribe  [ finished ]

#### Measurement Result ####
10000 round trips for each payload.

| Payload Size [kB] | Average Latency [µs] |
|------------------:|---------------------:|
|                 1 |                   37 |
|                 2 |                   37 |
|                 4 |                   37 |
|                 8 |                   37 |
|                16 |                   37 |
|                32 |                   37 |
|                64 |                   37 |
|               128 |                   37 |
|               256 |                   37 |
|               512 |                   37 |
|              1024 |                   37 |
|              2048 |                   37 |
|              4096 |                   37 |

Finished!

cubox info:
pi@cubox-i:~$ cat /etc/debian_version
bullseye/sid
pi@cubox-i:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Armbian 21.02.1 Focal"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
pi@cubox-i:~$ uname -a
Linux cubox-i 5.10.12-imx6 #21.02.1 SMP Wed Feb 3 21:02:35 CET 2021 armv7l armv7l armv7l GNU/Linux
pi@cubox-i:~$ cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 10 (v7l)
BogoMIPS        : 7.54
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 10

processor       : 1
model name      : ARMv7 Processor rev 10 (v7l)
BogoMIPS        : 7.54
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 10

processor       : 2
model name      : ARMv7 Processor rev 10 (v7l)
BogoMIPS        : 7.54
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 10

processor       : 3
model name      : ARMv7 Processor rev 10 (v7l)
BogoMIPS        : 7.54
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 10

Hardware        : Freescale i.MX6 Quad/DualLite (Device Tree)
Revision        : 0000
Serial          :<PHONE_NUMBER>000000
pi@cubox-i:~$ arch
armv7l
pi@cubox-i:~$ file /sbin/init
/sbin/init: symbolic link to /lib/systemd/systemd
pi@cubox-i:~$ file /lib/systemd/systemd
/lib/systemd/systemd: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=fb6445f8823882b0fa14a41dcad258ebf7b7555f, for GNU/Linux 3.2.0, stripped
pi@cubox-i:~$ lscpu
Architecture:        armv7l
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
Vendor ID:           ARM
Model:               10
Model name:          Cortex-A9
Stepping:            r2p10
CPU max MHz:         996.0000
CPU min MHz:         396.0000
BogoMIPS:            7.54
Flags:               half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
pi@cubox-i:~$ gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

@pabloEnzes2 @Indra5196
It seems that the iceperf benchmark is not running on Raspberry Pi OS January 11th 2021 (32-bit). I verified this with an Raspberry Pi 3b+. To track this issue I created #562  but at the moment we do not support 32-bit systems and it looks like we will not support them in the near future.
But nevertheless the iceoryx examples are running and the code compiles with a lot of warnings.
But if one of you would like to face the challenge to get this completely running again we would support you in the endeavor.

@elfenpiff What happened to:

First of all please be aware that we support 32 bit system but do not optimize for them!

@elfenpiff What happened to:

First of all please be aware that we support 32 bit system but do not optimize for them!

@pabloEnzes2 I was mistaken and a colleague corrected me. I am sorry for the confusion! One year ago I implemented the 32-bit support and at the moment it seems like its working. If you encounter any problems please create an issue and we try to support you but we will not actively work on it those issues.

@Indra5196 I've documented the 64-bit requirement and added a warning on 32-bit systems. Have you tried to run iceperf inside a 64-bit QEMU image? Feel free to re-open this issue.


How to include POST parameters ?

Can someone tell how to include post parameters through requestify ?

I was able to include post parameters by changing the data type field.


Godot as an Editor is not ready yet for complex projects

Godot version:
Godot Engine 3.1.1
OS/device including version:
Windows 7 x64bit
8 GB Ram
GTX 980
Issue description:
Godot as an Editor not as an Engine is not ready yet for big / complex Games / Projects
as you can see in this video :
https://youtu.be/gWLli5CBhCQ
Here is a small level for our Game , almost everything in this level is a scripted scene , Trees are scenes , Rocks are scenes , Floor are scenes ... etc , this will give is the full control of everything for example making the Trees Destroyable or Light poles turn the lights off if they get Hit .. etc

1- Running the game when i'm in 3D mode in the Editor in the same level that contain many instances you will see that the FPS is about 160 FPS
2- Running the game when i'm in Script mode in the Editor in the same level that contain many instances you will see that the FPS is about 193 FPS
3- Running the game when i create an Empty scene that contain nothing and switch to Script mode in the Editor you will see that the FPS is about 243 FPS
and Godot Engine will get Laggy after running the game several times.. make the FPS Drop more and more ... in this case i need to Export the game , Close Godot and Run the Game to get the Full FPS

and when Opening many scripts in Godot , Close Godot and Run it again , Godot Editor will get messy like this

and the way i fix it is by going to :
C:\Users\UserName\AppData\Roaming\Godot\projects and search for the project folder and Delete it ..

Can you next time when Editor will break all layouts put here files "editor_layout.cfg" and "project_metadata.cfg"?
They should be in /Appdata/Roaming/Godot/projects/%ProjectName%/

I see several issue here, please split your problem into several dedicated issues, they are unrelated.

What kind of issue name is this?
Issue name should be a resume of the problem, not a rant.

@qarmin yes here is the files :
Uploading Godot.zip…

@qarmin yes here is the files
Godot.zip
@Ranoller you should see the issue not the name

@Ranoller you should see the issue not the name

It´s not mandatory, sorry....


Policy parameter file

[Enter feedback here]
Hello,
Could you please provide a "complete" policy parameter file for this example? DefaultValue does not work in our scenario and I can't find any complete parameter file JSON which we pass to New-AzPolicyAssignment -PolicyParameter
Thanks
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b20cf302-7cda-88a1-03b9-77cd7cabc8ea
Version Independent ID: cc43e3ab-c384-a5cc-214f-493707c4c36a
Content: Quickstart: New policy assignment with templates - Azure Policy
Content Source: articles/governance/policy/assign-policy-template.md
Service: azure-policy
GitHub Login: @DCtheGeek
Microsoft Alias: dacoulte

@zaalion Thanks for the question!  This is an Azure Resource Manager (ARM) template example, so you wouldn't use the JSON here with New-AzPolicyAssignment.  If you meant to do it with PowerShell, see the Azure PowerShell quickstart and Example 4 - Policy assignment at resource group level with policy parameter file in our reference Docs that has the example JSON I think you are looking for.  If you did want to do this with an ARM template, see Parameters in ARM templates as how it passes the parameter to the ARM template from the this particular page is different than with Azure PowerShell.  Please let me know if that's what you were looking for.
#assign:DCtheGeek
#label:"triaged"
#label:"assigned-to-author"
#label:"product-question"
#label:"in-progress"

@zaalion There's been no response on this for almost 3 weeks and I believe I answered your original question, so I'm going to close this issue.  If you still have questions on this, please feel free to continue the discussion here or even move it to Microsoft Q&A. If you have a new Docs issue, please create a new issue.  Thanks!
#please-close


fix: update popover behavior for android

Please read and mark the following check list before creating a pull request:

[x] I read and followed the CONTRIBUTING.md guide.
[x] I read and followed the New Feature Checklist guide.

Short description of what this resolves:
Fix for #1297

Closes #1293

Closes #1293


[WIP] Add sensu::check config property and remove sensu_check_config

= Overview of work

[x] Add config property to sensu::check
[x] Ensure JSON maps are written in sort-order from the top level rather
than the nested level of checks.mycheck.properties
[ ] Test arbitrary config already exists, does the default of {} prune it?  It shouldn't be removed by default, it should be preserved if config is undef.
[ ] Test arbitrary config already exists, does specifying config => { 'foo' => 'bar' } remove it?
[ ] Test arbitrary config nested under "checks" at the same level as "mycheck".  Is it removed when config => { 'foo' => 'bar' }?  It should be.
[ ] Test the behavior when the config file doesn't exist at all.
[ ] Remove sensu_check_config related files.

= Add config property to sensu::check and sensu_check
Without this patch there is no way to specify arbitrary configuration at the top
level of the sensu check configuration object.  This patch addresses the problem
by adding a new property to sensu::check and sensu_check named config.  This
property accepts a Hash map and merges all other configuration on top of this
base starting point.
This patch also adds a new mix-in method, PuppetX::Sensu::SortHash#sort_hash.
This method returns a hash sorted recursively, meaning all nested hash values
are sorted in the same manner.  This method is intended for use in the #flush
method of all Sensu providers.
= Remove sensu_check_config
TBD
Resolves #764

Closing to pursue sensu_write_json() instead of adding a config propety as per comment in #764.


How to generate Daynamic registartion chart (on x axis date and on y Axis it is Registrations count) data from URL like from service How to generate it)

Don't quite get it. Can you elaborate?

Hi,
The issue queue is to be used for reporting defects and problems with C3.js, in addition to feature requests and ideas.
It is not a catch-all support forum.
For general support enquiries, please use the Google Group at https://groups.google.com/forum/#!forum/c3js.
All questions involving the interplay between C3.js and any other library (such as AngularJS) should be posted there first!
Thank you!


Handling keyboard events when panel view controller has a scrollview inside

Description
Hello 👋🏼
I don't think this is technically a bug with the library. But I'm only experiencing it in a panel so here goes. I created a sample project to demonstrate the issue I'm having.
In my project, there is a view controller which is embedded inside a tab bar controller. This view controller has a button which shows the panel view controller.

This panel view controller is a simple view controller with a scroll view inside. The scrollview has a stack view within it. All the other subviews (green and orange views) are laid out via the stack view.
The orange view has a textfield at the bottom of it. I have written the below code to handle the keyboard events to move the textfield above the keyboard and back down.
@objc private func didReceiveKeyboardNotification(_ notification: Notification) {
    if
        let userInfo = notification.userInfo,
        let endValue = userInfo[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue,
        let duration = userInfo[UIResponder.keyboardAnimationDurationUserInfoKey] as? Double,
        let curve = userInfo[UIResponder.keyboardAnimationCurveUserInfoKey] as? UInt {

        // Transform the keyboard's frame into our view's coordinate system
        let endRect = view.convert(endValue.cgRectValue, from: view.window)

        // Find out how much the keyboard overlaps the scroll view
        // We can do this because our scroll view's frame is already in our view's coordinate system
        let keyboardOverlap = scrollView.frame.maxY - endRect.origin.y

        // Set the scroll view's content inset to avoid the keyboard
        // Don't forget the scroll indicator too!
        scrollView.contentInset.bottom = keyboardOverlap
        scrollView.verticalScrollIndicatorInsets.bottom = keyboardOverlap

        UIView.animate(withDuration: duration, delay: 0, options: UIView.AnimationOptions(rawValue: curve), animations: {
            self.view.layoutIfNeeded()
        }, completion: nil)
    }
}

All good up to here.
Expected behavior
After the keyboard is dismissed, the view should move back down to the initial position.
Actual behavior
The scrollview does not reset to the original position. The textfield ends up lower than the initial position.

Steps to reproduce
I have uploaded my sample project here.
Code example that reproduces the issue
How do you display panel(s)?

[x] Add as child view controllers
[ ] Present modally

How many panels do you displays?

[x] 1
[ ] 2+

Environment
Library version
1.7.4
Installation method

[x] CocoaPods
[ ] Carthage
[ ] Swift Package Manager

iOS version(s)
13.4
Xcode version
11.4

Have the same issue. Fix please.

@Isuru-Nanayakkara
I'm sorry for waiting for you. I confirmed this is caused by FloatingPanelController.contentInsetAdjustmentBehavior which is set to .always (the default).
I also confirmed the following patch fixes this issue.
diff --git a/PanelWithScroll/ViewController.swift b/PanelWithScroll/ViewController.swift
index 26e301c..c7b31b3 100644
--- a/PanelWithScroll/ViewController.swift
+++ b/PanelWithScroll/ViewController.swift
@@ -22,9 +22,15 @@ class ViewController: UIViewController {
         floatingPanelController.track(scrollView: panelViewController?.scrollView)
         floatingPanelController.surfaceView.cornerRadius = 20
         floatingPanelController.surfaceView.grabberHandle.isHidden = true
+        floatingPanelController.contentInsetAdjustmentBehavior = .never
         floatingPanelController.addPanel(toParent: self)
     }
-
+
+    override func viewWillLayoutSubviews() {
+        super.viewWillLayoutSubviews()
+        floatingPanelController.scrollView?.contentInset = view.safeAreaInsets
+    }
+
     @IBAction func didTapShowButton(_ sender: UIButton) {
         floatingPanelController.move(to: .half, animated: true)
     }

I'm going to continue to investigate why FloatingPanelController.contentInsetAdjustmentBehavior doesn't working well.

Hi, this issue actually is not related to the FloatingPanelController.contentInsetAdjustmentBehavior.. It's just needed to add floatingPanelController.scrollView?.contentInset = view.safeAreaInsets in viewWillLayoutSubviews because the tracking scroll view's content inset is updated in didReceiveKeyboardNotification(_:).
        scrollView.contentInset.bottom = keyboardOverlap
        scrollView.verticalScrollIndicatorInsets.bottom = keyboardOverlap


Big problem with Big Sur

Describe the bug
Hello! I'm trying to get Big Sur working on my desktop but I'm getting hopeless.
I changed to Opencore from Clover with clean install (since a new Clover failed to boot).
I tried to install right into Big Sur with no luck. Then I succesfully installed Catalina with dualboot, everything worked. So yesterday I tried to update to Big Sur from Catalina and the same problems started. Now I can only boot into MacOS BigSur Installer or Windows. The installer fails at a point (it says "there was a problem while preparing the installer"). I tried to boot from my Catalina pendrive, it said something like "you cant boot from Catalina since you have a newer OS installed".
So I created Big Sur pendrive with your updated EFI (I updated kexts and set "-v" arg). Tried to install it to my main drive.. At around 13 mins left it stops. The log I got from installer says nothing (I will update my post with it).
I setup SMBIOS correctly (found a serial that said Purchase data not validated, when I check it now it says it not valid),
I repaired my drive in OSRecovery. BIOS setting all the same, I am on the lastest BIOS. Windows 8/10 featues was set to Other but I set it as you did. One other thing I did late night was that I updated Opencore with debug files (BOOTx64.efi, EFI/OC/Bootstrap/Bootstrap.efi, EFI/OC/Drivers/OpenRuntime.efi, EFI/OC/OpenCore.efi) it worked but then it loaded into OS installer screen (so I think no boot or kernel issue)
I am getting really hopeless.
Do you have any thought?
Thank you!
OpenCore Logs
Full logs downloadable from here: https://www.dropbox.com/s/wxnbrl2qjzo70g6/Logs.zip?dl=0

disk0s2 is not convertable to APFS: the volume was not formatted as Mac  Os extended (journaled)
disk2s1 already has an install user and must be erased.
Will need to use bundled in license doc
Error Code = 1004 "error at preparion the installer", code=2 CRC mismatch got:0x82f6337b, expected:0xe3f031b8

Screenshots
Problem when I boot from inside "Install MacOS BigSur" (My only boot option besides Windows)
("There was a problem while preparing the installer")
Also in this section in the upper menu there's no option for opening install log.

The only drive I can restart to after installation failed:

Hardware Specifications (please complete the following information):

CPU: Intel Core i9 9900 - BIOS: turned on iGPU as you mentioned Sidecar issue
GPU: RX580
Motherboard: Designaire Z390
RAM: Kingston HyperX 32GB
SSD: Samsung Evo 970 M.2 NVMe (NVMe - 500GB) - TRIM WAS ENABLED IN CATALINA (could it be a problem?)
BT/Wi-Fi: WTXUP Broadcom BCM94360CS2 Bluetooth/Wi-Fi Card (Fenvi T919 with BCM94360CD is on it's way)

Additional context
I will update this post with more info.
I really appreciate any help you can provide!
Things I will try
I have your SSDT-PMC but what if I set LegacyEnable and LegacyOverwrite true...

AppleDebug will be set to true, Target to 67

Are you able to install the OS to another hard drive, just to see if it works?
I'm really at a loss here but it seems like macOS might not like something about your drive configuration. I also have a 970 EVO as my primary, but I don't remember if I enabled trim or not, so it's probably whatever the default is.
What I would recommend as your first steps.
Attempt 1:

Unplug every drive except for your NVMe
Boot into the Catalina or Big Sur Installer USB
Go to Disk Utility and Erase your NVMe and re-format it with APFS - GUID
Try to re-install Catalina on that drive

If that fails, then to see if it's a weird drive config issue:

Unplug everything except for a 860 EVO (or whatever non-NVMe SSD you have)
Then retry the same thing we did in "Attempt 1", but with this drive instead

Go into the Catalina or Big Sur Installer USB
Go to Disk Utility and Erase your NVMe and re-format it with APFS - GUID
Try to re-install Catalina on that drive

Thank you for your answer!
So I almost tried everything.

Formatted the 970 EVO into exFAT, logged into Windows, with Samsung Magician turned off TRIM, ran some diagnostic test, everything passed with no errors.
Pluged out Windows's NVMe (also Intel wireless card), reformatted 970 EVO (first to HFS then APF) seemed like it works then now at 12 mins it rebooted and after that started an installation process which failed after some time with the same error I had earlier.
I read somewhere that XFX RX580 could cause kernel panic at installation. So I unplugged it. Booted from Big Sur pendrive but I could'nt get until installation UI, it rebooted everytime at white Apple logo after around 30 secs.

The only things I have to change in your config are Serial,MLB,UUID. I generate them with GenSMbios. I also you a Mac to write the Big Sur image on the drive.
Did you updated your setup to 0.6.4?
What else could go wrong?
Thank you !

Wow, that's a lot of stuff. The only thing that's different about your setup is the GPU. It's possible you need a different slide value in the boot args. Have you looked up what you need to do for the RX580 with OC?
Also, I have not yet update to OC 0.6.4

Just to be clear, you did try the following, right?

Unplug every disk except the NVMe you want to install macOS on and the USB installer
Boot into USB installer
Erase the NVMe and re-format as APFS using Disk Utility on the USB installer
Try to install to that NVMe

Just to be clear, you did try the following, right?

Unplug every disk except the NVMe you want to install macOS on and the USB installer
Boot into USB installer
Erase the NVMe and re-format as APFS using Disk Utility on the USB installer
Try to install to that NVMe

Yes, I did in
2. Pluged out Windows's NVMe (also Intel wireless card), reformatted 970 EVO (first to HFS then APF) seemed like it works then now at 12 mins it rebooted and after that started an installation process which failed after some time with the same error I had earlier.
I will try to set stuff for RX580 as it mentioned in this repo:
https://github.com/teimor/OpenCore_GA-H97-D3H_RX580

Any lock with the RX580 stuff @tamasharasztosi ?

Nah, no luck, same error message. Even with this guy's EFI (with updated kexts):
https://www.tonymacx86.com/threads/guide-macos-big-sur-11-0-1-on-z390-aorus-elite-board.306236/
Seems like the error happens when the installer tried to unzip a file in SharedSupport.dmg.
Efi_updater was the to "No".

Have you tried making new install USBs as well, maybe one with Catalina and one with Big Sur?

Yes, I reformatted the USB stick almost everytime I load a new EFI on it. Tried with an other pendrive same on luck. With the Kinston HyperX Savage 64GB pendrive I was able to install opencore Catalina.
I checked I succesfully unzipped on mac the
/Volumes/Install macOS Big Sur/Install macOS Big Sur.app/Contents/SharedSupport/SharedSupport.dmg/com_apple_MobileAsset_MacSoftwareUpdate/6c799f422b6d995ccc7f3fb669fe3246fd9f61aa.zip
what seems to fails during the installation with texts like "Failed to supply bytes" and "Finished extracting: failed"

The only post I found something similar is this:
https://www.tonymacx86.com/threads/success-gigabyte-designare-z390-thunderbolt-3-i7-9700k-amd-rx-580.267551/page-2442
However I don't really understand the way... how does it differs from what I did with install it to an other NVMe drive.
What do you think?

I'm really not sure. How about installing Catalina again, putting my EFI on there and updating to Big Sur through that?

Will do that!

Make sure to copy the EFI onto the Catalina drive's EFI partition and leave every other drive (including the USB) out when updating to Big Sur. I can't think of a reason that it shouldn't work in that case.
All I know is that I have yet to attempt an install straight to Big Sur myself.

Ok, Catalina up and running, didnt sign in to iCloud, booted from your latest EFI, no pendrives connected, downloading Big Sur...
Fingers crossed..

Best of luck!
When you say

... booted from your latest EFI ...

I assume you mean you moved it to the macOS SSD's EFI partition?

Yes I did! Same error!

That doesn't make any damn sense man...
I'm sorry, I really have no idea what to do now

It's a long shot, but maybe try disabled integrated GPU while installing? I don't know...

You could also try this (CMF + F for "Used my 2020 MacBook Pro to install Big Sur onto an external"), but you wouldn't be able to use your NVMe drive (unless there's an adapter you can buy)

Checked, actually it was on Disable iGPU, now I tried with Enabled, same error.
Going to try this workaround:
- Clone the NVMe SSD to a SATA SSD mounted in an external USB 3.0 enclosure.
- Connect the SATA SSD to another Hackintosh (or Mac).
Boot the Hack using its own EFI folder.
From the OpenCore Picker, boot the external SATA SSD.
Login to macOS and perform in-place update through System Preferences --> Software Update.
Shutdown the system and remove the SATA SSD.

- Connect the SATA SSD to the original Hackintosh.
Boot the Hack and select the SATA SSD.
Login to macOS.
Make sure everything is okay.
Then clone the SATA SSD to the internal NVMe SSD.

Yes, that's a good idea. You have, like, the exact same hardware as me except for that GPU, and I have no idea how that would cause this error. You have the 9900k processor right?

Yes, I do. Also visible in "About this Mac", everything is correct.

Even if you just remove the serial numbers from the config.plist it should work

Checked, actually it was on Disable iGPU, now I tried with Enabled, same error.
Going to try this workaround:
- Clone the NVMe SSD to a SATA SSD mounted in an external USB 3.0 enclosure.
- Connect the SATA SSD to another Hackintosh (or Mac).
Boot the Hack using its own EFI folder.
From the OpenCore Picker, boot the external SATA SSD.
Login to macOS and perform in-place update through System Preferences --> Software Update.
Shutdown the system and remove the SATA SSD.

- Connect the SATA SSD to the original Hackintosh.
Boot the Hack and select the SATA SSD.
Login to macOS.
Make sure everything is okay.
Then clone the SATA SSD to the internal NVMe SSD.

So here comes my new misery.
Bought a 240GB SSD, cloned the drive.
The problem is that I have only a MacBook Air Mid 2012 what is not supported by Big Sur.
I should use an other EFI I guess since with your EFI the Apple logo oversized and the OS doesn't load in.

Yeah maybe you'll have better luck with another EFI? I'm really just not sure how it does not work since we have nearly identical hardware.

Closing for now, but feel free to re-open if I can help

Checked, actually it was on Disable iGPU, now I tried with Enabled, same error.
Going to try this workaround:
- Clone the NVMe SSD to a SATA SSD mounted in an external USB 3.0 enclosure.
- Connect the SATA SSD to another Hackintosh (or Mac).
Boot the Hack using its own EFI folder.
From the OpenCore Picker, boot the external SATA SSD.
Login to macOS and perform in-place update through System Preferences --> Software Update.
Shutdown the system and remove the SATA SSD.

- Connect the SATA SSD to the original Hackintosh.
Boot the Hack and select the SATA SSD.
Login to macOS.
Make sure everything is okay.
Then clone the SATA SSD to the internal NVMe SSD.

So here comes my new misery.
Bought a 240GB SSD, cloned the drive.
The problem is that I have only a MacBook Air Mid 2012 what is not supported by Big Sur.
I should use an other EFI I guess since with your EFI the Apple logo oversized and the OS doesn't load in.

So this method worked, however with 11.1 I had to update to 0.6.4.
Thank you for all your help!
Closed!

What, really?? That was all it took? Nuts! I just posted a 0.6.4 EFI the other day, but I didn't make it a release. If you clone the repo the EFI folder should be good to go.

Yes it works nice with some flows at at moment.

Seems like when it would go to sleep it just reboots.
Geekbench5 score dropped from Catalina's 9100 to 8200
DRM works, Netflix in Safari doesnt

I created a EFI with OCgenX with your EFI it doesnt boot. Also I put in USBWakeFixup.kext. Maybe thats the one causing the sleep issue.

So only for debugging reasons I post here my log when I try to boot with your EFI.

I'm using his EFI with moderate success (it reboots instead of sleep).
https://github.com/joostiphone/Z390-Hackintosh-Joost
Thank you for your help!


Hostname should be included on default value of mydestination

default['postfix']['main']['mydestination'] = [node['postfix']['main']['myhostname'], node['hostname'], 'localhost.localdomain', 'localhost'].compact

This makes delivery fails to node['postfix']['main']['myhostname'] and node['hostname'] if the receiver server is at another host.
This also makes override complicated as it can't be done on roles, just directly on node attributes.
I can make a pull request if you agree.

Can you please provide more detail on this? From the postfix docs it appears to be correct. If you do not want this box to handle mail for itself then you can redefine the attribute in your wrapper. override['postfix']['main']['mydestination'] = ['localhost.localdomain', 'localhost']
"The mydestination parameter specifies what domains this machine will deliver locally, instead of forwarding to another machine. The default is to receive mail for the machine itself."

@chasebolt think you may have accidentally included me on this but if I'm wrong then I'd need more info.
Anyways personally I don't see any problems with including it in default or overriding the attribute in recipe/role.

Sorry @bradenwright tabbed a bit early and didn't notice the incorrect mention!
@brauliobo


Triggerbotkey (Cant bind on mouse 5)

Hey i tested the cheat and I could not bind Triggerbot to mouse 5

this tbh

That's been mentioned in the discord quite a few times

sry did not joined dc yet

sekc will delete this because he likes men

This issue can now be closed, as it has been fixed in #82

ng)
Closed due to implemention in #82


Add converge's reference implementation to the README

http://converge.aster.is/0.6.0/platform/

It doesn't really seem to be maintained. Closing.


Allow custom http client

This is meant to resolve #38.
This change allows a user to override how the HttpClient that the library uses to be changed.
client.CustomSettings.BuildHttpClientsUsing(() => new HttpClient());
// or pass your own custom one ^^^

Every time a web request is made, it will call the provided function.  If none is provided, it will default to new HttpClient() like it always has used.

@darrencauthon Would you be willing to create a new release with this PR on nuget?  I like how you exposed the HttpClient.  Much cleaner than how I was originally thinking it would be done.  Thanks so much!

I'll get a new version pushed soon.


android secureTextEntry characters disappear immediately - no solution

I have seen a couple of other threads referencing this issue but no solutions. Can anyone assist?

Hello! Best to follow up in those threads, and to include a reproducible example. Thanks!


My bubbles move on hover

Hi !
I tried to make a bubble diagram. It works well, but when I overed a bubble, the halo is not centered and the bubble moves. And when the mouse is out the bubble is resuming  to the initial position.
When i inspect the code, the cx and cy property of the  changes.
How can I solve this?
I'm already trying to do disabled halo but the same thing (bubble move too, but without halo !!!).
Thanks for your help.

It happened to me either, after many tests, I found that loading highcharts-more from its own module is the problem.
I replaced
import HighchartsMore from 'highcharts-more'
by
import HighchartsMore from 'highcharts/highcharts-more.src.js'
...and it works.
Please update examples & doc to use internal "more",
Thanks

It works for me too.
I juste found that
import HighchartsMore from 'highcharts-release/highcharts-more';
HighchartsMore(ReactHighcharts.Highcharts);

works too.
Thks

Closing and there has been no activity in this issue for a while.
if this is still relevant, please feel free to reopen


fix: Blackbox testing failures for docker-compose-nexus-mongo-no-secty.yml

Fixes #2433
Upgrade to latest go-mod-bootstrap to fix issue with deserializing username
and password from consul configuration.  Add missing password to support-
notifications.
Signed-off-by: Bryon Nevis<EMAIL_ADDRESS>PR Checklist
Please check if your PR fulfills the following requirements:

[ ] The commit message follows our guidelines: https://wiki.edgexfoundry.org/display/FA/Contributor's+Guide
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

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

What is the current behavior?

Issue Number:
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[ ] No

Are there any specific instructions or things that should be known prior to reviewing?
Other information

Testing instructions
Check out edgex-go branch from this PR and build docker containers (make -k docker).  Not all containers -- config seed -- will build.
Check out blackbox tests.
Get the docker-compose file from https://raw.githubusercontent.com/bnevis-i/developer-scripts/issue-2433-validation/releases/nightly-build/compose-files/docker-compose-nexus-mongo-no-secty.yml
Edit sync.sh and comment out the wget.
Run the deploy-edgeX.sh script.
Connect to http://localhost:8500/ui/dc1/kv/edgex/core/1.0/edgex-support-notifications/Databases/Primary/
and set Username to notifications and set Password to password.
Above is to work around config-seed not building (see https://github.com/edgexfoundry/edgex-go/issues/2236)
Docker stop edgex-support-notifications
cd to bin folder and source env.sh and then run ./run.sh -all

Note that this PR config check are blocked on config-seed build failure above. :-(
Upon request I will remove config-seed from the makefile temporarily in order to make forward progress given that config-seed is going away.
cc: @ jinlinGuan  @cloudxxx8 @weichou1229 @michaelestrin

@AnthonyMBonafide

Codecov Report

Merging #2441 into master will not change coverage by %.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2441   +/-   ##
=======================================
  Coverage   37.79%   37.79%
=======================================
  Files         157      157
  Lines       12831    12831
=======================================
  Hits         4849     4849
  Misses       7720     7720
  Partials      262      262

Continue to review full report at Codecov.

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

Rebased in order to get successful check.


transaction not going through

i always get "You do not have enough in your wallet to send that much" when i try to send btc to a different address. i have try all the fee type . my balance is 0.10545915 and am sending 0.001343365.

when i console log the availableSat i get 0

For whatever reason the from address is not reading in the UTXOs properly. Make sure from is set on sendTransaction(options) in the options object and that is set to the correct address. The blockexplorer default UTXO endpoint seems to be working fine from what I can see.

ok i will check it

Am still getting the same error

I have try it with different address but i still get the error

i console.log(utxos) and find out that my confirmations is show a negative value

this is what i get when i console log utxos [ { txid: '388406b5eab4738f05267c75555607480bd8e815f7d54962c87525dc65823f2f',
vout: 0,
satoshis: 13164888,
confirmations: -4024 } ]

The issue is with the confirmations being -4024. They need to be 6 or more. Not even sure how a number like -4024 gets returned.  If so, try switching to a different provider: bitcoinTransaction.providers.utxo.mainnet.default = bitcoinTransaction.providers.utxo.mainnet. blockchain;
There is only one provider on testnet unfortunately, so it may be the case that mainnet is working fine, but the testnet provider is just broken.


【YogaKit】Fix two crashes. YogaKitSample upgrade to swift 5

if A view addSubviews(B), B view addSubviews(C),  sometimes we need A view addSubviews(C),   yoga  asset because of C had a owner,  when node insert a child node, i think we need to remove child node from owner first.
yoga maybe calculate a Nan value, but UIKit size can't accept a Nan Value, it will be cause unexpect crashes
YogaKitSample upgrade to swift 5

We are deprecating YogaKit as part of the Yoga 2.0 release. We are still going to release a new revision based on the current state of the repo, but won't be accepting new contributions, since we are going to be removing it from the repo after.

r

ok，Does version 2.0.0 mean that YogaKit is the final version？

Yes, 2.0 is the final version of YogaKit by Meta.


Clicking Tab submits form

https://codesandbox.io/s/rmwc-typescript-sandbox-hxc2b?fontsize=14&hidenavigation=1&theme=dark

What RMWC Version are you using [major.minor.patch]: 6.0.14

Name your build system [Webpack, Rollup...]: Parcel

Describe the bug with as much detail as possible: Clicking a tab submits the form.

What happened, and what was supposed to happen: It should just change tabs, not submit the form.

I just figured out the issue.  HTML buttons are type=submit buttons by default.  Tabs get rendered as <button> elements, but no type is set. Simply setting type=button on the <Tab> makes it work as expected.  I strongly suggest either building this in to Tab, or putting it in the docs.

That is very interesting and something we should likely report upstream as well. I'll take a look


Fix typo

Fixes a small typo: hourse -> hours
Pull Request Template for Home Assistant / Lovelace Card Repository
Overview
Please provide a brief description of the changes introduced in this pull request. Include any context that will help reviewers understand the motivation behind the changes, such as the problem you are trying to solve or the feature you are implementing.
Type of Change

[ ] Bugfix
[ ] New feature
[ ] Enhancement
[ ] Documentation update
[ ] Refactoring
[x] Other (please describe): Fix small typo

Checklist
Please ensure that you have completed the following tasks before submitting your pull request:

[ ] I have read the contributing guidelines for this project.
[ ] I have tested my changes against the dev branch (or another appropriate branch) and verified that they are working as expected.
[ ] I have updated the documentation (if applicable) to reflect my changes.
[ ] My changes adhere to the repository's code style guidelines.
[ ] My changes do not introduce any breaking changes or unexpected behaviors.

Related Issues / Pull Requests
Please include any related issues or pull requests that this change is associated with, and use the appropriate keywords (Closes, Fixes, Resolves) to automatically close the related issues when this pull request is merged.

Closes #issue_number
Fixes #issue_number
Resolves #issue_number

Additional Details
Please provide any additional information that you feel is relevant to this pull request, such as screenshots, code snippets, or examples.

The visual editor is no more but I'll merge this for consistency if someone picks it up.


Add engine option for NodeReplacer

NodeReplacer is a mechanism for clients of the promql library to inject
themselves into the processing of the node tree. This is especially
helpful for (1) introspecting queries and (2) mutating queries.
This is required for non-naive downsampling using promql. For my use-case in promxy this allows for me to be smarter about downsampling.
current state
In the current state the only interface to implement is the Querier interface which is supposed to fetch raw data. This means you end up pulling significantly more data off a box than necessary, but the results are always correct. The only way to "downsample" at this API layer is to change from a query to query_range which has a variety of naive downsampling problems -- but solves the scale problem.
new state, with this PR
With this new NodeReplacer API the creator of the engine can define a function which will be called with each node in the promql tree. This allows us to mutate the query however we like. To better describe this, lets use a concrete example.
Promql: sum(irate(http_request_duration_microseconds[1m]))
This (effectively) get parsed into an AggregateExpr -> Call -> VectorSelector. If we where going soely through the Querier API we'd have to return all datapoints for timeseries that match http_request_duration_microseconds. With the NodeReplacer API we can instead ask the datastore for irate(http_request_duration_microseconds[1m]) and sum those together. This is done by replacing the AggregateExpr.Expr with the fetched data results in a VectorSelector.
Ideally we'd add an implementation of Node which was "here's some data" (maybe we can call it a StaticSelector) which would make the debug printing work.

This is required for non-naive downsampling using promql.

As I've previously indicated, #2580 is what you're looking for.
When is comes to downsampling the thing evaluating the selectors (LTS) and the thing evaluating PromQL (Prometheus) are separate concerns, and the thing evaluating PromQL should have no knowledge that downsampling is going on.

I think the point here is being missed, the point here is this gives you a mechanism to rewrite the promql before execution. The primary driver for downsampling in a remote promql parser is that the marshaling is so slow (and the data on the wire can easily get large). With this change instead of asking for all the raw data we can ask the remote prometheus endpoint to calculate the data on their side, to be aggregated remotely. In the defined example this would mean that instead of every downstream having to send all datapoints in the window for all timeseries matching http_request_duration_microseconds they can simply return irate(http_request_duration_microseconds[1m]) which is itself a summarized value -- meaning that we don't need to downsample, we just allow the remote end to return summarized data that gets an equivalent result.

With this change instead of asking for all the raw data we can ask the remote prometheus endpoint to calculate the data on their side, to be aggregated remotely.

That's not how we plan to do for downsampling, and query push down is not on our current roadmap.
The standing consensus within the project is that #2580 is what we want to do, so I'd suggest directing your energies there.

This "query hints" approach means that you can only downsample, this approach allows us to not downsample, but reduce the bytes on the wire between the metrics store and the promql evaluator. From my example with this PR we could send something like irate(http_request_duration_microseconds[1m]) to the datastores and sum them together. This is not downsampling, this is just reducing the number of bytes on the wire.
Actual downsampling would still need these hints, so they would know to mutate their query downstream from http_request_duration_microseconds to some other query based on your proposed query hints.
I don't see these 2 as at odds with eachother I actually see them as complementary. With only query hints you can only downsample and with this PR you can decide to not downsample, and instead reduce bytes on the wire between storage and evaluator hosts.

I understand what you are proposing, however as has already been start query pushdown is not a feature that we plan on offering anytime soon (if ever). I'm afraid that I do not have the time to discuss the intricacies of downsampling, pushdown and other distributed query strategies further as such discussions do not help us implement what is planned.


error[E0433]: failed to resolve: maybe a missing crate core?

Hello!
Thank you for a good library, especially the docs are very good and helpful!
I am new to nix, so maybe i am doing something strange, but when i added a workspace-hack crate to my workspace (with cargo-hakari i started getting errors like this when building with crane:
error[E0433]: failed to resolve: maybe a missing crate `core`?
 --> /nix/store/isp0cn038bjjkscz1ms7cf4z80gbd5k0-dummy.rs:5:20
  |
5 | fn panic(_info: &::core::panic::PanicInfo<'_>) -> ! {
  |                    ^^^^ maybe a missing crate `core`?
  |
  = help: consider adding `extern crate core` to use the `core` crate

For more information about this error, try `rustc --explain E0433`.

I added extern crate core; to the dummy.rs template, it started working again: https://github.com/henriiik/crane/commit/5e855b76516730bf265843f4adc28cbb72944ed2
Would you be interested in upstreaming something like this? If so i can make a proper PR.

Hi @henriiik thanks for the report!
I do believe we have a test case for this but maybe the cfgs in our dummy.rs script are missing something? Or maybe cargo-hakari is tickling the gap in some way?
Either way I would accept a PR to add extern crate core in there, I can't think of a reason why including it would break anything else 😃

Thank you @ipetkov for implementing this! 🙏
I updated my project to use the latest master and it works! 🎉


Enable HTTP/2.0 support for the SDK.

1ds cpp sdk currently uses HTTP/1.1 to push events to the ingestion service. This issue is open to explore adding support for HTTP/2.0 in the library. HTTP/2.0 is in general more secure and performant as compared to HTTP/1.1.
1DS SDK uses different client libraries to add HTTP support depending on the platform it is built for. Had a quick validation on the HTTP/2.0 support for all the platforms

Android - The default HTTP library part of Android SDK doesn't have HTTP/2.0
support. This needs to be replaced with okHTTP to add support.
Apple - HTTP/2.0 is supported from iOS9 onwards.
WinINet - Fully supports HTTP/2.0
libcurl - has an external dependency on  Nghttp2  to add the support.

While there is no immediate plan to support this requirement, unless there is enough traction on this issue, and/or contributors are ready to add the support.

None of the collector URLs configured in 1DS SDK have HTTP/2.0 enabled.
But this can be tested in Japan west : onedscolprdjpw02.japanwest.cloudapp.azure.com

The support is added for:
Posix/curl:  https://github.com/microsoft/cpp_client_telemetry/pull/1068
Android (allow adding different android http implementation) : https://github.com/microsoft/cpp_client_telemetry/pull/1067 ( enable plugging the okhttp3 package)
Windows and iOS is already supported by Native HTTP Libraries
Closing this issue. Will create a separate issue to add okhttp support as external module or addition package.


Metadata caching

Codecov Report

Merging #345 into RTW_6.2.0 will increase coverage by 0.62%.
The diff coverage is 51.52%.

@@               Coverage Diff               @@
##             RTW_6.2.0     #345      +/-   ##
===============================================
+ Coverage        37.16%   37.79%   +0.62%
- Complexity        1669     1972     +303
===============================================
  Files              103      107       +4
  Lines            23662    28006    +4344
  Branches          3918     4846     +928
===============================================
+ Hits              8795    10585    +1790
- Misses           13278    15527    +2249
- Partials          1589     1894     +305

Flag
Coverage Δ
Complexity Δ

#JDBC41
37.59% <51.52%> (+0.56%)
1955 <138> (+295)
:arrow_up:

#JDBC42
37.69% <51.52%> (+0.6%)
1970 <138> (+303)
:arrow_up:

Impacted Files
Coverage Δ
Complexity Δ

...om/microsoft/sqlserver/jdbc/SQLServerResource.java
100% <ø> (ø)
4 <0> (ø)
:arrow_down:

...oft/sqlserver/jdbc/SQLServerParameterMetaData.java
31.25% <100%> (+5.6%)
38 <1> (+8)
:arrow_up:

.../com/microsoft/sqlserver/jdbc/SQLServerDriver.java
73.95% <100%> (+0.15%)
25 <0> (ø)
:arrow_down:

...om/microsoft/sqlserver/jdbc/ParsedSQLMetadata.java
100% <100%> (ø)
0 <0> (?)

.../microsoft/sqlserver/jdbc/SQLServerDataSource.java
47.41% <100%> (+0.87%)
66 <4> (+2)
:arrow_up:

...ooglecode/concurrentlinkedhashmap/LinkedDeque.java
31.53% <31.53%> (ø)
22 <22> (?)

...ncurrentlinkedhashmap/ConcurrentLinkedHashMap.java
42.2% <42.2%> (ø)
46 <46> (?)

...oft/sqlserver/jdbc/SQLServerPreparedStatement.java
36.93% <72.34%> (+3.3%)
120 <32> (+30)
:arrow_up:

.../microsoft/sqlserver/jdbc/SQLServerConnection.java
44.58% <76.54%> (+1.41%)
254 <32> (+2)
:arrow_up:

...l/googlecode/concurrentlinkedhashmap/Weighers.java
8.51% <8.51%> (ø)
1 <1> (?)

... and 43 more

Continue to review full report at Codecov.

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


Shell fix cr or lf as line delimiter

Shell macro SHELL_DEFINE no longer needs new_line character as an input parameter. Shell accepts both: \r and \n as a as line delimiter.
Fixes: #10207.

Codecov Report

Merging #10328 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #10328   +/-   ##
=======================================
  Coverage   53.09%   53.09%
=======================================
  Files         214      214
  Lines       26229    26229
  Branches     5652     5652
=======================================
  Hits        13925    13925
  Misses      10029    10029
  Partials     2275     2275

Continue to review full report at Codecov.

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

I tested it a bit with native_posix UART both on stdin and a dedicated TTY, and it works as expected.

I was testing new net-shell with frdm_k64f board, and the console output looks like this
Connecting to 2001:db8::2
                         Duration:      1.00 s
                                              Packet size:      256 bytes

The same application in qemu_x86 works as expected
Connecting to 2001:db8::2
Duration:	1.00 s
Packet size:	256 bytes

Any idea what is causing this?

@jukkar That's a NL without CR in a terminal which interprets the NL as literally only NL.
Meaning you may need to add an extra "\r" in your prints.

Meaning you may need to add an extra "\r" in your prints.

That would make no sense here, the output should be same in both cases.
Only difference here is the terminal, I am using screen /dev/ttyACM0 115200 for frdm_k64f console and the qemu_x86 is using whatever it is using.

Please add \r and test result. What you observe is clear sign you are missing it.
I geuss qemu terminal interprets \n as \r\n.

I think you are answering yourself the issue.
The thing is, one terminal (qemu case) takes a \n and (as most terminals) interprets is as a NL+CR (new line + return cursor to first column).
the other, sees the NL, and only jumps to the lower line, keeping the cursor in the same column.
What I was proposing is that you add a \r (CR) at the end of your prints. An extra CR should be harmless when the cursor is already at the beginning of the line.
Anyhow, I'm guessing the confusion stems from the fact that it is quite unatural to need to add a \r to your prints, just because the message will be sent thru a transport to a device that needs it in some cases, while the transport itself is not taking care of that for you (As it was in the old CONSOLE)

I am sure adding \r would do the trick. My point was that there should be no need to add that. The shell output should work just as expected with plain \n

@jukkar : But it literally works like that now.
Other way around would be to add a wrapping function shell_print that will look for \n and add \r each time.

Other way around would be to add a wrapping function shell_print

This issue is due to the UART transport ending in a raw terminal. I think that if the transport were for example a network connection, connected to a normal terminal, it would be wasteful to add extra characters unnecessarily.

It is quite bad to add extra \r character to the end of each string as that consumes memory. For example in net-shell, there are currently almost 500 strings ending at \n, so adding extra character to each of of them would occupy 500 bytes of memory, fortunately this is flash but it is still bad.
Because of this I propose that the shell code checks if the last character is \n and optionally it could also check if the previous character is \r, and if not, it could add \r itself to the output.

@jukkar : I will add one more API function with will not require extra \r.
I will try to do it today.

I will add one more API function with will not require extra \r.

Thanks, much appreciated!

@jukkar please check #10399


missing flask-apispec dependency

zemfrog version: 1.0.7
Python version: 3.x
Operating System: ubuntu

fixed in the master branch


fix(deps): update otel core experimental to ^0.35.0

Take changes from https://github.com/open-telemetry/opentelemetry-js-contrib/pull/1357 as base
Add a commit to adapt fastify tests to fit http instrumentation.
http instrumentation ends server spans later which results in exporting them later.
Adapt the tests to fit the new sequence. and additionally adapt fastify tests
Refs: https://github.com/open-telemetry/opentelemetry-js/pull/3407
fyi: @legendecas

seems the browser test job fails during compilation because of missing grpc types. Log output in CI is missing since a while for failures like this. Don't know why.
Had no time yet to look into details why node 14 unittest job works browser doesn't work. Likely some lerna hoisting issue.

FWIW I get a type error in our project as well due to missing grpc types when attempting to upgrade @opentelemetry/instrumentation-grpc to 0.35.

grpc instrumentation doesn't has @grpc/grpc-js as dependency but it seems the types are required.
Likely @grpc/grpc-js was present in node_modules in the past because of some other package depending on it.
This type leaks/deps are a constant problem...

Upstream is fixed - rebase this?

rebased and CI is green now (besides the usual, unrelated coverage failures).
@SimenB any more details why it fails in your setup? maybe you miss lib Dom in your build setup?

Yeah, this is a node module not for the browser. 1.9.0/0.35.1 does not have the same issue

I opened https://github.com/open-telemetry/opentelemetry-js/issues/3580

Looks good. The release will for sure fail because of so many packages (rate limiting) but i'll manually do it after my next meeting


Feature/highlight selected annotation block

Highlight selected annotation block using opacity to dim other areas in the table

@szeke here are some examples of the selected annotation block highlighted as we discussed last week, let me know what you think. If you approve we can merge it into the development branch.

@szeke here are some examples of the selected annotation block highlighted as we discussed last week, let me know what you think. If you approve we can merge it into the development branch.


Report form adjustments - required description

This makes the description field required for reports and adjusts the wording a little so that the information provided is a little more helpful :)

This doesn't force there to be a description in those cases, I'd like to see server-side logic enforcing this.

You're right, sorry. I'm a bit of a newbie to web dev and, come to think of it, I think I've seen this exact approach as a meme on r/programmerhumor. I'll figure it out :)

@StanczakDominik Does this need to be open?

Not at all, thanks for the reminder!


Implement optional CPU threads and VM runtime debugging options

The webpage below lists out some flags I want to further incorporate into hoster.
https://man.omnios.org/man5/bhyve_config
Here is the list of things:

threads option will help us fine-tune CPU performance where it's needed
privileges.debug, rfb.debug, viona.debug, xhci.debug on the other hand will help with better VM runtime process debugging where necessary

Implemented threads as:
"cpu_threads": 2

in the vm_config.json. Please keep in mind that you have to specify it as int not a string!

Looks like these debug messages are specific to OmniOS's bhyve implementation. Will close this ticket for now, but it can be re-opened in the future in case there is a need for it.