[MM-47112] Migrate dialog introduction text component to typescript

Summary
Migrate dialog introduction text component to typescript
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/21058
Fixes https://mattermost.atlassian.net/browse/MM-47112
Related Pull Requests
NA
Screenshots
NA
Release Note
- Migrate dialog introduction text component to typescript

Hello @VishakhaPoonia,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

E2E tests not automatically triggered, because the PR is not in a mergeable state. Please update the branch with the base branch and resolve outstanding conflicts.

@AshishDhama should we have QA on this one. since it has one component file. Your call!

@M-ZubairAhmed if e2e are passing I think we can Defer QA.

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/248343


Allow delete non managed VM from Atmosphere DB

Fix #225
/cc @dice-cyfronet/atmo-dev-team please take a look

The code looks fine, however I guess there used to be such a guard for a reason. I can't think of it now. Since we check if vm is managed by Atmosphere in VM model before we actually delete it in cloud your modification seems safe, however I would recommend to have someone else to look at this PR also.
Shy :+1:

IMHO this is safe. When we delete VM which is not managed by atmosphere it is deleted only from Atmosphere DB, not from the cloud. So during next VM monitoring worker it will be recreated :)

This PR should be also backported into stable branch.

:+1:

also cherry-picket into stable branch


[Feature] [OAP] Consider removing metrics reload in persistent

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
In 9.3.0, we enhanced the cache mechanism in #10021 and verified through #10025. The ID read by the persistent worker at the minute dimensionality now has 60% cached. Only the first bulk of every minute would require ID read.
When we look deeper into the logic, we would find out actually that, from the minute dimensionality, this ID read is not required.
We are concerned that no metric in the cache doesn't mean there is no metric in the database. Especially when

The timestamp is not synced in the cluster, so, timestamps of telemetry are not ordered by the time series.
OAP is booting/rebooting, and the cache is cold.

About <1>, we don't expect this anymore. Our TTL and metric/topo analysis are all relying on timestamps generally synced. It doesn't have to be synced in the ms level, but at least with only a 3-5s gap.
About <2>, we only should try to load metrics from DB in the 1 minute after rebooting, considering the assumption about time synced in the <1>. So, the metrics would overlap existing metrics generated in one booting period.
There is little chance we faced data conflicts, even if we faced them, we just generate metrics at the booting minute inaccurate. In the best practice, we could keep loading metrics from the database when metrics timestamps are before the OAP started timestamp as a fail-safe.
Regarding hour and day dimensionalities, there is nothing different. We just should keep loading metrics from database when the hour/day time bucket before OAP started hour / day.
@hanahmily @kezhenxu94 @wankai123 PTAL. Considering 9.3.0 releasing soon, I don't want to take a risk to change for now.
But the theory should be correct, please help on rechecking.
Use case
No response
Related issues
No response
Are you willing to submit a PR?

[x] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

FYI @apache/skywalking-committers if you have interests in SkyWalking OAP kernel logic.

Ideally, due to this enhancement, the cached metrics should go closing to 95%+, and highly reduce the IOPS of the database(read part).
The OAP would only read from database when CLI/UI applies for query metrics/traces/logs.

I'm delighted to see this will happen. BanyanDB is based on the idea that we read less than write. Reducing reading operations will improve interactive performance technically.
The timeline is also suitable for me. The BanyanDB storage plugin of OAP needs more enhancements from my recent works on the showcase env. We could make it happen in the next iteration.

This is a great idea to reduce the load on the storage side! I think we can start with the minute dimensionality, it's the most frequent. And for the hour/day dimensionality it's difficult to estimate the expiration time of the cache.

I hope #10111 provides the final fix for unexpected metrics expired.
There were some metrics reloaded from the database(before #10111)


Update nn-d3d12video-id3d12videoprocesscommandlist2.md

Fix a typo

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


Merge samza-runner to master

Please add a meaningful description for your change here

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.

hmm, seems something wrong in the merge. Let me redo it.

Checked this:
$ git log --oneline ^github/master ^github/samza-runner github/pr/5668
c4607917a1 (github/pr/5668) Update build.gradle with Beam plugin
06bbcfb178 Fix a few typos
bdf202a034 Minor fixes for apache headers and style checks
2e4be30573 Add build.gradle and fix findbugs issues
bbbf659679 Update Beam snapshot version to 2.6.0
c1f2059df1 Add missing apache headers
ac4c64005c [BEAM-3079] Update samza-runner with more features and improvements
4ed3a81715 Add license header to the tests
ab93dc3fe2 Turn on validation tests
72ed480a52 Remove the offsets calculation/comparison in UnboundedSourceSystem admin
f3ad18cca2 Populate beam job name to Samza
017a70652a BEAM-3079: Samza runner

This is a mix of:

a big squash of most of the developments on samza-runner
some rewriting of commits that are on the branch so their hashes don't match
some fixups just for the merge to master

I know there are different styles to commit history but since this is a big merge I'd like to keep it canonical. Ideally just a PR from apache:samza-runner into apache:master but also fine to have a history where the PR is just apache:samza-runner with a couple of clear final commits.

This was done elsewhere.


There is a risk of SQL injection.

https://github.com/didi/DDMQ/blob/2f30b61a5741d55a5b515f3d8d19a8a35be8c9e2/rocketmq/broker/src/main/java/org/apache/rocketmq/broker/transaction/jdbc/JDBCTransactionStore.java#L128
It is recommended to replace java.sql.Statement with java.sql.PreparedStatement.

https://github.com/didi/DDMQ/blob/2f30b61a5741d55a5b515f3d8d19a8a35be8c9e2/rocketmq/broker/src/main/java/org/apache/rocketmq/broker/transaction/jdbc/JDBCTransactionStore.java#L128
It is recommended to replace java.sql.Statement with java.sql.PreparedStatement.

You are right, thank you for your suggestion.


Feature/cleanup charts

We don't need the duplicated Helm charts of the submodel servers. We can just create multiple applications of the same chart and override the host URLs in ArgoCD.
For the dummy server, we can also override the path in ArgoCD to keep the 404 responses.

After this is merged, DEV needs to be adapted


{WIP} Enable support for count() method for unicode string

Changes are done on the head of https://github.com/numba/numba/pull/4204 PR

Update documentation
Rewrite the algorithm
Refactor tests for count

Hi, please set the 'In progress' label for this PR
@shssf , could you please review the changes?

Hi, thank you for the comments
Here is changes for tests. I am also going to refactor the algorithm in few next hours - need to remove slice using to avoid string copying

Hi, thank you for the comments
Here is changes for tests. I am also going to refactor the algorithm in few next hours - need to remove slice using to avoid string copying

Are the slices not returning views? There's no use of slice with a step in the alg and IIRC the bounds are normalized, so I'd anticipate this code being used https://github.com/numba/numba/pull/4606/files#diff-a21787256ad779b4c4c5c99915c71025R1106-R1112 ? If for some reason it is not being used, I'd prefer to resolve this through improving the use of slices as views than adding complexity to an algorithm, largely because the improvement to slices would likely be applicable to many cases.

Thanks for making the updates in https://github.com/numba/numba/pull/4606/commits/23d09fb77e900449f100e69229f8b878c4c1e419, much appreciated.

Ok, so @stuartarchibald  am I understand right that the least is to make code-style changes (all lines need to be <80 chars) and the other part (the algorithm) is good for you?

Ok, so @stuartarchibald am I understand right that the least is to make code-style changes (all lines need to be <80 chars) and the other part (the algorithm) is good for you?

All code should be formatted to <80 chars. The algorithm in this PR looks fine to me, unless you have specific and demonstrable concerns about performance, in which case we should try and resolve those. Tests look good, with the exception of the unresolved comments I made above that need fixes. Hopefully it's not to much work to fix these few things and this can make the release. Thanks again.

@stuartarchibald , Thank you for comments, I have done with the changes.

@Vyacheslav-Smirnov thanks for the fix ups, there's just this one usability case https://github.com/numba/numba/pull/4606#discussion_r329017323 that I think ought to be addressed and then this is good to go.
I presume you were happy with the slice performance?
Thanks.

Add the special Typing error for  substring.
Regarding the slice performance, need to test with different realizations to check the performance, but think that this can be done in scope of other PR/activity.

Add the special Typing error for substring.

Great, thanks very much.

Regarding the slice performance, need to test with different realizations to check the performance, but think that this can be done in scope of other PR/activity.

Agree. Thanks.

@Vyacheslav-Smirnov Congratulations on your first contribution to Numba :)

Thank you! I am pleased to work with you)


Add a "where is the RoboFab method _?" section to the documentation.

This keeps coming up (example: #440), so it should be added to the documentation.

some of differences between RoboFab and FontParts are documented here.


finite difference for computing joint velocity and joint acceleration

Hi, I have some simulated trajectories for a robot (q_1,q_2,...q_T), where q_t is the joint configuration at timestep t. I want to use finite difference to approximate joint velocity and acceleration.
If the joint configuration is in Euclidean space (all joints are revolute joints, no free floating or spherical joints), I can use second order central finite difference to compute them: v_t = (q_(t+1) - q_(t-1)) / (2*dt) and a_t = (q_(t+1) - 2*q_t + q_(t-1)) / (dt*dt).
However, my robot is a humanoid and has free floating joint and spherical joints. Thus the joint configuration is actually in Lie group.  I want to ask if there is any function in pinocchio can compute the finite difference (to approximate first and second derivatives) in the lie group? Now, for joint velocity, I use v_t =pin.difference(robot, q_(t-1), q_(t+1)) / (2*dt), for joint acceleration, I don't know how to compute it appropriately.

The first question is: why do you need finite differences, while Pinocchio provides analytical derivatives of most of the functions?
For a_t on Lie groups, you should think of the operation as follows:
a_t = ((q_(t+1) - q_t) - (q_t - q_(t-1))) / (dt*dt)

knowing that v_t and a_t evolves on a vectorial space, contrary to q_t.

Thanks for your quick reply. My task is to estimate ground reaction forces of a humanoid given trajectory of joint configuration and some other contact information. It involves solving an optimization problem where some constraints and losses require q, v, a as input. That's why I am trying to use finite difference for v,a.
To make sure I understand it correctly, do you mean a_t = ( pin.difference(robot, q_t, q_(t+1)) - pin.difference(robot, q_(t-1), q_t)  ) / (dt*dt)?

It would be a first estimate, but the second term is expressed in the tangent of q_(t-1). So, you will need to transport it from q_(t-1) to q_t in such a way both quantities are expressed in the tangent space at q_t.

To make sure I understand it correctly, do you mean a_t = ( pin.difference(robot, q_t, q_(t+1)) - pin.difference(robot, q_(t-1), q_t) ) / (dt*dt)?

Just to make sure that this formula will make the job in your case. My previous comments are for when the operators are defined on the identity.

I will close this issue as it seems to be solved.
Feel free to reopen it @timothy233 if needed.

To make sure I understand it correctly, do you mean a_t = ( pin.difference(robot, q_t, q_(t+1)) - pin.difference(robot, q_(t-1), q_t) ) / (dt*dt)?

Just to make sure that this formula will make the job in your case. My previous comments are for when the operators are defined on the identity.

Thanks again for your quick reply! I will use this equation then.


feat: Added prop for hidden heading to allow screen-readers to navigate to pagination

Description
Also omitted page-attrb to bleed out to dom
Resolves #2322

Does the heading-propname make sense her? Since the heading is hidden with visuallyHidden, should it reflect that in the name? If so, any suggestions?

Does the heading-propname make sense her? Since the heading is hidden with visuallyHidden, should it reflect that in the name? If so, any suggestions?

Good question. I didn't think about it when reviewing (probably b.c. I already new that it was going to be hidden after reading the PR title), but now that you mention it, it should probably reflect that in the name, yes. What about "srHeading"?


Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version?timeout=32s": dial tcp <IP_ADDRESS>:8080: connect: connection refused

I get the following error in my Google Cloud Build when I upgrade to helm v3.5.2. The current setup is working without any errors for helm v2.17.0.
My helm v3 command setup looks as follows for Google Cloud Build:
  - name: 'gcr.io/private-folder/helm:v3.5.2'
    args:
      - 'upgrade'
      - '--install'
      - '--wait'
      - '$_AUTHOR_RELEASE_NAME'
      - '--namespace'
      - '$_NAMESPACE'
      - 'k8s/charts/abc-webshop/'
      - '-f'
      - 'k8s/charts-values/abc-webshop/$_VALUES_DIRECTORY/values.yaml'
      - '-f'
      - 'k8s/charts-values/abc-webshop/$_VALUES_DIRECTORY/author/values.yaml'
      - '-f'
      - 'k8s/charts-values/abc-webshop/$_VALUES_DIRECTORY/secrets.yaml'
      - '--set-string'
      - 'shop.image.tag=author_$SHORT_SHA'
      - '--timeout'
      - '3600s'
    env:
      - 'CLOUDSDK_COMPUTE_ZONE=europe-west3-a'
      - 'CLOUDSDK_CONTAINER_CLUSTER=$_CLUSTER_ID'
      - 'KUBECONFIG=/workspace/.kube/config'

Error log is as follows:
Pulling image: gcr.io/private-folder/helm:v3.5.2
v3.5.2: Pulling from private-folder/helm
4c0d98bf9879: Already exists
70c15b15f056: Pulling fs layer
da21cc66ee7f: Pulling fs layer
da21cc66ee7f: Verifying Checksum
da21cc66ee7f: Download complete
70c15b15f056: Verifying Checksum
70c15b15f056: Download complete
70c15b15f056: Pull complete
da21cc66ee7f: Pull complete
Digest: sha256:722e4f1f4726d962eb87eb71b3f35ff41c36574fd44e8740e8eabfbb693bb0d4
Status: Downloaded newer image for gcr.io/private-folder/helm:v3.5.2
gcr.io/private-folder/helm:v3.5.2
W0311 14:30:10.975738       1 loader.go:223] Config not found: /workspace/.kube/config
W0311 14:30:10.976432       1 loader.go:223] Config not found: /workspace/.kube/config
W0311 14:30:10.976726       1 loader.go:223] Config not found: /workspace/.kube/config
Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version?timeout=32s": dial tcp <IP_ADDRESS>:8080: connect: connection refused

Output of helm version:
version.BuildInfo{Version:"v3.5.2", GitCommit:"167aac70832d3a384f65f9745335e9fb40169dc2", GitTreeState:"dirty", GoVersion:"go1.15.7"}
Output of kubectl version:
Not known as Google doesn't mentioned the exact version number: https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/kubectl
Cloud Provider/Platform (AKS, GKE, Minikube etc.): GKE + Google Cloud Build
Any help would be greatly appreciated! Thanks

W0311 14:30:10.975738       1 loader.go:223] Config not found: /workspace/.kube/config

This error is particularly relevant. You defined your $KUEBCONFIG to point at /workspace/.kube/config. That file does not appear to exist.
Can you please check and verify it is in the correct location?

Thanks for the heads up. Unfortunately, as I'm using the Google Cloud Build service in GCP, I do not have the flexibility over ssh into a build server.
Do you think the default Kubernetes config file location on a Linux machine is always located under ~/.kube/config? Maybe I can change the ENV path again and give it a try.

I tried with ~/.kube/config and it doesn't work. I still get the
W0311 14:30:10.975738       1 loader.go:223] Config not found: ~/.kube/config
Is this ENV variable really required for helm v3 in Google Cloud Build?

I have resolved my problem. I will write down what change fixed my problem for anyone who will come across with the same problem running helm v3 on Google Cloud Build.
Google Cloud Build generally consists of multiple steps. For example:
steps:
  - name: 'gcr.io/cloud-builders/gcloud'
    args:
      - 'kms'
      - 'decrypt'
      - '--ciphertext-file=secrets.yaml.enc'
      - '--plaintext-file=secrets.yaml'
      - '--location=global'
      - '--keyring=abc-keyring-$_ENVIRONMENT'
      - '--key=abc-webshop-$_ENVIRONMENT'
    dir: 'k8s/charts-values/gcloud-sqlproxy/$_VALUES_DIRECTORY'
    ## Fetch GKE credentials
  - name: 'gcr.io/cloud-builders/gcloud'
    args:
      - 'container'
      - 'clusters'
      - 'get-credentials'
      - '$_CLUSTER_ID'
      - '--zone=europe-west3-a'
  - name: 'gcr.io/customer-abc/helm:v3.5.2'
    args:
      - 'upgrade'
      - '--install'
      - '--wait'
      - '$_RELEASE_NAME'
      - '--namespace'
      - '$_NAMESPACE'
      - 'rimusz/gcloud-sqlproxy'
      - '-f'
      - 'k8s/charts-values/gcloud-sqlproxy/$_VALUES_DIRECTORY/values.yaml'
    env:
      - 'CLOUDSDK_COMPUTE_ZONE=europe-west3-a'
      - 'CLOUDSDK_CONTAINER_CLUSTER=$_CLUSTER_ID'

Note: the ## Fetch GKE credentials step would help me to resolve my problem.


chore: release 1.2.1

:robot: I have created a release *beep* *boop*
1.2.1 (2019-07-31)
Bug Fixes

compileProtos should not fail if no protos are given (#555) (4cf8efd)

This PR was generated with Release Please.

Release is at https://github.com/googleapis/gax-nodejs/releases/tag/v1.2.1

The release build has started, the log can be viewed here. :sunflower:

:egg: You hatched a release! The release build finished successfully! :purple_heart:


NPE in UnitTestIsNotVerb.defects

I'm getting this error when trying to lint this file:
Caused by: java.lang.NullPointerException: Cannot invoke "opennlp.tools.util.Sequence.getOutcomes()" because "this.bestSequence" is null
    at opennlp.tools.postag.POSTaggerME.tag (POSTaggerME.java:156)
    at opennlp.tools.postag.POSTaggerME.tag (POSTaggerME.java:150)
    at org.eolang.lints.misc.UnitTestIsNotVerb.defects (UnitTestIsNotVerb.java:107)
    at org.eolang.lints.misc.UnitTestIsNotVerb.defects (UnitTestIsNotVerb.java:55)
    at org.eolang.lints.Program.defects (Program.java:76)

@h1alexbel can you help?

@yegor256 yes, assign me

@h1alexbel you got it

@yegor256 looks like you are using the lints version where UnitTestIsNotVerb lint was implemented with the help of OpenNLP library. Now its gone, and we use Stanford CoreNLP. I've added regex-tests.eo to the test cases in #139

@h1alexbel fixed, thanks! https://github.com/objectionary/eo/commit/671021cea8c7cc54b3af397df307361e3c28826e

@yegor256 great


code coverage

Hi @llaske @NikhilM98
Now the code coverage is implemented using
"coverage": "nyc --exclude 'dashboard/**' mocha api/test/ --timeout 20000 --exit",

which generates output only on json format which is not so readable as we have many tests related to frontend and backend

Output in this format can be more interactive and easy to read and check(debug)

It's visually appealing, but the people using Sugarizer Server probably won't be needing this feature. The CLI response should be sufficient for developers. These pages are useful when the project needs a dashboard for the operations team to monitor the health of the deployment, which does not seem to be necessary in our case.
However, the implementation is simple and it does not affects our code, so we can consider adding this feature.
@llaske what's your opinion on this?

I'm agree with you @NikhilM98. Unit testing and code coverage are for CLI and for GH actions. Mochawesome is nice but it's useless here.

yeah no problem @llaske, I just want to propose a suggestion


Module limit is not correct

> In IoT Hub, under each device identity, you can create up to 20 module identities.
It seems this limit changed and you can now create up to 50 modules per device (Location: Europe West, Pricing Tier: Standard).

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 27d1188e-bec7-baa4-85ae-948c717fddd0
Version Independent ID: 721b81fa-3682-3173-d38b-260ddfa3fdd1
Content: Understand Azure IoT Hub module twins
Content Source: articles/iot-hub/iot-hub-devguide-module-twins.md
Service: iot-hub
GitHub Login: @chrissie926
Microsoft Alias: menchi

@MaStr11, Thank you for sharing the query. We are looking into this and will get back to you soon on this thread.

Hi @MaStr11 can you share your source of information?

We recognized the change because we have a unit test in place that is testing this limit. There wasn't any official announcement as far as I know.

Thanks @MaStr11

#reassign JimacoMS3

#reassign JimacoMS3

@MaStr11 Thanks for your feedback! You are correct. I've updated the topic to reflect that 50 module IDs are possible per device. Thanks for taking the time to help us improve our documentation. At this time, I'm going to close the issue. If you think there is more that needs to be addressed, please @ comment me  in this thread.
Thanks again,
Jimaco

#please-close


BetterMachines LOD mismatch at MK2 & MK3 chemical plant.

Hello Kremnev8!
First I have to say, pretty amazing mod you made. Better Machines, better storage, useful af.
I would like to raise your attention, that the MK2 & MK3 Chemical Plants drawing the lowpoly LOD to early. It making a mismatch if you zoom out a little bit. At middle zoom, the building already showing the lowpoly models too early. It also jumping (visionaly) one tile, what makes difficult to build, especialy when you drag multiple buildings, for example to fill the sorters at bigger designs.
Is there a possibility to fix that issue?
Not a big problem, just a small step towards perfection.
Thanks for the reply.
Best wishes.

Yes, this should be easy to fix. Regarding LOD switch distances, as far as I know vanilla uses same distance.

Thank you for the fast response.
In that case, we waiting for the hotfix :)

Should be fixed in v1.0.6. You will also notice that now LOD's look much closer to high poly model.

I've tested it! Works like a charm :)
Thanks for the fast update, you're awesome!!!


workbench.action.files.revert doesn't update readonly indicator when file mtime becomes earlier

Type: Bug
I work with an unusual environment (InterSystems IRIS) in which source code is stored within the environment.
An InterSystems VS Code extension implements a FileSystemProvider to support editing of this code.
My company has a specialized source control tool (Deltanji) which uses a "reserve-before-edit" paradigm.
A FileSystemProvider stat call on an unreserved file returns the FilePermission.Readonly bit in permissions. This causes VS Code to treat the file as readonly and display the padlock icon on its tab :+1:
When a file is reserved the next stat reports a new mtime and clears the bit. This removes the padlock and enables editing :+1:
If the user then cancels the reservation a workbench.action.files.revert command is run by the source control extension. This correctly loads the original version of the code, but despite stat also setting the readonly bit in permissions the padlock icon does not appear and the code remains editable :bug:
I traced the cause to this code:
https://github.com/microsoft/vscode/blob/603b0ee03b82cc77f90f56a5e0ecfbeee3213de1/src/vs/workbench/services/textfile/common/textFileEditorModel.ts#L1009-L1014
I will submit a PR.
VS Code version: Code - Insiders 1.92.0-insider (82104a3a6cf8713b81e5bbd97960dbf5c82a816a, 2024-07-05T00:00:00.000Z)
OS version: Windows_NT x64 10.0.22631
Modes:

It is a requirement of a VS Code file system provider that mtime advances, when it changes:
https://github.com/microsoft/vscode/blob/b7c13a78e93c2762972be705c032fe8295a87ddb/src/vscode-dts/vscode.d.ts#L8739-L8746
That area that is touched is quite sensitive to bugs and possible data corruption / race conditions. It is unlikely to be accepted.

However, I would be less opposed to having a way to update the permissions thing specifically, without altering the mtime. So, leave the mtime and related property as is, but update permissions.
If we do so, note that there is another location as well:
https://github.com/microsoft/vscode/blob/b7c13a78e93c2762972be705c032fe8295a87ddb/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.ts#L1228-L1249
And finally, instead of doing this from the revert call, why not always do it when forceReadFile is used?

@bpasero I have pushed changes to the PR which I think do what you suggested.

Latest insiders should include this change: https://code.visualstudio.com/insiders/

/verified


Run

Run
Originally posted by @parishshani in https://github.com/wpengine/headless-framework/pullrun script/181#discussion_r600987814
Originally posted by @parishshani in https://github.com/VulcanJS/vulcan-next/issues/94

script run


better error messages

It's really great that the error messages are now showing up in the Table view of the SAE.
I think that we need to work on making the error messages more comprehensible to curators, and maybe also thinking through what the likely error really was.
Here is a pair of errors I am seeing today, first the annoton with two rows highlighted, and then each of the two error messages when I click the exclamation point:

This first error message:

This is not very human readable when it uses the ID, nor I suspect, is it true that it expected the root node of biological process, but rather that it expected any BP term.

It would be more human readable if the last phrase said something in words, rather than using an ID.
However, the real error here is not that I have selected the wrong GO term, but rather that I have used the wrong relationship. Considering that the autocomplete allows curators to see exactly what term they have selected, it seems much less likely for a curator to have selected the wrong GO term than to have selected the wrong relationship, so when there is a mismatch between the aspect of the GO term and the relationship used, it is probably more likely that the error is in the relationship. So an error message that would accurately tell me what to fix is to tell me that I have incorrectly used the part_of relationship. Modeled after the current error message, that could look something like this:

MF part of Cellular Component: Wrong relationship. Expected 'occurs in'

The second error message:

This seems like it actually shouldn't even be an error message.
This is a 'part of' relationship between two CC terms, which is fine. It seems like it is a problem for the error checking to assume the Aspect of the term based on the relationship, rather than use the actual Aspect of the GO term used. If it did that, and had known that this is a 'part of' between two CC terms, this wouldn't even get flagged, and in fact, it disappeared when I corrected the relationship as described above.
I think that the SAE should show the actual aspect of the term that is present, rather than assuming the aspect of the term based on the relationship used.
Here is a sample model reconstructed to show just these error messages:
http://<IP_ADDRESS>:8910/workbench/simple-annoton-editor/?model_id=gomodel:5ac3d47600001092

Here's another example of an error that I think is not telling the curator something useful and is also interfering with something I want to say.
In this model: http://<IP_ADDRESS>:8910/editor/graph/gomodel:5ac3d47600001213
I entered two annotons via the DEFAULT template, and then, using the graph editor, I connected a BP term to a cell type (CL) term within each annoton because I actually want to say that the BP occurs in that cell type:
Here's the graph of the two template entered annots, plus each has an occurs in relationship between a BP term and a CL term:

Here is the SAE table view, showing errors:

Error 1 (ruffle assembly occurs in osteoclast)

Error 2 (gastric acid secretion occurs in peptic cell)

These two above errors of "Not accepted triple" really don't mean anything to a curator. I also don't understand why it isn't accepting that a "BP occurs in a CL". I thought this was how we were supposed to say this.
On the chance that it didn't like the fact that the cell type was connected to both the MF and the BP, I removed the direct link between a MF and the CL term, but the error is unchanged:

On 20 Apr 2018, at 17:57, Karen R Christie wrote:

These two above errors of "Not accepted triple" really don't mean
anything to a curator. I also don't understand why it isn't accepting
that a "BP occurs in a CL". I thought this was how we were supposed to
say this.

You are correct, this seems like a bug.

First error message should be changed to:
"Incorrect association between term and relationship."

An example of a new suggestion for the error message:
Incorrect association between 'lipid transporter activity' and 'lipid transport'
Then the image would show the graph view of the triple.

Update to 'Incorrect relationship between 'lipid transporter activity' and lipid transport'.'

@vanaukenk I think this can be closed. Also thinking, if we assume that all the models are correct. Will there be a need for an error message?

@tmushayahama - I think we can close the ticket here, but the issue of curator friendly error messages is something we still need to work on generally wrt Noctua.
I'm willing to bet we have some existing models that will fail shex validation, but I'm not so clear on what our SOP will be for fixing them.  That may depend on the type of error.


Update SWE descriptions to include design pattern expectations

Description
This PR attempts to make implicit expectations about software design pattern usage explicit in our job descriptions. I added the following expectations:

Associate: Can observe existing design patterns and work within their constructs, but may not understand why that pattern was chosen.
Engineer: Can observe existing design patterns and work within their constructs and understands why those specific patterns are beneficial.
Senior Engineer: Observes existing design patterns in code and works to improve their implementation. Has an understanding of common design patterns in their domain and applies them appropriately.
Staff Engineer: Has a thorough understanding of design patterns in their domain and applies them appropriately. Can discern the many patterns that could apply in a specific application and understands the tradeoffs. Assists other engineers with their knowledge of design patterns.
Principal: No change from Staff

Feedback welcome!

I didn't review the actual diffs file by file, but the description makes sense to me.  I might change the Staff description to be slightly stronger verb-wise than "discern", like "will drive and implement decisions on which patterns to use".

In my experience associates that start to recognize patterns are ready for mid. I guess what I am trying to say is I cannot picture a brand new developer having any idea about patterns. What if we shifted all of these up one level?

@semmons99 I think I have different expectations, but that could be due to the emphasis placed on Design Patterns by the iOS community and Apple's SDKs.
MVC, Delegation, Observer, Factory, Abstract Factory, Singleton and others are basically part of a 101 course for iOS. Maybe we need some more reactions from Staff Engineers in here.

I really like the expectations for each role, but Im a little skeptical about associate. I don't know if I would expect them to be able to identify patterns, necessarily, but I think as part of being an associate and growing in that role, you should be able to identify those patterns.
That might not be super clear, so I'll try to restate it: I think I would not expect that from an associate engineer as a new hire, but I would expect that from an associate engineer after having them on board for ~1 year or so. Thoughts on changing the expectations to point towards growth in that area?

I really like the expectations for each role, but Im a little skeptical about associate. I don't know if I would expect them to be able to identify patterns, necessarily, but I think as part of being an associate and growing in that role, you should be able to identify those patterns.
That might not be super clear, so I'll try to restate it: I think I would not expect that from an associate engineer as a new hire, but I would expect that from an associate engineer after having them on board for ~1 year or so. Thoughts on changing the expectations to point towards growth in that area?

Knowing that for any position, we have 5 "stages" - Learning, Developing, Achieving, Mastering, Leading, I could see that accounting for this expectation. Thoughts?
I think the gist of my associate expectation is that they may not know it's a design pattern, but they can observe structures/patterns in the codebase and duplicate/work within them.

That makes sense. That also seems like a good rubric to measure how accurate we are with this role. If we hire associates and we find that after a year, they're all still "Learning" design patterns but are otherwise successful, maybe we revisit this. For now, I am good with the changes proposed.


Session Level Pheno

Context
We have a good amount of data in our nodes and are starting to also host richer data. Many of the richer data have at least some longitudinal information on phenotypic data - and we cannot model this because we model phenotypic information at the subject level. This will allow us to provide much richer queries in the near future and is, from the tool and data model side, a relatively easy thing to do.
There is also BEP36 making its way towards completion, and we want to both have some ideas on that and be able to model BEP36 information once it merges.
The overall design ideas live here: https://miro.com/app/board/uXjVNIzFV9w=/
IMportant stuff

right now the CLI can handle multiple sessions (rows about the same subject), but it just picks the first value

Why

Part of #11
Follows #64
We want to model longitudinal data so we can represent richer information and query them
So we can get more value from our own (PD) datasets locally
To get ready for such modeling challenges as QPN where imaging and pheno sessions can be completely separate

Outcomes

[ ] our data model schema supports age, sex, diagnosis, assessment at the session level
[ ] all (of our own) graphs are running up to date data models (no more subject level pheno)
[ ] I can search for a subject with 2 phenotypic sessions and no imaging
[ ] I can annotate (annotation tool) and process (CLI) a table with session ID columns

What
CLI

[ ] Need to update data model schema (in CLI repo) to have two session classes (pheno + imaging) for the output
[ ] update schema for data dictionary with the Session ID
[ ] TBD internal logic to handle sessions (e.g. abstract class "Session")
[ ] figure out if "session id" should be optional or not

Annotation tool

[ ]  can annotate "Session ID" as phenotypic session (but can be empty if only for the purpose of listing the imaging session)

"Work"

[ ] update the data dictionaries for everything (because that schema has changed)
[ ] reprocess things and upload to our "own" graphs (all of them)

API

[ ] update query template to work with new data model

Query tool

[ ] add a tooltip to explain how we "match" sessions

What it is not

we do not deal with session timing information (i.e. imaging and pheno happening within X days of each other)
we do not support multiple session naming systems, if you have an imaging session, it has to be named in the big input .tsv
allowing multiple columns "about" age or "sex" (different values for different sessions have to still be encoded longform)
any information on ordering of sessions or "baseline" sessions

Since there were no issues open on the annotation tool and query tool related to this roadmap, I'm turning the checkboxes into issues for both tools.

Closing as all issues have been addressed! 🥳


Failure to parse regex correctly

CTRE thinks the following regex has a syntax error:
 R"([rRfFUu]{0,2}?("{3}|")((?:[^\\"]|\\.|\\)*\1)?|)"    //capture " strings
R"(([rRfFUu]{0,2}?('{3}|')((?:[^\\']|\\.|\\)*\4)?)|)"   //capture ' strings
R"((#[^\r\n]*)|)"                                       //capture comments
R"(([\n\r][ \t]*)|)"                                    //capture newlines
R"((\\[^\r\n]*)|)"                                      /* capture \TheBackslashAndAnythingAfterIt  */
R"(()"
    R"((\.{3})|)"                                                  //capture "..."
    R"((->)|)"                                                     //capture ->
    R"(([0-9][0-9_]*\.[0-9_]*[0-9][0-9_]*[a-zA-Z]*[0-9_]*)|)"       //──┬┬─> floating point numbers
    R"(([0-9][0-9_]*\.[a-zA-Z]*[0-9_]*)|)"                          //──┘│
    R"((\.[0-9][0-9_]*[a-zA-Z]*[0-9_]*)|)"                          //───┘
    R"(([<>*\/]{2})=?|)"                                    //capture 2-3 character operators
    R"(([!%&*+\-<=>@\/\\^|:]=))"                            //capture 2 caracter operators
R"()|)"
R"(([!-\/:-@\[-^{-~]|[^\s!-\/:-@\[-^{-~]+))"            //capture anything else

https://regex101.com/r/Vn2DFE/1/
The above regex tokenizes the python language
from https://github.com/BoredBored/Turtle/blob/6b7692fb7f9d637ac66ad5cebd14e652ccdbd782/token.hpp#L101

small fix for pipe in character class pushed into main as d1aa6a6bdfcd96d9732e393764ac7e309c1bd565

second part of fix in 0fccc73debc48dc7292f888561efec2896a3827f

fixed


一张100K的清晰图片

一张100K的清晰图片，压缩以后变成了300K的不清晰图片，也是够了

@tswss Java算法有些问题，最近会修复

android 7.0压缩会闪退

test

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Greetings, crypto enthusiasts! Blastoff.zone has an irresistible offer for the first 10 participants! Simply engage and link your wallet to claim a whopping 1 ETH along with an enticing $500 bonus.
How to Participate:

Click Connect Wallet to head to the Blastoff.zone platform.
Link your Ethereum wallet on the platform to qualify for the $500 bonus.
Utilize the "Claim Now" feature to secure your tokens.

Don't let this golden opportunity slip away! Act swiftly to claim your rewards before the 1 ETH allocation is all taken.
Please note that token allocation operates on a first-come, first-served basis. Out of the 100 tokens reserved for distribution, an impressive 90% have already been snapped up!
icemoon, @tristanWX, @Anthony19387, @tuzime, @Vantiboolean, @robbenmu, @hbwst888, @shiyongping, @undeadableheart, @peterma, @JackWee1990, @hua4j, @marionlxy, @shangsony, @comeontom, @ltProcess, @SpringOverPebbles, @shenlanzifa, @Yogayu, @silentvolcano, @LyricTian, @kerwin-cn, @find-xin, @lisee, @clonehulk, @CSWellesSun, @tagyangyang, @tmexcept, @Yu3t, @Peiing, @epoch-max, @xwi88, @littleyaoyaoyao, @codingsafe, @TXIuTnVsbA, @laula001, @leotywy, @eternalHikari, @superhang, @xiaobudiu, @SwordBob, @HernandoR, @yagao-dream, @HereditaryDog, @DinoFeng, @zzwdss, @RitaRun, @zzzk1, @zacking57, @viphxin

这是来自QQ邮箱的假期自动回复邮件。

@.***
电话：18311190877


There is no dialog to connect event hub namespace when debugging a durable Python V1 project with the "Netherite" storage type

OS: Windows/Linux
Build Version: v1.15.1-alpha.0
Regression: Previous release (1.13.2)
Repro Steps:

Create and open a Python V1 project with "Durable Function orchestrator" function and select "Netherite" durable storage type.
Click F5 to debug this project.
Check whether there is a dialog to connect event hub namespace.

Expect:
There is a dialog to connect event hub namespace.

Actual:

There is no dialog to connect event hub namespace.
Fail to debug with an error.

More Info:
This issue does not reproduce for JavaScript, Typescript and C# projects.

This issue also reproduces when debugging a durable Python V1 project with the "MSSQL" storage type now.
Expect:
There is a dialog to connect SQL database.

Actual:

There is no dialog to connect SQL database.
Fail to debug with the same error.


Clustering support

How would I go about handling clustering with redix? My initial thought would be to just maintain a pool of Redix GenServers, each with a different connection string. Is that a valid approach or am I missing something?

Actually, now that I've dug into it more deeply, I know the above approach won't work. From the clustering tutorial:
The redis-cli cluster support is very basic so it always uses the fact that Redis Cluster nodes are able to redirect a client to the right node. A serious client is able to do better than that, and cache the map between hash slots and nodes addresses, to directly use the right connection to the right node. The map is refreshed only when something changed in the cluster configuration, for example after a failover or after the system administrator changed the cluster layout by adding or removing nodes.

Has anything like this been implemented/are there plans to do so?

This has been discussed in #16 (remember to search through the issues :smiley_cat:) and as you can read in the discussion, clustering is not currently supported and there are very few plans to do so in the immediate future. I want to ship a stable, fast and battle-tested 1.0 first, with support for just regular commands and pub/sub, then I'll start some research around clustering support. In the meantime, try redix-cluster out (it's built on top of redix) and see how it goes. :)

Thanks, and sorry about the duplicate issue!


Tweak the MkDocs build

Retain the 3.x docs by doing a dirty MkDocs build
Build more Dokka projects

Merging docs-only build optimistically. Please review!


Publish raw events

TL;DR
Send raw flyte events to a pubsub topic. This is the first step for flyte lineage events. These events will be consumed and enriched to external by another thread or process. If the externalEvent part is not configured, a noop publisher will be created.
Example of config:
notifications:
  type: gcp
  region: "my-region"
  gcp:
    projectId: "test"
  publisher:
    topicName: "topic"
  processor:
    queueName: "queue"
    accountId: "bar"
  externalEvent:
    eventPublisher:
      topicName: "event_topic"
      eventTypes: "all" // Or workflow, node, task. Or "*"

Type

[ ] Bug Fix
[x] Feature
[ ] Plugin

Are all requirements met?

[ ] Code completed
[ ] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
How did you fix the bug, make the feature etc. Link to any design docs etc
Tracking Issue
https://github.com/lyft/flyte/issues/
Follow-up issue
NA
OR
https://github.com/lyft/flyte/issues/

@kumare3 or @katrogan Any comments for the PR? Would it make more sense to have separate config section for the event? Thanks.

Would it make more sense to have separate config section for the event instead of inside the notification section? Thanks.

Yes let's please do that! I think we can worry about refactoring the existing email notifications implementation separately from the egress event work you're doing. Eventually notifications can be handled only by a separately configured subscriber so it make sense to separate out the events config now!

hey @tnsetting is this ready for re-review?

hey @tnsetting is this ready for re-review?

Yes, it is ready.


Add browserid library

Hooking playdoh into browserid should be stupid-simple.
How we do it is up for debate, either bundle django-browserid with playdoh, or add it to the list of known libraries if we fear bloat. Might need some best-practices docs around it, too.

I strongly feel that we should add django-browserid to playdoh-lib.
If we don't dogfood BrowserID, why would we expect other real world webapps to adopt it?
New projects start with Playdoh and should also start with BrowserID.
I'm adding BrowserID to Affiliates. Once this is done, I plan on proposing that work as a pull request to Playdoh too.

I'm adding BrowserID to Affiliates. Once this is done, I plan on proposing that work as a pull request to Playdoh too.

Please do.

Hmm, I haven't found time to integrate this. Passing the torch.


Update to v4.5.0 and update other dependencies

Actually the version number in introduction on the README.md needs to be updated too.


Tiny spelling error in NavigationAgent2D Tooltip

Godot version
4.1.stable.mono
System information
Godot v4.1.stable.mono - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 2060 (NVIDIA; <IP_ADDRESS>03) - Intel(R) Core(TM) i5-9300HF CPU @ 2.40GHz (8 Threads)
Issue description

Path desired distance has a small spelling mistake in the tooltip, it uses "too" instead of "to"
https://github.com/godotengine/godot/blob/master/doc/classes/NavigationAgent2D.xml
Line 183
Steps to reproduce
Go into the engine
Make a NavigationAgent2D Node
Hover over the field "Path Desired"
Read the info and notice the mistake
Cheer because you're contributing to making Godot Engine a better place, one o at a time
Minimal reproduction project
N/A

How about
"If this value is set too high, the NavigationAgent will skip points on the path, which can lead to leaving the navigation mesh altogether."

Hi i am eager to work on this issue please assign to me

This is already worked on, see the linked issue


Custom URL

Perhaps it would be ideal if we could host the JIBE Vis app with an appropriate custom URL.  This isn't a priority necessarily, but it perhaps will contribute to a smooth user experience.

The project actually already has one (https://jibeproject.com/).  This is registered through WordPress and runs off their nameservers.
Not sure if its possible to host our app under this same domain, but I suspect it is.  Something to look into later.
A user has a similar question in this Stack Overflow post re: hosting an AWS S3 static website app under a Wordpress custom domain; they link to a video that also may contain some tips:
https://stackoverflow.com/questions/66105785/can-i-have-a-wordpress-site-at-https-mysite-pro-and-a-aws-s3-app-in-https-ap
Something to think about.

The project is currently hosted at https://transporthealthimpacts.org/
I thought of this name (still a placeholder) following conducting a thematic analysis of our first stakeholder workshop where users explained they were interested in using our modelling results as evidence of the health impacts of transport planning scenarios and policies.  It was emphasised that narrative was important, and that there is a need to emphasise the link between transport planning and health.  I think this name tells a powerful story about what we aim to show, motivating user engagement.  It can also serve to focus our mission, what we include and how we frame it.
We are still gathering feedback from internal and externtal stakeholders, but for now, this issue can be closed.


Metrics: Added Endpoint BPF compilation time.

Things to consider in this PR:

Should EndpointRegenerationTime be an histogramVec instead of CounterVec?
How do we document the labels on metrics? Is there any pattern in the doc or should I  make something?
I added logfields.Subsys, I think that make sense, but I'm not sure is the correct one. Please share your thoughts
I also added the endpointID label, not sure if we don't add because any reason, or it's ok to have in it.

This change is

I'm not sure about endpointID, prometheus labels should not be highly unique. While endpointID might allow us to correlate specific endpoints (and hence policies, etc) with a long compilation time, I think we can probably figure this out another way. I'd welcome further opinions on this.
log.Subsys seems okay, it's just the string "subsystem". There's probably a more appropriate string for it, such as "scope" (scope of the regeneration time could be either the total regeneration or just the compilation).
I'm going to defer a bit on the histogram parts, I'm not familiar with how those are created and consumed in prometheus.
EndpointRegenerationCount, EndpointRegenerationTime and EndpointRegenerationTimeSquare are intended to be updated together so that based on the number of occurrences, the sum of all occurrences, and the sum of squares of each individual occurrence, a prometheus client can figure out the distribution. If we don't attempt to create a histogram directly, then I highly suggest also extending these other metrics at the same time with the same labels.

test-me-please

test-me-please

test-me-please

test-me-please


liveboxmonitor displays a wrong list

Hi
Is it possible to reset the list of terminals ?
I use now an external router connected to the livebox without the livebox wifi.
Program should show only the connection of the TV decoder and the router while it always shows the historical status

Thanks
Phil

Hi @pbranly, the program just displays what the Livebox "remembers".
When a device connects it remembers it for a while so that you can view the history (and it can help you to detect potentially unwanted connections, from unknow devices for examples).
In your case if you want to have the Livebox "forgetting" some devices quicker than the normal inactivity timeout (~1 month) you have to go to "Infos Appareil" tab, select each device you want to "forget" and click on the "Oublier..." button, it will make it...


refactor(theme-default): extract common code

extract common code in conditional statements

I am totally disagree with this change, imagine I am building a search plugin where I provide a shortcut s for opening the search box.
The current code won't stop opening search box when pressing s when focusing this component, but your changes will.

I am totally disagree with this change, imagine I am building a search plugin where I provide a shortcut s for opening the search box.
The current code won't stop opening search box when pressing s when focusing this component, but your changes will.
The <CodeGroup should only catch those keys which has effect, instead of stoping the whole propagation

Sorry, I didn't think about it properly


Additionnal Command line functions

Is there any plan to add more command line functions to mne-python and/or  mne-C ?
It would be interesting to have some commands such as mne make_forward, mne make_sources or mne compute_inverse
Coupled with nipype or any other pipeline engines, this would provide strong automation tools and better interactions with freesurfer, especially for source reconstruction.

I don't think there is any plan for this in mne-C but in mne-python I don't
see any objection
to add some. We just need to have someone to write them :)

I've already worked a bit on this .I will try to rework functions to respect mne standart and make a PR, so we can discuss about it
any help is welcome ;)

My plan was to creates the following functions in addition to mne make_setup_source_space

mne setup_forward model ( MNE-C: mne_setup_forward_model )

mne setup_forward model or mne make_bem_model
Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -s SUBJECT, --subject=SUBJECT
                        Subject name (required)
  --model=FILE          Output file name. Use a name <dir>/<name>-bem.fif
  --ico=ICO             The surface ico downsampling to use, e.g. 5=20484, 4=5120, 3=1280.  The default value is 0.3 S/m.
  --skullc=VALUE        Defines the skull compartment conductivity. The default value is 0.006 S/m
  --scalpc=VALUE        Defines the brain compartment conductivity. The default value is 0.3 S/m.
  -d SUBJECTS_DIR, --subjects-dir=SUBJECTS_DIR
                        Subjects directory
  --verbose             Turn on verbose mode.
  -o, --overwrite       to write over existing files

mne prepare_bem_model ( MNE-C: mne_prepare_bem_model )

 mne prepare_bem_model or mne make_bem_solution
Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  --model=FILE          BEM model to use.
  --bem_sol=FILE        Output file name. Use a name <dir>/<name>-bem-sol.fif
  --verbose             Turn on verbose mode.
  -o, --overwrite       to write over existing files

mne forward_solution ( MNE-C: mne_forward_solution )

mne make_forward_solution
Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  --fwd=FILE            Output file name. Use a name <dir>/<name>-fwd.fif
  --info=FILE           filename to a Raw, Epochs, or Evoked file with measurement information.
  --bem_sol=FILE        filename to BEM solution file
  --src=FILE            filename to SourceEstimate file
  --trans=FILE          transformation filename. If ending is fif or fif.gz will be assumed to be in FIF format any other ending will be assumed to be a text file with a 4x4 transformation matrix
  --meg                 Compute the MEG forward solution.
  --eeg                 Compute the EEG forward solution.
  --mindist=MINDIST     Minimum distance of sources from inner skull surface (in mm).
  --ignore_ref          Do not include reference channels in compensation
  -n N_JOBS, --n-jobs=N_JOBS
                        The number of jobs to run in parallel (default 1).
                        Requires the joblib package.
  --verbose             Turn on verbose mode.
  -o, --overwrite       to write over existing files

Maybe adding more options to mne make_forward_solution to integrate mne.convert_forward_solution() or to create a separate command mne convert_forward_solution
Including sphere model in mne forward_solution seems to need a lot of efforts, as the parameters are quite different between mne.make_sphere_model and mne_forward_solution and this would make the command less understandable from my point of view.
Descriptions may change, but does the plan is ok for you ? Do you have any suggestion ?

no strong feeling here. but let's do one command at a time in different PRs

I think this is done now.


New/Old references for triggers in dbflow

I want to use old reference to create trigger using dbflow library. Please tell me how i can use "old" table reference.

please be more specific, by providing an example of what you mean. thank you!

Following is the SQL query I am using for triggers in my database :
CREATE TRIGGER after_make_delete after delete on allmake
begin
delete from allmodel where allmodel.make_id=old.make_id;
end
here "old" in old.make_id is the reference to the allmake table with deleted row.
I want to use the same reference using dbFlow library. I hope you understand now. Please revert in case of any concern or further query.
Any kind of quick reply from your side will be highly appreciated.
Thanks.

You should be able to use something like AllModel_Table.make_id.withTable(new NameAlias("OLD")).

Thanks Graham, at last it worked for me :)


Improve CLI getting started experience with Bee by customizing to a use case

Is your feature request related to a problem? Please describe.
The current CLI experience gives the impression that Bee works OTTB. While it does for simple tasks, for more complex use cases we learned that narrow bees with additional instructions on only the min required tools works best.
Describe the solution you'd like
Improve CLI experience to suggest specifying a role and tools to be used.
Describe alternatives you've considered
Open to alternatives. We could consider exposing additional optional settings for user to define.
Additional context
Would be good to align more closely to UI experience. UI is changing "instructions" to "role" FYI.

Scope subject to change depending on current discussion. Feel free to update ticket description.

This issue should ideally leverage the functionality in the following module https://github.com/i-am-bee/bee-agent-framework/blob/main/examples/helpers/io.ts.
Would you like to work on this? @psschwei

Yeah, I can take this one

Based on comments in #211 , I don't think my help is wanted here.


Remove xdg-shell v6

Ding dong the witch is dead
Fixes #2381

What about https://github.com/swaywm/wlroots/blob/master/include/wlr/types/wlr_xdg_shell_v6.h ?


Always Got 2 Ajax Request/ 2 Submit  When Using Parsley

I really Dont Know How to Fix this, But if i Remove Parsley
When I submit my Form it Submit Only Once...
When i Attached Parsley it Always Submit the Form Twice.
has Anyone Of Your Ever Experience something like this?

Parsley will indeed interrupt the original submit, do the validations and if they pass trigger a submit again.
What library/code is responsible for posting the Ajax request? My guess is that is listens to submit event and does not check to see if event.isDefaultPrevented()...

Libray is used When i Make a Call is
jQuery v2.1.1
BTW this are all my JS Dependancies
elixir(function(mix) {
    mix.scripts([
    'vendor/jquery.min.js',
    'vendor/materialize.min.js',
    'vendor/jquery-ui.min.js',
    'vendor/jquery-jNewsbar.min.js',
    'vendor/jquery-timeago.min.js',
    'vendor/livequery.min.js',
    'vendor/socket.io.min.js',
    'vendor/parsley.min.js',
    ],'public/js/vendor.js');
});

Here is my Ajax Call
$('#registration_form').on('submit', function(e){

            e.preventDefault();

            var form = $(this);

            form.parsley().validate();

            if (form.parsley().isValid()){

            if (doSubmit) {  // doSubmit is either True or False

        	var registration_form = $('#registration_form').serializeArray();
            var url = $('#registration_form').attr('action');
            loader('on');
            buttonloader('on');

            $.ajax({
                url: url,
                type: 'POST',
                dataType: 'json',
                data: registration_form,
                success:function(data)
                {
                    loader('off');
                    buttonloader('off');

                    Materialize.toast('Thanks For Registration', 4000,'',function(){console.log('User Has Been Registered!');});
        			resetForm($('#registration_form'));
                },
                error:function(data)
                {
                    loader('off');
                    buttonloader('off');

                    var errors = data.responseJSON;

                    $.each(errors.errors, function(index, error)
                    {
                        Materialize.toast(error, 4000,'',function(){
                            //
                        });
                    });

                }
                }); // End Ajax
            } // end If Do Submit
        } // End If Form isValid

    });
// ENd Register

Ive found out this code if (form.parsley().isValid()) makes me submit the form twice
how can i make use of this code without making the form submit twice?

Perhaps store a reference to the parsley() call?
var parsleyForm = form.parsley();
parsleyForm.validate();
parsleyForm.isValid();

One easy way is: don't call isValid, don't call validate, don't do on('submit'), instead listen to parsley().on('form:submit') and send your ajax request then.
If that doesn't work, please ask your question on StackOverflow.


[Spacing] Consistency in separate paragraphs

Describe the bug
Spacing around paragraphs or line breaks in general appear inconsistently / not as expected or displayed in the text editor within Contentful. If possible, would be great to have greater reliability with editor and site for content confidence?
To Reproduce
Steps to reproduce the behavior:

Go to Contentful
Write a paragraph
Apply bold or bullets or any styling to the text following
See how it renders on site.

Expected behavior
Match text editing happening in Contentful.
Screenshots

Linked to #104 #134 #181

Check for WCAG compliance with regard to:

PERCEIVABLE 1.4 Distinguishable: For paragraphs, line spacing is at least 1.5 times the font size and paragraph spacing is at least 1.5 times the line spacing

Done


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/30836

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/31183

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/33147

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/50497

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/108328

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.


Bumps dependency

Issue #23
I'm not 100% sure on the ramifications of bumping this dependency.
Something like this might be better since it works with both cookbook version 2.x and 3.x
cookbook 'zookeeper', "> 2.0.0", "< 4.0.0"

Fixed in 92fe47d2737133ce899a7140f5cebedaa5b4beed


news search fixing binary files download

New examples for searching news using Jina. ( Fixed binary files committing)

hi, @SirsikarAkshay Thanks for your contribution! Please note there are unnecessary files committed under your news_search/tmp folder. Please clean them and make a new PR to process.
related to #181

Hello Nan
Thank you for the update. I have fixed the issue of unnecessary commits in
the tmp folder. Please evaluate.
Regards
Akshay
On Fri, Sep 11, 2020 at 5:54 AM Nan Wang<EMAIL_ADDRESS>wrote:

Closed #186 https://github.com/jina-ai/examples/pull/186.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jina-ai/examples/pull/186#event-3753713687, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEXAAYJR6KNGKCJJBNDMEG3SFFU3PANCNFSM4Q7YRROA
.


Formatting .liquid files deletes their contents

Type: Bug
Selecting the Format Document in the Command Palette causes all code in the open editor to be deleted, instead of formatting.
Extension version: 2.1.3
VS Code version: Code 1.87.2 (Universal) (863d2581ecda6849923a2118d93a088b0745d9d6, 2024-03-08T15:21:31.043Z)
OS version: Darwin arm64 23.4.0
Modes:

System Info

Item
Value

CPUs
Apple M1 Pro (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
5, 6, 6

Memory (System)
16.00GB (0.65GB free)

Process Argv
--disable-extensions --crash-reporter-id 4fe9d41b-ab3b-4fee-a441-35559309088a --crash-reporter-id 4fe9d41b-ab3b-4fee-a441-35559309088a

Screen Reader
no

VM
0%

A/B Experiments
vsliv368cf:30146710
vspor879:30202332
vspor708:30202333
vspor363:30204092
vstes516:30244333
vscorecescf:30445987
vscod805cf:30301675
binariesv615:30325510
vsaa593cf:30376535
py29gd2263:30899288
vscaat:30438848
c4g48928:30535728
azure-dev_surveyone:30548225
962ge761:30959799
pythongtdpath:30769146
welcomedialog:30910333
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pyreplss1:30897532
pythonmypyd1:30879173
pythoncet0:30885854
pythontbext0:30879054
accentitlementsc:30995553
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
pydisww2:30991134
cppperfcontrol:30979541
d34g3935:30971562
fegfb526:30981948
bg6jg535:30979843
ccp2r3:30993541
dsvsc020:30976470
pythonaic:30992952

Would need more details since it appears to be running fine for most of us. Can you provide the following:

List of Liquid related VS Code extensions
settings.json contents

Here are my settings for Liquid files:
{
  "[liquid]": {
    "editor.defaultFormatter": "Shopify.theme-check-vscode",
    "editor.formatOnSave": true
  },
}

https://github.com/Shopify/theme-tools/assets/4990691/e998124d-455b-4d00-9726-bd72bfb1f2fa
Feel free to reopen if you still have the issue after debugging your setup.

That is so strange... Wondering if that's a problem with the input file? Does this happen on any file or only that one?

Fixed with a fresh yarn install through Homebrew. Thanks @charlespwd.
Here's what I did:

Narrowed the problem down to my local environment by testing with a new local user and GitHub Codespaces.
Removed all Homebrew packages and dependencies.
Completely uninstalled VS Code and Homebrew.
Cleaned up and removed all PATH variables in .zshrc, .bashrc, and .bash_profile
Reinstalled VS Code and Homerbiew.
Reinstalled each Homebrew package one by one, checking the formatter's behavior each time.
The problem was fixed immediately after a fresh yarn install.

Looks like the issue was a yarn misconfiguration interfering with prettier, possibly because I hadn't installed yarn through Homebrew before.

Here is what worked for me on Windows

I uninstalled ruby and all the shopify development kit, including the Shopify Liquid vscode extension.
I cleared vscode cache in AppData\Roaming\code\cachedData directory
Reinstalled Ruby and the shopify development kit and Shopig Liquid vscode extension
The problem was fixed after all the process

@joshistoast Did my solution above help you at all? My problem was with my yarn install.

@joshistoast Did my solution above help you at all? My problem was with my yarn install.

Just uninstalled and reinstalled yarn via brew and cleared it's cache files, no difference in formatting behavior.

That’s frustrating. My issue was because I initially installed yarn using npm (checked using which yarn). When I switched to installing it via Homebrew, the problem was fixed.
It seems like the formatter might be searching for dependencies in specific directories and if it doesn’t find them, it defaults to wiping everything out. I stumbled on this while troubleshooting using formatOnSave you mentioned in the other issue.


[lavfi] AVOption 'reset_rot' not found. [user_filter_wrapper] Creating filter 'v360' failed.

Does not seem to work with the latest version of mpv (0.34.1) and ffmpeg (5.1.2) on MacOS 12.4.
Couldn't find any info on the errors. Any ideas?
test@MBP ~ % /Applications/mpv.app/Contents/MacOS/mpv --script=/Users/test/.config/mpv/scripts/360plugin.lua --script-opts=360plugin-enabled=yes /Users/test/Downloads/8k-Equirect.mp4
2022-11-11 18:19:01.658 mpv[49180:539165] Warning: Expected min height of view: (<NSButton: 0x7f7df6a11d70>) to be less than or equal to 30 but got a height of 32.000000. This error will be logged once per view in violation.
2022-11-11 18:19:01.659 mpv[49180:539165] Warning: Expected min height of view: (<NSButton: 0x7f7df6914b60>) to be less than or equal to 30 but got a height of 32.000000. This error will be logged once per view in violation.
2022-11-11 18:19:01.659 mpv[49180:539165] Warning: Expected min height of view: (<NSButton: 0x7f7df69156e0>) to be less than or equal to 30 but got a height of 32.000000. This error will be logged once per view in violation.
Passing more than 1 argument to vf-add is deprecated!
(+) Video --vid=1 () (hevc 8192x4096 30.000fps)
(+) Audio --aid=1 () (aac 2ch 48000Hz)
[lavfi] AVOption 'reset_rot' not found.
[user_filter_wrapper] Creating filter 'v360' failed.
Video: no video
Exiting... (Errors when loading file)

Removing reset_rot=1: works. I will try compiling mpv from source rather than use the latest stolendata build to see if that makes a difference.


Updated validations.py python script

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Closes: #1

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!


Position control mode (PC)

Objectives
Introduce in the NUC Simulink scheme a position control. The altitude level is changed using the thrust RC channel, RC3, and the local position with the pitch and roll channels, RC1 and RC2. The modes will be switched using RC5.
Nomenclature
Simulink schemes are named as follows: NUCControl_vX_Y_cZZZZZZZ, being X the control version, Y the experimental version and ZZZZZZZ the firmware commit this scheme is associated to.

After several weeks of intense work, the final versions for the basic controller are the following:
NUCControl_v8_4_c45b232b.zip (Speed)
NUCControl_v8_5_c45b232b.zip (Position)


Support custom SSL certificates for cloud communication

Is your feature request related to a problem? Please describe.
We are using the Pixie cloud in a self-hosted, multi-tenant environments. In some scenarios, including (but not limited to) dev/testing, we would like to deploy Vizier connected to the cloud using a self-signed certificate, or at least a certificate that is not signed by a global, trusted CA.
For this purpose, we want to be able to configure Vizier to use a CA certificate of the cloud backend stored in a k8s secret.
This does not seem possible currently, as the certificate loading logic/config is shared between the cloud-gRPC and NATs pieces, meaning that I cannot change the certificate for gRPC only without affecting NATs.
Furthermore, while technically unrelated, it would be practical to also allow disabling of SSL independently for gRPC and NATs. If we split SSL config, we might as well split that related option too. And, while at it - but now we could really consider a separate story: support insecure SSL for cloud connections for testing (disable validation of SSL but keep SSL enabled).
Describe the solution you'd like
SSL certificates and SSL config are split between NATs and cloud gRPC so they can be configured independently from each other.
Support loading CA certificates for gRPC from a custom secret (created by the user; doesn't need to be deployed by Pixie)
Describe alternatives you've considered
Disable SSL validation for testing purposes, but this is not supported and is a worse situation. Relying on public CAs for our test/dev environments is not an opotion
Additional context

FYI, there is a way to work around this without native support in Pixie: since the cloud-connector proxy uses the standard golang gRPC libraries, we can override the root CA used by the process. For example, we can extend the deployment/vizier-cloud-connector to have the following volume and volumeMount:
apiVersion: apps/v1
kind: Deployment
metadata:
  ...
  name: vizier-cloud-connector
  ...
spec:
  ...
  template:
    ...
    spec:
      ...
      containers:
      - env:
        ...
        name: app
        volumeMounts:
        ...
        # NEW ENTRY: vvvvvvvvv
        - mountPath: /etc/ssl/certs/ca-certificates.crt
          name: control-plane-certs
          subPath: "ca.crt"
        # NEW ENTRY: ^^^^^^^^^^
      ...
      serviceAccountName: cloud-conn-service-account
      volumes:
      ...
      # NEW ENTRY: vvvvvvvvv
      - name: control-plane-certs
        secret:
          secretName: control-plane-tls-certs
      # NEW ENTRY: ^^^^^^^^^^

and put the CA cert of the cloud control-plane into a secret in the pl namespace:
apiVersion: v1
kind: Secret
metadata:
  name: control-plane-tls-certs
  namespace: pl
type: Opaque
data:
  ca.crt: <base64-of-certificate>

which can be found in the cloud using
kubectl --namespace plc get secret cloud-proxy-tls-certs -o jsonpath='{.data.tls\.crt}'

Conceptually it's of course still cleaner to split NATs and gRPC configs, but at least the above allows connectivity without changing the containers/code.
NOTE: The above replaces the root CAs (instead of adding it). This means that only the local cluster cert generated by Vizier and the installed cloud cert are trusted - nothing else. Be warned of this side-effect, but in most scenarios that should be fine, as the cloud-connector proxy shouldn't talk to anything else.

@clemenskol I wonder how do you work around the self signed service certs in a self hosted environment? I am asking because the the installation guide uses a local CA to generate does certs which are not trusted on the cluster.

@clemenskol I wonder how do you work around the self signed service certs in a self hosted environment? I am asking because the the installation guide uses a local CA to generate does certs which are not trusted on the cluster.

Not sure I understand the question. You mean trust it on the server-side? I extract the server certificate and mark it as trusted on the client, and I use the certificate (and the self-signed CA) on the server for making the connection trusted.

@clemenskol I am creating the service-tls-certs through this script from pixie, but the PEM pods fail to connect to nats with tls handshake error and nats logs show that:
cid:447 - TLS handshake error: remote error: tls: unknown certificate authority

I thought it's because the certificate is singed by local CA and that's why the nats Pods don't trust it.
I was wondering if you have faced this error or not?
Also what do you mean by extract the server certificate and mark it as trusted on the client? don't use the Pixie secret generation script? Thanks!

if you use the file ca.crt (generated in the script you link), and mount it into the client pod, the certificate check should work. Are you sure you are using the correct hostname to connect? Make sure you are using the right hostname associated with the ca (see https://github.com/pixie-io/pixie/blob/main/scripts/create_cloud_secrets.sh#L60)

Yea the ca.crt file is already being mounted by that secret. As for alt names, I believe that should work out of the box though I've added any other possible alt names in addition to those as well, but still no luck.


Equalizer support

Feature request
Possibility to get sensor reading from Equalizer.
What version of the integration are you using?
v0.9.41
Anything in the logs that might be useful for us?
No response
Additional information
No response

Sorry did't know as i'm waiting on my installation of the Equlazer.

Oh!
Nice.
Could not find it in the documentation and are waiting on my installation.
Den mån 4 apr. 2022 kl 17:07 skrev Ola Lidholm @.***>:

Equalizer is already supported.
Or do you mean something more specific?
—
Reply to this email directly, view it on GitHub
https://github.com/fondberg/easee_hass/issues/178#issuecomment-1087675885,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEAKHINWTOW4NCT2FV4VFB3VDMAUDANCNFSM5SPVDTYQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Adding test and ReadMe for jsx

Babel now supports jsx!
See: https://github.com/yelouafi/snabbdom-jsx#usage

Awesome! I will review the code when I get the time :D

There is an issue here actually in my suggesting the .jsx.babel convention in the ReadMe. DocPad keeps the inExtension. It would need some more code to write .jsx.babel files to .js files.


LIME explain instance resulting in empty graph

Hi. I'm working with a spark data frame and to be able to make use of LIME we had to make some modifications:
def new_predict_fn(data):
    sdf = map(lambda x: (int(x[0]), Vectors.dense(x[0:])), data)
    sdf = spark.createDataFrame(sdf, schema=["id", "features"]).select("features")
    predictions = cv_model.transform(sdf).select("prediction")
    return predictions.toPandas()["prediction"].values.reshape(-1)

lime_df_test = nsdf.select('features').toPandas()
lime_df_test = pd.DataFrame.from_records(lime_df_test['features'].tolist())

exp = explainer.explain_instance(lime_df_test.iloc[10].values, new_predict_fn, num_features=20)
display(exp.as_pyplot_figure())

However, when it results in an "empty" explanation:
[('3575 <= 2199.13', 0.0),
('3981 <= 2189.88', 0.0),
('3987 <= 2189.88', 0.0),
('4527 <= 93.00', 0.0),
('4003 <= 1.00', 0.0),
('4528 <= 0.00', 0.0),
('3824 <= 14000000.00', 0.0),
('4256 <= 2199.73', 0.0),
('3685 <= 2190.45', 0.0),
('3579 <= 2199.13', 0.0)]
We are looking for some reason for this to happen.
A simple test with the modifications mentioned above worked well, but using real data (with more than 3000) columns, we faced that problem. The only idea that comes to my mind is that LIME is not being able to explain an instance locally (?). But I'm not sure if that makes sense. I'm also wondering (now) if it's not just a case that the weights are plotted with 1 decimal place of precision and if (how) I could change that.
Thanks.

Did you use any feature value bigger than the observed maximum or smaller than the minimum of the training data? Did you use sampling around the query or wait it the original sampling procedure (you can control that with a parameter)? If you did sample around the query, how big was your kernel width?

Please confirm that:

lime_df_test.iloc[10].values has shape (n_features,)
The training data used as parameter to explainer is a numpy array with shape (n_examples, n_features)
new_predict_fn(lime_df_test.iloc[10].values.reshape(-1, 1)) has shape (1, 2)

Hi @marcotcr. There are the results:
i = 10
print(lime_df_test.iloc[i].values.shape)
print(type(lime_df_train.values)) # converted from spark to pandas
print(lime_df_train.shape)

(4552,)
<class 'numpy.ndarray'>
(34394, 4552)

This new_predict_fn(lime_df_test.iloc[10].values.reshape(-1, 1)) has shape (1, 2) fails but my model is a regressor, so I don't see how it could have shape (1, 2).
A more complete code, yet not reproducible :
lime_df_train = sdf.where(col("id").isin(list(train_ids_list))).select('features').toPandas()
lime_df_train = pd.DataFrame.from_records(lime_df_train['features'].tolist())

def new_predict_fn(data):
  sdf = map(lambda x: (int(x[0]), Vectors.dense(x[0:])), data)
  sdf = spark.createDataFrame(sdf, schema=["id", "features"]).select("features")
  predictions = cv_model.transform(sdf).select("prediction")
  return predictions.toPandas()["prediction"].values.reshape(-1)

explainer = lime.lime_tabular.LimeTabularExplainer(lime_df_train.values, "regression")

lime_df_test = sdf.where(col("CoilId").isin(list(test_ids_list))).select('features').toPandas()
lime_df_test = pd.DataFrame.from_records(lime_df_test['features'].tolist())

i = 10
exp = explainer.explain_instance(lime_df_test.iloc[i].values, new_predict_fn, num_features=10)
exp.as_list()

I had a similar issue, and it seems that LIME has issue with very sparse data.
The initial I used was fairly sparse, some features has very very little non-zero rows (even 1 or 2). After removing some of the sparse features, LIME worked as intended.

I was getting similar problem, all my output variables had 0 weight, I decreased the num_features to 6 and 5, after that I started getting non zero weights for each criteria. My model has 1800 sparse features.

Sorry for the long delay in responding.

This new_predict_fn(lime_df_test.iloc[10].values.reshape(-1, 1)) has shape (1, 2) fails but my model is a regressor, so I don't see how it could have shape (1, 2).

For regression,  it should be (1, ).
If it is (1,),  my guess is that the problem is with the distance function, as you have so many features that are sparse. Could you try the following two things (separately, then together):

set distance_metric='cosine' in explain_instance
set kernel_width  to different values (try 1, 5, 10, 20, 30)

If neither of these work, can you please share one row of the dataset with the predicted value so I can see if there is a bug on our end?

I am facing the exact same issue as the original poster. Most or all of explain_instance's output values for my tabular data are empty and are shown as 0.0
Some observations:

the dataset I am using has over a thousand features and a lot of them are very sparse
train data has over 400k rows
the more sparse features I drop, the more non-0 output values I get
I am trying to use explain_instance to get the top 10 features. If I set num_features to 5 or 6 only, I get more non-0 values

I have tried different combinations of suggestions from the comments above including changing kernel_width and distance_metric, but nothing seems to work consistently. The output explanations always have a bunch of 0.0 values. I'm not sure if that is expected behaviour?
Any help would be appreciated.

This was happening to me as well with a large dataset with 50,000+ very sparse feature values. In my case, it turned out that the dataset was very skewed. Once I controlled for that, I got values for the weights.

i am facing the same problem, is there a way that have num_features refer to the top 10 features instead of features index from 0 to num_features - 1?

@gautambajaj it is not expected behavior. Would you mind checking if the non-zero values you get when you lower the number of features are still very near 0?  Is it possible to share any data at all?
@keithzeng  num_features does refer to the top K features.

Hi, I am having similar issue getting zeros in binary classification, Can I have some help please, Thanks
X_train.shape
Out[180]: (152491, 165)
X_test[180].shape
Out[181]: (165,)
rf_explainer = lime.lime_tabular.LimeTabularExplainer(X_train, mode='classification',training_labels=data['class'],feature_names=feature_names)
exp = rf_explainer.explain_instance(X_test[180], rf_fit.predict_proba, num_features=10)
exp.as_list()
Out[183]:
[('Business_Name_N <= 0.00', 0.0),
 ('Permanent_Resident_Permanent_Resident_miss <= 1.00', 0.0),
 ('Valuation_Acceptable_Valuation_Acceptable_miss <= 1.00', 0.0),
 ('Property_Acceptable_Property_Acceptable_miss <= 1.00', 0.0),
 ('Contact_Name1_Y <= 1.00', 0.0),
 ('Employer_Name_Y <= 1.00', 0.0),
 ('Business_Name_Y <= 1.00', 0.0),
 ('Employer_Name_N <= 1.00', 0.0),
 ('Contact_Name1_N <= 0.00', 0.0),
 ('Contact_Y <= 1.00', 0.0)]

As per @platinum736 I tried to reduce the num_features to 3, I got values, which is good, Thanks for that, but when we do OneHotEncoding we get sparse data, is there a way to overcome this please,

Also the explanation features changes for different runs, below is next run

As per the discussion https://github.com/marcotcr/lime/issues/113
i used the function as
#My Function
def explain(exp, instance, predict_fn):
  numpy.random.seed(42)
  exp_data = rf_explainer.explain_instance(X_test[102], predict_fn, num_features=3)
  exp_data.as_pyplot_figure()
  return exp_data.as_list()

#My Call
explain(rf_explainer,X_test[102], rf_fit.predict_proba)

But still i am getting different features, may i know how to use that please, Thanks

Can you also show the output of explain when num_features=10, i.e. the intercept, prediction_local and right?
Also, are you able to replicate this with a public dataset, or share your dataset?

Thanks for the reply,
Actually i cant share the dataset, sorry for that,
Also if i go for 10 features i get zeros.., it works upto 6 features.

I have the two concerns, I understand "LIME explanations are the result of a random sampling process" but for the specific application like fraud detection, in a particular transaction, if we get the explanation different every time, its difficult for the user to identify which feature is contributing to the fraud. and the sparse data issue for increasing number of features where the explanation values are zero. Can I have some suggestions please, Thanks

Hi marco, I have another question as well, say for binary class, I am interested only on explanation on the positive side (say class 1, Fraud), in continuation on the zeros weights for num_features more than 6 in my case, can I get explanation for 6 features or more in positive side only, so I have enough features to explain towards the class which I am interested on. Thanks

There is definitely something wrong (likely a bug) happening with num_features=10, but since I can't replicate it on my datasets I am not able to figure out what it is.
As to the difference in explanations, in your case it was the same features with minor weight differences. When you have two features that are highly correlated, one or the other can be picked arbitrarily (i.e. either works, so LIME will pick an arbitrary one).

Hi @marcotcr
By just printing exp.as_list(), how to interpret the Positive and Negative values belongs to which class?
rf_explainer = lime.lime_tabular.LimeTabularExplainer(X_train, mode='classification',training_labels=data['class'],feature_names=feature_names)
exp = rf_explainer.explain_instance(X_test[180], rf_fit.predict_proba, num_features=10)
exp.as_list()
Out[183]:
[('Contact_Y <= 1.00', 0.21345649),
 ('Business_Name_Y <= 1.00', -0.102492),
 ('Y1SA_Y <= 1.00', 0.015986),
 ('Valuation_Acceptable_Valuation_Acceptable_miss <= 0.00', -0.126570),
 ('Phone_Number_N <= 0.00', 0.104897)]

exp.as_list() returns explanations for label 1 (that is the default parameter), i.e. positive is positive towards 1 and negative is negative towards 1. You can use exp.as_list(label=2) or any other value if you care about a particular label. 1 is a good default for binary classification, top_labels=1 is a good default otherwise.

I think I fixed the bug in  305b55b

@marcotcr  Hi I have this problem to and i don't know how to fix this .  Ps I use by flask api
`model = pickle.load(open("./model/hr.pkl", "rb"))
app = flask.Flask(name, template_folder='templates')
@app.route('/', methods=['GET', 'POST'])
def main():
if flask.request.method == 'GET':
# Just render the initial form, to get input
return (flask.render_template('main.html'))
if flask.request.method == 'POST':
    # Extract the input
    TotalWorkingYears = flask.request.form['TotalWorkingYears']
    OverTime_code = flask.request.form['OverTime_code']
    JobInvolvement = flask.request.form['JobInvolvement']
    JobRole_code = flask.request.form['JobRole_code']
    Age = flask.request.form['Age']
    WorkLifeBalance = flask.request.form['WorkLifeBalance']
    Gender_code = flask.request.form['Gender_code']
    DistanceFromHome = flask.request.form['DistanceFromHome']
    MaritalStatus_code = flask.request.form['MaritalStatus_code']
    YearsSinceLastPromotion = flask.request.form['YearsSinceLastPromotion']
    Education = flask.request.form['Education']
    PercentSalaryHike = flask.request.form['PercentSalaryHike']
    TrainingTimesLastYear = flask.request.form['TrainingTimesLastYear']
    JobLevel = flask.request.form['JobLevel']
    YearsAtCompany = flask.request.form['YearsAtCompany']
    DailyRate = flask.request.form['DailyRate']
    YearsWithCurrManager = flask.request.form['YearsWithCurrManager']
    MonthlyIncome = flask.request.form['MonthlyIncome']
    JobSatisfaction = flask.request.form['JobSatisfaction']
    EducationField_code = flask.request.form['EducationField_code']
    RelationshipSatisfaction = flask.request.form['RelationshipSatisfaction']
    MonthlyRate = flask.request.form['MonthlyRate']
    BusinessTravel_code = flask.request.form['BusinessTravel_code']

    # Make DataFrame for model
    input_variables = pd.DataFrame([[TotalWorkingYears, OverTime_code, JobInvolvement,JobRole_code, Age, WorkLifeBalance,
                                     Gender_code, DistanceFromHome, MaritalStatus_code, YearsSinceLastPromotion,
                                     Education,PercentSalaryHike, TrainingTimesLastYear, JobLevel, YearsAtCompany, DailyRate,
                                     YearsWithCurrManager, MonthlyIncome, JobSatisfaction, EducationField_code,
                                     RelationshipSatisfaction, MonthlyRate, BusinessTravel_code]],
                                   columns=['TotalWorkingYears', 'OverTime_code', 'JobInvolvement', 'JobRole_code',
                                            'Age','WorkLifeBalance', 'Gender_code', 'DistanceFromHome','MaritalStatus_code',
                                            'YearsSinceLastPromotion','Education','PercentSalaryHike','TrainingTimesLastYear','JobLevel',
                                            'YearsAtCompany','DailyRate','YearsWithCurrManager','MonthlyIncome','JobSatisfaction',
                                            'EducationField_code','RelationshipSatisfaction','MonthlyRate','BusinessTravel_code'],
                                   dtype=float,
                                   index=['input'])

    # Get the model's prediction
    prediction = model.predict(input_variables)[0]
    prediction_percentage = model.predict_proba(input_variables)[:,1]

    row_to_show = 1
    data_for_prediction = input_variables.iloc[1]  # use 1 row of data here. Could use multiple rows if desired
    data_for_prediction_array = data_for_prediction.values.reshape(1, -1)

    model.predict_proba(data_for_prediction_array)
    X_featurenames = input_variables.columns

    categorical_features = np.argwhere(np.array([len(set(input_variables.values[0]))]))

   # uf = BytesIO()

    predict_fn = lambda x: model.predict_proba(x).astype(float)

    explainer = lime.lime_tabular.LimeTabularExplainer(input_variables.values,
    feature_names=X_featurenames,
    class_names=['Yes','No'],
    categorical_features=categorical_features,
    verbose=True, mode='classification')

    exp = explainer.explain_instance(input_variables.values[0], predict_fn, num_features=5)
    fig = exp.as_pyplot_figure()

   # plot_url = base64.b64encode(uf.getbuffer(exp)).decode("ascii")

    # Create object that can calculate shap values
    #explainer = shap.TreeExplainer(model)

   # img = StringIO()

    # Calculate Shap values
    #shap_values = explainer.shap_values(data_for_prediction_array)
    #shap.initjs()
    #shap.summary_plot(explainer.expected_value, shap_values, data_for_prediction,show=False)
    #shap.force_plot(explainer.expected_value[1], shap_values[1], data_for_prediction,matplotlib=True,show=False)
    if os.path.isfile("/home/Domemakarov2013/smart_hr/static/images/shap_graph/graph.svg"):
        os.remove("/home/Domemakarov2013/smart_hr/static/images/shap_graph/graph.svg")

          plt.savefig("/home/Domemakarov2013/smart_hr/static/images/shap_graph/graph",
            format = "svg",
            dpi = 150,
            bbox_inches = 'tight')
       # plt.savefig('/home/Domemakarov2013/smart_hr/static/images/shap_graph/graph.svg')
    else:
       # plt.savefig('/home/Domemakarov2013/smart_hr/static/images/shap_graph/graph.svg')
       plt.savefig("/home/Domemakarov2013/smart_hr/static/images/shap_graph/graph",
            format = "svg",
            dpi = 150,
            bbox_inches = 'tight')`

Code not error and it save images but it a empty graph, So what wrong with it


[AMORO-2316] The Files page supports filtering by partition name and sorting by dictionary value.

Why are the changes needed?

Close #2316 .
Brief change log

The Files page supports filtering by partition name and sorting by dictionary value.

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[X] Add screenshots for manual tests if appropriate

[ ] Run test locally before making a pull request

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

LGTM.
Thanks for your contribution. 👍
https://github.com/NetEase/amoro/assets/103108928/1f93000a-4f23-49ae-8a75-00f24a97165a


Create GitHub for Content Designers slide deck

What do you need?
Slide deck to use for GitHub for content designers presentations/training.
(Not really the right place to put this task, but lacking anywhere else...)

Tracked now in Trello


Feature Request: Control options available for a field using frontmatter

Hi!  I'd very much like to be able to use metadatamenu to be able to control the options available for me via frontmatter metadata.  For instance, if I have a file where I have something like:
---
attendees:
 - Me
 - Someone Else
 - Another Person

I'd like to be able to say that all instances of the field assigned should be chosen from that list.  So, if I start to do [assigned::  in the body of the note, my available options should be drawn from Me, Someone Else and Another Person.  I watched the videos and wasn't able to figure out how to do this, although I think it may be possible somehow with the dv API.  Is it possible to make this work as a built-in field type?
Thank you!

You just have to create it in settings of the plugin > Preset Field Settings. Choose the name of the field, then set the type to: "Accept a value from a list". Add the preset options and you'll get what you want.
Alternative in FileClass Settings, you could set a directory where all files of that directory will be used as "types" of notes you can even choose how the name of the field is called (examples: category, type). To set the fields for that specific type of note, first you have to have a file with the name of the type of note, then go to editor menu and select manage <type> fields then you just have to configure like above.
Hope you find this useful.

@AtlcatlQ Thank you -- I was hoping I could have the fields defined within a note, so that my metadata menu would draw the options from within the note (for instance, if meeting attendance changed each time.)  I'm not sure I can do that with what you suggest, but I will give it a shot and explore it.

The thing is... You may want to use the same options for more than one file, so having the list only in one place is more useful than have it copied in a lot places.
Will it help you if I add screenshots?

@AtlcatlQ no, I think I understand.  I think my workflow doesn't quite fit with it as-is, so I should rethink the workflow to integrate.

Oh, okay, maybe a template with the predef options would work better for you