Features: new shenyu-proxy, partial implementation of the network layer.

// Describe your PR here; eg. Fixes #issueNo

Make sure that:

[x] You have read the contribution guidelines.
[x] You submit test cases (unit or integration tests) that back your changes.
[x] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #3074 (a7b69bf) into master (3d284a0) will decrease coverage by 0.72%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master    #3074      +/-   ##
============================================
- Coverage     58.28%   57.56%   -0.73%
+ Complexity     4378     4347      -31
============================================
  Files           702      709       +7
  Lines         20140    20252     +112
  Branches       1812     1817       +5
============================================
- Hits          11739    11658      -81
- Misses         7411     7605     +194
+ Partials        990      989       -1

Impacted Files
Coverage Δ

...org/apache/shenyu/proxy/remote/AbstractServer.java
0.00% <0.00%> (ø)

...a/org/apache/shenyu/proxy/remote/ServerConfig.java
0.00% <0.00%> (ø)

...apache/shenyu/proxy/remote/netty/NettyChannel.java
0.00% <0.00%> (ø)

.../apache/shenyu/proxy/remote/netty/NettyServer.java
0.00% <0.00%> (ø)

.../shenyu/proxy/remote/netty/NettyServerHandler.java
0.00% <0.00%> (ø)

...ache/shenyu/plugin/grpc/cache/GrpcClientCache.java
68.75% <0.00%> (-31.25%)
:arrow_down:

...henyu/admin/service/impl/UpstreamCheckService.java
42.85% <0.00%> (-12.70%)
:arrow_down:

...henyu/plugin/grpc/resolver/ShenyuNameResolver.java
52.12% <0.00%> (-11.71%)
:arrow_down:

...a/org/apache/shenyu/common/utils/VersionUtils.java
67.85% <0.00%> (-10.72%)
:arrow_down:

.../apache/shenyu/admin/model/dto/BatchCommonDTO.java
50.00% <0.00%> (-7.15%)
:arrow_down:

... and 40 more

Continue to review full report at Codecov.

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


[VisBuilder-Next] Migrate legacy visualizations to visbuilder by mapping the url

Description

Functional test for changes in https://github.com/opensearch-project/OpenSearch-Dashboards/pull/7529
"VB: Basic Metric Chart" and "line-1" are the two objects created for testing the changes, representing the saved VisBuilder and visualization objects, respectively.

Screenshots

For non-compatible chart types (chart types other than 'Area', 'Line', 'Metric', 'Vertical Bar', and 'Table'), the 'Import to VisBuilder' option should not be shown on the panel after clicking the pencil icon.

https://github.com/user-attachments/assets/c9a9a20b-26af-47ba-84d0-8c6f607a8245

For compatible chart types, the 'Import to VisBuilder' option should be shown on the panel after clicking the pencil icon.

https://github.com/user-attachments/assets/800d5c82-4b64-4e2f-9977-3d40ba655bcb

After importing to VisBuilder, the breadcrumb should update to "New visualization."

https://github.com/user-attachments/assets/68ba0b90-3974-4b67-b69c-0fe584c6e5e9

Ensure the Save button is clickable and successfully saves the visualization after importing.

https://github.com/user-attachments/assets/8c831d76-0afe-4161-b40b-a6720ff3d41d

Confirm that filters, queries, chart types, configurations, and settings are successfully migrated after importing.

https://github.com/user-attachments/assets/9fa07d50-3113-4533-9a1c-4da2a25f1b00
Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

lgtm! awesome thank you. just comments but none blockers.


Update InputObject.yaml

Changes
InputObject.Position:

Fixed minor typo (indicate's -> indicates)
Added mention of use of GUI inset (DevForum Report)

Checks
By submitting your pull request for review, you agree to the following:

[x] This contribution was created in whole or in part by me, and I have the right to submit it under the terms of this repository's open source licenses.
[x] I understand and agree that this contribution and a record of it are public, maintained indefinitely, and may be redistributed under the terms of this repository's open source licenses.
[x] To the best of my knowledge, all proposed changes are accurate.

(stale)


landscaper apply keeps failing with incompatible helm versions

Have set up the Helm and Tiller with v2.3.1. helm version does report the expected version:
$ helm version
Client: &version.Version{SemVer:"v2.3.1", GitCommit:"32562a3040bb5ca690339b9840b6f60f8ce25da4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.3.1", GitCommit:"32562a3040bb5ca690339b9840b6f60f8ce25da4", GitTreeState:"clean"}
$ helm list
$
However, the landscaper apply shows the helmClientVersion=v2.4 and keeps failing:
$ landscaper apply test.yaml --namespace test -v
[2017-06-09T02:41:07Z]  INFO  This is Landscaper v1.0.6-rc.1 commit=3e47462b0fdff641b8b7dc6029f635de5a14126e tag=1.0.6-rc.1
[2017-06-09T02:41:07Z]  INFO  Apply landscape desired state dir= dryRun=false helmHome=/root/.helm namespace=test releasePrefix=test- verbose=true
[2017-06-09T02:41:07Z] DEBUG  Setup Kubernetes Client
[2017-06-09T02:41:07Z]  INFO  Connected to Kubernetes kubernetesVersion=v1.6.4
[2017-06-09T02:41:07Z] DEBUG  Setup Helm Client helmClientVersion=v2.4
[2017-06-09T02:41:07Z] DEBUG  Create tiller tunnel tillerNamespace=kube-system
[2017-06-09T02:41:07Z] DEBUG  Created tiller tunnel port=44217
[2017-06-09T02:41:07Z]  INFO  Connected to Tiller clientServerCompatible=false tillerVersion=v2.3.1
[2017-06-09T02:41:07Z]  WARN  Helm and Tiller report incompatible version numbers
[2017-06-09T02:41:07Z]  INFO  Obtain desired state from files files=[test.yaml]
[2017-06-09T02:41:07Z] DEBUG  Read desired state from file file=test.yaml
...
[2017-06-09T02:41:07Z] DEBUG  Desired state has been read n_components=1
[2017-06-09T02:41:07Z]  INFO  Obtain current state Helm Releases (Components) from Tiller
[2017-06-09T02:41:07Z] DEBUG  listHelmReleases
[2017-06-09T02:41:07Z] ERROR  Loading current state failed error=rpc error: code = Unknown desc = incompatible versions client: v2.4+unreleased server: v2.3.1
Error: rpc error: code = Unknown desc = incompatible versions client: v2.4+unreleased server: v2.3.1

That is not a bug: landscaper uses the v2.4 client which apparently cannot speak to the v2.3.1 you're running. Either be brave and build a landscaper with a downgraded Helm (patch glide.yaml), or update your Helm.


[DevOps] Populate Meshery Catalog with Sample Apps using mesheryctl

Current Situation
Meshery Catalog has a relatively small number of published designs.
Desired Situation
Meshery Catalog is populated with a variety of published designs, representing any number of technologies in the designs and representing different categories of designs.
Difficultly Level: Beginner
This is a beginner-level issue designed to both help introduce you, the contributor, to additional Kubernetes concepts and DevOps practices, and to aid in creating a robust catalog full of cloud native design patterns and sample apps in the Meshery Catalog.
Skills Needed

No coding skills needed.
Awareness of Kubernetes.

Implementation

Identify a Kubernetes sample app

Bring your own Kubernetes manifest or Helm Chart or Docker Compose file or...
...or identify a sample app from any available in public repos (example 1, example 2, example 3).
Attempt to identify resources that can benefit both newcomers and seasoned professionals.

Import Kubernetes App

Import the sample application using mesheryctl app import command, following this guide.

Publish Kubernetes App

Publish your sample app into the Meshery Catalog. Guides: Using Meshery UI or Using MeshMap.

[Optional] Open App in Playground

Access Meshery Playground and open your app in MeshMap.

[Optional] Share your Kubernetes App

Be social and share your imported apps on twitter or linkedin and the Meshery project accounts will repost.

Repeat

Import and publish five or more sample apps.

Acceptance Criteria

Five or more new sample apps have been imported into Meshery and published into the Meshery Catalog.

Contributor Guides and Handbook

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Meshery UI in Figma
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

Hey @leecalcote I am learning this, I can help but will take some time.
If time is flexible, can you assign it to me.

Thanks for setting expectations, @Sangam-ghimire. Let's give it a go. 👍

@leecalcote, I am new to the community and have quite a bit of experience with Kubernetes and devOps related tech stack. I would love to work on this issue.

@UncleWeeds Hi, it's been a while since this issue was assigned, with no updates, please let us know if you are still working towards a solution, what the update, if not we'll re-assigm to give other contributors a go at it.

@sandramsc Assign it to someone else

Is this issue still open and relevent ?? Can i work on it ?

@shivankurchavan You're welcome to give it a go. I've assigned it to you.

Hi @shivankurchavan it's been a while since this issue was assigned, and haven't had an update yet, let us know how progress is going, otherwise we'll need to re-assign to give other contributors a chance to give it a go.

yes i am working

@shivankurchavan It's been a little over a month and half since assignment. What progress can you share?

Hey @leecalcote ! Yesterday i joined the meshery community and as a beginner searching for the beginner friendly issue and this one i came up to, so can i work on this issue. However, I’m relatively new to many concepts and tools mentioned in the issue, such as mesheryctl, Helm Charts, and the process of importing and publishing applications in Meshery. I think i can learn these things from this issue. I can't guarantee that i can complete this issue, but i will give my best shot and keep you updated what's going on with the process. I will try to complete this in one week.

@shivankurchavan, Any luck?

I’m planning to work on this issue. Please let me know if anyone else is already working on it, and if not, feel free to assign it to me.

@ziadhany, Go ahead!


confidence intervals for threshold_tools

added confidence intervals to threshold_tools functions
updates:

added new function "bootstrap"
added bootstrap capabilities to "return_value", "return_prob", and "return_period" capabilities
changed ValueError exceptions to also include ZeroDivisionError (note: this does not impact calculations but removes an error that would occur with the gumbel distribution and instead outputs an np.nan for that gridcell if either of these two errors occurs).
ran black for formatting

Tried commit 68858f7 out in a notebook and I didn't run into any errors/warnings with temperature and precip and different distributions
With snowfall (area subset = none, SSP 3-7.0, monthly, 45km), I got this warning with return_value = threshold_tools.get_return_value(ams, return_period=10, distr='gev', bootstrap_runs = 10, multiple_points=True):
/srv/conda/envs/notebook/lib/python3.9/site-packages/lmoments3/__init__.py:179: RuntimeWarning: invalid value encountered in double_scalars   l3 = coefl3 * sum_xtrans / l2
Some things that would be nice to have:

Add warning text in notebooks with functions producing confidence intervals that things may take a while depending on the number of bootstrap iterations
Show upper and lower confidence intervals for the mapped value in the interactive boxes that pop up on the plots


Modern php

Dude, you need to learn how to use composer and autoload. Use php v5.5
Read about PSR(php-fig).
Sorry, but now it looks like an old piece of junk.

lol


removed references to skypy

The inaugural PR. I just cleaned the CONTRIBUTING.rst file for references to skypy. I checked the rest of the repo, it is the only instance I found.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls


BC break on updating 2.4.13 to 2.4.14

Hi,
After updating to 2.4.14 I've got error:
[Semantical Error] The annotation "@Gedmo\Mapping\Annotation\SortablePosition" in property TestBundle\Entity\Page::$position does not exist, or could not be auto-loaded.

@kiczort Looks like the 2.4.14 release has referenced the master branch, which is for 3.0 and contains a lot of BC breaks.
@l3pp4rd I took the liberty of deleting the release and the tag before more update problems occur.

hope composer will refresh the tag soon..

@l3pp4rd you can force the removal of the version on Packagist. Otherwise, there will be some delay

I think now it is OK. isn't it? I've checked packagist seems like it points to right commit

Had the same, went back to 2.3.13 for now. Hopefully packagist updates soon.

@l3pp4rd you should have recreated it as 2.4.15 instead. Due to the immutable nature of git tags, anyone having fetched the repo with the wrong tag in it will keep using the old tag until they delete their local tag and then refetch it (same for forks btw).
Packagist is fine, because Packagist does not keep a local clone of the git repo to perform updates and then gives the commit reference to composer. But anyone using a VCS repo directly and forcing composer to skip the github API (either through explicit choice or because of being rate-limited) will also face the issue (until they clear their composer cache to make it clone the repo again).
In practice, deleting a git tag is already hard, but modifying it is a rod to hell.

added 2.4.15 to be sure, thanks. would be good to find any maintainers. currently I haven't worked with extensions and PHP over a year now :)

Closing this issue as the problem was resolved.


Bug: Modules enable settings not loaded

Hi Clazex,
I'm currently running into a problem where the settings under "Boss Challenge" for GodSeeker Plus would not save. This happens randomly, I'd say every second or third time I close the game, the settings would reset to default. I've checked the mod logs and there's no difference between the logs for when settings save and don't save properly. The other mods I have (Toggleable Bindings, Boss Attacks, Debug Mod, and their dependencies) save their settings fine without an issue. Here's one of my mod logs (where GSP didn't save settings):

ModLog.txt
[INFO]:[API] - Starting mod loading
[INFO]:[API] - Loading Global Settings
[INFO]:[API] - Deleting modlogs older than 7 days ago
[INFO]:[API] - Preloaded reflection in 3191ms
[INFO]:[BossAttacks] - Initializing
[INFO]:[BossAttacks] - Loading Global Settings
[INFO]:[DebugMod] - Initializing
[INFO]:[DebugMod] - Loading Global Settings
[INFO]:[GodSeekerPlus] - Initializing
[INFO]:[GodSeekerPlus] - Loading Global Settings
[INFO]:[HKMirrorMod] - Initializing
[INFO]:[Osmi] - Initializing
[INFO]:[Satchel] - Initializing
[INFO]:[SFCoreMod] - Initializing
[INFO]:[SFCoreMod] - Loading Global Settings
[INFO]:[ToggleableBindings] - Initializing
[INFO]:[API] - Assembly Vasi (<IP_ADDRESS>) loaded with 0 mods
[INFO]:[API] - Creating mod preloads
[INFO]:[BossAttacks] - Initializing mod <IP_ADDRESS>-fb4192
[INFO]:[BossAttacks] - Initialized mod
[INFO]:[DebugMod] - Initializing
[INFO]:[DebugMod] - Building MethodInfo dict...
[INFO]:[DebugMod] - Done! Time taken: 0.00406456s. Found 122 methods
[INFO]:[HKMirrorMod] - Loading HKMirror Mod
[INFO]:[API] - Finished loading mods:
[INFO]:[API] - Modding API: <IP_ADDRESS>33-74
[INFO]:[API] - BossAttacks : <IP_ADDRESS>-fb4192
[INFO]:[API] - DebugMod : <IP_ADDRESS>-a997ca
[INFO]:[API] - GodSeekerPlus : 0.23.0
[INFO]:[API] - HKMirrorMod : v<IP_ADDRESS>
[INFO]:[API] - Osmi : 0.2.1
[INFO]:[API] - Satchel : 0.8.11-5113a0
[INFO]:[API] - SFCore : <IP_ADDRESS>-313082
[INFO]:[API] - ToggleableBindings : <IP_ADDRESS>-49559a
[INFO]:[API] -
[INFO]:[DebugMod] - [DREAM GATE] File dreamgate.dat not found!
[INFO]:[BossAttacks] - Saving Global Settings
[INFO]:[DebugMod] - Saving Global Settings
[INFO]:[GodSeekerPlus] - Saving Global Settings
[INFO]:[SFCoreMod] - Saving Global Settings
[INFO]:[DebugMod] - Saving Global Settings
[INFO]:[DebugMod] - Saved
[INFO]:[API] - Saving Global Settings

Another user in the HK Modding discord suggested that I change setting changes from the mod menu, close my game, then open GodSeekerPlus.GlobalSettings.json, confirm that the changes were properly saved, then copy the contents and paste them into the GodSeekerPlus.GlobalSettings.json.bak file. I tried this solution and found that it worked for the next time I launch the game, but once I shut it down again, the .bak file seems to get overwritten and the settings changes previously made were discarded. Here's our conversation for reference: https://discord.com/channels/879125729936298015/1084837436263252160
I changed the settings again, then edited the .bak file, the same thing happened: next launch the settings persisted, but upon shutting down and relaunching the .bak file got edited and settings were reverted once again. Making the .bak file read-only is a temporary fix that works for me, though it does report in mod logs that there's a permission issue while saving global settings to the .bak file (expected). Here's what a mod log looks like after I made the .bak file read-only:

ModLog.txt
[INFO]:[API] - Starting mod loading
[INFO]:[API] - Loading Global Settings
[INFO]:[API] - Deleting modlogs older than 7 days ago
[INFO]:[BossAttacks] - Initializing
[INFO]:[BossAttacks] - Loading Global Settings
[INFO]:[DebugMod] - Initializing
[INFO]:[DebugMod] - Loading Global Settings
[INFO]:[GodSeekerPlus] - Initializing
[INFO]:[GodSeekerPlus] - Loading Global Settings
[INFO]:[API] - Preloaded reflection in 3459ms
[INFO]:[HKMirrorMod] - Initializing
[INFO]:[Osmi] - Initializing
[INFO]:[Satchel] - Initializing
[INFO]:[SFCoreMod] - Initializing
[INFO]:[SFCoreMod] - Loading Global Settings
[INFO]:[ToggleableBindings] - Initializing
[INFO]:[API] - Assembly Vasi (<IP_ADDRESS>) loaded with 0 mods
[INFO]:[API] - Creating mod preloads
[INFO]:[BossAttacks] - Initializing mod <IP_ADDRESS>-fb4192
[INFO]:[BossAttacks] - Initialized mod
[INFO]:[DebugMod] - Initializing
[INFO]:[DebugMod] - Building MethodInfo dict...
[INFO]:[DebugMod] - Done! Time taken: 0.003076553s. Found 122 methods
[INFO]:[HKMirrorMod] - Loading HKMirror Mod
[INFO]:[API] - Finished loading mods:
[INFO]:[API] - Modding API: <IP_ADDRESS>33-74
[INFO]:[API] - BossAttacks : <IP_ADDRESS>-fb4192
[INFO]:[API] - DebugMod : <IP_ADDRESS>-a997ca
[INFO]:[API] - GodSeekerPlus : 0.23.0
[INFO]:[API] - HKMirrorMod : v<IP_ADDRESS>
[INFO]:[API] - Osmi : 0.2.1
[INFO]:[API] - Satchel : 0.8.12-23fa68
[INFO]:[API] - SFCore : <IP_ADDRESS>-b88926
[INFO]:[API] - ToggleableBindings : <IP_ADDRESS>-49559a
[INFO]:[API] -
[INFO]:[DebugMod] - [DREAM GATE] File dreamgate.dat not found!
[INFO]:[BossAttacks] - Saving Global Settings
[INFO]:[DebugMod] - Saving Global Settings
[INFO]:[GodSeekerPlus] - Saving Global Settings
[ERROR]:[GodSeekerPlus] - System.UnauthorizedAccessException: Access to the path "C:/Users/<REDACTED>/AppData/LocalLow/Team Cherry/Hollow Knight\GodSeekerPlus.GlobalSettings.json.bak" is denied.
[ERROR]:[GodSeekerPlus] -   at System.IO.File.Delete (System.String path) [0x00073] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR]:[GodSeekerPlus] -   at Modding.Mod.SaveGlobalSettings () [0x00057] in <2b54cdaf7a934f0eb297d50c4090ea9f>:0
[INFO]:[SFCoreMod] - Saving Global Settings
[INFO]:[DebugMod] - Saving Global Settings
[INFO]:[DebugMod] - Saved
[INFO]:[API] - Saving Global Settings

Fixed in b54ca22


[MINOR][DOCS] Fix typos in ML doc

What changes were proposed in this pull request?
This PR fixes some typos in ML and MLLib markdown document files.
How was the this patch tested?
manual tests

Can one of the admins verify this patch?

@dongjoon-hyun if you are doing a few of these, can you merge them into a single bigger patch?

Oh, sure! Then, I will close this and make another PR after reviewing all md files in docs. Is it okay for you?

Sounds good.

Thank you for your advice, @rxin.


Fix: comboBoxListItemPicker onSelectedItem callback fix

Q
A

Bug fix?
[x]

New feature?
[ ]

New sample?
[ ]

Related issues?
fixes #519

What's in this Pull Request?
This PR fixes issues #519 related to comboBoxListItemPicker callback.
Also, there is an issue when multiselect is set to false or not set at all, the correct value was not returned, check the comment in the mentioned issue. It has been fixed as well.
Also added a minor fix, corrected the lodash import in listview control.
Thanks to @siddharth-vaghasia  for suggesting the fix, have incorporated his comment in the fix.
Happy to share the credit with him.

thanks @gautamdsheth for the fix and sharing the credit :)

Thank you @gautamdsheth and @siddharth-vaghasia!
The PR has been merged. You can test it in beta version and it will be included in the next release.


2FA API work (TOTP)

Pull Request Check List

[ ] Unit Tests & Regression Tests Added (Optional)
[x] DB schema changes - postgres-rutherford-create-script updated
[x] DB schema changes - upgrade script created matching create script
[ ] Peer-Reviewed

More general comments:

changing the 2FA device seems buggy (I couldn't make it work from the frontend), and does not ask for password confirmation or other proof like most sites do. Is this intentional?
the temporary half-authorised cookie is valid for 7 days, which seems wildly unnecessary for a temporary login flow cookie. Since I changed cookies to store the validity date in them, it's fairly straightforward to limit these to say 5 minutes instead. That seems sensible?
our cookies are actually in violation of the RFC for cookies since they're not supposed to contain double quotes, backslashes, whitespace or commas. They work, so that seems irrelevant, but I don't like the addition of a whole array inside them. There's also an odd mix of naming conventions for the keys; the core ones are camelCase but two of them are BLOCK_CAPITALS and the new key name is both block caps and half redundant (we don't need AUTH_COOKIE_ inside a SEGUE_AUTH_COOKIE?). Would a boolean flag as simple as partialLogin or partial2FALogin not be enough, rather than a whole array?

Another thing I have thought of is that UserAuthenticationManager::isValidUsersSession is a public method, but does not do the actual validation of whether partial logins are valid. I guess the easiest fix is to make it private, but we could push the validation from UserAuthenticationManager::getUserFromSessionInformationMap down into isValidUsersSession?

Another thing I have thought of is that UserAuthenticationManager::isValidUsersSession is a public method, but does not do the actual validation of whether partial logins are valid. I guess the easiest fix is to make it private, but we could push the validation from UserAuthenticationManager::getUserFromSessionInformationMap down into isValidUsersSession?

I think if it is not currently used externally it should be made private and a comment added. Sessions shouldn't really be a concern for anything other than the authentication manager...


Medbay: Submit Scan task can't complete.

Medbay scan task is unable to be completed.

Hi, can you provide more information on when it happens, what settings, and if possible, the conditions when it happen or a way to reproduce it. Are you playing on public servers or Impostor ?
Also, if you are using any other mods, pls mention the names/github links of the mods.
Medbay scan usually works, and I just testing multiple edge cases without any issues.


Add new "rmi" mojo to remove images

I'm happily using this great plugin in a CI environment, however I have to regularly clean the build host from stale images. This pull request adds a rmi goal that behaves like docker rmi and binds to the pre-clean phase by default.
Additionally, two integration tests make sure the goal can be called, however, no automatic verification if the image was removed is performed. Let me know if I should try to add such a test, which would probably involve calling docker-client classes from verify.groovy.

Thanks for the contribution! I have not had a chance to take a look at the code yet, but can I ask why not simply cron or regular run something like docker system prune on the build host to tackle the same goal?

We have some projects that depend on other projects’ images as base image. For this, we need an image name in the Dockerfile, so we tag the base image. Once all the images are built and deployed, we could untag and delete the images.
Since we do this for every branch in our CI system, our build host fills up pretty fast. For now, a cron job can clean up the unreferenced images, identify deleted branches and remove those images too, but I feel it’s more straight forward to just delete the images right after the build. If I’ve missed a better approach, I’d be happy to hear it :-)

when it will be merged to master?

when it will be merged to master?


CustomCollection.where is not performing an exact match

Example:
ShopifyAPI::CustomCollection.where({title: "Blankets"}).first
Incorrectly returns:
`
<ShopifyAPI::CustomCollection:0x007fd95cec58a0 @attributes={"id"=>138013763, "handle"=>"blankets-throws", "title"=>"Blankets & throws", "updated_at"=>"2015-10-08T20:03:15-05:00", "body_html"=>nil, "published_at"=>"2015-10-08T20:03:15-05:00", "sort_order"=>"alpha-asc", "template_suffix"=>nil, "published_scope"=>"global"}, @prefix_options={}, @persisted=true>
`

This has since been fixed, closing.


Kr5ddit.com is down

I hope you are working on something and took the server down to fix something and will put it back up later.
I think we finally taught TDillo the value of a Kr5ddit, he now knows I sold most of my Kr5ddits for Bitcons, and that Kr5ddits can be used to mod down or up any post or comment.

It's up now!


[Suggestion] A method of locking the item type of a radiant trove/tank would be great

Similar to the drawer key with storage drawers, being able to lock the type of item that a radiant trove can accept in the event that they become empty via automation would be fantastic. Perhaps in the form of a "Scepter of filtration" or something.

I'm unwilling to put the effort into doing this simply because I recently put the effort into making it so that empty troves could be piped into and doing so would set the item, whereas previously they had to be "primed".
But we'll do it at some point.

Put on the roadmap!


Better typing of UserSession

My problem
It has been bugging me for a while that the types of this module do not work at all.
Lets say this is your auth.d.ts:
declare module '#auth-utils' {
  interface UserSession {
    user: {
      id: number
      name: string
      email: string
    }
    loggedInAt: number
  }
}

On the client-side, all properties of the useUserSession composable are of type any (only in the playground it works)

On the server-side, UserSession is defined except for the user object.
Its type will always be {} | undefined regardless of what is specified in the auth.d.ts (see issue #31 )
And when checking for a session using requireUserSession the returned user object is still possibly undefined even though we just checked and required it to not be.
I have been tinkering and came up with the following:
Instead of looking for a specific property in the session data (user in this case), we check if there are any properties at all.
export async function requireUserSession(event: H3Event) {
  const userSession = await getUserSession(event)

  if (Object.keys(userSession).length === 0) {
    throw createError({
      statusCode: 401,
      message: 'Unauthorized'
    })
  }

  return userSession
}

This way you can define anything in the UserSession interface and the type works (this uses the playground's auth.d.ts)

On the client-side I made the following changes:

loggedIn is now computed based on wether there exist properties on the session object
There is no longer a user getter as this property is no longer defined but now the typing is at least correct.

const useSessionState = () => useState<UserSession>('nuxt-session', () => ({}))

export const useUserSession = () => {
  const sessionState = useSessionState()
  return {
    loggedIn: computed(() => Object.keys(sessionState.value).length > 0),
    session: sessionState,
    fetch,
    clear
  }
}

I would like to hear feedback from you guys

Thanks for your issue @Gerbuuun
I do like having the user directly and separated from the session, I think this is just a type issue that we can fix. Sadly I am not a TS expert and the help if more than welcome!

Can a TS expert please help with this 😄 . I make the mistake when using the composable all the time because I am not sure of the type of the different properties. I remember using the library for the first time. It took me way too long to figure out that the loggedIn value was a boolean ref 😆

@Atinux I have created a PR that fixes the problem. I also just realized that someone else has submitted a PR with a fix already. (I do prefer my solution though)
Hope we can merge this soon :)


Segfault on 4.2.4

With version 4.2.4 python scripts segfault after creating an Adafruit_NeoPixel instance.
Python 3.7.5 (default, Nov  7 2019, 10:50:52)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rpi_ws281x
>>> rpi_ws281x.Adafruit_NeoPixel(0, 0)
<rpi_ws281x.rpi_ws281x.Adafruit_NeoPixel object at 0x7f2fff132110>
>>> exit()
zsh: segmentation fault (core dumped)  python

Same behavior in the python:3 container from dockerhub (python version 3.8.2).

Try using PixelStrip object (in examples/strandtest.py) instead of Adafruit_NeoPixel.
If that doesn't work for you, check #47

PixelStrip gives me the same behavior. Not very surprising, as they are both pretty much the same class.
Python 3.7.5 (default, Nov  7 2019, 10:50:52)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rpi_ws281x
>>> rpi_ws281x.PixelStrip(0,0)
<rpi_ws281x.rpi_ws281x.PixelStrip object at 0x7f2dfa8012d0>
>>> exit()

Building the library myself did not fix the issue either.
Currently I am simply using 4.2.3.

Try supplying more parameters to the object's construcor then?
Dumb suggestion but may work

import rpi_ws281x

LED_COUNT = 16  # Number of LED pixels.
LED_PIN = 10  # GPIO pin used. 10: SPI, 18: PWM (used for sound)
LED_FREQ_HZ = 800000  # LED signal frequency in hertz (usually 800khz)
LED_DMA = 10  # DMA channel to use for generating signal (try 10)
LED_BRIGHTNESS = 255  # Set to 0 for darkest and 255 for brightest
LED_INVERT = False  # True inverts the signal (when using NPN level shift)
LED_CHANNEL = 0  # set to '1' for GPIOs 13, 19, 41, 45 or 53

rpi_ws281x.Adafruit_NeoPixel(
    LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL,
)

This is how I'm using it. Still same behavior on 4.2.4.

Weird... Maybe specifying your hardware may help?

I'm having the exact same issue on a raspberry pi zero.
`Fatal Python error: Segmentation fault
Current thread 0xb6f04010  (most recent call first):
File "/usr/local/lib/python2.7/dist-packages/rpi_ws281x/rpi_ws281x.py", line 54 in setitem
File "/usr/local/lib/python2.7/dist-packages/rpi_ws281x/rpi_ws281x.py", line 143 in setPixelColor
File "/root/rpi_ws281x/python/lightstest/lights.py", line 40 in rainbowCycle
File "lightstest/server.py", line 13 in
Segmentation fault`

Following up on this, I've examined @jonathanhacker 's code and it looks like I was missing the following method call on my strip:

Closed as stale and (hopefully?) solved.


az keyvault create automatically assigns full-access policy for the signed in user

Is your feature request related to a problem? Please describe.
Last week I was reviewing some of the CI pipelines used in my company and somehow got surprised with outcome of az keyvault create command with default parameters. It turned out, that if you omit --no-self-perms, you automatically get an access policy, which assigns full access to keys, certificates, secrets and son on. It's a completely different approach as opposite to using ARM templates, where you have to explicitly pass policies, which should be created. It requires app teams to be aware of side effects of a command, what's rarely a case.
Describe the solution you'd like
I think --no-self-perms should be opt-in, not opt-out to avoid confusion. Giving a principal automatic access to KV, which is considered a hardened and secure storage, is a bad security practice.
Describe alternatives you've considered
The only alternative is reviewing pipelines so we can be sure nobody is creating a KV without --no-self-perms.

hi @kamil-mrzyglod actually we discussed this before with service team. Service team suggest to keep current behavior: user explicitly set policy for security concern.

@yungezz Thanks for response. I understand, but from my point granting wide range access for KV by default is the security concern we're talking about. Such behavior is also inconsistent with other ways to provision KV:

ARM template allow you to explicitly define access policies deployed with KV
Azure Portal automatically suggests default access policy but it's much better visible
Not sure about Management SDKs

Any chance to at least add a warning / notice about default access policy provisioned along with a resource?

Hi @kamil-mrzyglod , just as @yungezz said, this is an expected behavior. Quiet a few users of Azure CLI are beginners, manually setting access policy may cause lots of confusing for them, so service team decided to set default policies for the current user (this is consistent with Azure Portal).
Showing a warning or notice while running az keyvault create is not easy to implement under our current code framework (we can add some logs into --debug), I think it's better to add detailed information on default permissions to let users know what permissions will be granted:

How do you think? Feel free to let me know if you have any additional thoughts, thanks!

Hey @bim-msft, thanks for sharing your thoughts. I agree, that it's much easier for beginners to have a default access policy added by default. On the other hand, I believe it's rather a getting started scenario rather than real use case. Normally you avoid using Azure Portal for provisioning and while experience is consistent for both Azure CLI / Portal, I marked the latter as "much better visible" solution for both beginners and experienced engineers.
Extending the command manual will indeed help. However, personally I'd expect such a behavior to be consistent more with ARM template rather than Azure Portal. To achieve that, it'd switch they way how you use the command for default access policy:
Currently:
az keyvault create -n <keyvault-name>
Proposal:
az keyvault create -n <keyvault-name> --add-self-perms / --add-default-perms
This way you'd get nice & easy experience for beginners(as they still can create a KV without a need to figure out how to prepare policies) and actual behavior for real-world scenarios.

@kamil-mrzyglod Thanks for your thought, it is very valuable. We would like to do more user research and discuss with our PM on this scenario further.
Moving this to backlog. If anything updated, I will sync with you the conclusion here.


Show timezone in UI

When I'm hovering over time points, it appears to show me UTC time.  The x-axis is however local time.  I often forget which is which.  It would be great if the tooltip could include "UTC" just to remind me that it is showing me UTC time.

+1. Why not use same local time on both?

Also the Timezone for the Filter appears to be UTC which is confusing in that it doesn't match the x axis

The x-axis labeling was a bug that was was fixed in yesterdays 0.8 release

Latest Pivot release (0.8.22) comes with a timezone selection UI and comprehensive timezone support.


[vendor] Add support for Kubernetes 1.11

This commit bumps up the version of all the Kubernetes dependencies
to 1.11.2.
Which includes:

k8s.io/client-go
k8s.io/api
k8s.io/apiextensions-apiserver
k8s.io/apimachinery

This commit also marks removal of support of Kubernetes version
1.8.
Fixes https://github.com/habitat-sh/habitat-operator/issues/341

Since GKE has not rolled out the Kubernetes 1.11 rightfully yet, so we will solve this https://github.com/habitat-sh/habitat-operator/issues/343 first and then this PR could just be add support for 1.11.


local-preview: .gitignore only discovered at the root of the repo

Currently the .gitignore and the .terraformignore files are only read at the root of the repo.
This doesn't align with how git describes its working .gitignore file resolution.
from man gitignore:

Patterns read from a .gitignore file in the same directory as the path, or in any parent directory (up to the top-level of the working tree), with patterns in the higher level files being overridden by those in lower level files down to the directory containing the file. These patterns match relative to the location of the .gitignore file. A project normally includes such .gitignore files in its repository, containing patterns for files generated as part of the project build.

We tripped over this too.  We had some secrets on the filestyem that were gitignored by directory/.gitignore, but were uploaded to spacelift during a local-preview.  This was confounded by spacelift's slack integration sharing local-preview presigned s3 url -- effectively sharing these sensitive files with the entire company.

Additionally, spacectl should mind $GIT_DIR/info/exclude (checkout specific and repo specific excludes) and git config core.excludesfile (user specific global excludes).
https://git-scm.com/docs/gitignore#_description

hey @wadells

This was confounded by spacelift's slack integration sharing local-preview presigned s3 url -- effectively sharing these sensitive files with the entire company.

This was fixed.

hey @wadells

This was confounded by spacelift's slack integration sharing local-preview presigned s3 url -- effectively sharing these sensitive files with the entire company.

This was fixed and should not happen again.

Thank you -- we noticed and appreciate that change to the slack integration.


Building Windows-Neko from Linux doesn't work.

Currently, if you try to create a Windows version from Linux(I am currently using a 32-bit install) using 'openfl build windows', it creates an unusable Neko binary that, when run, spits out this:

Uncaught exception - load.c(237) : Failed to load library : std.ndll

The binary files included with the built executable are:

ProjectName.exe lime.ndll neko.dll regexp.dll std.dll zlib.dll gc.dll manifest icon.ico

The dll files that are already there do not load, and are not used. Renaming them to .ndll files causes them to fail to load correctly in a diferent way, so they're basically not usable.
Copying std.ndll, regexp.ndll, and zlib.ndll from a working Windows Neko install allows the project to run as normal, without problem, even on systems without such an install. So the build here is just bundling the wrong files, it seems.

The 'openfl build windows' command does not build a Neko binary; it builds a PE/COFF executable (.exe file) for Windows.
A policy in Haxe is that dynamic libraries are given no prefix (like "lib" in Linux) and the extension ".ndll", which I think means "Native DLL" (specifically, it means native code, not Neko), regardless of the target platform. If you build for Neko in Linux with 'openfl build neko', then you will still get a Neko binary, but any ".ndll" files are Linux ELF binaries (".so" files), not Windows PE/COFF binaries (".dll" files).
Preforming a 'openfl build windows' might use MinGW in Linux to compile a Windows ".exe" file, and I think that's what you mean here. In that case, you're saying that std.ndll is copied from the Linux Haxe distro, and that would make it -not- a Windows binary.
I agree that the copy shouldn't happen. I'm not sure what should be done, however. You might need to be prevented from compiling until you provide the "openfl" or "lime" command with a static or dynamic binary location for the Haxe standard library.
That's assuming that all of what I've said above is correct. Someone, please correct me if I'm wrong.

It's building to Export/windows/neko/bin, and there is no compilation output as there is in a native cpp build. Also ditching the neko dll breaks it. I do have MingW installed on the system, but AFAIK crosscompilation is not available in openfl. At least, it sure doesn't do it, if there's a way to enable it, I would like to know for exportation purposes.
The dll files it copies over to the binary directory are native Windows, a quick run through objdump or a hex editor shows that, but seemingly incompatible and renaming to ndll does not allow them to load, citing the following error:

Could not link plugin to process (hxCFFILoader.h 782)

No idea what's up with that.

openfl build windows does indeed build an exe, if you are on windows.
For windows, linux and mac target if you aren't on the target you are trying to build then it switches to a "cross compilation" neko application.

Copying std.ndll, regexp.ndll, and zlib.ndll from a working Windows Neko install allows the project to run as normal, without problem, even on systems without such an install. So the build here is just
bundling the wrong files, it seems.
It seems they are copied from the bin/Windows/ folder of hxcpp, if you replace them with those in this folder does it work? (will tell us if the file are corrupted or if it copies from the wrong directory)

@ibilon I see. Thanks for the correction. :-)

Copied the dlls from /usr/lib/haxe/lib/hxcpp/3,2,37/bin/Windows, no go, renamed to ndll files, also no go.
Running it through wine/strace confirms that it is not looking for files with the .dll extension, only .ndll. Considering the files I copied to make it work came from the Windows Neko install, not Haxe or hxcpp itself, this makes sense to me. This seems like a mix-up between hxcpp and neko builds, at least from my perspective.
Relatedly, building the Windows/Neko version from Linux has the warning/error:

sh: 1: /usr/lib/haxe/lib/lime/2,3,3/templates/bin/ReplaceVistaIcon.exe: Permission denied

Can't run exe files on Linux, haha.

You could try skipping the ReplaceVistaIcon.exe step, and copy all the correct NDLL files, but I recall that Neko was having trouble finding the binaries locally, which defeats the purpose of being able to distribute builds done on another system (and thus, cross-compiling too)

Having the correct ndll files causes it to work correctly even on systems that do not have a neko install themselves; I've tested this with a fresh Wine install just to make sure. There's no pathing issue as far as I can tell, or if there was it's been patched out awhile ago.


Expose functionality via API

Hey Jim,
I love this plugin. If you could expose the functionality of this plugin via an API then I can use your plugin and its API from OctoPod. OctoPod is free and open source with thousands of users that could use your plugin from the app. :)
Thanks,
Gaston

I can look into this, but it might be a while. I'm just dipping my toes into the water with OctoPrint plugins so I don't know all the details yet. I see a some examples in the plugin development docs, though, so it might not be too difficult to do. I don't have any personal apple devices around so I can't do much with OctoPod directly to test, though.

@gdombiak @jim-p ,
IMHO this is not possible with the current implementation, because the complete logic is executed in JavaScript.
To provide an API you must transfer the logic to the server (python-code).
A simple REST-API looks like this: https://github.com/OllisGit/OctoPrint-KnowledgeBase/wiki/SendDataToServer#simple-rest-api

This might help: https://docs.octoprint.org/en/master/modules/plugin.html?highlight=endpoint#octoprint.plugin.types.BlueprintPlugin


Support git-crypt

VSCode Version: 1.15.1

OS Version: macOS High Sierra 10.13 Beta (also on the latest version of macOS Sierra 10.12)

Git-crypt git-crypt 0.5.0: https://www.agwa.name/projects/git-crypt/

Steps to Reproduce:

Clone a repository which uses git-crypt to encrypt specific files.
Make a small modification to one of the encrypted files.
Attempt to view a diff using VS Code's Source Control panel.

You will see the resulting diff shows the entire encrypted file in red, and the entire unencrypted contents of the file in green, implying the entire file has changed.
When I take a look at the Git tab of the Output console, it looks like the command being used is git show HEAD:/path/to/filename which doesn't seem to play nicely with git-crypt's approach. If I try something like git diff /path/to/filename this works as expected though.
Reproduces without extensions: Yes

I could take a look at this issue if you don't mind.

Please also tell how possibly handle the encryption / decryption

My theory is that the commands VS Code uses to get git diffs don’t play nicely with git-crypt, which uses filters defined in a .gitattributes file to transparently decrypt/encrypt certain files in your repository.
You can see more about how git-crypt works here https://github.com/AGWA/git-crypt/blob/master/README.md

It would be nice to see the difference of files. Atom for examples allows you to do that! I guess that the git filters in atom are followed...

Is this still not supported ?

Still not supported...

No promises, but I started looking into this for Hacktoberfest

Can confirm that I have a solution; I'll put in a PR today/tomorrow.

Submitted a PR: https://github.com/microsoft/vscode/pull/81983 (cc @joaomoreno)

Awesome! Thanks for taking a look at this @seesemichaelj !

For posterity's sake, there is another open PR which may resolve this issue: https://github.com/microsoft/vscode/pull/81395

@joaomoreno there are a couple of PRs open here to resolve this issue. What are the next steps to selecting one implementation to focus on and get it reviewed and approved?


CIDR Demo Scripts + Code Clean up

A bunch of fixes and tweaks to make different parts of the code follow the same format. I am trying to clean things up to get ready for the new semester.

Coverage increased (+0.006%) to 65.972% when pulling dbeb2f7e68968ebace7fc2b96e8d8f41a9bf3281 on apavlo:master into 7c0985d21c9fd47045d256efa0e0d6948a4f1ca6 on cmu-db:master.

Coverage decreased (-1.2%) to 64.755% when pulling dbeb2f7e68968ebace7fc2b96e8d8f41a9bf3281 on apavlo:master into 7c0985d21c9fd47045d256efa0e0d6948a4f1ca6 on cmu-db:master.

Coverage decreased (-0.1%) to 65.83% when pulling 2aa7b441b759428968f85c25f4c7136db6bd7bda on apavlo:master into 7c0985d21c9fd47045d256efa0e0d6948a4f1ca6 on cmu-db:master.


Update IT

The new update for it

Thanks. Do you plan further changes or can this be released?

No changes, unless something has been released by the developer.  Thank you so much.

Great. Pushed the update to NexusMods.


For historic, include min # years check

Sites should have some minimum number of years of data before we choose to use them in this historic quantiles calculation. For streamflow, we used 3 years.

Completed in #20!


How to add a step after a specific step?

Hello, firstly thanks for this awesome library.
I wanted to understand how can I add my own custom step after a specific step. Currently I see the append_request_steps/2 and prepend_request_steps/2 functions only allow us to append or prepend a step.
My use case is to add a custom step that would take the JSON body and add a idempotency_key in it, I believe this has to happen before the body is encoded that is before the encode_body(request) step.
Currently, the only way I can think of is like...
(Untested code below)
  def new do
    Req.new(
      base_url: @base_url,
      headers: headers(),
      auth: {:bearer, get_auth_token()},
    )
    |> Map.put(:request_steps, request_steps())
    |> Req.Request.append_response_steps(inspect: &IO.inspect/1)
  end

  defp request_steps do
    [
      put_user_agent: &Req.Steps.put_user_agent/1,
      compressed: &Req.Steps.compressed/1,
      put_idempotency_key: &put_idempotency_key/1,
      encode_body: &Req.Steps.encode_body/1,
      ....
    ]
  end

  defp put_idempotency_key(%Req.Request{options: %{json: json_body}} = request) do
    json_body = Map.put(json_body, :idempotency_key, Ecto.UUID.generate())
    %Req.Request{request | options: %{json: json_body}}
  end

Is this how we can achieve this, or am I missing something?

Currently there is no API for this but the struct was designed in a way it could be added in the future without breaking. As you saw the step lists are keyword lists, with step names as atoms. You can write a function that would inject your step at the right place using eg List.insert_at/3.

You can write a function that would inject your step at the right place using eg List.insert_at/3.

Thanks this seems like a good idea, the only concern I have is if req decides to add a new step to that list then my List.insert_at(2, {:put_idempotency_key, &put_idempotency_key/1}) might break

Instead of hard coding the index to insert, dynamically find it and you should be good :) I don’t have immediate plans to add API for this so I’m going to close but will of course keep it in mind. Thank you for bringing this up.

Would you be interested in a PR?
I have no need for this, so if it is not something you want to add or even spend time reviewing that is completely fine. I am just bored and seems like something to do in my spare time.
Maybe something like the example below? The second argument could be a step or a list of steps, the third argument could take before: step or after: step. If the step doesn't exist it goes to the top (:before) or the bottom (:after) of the list (or it could throw an error I suppose).
iex> req = Req.Request.insert_request_steps(Req.new(),
iex>  {:inspect, &IO.inspect/1},
iex>  after: :put_user_agent)
iex> Enum.take(req.request_steps, 2)
[put_user_agent: &Req.Steps.put_user_agent/1, inspect: &IO.inspect/1]


Wrong construction of PlanoConvex lens

PlanoConvex lens is constructed in a wrong way. The barrel is too short to form a lens in intersection. I can quickly push a fix, but I would be happier if somebody could look at the PR #355 which also fixes this problem.

I think that would only be true for very small radius, long barrel lenses. I'll have a look at the PR when I get a spare moment. The solution would be to union a cylinder of the required length before the intersection.

I discovered it when I was trying to benchmark model of one of our objectives, so it is definitely happening for realistic lenses.

Apologies for not tackling your pull requests, most of the items you have been working on require me to sit down and think carefully. Unfortunately I'm only got the capacity for minor quick fixes at the moment, or mindless restructuring work. I will get to these and I am grateful for them. The new company is drawing most of my cognitive time. It should get easier over the coming months.


RelationShip

How to create and get RelationShip beetwen models?

What kind of relationship are you looking for?

A 1 to many relationship.


Continue with question #4

class FourierBlock(nn.Module):
    def __init__(self, in_channels, out_channels, seq_len, modes=0, mode_select_method='random'):
        super(FourierBlock, self).__init__()
        print('fourier enhanced block used!')
        """
        1D Fourier block. It performs representation learning on frequency domain,
        it does FFT, linear transform, and Inverse FFT.
        """
        # get modes on frequency domain
        '''
        In frequency domain, only the randomly selected M modes are kept
        '''
        self.index = get_frequency_modes(seq_len, modes=modes, mode_select_method=mode_select_method)#得到随机打乱选取的基，后续进行DFT操作
        print('modes={}, index={}'.format(modes, self.index))

        self.scale = (1 / (in_channels * out_channels))
        self.weights1 = nn.Parameter(
            self.scale * torch.rand(8, in_channels // 8, out_channels // 8, len(self.index), dtype=torch.cfloat))

    # Complex multiplication 复数乘法
    def compl_mul1d(self, input, weights):
        # (batch, in_channel, x ), (in_channel, out_channel, x) -> (batch, out_channel, x)
        return torch.einsum("bhi,hio->bho", input, weights)#高维张量的计算
    #搞懂这个torch.einsum操作！！！

    def forward(self, q, k, v, mask):#注意细节，key,value,mask都没用上
        # size = [B, L, H, E]-Batch,Length,Height,Element
        B, L, H, E = q.shape
        x = q.permute(0, 2, 3, 1)
        # Compute Fourier coefficients
        x_ft = torch.fft.rfft(x, dim=-1) #拿到DFT对时间序列变换的复数值x(0),...,x(n) -> X(0),...,X（n）
        # Perform Fourier neural operations
        out_ft = torch.zeros(B, H, E, L // 2 + 1, device=x.device, dtype=torch.cfloat)
        for wi, i in enumerate(self.index):
            out_ft[:, :, :, wi] = self.compl_mul1d(x_ft[:, :, :, i], self.weights1[:, :, :, wi])
        # Return to time domain
        x = torch.fft.irfft(out_ft, n=x.size(-1))
        return (x, None)

Hello,dear author,you said in question #4 about the explanation for operation before 'When we choose the mode index before DFT and reverse DFT operations, the computation complexity can be further reduced to O(N ). ', but in code you choose the mode randomly after DFT operation and combine the DFT results with module.parameter self.wights,It's a good work for have insights like this that combine DFT results (frequency representation)  into model,So,the expression 'When we choose the mode index before DFT and reverse DFT operations, the computation complexity can be further reduced to O(N ).' maybe not very accurate or I lack of understanding of your brilliant work.

that's right, theoretically, the DFT complexity is O(Nlog(N)) with plain implementation as we did in the code. But thanks to the efficient implementation of the torch, the time-consuming part is not DFT or iDFT other than the following attention calculation. In that case, it's O(N) complexity, and we show in the paper, for a wide range of N, you can observe linear time complexity. The overall time complexity is O(aNlog(N)+bN), a<<b in practice, so in the experiment, linear complexity can be observed.


Error when receiving IPv6 multicast packets in raw socket recv

After a dchp (v4) discover packet, when the raw socket recv here: https://github.com/nispor/mozim/blob/v0.2.3/src/client.rs#L512 expects a dhcp offer packet but instead receives an IPv6 multicast packet, the following error occurs:
InvalidDhcpServerReply: Failed to parse DHCP message from payload of pkg []: parser ran out of data-- not enough bytes

This race condition is pretty frequent depending on the existence of such packets.
A more thorough analysis can be found here: https://github.com/containers/netavark/issues/618

Investigation required to understand why this packet passed the BPF filter.
Jul 01 10:27:08 test netavark[3577]: [DEBUG mozim::socket] Raw socket received [51, 51, 0, 0, 0, 22, 118, 255, 172, 65, 53, 143, 134, 221, 96, 0, 0, 0, 0, 36, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 58, 0, 5, 2, 0, 0, 1, 0, 143, 0, 57, 186, 0, 0, 0, 1, 4, 0, 0, 0, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 255, 65, 53, 143]
Jul 01 10:27:08 test netavark[3577]: [ERROR mozim::msg] InvalidDhcpServerReply: Failed to parse DHCP message from payload of pkg []: parser ran out of data-- not enough bytes

@agorgl Could you share the tcpdump/wireshark captured data?

Above packet has 0x86dd(IPv6), it should dropped by BPF (BPF_JMP | BPF_JEQ | BPF_K, 0, 8, ETHERTYPE_IP).
Pending more investigation.

The problem can be reproduced in some boots consistently, but it seems to be impossible to reproduce in others.
I'm thinking that the problem isn't the packet payload per-se, but maybe at some mozim initializations the bpf filter is not applied at all?

Aha, the packet is cached by kernel before we applied BPF filter. Let me prepare another patch.

@agorgl Can you try again with https://github.com/nispor/mozim/pull/35 ?

I'll try to repeat it multiple times and check if Ignoring invalid DHCP package shows up, I'll report back soon

I tried this:
for i in `seq 1 10`; do
    echo $(date): ROUND $i
    sudo systemctl restart netavark-dhcp-proxy.{socket,service}
    sleep 1
    for j in `seq 1 10`; do
        sleep 3
        echo $(date): retry $j
        sudo systemctl reset-failed sample
        sudo systemctl restart sample
        [ $? -ne 0 ] && break
    done
done

across 3 VM reboots, and no Ignoring invalid DHCP package showed up, so I believe with #35 we are good to go

mozim 0.2.4 published. cargo update should do the magic to pull it in.


Add more complete GUI localisation translations

Adds more complete GUI localisation translations, including changes to CoopGameGUI and SITMatchmakerGUI, and now includes English and Simplified Chinese localisation files.

"SIT_COOP": "SIT COOP" looks funny why need to declare that one?

Declared for all the characters that might be used later, even if it looks kind of funny, haha


Missing censor pattern for old ruby 'hash rocket'

Censoring doesn't work on old syntax hash rocket in ruby files :
config['values'] = {
'subgroup' => {
  'uid' => 'user',
  'password' => 'sosecret',
  }
}

Didn't know such an operator existed. But while I was at it, this would've also been an issue for PHP.

Will release it today, after I went through the other pull request


Support FirAdditionalCheckersExtension

Once we have #7404 implemented we could check FirAdditionalCheckersExtension. That's the entrypoint that the new compiler gives us to implement new checkers. Probably each Rule could be wrapped inside a FirAdditionalCheckersExtension. This will help us with the IntelliJ integration and, maybe, the way to go with the compiler plugin.
Thanks to @JavierSegoviaCordoba to point me on this direction.

Closing for now as #7404 seems to go in other direction.


removed redundant return

removes a redundant return that passed go:1.13 and was caught by go:1.14 and go:master

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "",
    "component": "enforcerd",
    "pr-id": "1602",
    "commit-sha": "6353a9d20d0734fa75d8141de6b3813de96dea8d",
    "pipeline": "master"
  },
  {
    "project": "",
    "component": "trireme-lib",
    "pr-id": "982",
    "commit-sha": "2c3275e11bac1a6277f7c4db27c571dffa159e2b",
    "pipeline": "master"
  }
]


request.RemoteAddr is empty

request.RemoteAddr is empty, how to get the remote address?
thank you

A PR with a fix would be very much appreciated.

The fix should be straightforward. As a pointer, here's how it was fixed for the h2quic package a while ago: https://github.com/lucas-clemente/quic-go/commit/8c5a3dabd6428102a8e51ec233ace5cf09bf78a3.


Expand or batch permissions

My application (using OneDrive for Business) needs to read the permissions of all files in a user's account. Currently this is done by first calling '/view.delta' or '/children' and then calling '/permissions' for each item. Of course this is not very efficient requiring a separate request for each file.
Ideally, I would be able to call '/view.delta?expand=permissions', but this returns invalidRequest.
I also tried using OData request batching (https://msdn.microsoft.com/en-us/library/office/dn903506.aspx), but it seems I can only send a max of 5 '/permission' requests before I get errors in the batch response. It's also incredibly slow to the point that sending the requests individually is actually faster.
Is something else like this supported in the API, or are these bugs that need fixing?

OneDrive for Business appears not to support attaching permissions to items via expand: https://dev.onedrive.com/items/permissions.htm

Permissions cannot be expanded on lists of items or a single item. You must access the permissions property directly.

Will update with workarounds if I discover any.

This isn't supported right now. Please considering adding this to the developer suggestions UserVoice.

OneDrive.com does offer this information in the UI.  Checking the network traffic for that site, I found that the browser makes calls to SharePoint APIs, e.g:
POST https://foo-my.sharepoint.com/personal/bdares_foo_onmicrosoft_com/_api/web/GetList(@listUrl)/RenderListDataAsStream?@listUrl=%27%2Fpersonal%2Fbdares%5Ffoo%5Fonmicrosoft%5Fcom%2FDocuments%27&View=&SortField=LinkFilename&SortDir=Asc

While this is clearly out of scope for OneDrive API, it is required if we want programmatic access to OneDrive behavior.


Combine Multiple States? Checked and Disabled Styling?

Didn't see anything about this. Possible to combine multiple states? If so, doesn't seem to work. Not sure which should come first.
rdx-state-checked:rdx-state-disabled:bg-disabled

Not planning to add this, you could do something like this by using the data attributes directly.


CLI needs to be compatible with v2 API

Namely, that the v2 API is getting rid of schedules and various calls are changing.
The changes that are made will be backward compatible for the duration of major release 7, but we will only support the v2 API starting with major version 8.

release 7 is now 8, and release 8 would be 9... for posterity.

Done!


simplified modebar and make it always visible

Partially addresses some points of #50 (map difficult to use): I removed most of the buttons of the modebar, and made it always visible (before it was only visible on hover, which is plotly's default).
To be discussed : should we disable the scroll-on-zoom and let users zoom only with + and - buttons if this is confusing?

Very good! Merging! Thank you


chore: add pre-commit with husky

Describe your changes

Commitlint using conventional commit config, with a custom error message helping developers.
Lint-staged runs prettier on the pre-commit hook, avoiding to commit unformatted code.
Husky used to manage pre-commit hooks.

Issue ticket number and link:
Solves #16
Checklist before requesting a review

[x] I have performed a self-review of my code

Completed.
Please review and let me know of any issues.


Multiple certificate for push notification (apns)

Actually,  this might not be issue but I don't know how to contact developers.
I am using this django-push-notifications and it is working well for my push notification. Problem now is that I have an app which have both pro and lite version. As a result, I have 2 certificate to send push notification.
May I know whether multiple push certificate is supported? If so, how shall I do?

If you're using the low level functions, you can pass the certfile argument to them:
https://github.com/jleclanche/django-push-notifications/commit/8737a4d7beda8f9a1655466a8aa88a44652c7971

Thanks. I will check out. But I am not using low level function though.

Btw, it works also if you are using higher methods like .send_message.

@jleclanche I believe #366 solves this issue. @khantthulinn would define two application configs, pro and lite, with a unique cert for each. What do you think?

I would love to try. Is it available already ?

@khantthulinn It is available if you use the master branch.
The setup instructions are on the wiki for Muliple Application Support.
PUSH_NOTIFICATIONS_SETTINGS
Sample settings with a pro and lite applications defined.
PUSH_NOTIFICATIONS_SETTINGS = {
  # Load and process all PUSH_NOTIFICATIONS_SETTINGS using the AppConfig manager.
  "CONFIG": "push_notifications.conf.AppConfig",

  # collection of all defined applications
  "APPLICATIONS": {
    "pro": {
      # PLATFORM (required) determines what additional settings are required.
      "PLATFORM": "APNS",

      # required APNS setting
      "CERTIFICATE": "/path/to/your/certificate.pem",
    },
    "lite": {
      # PLATFORM (required) determines what additional settings are required.
      "PLATFORM": "APNS",

      # required APNS setting
      "CERTIFICATE": "/path/to/your/certificate.pem",
    }
  }
}

Thanks. I will let you know again when I manage to set up dev server.

I'm closing this issue. The project has had multiple application support in release builds for a while.


feat: Use enum to represent CAST eval_mode in expr.proto

Which issue does this PR close?
Closes #361
Rationale for this change
The updates to expr.proto by using enums instead of strings, which prevents potential errors in type interpretation. Modifications in planner.rs and QueryPlanSerde.scala resolve issues found during compilation and style checks.
What changes are included in this PR?

expr.proto: Updated the eval_mode field from a string type to an enum type (EvalMode), with defined values LEGACY, TRY, and ANSI.
Rust Code: Modified ExprStruct::Cast(expr) in planner.rs to handle eval_mode as integers corresponding to the new protobuf enum. Updated the match statement to directly convert integers to the EvalMode Rust enum and added error handling for invalid integers.
QueryPlanSerde.scala:

Introduced the stringToEvalMode function, which converts input strings to ExprOuterClass.EvalMode enum values using a case-insensitive match, enhancing our error handling by throwing exceptions for invalid modes.
Corrected the use of toUpperCase to include Locale.ROOT to avoid locale-sensitive behavior, aligning with internationalization best practices.
Reorganized imports to comply with project's Scalastyle guidelines, clearly separating Java standard library imports from those specific to the project, which aids in code clarity and maintenance.
Addressed and resolved Scalastyle violations related to locale-specific string manipulations. Fixed the Scalastyle violation by correcting the usage of toUpperCase without specifying a locale. Reorganized import statements to adhere to the project's coding standards, ensuring that Java standard library imports are correctly grouped.

How are these changes tested?
I have run

make test-rust: No failures.
make test-jvm: No failures.

@prashantksharma Do you need any assistance with this PR? Let me know if you have questions

@prashantksharma Do you need any assistance with this PR? Let me know if you have questions

@andygrove
Apologies, I will definitely finalize this PR based on your comments by May 31st, 2024.
PS: I have been little caught up with office work due to product launch at my current company.

@andygrove
Thank you so much for your suggestions and comments, and most importantly patience in helping me with this PR.
I have made the necessary changes and pushed to the same branch i.e issue-361-enum-for-eval_mode.
Kindly, let me know if there are any steps to be done for this PR from my side.

@viirya @kazuyukitanimura @parthchandra @huaxingao I plan on merging this one soon unless you want to review?


[SPARK-43781][SQL] Fix IllegalStateException when cogrouping two datasets derived from the same source

What changes were proposed in this pull request?
When cogroup two datasets derived from same source, eg:
val inputType = StructType(Array(StructField("id", LongType, false),
   StructField("type", StringType, false)))
val keyType = StructType(Array(StructField("id", LongType, false)))

val inputRows = new java.util.ArrayList[Row]()
inputRows.add(Row(1L, "foo"))
inputRows.add(Row(1L, "bar"))
inputRows.add(Row(2L, "foo"))
val input = spark.createDataFrame(inputRows, inputType)
val fooGroups = input.filter("type = 'foo'").groupBy("id").as(RowEncoder(keyType),
   RowEncoder(inputType))
val barGroups = input.filter("type = 'bar'").groupBy("id").as(RowEncoder(keyType),
   RowEncoder(inputType))

val result = fooGroups.cogroup(barGroups) { case (row, iterator, iterator1) =>
   iterator.toSeq ++ iterator1.toSeq
}(RowEncoder(inputType)).collect()

The error will be reported:
21:03:27.651 ERROR org.apache.spark.executor.Executor: Exception in task 1.0 in stage 0.0 (TID 1)
java.lang.IllegalStateException: Couldn't find id#19L in [id#0L,type#1]
	at org.apache.spark.sql.catalyst.expressions.BindReferences$$anonfun$bindReference$1.applyOrElse(BoundAttribute.scala:80)
	at org.apache.spark.sql.catalyst.expressions.BindReferences$$anonfun$bindReference$1.applyOrElse(BoundAttribute.scala:73)
	...

The reason are DeduplicateRelations rewrite LocalRelation but can't rewrite left(right)Group and left(right)Attr in CoGroup. In fact, the Join will face same situation. But Join regenerate plan when invoke itself to avoid this situation. Please refer https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala#L1089
So this PR bring same operation to CoGroup, through generate analyzed plan to avoid attribute not updated problem.

Why are the changes needed?
Fix IllegalStateException when cogrouping two datasets derived from the same source

Does this PR introduce any user-facing change?
No

How was this patch tested?
Add new test

can we make DeduplicateRelations handle CoGroup?

can we make DeduplicateRelations handle CoGroup?

Ok for me, before do this, please check #41347

thanks, merging to master/3.5!


iOS runs abnormally after upgrading Xcode

Steps to reproduce

Cannot run on iOS simulator

Actual results
Could not build the application for the simulator.
Error launching application on iPhone 16 Pro Max.
Logs

Logs

<!-- Paste your logs here -->
[log.txt](https://github.com/user-attachments/files/17626672/log.txt)

Flutter Doctor output

Doctor output

<!-- Paste your output here -->
flutter doctor -v
[✓] Flutter (Channel stable, 3.19.6, on macOS 15.1 24B83 darwin-arm64, locale zh-Hans-CN)
    • Flutter version 3.19.6 on channel stable at /Users/chenle/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 54e66469a9 (7 months ago), 2024-04-17 13:08:03 -0700
    • Engine revision c4cd48e186
    • Dart version 3.3.4
    • DevTools version 2.31.1
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/chenle/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16B40
    • CocoaPods version 1.16.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] VS Code (version 1.95.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.98.0

[✓] Connected device (3 available)
    • iPhone 16 Pro Max (mobile) • 914FAF30-4957-45DF-B667-86C2264BB8B5 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-18-1 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 15.1 24B83 darwin-arm64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 130.0.6723.92

[✓] Network resources
    • All expected network resources are available.

• No issues found!

/Users/chenle/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview-5.8.0/ios/Classes/InAppWebView/InAppWebView.swift:1226:26: error: method does not override any method from its superclass
        public override func evaluateJavaScript(_ javaScriptString: String, completionHandler: ((Any?, Error?) -> Void)? = nil) {
                             ^
    WebKit.WKWebView:46:15: note: potential overridden instance method 'evaluateJavaScript(_:completionHandler:)' here
        open func evaluateJavaScript(_ javaScriptString: String, completionHandler: (@MainActor @Sendable (Any?, (any Error)?) -> Void)? = nil)

You are hitting an error in the flutter_inappwebview plugin, update to 6.1.0 or higher: https://github.com/pichillilorenzo/flutter_inappwebview/pull/2274#issuecomment-2368160052
Closing.


Fixed Build Error - Incorrect Header

The Header imported is not correct which causes a build error.

ack 👍


Check DDM version is correct

I looked harder at the L0 code and it looks like there is a hardcode path to "ddm-v1" which is overriding any newer ddm-vX files.
@Delwyn I can probably fix that up to be FOM instead of FSF, but it probably has knock-on effects for the L1 (files/processing/tech docs/etc) so probably best to discuss that before anythings done there!

Sent the last email before I read this.  I don’t think we use the FOM.

We use FSF and it is most of the time set to 1. There are certain lines where it is set to 2 or 3, but these are very sporadic.

Check if we are still using the ddm-v1 by accident, and whether we need to change this to ddm-v2. I believe this has naming issues r.e. FSF vs FOM

Whoops, this was a L0 issue. Issue already raised in that repo. Closing here.


Benchmark Results and new GH Comments

Currently, using the latest version (v0.3.0), given an opened PR, every time that one commit is run on CI, adds a new comment. Would it make sense to update the existing one?
Example: https://github.com/47degrees/memeid/pull/195

Yeah, the requirements initially said to update in case it exists so potentially this is a bug. thanks


fix: policy route using wrong name/param

Fixes a small issue with links to specific policy views using the route name for the general policies route and a policyType param which doesn’t exist.
Signed-off-by: Philipp Rudloff<EMAIL_ADDRESS>

This would be good in the upcoming release right? (@Automaat FYI. Not sure if its too late if this is something that would be good to go in the upcoming release)

I think this is such a minor issue that it doesn’t necessarily need to be included in the release of 2.1.0. In any case, it’s also not difficult to do as long as we haven’t done more than prepare the release branch in Kuma. We can merge it which would automatically propagate it to Kuma’s master branch from where it will have to be cherry-picked into the release-2.1 branch. Leaving this up to @Automaat as the release manager to decide.


Investigate Editor / WinForms Re-Entrancy Problems with Task Parallel Library

Summary
When using methods of the task parallel library, such as Parallel.For, the editor will pump a selective subset of windows messages while waiting for its completion. Among these events is WM_PAINT, which can cause re-entrancy problems when attempting to repaint the scene.
How to reproduce
Unclear. It happens occasionally - the more Parallel.For is used in the core, the higher the chance. Right now, there is no Parallel.For in the main update / render cycle because of the re-entrancy problems, but adding some for testing should reproduce this behavior easily.
Workaround
Avoid Parallel.For in the main update / render cycle. This is what's done currently.
Attachments

StackOverflow question on this.
ILSpy Disassembly of relevant .Net Implementations for synchronization contexts.

More research. There's a very interesting comment in the DispatcherSynchronizationContext source file (mirrored in this gist) regarding their Wait implementation:
if(_dispatcher._disableProcessingCount > 0)
{
	// Call into native code directly in order to avoid the default
	// CLR locking behavior which pumps messages under contention.
	// Even though they try to pump only the COM messages, any
	// messages that have been SENT to the window are also
	// dispatched.  This can lead to unpredictable reentrancy.
	return MS.Win32.UnsafeNativeMethods.WaitForMultipleObjectsEx(waitHandles.Length, waitHandles, waitAll, millisecondsTimeout, false);
}
else
{
	return SynchronizationContext.WaitHelper(waitHandles, waitAll, millisecondsTimeout);
}

As _disableProcessingCount hints, this is only activated explicitly in a handful of select spots, so it remains arguable whether it would be a great idea to use this method as a default. Further investigation is required.

Source Code Links:

WaitHelper implementation.
DoAppropriateWait implementation.
DoAppropriateWaitWorker implementation.

Looks like this is where the actual message pump is implemented.

Very thorough StackOverflow answer on a similar question. It also details custom implementations of synchronization contexts.

Quoting from the very first StackOverflow link in the initial post:

This comes from the CLR, it implements the contract that an STA thread (aka UI thread) is never allowed to block on a synchronization object. Like Parallel.For() does. It pumps to ensure that no deadlock can occur.

With this in mind, it might be the best course of action to respect the original Wait implementation and look into countering the re-entrancy problems directly instead.

What are the exact entry points?
Why is there a message that causes them to be triggered?
Can this message be avoided?

As mirrored in this gist, there is a sample implementation of a non-re-entrant synchronization context in the first StackOverflow link. Performed a quick test with the editor.
Test Setup

Implemented a custom ICmpRenderer that performed a Parallel.For operation in its Draw method
Implemented another one with the same operation done synchronously without Parallel.
Ran the editor and created one of the renderers, then moved around the mouse cursor on the Scene View.
The custom synchronization context was installed in the editor's Program.Main right after the first config calls to the WinForms Application class.

Results
Regular WinForms SynchronizationContext

Parallel: Lots of flickering and rendering invalid / inconsistent data.
FakeParallel: No issues.

Custom SynchronizationContext

Parallel: No issues.
FakeParallel: No issues.

It remains to be determine whether using that custom synchronization context is a good idea. Again, any insights appreciated.

More research:

Example how the default sync context can deadlock. Not applying here, as this locks even with the default sync context implementation, but it allows some insight into the mechanisms behind it and potential dangers of a custom, entirely non-pumping implementation.
General Info on synchronization contexts

Overall, it seems preferable to do without a custom solution here, as there are too many WinForms, TPL, Thread internals a change might affect.

A alternative could be running duality in a separate thread (possibly with its own custom duality sync context to support tasks). This would require that the UI does not update duality while its doing a gameupdate though.
Pro's:

This approach is probably easier to test/validate compared to a custom sync context as its hard to say how a custom sync context will affect winforms.
Duality will run in the same sync context regardless if its in a editor or not thus fully fixing the inconsistencies between these.

The big con:

Having to add a lock to the duality update loop and any UI components wanting to update duality data would have to acquire this lock. Duality and winforms will mostly run in some form of lockstep this way.

Another solution to this problem could be that instead of calling any duality render methods directly a more data focused approach would be used. The editor will only read out the 'renderstate'. This state gets updated only when duality render methods are run. That way it does not matter what happens at the winform side, duality would be in full control when any duality render methods get called.

Unrelated to previous posts, some insight on how Unity makes sure async await doesn't blow up their thread safety. Remotely related to this for their use of a custom "main thread only" synchronization context:

How to use Async Await in Unity
UnitySynchronizationContext

Not sure if this main thread only business is a great idea, but good for inspiration and learning about synchronization contexts.

With the recent update from .NET 4.5 to .NET 4.7.2, we now should have this fix from .NET 4.6:

GDI+ reentrant paint operations fixed. [1075715]

Not entirely sure this is what we observed here, but it could be worth checking out if it's still an issue.

For research: https://devblogs.microsoft.com/dotnet/configureawait-faq/


the default value in the questions.yml didn't take effect

Rancher Server Setup

Rancher version: v2.6-head

Describe the bug

When the default value is specified in the questions.yml but it does not take effect.
the default value of hostPath in the csi-chart is /etc/kubernetes/cloud-config but it was using the original value fro the values.yaml file.

Result
the chart is installed with the default values from values.yml
Expected Result
the questions.yml values should take effect

Looks like it is using catalog:cattle.io/namespace which has a typo.

For the first one, set the default in values.yaml and not (also) questions.yaml's default.  They are contradictory and the intended behavior is that values.yaml wins, so that you get the same result from helm install <chart> and just clicking through the UI install without changing anything.
For the 2nd, the annotation is incorrect as @StrongMonkey, said so it has no effect.

thanks for the detailed explanation and close in favor of https://github.com/rancher/charts/pull/1649 as have set the desired value in the values.yaml instead of using the questions.yml.


Consider having all puppets active on selection, like in Photo Booth

Cool stuff
Can more than one puppet be "Active" on screen? A cool effect would be to have all puppets follow the user's face on selection, like in PhotoBooth.
I don't have an X, so I cannot test and/or PR.

Unfortunately it seems like only one puppet can be controlled at a time, but I'm planning on having a feature that allows you to switch puppets during recording.

Switching puppets during recording is now possible, the other feature unfortunately is not feasible to implement.


Update mechanism

For now I just fixed a bug that caused the update message to be displayed in a broken way (Example)
This issue was likely caused by the loader; despite us putting concurrency checks in place to prevent overwrites, because the message used to be put out without newline, the loader would mess things up

Still need to test it, but this should basically be it.
I reread the issue and noticed that we haven't discussed in what way to inform the users about what has changed.
Simplest approach would be to append the changelog from the release page to the notification?


Refactoring of GildedRose

Nice work @monicasima! Thanks for the PR so I could see your solution. I am going to close it so that others can try as well.


Added Google site verification

For Google Search Console

shouldn't this code only fire in production? I think we should do like we did on the navcoin.org site for GA and put  {{ if eq (getenv "HUGO_ENV") "production" }} and  {{ end }} around any GA code. Otherwise the analytics are skewed when devs are viewing in 'dev' mode via localhost.


disappearing data, readings going backwards

It is probably an issue of the Hyundai/Kia cloud but I am raising an issue anyway just to check whether anyone else has this problem as well.
Below is an example of two consecutive readings from the cloud by the KiaUvoApiEU program with debug turned on. I only did some formatting for readability.
As you can see the totalPwrCsp and other power readings, but also calculativeOdo reading, are reduced from one reading to the next, so are going backwards, while these are supposed to be total cumulative readings. Totals for period 0 are reduced, totals for period 1 are slightly increased, the sum of the two is reduced.
The sum of the details for drivingperiod 1 matches the total of drivingperiod 0 in both cases. The reduction is in the oldest month.
I still need to analyse other cases where this happens and see whether I can find an explanation. Maybe some data is dropped after 3 months? I also noted in the app that no data older than 3 months is available.
DEBUG:hyundai_kia_connect_api.KiaUvoApiEU:hyundai_kia_connect_api - get_driving_info responseAlltime {'retCode': 'S', 'resCode': '0000', 'resMsg': {'drivingInfo': [
{'drivingPeriod': 0, 'totalPwrCsp': 1146165, 'motorPwrCsp': 1006244, 'climatePwrCsp': 99589, 'eDPwrCsp': 39810, 'batteryMgPwrCsp': 522, 'regenPwr': 206645, 'calculativeOdo': 4804},
{'drivingPeriod': 1, 'totalPwrCsp': 15282, 'motorPwrCsp': 13416, 'climatePwrCsp': 1327, 'eDPwrCsp': 530, 'batteryMgPwrCsp': 6, 'regenPwr': 2755, 'calculativeOdo': 64.05333333333333}],

'drivingInfoDetail': [
{'drivingPeriod': 1, 'drivingDate': '202401', 'totalPwrCsp': 414560, 'motorPwrCsp': 365808, 'climatePwrCsp': 35260, 'eDPwrCsp': 12970, 'batteryMgPwrCsp': 522, 'regenPwr': 67603, 'calculativeOdo': 1917},
{'drivingPeriod': 1, 'drivingDate': '202312', 'totalPwrCsp': 440831, 'motorPwrCsp': 386261, 'climatePwrCsp': 39290, 'eDPwrCsp': 15280, 'batteryMgPwrCsp': 0, 'regenPwr': 79297, 'calculativeOdo': 1680},
{'drivingPeriod': 1, 'drivingDate': '202311', 'totalPwrCsp': 254614, 'motorPwrCsp': 221972, 'climatePwrCsp': 22862, 'eDPwrCsp': 9780, 'batteryMgPwrCsp': 0, 'regenPwr': 49037, 'calculativeOdo': 1028},
{'drivingPeriod': 1, 'drivingDate': '202310', 'totalPwrCsp': 36160, 'motorPwrCsp': 32203, 'climatePwrCsp': 2177, 'eDPwrCsp': 1780, 'batteryMgPwrCsp': 0, 'regenPwr': 10708, 'calculativeOdo': 179}]}}

-------------------------------------------------------------------------------------------------------------------

DEBUG:hyundai_kia_connect_api.KiaUvoApiEU:hyundai_kia_connect_api - get_driving_info responseAlltime {'retCode': 'S', 'resCode': '0000', 'resMsg': {'drivingInfo': [
{'drivingPeriod': 0, 'totalPwrCsp': 1125165, 'motorPwrCsp': 987606, 'climatePwrCsp': 98257, 'eDPwrCsp': 38780, 'batteryMgPwrCsp': 522, 'regenPwr': 200131, 'calculativeOdo': 4714},
{'drivingPeriod': 1, 'totalPwrCsp': 16073, 'motorPwrCsp': 14108, 'climatePwrCsp': 1403, 'eDPwrCsp': 554, 'batteryMgPwrCsp': 7, 'regenPwr': 2859, 'calculativeOdo': 67.34285714285714}],

'drivingInfoDetail': [
{'drivingPeriod': 1, 'drivingDate': '202401', 'totalPwrCsp': 414560, 'motorPwrCsp': 365808, 'climatePwrCsp': 35260, 'eDPwrCsp': 12970, 'batteryMgPwrCsp': 522, 'regenPwr': 67603, 'calculativeOdo': 1917},
{'drivingPeriod': 1, 'drivingDate': '202312', 'totalPwrCsp': 440831, 'motorPwrCsp': 386261, 'climatePwrCsp': 39290, 'eDPwrCsp': 15280, 'batteryMgPwrCsp': 0, 'regenPwr': 79297, 'calculativeOdo': 1680},
{'drivingPeriod': 1, 'drivingDate': '202311', 'totalPwrCsp': 254614, 'motorPwrCsp': 221972, 'climatePwrCsp': 22862, 'eDPwrCsp': 9780, 'batteryMgPwrCsp': 0, 'regenPwr': 49037, 'calculativeOdo': 1028},
{'drivingPeriod': 1, 'drivingDate': '202310', 'totalPwrCsp': 15160, 'motorPwrCsp': 13565, 'climatePwrCsp': 845, 'eDPwrCsp': 750, 'batteryMgPwrCsp': 0, 'regenPwr': 4194, 'calculativeOdo': 89}]}}

That log is straight from the Kia server. We have seen reports of this before.   I assume the native app shows the same issue.   If so could open a ticket with Kia if you can catch it in app.

I now also noticed that the sum of the calculativeOdo readings for period 0 and 1 in the readings above, does not match the odometer reading in the response of get_cached_vehicle_status.
The reading in the get_cached_vehicle_status is correct and matches the app and the car, so this seems to point again in the direction that the response_all_time is not really all_time but just the last 3 months.
To be accurate the naming in the API should be changed to reflect the contents, but is it worth it and does it not affect other users of this API (if they use that naming in further processing) ?

I am closing this issue.
My observation that the cloud is providing 90 day data and not lifetime cumulative is correct, so after 90 days the old data will disappear (be subtracted) from the totals.
I am now using details of the 30 day data as available in the API to calculate my own lifetime totals.


Locale field cannot be cleared, will repopulate when erased

Try to delete the value in the locale field in the bot connect UI. Notice that immediately after the last character is deleted, the value is reset to the default ("en-US" on my machine)

Fixed by https://github.com/Microsoft/BotFramework-Emulator/pull/375


hELP... PLEASE

Hello, i am university student who willing to use machine learning for material development.
And now I am starting to study machine learning method with your code, and try to simulate first.
however, I always get trouble when executing 'data_loader.py'
THe error makes  " [Errno 2] No such file or directory: './data/cation_ALL_0731_initial.xlsx'"
however, i tried to find the .xlsx file in the repository, but there's no.... such name.
Would you please help me that where can i get the file please..
ALso ... where should I execute first...? Is there any guide to start your code...?

You need to run the encode.py code first in the ./data folder to encode the data into cation encoding first. then use the ./round1/cluster/ part to cluster the data. In that folder the round1/cluster/data.overp.encoded.xlsx file present an example of processed data. We are considering writing a more detailed documentation later on but at the moment I would suggest you follow the workflow as we discribed in the paper. If there is anything you would like to know, feel free to leave a comment here. Thank you


Added Django(python web framework)

Added Django free fa-ir course to free-courses-fa_IR.md
persian taught free django course

Duplicate of #6056


User Defined Type (UDT) Out Parameters

JDBC has registerOutParameter methods on CallableStatement which accept a type name:
https://docs.oracle.com/javase/8/docs/api/java/sql/CallableStatement.html#registerOutParameter-int-java.sql.SQLType-java.lang.String-
Is there any interest in the R2DBC SPI also having a way to do this?
This problem can already be solved by driver-specific extensions to the SPI. For instance, I've drafted a solution for Oracle R2DBC here:
https://github.com/oracle/oracle-r2dbc/issues/83#issuecomment-1194388100
Just wanted to check in with the broader R2DBC community before I go off and implement this. Should we have a standard way to do this? Or, is it fine for each driver to have its own unique API?

We introduced with version 0.9 a Parameter abstraction that accepts a type reference along with in/inOut/out characteristics. I think https://r2dbc.io/spec/1.0.0.RELEASE/api/io/r2dbc/spi/Parameters.html#out-io.r2dbc.spi.Type- should lead you to the desired functionality.
Parameter objects are designed to be used with Statement.bind(...) so we do not need additional API.
The spec contains also a bit of documentation regarding out parameters and type references.
The Postgres driver uses this feature to reference UDTs.
Let me know whether that helps.

I like the idea of using io.r2dbc.spi.Type to represent UDTs. As an Oracle specific extension, I'm considering a factory method like this:
  /**
   * Returns a {@code Type} representing a user defined type.
   * @param type The base type
   * @param name The type name
  public Type userDefined(Type type, String name) {
    ...
  }

This lets the application code express the same information as JDBC's registestOutParameter method: A base type, and a user defined name. It might be used like this:
connection.createStatement("{? = call CREATE_A_PERSON (?)}")
  .bind(0, Parameters.out(
    OracleR2dbcTypes.userDefined(OracleR2dbcTypes.STRUCT, "UDO_PERSON")))
  .bind(1, "YOURE NAME")
  .execute();

I'm confused about what is meant by "mapping API/registry". In this case, I'm just considering how application code would express the name of a user defined type. JDBC choose to codify that as a part of its standard, with registerOutParameter accepting a name parameter. If multiple R2DBC drivers need to support named types, then a standard way to do that could be beneficial, as it would allow for code that is portable across drivers.
A SPI extension that is specific to Oracle R2DBC is fine for now. But if we end up with multiple drivers exposing different ways to express named types, then a common interface might be a better solution.

I'm confused about what is meant by "mapping API/registry".

Sorry, I wasn't clear. Something along the lines of Type ConnectionFactory.lookupType(String typeName) or Type Connection.getUserType(String typeName).

Thanks, I understand what you mean now, and I like the idea of a type lookup method.
Assuming the result is not already cached, I think this would require a remote database call. So perhaps Publisher<Type> would be the right return type?

Good catch, I was too quick capturing my idea. Indeed, Publisher<Type> would be the way to go.

Assuming the result is not already cached, I think this would require a remote database call.

Are you folks sure this is what should be done here? In JDBC, the Connection::getTypeMap is purely about client side type mappings, I think?

Perhaps we should use this thread to explore the larger idea of supporting UDTs?
I originally just wanted support for the highly specific case of a UDT out parameter bind. But really there's more to this: What Java type is that out parameter mapped to? I think JDBC would answer that question with "java.sql.Struct or the connection type map". And yes, set/getTypeMap should be a purely client side operation; No publisher needed for that.
But for this proposed lookupType method, that would be a remote call to the database. At the least, the driver would need to check if the named type actually exists, and emit an error if not. The driver might also obtain metadata about the UDT, such as the fields in a STRUCT, or the element type of an ARRAY.
I have to admit that my knowledge on JDBC's support for structured types is weak. I'm planning to dig in to it more in the coming weeks. At the moment, I'm super busy with other projects. I'd like to contribute more once things settle down.

Perhaps we should use this thread to explore the larger idea of supporting UDTs?

I definitely think so. This shouldn't be addressed merely in the context of procedure parameters.
JDBC has 2 ways of interacting with UDTs:

java.sql.Struct just creates structurally typed UDT references for quick ad-hoc usage. It's usually good enough
java.sql.SQLData is a way to allow for implementing custom client side representations of UDTs as Java objects. When registering something in the Connection::getTypeMap (or when providing the type map explicitly to e.g. CallableStatement::getObject, etc.), then the expectation is for all the Class references in the type map to be references to classes implementing SQLData

I personally think that the second approach should not have been added to JDBC. It feels rather weird, has a few important flaws (e.g. SQLData::readSQL and SQLData::writeSQL cannot access the JDBC Connection, so it's hard to get this binding right when nesting data structures and arrays), and the java.sql.Struct approach was really sufficient already.
I've never had the need for any round-trip inducing lookupType method in JDBC, neither back when binding to JDBC directly at a previous employer, nor when implementing jOOQ. Usually, there has always been an assumption that the required type exists, and that it has a certain specification. You don't need a lookupTable method either, because you make the same assumptions about tables, no?
A bit of additional background on UDTs: While ojdbc implemented JDBC completely in this area and probably also designed these ORDBMS features both in JDBC and in the SQL standard, PostgreSQL has a more elegant view on the topic. In PostgreSQL, table row types are also "UDTs", so for example, you can write things like:
SELECT actor FROM actor;
SELECT ROW(id, first_name, last_name)::actor FROM actor;

In both cases, you'll get a nested record / UDT style data structure of type actor, which isn't a formally declared TYPE but an implicit one, derived from the table. Note that I'm using standard SQL ROW constructors here to create a nested record. You could also just omit the cast and write this:
SELECT ROW(id, first_name, last_name) FROM actor;

Now, the UDT is only structurally typed, not nominally typed. Informix also works more or less this way, and I think it would make sense for Oracle Database to also add these features to consolidate and follow the SQL standard more closely (though I don't think it will be a priority any time soon).
So, a UDT is just a nominally typed ROW, very similar to io.r2dbc.spi.Row. I think the SPI must be able to model at least Oracle's and PostgreSQL's interpretation of the ORDBMS feature, as they're the most popular implementations. I don't think anyone is already working on an Informix driver?

I've decided to add support for UDTs in the Oracle driver. If anyone is curious about that, they can see the changes here:
https://github.com/oracle/oracle-r2dbc/pull/104
Thank you @mp911de and @lukaseder for the discussion on this thread. I found it to be very helpful when making some decisions for the Oracle driver.

Thanks for the ping. I have a TODO to look into these integrations sometime soon, as a customer is interested.

Good to hear. Feedback from library authors such as your selves is truly invaluable. I did my best to get the API right for Oracle, but please let me know if you think there's anything we do better.


Use server scheme to handle credential request API group changes

Signed-off-by: Monis Khan<EMAIL_ADDRESS>Release note:
NONE

Codecov Report

Merging #394 (f1f104b) into main (850f030) will decrease coverage by 0.05%.
The diff coverage is 47.05%.

@@            Coverage Diff             @@
##             main     #394      +/-   ##
==========================================
- Coverage   77.49%   77.44%   -0.06%
==========================================
  Files         111      111
  Lines        5572     5577       +5
==========================================
+ Hits         4318     4319       +1
- Misses       1086     1087       +1
- Partials      168      171       +3

Impacted Files
Coverage Δ

internal/concierge/server/server.go
39.23% <40.00%> (+0.70%)
:arrow_up:

...ernal/controller/authenticator/authncache/cache.go
100.00% <100.00%> (ø)

cmd/local-user-authenticator/main.go
56.58% <0.00%> (ø)

Continue to review full report at Codecov.

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