Question on Padding Calculation for Building PyTorch Networks

Hi. I am confused about this tiny piece of utility function:
https://github.com/microsoft/nn-Meter/blob/d0c9cef65c3dd1f703ab9ca177f44ad988f52e5e/nn_meter/builder/nn_modules/torch_networks/utils.py#L17
According to PyTorch:
$$h_o = \lfloor \frac{h_i + 2p - k}{s} + 1 \rfloor,$$
where $h_i, h_o$ specify the input and output height, $p$ specifies the padding, $k$ specifies the kernel size, and $s$ specifies the stride. The equation can be transformed as:
$$p \rightarrow \frac{s(h_o - 1) + k - h_i}{2} = \frac{s h_o - h_i + k - s}{2} = \frac{k - (h_i \% s) - s}{2}.$$
From my understanding, the comment in the function implies that $s h_o$ and $h_i$ should be close to each other ($h_o = h_i // s$) in order to avoid large calculated padding results. I also understand that due to the upper bound, it will get complicated to get the exact $p$ to meet the requirement. My question here is about the code implementation of [this line]:(https://github.com/microsoft/nn-Meter/blob/d0c9cef65c3dd1f703ab9ca177f44ad988f52e5e/nn_meter/builder/nn_modules/torch_networks/utils.py#L26):
https://github.com/microsoft/nn-Meter/blob/d0c9cef65c3dd1f703ab9ca177f44ad988f52e5e/nn_meter/builder/nn_modules/torch_networks/utils.py#L26
Shouldn't the calculation subtract an extra $s$ (i.e., pad = max(ks - (hw % s) - s, 0))?
For confirmation, here is some test code with example ($k=11, s=2, h=3$):
>>> k = 11
>>> s = 2
>>> h = 3
# test the function
>>> p0 = get_padding(ks=k, s=s, hw=h)
>>> p0
5
# calculate directly using the inferred equation
>>> p1 = (k - (h % s) - s) / 2
>>> p1
4.0
# for confirmation, calculate h_o with p0 and p1 (expected to be h // s)
>>> (h + 2 * p0 - k) / s + 1
2.0
>>> (h + 2 * p1 - k) / s + 1
1.0
>>> h // s
1

Hi,
Thank you for your thoughtful question! We use this padding method to ensure that the output shape is consistent with the same situation for TensorFlow. In TensorFlow, tf.keras.layers.Conv2D has a parameter "padding" with choice to be as 'same'. However, for PyTorch, padding='same' doesn’t support any stride values other than 1. Therefore, we wrote this padding code, which produces the same output shape as in TensorFlow for the same configuration.
As for the example you mentioned, in Tensorflow, the output shape is 2
import tensorflow as tf
from tensorflow import keras

inputs = keras.Input(shape=[3, 3, 128], batch_size=1)
layer = keras.layers.Conv2D(128, kernel_size=11, strides=2, padding="same")
print(layer(inputs).shape)

Thanks,
Jiahang

Hi,
Thank you for your thoughtful question! We use this padding method to ensure that the output shape is consistent with the same situation for TensorFlow. In TensorFlow, tf.keras.layers.Conv2D has a parameter "padding" with choice to be as 'same'. However, for PyTorch, padding='same' doesn’t support any stride values other than 1. Therefore, we wrote this padding code, which produces the same output shape as in TensorFlow for the same configuration.
As for the example you mentioned, in Tensorflow, the output shape is 2
import tensorflow as tf
from tensorflow import keras

inputs = keras.Input(shape=[3, 3, 128], batch_size=1)
layer = keras.layers.Conv2D(128, kernel_size=11, strides=2, padding="same")
print(layer(inputs).shape)

Thanks, Jiahang

Thank you for the reply. I went to check Tensorflow's code and found this implementation:

Hi,
Thank you for your thoughtful question! We use this padding method to ensure that the output shape is consistent with the same situation for TensorFlow. In TensorFlow, tf.keras.layers.Conv2D has a parameter "padding" with choice to be as 'same'. However, for PyTorch, padding='same' doesn’t support any stride values other than 1. Therefore, we wrote this padding code, which produces the same output shape as in TensorFlow for the same configuration.
As for the example you mentioned, in Tensorflow, the output shape is 2
import tensorflow as tf
from tensorflow import keras

inputs = keras.Input(shape=[3, 3, 128], batch_size=1)
layer = keras.layers.Conv2D(128, kernel_size=11, strides=2, padding="same")
print(layer(inputs).shape)

Thanks, Jiahang

Thank you for the reply. The fact that the idea came from Tensorflow is very helpful. For confirmation, I went to check the code from Tensorflow and found this implementation. It seems like output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides[i]) actually refers to $h // s + 1$, which is different from the docstring in your function:
https://github.com/microsoft/nn-Meter/blob/d0c9cef65c3dd1f703ab9ca177f44ad988f52e5e/nn_meter/builder/nn_modules/torch_networks/utils.py#L20
I would recommend changing the documentation to avoid misunderstanding, though it is trivial.
Again, thanks for the quick reply!


added files patched by Takis and change submodule URI scheme to HTTPS

changes on top of Guoming's fork for compiling ADCIRC

Guoming merged these changes into his fork; these changes are now in #11


New domain for Matthew Flint's blog

New domain, because daringsnowball.net isn't funny any more.

Thanks!


The Toolkit\Query class has been deprecated

With the release of Kirby 3.9.0, the Toolkit\Query class has been deprecated and should be replaced by Query\Query.

This is what is deprecated:

Old Kirby\Toolkit\Query has been deprecated and will be removed in Kirby 3.10.0. Use Kirby\Query\Query instead, e.g.Query::factory($query)->resolve($data).

- new Query($query, $data): Passing $data to constructor will be deprecated. Use (new Query($query))->resolve($data) instead.

- Query::result() will be deprecated. Use $query->resolve($data) instead.

You can check the PR here: https://github.com/getkirby/kirby/pull/4626

thanks @vauvarin
that should be fine in v3 of plugin by now. i wont patch v2.
https://github.com/bnomei/kirby3-janitor/blob/eaa6e5510e5f08c3902724cc98751ab0a34a727c/commands/render.php#L14)


Supertrend indicator to be checked

Please check this after merging the ATR, this indicator need ATR class

 Trend - 27 C2 : Super Trend


[FEATURE] Batch upgrade of Mount Pods

What feature you'd like to add:

batch upgrade by node
batch upgrade in all clusters

Why is this feature needed:

potential small improvement: check for "umount /jfs/xxx" in mount pod's prestop hook command, and abort the upgrade with an error when needed.


ADD number abbreviations for tokens

#Fixes https://github.com/vultisig/vultisig-android/issues/872

@yvebe
All requested changes have been resolved


startCardPayment

when I use startCardPayment
the button  {save card no} is always enable and cant chang it to be disable

Hi @YoussefAGS Can you please share with us the configuration that you are passing to the SDK?


we have windows and linux images facing issue with windows is there any solution for both images replicate to other regions

image operating system "windows" cannot be used on this platform
130 | Error response from daemon: No such image: ******.dkr.ecr.us-east-1.amazonaws.com/:test.2
131 | login target registry in us-west-2
132 | WARNING! Using --password via the CLI is
@mbp @jpeddicord @hyandell @lloydchang

@harshathadkapally, Thank you for the input, I can confirm the issue of supporting Windows container image, due to the limitation of cross platform image pulling and pushing, as you know, currently this solution is using CodeBuild which is running in Linux environment, so it's not possible to pull and push Windows container image. The other approach to use CodeBuild with Windows environment may also only support limited versions of container images due to the Windows container version compatibility. I will keep thinking the appropriate solution to support Windows container images.


Create a requireAuth wrapper for verifyToken, populateUser, restrictToAuth

Saving key strokes is what we like doing. :smile:

Dependent on #109 getting merged.

Do we want to create a general way to allow people to created nested hooks?

I looked at the code for the restrictToAuth hook, quite short and it seems to assume that hook.params.user has been populated.
I commented out verifyToken and populateUser,
app.service('api/ducks').before({
  all: [
    // authentication.hooks.verifyToken(),
    // authentication.hooks.populateUser(),
    authentication.hooks.restrictToAuthenticated(),
    (hook) => {
      console.log('================the hook looks like:===================')
      console.log(hook)
      console.log('=======================================================')
    },
  ],

and it still seems to work. the hook object looks like:
   token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJfaWQiOiI1N2M3ZDEwZTU1ZDc0ODU5MDU0ZTBmMWUiLCJpYXQiOjE0NzI3MTY4NTMsImV4cCI6MTQ3MjgwMzI1MywiaXNzIjoiZmVhdGhlcnMifQ.kFSpBOmlc7UDLARyFbdBDsuNCYYUQTkv085NT_FE-34',
     user:
      { _id: 57c7d10e55d74859054e0f1e,
        firstName: 'foo',
        lastName: 'bar',
        username: 'baz',
        __v: 0 } },

:laughing: Is there something else that populates them?  I'm using socket.io

Closing as those hooks have been re-shuffled into the new authentication chain so you won't need to repeat them.


Lock Screen Buttons not working on Samsung Devices with android 10+

Hello.
Buttons on lock screen not working properly.
Pause won't fire and prev/next is visible but i set to false.

Buttons on lock screen work on lock screen for me (tested on Samsung devices with Android 10). Did you subscribe to events & begin the listen process in your code  as well?
The Prev/Next issue was previously observed: https://github.com/ghenry22/cordova-plugin-music-controls2/issues/58

Buttons on lock screen work on lock screen for me (tested on Samsung devices with Android 10). Did you subscribe to events & begin the listen process in your code as well?
The Prev/Next issue was previously observed: #58

Yes, the code working on my device, on emulators but dont work on Samsung devices.

Works perfect on Samsung device with Android 11 for me.  Unfortunately that's the only test device that I have.
What events are you listening for to catch play/pause?

https://developer.samsung.com/remotetestlab/galaxy/rtlDeviceList.action
I use this to test

Take a look:
https://youtu.be/Syqfy1L09IM
This is my code:
`MusicControls.create({
cover: 'assets/imgs/icon.png',
track: 'Ao vivo!', // optional, default : ''
artist: 'Tabelando', // optional, default : ''
dismissable: true, // optional, default : false
hasScrubbing: false, // enable scrubbing from control center and lockscreen progress bar, optional
playIcon: 'media_play',
pauseIcon: 'media_pause',
prevIcon: 'media_prev',
nextIcon: 'media_next',
closeIcon: 'media_close',
notificationIcon: 'notification',
isPlaying: false,
hasNext: false,
hasPrev: false,
});
  MusicControls.updateIsPlaying(false);
  MusicControls.subscribe((action) => {
    console.log(action);
    const message = JSON.parse(action).message;
    switch (message) {
      case 'music-controls-pause':
        this.pauseAudio();
        break;
      case 'music-controls-play':
        this.playAudioAgain(true);
        break;
      case 'music-controls-destroy':
        this.platform.exitApp();
        break;
      case 'music-controls-toggle-play-pause':
        this.playAudioAgain(true);
        break;
      default:
        break;
    }
  });
  MusicControls.listen(); // activates the observable above`

Ionic:
Ionic CLI          : 6.13.1 (C:\Users\leobaccili\AppData\Roaming\npm\node_modules@ionic\cli)
Ionic Framework    : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.1
Cordova:
Cordova CLI       : 10.0.0
Cordova Platforms : android 9.1.0
Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 18 other plugins)
Utility:
cordova-res (update available: 0.15.3) : 0.15.2
native-run (update available: 1.3.0)   : 0.2.2
System:
Android SDK Tools : 26.1.1 (H:\Android\sdk)
NodeJS            : v12.19.0 (H:\nodejs\node.exe)
npm               : 6.14.8
OS                : Windows 10

Hopefully this answer comes in time, subscribing is done in this way:
this.musicControls.subscribe().subscribe(action => { .......
Source: https://ionicframework.com/docs/native/music-controls

I had the same issue on my Samsung Galaxy A41, Android 11.  I am using Quasar/Vue framework+Cordova Android 10.1.2
I needed to install the cordova-plugin-background-mode plugin.
After that the buttons on the lock screen are working fine.


Avidemux says Movie Writer's AVI has a "Malformed header"

Tested versions
Found in Godot 4.2
System information
Godot v4.2.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 with Max-Q Design (NVIDIA; <IP_ADDRESS>2) - Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (12 Threads)
Issue description
The AVI file generated by Movie Writer has a massive filesize and I need to transcode it to something more space-efficient in order to share it online.
However, my go-to tool for it, Avidemux, refuses to open the exported file. It shows a message box that says "Malformed Header" (or rather, its Japanese translation on my end) and fails to open it.
Steps to reproduce

Create a Godot 4 project
Export a video from it
Open the exported video on Avidemux

Minimal reproduction project (MRP)
Just in case:
fourtest.zip
And the AVI file generated by the project, which Avidemux refused to open:
test_avi.zip

How did you close Movie Maker mode? Make sure you don't kill the process or use the window manager's Close button, as this will result in an invalid AVI file as per the documentation.

How did you close Movie Maker mode? Make sure you don't kill the process by pressing F8, as this will result in an invalid AVI file as per the documentation.

I called get_tree().quit().


ci: added ci builds, tests, and deploys

This PR adds ci builds using Github actions.
Two of the steps are disabled:

Deploy step, it needs secrets set up on the maintainer's part (see: documentation
Tests, as described in issue #17, tests are currently not quite portable enough for me to set up in CI

fixes #15

Nice. I think the test project can be converted to be able to run it in the pipeline. Have a look at this PR: https://github.com/growthbook/growthbook-c-sharp/pull/13 ;-)

Oh I agree, just didn't have the time to do it (read: didn't want to invest more at the time) 😄.
Are you waiting on it to do your IGrowthBook tests?

@pascal89, PR #13 has been merged into main.

I'll fix this after eating 😄 , Thanks for merging #13

@darklordzw,
Let me know how you want to do this merge. I got all the tests moved over to XUnit.
You can see the PR here: https://github.com/Inforitnl/growthbook-c-sharp/pull/1
You can see the test results here: https://github.com/Inforitnl/growthbook-c-sharp/actions/runs/6698308487/job/18200066562?pr=1
And on this picture:

We can go 1 of 2 ways:

I can merge the PR#1 on our INFORIT branch, which will update this PR
You can merge this PR and then I will make a new one that will enable tests.

Just let me know and I'll make it happen 😄.
This will fix #17

@Mastermindzh, option #2 sounds good. I've merged this PR into main. Once the tests are ready, I'll update the secrets for the deploy step.
Thanks again for all your help!

No problem @darklordzw 😄.
Things were taking a while at our side so I decided to just do some stuff over the weekends/evenings to get the ball rolling.
Thanks for being so quick with reviews & merges.


Metric pods are not setting a sourcetype

What happened:
Kubernetes Metrics pods do not set a sourcetype.
What you expected to happen:
We should be setting a sourcetype.
How to reproduce it (as minimally and precisely as possible):
deploy SCK metrics chart and examine metric payload

Anything else we need to know?:
This is likely best fixed in a rfull eview of field names we are senfing as the field names are not cleanly normalized to ensure they match across metric types
Environment:

Kubernetes version (use kubectl version):

1.18

Ruby version (use ruby --version):
OS (e.g: cat /etc/os-release):
Ubuntu 18.04
Splunk version:
8.0.3
Others:
DSP 1.1 pictured above

Hey @matthewmodestino, I have drafted a PR, do you think it's a good idea to keep plugin name as sourcetype and tag as source in both metric and metric-aggr plugin?

Do you have an example of how those fields end up looking using plugin name?
Keeping it simple is probably best. As of now all metrics come in as "httpevent", the default when no sourcetype is set. Simply providing a sourcetype that allows  a user to filter down to "kube:metrics" or "kube:metrics:agg" is enough. Don't want it to be too granular.
https://docs.splunk.com/Documentation/Splunk/8.2.3/Data/Whysourcetypesmatter

@matthewmodestino Thanks for quick reply.
Source will look like sck-splunk-kubernetes-metrics and sck-splunk-kubernetes-metrics-aggregator in splunk.
kube:metrics or kube:metrics:agg is better option IMO
Thanks

Yeah I would keep in inline with the other sourcetypes SCK sends which already use the "kube:container:" or "kube:objects:". This format is also inline with other Splunk addon sourcetype naming conventions.


update syntaxes submodule to latest commit

What are you adding in this PR?

We have recently introduced syntax highlighting for the liquid doc tag in the liquid-tm-grammar repo. This PR updates the submodule commit in /vscode-extension/syntaxes to point to the latest commit
What's next? Any followup issues?

What did you learn?

Before you deploy

[ ] This PR includes a new checks or changes the configuration of a check

[ ] I included a minor bump changeset
[ ] It's in the allChecks array in src/checks/index.ts
[ ] I ran yarn build and committed the updated configuration files

[ ] If applicable, I've updated the theme-app-extension.yml config

[ ] I included a minor bump changeset
[ ] My feature is backward compatible

[ ] I included a patch bump changeset

I think we're ok without a changeset since we don't have official support for LiquidDoc yet, but will defer to CP on that

I think the rule should be to always have a changeset.
Anything on main that implicitly depends on something without a changeset is a bug-in-production risk. See #161
it won't happen in this particular case, but it shouldn't become a habit.

Also, I think we should wait till the tag is supported to syntax highlight it? OW we might give the impression that it's supported but it isn't.

Also, I think we should wait till the tag is supported to syntax highlight it? OW we might give the impression that it's supported but it isn't.

That makes sense. I'll add a changeset and we can ship it when the tag itself is ready.


[release-4.14] OCPBUGS-39100: Avoid Shared Access Key usage for Azure Storage Account when using Managed Identity based auth

Note that other than running go mod vendor (second commit in this PR), I also needed to make two manual changes to this PR:

bump go.opentelemetry.io/otel/exporters/otlp/otlptrace and go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc to v1.19.0 as per https://github.com/open-telemetry/opentelemetry-go/issues/4586 to fix an issue when running go mod tidy, this is why the vendored changes are bigger in this PR than in comparison with its sibling backports. This was also done on the PR against 4.15
Bring the pkg/storage/azure/azureclient over to 4.14. This package was created as part of an operator feature available on OCP >= 4.15, and so it doesn't exist on the 4.14 branch and had to be added manually. Go.mod and vendor files also needed to be updated to support this new package. The commits on this PR should clearly reflect what was needed, please let me know otherwise.

Note for QE
Because 4.14 is GA, we cannot backport the "containers/delete" permission. @rajdeepc2792 wrote the code in a way that storage account deletion should still proceed [when setting managementState: Removed] even after container deletion fails due to lack of permission, so please double check that is the case. If you find that not to be the case, we will still go ahead with this backport but we will create a pre-emptive bug describing the issue with a documented workaround (which we will need to figure out). Though I'm hoping it won't come to that 😅

/test e2e-azure-operator

@flavianmissi faced same problem as in here:- https://github.com/openshift/cluster-image-registry-operator/pull/1106#issuecomment-2318289019
But the changes looks correct, go mod vendor and go mod tidy doesn't give problem with the changes present in PR.

Checking e2e-azure-ovn operator logs and they're showing a bunch of these right at the end:
E0828 14:19:14.629603       1 controller.go:377] unable to sync: unable to sync storage configuration: storage.AccountsClient#CheckNameAvailability: Failure responding to request: StatusCode=401 -- Original Error: autorest/azure: Service returned an error. Status=401 Code="AuthenticationFailed" Message="Authentication failed. The 'Authorization' header is missing.", requeuing

It does look suspicious but I don't quite get the connection with the changes here... will retest and see if the same thing happens and take it from there. It's also strange that this is first showing up on 4.14 and not in any of the later branches.
/retest

I thought maybe the credentials request had changed between 4.15 and 4.14, but the changes are related to private endpoints, so it shouldn't affect other operators 🤔
git diff release-4.15..release-4.14 -- manifests/01-registry-credentials-request-azure.yaml
diff --git a/manifests/01-registry-credentials-request-azure.yaml b/manifests/01-registry-credentials-request-azure.yaml
index 57d23c00e..7b18899d3 100644
--- a/manifests/01-registry-credentials-request-azure.yaml
+++ b/manifests/01-registry-credentials-request-azure.yaml
@@ -6,7 +6,7 @@ metadata:
   name: openshift-image-registry-azure
   namespace: openshift-cloud-credential-operator
   annotations:
-    capability.openshift.io/name: ImageRegistry+CloudCredential
+    capability.openshift.io/name: ImageRegistry
     include.release.openshift.io/ibm-cloud-managed: "true"
     include.release.openshift.io/self-managed-high-availability: "true"
     include.release.openshift.io/single-node-developer: "true"
@@ -30,23 +30,6 @@ spec:
       - Microsoft.Storage/storageAccounts/delete
       - Microsoft.Storage/storageAccounts/listKeys/action
       - Microsoft.Resources/tags/write
-      # the permissions below are only necessary when users request
-      # the operator to configure a private storage account.
 I'm putting this on hold until we can determine the cause of the 401s on azure.
/hold
/retest

/test e2e-azure-ovn

Interesting, Raj's last run failed with a 409 error 🤔
level=error msg=Error: creating/updating Record Type (Subscription: "d38f1e38-4bed-438e-b227-833f997adf6a"
level=error msg=Resource Group Name: "os4-common"
level=error msg=Dns Zone Name: "ci.azure.devcluster.openshift.com"
level=error msg=Record Type: "CNAME"
level=error msg=Relative Record Set Name: "api.ci-op-kbb0szkw-fb062"): recordsets.RecordSetsClient#CreateOrUpdate: Failure sending request: StatusCode=409 -- Original Error: autorest/azure: Service returned an error. Status=<nil> <nil>

closing in favor of https://github.com/openshift/cluster-image-registry-operator/pull/1112, since it doesn't unnecessarily upgrade otel
/close


[Quality of Life] Add a way to list the available Services within an Enclave

Background & motivation
I'm attempting to use the @kurtosis-tech/autogpt-package enclave with kurtosis engine 0.82.6 (latest on apt as of writing) and am encountering an interesting problem when trying to attach a service, as suggested in the README.md, with
$ kurtosis service shell autogpt autogpt

🔵 The kurtosis enclave called autogpt is running -- I checked this with kurtosis enclave ls to ensure it was the case.

OUTPUT

Takeaways
Through this use-case I have come to believe that it would benefit users to have a way to list the available service names for an enclave. Even if this enclave was created or configured incorrectly--which is likely the case--this functionality would facilitate locating/affirmatively identifying this problem.
Desired behaviour
my suggestion would be to add subcommands as follows
$ kurtosis service list <enclave>

this command would then produce an output which displays similarly to kurtosis enclave ls, providing as much or as little information about each service which is available -- so long as each services' name is included. I believe this would be helpful functionality, and though I haven't looked over the codebase, hopefully this is possible, and even better, not very complicated, to implement.

 hi kurtosis team C: I've been away from developing much recently and haven't been around, but hopefully this will change and I can be an at least somewhat active member of your community. I still very much like the tool itself, and see significant potential. I hope you all are well since we last spoke.  Cheers, @zudsniper
How important is this to you?
Nice to have; this feature would make using Kurtosis more enjoyable.

Hey @zudsniper , we actually have this already with kurtosis enclave inspect! Give it a spin and let me know how it goes

Hey @zudsniper just wanted to check if this fixes your issue?

So sorry guys! I got what I needed totally out of inspect. My bad. Keep it real!


convert mapview to kotlin

Description
Fixes #

Added your feature that allows ...
Checklist

[ ] I have tested this on a device/simulator for each compatible OS
[ ] I updated the documentation with running yarn generate in the root folder
[ ] I mentioned this change in CHANGELOG.md
[ ] I updated the typings files (index.d.ts)
[ ] I added/ updated a sample (/example)

Screenshot OR Video

@felixgourdeau thank much for the PR.
Kotlin is something we'd like to adopt on the long run. Right now we can use java to consume v10 api.
I've did an attempt to migrate some class to kotlin, but I was getting unresolved supertypes build errors in certain circumstances. Which sounded like more a compiler bug than a legit error, so I had to revert my PR.
See: https://github.com/rnmapbox/maps/pull/1784, https://github.com/rnmapbox/maps/pull/1797

Thanks for your feedback @mfazekas !
I don't think we can use java for all of the v10 api, we need to switch to kotlin, at least for mapview.
The unresolved supertypes error you had in the CI mean that you also had to convert these class to kotlin in order to make it work. For example, unresolved supertypes: MarkerViewManager mean that MarkerViewManager also need to be converted to kotlin. That is why I had to convert more than one java file to kotlin, and not just MapView.
 It is caused by the main buildFlavor (located in src/main/java) that seems to be always included in the build, even with java.srcDirs = ['src/main/java-v10']. That is why I renamed src/main/java to src/main/java-legacy.
I totally agree with you about being gradual, and I am open to suggestion.

The unresolved supertypes error you had in the CI mean that you also had to convert these class to kotlin in order to make it work. For example, unresolved supertypes: MarkerViewManager mean that MarkerViewManager also need to be converted to kotlin. That is why I had to convert more than one java file to kotlin, and not just MapView.

Hm, ... Possible, but not sure why I have not seen it locally just on CI.

 It is caused by the main buildFlavor (located in src/main/java) that seems to be always included in the build, even with java.srcDirs = ['src/main/java-v10']. That is why I renamed src/main/java to src/main/java-legacy.

Also possible, will confirm that, thanks.
https://github.com/rnmapbox/maps/runs/5574375183?check_suite_focus=true

I totally agree with you about being gradual, and I am open to suggestion.

Feel free to open smallest PR possible that builds, then we can go on from there.

Hm, ... Possible, but not sure why I have not seen it locally just on CI.

I had to ./gradlew clean before building to make it fail locally

Feel free to open smallest PR possible that builds, then we can go on from there.

I'll reopen the PR to test it in the CI

@felixgourdeau thanks.
I've added a reorganisation PR at #1884, as that's easier to review without the kotlin changes.
You were right about the java directory included in classpath, in case kotlin is used, so we have to move java. I've moved java -> java-mapboxgl/common and java-mapbox -> java-mapboxgl/mapbox, java-maplibre to java-mapboxgl/maplibre.
Another issue for kotlin was that AbstractMapFeature was in wrong directory, that should be fixed as well.

@felixgourdeau I've remerged RCTMGLTerrain in kotlin to main, it compiles fine now thanks to rename from src/main/java and fix of package in AbstractMapFeature.
Can you submit PR-s for different components, so we can progress with Kotlin conversion.
Sorry for the trouble and thanks much for the help in adopting kotlin.

@mfazekas no problem. I'll close this PR and open a new PR with your java file reorg.
Thanks for your help


Use window control btns action

Hi All,
I want to create a window and assign two control btn, one for close the window and another one to open another window. should I add the btns to the group (I am using hardware keyboard) or add the window to the group is enough? I already added the window to the group but nothing happened and seems that I have to add btns separately. I want to make sure that if I am doing right.
Moreover, how can I scroll down the window if text is long using hardware keyboard? is it possible only by adding a software button ?

Scrolling of lv_page is added to dev-5.2. For more details see: #282


Let Authorizers return allowed permissions

See https://github.com/solid/community-server/pull/938#issuecomment-915200051
The idea would be that instead of failing or succeeding to indicate if the input permissions are allowed, they instead would return an object indicating for each existing permissions which of these would be allowed.
Some considerations:

Do we return an instance of PermissionSet or do we use different terms?
Would the LdpHandler then compare the output with the permissions it got from the RequestParser? Or do we scrap the permission parser and let the OperationHandlers reject based on the received permissions?
How do we generate the WAC-Allow header then? The main issue is that we need 2 objects there: the permissions for the current credentials AND the permissions for a public agent. We could have the authorizer return both, but this couples the behaviour closer to acl again since we're only doing this for an acl header.
Is this a good time to perhaps change the values of PermissionSet? Currently these values are tightly coupled to the acl predicates but perhaps we want to go to more generic terms.
The linked comment suggests making a CombinedAuthenticationHandler to combine the results, but we could also do this with a sequence/parallel handler that modified the input object, or create a new generic reduce handler or similar.

Regarding using more generic terms, those would be read, create, write, append, delete instead of the current control, read, write, append. I personally am in favor of making that switch (although I personally think delete doesn't have that much added value when you have write). One issue here would be the control boolean, but perhaps we can make our acl authorizer smart enough to know it has to convert the control value to create/write/delete when the target is an acl resource.
#938 is on hold until this is resolved.
Wondering if this will impact #952 😉

Do we return an instance of PermissionSet or do we use different terms?

I think we need to return a WebAclAuthorization. But then generalize this class a bit to:

not be specific to WebAcl (which it is not, only in name)
generalize from user (probably better agent) and everyone to other keys

So technically, WebAclAuthorization could just be (a subclass of) Map<string, PermissionSet>, where some string keys are special.
The addMetadata method can probably go.

Would the LdpHandler then compare the output with the permissions it got from the RequestParser?

That one could remain the same IF:

Authorizer remains as-is (so AsyncHandler<{ identifier, permissions, credentials }, Authorization>)
new interface PermissionReader which is AsyncHandler<{ identifier, credentials }, Authorization>
note: instead of identifier, we might want credentials[] as a list for which the PermissionReader  should return, concretely (for now) the agent and the public, but might be more later

Then:

WebAclAuthorizer becomes WebAclPermissionReader (or WebAclReader for short) implements PermissionReader
a new PermissionBasedAuthorizer  taking a set of child PermissionReaders in the constructor, which then collects the allowed PermissionSet from each of those children and joins them.

Then this comparison behavior is abstracted away.
Alternatively, we can use the composite pattern to create a UnionPermissionReader that does this collecting and joining, so PermissionBasedAuthorizer purely does the comparison.

Or do we scrap the permission parser and let the OperationHandlers reject based on the received permissions?

That would be https://github.com/solid/web-access-control-spec/issues/97#issuecomment-913227652; let us hold off on that one for the moment; knowing that, indeed, this PR makes it easier/trivial to implement that behavior.

* How do we generate the `WAC-Allow` header then?

Someone should get the resulting PermissionSet into the metadata. I see the authorization makes it into an operation, so perhaps we can take it from there. Or perhaps only the GET operation needs to do it?

The main issue is that we need 2 objects there: the permissions for the current credentials AND the permissions for a public agent. We could have the authorizer return both

Yes; and as I wrote above (for PermissionReader), let's even ask specifically to the authorizer which ones we want.

but this couples the behaviour closer to acl again since we're only doing this for an acl header.

I don't think it couples that; we just ask the permission reader to look up permissions for things.

* Is this a good time to perhaps change the values of `PermissionSet`? Currently these values are tightly coupled to the `acl` predicates but perhaps we want to go to more generic terms.

I'm okay at the moment; no strong opinion. Your proposal is fine with me.

The linked comment suggests making a CombinedAuthenticationHandler to combine the results, but we could also do this with a sequence/parallel handler that modified the input object, or create a new generic reduce handler or similar.

I wouldn't reduce here; I don;'t think PermissionReaders should take permission sets as input; they should not need to know how to combine.

Done in #962


Do not require input or error streams for deployment

Please review. This make it possible to deploy the kinesis processor without any Kinesis stream associated to it. There are at least two reasons why you would like to do that:

To speed up the testing of other layers that depent on a processor being available in your environment, but that do not require the presence of any Kinesis stream. For instance the secrets-vault layer.
The user may want to attach streams to the processor manually using the console, e.g. for experimentation.

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


how can i get request param detail at BulkAllObserver OnNext callback

at BulkAllObserver OnNext callback, how can i get request param detail,now i just get the Id and other not important imformation. i want to get the request param.

Hi, @Honestor.
It's recommended that questions be raised in the Discuss community forum, as we reserve the issues for bug reports and feature requests. The BullkAll helper is an IObservable of BulkAllResponse, and as a result, it doesn't expose the request level information. From the BulkAllResponse, you can access the per operation status, error and result. Could you please describe your use case/scenario for accessing the request information? If you need finer control over bulk requests, you may need to manually invoke the Bulk endpoint, at which point you can manage each response. Of course, you also need to consider batching, retries, error handling etc.

Closing as answered.


Updating prepare_for_training on transformers to include framework?

Should we update the prepare_for_training method in the cookbook (and potentially in other places, I don't know if it's used in any other guide or tutorial) to specify the parameter framework="transformers", even if it's the default option? It could be interesting to promote this explicit declaration to show that they are other frameworks?
I can take care of it if you give me green light :)

Sorry that I missed this! This is definitely a good idea!

Hi there! I think we forgot to close this issue, because I remember taking it into consideration. However, I cannot find the cookbook anymore, maybe you changed its name or structure when migrating from Rubrix to Argilla. If that piece of text is in any other documentation file I can have a look and confirm that I include it :)
Good morning to all, friends!


first pass at client sessions semconv

Discussed this in the client-side sig. Added a basic definition to start discussion.
Additionally, I added a folder for client/ based semantic conventions with a basic README.md.

the link checker is failing for an unrelated file :\

@open-telemetry/specs-approvers @open-telemetry/specs-semconv-maintainers  This is ready for your review!

We have 3 approvals on this and it's been open for months.
@open-telemetry/specs-semconv-approvers @open-telemetry/specs-semconv-maintainers is anything else holding this up? It's pretty small and entirely new experimental spec, required to make some traction on client instrumentation. Thanks!

@joaopgrassi respectfully, this has been discussed at length in the client SIG. Sessions don't really have a data shape themselves (or at least not yet in our mental model), it's more like a sequence of telemetry all grouped together, as identified by a session identifier. Hence this PR.
The idea is to get something started so that we can iterate on it. This is not intended to be comprehensive yet.

@bryce-b all good, the concept of a session is clear to me. I was more interested in for example an issue where the SIG discussions and agreements/plans are documented. I don't participate in the SIG so having that piece of extra context IMO helps the general semconv approvers.

@opentelemetrybot rerun

This has several approvals and has been open for a while with no objections. Merging :)


SqlSetup: Does not allow null or empty password for MSA

"The password supplied to the Desired State Configuration resource MSFT_xSQLServerSetup is not valid. The password cannot be null or empty.",
It should, for managed service accounts.

@wasabii Would you be so kind to post the configuration you are using? Without any sensitive information.

I don't think it matters. I solved the problem by creating a PSCredential with a single space as a password. It's sort of hacky, but it works.

This was discussed in Gitter, thanks @NReilingh! 🙂
@NReilingh was kind enough to provide the error message from LCM when passing an empty password into the credential object.
Using this compiles a configuration correctly.
$SqlProxyUserCredential = New-Object System.Management.Automation.PSCredential(
    $Node.SqlSetup.ProxyUserMSA,
    (New-Object System.Security.SecureString)
)

But applying the configuration it gives this error.
Job {E69E204B-B6C0-11E8-B215-00505697B552} :
Message Cannot unprotect message. The input contained no encrypted content. Specify the '-IncludeContext' parameter if you wish to output the original content when no encrypted content is detected.
HResult -2146233087
StackTrack    at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
   at System.Management.Automation.PowerShell.Worker.ConstructPipelineAndDoWork(Runspace rs, Boolean performSyncInvoke)
   at System.Management.Automation.PowerShell.Worker.CreateRunspaceIfNeededAndDoWork(Runspace rsToUse, Boolean isSync)
   at System.Management.Automation.PowerShell.CoreInvokeHelper[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
   at System.Management.Automation.PowerShell.CoreInvoke[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.ResourceProviderAdapter.CMS_DecryptMessage(String thumbprint, String encryptedMessage, IStreamsHandler plugInStreamsHandler, String& outputResult, IntPtr& errorInstanceHandle)

And @NReilingh concludes

So: it’s a MOF file that uses certificate encryption for credentials, but since I use some credentials with empty securestrings, in the MOF these look like Password = “”; instead of Password = “-----BEGIN CMS-----\nblahblahblah

To use a (g)MSA with the credential objects (that support (g)MSA), any password need to passed into credential objects, but the username will only be used.
https://github.com/PowerShell/SqlServerDsc/blob/80172377320659488f0b45595264c29da58ae448/DSCResources/MSFT_SqlSetup/MSFT_SqlSetup.psm1#L2271-L2277
Since we can not change how LCM or MOF works in this repository, the only other way of solving this is to make separate parameters for (g)MSA, like what was done in https://github.com/PowerShell/xPSDesiredStateConfiguration/pull/441 for the xService resource.
But for the SqlSetup resource I do not think that is the way to go, since that would mean we have to add many more parameters, with even more logic.
I relabel this as a community discussion since this needs more voices if we should do a (breaking) change.

I agree we should add this to the documentation. Labeling it as such.


Fix: Link has been sent text dynamic translation on login screens

Details

Moved translations logic for the resendValidationForm.linkHasBeenResent from onyx success object to respective components which assures those texts are dynamic.
Fixed Issues

$ https://github.com/Expensify/App/issues/17216
PROPOSAL: https://github.com/Expensify/App/issues/17216#issuecomment-1502150977
Tests

In magic link/forgot password screen click on the Resend button
It shows the success text Link has been re-sent if the current language in english
Switch language to spanish
Verify the success text translated to spanish

[X] Verify that no errors appear in the JS console

Offline tests

In magic link/forgot password screen click on the Resend button
It shows the success text Link has been re-sent if the current language in english
Switch language to spanish
Verify the success text translated to spanish

QA Steps

In magic link/forgot password screen click on the Resend button
It shows the success text Link has been re-sent if the current language in english
Switch language to spanish
Verify the success text translated to spanish

[X] Verify that no errors appear in the JS console

PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

[X] Android / native
[X] Android / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[X] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[X] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/14358475/231513628-72314a3b-16a7-4530-9116-4b3bb12a1488.mov

Mobile Web - Chrome

Mobile Web - Safari

Desktop
https://user-images.githubusercontent.com/14358475/231536767-f53205bc-b59b-4e28-a5bb-82777c5fc547.mov

iOS
https://user-images.githubusercontent.com/14358475/231535914-b61e5d16-ab47-441f-818b-7c9ca1f54430.mp4

Android
https://user-images.githubusercontent.com/14358475/231537827-fa703e97-5c22-48d5-9502-3883e45d2cf3.mp4

@tgolen @mollfpr One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@Pujan92 Could you check with the resend code use case? I got an error with the page after click on Didn't receive a magic code?

Thanks @mollfpr , I am seeing that we are trying to show the message with only linkSent state variable before the magic code api gets completed. So needed to consider account.message also which I just committed.

@Pujan92  Yeah, I see that too. How about returning an empty string when there's no this.props.account.message?
{this.props.account.message ? this.props.translate(this.props.account.message) : ''}

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/tgolen in version: 1.3.1-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/tgolen in version: 1.3.1-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.1-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@mollfpr we have missed one case where we are not applying translate due to which it shows the key for the message in ExpiredValidateCodeModal.js. Ref - https://expensify.slack.com/archives/C049HHMV9SM/p1682137890899889
https://github.com/Expensify/App/blob/4947508bedc2e901082d805c84498f5f394ef655/src/components/ValidateCode/ExpiredValidateCodeModal.js#L60
https://github.com/Expensify/App/blob/4947508bedc2e901082d805c84498f5f394ef655/src/components/ValidateCode/ExpiredValidateCodeModal.js#L108

@Pujan92 Yeah, definitely we missed that. I was sure to mention  where account.message is used 😕
@tgolen Any suggestion on how we proceed with the regression fix? I think we can log that report and create the issue that creates a PR fix based on that, so we can pay the reporter and log the regression for the first issue.

I might have seen it but somehow I missed that, sorry for it.

No worries, it's also my responsibility. Let's take this as a lesson to the future 👍

Thanks @tgolen!
@Pujan92 Please proceed with the PR fix. Thank you!


Unwanted Paste to Imports action

Testing #235016
In the following JS file, I tried to copy/paste the line dirs.push('.build/distro/npm/remote'); after line 7
const fs = require('fs');
const dirs = [
	'',
	'build',
];
if (fs.existsSync(`${__dirname}/../../.build/distro/npm`)) {
	dirs.push('.build/distro/npm/remote/web');
}

🐛  After pasting, there is an action Paste to Imports and this action imported following line
import { dirs } from './dirs copy';
Please note that I copied the line from ./dirs copy file

To make sure I understand, start with:
// dirs.copy.js
const fs = require('fs');
const dirs = [
	'',
	'build',
];
if (fs.existsSync(`${__dirname}/../../.build/distro/npm`)) {
	dirs.push('.build/distro/npm/remote/web');
}

Copy dirs.push('.build/distro/npm/remote/web');
Paste into another js file (lets call it other.js)

This was incorrectly creating the following in other:
//other.js
import { dirs } from './dirs copy';

dirs.push('.build/distro/npm/remote/web');

Is that correct?
I actually can't get it to generate the import but it should in this case

Thats correct, the steps you mentioned are the same I followed

Opened https://github.com/microsoft/TypeScript/issues/60693 to track this upstream. Right now the expected behavior on smart paste is that we'd add an export for dirs but I don't see this happening in my testing


[HOLD #12603][Image] Implement the ability to copy images to the clipboard

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Coming from https://github.com/Expensify/App/issues/3313
Action Performed:
Right-click or long-press on an image in a chat.
Expected Result:

A context menu appears, displaying a single option: Copy image to clipboard
Clicking on this option should copy the image to the clipboard, where it can be pasted somewhere else.

Note: the solution implemented must be an offline-first solution. Meaning the user should be able to copy the image to their clipboard, whether or not they have internet connection.
Actual Result:

The normal context menu appears.
Clicking on Copy to clipboard copies the HTML image tag to the clipboard, not the binary image itself.

Workaround:
Screenshot the image? Also you can click on it and download it.
Platform:

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.0.85-3
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Upwork job: https://www.upwork.com/jobs/~012fd9a807faaf42aa
View all open jobs on Upwork

Okay, there was a fair deal of discussion over in https://github.com/Expensify/App/issues/3313 and other issues, but the task at hand here is to:

(internal) Create an Expensify/ fork of https://github.com/react-native-clipboard/clipboard
Create a separate fork of https://github.com/react-native-clipboard/clipboard for local testing.
Provide a complete implementation of this issue in your separate fork.
Point this project and your fork for local testing.
Add a new context menu type for images, display it when images are right-clicked or long-pressed. This PR might serve as a useful guide.
Once that's working, submit a PR from your fork of react-native-clipboard to the Expensify/react-native-clipboard fork.
Also submit a PR from your fork of react-native-clipboard to the upstream project.
Create a PR in this repo with your implementation from step 5 above, but point the project at the Expensify/react-native-clipboard fork instead of your personal one. (should be on HOLD until the PR from step 6 is merged.
Lastly, if/when your PR from step 7 is merged by the project maintainers, create another PR to point this repo at the upstream repo: https://github.com/react-native-clipboard/clipboard

No new proposals here.

Upwork job created here: https://www.upwork.com/jobs/~011432fcc2168828e1
@Drewfergusson would you be interested in this? Given you implemented the first part.

@puneetlath things have gotten quite a bit busier for me lately so I'm going to have to pass.

@puneetlath, @roryabraham Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

No new proposals here

@puneetlath, @roryabraham Whoops! This issue is 2 days overdue. Let's get this updated quick!

@puneetlath, @roryabraham it looks like no one is assigned to work on this job.
Please double the price or add a comment stating why the job isn't being doubled.

Updated price to $2000.

Proposal
Currently used setString function for copy to clipboard for attachement

And when paste, it is not parsing content correctly in handlePaste for textinput

embeddedImages length always showing 0
Reason: setString to clipboard making extra span tag image element converted to string
To fix issue

Get image element text from clipboard

Convert it to html tag from string

Attached Working Video

https://user-images.githubusercontent.com/12084368/130595083-442b227f-a1e7-4a9e-b71e-7b7304144234.mov
Please review and give me feedback @roryabraham , @puneetlath

@MTN718

Reason: setString to clipboard making extra span tag image element converted to string

Sorry, I'm having difficulty understanding this. Can you help me understand this better?
Other than that, there are two main concerns I have with your proposal:

Keep in mind that this is a react-native codebase, so we need a solution that works not only on web, but also on iOS and Android. Ideally, we would create a solution that works for both iOS/Android and react-native-web, so that we don't need two separate implementations. See the following resources:

Expensify/App Philosophy, particularly section 5 titled "Cross Platform 99.9999%"
https://github.com/react-native-clipboard/clipboard/issues/6
https://github.com/Expensify/App/issues/4629#issuecomment-897981246

Also, can you verify with your existing solution that the image binary is copied to the clipboard such that it can be pasted into another program, such as Notes, Google Docs, or Microsoft Word?

Proposal

Use native share workflow for mobile (with react-native-share ), and keep web/desktop version with the "Copy to Clipboard" Context menu.

Explanation:
UX is increased, by having more options: with just one step users can copy the content, or send it to other apps like WhatsApp, Slack, Note (or any other workflow they prefer)

Solution
Create a <Sharable/> component, similar to <PressableWithSecondaryInteraction/>, that instead of showing the context menu, it would show the native ios/android share menu. This is the same behavior that slack takes when long-pressing a link for example:

This is how it would look like in android and ios:

@anboia That is an interesting alternate solution, I love it!
That said, I think it should really be a separate context menu option. I recommend that you create a separate issue in this repo to propose adding a share option to the context menu using the native share menu, and we can discuss over there. Plus, if we decide to move forward with this new feature, there's an additional bonus we pay to contributors if you open an issue and also implement the solution. 🤑

Found solution for web version.
https://user-images.githubusercontent.com/12084368/130681105-ba4cd577-7988-4c94-8b17-a9d10459381e.mov
Used clipboard.write instead of setString

@roryabraham one question, currently how to open context menu in the ios?

It's mobile web version
https://user-images.githubusercontent.com/12084368/130682485-44ac9a44-5f73-403d-b8f7-f53d76b67f74.mov

@roryabraham one question, currently how to open context menu in the ios? long press on image is working?

Yeah, longPress should open the context menu.

One Notice: Image url should be png file. clipboard support only image/png type. can't save jpg file to clipboard
So we should be discuss about convert image jpg to png from server or frontend.

Really? I've never encountered this issue

@roryabraham I think we already have an open issue #1294 for share menus.

@parasharrajat https://github.com/Expensify/App/issues/1294 is slightly different – I believe that's about adding New Expensify as an option in native share menus, not about exposing native share menus from within New Expensify

Oh yeah. :+1:

One Notice: Image url should be png file. clipboard support only image/png type. can't save jpg file to clipboard
So we should be discuss about convert image jpg to png from server or frontend.

It seems you should use data URLs shema with base64, which will work with a variety of mediatype, probably all attachment types accepted by the backend API.
We should use the same approach (share the same function) for retriveing the url of the attachment to a base64 data url, so that it is possible to copy or share the base64 data. Here it is a good example on how to do this:
(that would be your fetch(embeddedImages[0].src))
.fetch('GET', fileUrl)
    .then(resp => {
      filePath = resp.path();
      return resp.readFile('base64');
    })
    .then(async base64Data => {
      base64Data = `data:${type};base64,` + base64Data;

the full example is here: https://react-native-share.github.io/react-native-share/docs/share-remote-file
Also react-native-web uses the same Clipboard component from react-native which is deprecated (https://reactnative.dev/docs/clipboard), so I would recommend using only https://github.com/react-native-clipboard/clipboard for that (rename src/libs/Clipboard/index.native.js to src/libs/Clipboard/index.js)

@roryabraham I tried long press on ios simulator for image but can't see open menu.
And can you provide png url for image so i can make it working image copy to clipboard as you can see video above.

@anboia i know that solution. but if already there is png image in the server, no need to convert it to using base64. so @roryabraham I want discuss with you about convert in frontend or just use png url from server

Any feedback for my proposal?

@roryabraham this issue still opening? no update yet

@MTN718 Very sorry for the delay here. Your last proposal looks fantastic! @puneetlath Let's hire @MTN718 for this job on Upwork!

Thanks @roryabraham First I need to use expensify forked library for customize?

@MTN718 Check out this comment above. While you're developing locally, you should work off of your own forked copy of https://github.com/react-native-clipboard/clipboard/. Then once you're confident that it's working well and can show us some of your local testing results, then you can create a PR from your forked copy of https://github.com/react-native-clipboard/clipboard/ to ours. Does that makes sense? The comment above explains in more detail.

In the meantime, I'll create an internal issue to create an Expensify/clipboard fork.

Just FYI, I just noticed this PR, which might implement image-copying in react-native-clipboard. We will still hire you to ensure that we get this feature implemented in Expensify/App, but how similar is that PR to your current implementation?

In my implementation, input parameter is Image URL but in current PR, not. And in my view, that's not complete solution.

@roryabraham In android, copy paste image support for some android OS i think.

Interesting, how up-to-date is that StackOverflow? cc @Julesssss Do you know anything about Android copy/paste capabilities?

@roryabraham one thing more, when request fetch of image data from website (local testing), it shows cors policy error because i'm testing local and fetch from expensify.com. It will be not problem when testing on your side correct?

and still not hired yet on upwork

@roryabraham one thing more, when request fetch of image data from website (local testing), it shows cors policy error because i'm testing local and fetch from expensify.com. It will be not problem when testing on your side correct?

While I don't think this will be a problem on our side, can you please provide a screenshot of the console errors your seeing so we can see about eliminating this issue for outside contributors in the future. Are you using the web proxy provided in the repo? (i.e: can you sign into an Expensify account while testing on your local branch?)

still not hired yet on upwork

Bump @puneetlath

Oh yeah, and we've forked react-native-clipboard: https://github.com/Expensify/Clipboard

This is console error when fetch image data

Thanks. Oh, and please try to do most of your testing with a test account instead of Concierge. I believe test messages sent to Concierge may clutter our customer support channels.

Now need to add new branch on your forked react native clipboard library?

You should be able to create a pull request from your forked react native clipboard library to ours

https://github.com/Expensify/clipboard/pull/1
Created PR

Okay, I'll review as soon as I can.

Interesting, how up-to-date is that StackOverflow? cc @Julesssss Do you know anything about Android copy/paste capabilities?

Sorry, just catching up here.
Honestly copying an image makes no sense to me as a mobile user. I can't find any apps that let you copy and paste an image and I don't think we should add this to our app (even if we did, I doubt any app would support the pasted content anyway). The closest equivalent action for mobile should be 'save image', as the user can share it to any app which supports image sharing.
I'm not as familiar with iOS, but it seems to be exactly the same from my testing.

I left a review on the PR with some additional information.

Honestly copying an image makes no sense to me as a mobile user. I can't find any apps that let you copy and paste an image

This isn't my experience on iOS – I use native copy/paste functionality all the time in Messenger, Facebook, WhatsApp, etc...

iMessage
WhatsApp
Slack
Facebook Messenger

Overall I would saw copying base64-encoded images to the native clipboard is a reasonably common operation, at least on iOS.

even if we did [implement native image-copying], I doubt any app would support the pasted content anyway

I'm not convinced this will be a problem – if image-copying works smoothly between all of the above-listed apps, why not ours as well? I think base64-encoded images are pretty standard things that most apps know how to process when pasted.
Another reason I support implementing this functionality is to preserve cross-platform parity per the Expensify/App Philosophy of Cross Platform 99.9999%. If our UI enables an action (such as image-copying) on web/desktop, it should enable the same action on native platforms. The only exception to this parity is when an action relies on some hardware (such as a mouse) or system component (such as native share menus) for which there is no equivalent on the native platforms. However, as far as I can tell that's just not the case with clipboard.

Note: To be clear I do absolutely agree that we should expose native share menus to our app UI and register our app as a receiver of images via native share. But imo these three are all separate issues:

Right now, our app does not support copying of images on through the UI, nor does it support copying of images on native platforms at all.
We currently have no way to share an image to arbitrary other apps via the native share menu,
New Expensify does not appear in the native share menu as a potential recipient. (although our legacy app actually does show up, and sharing via that begins a SmartScan of the image)

Ah weird, I did check iOS Messenger & WhatsApp and didn't see the copy image option in either of the apps?! Maybe because I have an older iPhone? (iPhone 7, 13.3) 😕  But fair enough, this must be a common iOS operation then.
I still feel that this is not worth implementing for Android though. Forking and extending the library for feature purely is a waste of time in this case as image copy/paste isn't supported by the OS (as MTN shared here). I don't agree that we should implement a hacky single platform feature simply to claim 99.99% alignment. However, as the feature is already completed then maybe it should be included 🤷♂
Also I do agree with our cross-platform philosophy, but we already have exceptions to this rule: [Android doesn't support notification badge count like iOS], [desktop doesn't let you take photos's like mobile].

Yes IOS copy base64 image to clipboard No problem. But Android not support is problem on our project. How to resolve it?

We've been working with @MTN718 in the PR against Expensify/Clipboard – hit a snag in that the current implementation won't work offline.

Hi @MTN718, I've placed this issue on hold as per this update, as we are prioritising issues related to a feature release scheduled for 9/24. As an apology for the delay, we will add a $100 bonus as a thank you for waiting.

Still on hold

still hold issue?

Please refer to this post for updated information on the n6 hold, we've raised the bonus to $250 for all issues where a PR is created before the N6 hold is lifted.

Taking this off hold, but I have a large backlog of pending reviews so it may be a couple days before I get to this.

Let me know when need to start

@roryabraham @MTN718 how's this going?

I'm waiting rory's confirmation.

We are placing all non-critical issues on hold while we're on a company offsite.  The hold is expected to be lifted on 11/19 (but could go longer).  For any PRs that are submitted before or during the hold, we will add a $250 bonus payment.

Proposal
Update the Copy to Clipboard item in ContextMenuActions
Given the image url (which can be extracted from html), the image needs to be converted into a blob before being copied to the clipboard.

Normally, we might redownload it to convert it into a blob, but that wouldn’t work offline. If we’re offline, we need to access the node itself to get the image data (will change this to use a ref).

Once we have the image data and have converted it into a blob, we can add it the clipboard (will look for a solution on iOS & android).

Another option for getting the image data that doesn't depend on access to the node (which might be complicated on mobile, not sure yet) is to set the actual src on the image to a data uri (e.g. base64 string), and then converting that base64 string into a blob which gets added to the clipboard.

This is a promising thought. I don't think we'll want to render the image on a canvas just to copy it.

@roryabraham agreed. Then using a datauri is the only solution that comes to mind. Apologies for the delay on finishing out my proposal, been having a lot of trouble lately running mobile locally.

Doubling price to $4000: https://www.upwork.com/jobs/~012fd9a807faaf42aa

@roryabraham to copy image data from element, need to change chat part also. Because currently we're using image from uri in the chat.

Curious to see a proposal that implements images + image coping using a base64 data uri. I'm sure there could be a number of gotchas we'll need to be wary of.

@roryabraham actually, I'm working on another solution that utilizes an existing PR for offline images. Just testing it before updating my proposal.

Exciting, can't wait!

@roryabraham never mind, the PR turned out not to be helpful in this case as far as I can tell.
Would you mind elaborating a bit on the criteria for the solution here? It looked like @MTN718's proposal would still work for instances where the image is cached on the page (at least it did for me, locally). I assume we wouldn't need to copy an image if it isn't rendering on the page, so the challenge is to copy the visible image to the clipboard either by fetching it like normal (ideally getting a cached response back), or retrieving and parsing the data out of the DOM node (with one of the methods I outlined in my proposal or another I'm overlooking).
Is that right?

Would you mind elaborating a bit on the criteria for the solution here?

Yep, the solution needs to:

Work on web, mobile web, iOS, Android, and desktop.
Not be dependent upon a network connection.

It looked like @MTN718's proposal would still work for instances where the image is cached on the page (at least it did for me, locally).

Does that work for iOS/Android when the app is offline?

@roryabraham Correct, we need to make images offline first so that we can refer to them in the file system. I think https://github.com/Expensify/react-native-onyx/pull/102 will enable us to do that easily so I think we should hold this issue till that time.
Until we store the images in APP storage (file system) there is no way to get them without the internet. Currently, they are only located via a URL so first have a feature to make them offline, and then we can easily use the path as a URL and add a copy feature.
IMO, this feature can't be offline until we have offline images. Thus I think we should hold this.

Thanks @parasharrajat I've removed the help wanted label and marked this as on hold for now.

Still on hold.

@roryabraham @parasharrajat now that https://github.com/Expensify/react-native-onyx/pull/102 has been merged, can we reopen this issue?

@puneetlath I think we need offline images in the app first. https://github.com/Expensify/react-native-onyx/pull/102 laid the groundwork for that, but we will still need to implement non-URL-based images in New Expensify before we can worry about copying those images to the clipboard.

Ok got it! And do we have an issue for implementing offline images somewhere?

I asked, and it sounds like @thienlnam has a good handle on the next steps for offline images, and gave some additional context over here

After we have added functionality to add images offline in NewDot. We will need to make attachment offline.
For that, there is a issue https://github.com/Expensify/App/issues/6527

Order looks correct - this is still on hold for now. I'm going to make it a monthly while it's still on hold.

I believe this is still on HOLD pending https://github.com/Expensify/App/issues/6527

Still on HOLD

Still on HOLD

This is on hold for an issue that's not being actively worked on.... https://github.com/Expensify/App/issues/6527

still on HOLD

Still on HOLD

Still on HOLD for an issue that's in planning. Adding the planning label

Still on HOLD, reassigning to @Beamanator

Ya I think this should hold on caching, looks like we're close so it should only hold another week!

Still on hold, barely

Still on hold

Still held on caching

Stillllll held

still holding

Still blocked on the server migration project dependency.

No change.

Getting closer! CORS issue resolved, web image caching PR in development. :)

Image caching PR was deployed and reverted. Awaiting this now before re-implementing: https://github.com/Expensify/App/issues/32703

https://github.com/Expensify/App/issues/32703 is fixed now.

In light of #32703 being fixed, the new image caching PR is in review.

The image caching PR was reverted again on Friday, so we're back to figuring that out in #12603.

This is the latest PR: https://github.com/Expensify/App/pull/36560

Okay, that has merged. Can we pick this up again, or do we need something else first @Beamanator @roryabraham?

Also, curious if we have any overlap now with @kidroca's ongoing work with image/attachments improvements.

Though I think we need to be clear: Do we still agree that this feature isn't required for Android? We argued that a few years back but maybe now things are different?

Does Android now support copying images like iOS does on more recent OS versions?

That's definitely a good question, I don't have my android phone with me this week so I can't test :/ but I can ask in slack!

Any luck with that, Alex?

That would make sense to me.

Cool so how about we open this back up for proposals! 🚀

@roryabraham are you going to close this in favour of https://github.com/Expensify/App/issues/41239 or something? 😕

I'm fine with moving this to that new issue as long as we align on the desired outcome 👍

There's a decent amount of activity in https://github.com/Expensify/App/issues/41239 so I'm going to close this one for that one


HF integration

Hi,
Niels here from the open-source team at Hugging Face. Congrats on your work! I discovered your work through the paper page: https://huggingface.co/papers/2408.09085 (feel free to claim the paper so that it appears at your HF account!).
Would you be up for making the checkpoints available on 🤗 , tagging them with "pipeline_tag: mask-generation" in the model card so that people find them when searching https://huggingface.co/models?pipeline_tag=mask-generation&sort=trending? Refer to https://huggingface.co/docs/hub/models-uploading for details.
Do note that with a single line of code, a checkpoint can be downloaded from the hub, using the hf_hub_download method. In case you have a custom PyTorch model for which you want to add from_pretrained and push_to_hub capabilities, we recommend leveraging PyTorchModelHubMixin.
Happy to assist!
Cheers,
Niels
ML Engineer @ HF 🤗

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Hi @NielsRogge ,
Thank you for reaching out and for your interest in our work! We are currently preparing and will release the code and checkpoints in a few days. We will then update the model card and checkpoints on Hugging Face. We will update you on our progress.
Best regards,

Hi @NielsRogge ,
We have updated the model cards and a collection involving all our models at here . Thank you.
Best regards,

That's really great, thanks for doing that!
Would it also be possible to add a link to https://hf.co/papers/2408.09085 within the respective model cards? This way, all models will be visible from https://huggingface.co/papers/2408.09085.
Similarly, you can add a paper into a collection as well if you want :)
Cheers!

Hi @NielsRogge ,
Sorry for the late reply. I have added the paper to the collection and to the model cards. Thank you for your reminder and helpful guidance!
Best regards,


Not able to run this. I opened this MaterialDesignToolkit.Wpf solution file. as i built the project it gave about 100s of error. Could anyone help me with this. Thanks.

PLEASE READ BEFORE POSTING AN ISSUE
This is a place for issues.  Questions are better asked in the Gitter chat room.
Seriously consider creating and linking to a test repo which takes absolutely minimal setup to illustrate how reproduce the problem.
My time is limited and .Zip files, code snippets and partial examples are often a time sink.  GitHub also provides great communication and code review tools which can be utilised.
HOW TO POST A GOOD SAMPLE.  Follow these guidelines and I will most likely look at the issue sooner:

Post a full GitHub repository. Not a zip file, half baked snippet etc.  If GitHub is new to you consider it a great learning opportunity and chance to get involved.
The repository should have just ONE step max for me to get running, and that is "Restore NuGet Packages".  If there are any other missing dependencies, or uncompiling features I will most likely move on to another issue.
I'm not trying to be awkward.  I'm just busy and I'm helping a lot of people, not just you, so help me out and I will help you out.

This is first time i am using git. i guess just already told my whole issue in heading section.

Are you using VS2017. The codes uses some of the new C# 7 syntax and will not compile with older versions of Visual Studio. See this wiki for more details

i guess that's the solution. I updated my framework and got half of the errors resolved. Anyhow there are still 60-65 error that i m trying to resolve.
Thanks budd for solution.

@anshu4590 what are the errors your are seeing? I use the solution constantly, it should be compiling without any errors.

@anshu4590 Do you really use VS 2017?

@anshu4590 Try opening a fresh copy of the solution with VS 2017. If you opened it in an older version first, then "updated" it to 2017, you can run into a lot of errors like this.

@anshu4590 Any news???

I m not using VS 2017. i m using VS 2015. Anyhow i have latest framework, so it should work. I got it working by creating a new separate project and implementing and creating the same class files and other files. Anyway thanks for support and suggestions.

Is that so? Actually i can't update VS because i m working and its my company's system. So i have to live with that. Anyhow i get it working on VS2015. I can upload on drive and share link if you want or even anybody else have VS2015 wants that.
Thanks for help buddy.

I think you can update Roslyn in 2015 to use C#7 features, but you'll still get intellisense error (red swiggly lines)


Inlay hints' color theme don't look good after VSCode April 2022 (1.67) update

VSCode April 2022 introduced the "compact" style of inlay hints as default (https://github.com/microsoft/vscode/pull/145470), which removes paddings and rounded corners and set the font size the same as editor. In this style, inlay hints should look like comments to look good and "blend in".
Inlay hints in most of the Paddy themes have an inverted color scheme and/or low contrast, which doesn't look good.

Some themes in Paddy do have a better inlay hint color scheme, e.g. P. Machine:

List of themes with not-so-nice-looking inlay hints
Themes with inverted color scheme:

Dark themes
- Black
- Citadel
- Emerald
- Eucalyptus
- Floresta
- Grizzly
- Haze
- Inkstone
- Leipzig
- Ornithopter
- Ox
- Wolf
- Yesterday
Light themes
- Crimson
- Frost
- Genmaicha
- Light

Themes with too low contrast:

Dark themes
- Inkstone
- Ornithopter
- Wolf
- Yesterday
Light themes
- Crimson
- Frost
- Genmaicha
- Light

Thanks for reporting! I haven't used this feature before so never noticed this. Will take a look soon!

Yay the new inlay hints colors look great! Thanks!


[[k + 4, k, 2]] CSS quantum codes namely Hcode

Implemented [[k + 4, k, 2]] CSS quantum codes, also known as HCode introduced by Cody Jones in his 2013 Paper: Multilevel distillation of magic states for quantum computing

Please consider reviewing, @Krastanov. Tested instances via ecc_base. ECC Zoo has an entry about HCodes! Thanks!

Decoder gives max(e...) < noise / 4 even for small instances, k =2 and k= 4. Turning it into Draft. When I tested locally,  the assertion was not happening.
julia> parity_checks(HCode(2))
+ XXXX__
+ XX__XX
+ ZZZZ__
+ ZZ__ZZ

julia> parity_checks(HCode(4))
+ XXXX____
+ XX__XXXX
+ ZZZZ____
+ ZZ__ZZZZ

julia> parity_checks(HCode(2))
+ XXXX__
+ XX__XX
+ ZZZZ__
+ ZZ__ZZ

X1X2X3X4II
X1X2IIX5X6
Z1Z2Z3Z4II
Z1Z2IIZ5Z6

Authors: Our distillation circuit is based on a family of concatenated quantum codes (H code) that possess a transversal Hadamard operation, enabling each of these codes to distill the eigenstate of the Hadamard operator.
Checking graphs for the smallest HCode whose Stabilizer is shown above. What do these graphs tells us about their decoding performance? There is no error in the code_properties though. But it raises then question, why is their decoding performance like this?

Based on the graphs shown above, the  test_ecc_decoder_setups.jl have bad performance for these codes. These codes seem important for distillation protocols as mentioned in the paper though.
Closing the PR because adding them to ecc_base will result in decoding errors,  from test_ecc_decoder_setups.jl
If these codes are deemed important, for distillation purpose, please feel free to reopen it. Otherwise, I am not sure whether rebase will help based on their decoding graphs.

adding codes with low rates or low distances or even codes with good figures of merit but unknown decoders would all be valid and useful additions. They would just need to be tested separately for correctness


Unable to download from Mix cloud

D:\Google Drive Folder\MyMusic_G_Drive\English\Johnny Monsoon>soundscrape http:/
/www.mixcloud.com/johnnymonsoon/the-sound-of-trance-episode-27-set-from-above-be
yond-show/
Active code page: 65001
Downloading: Johnny Monsoon - The Sound of Trance Episode 27 Set from Above &amp
; Beyond Show (rl]])
Traceback (most recent call last):
File "C:\Program Files (x86)\Python35-32\Scripts\soundscrape-script.py", line
9, in
load_entry_point('soundscrape==0.29.4', 'console_scripts', 'soundscrape')()
File "c:\program files (x86)\python35-32\lib\site-packages\soundscrape\soundsc
rape.py", line 107, in main
process_mixcloud(vargs)
File "c:\program files (x86)\python35-32\lib\site-packages\soundscrape\soundsc
rape.py", line 712, in process_mixcloud
filenames = scrape_mixcloud_url(mc_url, num_tracks=vargs['num_tracks'], fold
ers=vargs['folders'], custom_path=vargs['path'])
File "c:\program files (x86)\python35-32\lib\site-packages\soundscrape\soundsc
rape.py", line 753, in scrape_mixcloud_url
download_file(data['mp3_url'], track_filename)
File "c:\program files (x86)\python35-32\lib\site-packages\soundscrape\soundsc
rape.py", line 1038, in download_file
r = requests.get(url, stream=True)
File "c:\program files (x86)\python35-32\lib\site-packages\requests\api.py", l
ine 70, in get
return request('get', url, params=params, **kwargs)
File "c:\program files (x86)\python35-32\lib\site-packages\requests\api.py", l
ine 56, in request
return session.request(method=method, url=url, **kwargs)
File "c:\program files (x86)\python35-32\lib\site-packages\requests\sessions.p
y", line 474, in request
prep = self.prepare_request(req)
File "c:\program files (x86)\python35-32\lib\site-packages\requests\sessions.p
y", line 407, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "c:\program files (x86)\python35-32\lib\site-packages\requests\models.py"
, line 302, in prepare
self.prepare_url(url, params)
File "c:\program files (x86)\python35-32\lib\site-packages\requests\models.py"
, line 366, in prepare_url
raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '[[player.waveformUrl]]': No sche
ma supplied. Perhaps you meant http://[[player.waveformUrl]]?

Confirming. Looks like they've updated something and our scraper broke.
https://www.mixcloud.com/johnnymonsoon/the-sound-of-trance-episode-27-set-from-above-beyond-show/

Oh no !!! :( that's a sad thing to hear. Any possibilities this will be fixed by you in near future :/

For sure, but I think it might be @brachna who fixes it! :-)

I'm busy making support for a site that nobody needs lol

@brachna No buddy !! don't say like that... you never know who would need it .. :smiley_cat: and I am a huge fan of Johnny monsoon... the only place where I see all his old podcast is at mixcloud :musical_note: .... and @Miserlou all other online sites too unable to pull request which used to fetch the mp3 directly from the url.... looks like mix cloud backend folks really did some great job... hmmmm

Just wanted to say many thanks for all the work you guys put into this.
Your efforts are appreciated.
On Tue, Jan 10, 2017 at 12:39 PM, G Rohit<EMAIL_ADDRESS>wrote:

@brachna https://github.com/brachna No buddy !! don't say like that...
you never know who would need it .. 😺 and I am a huge fan of Johnny
monsoon... the only place where I see all his old podcast is at mixcloud
🎵 .... and @Miserlou https://github.com/Miserlou all other online
sites too unable to pull request which used to fetch the mp3 directly from
the url.... looks like mix cloud backend folks really did some great job...
hmmmm
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Miserlou/SoundScrape/issues/154#issuecomment-271643503,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGVpX9IHWuaJAuYay139Vgge7gIsGq87ks5rQ8JTgaJpZM4LfeA5
.

Thanks.
This shouldn't actually too hard to update the scraper, they've just switched to using the anglular frontend framework for their templating, which actually should mean that there's a handy blob of JSON for us to read somewhere..

Yes , I do agree :100: % with @injectedfusion ...

 Running test now..

Can you guys try master branch? Works for me but getting 403s from Travis :[

Testing it now. Just realized how incredibly slow downloading from mixcloud is. (Though it is a 53 minute file)
Edit: Seems to be working correctly.

@Miserlou @Evolution0 - I jus woke up. Let me test it now. excited 😀

Weird, worked for me though it took what seemed ages to download.

@Evolution0 could you paste the code and show. I'm getting the same errors as I posted in my first comment box 😖😫

You grabbed the master branch and didn't install via pip right? I doubt @Miserlou would push out a new release for one modification.

No, this is now published to 0.29.5 on pip, so you can pip install soundscrape --upgrade to use it..

@Miserlou thanks a lot man !!!! :+1: you are awesome :smiley_cat:

Just to let you know, its working now however,  taking hell lot of time to DL :disappointed:


[dart2wasm] Compiler crash when when compiling lazy statics that returns externref

I added a test for this in https://dart-review.googlesource.com/c/sdk/+/335447 which current fails with a compiler crash:
stdout:
Exception in FunctionInvocation at file:///usr/local/google/home/omersa/dart/sdk/sdk/tests/web/wasm/wasm_types_test.dart:33:2

stderr:
Unhandled exception:
   i32.const 4                                    i32
   i32.const 0                                    i32, i32
   global.get null                                i32, i32, ref struct
   global.get null                                i32, i32, ref struct, ref #Vtable-0-0
   global.get null                                i32, i32, ref struct, ref #Vtable-0-0, ref _FunctionType
   struct.new #Closure-0-0                        ref #Closure-0-0
   local.tee 0                                    ref #Closure-0-0
   struct.get #Closure-0-0 2                      ref struct
   local.get 0                                    ref struct, ref #Closure-0-0
   struct.get #Closure-0-0 3                      ref struct, ref #Vtable-0-0
   struct.get #Vtable-0-0 1                       ref struct, ref (ref struct) -> (ref null #Top)
   call_ref (ref struct) -> (ref null #Top)       ref null #Top

Expected [externref], but stack contained [ref null #Top]
#0      InstructionsBuilder._reportError (package:wasm_builder/src/builder/instructions.dart:235)
#1      InstructionsBuilder._checkStackTypes (package:wasm_builder/src/builder/instructions.dart:267)
#2      InstructionsBuilder._verifyTypesFun (package:wasm_builder/src/builder/instructions.dart:292)
#3      InstructionsBuilder._verifyTypes (package:wasm_builder/src/builder/instructions.dart:274)
#4      InstructionsBuilder._verifyCast (package:wasm_builder/src/builder/instructions.dart:1138)
#5      InstructionsBuilder.ref_cast (package:wasm_builder/src/builder/instructions.dart:1159)
#6      Translator.convertType (package:dart2wasm/translator.dart:842)
#7      CodeGenerator.wrap (package:dart2wasm/code_generator.dart:879)
#8      CodeGenerator.generateStaticFieldInitializer (package:dart2wasm/code_generator.dart:265)
#9      CodeGenerator.generate (package:dart2wasm/code_generator.dart:224)
#10     Translator.translate (package:dart2wasm/translator.dart:351)
#11     compileToModule (package:dart2wasm/compile.dart:151)
<asynchronous suspension>
#12     main (package:dart2wasm/dart2wasm.dart:141)
<asynchronous suspension>
#13     main (file:///usr/local/google/home/omersa/dart/sdk/sdk/pkg/dart2wasm/bin/dart2wasm.dart:7)
<asynchronous suspension>

This is blocking allocating text decoders lazily in dart:convert:
class Utf8Decoder {
  ...

  // `TextDecoder` is not defined on some browsers and on the standalone d8 and
  // jsshell engines. Use a lazy initializer to do feature detection once.
  static final WasmExternRef? _decoder = () {
    try {
      return js
          .JS<WasmExternRef?>('() => new TextDecoder("utf-8", {fatal: true})');
    } catch (e) {}
    return WasmExternRef.nullRef;
  }();

  ...
}

The raw Wasm types (such as WasmExternRef? here) don't represent Dart values (they don't have boxed representations), which means that can't be mixed with Dart types in places where they might be assigned to e.g. Object? or boxed for other reasons.
The desugaring transformation of global initializers seems to produce such a situation, so we can't use raw Wasm types as the types of global variables. Furthermore, we always box parameters and returns of function objects, so we can't use raw Wasm types here either.
The appropriate solution here is to use a JS type (e.g. JSAny) instead of WasmExternRef?. That has exactly the purpose of boxing a JS value as a Dart value.

Thanks, closing this as non-issue.
Updated code to use JSAny is here: https://dart-review.googlesource.com/c/sdk/+/336020.