Trigger Input Filter v2

This replaces the previous PR - cleaner commit history and axis count check.

We surely don't need these methods now...
InputManager::getAxisCountByDevice
InputManager::getButtonCountByDevice
InputManager::getDeviceGUIDString

Also, we shouldn't limit the id's if axis.
I would remove (input.id == 2 || input.id == 5)
That way controllers that may use different id numbers per trigger will also benefit.

I'll make a test with those changes, the axis IDs were specifically to prevent negative inputs, but I'm not sure how common that would be. I should have that done some time tomorrow evening after work.

Looks Ok as it is now, just tested and was able to map everything properly.

@nadenislamarre this works well. Can we merge & monitor at the start of the v35 cycle?

it has to be validated by @fabricecaruso

i'm really not fan of checking the number of axis and not the pads name. we will have false positive, for sure.
for me we should hardcode blacklist pads or do a more complex way.

I don't really understand the mSkipAxis thing.
Plus : mSkipAxis is never initialized.

That might be leftover RetroPie code, I’ll take a look at it tonight.
On Thu, May 26, 2022 at 10:55 AM Fabrice CARUSO @.***>
wrote:

I don't really understand the mSkipAxis thing.
Plus : mSkipAxis is never initialized.
—
Reply to this email directly, view it on GitHub
https://github.com/batocera-linux/batocera-emulationstation/pull/1194#issuecomment-1138666558,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE5KD2U7ANSORBV2ZQXRFCDVL6GFJANCNFSM5WX5K4AA
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

You're right, you took the Retropie code... And the field is not initialized in their code neither...

Yeah, a lot of it changed from the original version that just ported the
RetroPie code over though, theirs was only for the DS3 and one clone, we’ve
tried to make it more generic.
I can check and see if it’s initialized in another function, but a lot of
that can likely just get removed.
I think our timeout on holding a button to skip might be shorter than
theirs too, so I might need to adjust the fallback time as well. I haven’t
run into a controller that actually uses it though, I’ll have to try some
of my weird controllers.
On Thu, May 26, 2022 at 12:55 PM Fabrice CARUSO @.***>
wrote:

You're right, you took the Retropie code... And the field is not
initialized in their code neither...
—
Reply to this email directly, view it on GitHub
https://github.com/batocera-linux/batocera-emulationstation/pull/1194#issuecomment-1138787915,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE5KD2UA4LD2WB4ANCEUFV3VL6UGVANCNFSM5WX5K4AA
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

i'm really not fan of checking the number of axis and not the pads name. we will have false positive, for sure. for me we should hardcode blacklist pads or do a more complex way.

We do two checks, & a fallback so a false positive will be extremely rare. I have tested across 8 controllers, no issues. In addition managing controller names will require more maintenance for us.
If that rather rare occasion does ever eventuate, then you would use a controller name.

I don't have such controllers to test...
Anyway :

It's not mergeable as long as the mSkipAxis is not initialized in the constructor.
Retropie's code test the button ids  ( if(input.type == TYPE_BUTTON && (input.id == 6 || input.id == 7)) )
The way they do seems preferable to what you do by testing the destination input config value ( using GUI_INPUT_CONFIG_LIST[inputId].name == "l2" ) :
If you want to set button 6 or 7 to l1 or r1 you'll meet the same exact problem.
Also Retropie limits this for only a specific device (using Guid & Name). Maybe we should do that too. Not sure all the devices act this way...

I can check the mSkipAxis and see what needs to be done.
I changed the check from button 6/7 to l2/r2 because buttons 6 and 7 may be
different buttons on other controllers, since we’re not filtering by guid
or name that could cause issues. Since the triggers would have analog
preferred, I changed it there.
I can change it back to controller IDs, but that will likely require
regular maintenance as new controllers with that issue are found.
On Thu, May 26, 2022 at 6:45 PM Fabrice CARUSO @.***>
wrote:

I don't have such controllers to test...
Anyway :

It's not mergeable as long as the mSkipAxis is not initialized in
the constructor.
Retropie's code test the button ids ( if(input.type == TYPE_BUTTON
&& (input.id == 6 || input.id == 7)) )
The way they do seems preferable to what you do by testing the
destination input config value ( using GUI_INPUT_CONFIG_LIST[inputId].name
== "l2" ) :
If you want to set button 6 or 7 to l1 or r1 you'll meet the same
exact problem.
Also Retropie limits this for only a specific device (using Guid &
Name). Maybe we should do that too. Not sure all the devices act this way...

—
Reply to this email directly, view it on GitHub
https://github.com/batocera-linux/batocera-emulationstation/pull/1194#issuecomment-1139121353,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE5KD2R7NSONMWDX75XNO5LVL75GXANCNFSM5WX5K4AA
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

I changed the check from button 6/7 to l2/r2 because buttons 6 and 7 may be different buttons
Maybe, but the problem is not related to the destination entry in the config file but to the source button !

I changed the check from button 6/7 to l2/r2 because buttons 6 and 7 may be different buttons Maybe, but the problem is not related to the destination entry in the config file but to the source button !

@fabricecaruso i think you misunderstand - he's only applying the axis preference when configuring l2 or r2.
the code checks you have 6 or more axis, if you do it's very likely the 5th & 6th axis is for the triggers.
if they are, we will use axis instead of button, if they're not then we fallback to the button id like we do today. this is very safe & logical.

I don't misunderstand : This code is filtering the destination (the config file), not the source (the controller)....
Retropie's code filters the source. This code filters the destination.
In my opinion, it's not a good way to go : What if you want to configure the r2 button into r1 !? The problem occurs...

I don't misunderstand : This code is filtering the destination (the config file), not the source (the controller).... Retropie's code filters the source. This code filters the destination. In my opinion, it's not a good way to go : What if you want to configure the r2 button into r1 !? The problem occurs... Is it a good solution ? not sure...

it doesn't filter the destination, it writes an alternative based on the trigger designation which on some controllers may be a button or an axis. it get's the button or axis from the controller...
why on earth would you want to configure r2 into r1? and even if you did, then new r1 would be a button (like the bumpers) and then the subsequent emulator controller config would leverage it.
here is the problem with retropie's method:

You have to maintain names & guids (there will be a lot more than what retropie has)
Some Sony controller candidates have names such as 'Wireless Controller' which leads to false identification as another controller can easily have that same name. Therefore potentially mapping the controller incorrectly altogether.
They assume the button id's for input & output - also not good for a wider range of controllers. Restricting the scope of the fix.

This patch has been tested vigorously in #beta with multiple users without maintenance. As outlined earlier, this should be applied at the beginning of the v35 release cycle & tested.
Please confirm we can merge...

"it doesn't filter the destination" -> Yes it does...
Anyway : Not as long as the mSkipAxis is not initialized.

@dmanlfc
1=> You have to maintain names & guids => this is supposed to be a low number of devices. consider it as a bug. it cannot be automatic technically.
2=> so, use a list of vid/pid/name
3 => we must restrict the issue to the real issue. this fix is dangerous. it will come back in 2 months because we will have false positive, and we have nothing else to do that remove it completly to fix in a hurry.

I may have a better idea than the "filterTrigger". If I understand well the problem. For this button, you receive TYPE_BUTTON, then TYPE_AXIS. As TYPE_BUTTON was received first, it's selected, but not the axis.
This is what I imagined which would be far more generic :

When pressing the button & when setting mHoldingInput to true, we start recording all coming inputs in a vector ( mAllInputs ).
When releasing the initial pressed button, we watch if it's a button ( InputType::TYPE_BUTTON ) then, we read all our recorded inputs.
If in the recorded inputs we have at least 2 TYPE_AXIS from the device, and all the input are on the same id, then we can take the first TYPE_AXIS instead.

Can you tell me your point of view ( and/or test with affected controllers ? )
See screenshots of the code I wrote.

I may have a better idea than the "filterTrigger" thing.
If I understand well the problem. For this button with some controllers, you receive TYPE_BUTTON, then TYPE_AXIS. As TYPE_BUTTON was received first, it's selected at end, but not the axis. And You want to axis instead.
This is what I imagined which would be far more generic :

When pressing the button & when setting mHoldingInput to true, we start recording all coming inputs in a vector ( mAllInputs ).
When releasing the initial pressed button, we watch if it's a button ( InputType::TYPE_BUTTON ) then, we read all our recorded inputs.
If, in the recorded inputs, we have at least 2 TYPE_AXIS from the device, and all the inputs are on the same id, then we can take the first TYPE_AXIS instead of the button.

Can you tell me your point of view ( and/or test with affected controllers ? )
See screenshots of the code I wrote.

Reverting my changes and trying these instead gives me errors during compile:
In file included from src/guis/GuiInputConfig.h:9,

                 from src/guis/GuiDetectDevice.cpp:4:

src/utils/VectorEx.h: In function ‘std::vector<std::pair<decltype (fieldChooser(StructType())), std::vector<StructType> > > VectorHelper::groupBy(const std::vector<StructType>&, const FieldSelectorUnaryFn&)’:

src/utils/VectorEx.h:21:40: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?

   21 |                         auto it = std::find_if(instancesByField.begin(), instancesByField.end(), [val](std::pair<FieldType, std::vector<StructType>>& x) { return x.first == val; });

      |                                        ^~~~~~~

      |                                        find

Followed by a lot of other failures that all seem to be related to using VectorEx, looks like it breaks other uses of the inputs.

just add #include  to VectorEx.h

Testing this code with various controllers:
With analog triggers:

DualShock 4 (Wired & Wireless): Axis
XBox One S Controller (Wireless): Axis
8BitDo SN30 Pro+ (DualShock mode, wired): Axis, BUT on the first try, L1 came up as a button instead. When testing re-mapping the trigger, it alternated between button, axis, and -NOT DEFINED-. Pressing lightly seemed to trigger the button at first, but after 3-4 presses it was only not defined. Finishing and re-mapping the controller a second time, pushing the triggers all the way in mapped normally.

With digital triggers:

8BitDo SN30 Pro (DualShock mode, wired): Buttons
PDP Versus Fighting Pad for PS3: Buttons
Razer Panthera PS4 Fightstick: Buttons
Hori Pokken Controller: Buttons
Switch Pro Controller (Wireless): Buttons

So everything seems to work as normal, with some possible hiccups if the trigger is only partially pressed. It could also be the controller itself.
I'm happy closing my PR in favor of this code instead.

Works as expected with my additional controllers too. Logitech, Xbox 360 pad, 8-bit (Xinput) DS3. I think we have a solution to put out into the wild... Thanks @fabricecaruso

All right, so how do we proceed ? You update your PR with the new code ?

PR is updated to revert my changes and replace them with yours. I'll do a separate test for the logging this weekend and see what comes up.

Ok then I'll wait for your test results

Having some trouble building it:
/home/ian/Repos/batocera-emulationstation/es-core/src/LocaleES.cpp:18:45: error: expected unqualified-id before ‘{’ token
   18 | char* pgettext(char* context, char* msgid); {
      |                                             ^
make[2]: *** [es-core/CMakeFiles/es-core.dir/build.make:230: es-core/CMakeFiles/es-core.dir/src/LocaleES.cpp.o] Error 1

I had been building it via building Batocera and pointing the makefile at my repo, but I had to do a clean build (that's still in progress) so I was trying to build ES by itself and just copy it over when it was done.

"libintl" libary ( and HAVE_INTL directive ) is probably missing.

On the first try with the 8Bitdo Pro+ in Mac (DualShock) mode, pressing l2 or r2 part way skipped the mapping. Pressing l2 all the way mapped to an axis properly, but r2 would not map at all. Changing the controller to XInput mode worked fine. On every future try, the triggers wouldn't map at all.
Oddly, I had to do it twice, es.customargs=--debug in batocera.conf did not start it in debug mode, there was nothing in the logs and when I ssh'd in and checked top, it wasn't in the task info. When I got it running in debug mode, there didn't seem to be anything useful in the log. It's really strange, it's like it's not seeing the axis at all, but it's still skipping it as if I'm holding something that's already mapped. I don't get "already in use" if I go back and try to map it again though, it just says not assigned.
After a controller firmware update, I got better results - L2 mapped to button 6, but R2 mapped to Axis 5+. I remapped L2 a few times, it alternated between Button 6 and Not Defined before finally hitting Axis 2+.
I suspect this is just 8BitDo weirdness since a firmware update fixed it (sort of), but maybe the filter could use a little tweaking. It looks like if it sees Axis+ and Axis- it maps, but this controller is only sending Axis+ for the most part unless it releases during the mapping.
Here's the relevant part of the log (which is missing the ones that went to not defined):
2022-05-29 19:18:54	DEBUG	Processing inputs for l2 :
2022-05-29 19:18:54	DEBUG	 -2: Button 6=
2022-05-29 19:18:54	DEBUG	 -2: Axis 2+=
2022-05-29 19:18:54	DEBUG	 -2: Button 6 =
2022-05-29 19:18:54	DEBUG	 -> Assigned input : 2: Button 6=
2022-05-29 19:18:54	INFO	  Mapping [Button 6] -> l2
2022-05-29 19:18:55	DEBUG	Processing inputs for r2 :
2022-05-29 19:18:55	DEBUG	 -2: Button 7=
2022-05-29 19:18:55	DEBUG	 -2: Axis 5+=
2022-05-29 19:18:55	DEBUG	 -2: Axis 5- =
2022-05-29 19:18:55	DEBUG	 -2: Button 7 =
2022-05-29 19:18:55	DEBUG	 -> Assigned input : 2: Axis 5+=
2022-05-29 19:18:55	INFO	  Mapping [Axis 5+] -> r2
2022-05-29 19:19:01	DEBUG	Processing inputs for l2 :
2022-05-29 19:19:01	DEBUG	 -2: Button 6=
2022-05-29 19:19:01	DEBUG	 -2: Axis 2+=
2022-05-29 19:19:01	DEBUG	 -2: Button 6 =
2022-05-29 19:19:01	DEBUG	 -> Assigned input : 2: Button 6=
2022-05-29 19:19:01	INFO	  Mapping [Button 6] -> l2
2022-05-29 19:19:04	DEBUG	Processing inputs for l2 :
2022-05-29 19:19:04	DEBUG	 -2: Button 6=
2022-05-29 19:19:04	DEBUG	 -2: Axis 2+=
2022-05-29 19:19:04	DEBUG	 -2: Axis 2- =
2022-05-29 19:19:04	DEBUG	 -2: Button 6 =
2022-05-29 19:19:04	DEBUG	 -> Assigned input : 2: Axis 2+=
2022-05-29 19:19:04	INFO	  Mapping [Axis 2+] -> l2

@TVsIan delete your .sdl2 folder should be under /userdata/system then reboot & retry.
That usually fixes button mapping issues when axis is not registering.

@TVsIan delete your .sdl2 folder should be under /userdata/system then reboot & retry.
That usually fixes button mapping issues when axis is not registering.

That was it, worked perfectly on the first try. Looks like the change is good to go.

Good to go, let's get it in people's hands to verify with a wider array of controllers.

You log is really strange, in some cas, there's only one Axis 2+ in the received inputs. There's no event to tell it's released (  Axis 2- ).
As we're waiting to 2 inputs ( pressed/released -> altAxis.size() >= 2 ), it takes the button.


Italian translation

Added Italian translation

Hi,
Thank you for contributing!
Your commit is not signed, please check the following to sign it.
See :
Adding A GPG Key To Your Github Account
GPG Signing Old Commits
And Please see https://github.com/codeigniter4/shield/pull/235#issuecomment-1153050805


Update 2.0 App Insights migration instructions for .NET Framework

https://docs.microsoft.com/aspnet/core/migration/1x-to-2x/#rely-on-application-insights-light-up-features
If targeting .NET Framework, an explicit App Insights SDK package reference is required. In addition, the UseApplicationInsights extension method still needs to be called. Without these 2 things in place, the "light up" feature of VS 2017 doesn't work.

When was it deprecated?

@davidfowl Ah I misread a doc I was looking at. AppBuilder.UseApplicationInsightsExceptionTelemetry() is deprecated, not UseApplicationInsights on WebHostBuider.... disregard


Add example of display_data with png image

For now, I included an implementation of base64encode and base64decode in the notebook, but this should probably be put into another package. The xtl?

Eventually, we should probably provide wrappers for display_data for the different supported mimetypes, like in IPython here https://github.com/ipython/ipython/blob/36ab971deab9c2822a1558caaa3ba99a49deb789/IPython/core/display.py#L20
@carreau, you may have an opinion about how such wrappers should look like with the lessons learned from core IPython. Is there anything you would do differently?

Apologies for the long time to review.
I think in general users will not face the display_data but more the display_*() and also just display(). I,  tend to prefer display() with a the include/exclude kwargs, but it's more difficult to discover than display_png, display_html... etc.
One think that just didn't clicked in my head was xeus::json::object(), which I think I would have done with xeus::json::empty(), as object() did not resonate with me. But that might just be because of not having written c++ in a while.

Thanks @Carreau
In fact I was wondering if you would do this differently than in IPython (in terms of API), since we don't have backward compatibility constraints here...


Implement GetYdoc query and Ydoc model

Query script
{
  GetYdoc(id: "doc_id") {
    data
    versions {
      createdAt
      snapshot
    }
  }
}

coverage: 88.426% (+0.03%) from 88.394% when pulling 5b34e2d952826062560b554d4690a7943fd881bc on feature/ydoc into f98df4352aebd3981932b9d7b34e5f5e2087ea39 on master.


Deserialize stageref datums into instances of RemoteFlowFuture

This fixes a bug where stages that return a FlowFuture cause subsequent stages to fail because the stageref datum that is created, and passed to the subsequent stage, cannot be deserialized.
Note: this still causes a failure for stages returning an instance of ExternalFlowFuture. Some restructuring of the deserialization code needs to be made before instances of these can be constructed.

Yes!


Add support for @NullUnmarked

Handling for @NullMarked is here:
https://github.com/jspecify/nullness-checker-for-checker-framework/blob/02a51b070ece23700a617d3e5b89d0c42e1df514/src/main/java/com/google/jspecify/nullness/NullSpecAnnotatedTypeFactory.java#L821
To handle @NullUnmarked, I think we'd need:

a check similar to hasNullMarkedOrEquivalent, with triggers...
logic to add all the defaults of the initialDefaultsAreEmpty case, plus probably additional logic to override the UNBOUNDED_WILDCARD_UPPER_BOUND default set in the @NullMarked case to make it explicitly nullnessOperatorUnspecified

Obviously, as with #16, we'd also have the possibility of conflicting annotations, and we'd want to test the new support in general :)

Fixed by #62.


support consistentHash when pods distributed in different nodes in same podIP

What type of PR is this?
/kind bug
What this PR does / why we need it:
As shown below，podIP can be same, but consistentHash use podIP as the key to get instance, so I choose PodName instead.

/lgtm

/approve


Concurrency issue when provisioning multiple encrypted CephFS instances

When creating multiple pods with separate PVC's the ceph-csi might fail to provision some of the encrypted cephfs instances.
The error from the pods logs is the following:
MountVolume.SetUp failed for volume "pvc-443ef844-03ce-4b87-affe-a802009aa915" : rpc error: code = Internal desc = no fscrypt policy set on directory "/var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/32418680d66053d8dac8f56697397c8f91f36ca386dbb8d0a0d642bb76609721/globalmount/ceph-csi-encrypted": file or directory "/var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/32418680d66053d8dac8f56697397c8f91f36ca386dbb8d0a0d642bb76609721/globalmount/ceph-csi-encrypted" is not encrypted

From this it seems setting up the encryption fails in the ceph-csi from the cephfs-csi plugin logs this can be seen, which makes me suspect a concurrency issue:
E0426 12:53:04.134079       1 fscrypt.go:262] ID: 9782 Req-ID: 0001-0009-rook-ceph-0000000000000002-a3186144-9960-42dd-9fce-4cc125117e1a fscrypt: Failed to apply protector (see also kernel log): %!w(*actions.ErrDifferentFilesystem=&{0xc00157b130 0xc00208a140})

Environment
This problem is reproducible in the rook development environment from master and kernel support can be setup for example by following the instructions that was provided in this PR #3460
The following bash script can be executed and the problem should be seen at least for me it happens every time without exception only variance is how many pods fail to deploy
#!/bin/bash

for i in {1..10}
do
    # Generate unique names for the pod and PVC using the counter variable
    pod_name="pod-$i"
    pvc_name="pvc-$i"

    echo "${pvc_name}"
    echo "${pod_name}"

    # Your command to create a pod and PVC with unique names
    cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: $pod_name
spec:
  containers:
  - name: my-container
    image: nginx
    volumeMounts:
    - mountPath: /var/myVolume
      name: my-volume
  volumes:
  - name: my-volume
    persistentVolumeClaim:
      claimName: $pvc_name
EOF

    cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: $pvc_name
spec:
 storageClassName: rook-cephfs
 accessModes:
    - ReadWriteOnce
 resources:
    requests:
      storage: 1Gi
EOF
    # If sleep is uncommented this code runs without problems!
    # sleep 10
done

I will try to debug this further but if anyone has any ideas or pointer regarding it I am all ears or if anyone has seen this by chance and has some ideas, thanks!

Will keep digging into the issue, can also upload the full logs here if anyone is interested!

It appears to me that this would be ideally addressed within the fscrypt module. I'll open an issue there and see what their response is. Explanation below, other option I can think of currently would be to limit the concurrency.
The problem seems to arise from the fact that when a new mount is created, the UpdateMountInfo function in the fscrypt module is called. However, this function recreates the mountsByDevice map each time it's called. Consequently, the memory references of the mount objects get updated. This results in a mismatch in policy.apply cause we store the old reference in the fscryptContext (%!w(*actions.ErrDifferentFilesystem=&{0xc00157b130 0xc00208a140}).
So, when the lookup from the map is performed and compared to the context in the policy.apply, the memory addresses don't match, even though the device number and path are the same in the new mount object.
I tested if we, keep the old references in the map and only update new this issue is resolved so let's hope that is acceptable for fscrypt

Great find, thanks for identifying the issue! Let us know if you need assistance with a fix for fscrypt.

Thanks for the offer, but the change was small so I got it!
Here is the PR: https://github.com/google/fscrypt/pull/413
@nixpanic should we keep this issue open to upgrade the fscrypt version once it is available?

@nixpanic should we keep this issue open to upgrade the fscrypt version once it is available?

If you want to keep this open until Ceph-CSI rebased the package, that is fine. I leave it up to you what you want to do.

The fscrypt PR is merged, but when discussing with maintainers they mentioned it might be months until the next release..

The fscrypt PR is merged, but when discussing with maintainers they mentioned it might be months until the next release..

@NymanRobin we can update the go.mod to point to the exact commit that we require until we get the next release.

Thanks for the help getting the changes in all!
Is there any plans for an patch release of 3.11, this is not super urgent just thought I would ask in case there is a plan already

@NymanRobin not yet, we will plan it next 1 or 2 week.


Does it support in PHP version <IP_ADDRESS>

[InvalidArgumentException]
Could not find package spatie/laravel-activitylog at any version matching your PHP version <IP_ADDRESS>

Nope, this package is PHP 7 only.


CVE-2007-4559 Patch

Patching CVE-2007-4559
Hi, we are security researchers from the Advanced Research Center at Trellix. We have began a campaign to patch a widespread bug named CVE-2007-4559. CVE-2007-4559 is a 15 year old bug in the Python tarfile package. By using extract() or extractall() on a tarfile object without sanitizing input, a maliciously crafted .tar file could perform a directory path traversal attack. We found at least one unsantized extractall() in your codebase and are providing a patch for you via pull request. The patch essentially checks to see if all tarfile members will be extracted safely and throws an exception otherwise. We encourage you to use this patch or your own solution to secure against CVE-2007-4559. Further technical information about the vulnerability can be found in this blog.
If you have further questions you may contact us through this projects lead researcher Kasimir Schulz.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi, Thanks for your contribution, I noticed there's a similar PR send here, https://github.com/PaddlePaddle/FastDeploy/pull/315
But after the code merge, I met this problem, extractall() takes from 1 to 3 positional arguments but 4 were given, do you have any idea on this problem?

Hi, @TrellixVulnTeam Thanks for your contribution, I noticed there's a similar PR send here, PaddlePaddle/FastDeploy#315
But after the code merge, I met this problem, extractall() takes from 1 to 3 positional arguments but 4 were given, do you have any idea on this problem?

numeric_owner in tar.extractall() should be a keyword argument as per Python 3.5+ docs.
tar.extractall(path, members, numeric_owner=numeric_owner)


Include d3-sparql inside the d3 organization

We would be happy to develop the d3-sparql plugin further inside the d3 organisation and allow others to participate.

Yes, no, probably, wrong place to ask?

The repositories in the d3 organization are ones I have personally committed to maintaining, so I think it would make more sense if you keep the d3-sparql repository under your own organization or account for now.
If you want to attract others to contribute to (and use) d3-sparql, I would recommend listing it on the D3 Wiki and announcing it on the d3-js Google group and D3 Slack. Thank you!

Okay, did already list in the wiki.
Then I hoped more that as described here https://bost.ocks.org/mike/d3-plugin/ that this helps with onboarding and organizing new developers.
Thank you!

That was my original plan, but I think it works out better when it’s more obvious who the primary maintainers are. I’ve updated my plugin article accordingly! Thanks again.

Fair enough, so lets see that with time we can eventually convince you to become a maintainer (-,


ComplexDecoder

Hello, I found that compared with your paper, your code has a conv layer reduced in ComplexDecoder. Could you tell me the reason or if I misunderstand your paper/code? Thank you.

Thank you for your note. We originally planned it as the paper to have 2 layers at the end one with 64 channels and then we shrink it to 2 by last layer. According to the trials, the last convolution layer is enough, I don't think having this extra 64 layer will affect the scores that much though.


output name of torrent and fix speed calculation

Codecov Report

Merging #12 into master will increase coverage by 0.27%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #12      +/-   ##
==========================================
+ Coverage   89.42%   89.69%   +0.27%
==========================================
  Files          15       15
  Lines        1021     1029       +8
==========================================
+ Hits          913      923      +10
+ Misses        108      106       -2


Incorrect Links on the Main Menu

Links on the menu are incorrect. You don' t have to leave the current directory to anchor to modules.

This is essentially part of #53, because I have these links as being "owned" by the website around gatherling.  Definitely I'll fix the defaults for now.


Updates List filter_map to remove deprecated syntax.

I updated the syntax for filter_map, because it is deprecated.

Thanks!

Haha was just gonna submit the exact same PR right now 😁 👍


[Question]:

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
Does fuzzy_citation need a specific tokenizer, text splitter or llm in order to work properly? I’m using
embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en", max_length=512)
service_context = ServiceContext.from_defaults(
    llm=llm,
    embed_model=embed_model,
    chunk_size=512,
    chunk_overlap=20
)

and zephyr-7b-beta for llm, but the extracted parts of the source node used for the response are always a bit off (and for some prompts, I get an IndexError: list index out of range error)

I think @logan-markewich  can answer this better 🦇🔦


Convert Dapr middlewares from fasthttp to net/http

Description
This PR (and its companion PR in components-contrib) converts all Dapr middlewares from fasthttp to net/http (standard library).
Why:

fasthttp as a server is going to be removed from Dapr, so the middlewares need to be converted (#4979)
When streaming is merged (#5170), the HTTP app channel switches from using fasthttp as client to net/http, so fasthttp middlewares can't be used (as implemented in #5132)
From the perspective of end users, writing middlewares for net/http is arguably simpler than writing them for fasthttp, given that it's part of the standard library and has lots of examples and existing libraries

Issue reference
Part of #4979
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[X] Code compiles correctly
[X] Created/updated tests
[X] Unit tests passing
[ ] End-to-end tests passing

Closed in favor of #5316 which also changes the HTTP channel to use net/http


Add errors for PATCH /user id & email changes

Let's return error messages if a user tries to change his email address or ID (yes, the latter is kind of obvious but we should explicitly state it can't be done). Right now updates to these two fields just returns the object with no changes (see below) but it should return errors.
I have added two new tests to the User Management test folder.
PATCH /api/v1/user HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODE1MjM0ODMsInVzZXJJRCI6IjVlNDJkMDliYzdiODFlZWI3N2M4MDQyOCIsImFkbWluIjpmYWxzZX0.ZE4fH8AgscQk8gWb9mbjDk_xKBTp0pvUmFli2-bAB3u4YZQqcUtMUZbqUyrwxn-iMTBsYcNWg8ZZ_9crUA3y3jQu5Xw78dm3I9ehALG87lLVZPgrMnarVSTxNmAMLINYHvTj_9DL0J3HRTzzsauahGi8yRF17pTT0nDWSi41nDkO-r6HCFXJGkq6TbW-ijbmI8ePiRd5Nz8wB2iaH3PQhG8NYPsxZ6JNzQ80ljHyK_HTtUkZ355FD9w5lqaJhwtsKasExACinBgyqbMFUcd9Fnsn1V4tISOY27dc7QIZ17E3O492x-He8cMDb_T6ymGLUtmrIdpY7YFVOYGTBltenw
User-Agent: PostmanRuntime/7.22.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 92127b72-13cf-4fef-ba6f-5f8fad189e2d
Host: localhost:8080
Accept-Encoding: gzip, deflate, br
Content-Length: 37
Connection: keep-alive
{
	"email"<EMAIL_ADDRESS>}
HTTP/1.1 200 OK
Cache-Control: no-cache, must-revalidate, no-store
Content-Type: application/json
Expires: 0
Pragma: no-cache
Date: Tue, 11 Feb 2020 16:04:49 GMT
Content-Length: 247
{"data":{"id":"5e42d09bc7b81eeb77c80428","email":"testuser.dc5e1@ic3.dev","firstName":"","lastName":"","userPhone":"","lastLoginIP":"","lastLoginDate":"0001-01-01T00:00:00Z","dailyEmailMatchNotification":null,"showTagsMatchedSinceLastLogin":null}}

PATCH /api/v1/user HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODE1MjM0ODMsInVzZXJJRCI6IjVlNDJkMDliYzdiODFlZWI3N2M4MDQyOCIsImFkbWluIjpmYWxzZX0.ZE4fH8AgscQk8gWb9mbjDk_xKBTp0pvUmFli2-bAB3u4YZQqcUtMUZbqUyrwxn-iMTBsYcNWg8ZZ_9crUA3y3jQu5Xw78dm3I9ehALG87lLVZPgrMnarVSTxNmAMLINYHvTj_9DL0J3HRTzzsauahGi8yRF17pTT0nDWSi41nDkO-r6HCFXJGkq6TbW-ijbmI8ePiRd5Nz8wB2iaH3PQhG8NYPsxZ6JNzQ80ljHyK_HTtUkZ355FD9w5lqaJhwtsKasExACinBgyqbMFUcd9Fnsn1V4tISOY27dc7QIZ17E3O492x-He8cMDb_T6ymGLUtmrIdpY7YFVOYGTBltenw
User-Agent: PostmanRuntime/7.22.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 141ce403-73c6-4539-a6de-bced367dc7ff
Host: localhost:8080
Accept-Encoding: gzip, deflate, br
Content-Length: 25
Connection: keep-alive
{
	"id": "someRandomID"
}
HTTP/1.1 200 OK
Cache-Control: no-cache, must-revalidate, no-store
Content-Type: application/json
Expires: 0
Pragma: no-cache
Date: Tue, 11 Feb 2020 16:08:57 GMT
Content-Length: 247
{"data":{"id":"5e42d09bc7b81eeb77c80428","email":"testuser.dc5e1@ic3.dev","firstName":"","lastName":"","userPhone":"","lastLoginIP":"","lastLoginDate":"0001-01-01T00:00:00Z","dailyEmailMatchNotification":null,"showTagsMatchedSinceLastLogin":null}}

@geoffturk This is also a tricky issue, we use the build-in JSON package which will filter out the unneeded fields in the first place.


Validate presence of zone ID when doing wrangler publish --release

If a user tries to run wrangler publish --release without a zone ID, they get a fairly opaque message back – we should validate that the zone ID is set before hitting the API at all
Error: ErrorMessage { msg: "⛔ There was an error featching your project\'s routes.\n Status Code: 400 Bad Request\n Msg: {"success\":false,\"errors\":[{\"code\":7003,\"message\":\"Could not route to \\/zones\\/workers\\/routes, perhaps your object identifier is invalid?\"},{\"code\":7000,\"message\":\"No route for that URI\"}],\"messages\":[],\"result\":null}" }

the zone_id is optional in the config. Not sure what the logic there, cc'ing @ashleygwilliams

Can you still reproduce it on master?

@xtuc if you don't do --release wrangler defaults to deploying to a workers.dev subdomain- which does not need a zone_id. the bug here is that wrangler does check if zone_id exists.. but zone_id is an empty string which is Some(). we need to check is_empty() not is some().

If a user tries to run wrangler publish --release without a zone ID, they get a fairly opaque message back – we should validate that the zone ID is set before hitting the API at all
Error: ErrorMessage { msg: "⛔ There was an error featching your project\'s routes.\n Status Code: 400 Bad Request\n Msg: {"success\":false,\"errors\":[{\"code\":7003,\"message\":\"Could not route to \\/zones\\/workers\\/routes, perhaps your object identifier is invalid?\"},{\"code\":7000,\"message\":\"No route for that URI\"}],\"messages\":[],\"result\":null}" }

https://keyport.tv/about


fixed deprecated SoundPool Constructor

The Constructor for SoundPool is deprecated since lollipop, this change executes the right Constructor/bulder depending on API Level

The Android backend is compiled against Android 4.4 (API 19). No matter how many times you submit the same pull request, it won't find classes added in API 21.
If you were not using the web editor for these changes, your IDE would have told you this.

Just noticed that too in jenkins, sry for requesting like a madman, im pretty new to git- however are there any plans to "update" the android backend to higher API´s ??


Set Watchdog MaxRSS in TaksChain

please advise on how one can set the watchdog maxrss specific for each task of a chain.
It'd be great if this absence of assignment parameter for it would let it configure to maxrss+10MB.

The same way you set AcqEra/ProcStr. Thus you can provide a dictionary keyed by the task name.
E.g.: https://github.com/dmwm/WMCore/blob/master/test/data/ReqMgr/requests/Integration/TaskChainPyquenZeemumuJets_PU.json#L81
I'm closing this issue. Feel free to reopen it if you need more assistance or so.


Create Basic Documentation

This is a prerequisite for #2, and it's something we should do now, for ourselves. This doesn't have to be perfectly comprehensible to outsiders, but it should cover any details that we might forget after a month.

Not assigning this to anyone yet because we probably have to deal with the other priority-high issues first.

Updated very basic stuff to the README.md, mainly the absolute bare bones to be able to run the program. Probably will add more in the future. On my branch

I'm closing this under the assumption that what we have is good enough and anything more falls under the "excellent documentation" issue.


Feature/version 3.0

Change log:

remove multiSigSign
rename multiSigSignHash to multiSigSign
do the same with verify and verifyHash

Problem: we have a lot of methods that do kind of the same but with small differences. Combine those methods into one.

Why do you want to remove musig?
In my use case it is very important

@LorhanSohaky Currently, we have two multisig methods:
multiSigSign()
multiSigSignHash()

And on top of that, multiSigSign has an additional parameter hashFn: Function|null = null. We have 3 ways to make a signature and in my opinion, this is very confusing.
I propose we omit the multiSigSign function and rename the multiSigSignHash function to multiSigSign in version 3.0. This way, we will have 1 function for making a multisigner signature and it would be more straightforward.
What do you think? I'm open to suggestions

@borislav-itskov Okay, I had only read the changelog and the last time I saw the project did not exists the hashFn parameter.
My only suggestion is to have a hash function just for convenience
export const hash = (msg: string) => ethers.utils.solidityKeccak256(['string'], [msg])


Lockdown some gem versions for Hakiri/security

Lockdown some gem versions for Hakiri/security

@bdunne @agrare Please review

See the second commit for the specific changes.


Decide a State Management

Decide a state management package, developers have their preferences. Needs to be decided before conrtibutions begin.
I'd suggest the GetX State Management since:

It's easy to implement
Initializes controllers only once
Doesn't need context
In case of reinitialization of a controller, it'll check if there is any instance created and simply return it
It comes with other features like Storage, Navigation, Dialog, Snackbar, Network Calls etc.

I would disagree with using GetX
It has a lot of things inbuilt but it comes at a cost. Cost of maintaining it. It has a huge API surface and what if one day the dev decides stop maintaining it. Then you have to not only migrate state management but also all the other things like navigation and dialogs and what not.
Also GetX acts like a whole new framework upon flutter.
I would suggest using BLoC or Provider/Riverpod as they are battle tested and does one thing right that is state management.

Using very_good_cli is preferable. It use bloc state management.

Using very_good_cli is preferable. It use bloc state management.

Please read the very_good_cli

I'd suggest Riverpod

Checked out this appwrite_flutter template https://github.com/lohanidamodar/flutter_appwrite_starter
the person uses Riverpod for state management. This looks good to add.

I'd suggest Riverpod too.

I honestly cannot contribute with code rn as I already have a lot on my plate. I can help with issues and PR reviews.
We can do a project as features. Similar to what it gives with the skeleton example app

Riverpod in my case
From demador who is also among the core appwrite team and his examples on flutter he also uses riverpod, not that he forcefully suggests it but i also go with riverpod here in the long run
GetX has mixed acceptance.

I would have loved to use cubit but it seems Riverpod will have it, in that case, that's cool too. so yes Riverpod.


Celestia RPC client

Update or replace rs-cnc with something with uses the Celestia Node JSON-RPC
Some prior work from Celestia:
https://github.com/rollkit/celestia-openrpc/pull/4/files

There is a client code generator for rust using the open rpc generator: https://www.npmjs.com/package/@open-rpc/generator-client
Can't speak to whether it generates anything worthwhile, but it is likely a good starting point.

I have started working on this in branch https://github.com/astriaorg/astria/tree/celestia_json_rpc (note that at the time of this writing the referenced celestia-node:test image is a local image where I forked celestia-node:v0.10.1 to add curl and jq to the image so that I can get the genesis hash from celestia-app).
Using jsonrpsee_proc_macros it's actually pretty straight forward to generate the relevant Rust boilerplate to interact with the celestia json RPC.
I am currently stuck on registering a token with the node that I can use to interact with the permissioned JSON RPC methods. I performed the following steps:
# enter the container running celestia-node
> kubectl exec --stdin --tty -n test sequencer-relayer-environment-deployment-6789699b69-fsddm -c celestia-bridge -- /bin/sh
# try to create a token with write permissions, keeping all other arguments the same as when starting the celestia bridge node
$ genesis_hash=$(curl -s -S -X GET "http://<IP_ADDRESS>:26657/block?height=1" | jq -er '.result.block_id.hash')
$ export CELESTIA_CUSTOM="test:$genesish_hash"
$ celestia bridge auth write --node.store home_dir/bridge --keyring.accname $validator_key_name
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiXX0.gdHm9UFlPcUS-aP13klGWqieX89q99MrisRgZzCGGRA

Inserting that token into the header map as Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiXX0.gdHm9UFlPcUS-aP13klGWqieX89q99MrisRgZzCGGRA gives permission issues. This is from the celestia-node logs:
2023-05-26T22:59:23.262Z	WARN	rpc	go-jsonrpc@v0.1.9/handler.go:334	error in RPC call to 'state.SubmitPayForBlob': missing permission to invoke 'SubmitPayForBlob' (need 'write'):
    github.com/filecoin-project/go-jsonrpc/auth.PermissionedProxy.func1
        /go/pkg/mod/github.com/filecoin-project/go-jsonrpc@v0.1.9/auth/auth.go:65

Relevant issue
https://github.com/celestiaorg/celestia-node/issues/2321


COMP: Initialize CXX standard in ITK_USE_FILE

Code that builds against ITK may not be built with a sufficient or
compatible C++ standard.
Use ITKInitializeCXXStandard.cmake in client code, which calls
include(${ITK_USE_FILE})
according to our existing documentation, which will set
CMAKE_CXX_STANDARD and CMAKE_CXX_STANDARD_REQUIRED if not already set.
To address build errors as discussed in:
https://discourse.itk.org/t/hello-world-from-itk-examples-installation-not-compiling-for-itk-5-3/4441/8

CircleCI build addressed in #2765


[Feature Request] Gift cards

Gift cards
Deny the use of Gift Cards to purchase some products, such as Gift Cards
https://github.com/boxbilling/boxbilling/issues/1271
https://github.com/boxbilling/boxbilling/issues/1266

This feature request is over a year old and it seems to be very low priority, also probably not a high level of demand for selling hosting, etc. although I can see why they might be useful for digital downloads.
Closing this issue for now, although it may be revisited in the future.


Revert "Fixed the latitude value, and removed the Details page until …

…we populate it with some data"

working again!


test-branch/execute-job/wrong-commit-sha-on-pr/2817cf9f-c511-4f4c-8953-52f978b4d06d

PR for testing 6544a163e852696eaca3f9f86b7754224e9e1222

/canonical/self-hosted-runners/run-workflows 931ad21dd9ace68aaa0a7d341e94de96ad93fa6b


enable podman-remote on windows

build a podman-remote binary for windows that allows users to use the
remote client on windows and interact with podman on linux system.
Signed-off-by: baude<EMAIL_ADDRESS>

LGTM

@vrothberg what do i have to do to make the world happy here?

I really don't like moving code around for the vague goal of 'making it compile' with no further logic. We already have a bunch of _linux.go files hanging around from our last attempt to make that happen... Let's not pretend that this code is designed to run anywhere except a Linux system, even if it doesn't compile there. IMO, drop any code that needs a compile check in an _linux file, because however good our intentions are, we probably won't clean this up much in the future, and we already left a bit of a mess last time we tried this.

I'm going to regret merging this before my stuff (merge conflicts are gonna hurt), but ah well
/lgtm

it's you or me! today it's you!


Sync CDOT develop with USDOT master

This PR pulls the latest commits from USDOT master into CDOT develop. This includes no changes to any files, but ensures we have a complete git history.

Merging this one since there are actually no updates here besides being on the same commit lol.


theme

"statusBar.noFolderBackground": "#29AFCC",
"statusBar.debuggingBackground": "#FB607F"

Quiet light

half type name | size:4 | perm | owner | mtime | ctime | mode


Fix api change logs page and its link

@slohia-adobe can you please review it?

@slohia-adobe can you please review it?


Using this with react-virtualized Grid

First of all - this looks like an awesome project, thank you for that!
I want to use it with react-virtualized's Grid where the rows are sortable. I cannot use the List as I have multiple columns and I cannot use it with the Table because I have too many columns and therefore need horizontal scrolling.
The issue that I am facing is that the Grid does not have a rowRenderer callback as the Table or List has (it only has cellRenderer and cellRenderer), thus I don't know what to wrap the SortableElement around. Do you have any ideas or have you seen any examples of this usage?

Similar to #315  🤔

I'll update this by mentioning that I've got this to work by implementing a cellRangeRenderer callback on the grid https://github.com/bvaughn/react-virtualized/blob/master/docs/Grid.md
I think it would be awesome with an example on this lib that shows that.
Here's my implementation (rowCellRangeRenderer.tsx) which needs to be updated to do better caching of the rows:
import * as React from 'react';
import {
  Grid,
  GridCellProps,
  GridCellRangeProps,
  List,
  Table,
} from 'react-virtualized';

/**
 * Default implementation of cellRangeRenderer used by Grid.
 * This renderer supports cell-caching while the user is scrolling.
 */

export interface IGridRowProps {
  children: React.ReactNode[];
  isScrolling: boolean;
  isVisible: boolean;
  key: string;
  parent: Grid | List | Table;
  rowIndex: number;
  style: React.CSSProperties;
}

export type GridRowRenderer = (props: IGridRowProps) => JSX.Element;

export const rowCellRangeRenderer = (rowRenderer: GridRowRenderer) => ({
  cellCache,
  cellRenderer,
  columnSizeAndPositionManager,
  columnStartIndex,
  columnStopIndex,
  deferredMeasurementCache,
  horizontalOffsetAdjustment,
  isScrolling,
  parent, // Grid (or List or Table)
  rowSizeAndPositionManager,
  rowStartIndex,
  rowStopIndex,
  styleCache,
  verticalOffsetAdjustment,
  visibleColumnIndices,
  visibleRowIndices,
}: GridCellRangeProps) => {
  const renderedRows: React.ReactNode[] = [];

  // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).
  // User cannot scroll beyond these size limitations.
  // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.
  // We should never cache styles for compressed offsets though as this can lead to bugs.
  // See issue #576 for more.
  const areOffsetsAdjusted =
    columnSizeAndPositionManager.areOffsetsAdjusted() ||
    rowSizeAndPositionManager.areOffsetsAdjusted();

  const canCacheStyle = !isScrolling && !areOffsetsAdjusted;

  for (let rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
    const rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(
      rowIndex,
    );

    const renderedCells: React.ReactNode[] = [];
    const rowKey = `${rowIndex}`;

    for (
      let columnIndex = columnStartIndex;
      columnIndex <= columnStopIndex;
      columnIndex++
    ) {
      const columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(
        columnIndex,
      );
      const isCellVisible =
        columnIndex >= visibleColumnIndices.start &&
        columnIndex <= visibleColumnIndices.stop &&
        rowIndex >= visibleRowIndices.start &&
        rowIndex <= visibleRowIndices.stop;
      const cellKey = `${rowIndex}-${columnIndex}`;
      let cellStyle: React.CSSProperties;

      // Cache style objects so shallow-compare doesn't re-render unnecessarily.
      if (canCacheStyle && styleCache[cellKey]) {
        cellStyle = styleCache[cellKey];
      } else {
        // In deferred mode, cells will be initially rendered before we know their size.
        // Don't interfere with CellMeasurer's measurements by setting an invalid size.
        if (
          deferredMeasurementCache &&
          !deferredMeasurementCache.has(rowIndex, columnIndex)
        ) {
          // Position not-yet-measured cells at top/left 0,0,
          // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.
          // Positioning them further to the right/bottom influences their measured size.
          cellStyle = {
            height: 'auto',
            left: 0,
            position: 'absolute',
            top: 0,
            width: 'auto',
          };
        } else {
          cellStyle = {
            height: rowDatum.size,
            left: columnDatum.offset + horizontalOffsetAdjustment,
            position: 'absolute',
            top: 0,
            width: columnDatum.size,
          };

          styleCache[cellKey] = cellStyle;
        }
      }

      const cellRendererParams: GridCellProps = {
        columnIndex,
        isScrolling,
        isVisible: isCellVisible,
        key: cellKey,
        parent,
        rowIndex,
        style: cellStyle,
      };

      let renderedCell: React.ReactNode;

      // Avoid re-creating cells while scrolling.
      // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
      // If a scroll is in progress- cache and reuse cells.
      // This cache will be thrown away once scrolling completes.
      // However if we are scaling scroll positions and sizes, we should also avoid caching.
      // This is because the offset changes slightly as scroll position changes and caching leads to stale values.
      // For more info refer to issue #395
      if (
        isScrolling &&
        !horizontalOffsetAdjustment &&
        !verticalOffsetAdjustment
      ) {
        if (!cellCache[cellKey]) {
          cellCache[cellKey] = cellRenderer(cellRendererParams);
        }

        renderedCell = cellCache[cellKey];

        // If the user is no longer scrolling, don't cache cells.
        // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.
      } else {
        renderedCell = cellRenderer(cellRendererParams);
      }

      if (renderedCell == null || renderedCell === false) {
        continue;
      }

      if (process.env.NODE_ENV !== 'production') {
        warnAboutMissingStyle(parent, renderedCell);
      }

      renderedCells.push(renderedCell);
    }

    const isRowVisible =
      rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;
    let rowStyle: React.CSSProperties;

    // Cache style objects so shallow-compare doesn't re-render unnecessarily.
    if (canCacheStyle && styleCache[rowKey]) {
      rowStyle = styleCache[rowKey];
    } else {
      rowStyle = {
        height: rowDatum.size,
        left: 0,
        position: 'absolute',
        right: 0,
        top: rowDatum.offset + verticalOffsetAdjustment,
      };

      styleCache[rowKey] = rowStyle;
    }

    const rowRendererParams: IGridRowProps = {
      children: renderedCells,
      isScrolling,
      isVisible: isRowVisible,
      key: rowKey,
      parent,
      rowIndex,
      style: rowStyle,
    };

    // The cache block is commented out - as caching rows when scrolling horizontally wont
    // render correctly when scrolling to new columns.
    // If re-enabled, its cache key should contain the range of column indecies that it shows.
    const renderedRow = rowRenderer(rowRendererParams);

    // Avoid re-creating cells while scrolling.
    // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
    // If a scroll is in progress- cache and reuse cells.
    // This cache will be thrown away once scrolling completes.
    // However if we are scaling scroll positions and sizes, we should also avoid caching.
    // This is because the offset changes slightly as scroll position changes and caching leads to stale values.
    // For more info refer to issue #395

    /*
    if (
      isScrolling &&
      !horizontalOffsetAdjustment &&
      !verticalOffsetAdjustment
    ) {
      if (!cellCache[rowKey]) {
        cellCache[rowKey] = rowRenderer(rowRendererParams);
      }

      renderedRow = cellCache[rowKey];

      // If the user is no longer scrolling, don't cache cells.
      // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.
    } else {
      renderedRow = rowRenderer(rowRendererParams);
    }
    */

    if (renderedRow == null) {
      continue;
    }

    if (process.env.NODE_ENV !== 'production') {
      warnAboutMissingStyle(parent, renderedRow);
    }

    renderedRows.push(renderedRow);
  }

  return renderedRows;
};

function warnAboutMissingStyle(parent: any, renderedCell: any) {
  if (process.env.NODE_ENV !== 'production') {
    if (renderedCell) {
      // If the direct child is a CellMeasurer, then we should check its child
      // See issue #611
      if (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag) {
        renderedCell = renderedCell.props.children;
      }

      if (
        renderedCell &&
        renderedCell.props &&
        renderedCell.props.style === undefined &&
        parent.__warnedAboutMissingStyle !== true
      ) {
        parent.__warnedAboutMissingStyle = true;
        // tslint:disable-next-line:no-console
        console.warn(
          'Rendered cell should include style property for positioning.',
        );
      }
    }
  }
}

@kraenhansen, thanks for sharing your rowCellRangeRenderer implementation. Can you also share how you tie it all together? How do you integrate Grid with SortableContainer, SortableElement?


[WebP] Add support for animated WebP images.

WebP supports animated "photos" as well which are essentially GIFs but at a fraction of the file size & at a higher resolution. Any plans on supporting this in the future? If not, happy to look into creating a PR

Didn't see that this is already supported

@wlegate We would love to support this!  It's been discussed, but unfortunately, we lack the resources to prioritize this particular area in the near future.  If you did put up a PR, we'd be able to support reviewing it and would give feedback to converge on landing it!
That said, it would be very important to make the libwebp dependency an optional one.  The .podspec configuration already shows how to do this for one other project I believe.  Also, AsyncDisplayKit supports this in how it includes PINRemoteImage, although it's included by default.
Ideally, if you do investigate this, it would be great if you could do it in the context of both non-ASDK and ASDK users.  There's a generic image animation protocol in ASDK that ties in with PINRemoteImage already (for GIF) support, and it was designed with future WebP support in mind, so it should be feasible.  The great thing about supporting ASDK with this is that it allows async decoding to be triggered before the content is onscreen, and can clean up these large-memory items when they start moving too far offscreen, so having support for WebP there would make for a great companion to any app with WebP needs in production.

+1 interested in this feature

+1

@garrettmoon - my team also has a use case for this now (we’d love to benefit from Texture + PINRemoteImage prefetching and async decoding, because FLAnimatedImage is not resulting in good performance).
If anyone in the community is interested in developing this, it looks like plenty of people would benefit from your work!

On Sep 5, 2017, at 2:08 AM, Allen<EMAIL_ADDRESS>wrote:
+1
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/pinterest/PINRemoteImage/issues/289#issuecomment-327117396, or mute the thread https://github.com/notifications/unsubscribe-auth/AAigA62nw10zLzFgWmdcoJOOaj1xTx3wks5sfQ95gaJpZM4LNqDv.

hey @appleguy we are planning to use this as well @ Giphy -- love to help

@dustfire I'm happy to help with architectural suggestions and code review if you're willing to take up the actual development work. Feel free to send me an email for faster response if you're interested (garrett@pinterest.com).

This is done on master!


A

Please just close this if you don't have an issue.

Yes please
On Tue, 22 Sep, 2020, 18:28 CRO-THEHACKER<EMAIL_ADDRESS>wrote:

Please just close this if you don't have an issue.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Manisso/fsociety/issues/126#issuecomment-696703822,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANJ7AHIZCUSETT7HZAD6JL3SHCNQDANCNFSM4RVSX47A
.


Google cloud java package summary is unreachable.

This URL is unreachable?
https://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/com/google/cloud/compute/package-summary.html
This is breaking tests that depend on it (not sure if it affects customers), for example: https://travis-ci.org/GoogleCloudPlatform/appengine-plugins-core/builds/338186738#L1512
Has this page moved? Or is it just down?

It's at https://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/com/google/cloud/compute/deprecated/package-summary.html now. It is because of https://github.com/GoogleCloudPlatform/google-cloud-java/pull/2819 .


[FRONTEND] Fix the issue that the key of JIT function maybe random.

Issue

The frozenset is unordered set. The serialization of the frozenset maybe in random order.

Fix
Change frozenset(sorted) to sorted(frozenset).

Thanks, you're correct, set is unordered (even though dict is ordered).  So easy to forget!
But get_env_vars() returns a dict, so there's no reason at all to pass it through a set or frozenset.  (Also the dict is already sorted, so there's no reason to sort it again, but that seems somewhat defensible.)
Can you try getting rid of the frozenset altogether?

Thanks, you're correct, set is unordered (even though dict is ordered). So easy to forget!
But get_env_vars() returns a dict, so there's no reason at all to pass it through a set or frozenset. (Also the dict is already sorted, so there's no reason to sort it again, but that seems somewhat defensible.)
Can you try getting rid of the frozenset altogether?

Thanks, you're correct, set is unordered (even though dict is ordered). So easy to forget!
But get_env_vars() returns a dict, so there's no reason at all to pass it through a set or frozenset. (Also the dict is already sorted, so there's no reason to sort it again, but that seems somewhat defensible.)
Can you try getting rid of the frozenset altogether?

Yes. Removing the frozenset also works.
The original idea is that the frozenset may remove some duplicated items. But seems the duplicated items is not possible for this case.

Thanks!
Sorry to nit, but we're inside a Python f-string, so str() shouldn't be necessary, right?  I thought that was automatically applied to values inside an f-string.


Fix pull request 4700

Purpose
Fixes pull request #4700
Motivation
The updated API (using v1/apps for Workload API objects like DaemonSet, StatefulSet, and Deployment) introduced in #4700 requires a LabelSelector object for each Deployment, DaemonSet, and SatetfulSet object. The #4700 does not include those LabelSelector objects. This causes  the rejection of the K8S generic deployment scripts by the K8S API validator.
Changes
deployment/kubernetes/generic/k8s-1-9-and-above/bookie.yml :

Add a LabelSelector object matching pods labels (required by API)
to the DaemonSet:spec object

deployment/kubernetes/generic/k8s-1-9-and-above/broker.yml :

Add a LabelSelector object matching pods labels (required by API)
to the Deployment:spec object .

deployment/kubernetes/generic/k8s-1-9-and-above/monitoring.yml :

Add a LabelSelector object matching pods labels (required by API)
to the Deployment:spec object for Prometheus.

Add a LabelSelector object matching pods labels (required by API)
to the Deployment:spec object for Grafana.

Add a LabelSelector object matching pods labels (required by API)
to the Deployment:spec object for the Pulsar Dashboard.

deployment/kubernetes/generic/k8s-1-9-and-above/proxy.yml :

Add a LabelSelector object matching pods labels (required by API)
to the Deployment:spec object.

deployment/kubernetes/generic/k8s-1-9-and-above/proxy.yml :

Add a LabelSelector object matching pods labels (required by API)
to the StatefulSet:spec object.

Changing StatefulSet:spec:template:metadata:labels:cluster from 'us-central' to 'local'. All other scripts assume cluster is 'local' and not 'us-central'.


Added progress meter package

Added the ProgressMeter package to install.jl

Closing, resolved in production instance.


Snapcraft package release is not updating with the latest versions

Describe the bug
Hello, seems that the snapcraft repo is not updating with the latest versions of the package. Currently still on version 9.23 where the current code version is 9.26
To Reproduce
Snap refresh, no new package found
Expected behavior
Package is published correctly to Snapcraft and I can update to the latest available version

There was a problem with renoveatebot.json config as @jmgiaever changed the string delimiter in latest commits and the regex used to fetch the version failed. Fixed now and bumped :)

Thanks for the quick fix @robertsLando . 🥳


Update RELEASES.md for 1.2.0

If you contributed to PB 1.2.0, take a look at the README.md and make sure you agree with how your contribution is described.  Feel free to propose a different description or propose that a contribution should be moved to another category (i.e. PR 123 really should be a minor change and not a bugfix).
cc @GoFroggyRun @hayleefay @MattHJensen

@hdoupe look good to me!


Replace mailto links for Shipwright email lists

Mailto links do not work well across some browser/OS combinations.
Replacing these with the admin lists page hyperlink, which includes a
Subscribe/Unsubscribe form that works for any modern web browser.

/assign @qu1queee

/assign @qu1queee

/lgtm

/approved

The links and subscribe work for me
But the response emails for both user and dev mail groups are:

[EXTERNAL] confirm 98988a1e7e21d191b2a895b229432cb7bb363033
[EXTERNAL] confirm 79bf4a1a8f66186e91e6f5fc9a9ce402071929f5

Not sure if we can make its title better.

/assign @qu1queee

/approve


github action detection (ci-info pending)

After digging a bit, I found out that the plugin you use to detect CI, does not support GitHub action with the pinned version. There was no release (https://github.com/watson/ci-info/issues/48) since support was implemented (https://github.com/watson/ci-info/pull/42). Consider pinning a commit, or forking the project.

Since ci-info is widely used, it is more preferred waiting for update instead of forking. Seems @sibiraj-s started working ~4 days ago ❤  so giving more time for release

Since ci-info is widely used, it is more preferred waiting for update instead of forking. Seems @sibiraj-s started working ~4 days ago ❤  so giving more time for release

Side note, it seems that GitHub actions now set CI=true since April 2020: https://github.blog/changelog/2020-04-15-github-actions-sets-the-ci-environment-variable-to-true/

Side note, it seems that GitHub actions now set CI=true since April 2020: https://github.blog/changelog/2020-04-15-github-actions-sets-the-ci-environment-variable-to-true/

Hi, I am a maintainer of the project but do not have publish permissions. I have raised a dispute to npm, the issue should be resolved shortly.
That said.
Detecting CI on Github Actions should work without latest version as it sets CI=true as mentioned by @Atinux . In case  if other changes in master is required, temporarily you can pin it to the latest commit for now.

Hi, I am a maintainer of the project but do not have publish permissions. I have raised a dispute to npm, the issue should be resolved shortly.
That said.
Detecting CI on Github Actions should work without latest version as it sets CI=true as mentioned by @Atinux . In case  if other changes in master is required, temporarily you can pin it to the latest commit for now.

Published a new version v3.0.0 just now.

Thanks! Landed by 2.3.0


(Suggestion) Youtube Annotations

I remember during early YT there was this feature where a creator could put these "annotations" to their videos in the form on a translucent box or speech bubble. These annotations would either add to the video itself or just be random with no context at all. Sometimes you could even click one and it would bring you to another video/website. Is it possible to replicate this today or is it unrestorable?

Actually I just found out about another extension that restores annotations very recently:
Github: https://github.com/isaackd/AnnotationsRestored
Firefox: https://addons.mozilla.org/firefox/addon/annotations-restored/
Chrome: https://chrome.google.com/webstore/detail/annotations-restored-for/daabpdmgkghdbfljmeahnplkcldbeefg
I don't think I could implement this into CustomTube though. There's hardly a reason to though, that extension seems to work flawlessly with CustomTube from what I've seen.


Decouple Providing from PutBlock

Summary
Move providing outside of the PutBlock function and into its own.
Details
Only the data availability header and access to the context routing IPFS api is needed in order to provide to the IPFS DHT, so it is possible to decouple providing from the PutBlock. This gives us the advantage of having more control over when we provide and when we do not. This has already been done in the PR that inspired this issue, #427, but should likely be decoupled from that PR into its own.
Action Items

[ ] create a new Provide function
[ ] remove providing from PutBlock

References

this would make #374 cleaner, as no providing should be performed when saving and loading block data to the local IPFS store.
natural continuation of #375
would eventually help with #423
Already implemented in #427

Falls outside of this repo. How and if the IPFS DHT will be used should be part of the discussion in celestiaorg/celestia-node#1


Not working with Playnite 10.*

Will there be a update, so the plugin will work with the new version of playnite (10.*)?

fixed with the last release


Unable to drag and drop a tool from one dock to another with deserialized layout.

I'm trying to save the layout of a DockControl to a file by using the 'official' Dock.Serializer package from nuget, but I've run into an issue. The tool is able to serialize a layout into a json file, and it can also load it back and deserialize it, and at first glance it seems fine, but if I try to move a tool tab from one dock to another, it completely fails. The dragged tab disappears, and after a few more tries the whole application crashes.
I've also tried this with my own custom xml serializer, but I get the same results. Note that the original layout that comes out of the Factory works as expected, and I can drag tabs around without any issues.
My Factory class is basically just a stripped-down copy of the sample Factory class, but it only creates two panels and two tools. I assume that this issue is caused by some sort of hidden property that is being set in the Factory class, but it's not saved into the json file by the serializer.
This is a short video that demonstrated this problem:
https://user-images.githubusercontent.com/45818400/118377520-63fbb080-b5d6-11eb-8b66-d11664878578.mp4
And here is the full crash log from the video.

Did you initialize layout?

Did you initialize layout?

Yes, once the layout is loaded, it is handled the same way as if it was made by a Factory. You can see in the first second of the video, layout is the deserialized object, and layout_f is the one made by the factory. If I use layout_f on line 29, everything works.

What version of Dock are you using ?

These are the nuget packages in my project:
Dock.Avalonia 0.10.4
Dock.Avalonia.Themes.Metro 0.9.12
Dock.Avalonia.Themes.Default 0.10.0
Dock.Model 0.10.4
Dock.Model.Avalonia 0.10.0
Dock.Model.ReactiveUI 0.10.4
Dock.Serializer 0.10.0

Ah Dock.Serializer is deprecated.

Try this

        private class ListContractResolver : DefaultContractResolver
        {
            private readonly Type _type;

            public ListContractResolver(Type type)
            {
                _type = type;
            }

            public override JsonContract ResolveContract(Type type)
            {
                if (type.GetTypeInfo().IsGenericType && type.GetGenericTypeDefinition() == typeof(IList<>))
                {
                    return base.ResolveContract(_type.MakeGenericType(type.GenericTypeArguments[0]));
                }
                return base.ResolveContract(type);
            }

            protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
            {
                return base.CreateProperties(type, memberSerialization).Where(p => p.Writable).ToList();
            }
        }

            var jsonSettings = new JsonSerializerSettings()
            {
                Formatting = Formatting.Indented,
                TypeNameHandling = TypeNameHandling.Objects,
                PreserveReferencesHandling = PreserveReferencesHandling.Objects,
                ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
                ContractResolver = new ListContractResolver(typeof(ObservableCollection<>)),
                NullValueHandling = NullValueHandling.Ignore,
                Converters =
                {
                    new KeyValuePairConverter()
                }
            };

            var rootDock = default(RootDock);
            var rootDockPath = System.IO.Path.Combine(fileSystem?.GetBaseDirectory(), "Core2D.layout");
            if (fileSystem.Exists(rootDockPath))
            {
                var jsonRootDock = fileSystem?.ReadUtf8Text(rootDockPath);
                if (!string.IsNullOrEmpty(jsonRootDock))
                {
                    rootDock = JsonConvert.DeserializeObject<RootDock>(jsonRootDock, jsonSettings);
                    if (rootDock is { })
                    {
                        editor.LoadLayout(rootDock);
                    }
                }
            }

               var jsonRootDock = JsonConvert.SerializeObject(editor.RootDock, jsonSettings);
                if (!string.IsNullOrEmpty(jsonRootDock))
                {
                    fileSystem?.WriteUtf8Text(rootDockPath, jsonRootDock);
                }


Unexpected extra permission READ_PHONE_STATE, why?

Bug Information
Version Number of Plugin: <IP_ADDRESS>
Device Tested On: Google Pixel
Simulator Tested On: API 22 to 26
Version of VS: 2017.4
Version of Xamarin: Android <IP_ADDRESS>
Versions of other things you are using: targeting API 26, InAppBilling <IP_ADDRESS>
Steps to reproduce the Behavior
Using with InAppBilling <IP_ADDRESS>
Expected Behavior
No extra permissions required, like in <IP_ADDRESS>
Actual Behavior
When restoring purchase getting error message about READ_PHONE_STATE permission, purchase not restored.
Code snippet
Screenshots

This would be a google issue: https://github.com/googlesamples/android-play-billing/issues/26


I need to set slider with slides of images and slides of big texts with scrolbar

http://idangero.us/swiper/#.V-voVyF97IU

thanks you i love you


Create tests with a greater variety of multiaddrs

Take inspiration from https://github.com/whyrusleeping/js-mafmt/blob/master/test/index.spec.js#L9-L131

Continued in https://github.com/ipfs-shipyard/ipfs-geoip/issues/60


Buzz 0.5.4 does not create a "srt" file.

I used the "Very High Mode" and the "High Mode" to transcribe a video wit automatic language detection.
The process in both cases seems to work, but at the end i did not get a "srt" file and no error messages.
I uninstalled Buzz 0.5.4 and reinstalled it, but no changes.
The i reinstalled Buzz 0.5.3 and everything works fine.
By the way, thanks for "Buzz".
 Easy to install and easy to use.

I just found your fix:
https://github.com/chidiwilliams/buzz/issues/152
after i send my issue.
Sorry for that. I have to test the fix.

The fix works fine.
"srt" files were created.
Thank you.

Great to hear it worked fine. The fix should be available in the next release.


[main] Update actions

Cron -knative-prow-robot
/cc knative/networking-wg-leads
/assign $knative/networking-wg-leads
Produced by: knative-sandbox/knobots/actions/update-actions
Details:

/lgtm
/approve


feat: http client integration

An effort to implement this: https://develop.sentry.dev/sdk/telemetry/traces/modules/requests/
Since we already have tracing without performance, this should be good to go.

@aldy505 We should document this (in _examples, and perhaps sentry-docs?), and also update changelog accordingly.


feat(refactor): ✨ better title, missing dependencies and better req.txt shell commands added

### What does this PR do?
Based on issue #226, I made same few changes to the original file to enhance the user experience for anyone attempting to use it.

better title,
missing dependencies
better req.txt generation shell commands added

cc @merveenoyan and @stevhliu.

LGTM thanks! Also pinging @sergiopaniego for a quick review as the chef of the recipe 🤗

Thank you very much 😊 Waiting for @sergiopaniego to check as well.

I think no need for adding this since this recipe is pretty general

View entire conversation on ReviewNB

left only one comment :)

@sergiopaniego I fixed the output images (I didn't mean to touch it but some weird reason git/reviewnb show as changes but  they are there) as for the title @merveenoyan  and @sergiopaniego please decide :)
But my reason was adding this because title is not clear which model we fine-tuning to so I wanted to make sure we clear on this instructions and title.
Thank you both of you 🤗

I’d stick with @merveenoyan 's suggestion. :smiley:

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@stevhliu  side note : the moment you merge we see doc builder message, I think there is something wrong with this too


Investigate diff performance

The diff code path is separate from the usual scanning code path and is much heavier than the latter in the following ways:

Each provided path is scanned (this is twice as many file extractions, scans, reports, etc.)
The source and destination paths are interrogated to see which files or behaviors appear in one or the other (or both)
If files are modified (not added or removed), an O(n^2) loop is used to build a list of reports (though this is not guaranteed to run)
A final diff report is returned

Even within the Diff code path, steps one, two, and four can run or steps one through four can run.
In cases where we're diffing packages with thousands files, the doubling up can tack on a substantial amount of time (and increase the resource usage overhead). For smaller packages or single files, this is not an issue. We used to only perform diff checks on library files, but there's always the possibility that excluding other file types would ignore critical findings.

I'm attempting to grab a profile of a diff between two Spark directories (just aarch64 and x86_64 so no version differences).
The memory usage is extremely high but we'll know more once the profiles are rendered.

I was able to pare down the memory usage by revisiting the concurrency here: https://github.com/chainguard-dev/bincapz/blob/bdcb6400223228bdf10efa48f9f8c9ed99d8524a/pkg/action/diff.go#L177-L197
When dealing with small numbers of files, this isn't an issue but, again, becomes problematic when looking at thousands or hundreds of thousands of files.
I'm still waiting to see how long a full Spark diff takes with my changes.


VAD not used in the code?

Hi
Even though Voice Activity Detection is present in the repository, I don't see the "interface.py" call the given VAD procedure helper methods (the init_noise() method and the filter() method, respectively) on input data. Seems like the GMM's are trained straight on generated features. Why is it this way?
If I am wrong, can you point me to the location where VAD is being done on enrolled speech data?
Thanks

It's only used in our GUI demo.


Updated to 0.14.17

@bkuhl i tried my best to update it based on the server-settings.example.json and did some env variable renaming

Because of the extensive changes, I think @zopanix should review this PR.

Any chance a version bump is going to land soon? 0.14.19 is the latest now, and it's been almost a month since the latest release here matched the version shipped on Steam. If there's something I can do to help I'd be happy to.

@pshendry use https://hub.docker.com/r/dtandersen/factorio i do it and it works great


prefer-destructuring

Current dependencies on/for this PR:

main

PR #59   👈

This comment was auto-generated by Graphite.


[ISSUE] QueryHistory.List, ListAll spins until context canceled

Description
The underlying QueryHistory.List response for a page by token can return its own token. Thus its getNextReq loops on that page token.
Reproduction
statementId := os.Args[1]
w := databricks.Must(databricks.NewWorkspaceClient())
all, err := w.QueryHistory.ListAll(ctx, sql.ListQueryHistoryRequest{FilterBy: &sql.QueryFilter{StatementIds:[]string{statementId}}})

Expected behavior
The API would not return the misleading token, or the client would respect ListQueriesResponse.HasNextPage=false, thus the call would terminate normally.
Is it a regression?
Unknown; I've only tried github.com/databricks/databricks-sdk-go v0.29.1, specifically SHA 32643d652c60ee4ce5ec1c43e4580efa569e33f6
Debug Logs

Extracted logs. In this example I execute a query (omitted), and then attempt to query its information by a known statementId.
The code that generated these logs was more like the following:
qis := w.QueryHistory.List(ctx, sql.ListQueryHistoryRequest{FilterBy: &sql.QueryFilter{StatementIds: []string{id}}})
qi, err := qis.Next(ctx)
if err == nil {
	qi, err = qis.Next(ctx)
}

[... calling List, then its Next once works.  Of note, the specified page_token repeats. ]
2024/01/23 14:05:21 [DEBUG] GET /api/2.0/sql/history/queries?filter_by.statement_ids=01eeba2a-bba0-113c-af74-f644430fc1f2&page_token=CkoKJDAxZWViYTJhLWJiYTAtMTEzYy1hZjc0LWY2NDQ0MzBmYzFmMhCevLW/0zEYouOrxufSoQEiEDQ1Nzg3ZmRhMjY1MmNkYzgoABInigEkMDFlZWJhMmEtYmJhMC0xMTNjLWFmNzQtZjY0NDQzMGZjMWYyGAE=
< HTTP/2.0 200 OK
< {
<   "has_next_page": false,
<   "next_page_token": "CkoKJDAxZWViYTJhLWJiYTAtMTEzYy1hZjc0LWY2NDQ0MzBmYzFmMhCevLW/0zEYouOrxufSoQEiEDQ1Nzg3ZmRhMjY1MmNk... (64 more bytes)"
< }
2024/01/23 14:05:21 [DEBUG] GET /api/2.0/sql/history/queries?filter_by.statement_ids=01eeba2a-bba0-113c-af74-f644430fc1f2&page_token=CkoKJDAxZWViYTJhLWJiYTAtMTEzYy1hZjc0LWY2NDQ0MzBmYzFmMhCevLW/0zEYouOrxufSoQEiEDQ1Nzg3ZmRhMjY1MmNkYzgoABInigEkMDFlZWJhMmEtYmJhMC0xMTNjLWFmNzQtZjY0NDQzMGZjMWYyGAE=
< HTTP/2.0 200 OK
< {
<   "has_next_page": false,
<   "next_page_token": "CkoKJDAxZWViYTJhLWJiYTAtMTEzYy1hZjc0LWY2NDQ0MzBmYzFmMhCevLW/0zEYouOrxufSoQEiEDQ1Nzg3ZmRhMjY1MmNk... (64 more bytes)"
< }
2024/01/23 14:05:21 [DEBUG] GET /api/2.0/sql/history/queries?filter_by.statement_ids=01eeba2a-bba0-113c-af74-f644430fc1f2&page_token=CkoKJDAxZWViYTJhLWJiYTAtMTEzYy1hZjc0LWY2NDQ0MzBmYzFmMhCevLW/0zEYouOrxufSoQEiEDQ1Nzg3ZmRhMjY1MmNkYzgoABInigEkMDFlZWJhMmEtYmJhMC0xMTNjLWFmNzQtZjY0NDQzMGZjMWYyGAE=
< HTTP/2.0 200 OK
< {
<   "has_next_page": false,
<   "next_page_token": "CkoKJDAxZWViYTJhLWJiYTAtMTEzYy1hZjc0LWY2NDQ0MzBmYzFmMhCevLW/0zEYouOrxufSoQEiEDQ1Nzg3ZmRhMjY1MmNk... (64 more bytes)"
< }
[ ... continues until canceled or, in this case, pipe breaks ]

Other Information
Forking locally, using a go.mod replace, and changing the following line to if resp.NextPageToken == "" || !resp.HasNextPage { addresses the symptom. This is obviously not the correct way to implement the fix.
https://github.com/databricks/databricks-sdk-go/blob/32643d652c60ee4ce5ec1c43e4580efa569e33f6/service/sql/api.go#L1188
Additional context
I encountered this while exploring ways to look up row counts for a query executed via databricks-sql-go. I captured its "queryId" and used it equivalently to statementId above. Perhaps there's a better approach for that. :)

Thanks for reporting this! We're treating this as a bug on the API side and work with the downstream team to not return a page token on the last page (in the spirit of https://google.aip.dev/132).

 But I believe it's good now. I no longer see a next_page_token in the traced response.
2024/03/22 13:28:24 [DEBUG] GET /api/2.0/sql/history/queries?filter_by.statement_ids=01eee879-f768-1e26-8dc8-59e5e640439f
< HTTP/2.0 200 OK
< {
<   "has_next_page": false,
<   "res": [


Misc changes

Hello.
I made some improvements, so now your plugin looks like real usable plugin. For full list of changes please read commit messages.
If you will accept PR, please make a new release with version 0.0.1, and register your package in bower registry. Something like that:
git clone git@github.com:Saluev/bootstrap-file-dialog.git
cd bootstrap-file-dialog
git tag -a 'v0.0.1' -m 'Release v0.0.1'
git push origin --tags
sudo apt-get install nodejs -y
sudo npm install bower -g
bower register bootstrap-file-dialog git://github.com/Saluev/bootstrap-file-dialog.git

Wow. Thanks a lot!

Would you like similar PR here?

Don't think so. That project is in its very beginning currently.

Last commit 6 months ago

Yeah, very-very :) Ok then


Outbound provisioning manager triggers two POST requests during user creation

Describe the issue:
When the user is created through self-sign up flow, the Outbound provisioning manager triggers two POST requests to the external IDP. This happens intermittently due to a race condition.

The user gets created initially and the outbound provisioning connector triggers the user creation request.
After the user creation, the listeners that are present in the Identity server update the user's Identity claims such as http://wso2.org/claims/identity/accountState, http://wso2.org/claims/identity/accountLocked, http://wso2.org/claims/identity/lockedReason, etc.
Since the user who is created is modified by the listeners, there are multiple provisioning requests received by the outbound provisioning manager to update the last modified time claim.
If the provisioning thread for user creation has not yet completed when the update request from the listeners reach, then the provisioning identifier would not stored[1] as a result another POST request is triggered[2]

How to reproduce:

Configure outbound provisioning using the doc [3].
Self-sign up to the server[4].
Intermittently there would be two POST requests sent to the external IDP.
one with the full payload having all attributes.

{"emails":["tharaka@email.com"],"addresses":[{"type":"country","value":"Sri Lanka"}],"password":"123abc","meta":{"created":"2022-01-07T00:54:43"},"schemas":["urn:scim:schemas:core:1.0"],"name":{"familyName":"Wijekoon","givenName":"Tharaka"},"userName":"PRIMARY/test110"}

second one with no attributes.

{"password":"123abc","schemas":["urn:scim:schemas:core:1.0"],"userName":"PRIMARY/test110"}

Thereafter the following error would be seen(the entry has already been added when the initial provisioning thread completes).
TID: [-1234] [] [2022-01-07 06:24:52,823] [5969a37d-44c9-451a-8372-01627e7666da] ERROR {org.wso2.carbon.identity.provisioning.ProvisioningThread} -  Provisioning for Entity test110 For operation = POST org.wso2.carbon.identity.application.common.IdentityApplicationManagementException: Error occurred while adding Provisioning entity for tenant -1234
	at org.wso2.carbon.identity.provisioning.dao.ProvisioningManagementDAO.addProvisioningEntity(ProvisioningManagementDAO.java:95)
	at org.wso2.carbon.identity.provisioning.dao.CacheBackedProvisioningMgtDAO.addProvisioningEntity(CacheBackedProvisioningMgtDAO.java:58)
	at org.wso2.carbon.identity.provisioning.ProvisioningThread.storeProvisionedEntityIdentifier(ProvisioningThread.java:129)
	at org.wso2.carbon.identity.provisioning.ProvisioningThread.call(ProvisioningThread.java:83)
	at org.wso2.carbon.identity.provisioning.ProvisioningThread.call(ProvisioningThread.java:32)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Unique index or primary key violation: "PUBLIC.CONSTRAINT_INDEX_C20 ON PUBLIC.IDP_PROVISIONING_ENTITY(ENTITY_TYPE, TENANT_ID, ENTITY_LOCAL_USERSTORE, ENTITY_NAME, PROVISIONING_CONFIG_ID) VALUES 87"; SQL statement:
INSERT INTO IDP_PROVISIONING_ENTITY (PROVISIONING_CONFIG_ID, ENTITY_TYPE, ENTITY_LOCAL_USERSTORE, ENTITY_NAME, ENTITY_VALUE, TENANT_ID, ENTITY_LOCAL_ID) VALUES (?, ?, ?, ?, ?, ?,?) [23505-199]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:457)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
	at org.h2.message.DbException.get(DbException.java:205)
	at org.h2.message.DbException.get(DbException.java:181)
	at org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:103)
	at org.h2.mvstore.db.MVSecondaryIndex.checkUnique(MVSecondaryIndex.java:220)
	at org.h2.mvstore.db.MVSecondaryIndex.add(MVSecondaryIndex.java:196)
	at org.h2.mvstore.db.MVTable.addRow(MVTable.java:546)
	at org.h2.command.dml.Insert.insertRows(Insert.java:180)
	at org.h2.command.dml.Insert.update(Insert.java:132)
	at org.h2.command.CommandContainer.update(CommandContainer.java:133)
	at org.h2.command.Command.executeUpdate(Command.java:267)
	at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:250)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
	at com.sun.proxy.$Proxy55.execute(Unknown Source)
	at org.wso2.carbon.identity.provisioning.dao.ProvisioningManagementDAO.addProvisioningEntity(ProvisioningManagementDAO.java:90)
	... 8 more

Expected behavior:
There should only be a single POST request sent to the external IDP for user creation.
Environment information

Product Version: [5.11.0]

Related issues:
https://github.com/wso2/product-is/issues/12926
[1]https://github.com/wso2/carbon-identity-framework/blob/master/components/provisioning/org.wso2.carbon.identity.provisioning/src/main/java/org/wso2/carbon/identity/provisioning/ProvisioningThread.java#L83
[2]https://github.com/wso2/carbon-identity-framework/blob/master/components/provisioning/org.wso2.carbon.identity.provisioning/src/main/java/org/wso2/carbon/identity/provisioning/OutboundProvisioningManager.java#L439-L440
[3]https://is.docs.wso2.com/en/latest/learn/outbound-provisioning-with-scim/
[4]https://is.docs.wso2.com/en/latest/learn/self-registration/

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Edited the opening sentence to be more specific

Specific data types can be stored in KV, so I edited the opening sentence to make it more specific and accurate. Also, the keys are not necessarily encryption keys, they can be signing keys, too...

@x509cert : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@x509cert: Great contribution. Thanks for this -- we'll incorporate your proposed revision immediately. #sign-off


Misc refactor to NETCore 1.0.0

#3 and #2
Changes:

Shared project removed
Fixed targets to NETSTD 1.4 and NET45
Added build\tests scripts
Added ability to pack nuget itself.
Changed appveyor to using version number\tag and build sctripts
Fixed dependiciesies
Add docs
Misc code refactoring.
Deleted not need files (obj and json.lock)

@lvermeulen If you disargee with any changes tell me, discuss and I revent them.


Fix Firefox support

Tested on 40.0.2/Linux

It wasn't the fault of Firefox. The Privacy Badger extension I'm using on my development machine was the problem.
Possibly related to https://github.com/EFForg/privacybadgerchrome/issues/135, as debugger.io makes use of both jsDelivr and CDNJS for the app itself, as well as Google's CDN for users.


Add a basic polyfill to the TextDecoder page

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[x] New documentation
[ ] Correction or update

Details
The TextEncoder page has a working polyfill to encode a string as UTF-8. It would be great if the TextDecoder page had a matching polyfill to reverse the operation for UTF-8 inputs.

Thanks for filing!
But we don't want MDN to be a distributor of polyfills. See https://discourse.mozilla.org/t/mdn-rfc-001-mdn-wiki-pages-shouldnt-be-a-distributor-of-polyfills/24500. As soon as we have a plan for it we will remove existing polyfills from MDN and point people at a service like polyfill.io.
In the meantime we shouldn't be adding new polyfills.