generate(ClientTokenRequest request) accepting "null" value for customerId

I am not entirely sure why this is the case but
ClientTokenRequest clientTokenRequest = new ClientTokenRequest()
        .customerId(null);

return BT.clientToken().generate(clientTokenRequest);

does create a server token. I did not test if I can use this token actually but shouldn't there be an error message saying that this user does not exist in my vault?

Hi Silentsnooc,
Thanks for reaching out, we are currently looking into this.

I was not able to reproduce your issue, is BT representing a BraintreeGateway?
When I tried calling generate(null), I received a NullPointerException and did not generate a server token due to the line below, which is within ClientTokenGateway.
Could you tell me what version of the client library you are using? I would also recommend reaching out to support at<EMAIL_ADDRESS>for further help.

@mtmarsh3 Hi!
I just saw that I modified the code wrong! I set the request object null in the code. I've edited my original post from
return BT.clientToken().generate(null);

to
ClientTokenRequest clientTokenRequest = new ClientTokenRequest()
        .customerId(null);

return BT.clientToken().generate(clientTokenRequest);

I've just been running this and I'm receiving a token that way. Is this intended? The version I'm using is
<dependency>
    <groupId>com.braintreepayments.gateway</groupId>
    <artifactId>braintree-java</artifactId>
    <version>2.65.0</version>
</dependency>

Thanks for the update. This is part of the intended behavior, as generating a ClientTokenRequest  without a specified customerId should operate the same in both the ClientTokenRequest() and ClientTokenRequest().customerId(null) constructors.

I am going to close this issue. If you have further questions, feel free to reopen this issue.

Since the nature of problem is the same I add it under this thread. Trying to generate token using Node.js, giving an arbitrary string as customerID that doesn't get captured in err and rather the response comes with an error message object like below. I'm using Braintree 2.15.0 & Node.js.
gateway.clientToken.generate({
customerId: "someRandomText"
}, function (err, response) {
//err is null and rather response is an object like below
});
Example response :
RESPONSE RECEIVED FROM FUNCTION: 200, {
"result": {
"token": {
"errors": {
"validationErrors": {},
"errorCollections": {
"clientToken": {
"validationErrors": {
"customerId": [
{
"attribute": "customer_id",
"code": "92804",
"message": "Customer specified by customer_id does not exist"
}
]
},
"errorCollections": {}
}
}
},
"params": "",
"message": "Customer specified by customer_id does not exist",
"success": false
}
}
}
Shouldn't that error be captured in err instead of response?

the err param is reserved for issues with the request itself. IE, if the Braintree Gateway was to return a 500 or if the underlying API route you were attempting to hit did not exist and returned a 404.
All 422 errors are returned as results where success is false, which is what is happening here. You're hitting the client token generation route, which does exist, but using a customer id that does not, which triggers a validation error.
Please contact our support team if you have additional questions about this: https://help.braintreepayments.com/


Fetching authenticated user's frontpage

Hi,
How can I fetch the authenticated user's frontpage?
Thanks,
Daniel

I believe you want to use the SubredditPaginator class.

@zglazer Ah okay, I just had a look at it and seems about right. Do you know how I would go about implementing it though?

Look at the website in the About section. He has a short 3 line example of how to do exactly that.

Snippet in question:
RedditClient reddit = new RedditClient(...)
for (Submission link : new SubredditPaginator(reddit).next()) {
    System.out.printf("%s↑ /r/%s - %s\n", link.getScore(), link.getSubreddit(), link.getTitle())
}

Please make sure to read the wiki page on Paginators. Was there anything specific about SubredditPaginator you wanted to know about?

Thank you, I ended up figuring it out.


Add Gale-Shapley algorithm in C#.

@leios some things before it can get merged:

syntax highlighting doesn't work for some reason...
should I display the output of the program and should I include Program.cs?
are @Gustorn and @Butt4cak3 happy with the mention?
also give some time, if people want to look at it :)

I'll leave some time for discussion on this one (and future pull requests). I have the bad habit of merging before really reviewing the code. That said, this one was thoroughly discussed on the discord channel... So it's probably alright.

Yeah, the last point in the list doesn't really apply here. Wanted to put it in anyway because we talked about it lately :)

I do prefer not gendering the algorithm - the C++ code's style of having "lead" and "follow" is something I much prefer. This code is oddly semi-gendered, and it seems reasonable to remove that gendering, imo.

@ubsan The code of the actual algorithm (in GaleShapleyAlgorithm.cs and Person.cs) is gender neutral, since genders make no sense there. There "lead" and "follow" are used.
In Program.cs I implemented a group of man and woman however. This is because it maybe provides more vividness for someone, who's new to the algorithm. Also @leios used "men" and "women" in the chapter and explanation of the algorithm.
If we decide on using a gender neutral way of describing the algorithm, I have no problem changing the Program.cs as well. So I guess that needs to be discussed (@leios ).

As far as the gendering is concerned... I don't care which one we go with, so long as we are consistent. I realize that the notation for this problem is a bit sexist; however, it's a story that helps people understand why the algorithm works the way it does.
The only implementation that does not use "men" and "women" is the c++ implementation. I suppose this conversation should have been brought up then, but I failed to do so.
One note to @julianschacherpp , I cannot seem to get the c++ syntax highlighting working either.

Well, we in my implementation it's also gender neutral for the actual algorithm. Also you can change one thing and switch the roles :)
var galeShapley = new GaleShapleyAlgorithm<Man, Woman>
{
    Follows = men,
    Leads = women
};

to
var galeShapley = new GaleShapleyAlgorithm<Man, Woman>
{
    Follows = women,
    Leads = men
};

@leios I used the same syntax to import C# as in other chapters, but it just doesn't work, which is quite weird...

@julianschacherpp Yeah, the same is true for c++. It seems like the syntax highlighting is working just fine for other chapters, but not for this one.

are @Gustorn and @Butt4cak3 happy with the mention?

I don't feel like I did enough to deserve a mention in this one, but go ahead if you want to. I'm fine with it.

Ok, since @Butt4cak3 showed me this awesome To-Do-List feature, here's what I plan to do regarding the improvements by @Gustorn

[ ] remove redundant if statement
[ ] simplify Gale-Shapley implementation

A poll regarding the output-file thing: https://strawpoll.com/r7dc379k

I'm fine with the mention although it's not really necessary :)

I simplified and de-convoluted my implementation now. I still want to look into some things however:

Whether or not I place the ProcessProposal method in the Person class.
If I change the Partner logic like @Gustorn suggested or not.

I implemented random input with the latest change thanks to gustorn's shuffle method. The output file has been removed as well. These changes are due to the outcome of the straw poll.

@Butt4cak3 discovered that highlight.js, which is used by the import-codeblock plugin, can't handle generics in C# code. So he is currently forking the repos and the problem may get resolved in the future. For now the PR is ready to get merged.

Alright, merging this one!


Relax validation on enableDNSHostnames

Fixes #138

I think there were a few test cases in jobset_controller_test.go that we should also remove.
https://github.com/kubernetes-sigs/jobset/blob/main/test/integration/controller/jobset_controller_test.go#L123

Am I crazy or does this test case not do what the test description says it does? If so, how did this happen...?

Github blame says it was me!  https://github.com/kubernetes-sigs/jobset/pull/20

Let me know how you want to handle this test case.

The jobset is created with a job in NonIndexed completion mode and EnableDNSHostnames=true, but it is configured to expected the jobset creation to succeed.

I don't think we ever do the validation in the jobset code as it is enforced for webhooks.  With this PR I think you'd want to remove this test case anyway as we now allow enableDNSHostnames for both.

Github blame says it was me! #20

No worries! I am un-merging the test cases in this PR.

/lgtm


Compile error on MSVC 2019

Compile error on MSVC 2019, the error output showed below.
>------ Build All started: Project: mlib, Configuration: x86-Debug ------
  [1/2] Building C object example\CMakeFiles\ex-bptree01.dir\ex-bptree01.c.obj
  FAILED: example/CMakeFiles/ex-bptree01.dir/ex-bptree01.c.obj
  "D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x86\cl.exe"  /nologo  -I..\..\..\example\. -I..\..\..\. /DWIN32 /D_WINDOWS /W3 /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /Foexample\CMakeFiles\ex-bptree01.dir\ex-bptree01.c.obj /Fdexample\CMakeFiles\ex-bptree01.dir\ /FS -c ..\..\..\example\ex-bptree01.c
E:\GitHub\mlib\m-core.h(1821): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1822): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1823): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1824): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1825): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1826): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1827): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1828): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1829): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1830): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1831): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1832): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(1833): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-core.h(2787): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\m-string.h(1058): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
E:\GitHub\mlib\example\ex-bptree01.c(6): warning C4003: not enough arguments for function-like macro invocation 'M_RETI_ARG76'
E:\GitHub\mlib\example\ex-bptree01.c(6): error C2061: syntax error: identifier 'M_IFI_'
E:\GitHub\mlib\example\ex-bptree01.c(6): error C2059: syntax error: ';'
E:\GitHub\mlib\example\ex-bptree01.c(6): error C2143: syntax error: missing ')' before ','
E:\GitHub\mlib\example\ex-bptree01.c(12): warning C4003: not enough arguments for function-like macro invocation 'M_RETI_ARG76'
E:\GitHub\mlib\example\ex-bptree01.c(45): warning C4003: not enough arguments for function-like macro invocation 'M_RETI_ARG76'
E:\GitHub\mlib\example\ex-bptree01.c(49): warning C4003: not enough arguments for function-like macro invocation 'M_RETI_ARG76'
E:\GitHub\mlib\example\ex-bptree01.c(49): warning C4003: not enough arguments for function-like macro invocation 'M_BOOL'
E:\GitHub\mlib\example\ex-bptree01.c(55): warning C4003: not enough arguments for function-like macro invocation 'M_RETI_ARG76'
E:\GitHub\mlib\example\ex-bptree01.c(55): warning C4003: not enough arguments for function-like macro invocation 'M_BOOL'
  ninja: build stopped: subcommand failed.

What does this error mean? Does mlib support MSVC?. I confirmed that the same code can build success on CLANG-VC and GCC.

git revision 0279dcc3c
WIN10, MSVC 2019, cmake 3.16.2

M*LIB supports the latest version of MSVC 2019 since a bug was present in the compiler. See https://github.com/P-p-H-d/mlib/runs/1455942458?check_suite_focus=true for a build status on MSVC2019.
However, you need the following options to build:

/Zc:preprocessor is mandatory to have a compliant preprocessor
/Zc:__cplusplus is needed to report the real value of __cplusplus, so that M*LIB uses the C++ atomic, and not its emulation.
Inform M*LIB to use Annex K by defining /D STDC_WANT_LIB_EXT1

The version 14.27.29110 of MSVC 2019 seems ok.

Yeah, it work.
Thanks.


test(templatelibrary): Update test to accomodate new helloworld template release

Bumps the helloworld template version in the templateLibrary getTemplateIndex tests. This previously failed becuase of a patch release to the helloworld template.
Related Issues

Pull Request #402 fails because of this issue

Coverage remained the same at 95.502% when pulling 19479f2546ea68745e8336d1ec521267255e4e44 on mttrbrts:mr-fix-templatelibrary-index-tests into e169d4add59369f89673958510b41aa3e6d178c4 on accordproject:master.


add helper method to serialize the filter to byte vector.

Some folks probably want to store the bytes in kv. Having version number in bytes assert the compactibility. If you feel that is off, I'm happy to remove that.


FLPATH-1078 and FLPATH-1063

introduced optional installation of ArgoCD plugin
introduced optional creation of ArgoCD project
introduced optional creation of Tekton pipeline

Why OpenShift Pipeline should be installed in a specific namespace?
If it is all-namespaces operator, wouldn't it be fine?
The namespace is needed to create the AppProject under the right namespace (you can have multiple ArgoCD instances in different NS, and the configuration-project, repo, applications- must be in the same NS)

Shouldn't the namespace be other than sonataflow-infra but orchestrator?
Actually there's no value pointing to orchestrator NS, and orchestrator.namespace defaults to sonataflow-infra.
I'd track an issue to review these settings and separate them


wg_engine: fix test build scripts and ambiguous declarations for macos

Fixed conflict with ThorVG and Cocoa framework (required for webgpu on macos): Point is ambiguous type in a case of macos usage.

Conflics appears only in case of examples + test + wg compilation:
meson setup builddir -Dexamples=true -Dtests=true -Dengines="wg"
Tests must be compiled before examples, where Cocoa are included
Also fixed try issue by adding compilations flags to support exceptions in a case of macos usage

Issue https://github.com/thorvg/thorvg/issues/2938
Alternatively we can do not change order of the compilation, but change variable declarations in testShape.cpp from Point to tvg::Point, that also removes ambiguous, f.e.
const tvg::Point* pts2;
but not
const Point* pts2;

this variant keeps the original root build script, but provide independent compile flags for examples and tests


column formatting in custom SQL is off

Seeing where some findings screw up the columns after issuing a custom SQL query.

Could you elaborate or add screenshots?

Thanks, and thanks for developing Seccubus.

That seems to  be a bug, no propper escaping

Is the same as #190

Fixed in PR #411


NodePort BPF is not accessible via ExternalIP on GKE and EKS

Bug report

General Information

Cilium version (run cilium version) - 1.8.2
Kernel version (run uname -a) 5.4
kubeproxyReplacement=strict

How to reproduce the issue

Create a GKE cluster with Cilium
Create a Deployment.

cat <<EOF | k apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
EOF

Create a NodePort Service

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
EOF

Check public IPs of your Nodes and NodePort of nginx-service

kubectl get nodes -o wide |  awk {'print $1" " $2 " " $7'} | column -t

NAME                                        STATUS  EXTERNAL-IP
gke-cilium-test-default-pool-ef74a9bc-5lb2  Ready   a.b.c.d
gke-cilium-test-default-pool-ef74a9bc-llzm  Ready   w.x.y.z

kubectl get svc nginx-service -owide
NAME            TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE   SELECTOR
nginx-service   NodePort   <IP_ADDRESS>   <none>        80:31474/TCP   14s   app=nginx

Create a test pod that runs on Node with public IP w.x.y.z and try to reach NodePort service using public IPs of the node.

kubectl run -l app=foo --image=alpine --restart=Never --rm -i -t test
# wget -qO- a.b.c.d:31474
Welcome to nginx!
# wget -qO- w.x.y.z:31474
Connection timeout

I used Hubble to observe the packets of test pod. It looks like Cilium performed Service resolution for one public IP but not for the other.
 If yes, then what's the reason for this? If this is a bug, please help me and I can work on fixing this quickly.

Not sure if this is same as #14728

Not sure if this is same as #14728

Could you attach cilium sysdump? Also, does sending a HTTP request from the client pod to both of the nginx pods work if you use pod IPs instead?

Could you attach cilium sysdump? Also, does sending a HTTP request from the client pod to both of the nginx pods work if you use pod IPs instead?

sending a HTTP request from the client pod to both of the nginx pods work if you use pod IPs instead

yes
kubectl run -l app=foo --image=alpine --restart=Never -i -t test
# wget -q0- <IP_ADDRESS>
Welcome to nginx!
# wget -q0- <IP_ADDRESS>
Welcome to nginx!

Could you attach cilium sysdump?
This is GKE. So anetd ds is same as cilium.
cilium.zip
I was able to reproduce this on AWS cluster too.

sending a HTTP request from the client pod to both of the nginx pods work if you use pod IPs instead

yes
kubectl run -l app=foo --image=alpine --restart=Never -i -t test
# wget -q0- <IP_ADDRESS>
Welcome to nginx!
# wget -q0- <IP_ADDRESS>
Welcome to nginx!

Could you attach cilium sysdump?
This is GKE. So anetd ds is same as cilium.
cilium.zip
I was able to reproduce this on AWS cluster too.

Following things work correctly.

DNS name works

kubectl run -l app=foo --image=alpine --restart=Never -i -t test
# wget -qO- nginx-service
Welcome to nginx!

Internal IP of Nodes work.

# wget -qO- <IP_ADDRESS>:31474
Welcome to nginx!
# wget -qO- <IP_ADDRESS>:31474
Welcome to nginx!

One of the public IP of Node works.

# wget -qO- a.b.c.d:31474
Welcome to nginx!
# wget -qO- w.x.y.z:31474
Connection timeout

Following things work correctly.

DNS name works

kubectl run -l app=foo --image=alpine --restart=Never -i -t test
# wget -qO- nginx-service
Welcome to nginx!

Internal IP of Nodes work.

# wget -qO- <IP_ADDRESS>:31474
Welcome to nginx!
# wget -qO- <IP_ADDRESS>:31474
Welcome to nginx!

One of the public IP of Node works.

# wget -qO- a.b.c.d:31474
Welcome to nginx!
# wget -qO- w.x.y.z:31474
Connection timeout

Thanks for the info!

I was able to reproduce this on AWS cluster too.

Do nodes on AWS have both k8s InternalIP and ExternalIP?

Thanks for the info!

I was able to reproduce this on AWS cluster too.

Do nodes on AWS have both k8s InternalIP and ExternalIP?

Do nodes on AWS have both k8s InternalIP and ExternalIP?

yes. The same behaviour. It doesn't work for only one ExternalIP.

Do nodes on AWS have both k8s InternalIP and ExternalIP?

yes. The same behaviour. It doesn't work for only one ExternalIP.

The problem is that cilium-agent prefers InternalIP over ExternalIP in your case, as the latter is not assigned to any of network devices on the node. The IP addr is used to provision the service in the BPF map. Currently, you have:

<IP_ADDRESS>:NodePort - accessible from inside a cluster via any IP addr assigned to a client pod node or a loopback addr.
InternalIP:NodePort - accessible from outside.

The fix would be to extend https://github.com/cilium/cilium/blob/master/pkg/datapath/linux/node_addressing.go#L90 by adding ExternalIP/InternalIP addr to the list if it already doesn't exist.
Are you willing to work on the fix?

The problem is that cilium-agent prefers InternalIP over ExternalIP in your case, as the latter is not assigned to any of network devices on the node. The IP addr is used to provision the service in the BPF map. Currently, you have:

<IP_ADDRESS>:NodePort - accessible from inside a cluster via any IP addr assigned to a client pod node or a loopback addr.
InternalIP:NodePort - accessible from outside.

The fix would be to extend https://github.com/cilium/cilium/blob/master/pkg/datapath/linux/node_addressing.go#L90 by adding ExternalIP/InternalIP addr to the list if it already doesn't exist.
Are you willing to work on the fix?

Hi Martynas, Thanks for investigating. I can work on the fix.

The problem is that cilium-agent prefers InternalIP over ExternalIP in your case, as the latter is not assigned to any of network devices on the node.

I didn't understand this. As we see in Hubble output (comment#1), service resolution happens for ExternalIP a.b.c.d but not w.x.y.z.

Hi Martynas, Thanks for investigating. I can work on the fix.

The problem is that cilium-agent prefers InternalIP over ExternalIP in your case, as the latter is not assigned to any of network devices on the node.

I didn't understand this. As we see in Hubble output (comment#1), service resolution happens for ExternalIP a.b.c.d but not w.x.y.z.

I didn't understand this. As we see in Hubble output (comment#1), service resolution happens for ExternalIP a.b.c.d but not w.x.y.z.

That's a good question. For some reasons ExternalIP of the remote node was in the local IPCache (cilium-bpf-lb-list.md) with the remote node identity, while ExternalIP of the local node was not there. So, for a.b.c.d (which is remote node's ExternalIP) this https://github.com/cilium/cilium/blob/master/bpf/bpf_sock.c#L249 made the service translation to happen. So the real fix is to add local ExternalIP entry into the IPCache, so that the bpf_sock translation can take place.

I didn't understand this. As we see in Hubble output (comment#1), service resolution happens for ExternalIP a.b.c.d but not w.x.y.z.

That's a good question. For some reasons ExternalIP of the remote node was in the local IPCache (cilium-bpf-lb-list.md) with the remote node identity, while ExternalIP of the local node was not there. So, for a.b.c.d (which is remote node's ExternalIP) this https://github.com/cilium/cilium/blob/master/bpf/bpf_sock.c#L249 made the service translation to happen. So the real fix is to add local ExternalIP entry into the IPCache, so that the bpf_sock translation can take place.

https://github.com/cilium/cilium/blob/ea15d37fa298ad8e3f46cd444ca0de63e6369546/daemon/cmd/datapath.go#L205 this is where the IPCache insert happens. I'd check why addrs, err := d.datapath.LocalNodeAddressing().IPv4().LocalAddresses() didn't return ExternalIP.

https://github.com/cilium/cilium/blob/ea15d37fa298ad8e3f46cd444ca0de63e6369546/daemon/cmd/datapath.go#L205 this is where the IPCache insert happens. I'd check why addrs, err := d.datapath.LocalNodeAddressing().IPv4().LocalAddresses() didn't return ExternalIP.

Thanks. looking into it.

Thanks. looking into it.

@brb Thanks for helping. I added log statements in various files and I was able to find the issue I think.
The IPCache insert of ExternalIPs of nodes is happening in NodeManager -
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/node/manager/manager.go#L388
For remote nodes, ExternalIP, InternalIP and CiliumInternalIP are added to IPCache. But for local node, only InternalIP and CiliumInternalIP is added.
LocalNode is added to NodeManager here -
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/nodediscovery/nodediscovery.go#L233
I notice something weird - ExternalIPv4 is used as InternalIP. Why is that?
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/nodediscovery/nodediscovery.go#L181-L186
ExternalIPv4 is set to InternalIP here -
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/k8s/init.go#L239
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/node/types/node.go#L216-L232
This looks weird. Any idea why is it like this? GetExternalIPv4 is being used in many different places to get InternalIP in the codebase.

@brb Thanks for helping. I added log statements in various files and I was able to find the issue I think.
The IPCache insert of ExternalIPs of nodes is happening in NodeManager -
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/node/manager/manager.go#L388
For remote nodes, ExternalIP, InternalIP and CiliumInternalIP are added to IPCache. But for local node, only InternalIP and CiliumInternalIP is added.
LocalNode is added to NodeManager here -
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/nodediscovery/nodediscovery.go#L233
I notice something weird - ExternalIPv4 is used as InternalIP. Why is that?
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/nodediscovery/nodediscovery.go#L181-L186
ExternalIPv4 is set to InternalIP here -
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/k8s/init.go#L239
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/node/types/node.go#L216-L232
This looks weird. Any idea why is it like this? GetExternalIPv4 is being used in many different places to get InternalIP in the codebase.

The fix is to append ExternalIP of local node here -
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/nodediscovery/nodediscovery.go#L170-L207
But not sure what's the clean way to do it.

The fix is to append ExternalIP of local node here -
https://github.com/cilium/cilium/blob/dc0841e2d89c19f836588ff44ba20973fd49af35/pkg/nodediscovery/nodediscovery.go#L170-L207
But not sure what's the clean way to do it.


Simulate FOX discount caching previously connected wallets balances

Overview
Currently in production, connecting multiple wallets to the app that have a FOX balance will result in the 'simulate FOX discount' FOX balance caching and adding the previously connected wallets FOX balance.  This can result in a user thinking they have more FOX available for discounted trades than they actually do.
Operations does not currently have a testing balance with over 1k to see if actual trades would be discounted with this bug.
References and additional details
https://github.com/shapeshift/web/assets/94998097/ad2e47cc-9d6c-408b-823f-2d974a68f1cc
Acceptance Criteria
Wallet FOX balance of previously connected wallets are not cached and added to FOX discount simulation modal (or actual trade discounts).
Need By Date
No response
Screenshots/Mockups
No response
Estimated effort
No response

@twblack88 to determine next steps on this to find the right solution that isn't gameable but also doesn't cripple user experiences for wallets that cannot be connect simultaneously.

Sign in with ethereum it is.

@twblack88 @reallybeard if going with SIWE, we will want to have some UX flow for this as this will effectively be a new user action, and trades will be impossible to do with FOX discounts unless the user has signed in with ethereum already. Perhaps at wallet connection time?
This also means users connecting non-EVM accounts only on Ledger won't have FOX discounts, though that may be an edge-case.

@twblack88 bump - do we want to go with only using the current wallet accounts for FOX power as a simple ☕ solution for now to avoid the bleed of FOX discounts being game-able?
Feels like the whole SIWE (or other similar solution) is a stretch and (maybe) nice-to-have, that will require more product work and eng. effort and will keep this issue stale forever in the meantime.

I think current connected wallet is the best path. Even though cold storage of FOX is good if they want reduced fees it's all about having it on the wallet your'e trading with. Is the point.


[Bug]: Mouse Wheel has no effect on Canvas

Bug description
I get the mouse wheel to work if it's simply DOM elements to be scrolled. But within a canvas it seems like I can't get the emulation to work.
const puppeteer = require('puppeteer');
(async () => {
    const browser = await puppeteer.launch({
        headless:false
    });
    const page = (await browser.pages())[0];

    await page.goto('http://phrogz.net/tmp/canvas_zoom_to_cursor.html');
    const elem = await page.$('canvas');
    const boundingBox = await elem.boundingBox();

    await page.mouse.move(
        boundingBox.x + boundingBox.width / 2,
        boundingBox.y + boundingBox.height / 2
    );
    await page.waitForTimeout(3000);
    await page.mouse.wheel({ deltaY:-100 });
    await page.screenshot({path: 'example.jpg'});
    await page.waitForTimeout(3000);
    await browser.close();

})();

If you open the URL you see an image that you can zoom in by "scrolling" with your mouse. Isn't this feature simulating a real mouse wheel event?
Puppeteer version
<EMAIL_ADDRESS>Node.js version
v16.3.0
npm version
7.15.1
What operating system are you seeing the problem on?
Windows
Relevant log output
No response

I still found a workaround to use evaluate and using the WheelEvent, say something like this: var scroll_evt = new WheelEvent('wheel', {     deltaY:   - 1012.0,     deltaMode: WheelEvent.DOM_DELTA_LINE,     clientX:   -222,     clientZ:   -111,     bubbles: true,     cancelable: false, }); window.document.getElementsByTagName('canvas')[0].dispatchEvent(scroll_evt);. Also there are three kind of "wheel" events I was confronted with. One can substitute here "wheel" with "mousewheel", and there also exists DOMMouseScroll.

Thanks the report. I am able to reproduce but it looks like some issue with the Chromium backend. Will have to investigate there.

Actually, I think it's the issue with the website. I verified via the protocol monitor that the wheel event is properly dispatched to canvas but CDP dispatches the wheel event and not mousewheel event that is deprecated and should not be used https://developer.mozilla.org/en-US/docs/Web/API/Element/mousewheel_event I believe if the page listens to canvas.addEventListener('wheel',handleScroll,false); in addition to canvas.addEventListener('mousewheel',handleScroll,false); the automation should work as expected. As the mousewheel is deprecated, I don't think we are going to fix this.


Refactor focus-visible to deprecate .focus-visible selector

General Support Request
As of today, Safari does not support :focus-visible. But this support has shipped with Safari Tech Preview 125, but it appears to be still relying on the polyfill with the 133 download ¯_(ツ)_/¯
When reviewing how to support this for when Safari does finally support this feature, I ran into the nested complexities of WCSS.
When WCSS was first created, the role that it played was to be a gap-filler for users who wanted the new Auro designs but were not yet ready to start using HTML custom elements.
Because of this, there were a lot of decisions made to support a concept of a single source of truth (SSoT) when it came to some of these core styles. Some examples are:
In auro-hyperlink, there is this style that is powered by a WCSS mixin
@import "./node_modules/@alaskaairux/orion-web-core-style-sheets/dist/utilityMixins/focusVisible";

&.focus-visible {
  @include auro_focus-hyperlink(css);
}

&:focus-visible {
  @include auro_focus-hyperlink(css);
}

Then in WCSS, there is this reference in the markdown CSS
a {
  @extend .hyperlink;

  &.focus-visible {
    @include auro_focus-hyperlink(sass);
  }
}

The .hyperlink selector is of course coming from the ./_essentials.scss file. What is also possibly unnecessary is the reference to &.focus-visible in this context because that selector already exists in the ./_essentials.scss.
While all of this does lead to a SSoT with the one mixin, this actually makes updates really hard. CSS in the scope of a custom element is compiled and the CSS is shipped with the npm. Even if there was an update to WCSS, this does require an update to the individual element with a new release.
Support request
We need to come up with a better way to manage this kind of situation.
Possible Solution
https://lit.dev/docs/components/styles/#sharing-styles
I'd like to look at more of a declarative direction. Referencing the option above, I'd like to start our transition away from Sass. There is an extreme direction we can take things like shown in this tweet but for starters, I would like to explore what it would look like to simply manage smaller chunks of CSS in JS files to allow for easier sharing between custom elements without the complexity of Sass.

All browsers now support :focus-visible. https://caniuse.com/?search=focus-visible
This feature and the polyfill can be fully deprecated.


Fix target group discovery logic

What type of PR is this?
bug
Which issue does this PR fix:
What does this PR do / Why do we need it:
Fixes target group discovery logic that may cause service exports from other clusters are not shown.
I think this VPC-based filtering logic got into during the TG performance optimization. I don't think this adds a lot of performance value anyways so I completely removed it. List() call is currently used in two places:

Unused target group cleanup. This filters result by VPC regardless.
ServiceExport detection. This will now be fixed.

If an issue # is not available please add repro steps and logs from aws-gateway-controller showing the issue:
Testing done on this change:
Unit testing and manual cross-cluster testing that verifies traffic.
Automation added to e2e:

Will this PR introduce any new dependencies?:

Will this break upgrades or downgrades. Has updating a running cluster been tested?:
Does this PR introduce any user-facing change?:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

I will be happy to test this

@allamand we will release a new vision helm chart and artifact soon to include this fix

I’ve tested and it works as expected. Thanks for the quick patch and release


Added the offical test for recipe and implemented the build-locally.py for windows.

I added the vaporsynth's offical unittest in the meta.yaml.
I also implemented the build-locally.py for windows
Re-rendered with conda-build 3.27.0, conda-smithy 3.34.1, and conda-forge-pinning 2<IP_ADDRESS>.49.00

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@sshockwave

Also, I can't find build-locally.py anywhere. What is it?

I forgot to add it in git

build-locally.py is automatically generated by ci and should not be edited by hand.
@conda-forge-admin, please rerender

I get it, when the new version of vs released, the test only run on the local environments and when the locally test passed, the unittest in the build environment will not needed.

Yes. You are free to test locally, but the tests should not be going into the recipe.

I'm going to close this PR if there are no further changes. Feel free to reopen if anything comes up. Thank you for your contribution!


Fix section date time

Description:

Remove "Date:" prefix
Fix datetime format

Before

After:

https://github.com/demisto/etc/issues/42120

@idanizi-panw build fails, can we fix?

@yonatan-roth @Bars92 Generate test template layout report test is unstable, we need to fix that


Add pmtiles support

Description
Add support for pmtiles.
Type of Pull Request

[x] Adding a feature
[ ] Fixing a bug
[ ] Maintaining documents
[ ] Others ()

Verify the followings

[x] Code is up-to-date with the main branch
[x] No lint errors after pnpm lint
[x] Make sure all the existing features working well

Refer to CONTRIBUTING.MD for more details.

@orthotypos Thanks for PR. The code looks good, but I am not sure it is the best way to use addProtocol inside this plugin. I think this plugin should work with PMTiles if you add protocol in your app. Could you try that?

So, my app already has pmtiles support (via addProtocol), but I was getting this error when trying to print:
"url scheme 'pmtiles' is not supported"
But as I was trying now to create a minimally reproducible setup here, I didn't see the issue anymore. So you're right. it must have been some race condition in my app.
I am closing the PR. Thanks @JinIgarashi !


Turn off bracket spacing rule for "variables" in docs/guides

In code or configuration blocks in our guides, @DevMandy and I often use "variables" that users must replace with a real value, like replacing {YOUR_NGROK_DOMAIN} with example.com.
We recently noticed the Prettier CI job adds spaces between the bracket and the variable, like { YOUR_NGROK_DOMAIN }. For the sake of consistency, we'd like to not have these spaces automatically injected into our code/config samples, as that messes up how we refer to them throughout our guides.
This setting disables the bracket spacing, which gets me and @DevMandy what we want... are there any objections to disabling this fix? Places where disabling it might cause issues?

FYI for anyone checking this PR out after merge: I revised my edit to the Prettier config so that it only affects .md/.mdx files in the docs/guides/ directory so I'm not messing with any files outside of the immediate concern from me and @DevMandy. We can always reassess later to change this on all docs.


2/15 PM Publish

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Tracing support with custom metrics collection

What does this PR do?
1/ Export traces to AWS X-Ray for the EKS infrastructure monitoring (experimental).
This deploys the operator in a daemon set mode (a collector per instance). and exposes local HTTP and gRPC ports for applications to send traces to X-Ray. Feature is set to experimental for evaluation
2/ (bonus) Allows custom metrics collection within infra module
Allow collecting metrics for any given ports, dashboards are not provided.
  # additional custom metrics
  enable_custom_metrics = true
  custom_metrics_config = {
    ports                   = [8000, 8080]
    dropped_series_prefixes = ["go_gcc"]
  }

--
Docs pages will come in a separate PR
Issue #27

LGTM, except the one comment I left for the variable name.

Thanks for your review. I have a few test items I need to check before merging


[#77] Mapping questions and answers backend data [Part 1]

Part of #77
What happened 👀
Mapping the questions and answers of a survey from the graphql response and exchange to the app models.
Insight 📝

Simply add extra fields for the application to use later.
Add & correct fields from graphql query
Create extensions for all mapping purposes.

Proof Of Work 📹
The app should work normally; actually I already used data for the [Integrate] part on the next PR so this PR should be reviewed separately and work as expected.

@sleepylee seems you are having a problem with gen files 🛤

oops 🤔  so did you edit gen files manually? 🤪  Or how can you fix it, can you please share? 🙏

@manh-t I fixed it manually 😆  on the later PR, actually, it was gen correctly...I don't know what happened on this branch lol but this should be fine now


Punctuation substitution issue with inline elements

An example to illustrate the issue (note the quotation marks):
Input:

How about "that" said the old man.

Output:
How about ”that“ said the old man.
Expected:
How about “that” said the old man.
Why does this happen?
This is because each text node is handled individually. In the example, the three text nodes are How about ", that and " said the old man..
Solutions
Compute the text content of block elements (p tags, blockquotes) and run the substitution on that, instead of on the nodes individually?

Fixed in 4a3c8aa6ba9e64a0b2ae2d4cd4199aca9b617cf2


DistutilsPlatformError in mingw built Python 2 (msys2)

Trying to do many things using setuptools in a mingw built Python 2 (For example msys2's mingw-w64-x86_64-python2 fails with this exception:
$ python setup.py build_ext
Traceback (most recent call last):
  File "setup.py", line 1, in <module>
    from setuptools import setup, Extension
  File "mingw64/lib/python2.7/site-packages/setuptools/__init__.py", line 160, in <module>
    monkey.patch_all()
  File "mingw64/lib/python2.7/site-packages/setuptools/monkey.py", line 104, in patch_all
    patch_for_msvc_specialized_compiler()
  File "mingw64/lib/python2.7/site-packages/setuptools/monkey.py", line 156, in patch_for_msvc_specialized_compiler
    msvc = import_module('setuptools.msvc')
  File "mingw64/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "mingw64/lib/python2.7/site-packages/setuptools/msvc.py", line 49, in <module>
    from distutils.msvc9compiler import Reg
  File "mingw64/lib/python2.7/distutils/msvc9compiler.py", line 306, in <module>
    raise DistutilsPlatformError("VC %0.1f is not supported by this module" % VERSION)
distutils.errors.DistutilsPlatformError: VC 6.0 is not supported by this module

distutils.msvc9compiler doesn't like being imported on mingw built Python, and this hack isn't necessary there.
P.S. I'm going to send a PR.

Hi @segevfiner, @jaraco:
I was comforted with similar issue using previous version of setuptools. Seeing it fixed in #1119, I have upgraded my installation of setuptools to the latest version 36.7.0. Unfortunately the issue persists.
krzysztof@Pkrzysztof MINGW32 ~/esp/esp-idf/docs
$ pip install sphinxcontrib.blockdiag
Collecting sphinxcontrib.blockdiag
  Using cached sphinxcontrib_blockdiag-1.5.5-py2.py3-none-any.whl
Requirement already satisfied: Sphinx>=0.6 in c:/msys32/mingw32/lib/python2.7/site-packages (from sphinxcontrib.blockdiag)
Collecting blockdiag>=1.5.0 (from sphinxcontrib.blockdiag)
  Using cached blockdiag-1.5.3-py2.py3-none-any.whl
Requirement already satisfied: alabaster<0.8,>=0.7 in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: Jinja2>=2.3 in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: snowballstemmer>=1.1 in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: babel!=2.0,>=1.3 in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: imagesize in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: setuptools in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: Pygments>=2.0 in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: typing; python_version < "3.5" in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: colorama>=0.3.5; sys_platform == "win32" in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: docutils>=0.11 in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: requests>=2.0.0 in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: six>=1.5 in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: sphinxcontrib-websupport in c:/msys32/mingw32/lib/python2.7/site-packages (from Sphinx>=0.6->sphinxcontrib.blockdiag)
Requirement already satisfied: funcparserlib in c:/msys32/mingw32/lib/python2.7/site-packages (from blockdiag>=1.5.0->sphinxcontrib.blockdiag)
Requirement already satisfied: webcolors in c:/msys32/mingw32/lib/python2.7/site-packages (from blockdiag>=1.5.0->sphinxcontrib.blockdiag)
Collecting Pillow (from blockdiag>=1.5.0->sphinxcontrib.blockdiag)
  Using cached Pillow-4.3.0.tar.gz
Exception:
Traceback (most recent call last):
  File "C:/msys32/mingw32/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:/msys32/mingw32/lib/python2.7/site-packages/pip/commands/install.py", line 324, in run
    requirement_set.prepare_files(finder)
  File "C:/msys32/mingw32/lib/python2.7/site-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "C:/msys32/mingw32/lib/python2.7/site-packages/pip/req/req_set.py", line 634, in _prepare_file
    abstract_dist.prep_for_dist()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/pip/req/req_set.py", line 129, in prep_for_dist
    self.req_to_install.run_egg_info()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/pip/req/req_install.py", line 412, in run_egg_info
    self.setup_py, self.name,
  File "C:/msys32/mingw32/lib/python2.7/site-packages/pip/req/req_install.py", line 387, in setup_py
    import setuptools  # noqa
  File "C:/msys32/mingw32/lib/python2.7/site-packages/setuptools/__init__.py", line 180, in <module>
    monkey.patch_all()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/setuptools/monkey.py", line 104, in patch_all
    patch_for_msvc_specialized_compiler()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/setuptools/monkey.py", line 182, in patch_for_msvc_specialized_compiler
    patch_func(*msvc9('find_vcvarsall'))
  File "C:/msys32/mingw32/lib/python2.7/site-packages/setuptools/monkey.py", line 169, in patch_params
    mod = import_module(mod_name)
  File "C:/msys32/mingw32/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "C:/msys32/mingw32/lib/python2.7/distutils/msvc9compiler.py", line 306, in <module>
    raise DistutilsPlatformError("VC %0.1f is not supported by this module" % VERSION)
DistutilsPlatformError: VC 6.0 is not supported by this module

Please give me some guidance ow to troubleshoot it.

@krzychb A quick workaround would be to allow the function to continue, even without the 'required' compiler.
In your case, in the file C:/msys32/mingw32/lib/python2.7/distutils/msvc9compiler.py remark line 306, and add the pass statement, so that the code looks more or less like the following:
+---[C:/msys32/mingw32/lib/python2.7/distutils/msvc9compiler.py:309]
|
| # More globals
| VERSION = get_build_version()
| if VERSION < 8.0:
|     pass
| #    raise DistutilsPlatformError("VC %0.1f is not supported by this module" % VERSION)
| # MACROS = MacroExpander(VERSION)
|
+---

This probably should do the trick..

Hi @PeterMosmans,
Thank you for looking into this issue!
In the meantime I have managed to bypass this issue by installing latest pillow with pacman - https://github.com/Alexpux/MINGW-packages/pull/3138, and then running pip install sphinxcontrib.blockdiag again.
This way there was no need to compile anything within the pillow source package.

Thank you @PeterMosmans , the trick works for me

Somehow, over a year later, this is still an issue.
In my case not related to setuptools though - I used python3-pip from mingw64 to install bcrypt.
Same error, same remedy. Thank you @PeterMosmans.

We've patched distutils in MSYS2 to work around this issue in the meantime: https://github.com/msys2/MINGW-packages/commit/8a162525a7d6f4a0ac2724db2e21c96eae1ba33f (importing msvc9compiler doesn't error out anymore now, only using the included code)


Docker events. Init error

Hello,
I just install Docker DockStation on a Windows10 VM (virtualbox) and at the end of the installation, i have an error :

someone got an Idea ?
(I search on Google, StackOverflow, reinstall, admin mode, new Vm, virtualization ok, etc...)
Thx !

Hi. Are you sure your Docker instance works ok under VM?

If your docker deamon is running with sudo then you have to run Dockstation also with sudo.


Standardize formatting of manifests/x/XSplit/Broadcaster/4.3.2202.1228

Microsoft Reviewers: Open in CodeFlow

@wingetbot run

URL: https://cdn2.xsplit.com/download/bc/m46/4.3.2202.1228/XSplit_Broadcaster_4.3.2202.1228.exe
Status Code: 200
(Automated message - build 931)


createdisk-library: Use $@ instead $* for package list

In shell $* interpreted as single word so when used with double quote
it make all the word as single one and package installation failed
as following if there is one than one package name.
+ install_additional_packages <IP_ADDRESS> hyperv-daemons cifs-utils
+ local IP=<IP_ADDRESS>
+ shift
++ mktemp -d tmp-rpmXXX
+ local pkgDir=tmp-rpmM5Z
+ mkdir -p tmp-rpmM5Z/packages
+ sudo yum download --downloadonly --downloaddir tmp-rpmM5Z/packages 'hyperv-daemons cifs-utils' --resolve
Updating Subscription Management repositories.
Last metadata expiration check: 0:10:30 ago on Friday 30 September 2022 05:48:16 AM UTC.
No package hyperv-daemons cifs-utils available.
Exiting due to strict setting.
Error: No package hyperv-daemons cifs-utils available.

cherry-pick podman


Fire TV OS and Others Like It

Some operating systems do not allow the new special permissions.
This will require bypassing the permissions system even when the build version is new enough.
The example is notification bind listener.
This will require a legacy scrobbler or a new piece of code for bypassing the permissions screen and disabling some functionality using shared preferences.

#508

Testing 1.6.2: The notification access is still missing, but the app allows bypassing the screen. Logging in to last.fm works, but the AmazonMusic is not recognized as a music player and nothing is scrobbled.

That's an essential problem.
Maybe I can make separate legacy app.
The only way to release it would be on F-Droid or Amazon however.


Pretrained Models

Hi
Do you have any link for the pretrained model(s) to run the inference using them? I wanted to test some images with material segmentation before running any training.
Best
Don

Hi Don,
I have uploaded the checkpoint for material segmentation. Check README for details. Close.
Best
Junwei

Hi Junwei,
sorry for writing in the issue again, I already tested running the script inference_demo.py with providing the path to the target image (img_path) and the checkpoint_path = path/to/vit_tiny_p16_384.pth. The script reported the error:
Traceback (most recent call last):
File "inference_demo.py", line 17, in
model = init_model(config_path, checkpoint_path, device='cuda:0')
File "/home/Don/Desktop/models/MATERobot/materobot/apis/inference.py", line 55, in init_model
dataset_meta = checkpoint['meta'].get('dataset_meta', None)
KeyError: 'meta'
Best
Don

Hi Junwei,
thank you very much! I tested the model, I have these results:
Orginal:

DMS:

COCO:

Did I miss anything? or is the quality of the picture not that good for the segmentation?
Best,
Don

Dear Don,
Sorry for my late reply. The checkpoint I uploaded so far is only for a single task (DMS material segmentation). Please pay attention to the difference between pretrained model and checkpoint in this repository. The former is the pretrained backbone for training, while the latter is the one you should use for inference.
Could you please share the inference code you used so that I can have a closer look? You need to uncomment the corresponding codes when using the single-task checkpoint.
Best
Junwei

Dear Junwei,
thank you for your answer, I am using your script inference_demo.py. You are right, I was using multi_task instead of single task. I already tested single task today and I have an error from inference.py.
Code:

Running the script with these settings, I have the error:
Traceback (most recent call last):
File "inference_demo.py", line 22, in
result = inference_moe_model(model, img_path)
File "/home/Don/Desktop/models/MATERobot/materobot/apis/inference.py", line 147, in inference_moe_model
return results if is_batch else results[0][0], results[1][0]
TypeError: 'SegDataSample' object is not subscriptable
Best
Don

Hi Don,
Please uncomment Line 21 and comment Line 22
Please  uncomment Line 24,25 and comment Line 26-29
Please uncomment Line 34
Best,
Junwei

Hi Don,
Yes. They should match each other. However, we ignored the background category like the DMS paper, which means the material not included in the table will be assigned to an arbitrary category.
Best,
Junwei

OK thx, I will close the issue.
Best
Don


Can't cancel command

It would be really helpful to be able to cancel the current running command.

You should be able to terminate the currently running command by pressing ESC or whatever key you have bound to core:cancel.


Implemented socket.io connection in place of APIs to eliminate pooling.

Implemented new feature using socket.io to replace constant polling by APIs, resolving issue #16. This clears console clutter, aids debugging, and reduces server overhead. All existing APIs and connections remain intact.

Is it compatible with duckduckgo api?
Because eventlet isn't

Is it compatible with duckduckgo api?
Because eventlet isn't

The implementation using Socket.io is not compatible with the DuckDuckGo API because they are different technologies with different purposes. Socket.io is a bidirectional communication protocol between client and server, while APIs like DuckDuckGo are used to request and receive data in a more traditional way, following the request-response pattern of the HTTP protocol. Therefore, Socket.io does not replace nor is compatible with APIs like DuckDuckGo, as they operate in different ways.

Is it compatible with duckduckgo api?
Because eventlet isn't

The implementation using Socket.io is not compatible with the DuckDuckGo API because they are different technologies with different purposes. Socket.io is a bidirectional communication protocol between client and server, while APIs like DuckDuckGo are used to request and receive data in a more traditional way, following the request-response pattern of the HTTP protocol. Therefore, Socket.io does not replace nor is compatible with APIs like DuckDuckGo, as they operate in different ways.

I mean when I use  duckduckgo_search library in the back-end
eventlet the communication protocol make the terminal of back-end stuck ,it's not showing Devika Is up and running . So I get rid of Duckduckgo_search and everything work again.
I wonder if I remove eventlet and use Socket.io with duckduckgo_search is they gonna work  in harmony together, or I will face a compatibility issue

#24

@leandro-br-dev Do you mind me fetching this work to my fork at some point?

I mean when I use duckduckgo_search library in the back-end eventlet the communication protocol make the terminal of back-end stuck ,it's not showing Devika Is up and running . So I get rid of Duckduckgo_search and everything work again. I wonder if I remove eventlet and use Socket.io with duckduckgo_search is they gonna work in harmony together, or I will face a compatibility issue

In the branch where I worked, DuckDuckGo Search wasn't implemented yet, so I can't confirm if it conflicts with Socket.io. However, since Socket.io and DuckDuckGo Search are different protocols, they shouldn't directly interfere with each other. You wouldn't be able to connect Socket.io directly to DuckDuckGo Search as they operate on different protocols. Socket.io deals with real-time communication, while DuckDuckGo Search is an API for search queries.
In other words, you can use Socket.io in conjunction with the Eventlet library, but you can't use Socket.io to connect directly to an API.
I hope that's clear, but if you have any further questions or doubts, feel free to ask.

@leandro-br-dev Do you mind me fetching this work to my fork at some point?

No worries, go ahead and fetch it!


chore(doc): Improve the documentation section in the PR template

Remove the documentation categories, and level up the Release note section.
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR contains user-facing changes.

Click here for Documentation
Types of user-facing changes
Please keep the types that apply to your changes, and remove the others.

Installation and deployment
Connector (sources & sinks)
SQL commands, functions, and operators
RisingWave cluster configuration changes
Other (please specify in the release note below)

Release note

You might need to disable the PR labler for user-facing-changes as well.
https://github.com/risingwavelabs/risingwave/blob/31e68e984e7a8497d009643ae0f045b9b05c5872/.github/labeler.yml#L28-L33


Adding count rows feature to Table class

This pull request solves issues 45 and  63.

I think this implementation is less than ideal. Doing len(self.all()) means we're fetching all rows from the table and performing the count in Python which could be an expensive operation, depending on how large the table is.
I'd think a better implementation of count would be to run a SELECT COUNT(ID) on the table to return the number of rows.

I agree with your argument. But i don't think that assume that every table will have an id column. And execute and select count(*) from table name would be too inefficient (or efficient) as len(self.all()).
Anyway I appreciate suggestions to improve implementation :-)

Ah yes, I forgot that not all tables have id column. In that case SELECT COUNT(1) would be best.
As far as I know, some databases recognize what the user really wants and only returns the rown coutn when SELECT COUNT(*) is performed. But even if they don't, it will still be more efficient than len(self.all()) as the counting is done by the DB, as opposed to having all the rows transferred (possibly over the network) to Python, having the content evaluated and then counted.
I think SELECT COUNT(1) is a safer choice.


Relands Fix FlutterError.onError in debug mode

Description
Previous PR change the way that the testWidgets intercepts error. It was a bad decision, and i updated it in this pr.
Related Issues
Fixes https://github.com/flutter/flutter/issues/47447
Tests
I added the following tests:
See files
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I signed the CLA.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] All existing and new tests are passing.
[ ] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[ ] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide


Trust the decision of isDesktop from CloudFront when available

Trust the decision of isDesktop from CloudFront when available, save considerable CPU cycles and reduce confusion.

Thanks!


lib: bitarray: Assert in match_region

Describe the bug
Assert in Line 150 of match_region of bitarray.c :       __ASSERT_NO_MSG(mismatch_bundle != 0);
Info:

Target platform?   qemu_cortex_a53
Configuration:   CONFIG_ASSERT=y
What have you tried to diagnose ?
Insert test code between Line 337 and 338 of zephyr/tests/kernel/common/src/bitarray.c to trigger this issue as below:

   ret = sys_bitarray_clear_region(&ba_128, 128, 0); // clear all bits of ba_128
   ret = sys_bitarray_alloc(&ba_128, 64, &offset);  // allocate 64 bits
   ret = sys_bitarray_free(&ba_128, 1, 31);   // free from  bit 31 and  num_bits=1
   ret = sys_bitarray_alloc(&ba_128, 34, &offset);  // allocate 34 bits    ,    get ASSERT if CONFIG_ASSERT=y

workaround / solution this issue?
Correct the code in Line 135 of /* In-between bundles */:
Replace mismatch_bundle = ~bundle;
with mismatch_bundle = bundle;  // This line also needs to be opposite from above

To Reproduce
Steps to reproduce the behavior:
Run test for kernel.common with CONFIG_ASSERT=y
Expected behavior
No assert about __ASSERT_NO_MSG(mismatch_bundle != 0);
Impact

It took me 2 days to debug
My partner think that I write some wrong codes to crash the system
We have a solution in local. There's no schedule impact to our project.
Just to confirm if our current solution is OK.

Environment (please complete the following information):

OS: Linux (Ubuntu)
Toolchain:  Zephyr SDK 0.15.2
Version: Zephyr 3.3.0

ret = sys_bitarray_clear_region(&ba_128, 128, 0); // clear all bits of ba_128
// ba_128:
//    bundles[0] :  0x00000000
//    bundles[1] :  0x00000000
//    bundles[2] :  0x00000000
//    bundles[3] :  0x00000000
ret = sys_bitarray_alloc(&ba_128, 64, &offset);  // allocate 64 bits
//    bundles[0] :  0xFFFFFFFF
//    bundles[1] :  0xFFFFFFFF
//    bundles[2] :  0x00000000
//    bundles[3] :  0x00000000
ret = sys_bitarray_free(&ba_128, 1, 31);   // free from  bit 31 and  num_bits=1
//    bundles[0] :  0x7FFFFFFF           // Start1 of the next 34-bit-alloc
//    bundles[1] :  0xFFFFFFFF                 // In-between1 of the next 34-bit-alloc  ==> assert
//    bundles[2] :  0x00000000         // End1 of the next 34-bit-alloc       //  Start2 of the next 34-bit-alloc
//    bundles[3] :  0x00000000         ////////////////////////////////////// End2 of the next 34-bit-alloc
ret = sys_bitarray_alloc(&ba_128, 34, &offset);  // allocate 34 bits    ,    get ASSERT if CONFIG_ASSERT=y
// If resolved or CONFIG_ASSERT=n
//    bundles[0] :  0x7FFFFFFF
//    bundles[1] :  0xFFFFFFFF
//    bundles[2] :  0xFFFFFFFF
//    bundles[3] :  0x00000003

Thanks for the bug report. I will let someone more familiar with the code confirm that this is a bug -- if it's the case indeed, would you be interested in and willing to submit a PR? Thanks again!

I'd be glad to submit a pull request for this issue.
My office computer cannot upload codes to github due to my office policy.
I will setup the environment on my home computer as soon as possible.


The v10.28.2 release does not contain an Xcode 14 build asset despite claiming compatibility in the notes

How frequently does the bug occur?
All the time
Description
The release notes for v10.28.2 claim that the release is compatible with Xcode 14 beta 2, but the realm-swift-10.28.2.zip asset does not contain an XCFramework that is compatible with Xcode 14.
Stacktrace & log output
No response
Can you reproduce the bug?
Yes, always
Reproduction Steps
No response
Version
v10.28.2
What SDK flavour are you using?
Local Database only
Are you using encryption?
No, not using encryption
Platform OS and version(s)
iOS, tvOS, watchOS
Build environment
Xcode 14 beta 2 (and beta 3)

Hi @daltonclaybrook,
You can build XCFramework for beta version from the source code using build.sh. You can find the script in the realm-swift root.

@pavel-ship-it Unfortunately, it looks like the Realm target does not build for watchOS device on Xcode 14. It seems to build fine for watch simulator, but building for device reports many linker errors like:
Undefined symbol: realm::ArrayMixed::init_from_mem(realm::MemRef)
Undefined symbol: realm::ArrayMixed::move(realm::ArrayMixed&, unsigned long)
Undefined symbol: realm::ArrayMixed::create()
Undefined symbol: realm::ArrayMixed::ArrayMixed(realm::Allocator&)
Undefined symbol: realm::ArrayMixed::ArrayMixed(realm::Allocator&)
Undefined symbol: realm::Decimal128::is_valid_str(realm::StringData)

etc

Digging in, it looks like realm-monorepo.xcframework does not contain an arm64 slice for watchos. Just armv7k and arm64_32.

Thank's for the update @daltonclaybrook. I'll look into that

Still waiting for the next version of realm-core. I did not succeed in building the realm-core myself. 😢


Pin version and add JAVA mem settings

Suggesting to merge this in to prevent accidental deployments of a later version which could break every env.


The action pop-up in the single row action data-grid is not positioned correctly

Describe the bug
The position of the action pop-up in single action data-grid is not calculated correctly when the height/width of the window changes.
As a result the pop-up is not aligned to the selected grid element.
How to reproduce
https://stackblitz.com/edit/clarity-light-theme-v2-owaezn
In a more complex application the issue is reproduced when different DOM elements show/hide after the window height/width is already calculated. In this cases when we try to open the action pop-up it is either not shown or it's shown in a wrong position.
In a simple app, the easiest way to reproduce is window resize.
Steps to reproduce the behavior:

Go to https://stackblitz.com/edit/clarity-light-theme-v2-owaezn -> single action data-grid
Click on single selection menu in some of the grid rows
Resize the window
The pop-up is still visible, but it's not aligned to the selected row.

Expected behavior
The pop-up should be aligned correctly to the selected grid row.
Versions
App
Angular: [8.3.23]
Node: [e.g. 10.14.6]
Clarity: [2.3.5]
Device:
Type: [Windows]
OS: [Windows 10]
Browser [Firefox]
Additional notes
Add any other notes about the problem here.

This might be an area we can optimize, but the frequency of browser resizing is low (often developers testing). It also doesn't cause great angst as it will close if you click or scroll, so I'm marking this as a low priority feature enhancement.

Thanks for the response.
The scenario with resizing is the easiest way to reproduce. The issue happens in cases after DOM elements are shown/hidden and the content height/width are changed without actual window resizing. In such cases the position of the action pop-up is not correctly calculated and when it is opened it is not aligned to the grid row. If the user reopen the action pop-up it is still not aligned properly. It might be very confusing when it appears aligned to another grid row.

This regression is not fixed in 3.1.4.
Currently the problem is reproducible not only by resizing the browser window, but by having a scrolltop as well. This affects button dropdown menus, as well as datagrid-action-overflow menus. The result is that menus are not positioned on their supposed places, but rather above the elements they're supposed to be adjacent to (I observed that the offset is equal to the scrolltop).
Please, do consider setting a higher priority.

In my team we gave up from datagrid's single action due to this issue. Had to deal with the UX in different manner.

@WhiteLord is this issue still valid?
I am not able to reproduce it against v3 or v4.
The popover immediately closes on resize, or when a scroll event is emitted, which is the expected behavior.

This was still an issue on 3.11 as far as I can tell several weeks ago, but we switched to a new design. If this is no longer reproducible on your environment, feel free to close the bug.

@Jinnie yes, the issue still exists. That's, in fact, the only reason for us to give up with using single actions in the datagrid and switch to another design.

The popover immediately closes on resize, or when a scroll event is emitted, which is the expected behavior.
That's good. However, the main issue with the single action menu was that it was initially shown with an offset. For example the menu was created outside of the viewport.

Here's the part of the issue description that referred to this behavior:

In this cases when we try to open the action pop-up it is either not shown or it's shown in a wrong position.

I mean, is it sill reproducible agains the lastest minor Clarity version released. Btw, 3.11 is not a valid version. 3.1.1? 3.1.11??
I will need Browser (with version), OS, Clarity version.
I see that the provided stackblitz just links to the v2 docs inside an Iframe in the same time we talk about v3.11. So a better defined reproduction scenario will also be helpful.

The original concern here is that the popover positioning doesn't understand page resize events, but this is not a major flaw. If the issue is different, then we need updated details with a new reproduction.
This request has merit but we are not currently planning to address it due to it likely requiring a major refactoring and breaking change to implement. Our strategy with Clarity Angular is to support by addressing bugs and focus on stability, but enhancements that require changes are not going to be prioritized.
In an effort to clean up our backlog and focus our attention, I’m going to close this as likely to be resolved by upcoming implementations in Clarity Core. Please follow our development and releases to see when we release relevant components to make this possible.


Add Conv and ConvTranspose

Fixes #23

class _ConvBase(eqx.Module):
    """
    Base class for Conv and ConvTranspose. Mostly just contains shared code.
    """

    Spatial: tuple[str | Axis, ...] = eqx.field(static=True)
    In: Axis = eqx.field(static=True)
    Out: Axis = eqx.field(static=True)
    weight: NamedArray = eqx.field(static=True)
    bias: Optional[NamedArray] = eqx.field(static=True)

How come weight and bias are static fields? Doesn't this prevent grad? It also prevents me from casting their type.

 Wasn’t careful and got bit by copilot
On Fri, Oct 13, 2023 at 5:42 PM Lei @.***> wrote:

class _ConvBase(eqx.Module):
"""    Base class for Conv and ConvTranspose. Mostly just contains shared code.    """
Spatial: tuple[str | Axis, ...] = eqx.field(static=True)
In: Axis = eqx.field(static=True)
Out: Axis = eqx.field(static=True)
weight: NamedArray = eqx.field(static=True)
bias: Optional[NamedArray] = eqx.field(static=True)

How come weight and bias are static fields? Doesn't this prevent grad? It
also prevents me from casting their type.
—
Reply to this email directly, view it on GitHub
https://github.com/stanford-crfm/haliax/pull/42#issuecomment-1762429029,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAACLIN5OUUSXJG4V2G7EV3X7HNWRAVCNFSM6AAAAAA5VBAEK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRSGQZDSMBSHE
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


Configurations like "fetchTimeout" is getting stripped off from the Druid task and payload

I am ingesting a S3 file with following configurations
"ioConfig" : {
"type" : "index",
"firehose" : {
"type" : "static-s3",
"uris" : [ "s3://dp-cdp-druid/freewheer_sor_data/year=2017/month=12/day=10/1512882000-1512885600/part-00000-fc315240-8d51-4d2a-ba11-a6be41dd9cf9.csv" ],
"prefixes" : [ ],
"maxCacheCapacityBytes" :<PHONE_NUMBER>,
"maxFetchCapacityBytes" :<PHONE_NUMBER>,
"prefetchTriggerBytes" : 536870912,
"fetchTimeout" : 120000,
"maxFetchRetry" : 7
},
"appendToExisting" : true
}
Most of the configurations are getting stripped off and Druid is taking default. The payload from coordinator look like below
"ioConfig": {
"type": "index",
"firehose": {
"type": "static-s3",
"uris": [
"s3://dp-cdp-druid/freewheer_sor_data/year=2017/month=12/day=10/1512882000-1512885600/part-00000-fc315240-8d51-4d2a-ba11-a6be41dd9cf9.csv"
],
"prefixes": [
      ]
    },
    "appendToExisting": true
  },

When I look into the log druid is picking up the default values like below
"ioConfig" : {
"type" : "index",
"firehose" : {
"type" : "static-s3",
"uris" : [ "s3://dp-cdp-druid/freewheer_sor_data/year=2017/month=12/day=10/1512882000-1512885600/part-00000-fc315240-8d51-4d2a-ba11-a6be41dd9cf9.csv" ],
"prefixes" : [ ],
"maxCacheCapacityBytes" :<PHONE_NUMBER>,
"maxFetchCapacityBytes" :<PHONE_NUMBER>,
"prefetchTriggerBytes" : 536870912,
"fetchTimeout" : 60000,
"maxFetchRetry" : 3
},
"appendToExisting" : true
}
I want to increase the timeout
I am using druid druid-0.10.1

Hi @mohanrajnaidu, thank you for the report. It's a bug in 0.10.1 and will be fixed in 0.11.0. Please see https://github.com/druid-io/druid/pull/4948.


weeUpdate index.jsff

Why did you take my pi

Hi,
Avaible wholesaller price alumínium
If interasting or avaible cliente tell me pls write me or call
WhatsApp<PHONE_NUMBER>234
Price 1850$/MT CIF

Commission cost

https://drive.google.com/file/d/1jIZyxr797cl8sxHIzvzB0x1ss9owxgMe/view?usp=drivesdk
Christian Bálint paradise
0036307132234
https://www.facebook.com/chris.andras.c97
Balint Chris @.***> ezt írta (időpont: 2024. okt. 31.,
Cs 16:31):
Hi,
My friends owner personal broker
We can doing coperate 50-50% commission cost if avaible client
5-Star Hotel in Nordelta, Tigre, Argentina – 141 Rooms
We are pleased to present this exceptional opportunity to acquire a fully
operational 5-star
hotel located in the prestigious Nordelta development in Tigre, Argentina.
This prime
property boasts a prime waterfront location and offers a range of
high-quality amenities and
services.
Property Overview:
• Location: Nordelta, Tigre – Argentina
Property Overview
• Location. Wyndham Nordelta Tigre - Buenos Aires is 3 km from the Navy
Museum and 15 km from Tigre Train Station. Ezeiza International Airport is
40 k
On Sun, 10 Nov 2024 at 19:06, RoarTammy72 @.***> wrote:

Screenshot_20241031-184953.png (view on web)
https://github.com/user-attachments/assets/b2afef70-1b18-41f7-ad16-347bfc95c7db
Why did you take my pi
—
Reply to this email directly, view it on GitHub
https://github.com/pi-apps/pi-explorer/pull/149#issuecomment-2466829785,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BD3OMLCYZN6LNDYYOQF24NTZ76OEFAVCNFSM6AAAAABRPKYPWKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRWHAZDSNZYGU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Node.js  Loaders Team Meeting 2024-06-18

Time
UTC Tue 18-Jun-2024 18:00 (06:00 PM):

Timezone
Date/Time

US / Pacific
Tue 18-Jun-2024 11:00 (11:00 AM)

US / Mountain
Tue 18-Jun-2024 12:00 (12:00 PM)

US / Central
Tue 18-Jun-2024 13:00 (01:00 PM)

US / Eastern
Tue 18-Jun-2024 14:00 (02:00 PM)

EU / Western
Tue 18-Jun-2024 19:00 (07:00 PM)

EU / Central
Tue 18-Jun-2024 20:00 (08:00 PM)

EU / Eastern
Tue 18-Jun-2024 21:00 (09:00 PM)

Moscow
Tue 18-Jun-2024 21:00 (09:00 PM)

Chennai
Tue 18-Jun-2024 23:30 (11:30 PM)

Hangzhou
Wed 19-Jun-2024 02:00 (02:00 AM)

Tokyo
Wed 19-Jun-2024 03:00 (03:00 AM)

Sydney
Wed 19-Jun-2024 04:00 (04:00 AM)

Or in your local time:

https://www.timeanddate.com/worldclock/fixedtime.html?msg=Node.js+Foundation+Loaders Team+Meeting+2024-06-18&iso=20240618T1800
or https://www.wolframalpha.com/input/?i=06PM+UTC%2C+Jun+18%2C+2024+in+local+time

Links

Minutes Google Doc: https://docs.google.com/document/d/101Xz3upAmF4IfyZv3ocdxf2p5-wdKimASXSeNCQyc5c/edit

Agenda
Extracted from loaders-agenda labelled issues and pull requests from the nodejs org prior to the meeting.
nodejs/node

https://github.com/nodejs/loaders/issues/201
Proposal for a simple, universal module loader hooks API to replace require() monkey-patching #52219
ESM Hook deadlocks since 21.2.0 a3e09b3 #50948

nodejs/loaders

doc: add synchronous hooks proposal #198

Invited

Loaders team: @nodejs/loaders

Observers/Guests
Notes
The agenda comes from issues labelled with loaders-agenda across all of the repositories in the nodejs org. Please label any additional issues that should be on the agenda before the meeting starts.
Joining the meeting

link for participants: https://zoom.us/j/97506450082

For those who just want to watch: https://www.youtube.com/c/nodejs+foundation/live

I added https://github.com/nodejs/loaders/issues/201 to the agenda.

I won't make it today, sorry. See you next week!

I won't make it today, sorry. See you next week!

If you can, I'd appreciate your feedback on #201.

I am also not able to attend today. Hopefully next time.

Do we have the people we need to discuss?

Next steps:

If folks could please open PRs against https://github.com/nodejs/loaders/blob/main/doc/resources.md to add lists of packages that monkey-patch, packages that use the current hooks API, and packages that do both.
I’ll start a draft design document for https://github.com/nodejs/loaders/issues/201 approach 3, where we move the existing hooks back on the main thread.

I’ll start a draft design document for Hooks thread direction #201 approach 3, where we move the existing hooks back on the main thread.

Done: https://github.com/nodejs/loaders/pull/205


any method to share post as story?

i know there is a method for story
.add(StickerBuilder.attachmentFromMedia((await ig.feed.user(user_id).items())[0]))
so as to add someone's feed as sticker
is there any method to directly add the feed by link/code?
i have tried
await ig.media.info(mediaId)
but the type is different so it won't be able to add to sticker.
Please help. Thanks!

Can you able to share on real app?


why it does not work when i use   fid_ps2kb_write

this is my code bellow:
#include FidPS2Keyboard.h
void setup() {
fid_ps2kb_init(5,3);
Serial.begin(9600);
}

void loop() {
 delay(100);;
 fid_ps2kb_write(0x1c);
 fid_ps2kb_write(0xf0);
 fid_ps2kb_write(0x1c);
  delay(2000);
}

when i run this code,my pc has nothing print,i don't know why,

It seems that there was a typo in the readme file of the project.
FidPS2Keyboard (fid_ps2kb_* functions) are for communicating to a keyboard.
In order to send keystrokes to a computer, you have to use fid_ps2h_* functions and include FidOS2Host.h.
Sorry for the error in the documentation. It is fixed now.
Please tell me if it solves your problem.

I‘m sorry,It still doesn't work now...
I want to use arduino Emulating ps-2 keyboard.
for  example:I want to  send  "A" to the computer,then the computer can print "A" in a txt document.
how do i use your code in arduino
I try to use fid_ps2h_write(0x1c);
but it did nothing
I read the source code,and i can't understand  how  the FidPS2Keyboard.h work,it does not use for Emulating keyboard?

I tried the code on arduino and arduino yun , all of them  doesn't work,
Look forward to your reply.thanks very much!

I read the source code,and i can't understand how the FidPS2Keyboard.h work,it does not use for Emulating keyboard?
Names can be confusing but FidPS2Keyboard is representing a PS/2 keyboard connected to the arduino, hence the arduino playing the role of the host.
The FidPS2Host represent a host connected to the arduino, and the arduino is then emulating a PS/2 keyboard.

I try to use fid_ps2h_write(0x1c);
but it did nothing
Yes, it is the correct use and correct code for the "pressing the A key" event.

It is quite a long time since I have posted this code and it seems some values are hardcoded in the source code for the used pins, to gain some times avoiding shift operations.
These are the constants defined in the headers (e.g. HOST_CLOCK_SET_MASK).
You could change these values to match the correct values for the pins you are using, or simply delete the #define statements to reenable dynamic mask creation.
But the simplest is to use the PIN 2 for the CLOCK and the PIN 4 for DATA.
#include FidPS2Host.h
void setup() {
fid_ps2h_init(4,2);
Serial.begin(9600);
}

void loop() {
 delay(100);
 fid_ps2h_write(0x1c);
 fid_ps2h_write(0xf0);
 fid_ps2h_write(0x1c);
  delay(2000);
}

I do not have a computer with a PS/2 port right now to test it unfortunately.
But the implementation works, there is an arduino running for 2 years now using this code for a cash register system, intercepting keystrokes from a keyboard and forwarding them to the computer and allowing to insert other keys through the serial bus. ;)
I certainly should improve the README file and modify the code to get rid of these hardcoded values...
Please note that this code is very low-level and does not reply to commands of the host, it is up to you to do that. Not really sure if it is mandatory for your computer, I remember I had to respond to a RESET (0xFF) command to be able to send keys afterwards.
It could be a good idea to just print the bytes you receive from it, and then implement a simple code that aknowledge the commands and respond to them. You will at least have a confirmation that the communication is possible when you will see that you receive commands.
Or better, if you have a working PS/2 keyboard, connect it through your arduino using pins 3 and 5, so that you can just write to the host what you receive from the keyboard and the reverse, and print it all to the serial bus. Then you could figure out easily what your computer is expecting from you.
Here is an example code for printing what the computer send. Uncomment the lines if you have a keyboard as well.
#include <FidPS2Keyboard.h>
#include <FidPS2Host.h>

void setup() {
  Serial.begin(115200);
  //fid_ps2kb_init(5, 3);
  fid_ps2h_init(4,2);
}

uint8_t value = 0;

void loop() {
  /*while( fid_ps2kb_read(&value) )
  {
    Serial.print("< ");
    Serial.println(value, HEX);
    fid_ps2h_write(value);
  }*/
  while( fid_ps2h_read(&value) )
  {
    Serial.print("> ");
    Serial.println(value, HEX);
    //fid_ps2kb_write(value);
  }
}

thanks for your reply，this is my code bellow:
`#include FidPS2Keyboard.h
#include FidPS2Host.h
void setup() {
Serial.begin(115200);
//fid_ps2kb_init(5, 3);
fid_ps2h_init(4,2);
}
uint8_t value = 0;
void loop() {
/while( fid_ps2kb_read(&value) )
{
Serial.print("< ");
Serial.println(value, HEX);
fid_ps2h_write(value);
}/
while( fid_ps2h_read(&value) )
{
Serial.print("> ");
Serial.println(value, HEX);
//fid_ps2kb_write(value);
}
}
 I can receive from computer,and print "FF" to the serial bus ,but how can I respond to a RESET (0xFF) command ? I use if(value==0xff)
{
fid_ps2h_write(0xFA);
}`
then I send 0x1c to computer ,but it seems didn't work, nothing print at all

At least you got a byte from the host :)
Let's try with that code for testing:
#include <FidPS2Host.h>

void setup() {
  Serial.begin(115200);
  fid_ps2h_init(4,2);
  delay(100);
  fid_ps2h_write(0xAA);
}

uint8_t value = 0;

int fromHex(char ch) {
  if(ch >= '0' && ch <= '9')
    return ch - '0';
  else if(ch >= 'A' && ch <= 'F')
    return ch - 'A' + 10;
  else if(ch >= 'a' && ch <= 'f')
    return ch - 'a' + 10;

  return 0;
}

void loop() {
  while( fid_ps2h_read(&value) )
  {
    Serial.print("> ");
    Serial.println(value, HEX);
  }
  if (Serial.available() > 1) { // user input over serial line
    int incomingByte = (fromHex(Serial.read()) << 4) + fromHex(Serial.read());
    Serial.print("< ");
    Serial.println(incomingByte, HEX);
    fid_ps2h_write(incomingByte);
  }
}

You can then play using the serial console and try some sequence of commands.
Normally, after a 0xFF command, you should ack with a 0xFA and follow it with a 0xAA telling the reset is over.
Some computers could send a sequence of

0xFF to reset to keyboard -> respond with 0xFA 0xAA (wait for about 500ms between the two)
0xF5 to disable scan codes -> respond with 0xFA and do not send key codes afterwards
0xF2 to get the device ID -> respond with 0xFA (and follow with 0xAB 0x83 but some keyboards do not)
0xF4 to reenable the keyboard -> respond with 0xFA and you can now send keystrokes

It is also a good practice to send 0xAA just after powering up.
All commands sent from the host needs to get a correct response or the host will not listen and just try to reset your device.
You should not implement all the commands to have a working solution.
Normally, you have at least to ACK (0xAA) all of them. I can only think about two commands that do not expect an ACK:

0xEE  (echo) -> you should respond with 0xEE
0xFE (resend) -> resend the last byte

when I upload the code to Arduino, I must take out the ps-2 Interface from computer,and touch it again,
sometimes the serial bus can print 'FF' ,sometimes not.
I tried it in your way,and  the serial bus  always print '0'
when I restart the computer ,the serial bus print a lot

i found that ,different Arduino board ,the Interrupt pin is different too, i used the Arduino yun which  likes the Arduino Leonardo ,it's Interrupt pin is 0 for 3 pin Numbers, the 1 interrupt pin is for the 2 pin numbers, can you understand me ? And i modify your source code ,am i right?

Can you give me your e-mail address? so i can send some screenshots to you.

Ha yes, I used the Arduino Uno and the interrupt numbers are inverted with regard to the Arduino Leonardo. I should have used the function digitalPinToInterrupt to have the corresponding interrupt number.
You can contact me at<EMAIL_ADDRESS>

Thank you very much! This problem has been bothering me for a lot of days.I can't solve it.Looking forward to you can help me to solve it

i send a screenshot to your email.
No matter what type in by using the serial console,it returns '0'

You have to modify the value of mIrqNum in fid_ps2h_init

I guess the library should autodetect this!


[Bug]: Duplicated logs when using zippedArchive for File

🔎 Search Terms
zippedArchive, maxsize, log rotation, duplicated
The problem
When using the zippedArchive: true option for the File transport, the lines that should be written only on the new file (because the old file reached the size limit) are also written on the old file.
What version of Winston presents the issue?
v3.11.0
What version of Node are you using?
v20.4.0
If this worked in a previous version of Winston, which was it?
No response
Minimum Working Example
const winston = require('winston')

const transports = [
  new winston.transports.File({
    filename: 'a.log',
    maxsize: 30,
    zippedArchive: true
  }),
  new winston.transports.Console()
]

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.printf(info => `${info.message}`),
  transports
})

const main = async () => {
  for (let i = 0; i < 7; i++) {
    await new Promise((resolve, reject) => {
      setTimeout(resolve, 100)
    })

    logger.info(`${i}`.repeat(10))
  }
}

main().catch(console.error)

Additional information
The example produces 3 files:

a.log.gz (77 bytes)

0000000000
1111111111
2222222222
3333333333
4444444444
5555555555
6666666666

a1.log.gz (44 bytes)

3333333333
4444444444
5555555555
6666666666

a2.log.gz (11 bytes)

6666666666

Which is not expected, as a.log.gz should only have the lines with 0s, 1s and 2s, and a1.log.gz should only have the lines with 3s. 4s and 5s.
Other issues:

The await is necessary because of https://github.com/winstonjs/winston/issues/1174#issuecomment-384512885, else two empty log files are created.

The log files are not compressed. They are plain text files even if they have a .gz extension.

Hey @OmniSliver , we just included some fixes related to zippedArchive that aren't released yet -- could you retry your MWE on master and let us know if you encounter the same issues?  Thanks in advance!

Nice! The main issue (the duplicated lines) is fixed on master. The log.gz files not being compressed is also fixed. Thanks!
The await is still necessary though, but that's another issue.


Not using pager.

awslocal doesn't use a pager for the help subcommand whereas aws does.
Example:
awslocal ec2 describe-vpcs help
aws ec2 describe-vpcs help

awslocal will just echo the page, whereas aws will use a pager. I assume this is likely due to awslocal wrapping aws and causing it to think its being used by another program and disabling the pager.
This may be fixable with some environment variables but I haven't tested it.

The changes have been released as version 0.21.


Provide a way to get non-is non-extends non-... model properties

Clear and concise description of the problem
I might have missed this, but I couldn't find a built-in way to get the properties of a model that are from the model itself (i.e. not from is, extends, or ...)
So I wrote something like this in my emitter: https://github.com/TomerAberbach/typespec-fast-check/blob/c932f604b476ece70acfc7d02726f1f05bd94cc7/src/convert.ts#L292-L308
I think there should be a built-in way to get these properties.
Checklist

[x] Follow our Code of Conduct
[x] Read the docs.
[x] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Thanks for the feedback!
While as you've found we don't have a built-in way to do this today, you can get this result by filtering out any model property that has a sourceProperty on it. This may be slightly simpler than what you've implemented:
Here's an example creating a new map that contains only the properties that are defined by the model.
const properties = model.properties;
const map = createRekeyableMap();
for (const [key, value] of properties.entries()) {
  if (value.sourceProperty) continue;
  map.set(key, value);
}

Thanks for the feedback!
While as you've found we don't have a built-in way to do this today, you can get this result by filtering out any model property that has a sourceProperty on it. This may be slightly simpler than what you've implemented:
Here's an example creating a new map that contains only the properties that are defined by the model.
import { createRekeyableMap } from "@typespec/compiler/utils";
// ...
const properties = model.properties;
const map = createRekeyableMap();
for (const [key, value] of properties.entries()) {
if (value.sourceProperty) continue;
map.set(key, value);
}

Nice, thanks


⚠ Adacta-fintech.com has degraded performance

In 9ed8270, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 200
Response time: 1367 ms

Resolved: Adacta-fintech.com performance has improved in 9557d21 after 8 minutes.


Public API & plugin support

This was a feature requested at some point in Discord: the ability to have other plugins hook into DecoHeads to get the heads from DecoHeads to be used in things like GUIs.
Current planned support:

DeluxeMenus: https://www.spigotmc.org/resources/deluxemenus.11734/

regarding implementing your own API - I created a very rough mockup of your plugin with lightweight API module containing a few methods (getting heads, looking up heads, creating head items with the same styling as the GUI-spawned item)
https://github.com/crashdemons/DecoHeads/tree/5284a56195bcb37d43a8607e46caef6981c057c8
I don't know if you're interested but it might give you a skeleton to add things to unless you had something else in mind.
This uses a multi-module project layout, it would also be possible to do a separate API project (just without the parent POM), but it's harder to show an example of it or pull it.


[Typescript] Updating github.io links to individual packages

Updating github.io links to individual packages after the doc restructuring for JS/TS

The release notes were mentioning specific versions of preview libraries - shouldn't they link to that specific preview site? @KarishmaGhiya

@kaerm So we don't have documentation generated for all the preview versions. This documentation only has either the latest preview or last two previews or latest preview and GA. So I am just linking them to the landing page and let them pick which version documentation the users want from the ones available

@KarishmaGhiya If we don't have them then I guess this is fine. Last question - why is there no Cosmos in the main TOC?

@kaerm  There's something wrong, it should have been there. Scott pointed out the same thing. I am going to investigate into this.

@kaerm @ramya-rao-a The cosmos package is marked as private, this is the reason why it's not listed yet on the indexpage in the docs

All 4 release notes being updated here are for old releases
The new reference links will not match the package released during those releases.
I would suggest to not make these changes at all.
Providing references docs for a wrong version is not better than 404
The latest release notes for November use the right links, so that should be enough

@ramya-rao-a @kaerm In that case I really recommend to update the "Unified SDK" link here to the latest release https://azure.microsoft.com/en-us/downloads/
Because if you do a search for "Azure SDK" then this link is the first that pops up

Providing references docs for a wrong version is not better than 404

I disagree. We should not have any dead links we should either update them to something or remove them. It makes us look pretty bad when they 404.

In that case, I would remove the reference links altogether.

I haven't seen any more updates to this since the last comments.  More coming?  What's the status?

This is no longer interesting after I cleaned up links in https://github.com/Azure/azure-sdk/pull/780.


Additional information about preserves

From my first review of CUTGroup test data here are some pieces of additional information that I heard from testers:

rules of the Forest Preserves/permit information
parking location (specifically on the map with icons)
restroom locations

I will continue to add to this list as I review test results.

@smarziano Parking/restroom locations will definitely be on there.
Unfortunately our permit system doesn't allow for unique URLs to specific locations, so we can't include a "buy a permit" link -- which would be ideal. Maybe just a general link for rules and permit information?

@versatilehuman Great re: parking/restroom locations!
I think a simple "buy a permit" link would do well at the bottom under "More Information." Or maybe if there is a specific activity that generally requires a permit (picnics come to mind) to show the link associated with that activity? It might be unnecessarily complicated to add that logic though.

Rules/permit info added (#102). We decided against a parking icon on the map to reduce clutter--we adding parking lot outlines to the basemap for all preserves and parking will always be indicated in the panel. Restroom locations is still a to-do.

[ ] rules of the Forest Preserves/permit information
[ ] parking location (specifically on the map with icons)
[ ] restroom locations

Closing -- restroom locations has it's own issue #113