Num_queries hard coded

Hi,
Thank you for sharing your work! I'm trying to replicate results on a 12 GB GPU by reducing the num_frames and num_queries parameters. However, I came across the following error:
outputs_seg_masks = outputs_seg_masks.reshape(1,360,outputs_seg_masks.size(-2),outputs_seg_masks.size(-1))
RuntimeError: shape '[1, 360, 75, 76]' is invalid for input of size 1710000

I pinpointed the issue to Line 126, where I think 360 should be replaced with self.vistr.num_queries. Could you correct this in your release?
Also, can you explain what 24 denotes in Line 115?
Thanks!

Hi,
Thank you for sharing your work! I'm trying to replicate results on a 12 GB GPU by reducing the num_frames and num_queries parameters. However, I came across the following error:
outputs_seg_masks = outputs_seg_masks.reshape(1,360,outputs_seg_masks.size(-2),outputs_seg_masks.size(-1))
RuntimeError: shape '[1, 360, 75, 76]' is invalid for input of size 1710000

I pinpointed the issue to Line 126, where I think 360 should be replaced with self.vistr.num_queries. Could you correct this in your release?
Also, can you explain what 24 denotes in Line 115?
Thanks!

could you get any results, after correct the hardcode?
I keep got wrong prediction class and bbox results.
Appreciate it if you can help me.
Thx

@anirudh-chakravarthy Thanks very much for your advice! But as there has been a long time and I have no extra time to review the code now, I will correct it in the future.


Multiple entries in PASTEL database

Of the 4,672 entries in the PASTEL database, 3,865 entries are duplicates of the same star. Some stars have >50 entries. For this comparison we should cull down to just compare against a few large samples, or go through and select the "best" value for each star.
This affects the file in article/figures/plot_literature_comparison.py

!

Kordopatis has sent me a distilled set of acceptable literature comparisons that were used in his DR4 paper.


Menu: Keyboard focus border should not be visible when the menu was opened with the mouse

#52854

Maybe it should show only after pretty up or down when it was opened with the mouse?

related to #52933

It's also pretty awkward that the border isn't around the whole row.

as mouse focus === keyboard focus now with #54428, I'm going to close this issue. However, #52913 will stay open


Bump Dependencies #2824782509

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/2824782509

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jenkins-is-staging seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Cannot integrate Apollo Angular

Hi i am trying to integrate Apollo Angular to this project and getting errors. I need help to integrate it, please help me:
I cloned the boilerplate code and run ng add apollo-angular  from the installation guide given below--
Apollo Angular installation guide -: https://www.apollographql.com/docs/angular/basics/setup.html#installation
Error screenshot goes below

Thank you in advance for the help.

Hello, try to follow without Angular Schematics. I try with it and i get same erros but with manual installation it work for me.

@anthowm Thanks for replying fast. I tried it without angular schematics and installed each package separately. After installation i injected the imports in App module and then at the time of running the project i get same compilation  errors.

@anthowm @jatin-chauhan errors seems to be  coming from apollo only, maybe you can have a look if you have to add appolo to types of tsconfig compiler options? or is there a version mis-match?

I share you my dependencies maybe you don't install the graphql types, remember too add "esnext.asynciterable" in you tsconfig
Dependencies
"dependencies": {
    "@angular/animations": "^7.2.0",
    "@angular/cdk": "^7.2.1",
    "@angular/common": "^7.0.2",
    "@angular/compiler": "^7.0.2",
    "@angular/core": "^7.0.2",
    "@angular/forms": "^7.0.2",
    "@angular/http": "^7.0.2",
    "@angular/material": "^7.0.3",
    "@angular/platform-browser": "^7.0.2",
    "@angular/platform-browser-dynamic": "^7.0.2",
    "@angular/router": "^7.0.2",
    "@auth0/angular-jwt": "^2.1.0",
    "@fortawesome/angular-fontawesome": "^0.3.0",
    "@fortawesome/fontawesome-svg-core": "^1.2.8",
    "@fortawesome/free-brands-svg-icons": "^5.5.0",
    "@fortawesome/free-regular-svg-icons": "^5.5.0",
    "@fortawesome/free-solid-svg-icons": "^5.5.0",
    "@ngrx/effects": "^6.1.2",
    "@ngrx/entity": "^6.1.2",
    "@ngrx/router-store": "^6.1.2",
    "@ngrx/store": "^6.1.2",
    "@ngrx/store-devtools": "^6.1.2",
    "@ngx-gallery/core": "^4.0.1",
    "@ngx-gallery/gallerize": "^4.0.1",
    "@ngx-gallery/lightbox": "^4.0.1",
    "@ngx-translate/core": "^11.0.1",
    "@ngx-translate/http-loader": "^4.0.0",
    "apollo-angular": "^1.5.0",
    "apollo-angular-link-http": "^1.4.0",
    "apollo-cache-inmemory": "^1.3.12",
    "apollo-client": "^2.4.8",
    "apollo-link": "^1.2.6",
    "apollo-link-context": "^1.0.12",
    "apollo-link-error": "^1.1.5",
    "apollo-upload-client": "^10.0.0",
    "bootstrap": "^4.1.3",
    "browser-detect": "^0.2.28",
    "core-js": "^2.5.4",
    "graphql": "^14.0.2",
    "graphql-tag": "^2.10.0",
    "hammerjs": "^2.0.8",
    "ngx-infinite-scroll": "^7.0.1",
    "ngx-material-file-input": "^0.3.0",
    "rxjs": "^6.3.3",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.6.8",
    "@angular/cli": "~7.0.4",
    "@angular/compiler-cli": "^7.0.2",
    "@angular/language-service": "^7.0.2",
    "@bahmutov/add-typescript-to-cypress": "^2.0.0",
    "@compodoc/compodoc": "^1.1.7",
    "@types/apollo-upload-client": "^8.1.1",
    "@types/graphql": "^14.0.4",
    "@types/jest": "^23.3.10",
    "@types/jasmine": "~2.8.9",
    "@types/jasminewd2": "^2.0.5",
    "@types/node": "^8.9.5",
    "codelyzer": "~4.2.1",
    "cypress": "^3.1.3",
    "graphql-code-generator": "^0.15.2",
    "graphql-codegen-introspection": "^0.15.2",
    "graphql-codegen-typescript-apollo-angular": "^0.15.2",
    "graphql-codegen-typescript-client": "^0.15.2",
    "graphql-codegen-typescript-common": "^0.15.2",
    "jasmine-core": "~3.2.1",
    "jasmine-marbles": "^0.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.4",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "~1.3.1",
    "karma-spec-reporter": "~0.0.32",
    "ngrx-store-freeze": "^0.2.4",
    "protractor": "~5.3.0",
    "ts-node": "~5.0.1",
    "tslint": "~5.9.1",
    "typescript": "~3.1.6"
  }

TSCONFIG
{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom",
      "esnext.asynciterable"
    ],
    "paths": {
      "@app/*": [
        "app/*"
      ],
      "@env/*": [
        "environments/*"
      ],
      "@testing/*": [
        "testing/*"
      ],
      "@app-pets-store/*": [
        "app/pets/store/*"
      ]
    }
  }
}

@anthowm Thanks for the solution. It worked with your mentioned dependencies. Looks like I was missing graphql types. But I also have one more package apollo-link-ws . Installing and importing it gives me below error--
ERROR in node_modules/apollo-link-ws/lib/webSocketLink.d.ts(6,19): error TS2709: Cannot use namespace 'ClientOptions' as a type.
node_modules/apollo-link-ws/lib/webSocketLink.d.ts(13,63): error TS2709: Cannot use namespace 'SubscriptionClient' as a type.

@anthowm Thanks for all the help,  i got that working.:)

perfect :)

@anthowm @jatin-chauhan  great! So this is finished then, right ?

@jatin-chauhan Could you describe in details what did you do to integrate Apollo Angular ? Maybe list of actions you have done.

@tomastrajan Yes this is finished. You can close this. :)

@ramax495 I followed the tutorial to integrate it-
https://www.apollographql.com/docs/angular/basics/setup.html#installation
I was missing graphql types but adding those fixed the issue.

Solution was found. ( Old issue cleanup )


Change font to Poppins (from Quicksand)

Change the primary font used in the site from Quicksand to Poppins.
Ready-for-merge Checklist

[x] Expected files: all files in this pull request are related to one feature request or issue (no stragglers)?
[ ] Does the change have appropriate unit tests?
[ ] Did tests pass?
[ ] Did you update or add any necessary documentation (README.md, WHY.md, etc.)?
[x] Was this feature demo'd and the design review approved?

Some files from a previous commit were not formatted using prettier. So, should I include those files too in this PR?


Update Links “tiktok-44”

Automatically generated by Netlify CMS

👷 Deploy Preview for distracted-hoover-7b89cc processing.
🔨 Explore the source changes: a791dbf95ba29f2ab5c2f591c56edcd77563157a
🔍 Inspect the deploy log: https://app.netlify.com/sites/distracted-hoover-7b89cc/deploys/6219eda777e2f50007011f52


error calling AvatarLink: runtime error: invalid memory address or nil pointer dereference

Description
homepage render 500 after upgraded to 1.18.1
2023/01/18 20:48:53 ...s/context/context.go:220:HTML() [D] [63c85b34] Template: user/dashboard/dashboard
2023/01/18 20:48:53 ...user/notification.go:46:func1() [I] [63c85b34] [SQL] SELECT count(*) FROM `notification` WHERE (user_id = ?) AND (status = ?) [1 1] - 1.62181ms
2023/01/18 20:48:53 ...ls/system/setting.go:122:GetSettings() [I] [63c85b34] [SQL] SELECT `id`, `setting_key`, `setting_value`, `version`, `created`, `updated` FROM `system_setting` WHERE setting_key IN (?) [picture.disable_gravatar] - 1.402161ms
2023/01/18 20:48:53 ...bce556200f/engine.go:1244:Get() [I] [63c85b34] [SQL] SELECT `id`, `uid`, `email`, `lower_email`, `is_activated`, `is_primary` FROM `email_address` WHERE `lower_email`=? LIMIT 1<EMAIL_ADDRESS>- 1.397ms
2023/01/18 20:48:53 ...ls/system/setting.go:122:GetSettings() [I] [63c85b34] [SQL] SELECT `id`, `setting_key`, `setting_value`, `version`, `created`, `updated` FROM `system_setting` WHERE setting_key IN (?) [picture.enable_federated_avatar] - 1.352367ms
2023/01/18 20:48:53 ...s/context/context.go:233:HTML() [E] [63c85b34] Render failed: template: user/dashboard/feeds:91:29: executing "user/dashboard/feeds" at <$push.AvatarLink>: error calling AvatarLink: runtime error: invalid memory address or nil pointer dereference
2023/01/18 20:48:53 ...s/context/context.go:220:HTML() [D] [63c85b34] Template: status/500

settings
[picture]
DISABLE_GRAVATAR   = true
AVATAR_UPLOAD_PATH = /data/gitea/avatars
[server]
OFFLINE_MODE       = true
DISABLE_ROUTER_LOG = true

Gitea Version
1.18.1
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots

Git Version
2.36.3
Operating System
docker
How are you running Gitea?
we use official docker image gitea/gitea
Database
MySQL

I'm using postgresql on arm64 ubuntu 22.04, everything's at latest version. Can reproduce the issue. This only occurs when the user is logged in, so users that are not logged in can still see the homepage just fine.

Nope, disabling Gravatar does not fix the problem. Set DISABLE_GRAVATAR = true, no avail.

Since this is 1.18.x you will need to change it in the admin config page.

Got it. Disabling Gravatar from the admin page worked and it didn't even need a restart to get fixed. Thanks!
However now I can't see external contributors' profile pics. This is just a temporary workaround.

This has been fixed in coming v1.18.2.

Fixed by #22479


Violation should have start and end

Rather than:
pub enum ViolationPosition {
    None,
    Line(usize),
    LineCol((usize, usize)),
}

which just points to a specific place in the source, having a start and end allows pointing to exactly the offending piece of code and underlining the relevant part(s)
I'm not sure what None is supposed to represent here, but it could be encoded as (0, 0). Similarly, Line could be the start & end of the whole line.
It would also be most useful if this was in terms of offset into the file, with some conversion utility between offset and line/column numbers. (This is at least partly what all that extra structure is for in ruff)

Great idea, I think this would be necessary first step towards Issue https://github.com/PlasmaFAIR/fortitude/issues/14.
For AST rules, we could make use of tree_sitter::Range to get the byte-range and row/col-range of any offending nodes (node.range() to build it, or node.byte_range() if we only need the bytes). I think that should be enough to use with annotate_snippets to automate the diagnostic generation.
As for what the current enum is doing:
None is used only by rules that operate on the file path, but since line numbers/columns are 1-indexed you're right that a position of 0 could be interpreted the same way.
I was using Line(usize) for regex-based rules, as I wasn't sure how to get the column number of anything that matched. If we can get that, one option to gather info for annotate_snippets would be to simply accumulate the offset into the file as we parse each line.

For AST rules, we could make use of tree_sitter::Range to get the byte-range and row/col-range of any offending nodes (node.range() to build it, or node.byte_range() if we only need the bytes). I think that should be enough to use with annotate_snippets to automate the diagnostic generation.

Not quite as simple as that, as the tree-sitter range will be the offset into the file, and we'll need the offset into the context snippet -- so subtracting the total length upto the previous two lines or something.

None is used only by rules that operate on the file path, but since line numbers/columns are 1-indexed you're right that a position of 0 could be interpreted the same way.

Ah, I see there's a rule for checking the extension -- maybe None should be kept for that case then (or we could do something fancy and display the filename and put the warning caret at the file extension).

I was using Line(usize) for regex-based rules, as I wasn't sure how to get the column number of anything that matched.

https://docs.rs/regex/latest/regex/struct.Match.html#method.range gives the range of the match.

If we can get that, one option to gather info for annotate_snippets would be to simply accumulate the offset into the file as we parse each line.

Probably better to keep it separate and precompute it

ASTRules already have the information for start and end, both in terms of offsets and line & column. TextRules can pretty easily have start end line & column, but offsets are a little harder, but maybe not immediately needed.
However, the difficulty in just switching to use:
pub enum ViolationPosition {
    None,
    Range(tree_sitter::Range),
}

is that all of the tests need updating, and we also need the start/end offsets of every single violation.
In order to not make that a right pain, I suggest the first thing we need to do is to get the equivalent of ruff's SourceCode that stores the text and a LineIndex that maps lines to offsets. That would make it much easier to update (and expand) the tests. It would also give us a mechanism to convert regex matches to Ranges.
We'd mostly likely want to convert TextSize to plain usize, and maybe TextRange to tree_sitter::Range.


Integrate an existing json schema validator library?

Hello @hauner would you see any value in integrating an existing json schema validator into your project, rather than maintaining your own? If you can see any value in that, I'm happy to help, as the maintainer of https://github.com/erosb/json-sKema/ .

When I started with this I didn't find any json schema validator that I liked. 😕
Most of the java validators had a dependency on a specific json/yaml parser (which I would like to avoid) or didn't support 2020-12.
Having a pluggable validator would be interesting 🙂
I never thought about it. Strange.
Hard to tell how much work this would be. The OpenAPI parser uses a couple of classes from the validator..

Most of the java validators had a dependency on a specific json/yaml parser (which I would like to avoid) or didn't support 2020-12.

Well, yes, erosb/json-sKema fits that bill (has its own json parser, rather than using external dependency, and it supports draft-2020-12).

I think I just looked at the implementations in java 😉
we could work at that. My goal would be to have the possibility to switch the json schema validator, i.e. to avoid & remove the dependency on a specific validator.
This would require a json schema validator abstraction the OpenAPI parser could use.
That is probably an interesting task... no idea how well this would work 🤔


BUG: Scaling of diff_step in scipy.optimize.least_squares uses 'x' instead of 'x_scale'

Describe your issue.
In the API reference for the diff_step argument in scipy.optimize.least_squares, it mentions that

The actual step is computed as x * diff_step.

and refers to William H. Press et. al., “Numerical Recipes. The Art of Scientific Computing. 3rd edition”, Sec. 5.7.
But the text in Numerical Recipes clearly mentions that the diff_step should be scaled according to a characteristic scale x_c, which scale can be assumed to be equal to x in the absence of any other information.
In our case, if we provide an argument x_scale to the function call, then the actual step  should be computed as:
x_scale * diff_step.
As noted in the reference, this is especially important near x=0:

In the absence of any other information, one often assumes x_c = x (except near x=0, where some other estimate of the typical x scale should be used).

otherwise we lose any control over the effective differentiation step in that region of the search space.
The reproducing code shows that the effective step is in fact not x_scale*diff_step as suggested in the reference.
Reproducing Code Example
def test_effective_diff_step():
    import scipy.optimize as opt

    def absolute_value_fct(x):
        print('Objective function tested at x=',x)
        return abs(x)

    params = {
        'fun': absolute_value_fct,
        'x0': [0],
        'diff_step': [0.1],
        'x_scale': [1.0],
    }
    opt.least_squares(**params)

test_effective_diff_step()

Error message
Objective function tested at x= [0.]
Objective function tested at x= [1.49011612e-08]

SciPy/NumPy/Python version and system information
1.10.1 1.24.2 sys.version_info(major=3, minor=8, micro=0, releaselevel='final', serial=0)
C:\Python\Python-3.8\lib\site-packages\scipy\__config__.py:140: UserWarning: Install `pyyaml` for better output
  warnings.warn("Install `pyyaml` for better output", stacklevel=1)
{
  "Compilers": {
    "c": {
      "name": "gcc",
      "linker": "ld.bfd",
      "version": "10.3.0",
      "commands": "cc"
    },
    "cython": {
      "name": "cython",
      "linker": "cython",
      "version": "0.29.33",
      "commands": "cython"
    },
    "c++": {
      "name": "gcc",
      "linker": "ld.bfd",
      "version": "10.3.0",
      "commands": "c++"
    },
    "fortran": {
      "name": "gcc",
      "linker": "ld.bfd",
      "version": "10.3.0",
      "commands": "gfortran"
    },
    "pythran": {
      "version": "0.12.1",
      "include directory": "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\pip-build-env-yajwq4a4\\overlay\\Lib\\site-packages\\pythran"
    }
  },
  "Machine Information": {
    "host": {
      "cpu": "x86_64",
      "family": "x86_64",
      "endian": "little",
      "system": "windows"
    },
    "build": {
      "cpu": "x86_64",
      "family": "x86_64",
      "endian": "little",
      "system": "windows"
    },
    "cross-compiled": false
  },
  "Build Dependencies": {
    "blas": {
      "name": "openblas",
      "found": true,
      "version": "0.3.18",
      "detection method": "pkgconfig",
      "include directory": "c:/opt/openblas/if_32/64/include",
      "lib directory": "c:/opt/openblas/if_32/64/lib",
      "openblas configuration": "USE_64BITINT= DYNAMIC_ARCH=1 DYNAMIC_OLDER= NO_CBLAS= NO_LAPACK= NO_LAPACKE= NO_AFFINITY=1 USE_OPENMP= PRESCOTT MAX_THREADS=4",
      "pc file directory": "c:/opt/openblas/if_32/64/lib/pkgconfig"
    },
    "lapack": {
      "name": "openblas",
      "found": true,
      "version": "0.3.18",
      "detection method": "pkgconfig",
      "include directory": "c:/opt/openblas/if_32/64/include",
      "lib directory": "c:/opt/openblas/if_32/64/lib",
      "openblas configuration": "USE_64BITINT= DYNAMIC_ARCH=1 DYNAMIC_OLDER= NO_CBLAS= NO_LAPACK= NO_LAPACKE= NO_AFFINITY=1 USE_OPENMP= PRESCOTT MAX_THREADS=4",
      "pc file directory": "c:/opt/openblas/if_32/64/lib/pkgconfig"
    }
  },
  "Python Information": {
    "path": "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-5o1gjg1j\\cp38-win_amd64\\build\\venv\\Scripts\\python.exe",
    "version": "3.8"
  }
}

Hi @squirion, thank you for reporting. I would just like to point out that although we cite "Numerical Recipes", we do not strictly implement what is described. This is for multiple reasons, including licensing/copyrighting.

I agree 👍 I am not familiar with that part though so will leave others chime in 😄

I dug a little deeper in the code and found that the effective step is computed using the function _compute_absolute_step(...) in scipy\optimize\_numdiff.py:
def _compute_absolute_step(rel_step, x0, f0, method):
    # this is used instead of np.sign(x0) because we need
    # sign_x0 to be 1 when x0 == 0.
    sign_x0 = (x0 >= 0).astype(float) * 2 - 1

    rstep = _eps_for_method(x0.dtype, f0.dtype, method)

    if rel_step is None:
        abs_step = rstep * sign_x0 * np.maximum(1.0, np.abs(x0))
    else:
        # User has requested specific relative steps.
        # Don't multiply by max(1, abs(x0) because if x0 < 1 then their
        # requested step is not used.
        abs_step = rel_step * sign_x0 * np.abs(x0)

        # however we don't want an abs_step of 0, which can happen if
        # rel_step is 0, or x0 is 0. Instead, substitute a realistic step
        dx = ((x0 + abs_step) - x0)
        abs_step = np.where(dx == 0,
                            rstep * sign_x0 * np.maximum(1.0, np.abs(x0)),
                            abs_step)

    return abs_step

With Git Blame, we can see that a little while ago (~4yr), that function was simply:
def _compute_absolute_step(rel_step, x0, f0, method):
    if rel_step is None:
        rel_step = _eps_for_method(x0.dtype, f0.dtype,method)
    sign_x0 = (x0 >= 0).astype(float) * 2 - 1
    return rel_step * sign_x0 * np.maximum(1.0, np.abs(x0))

So, in that earlier revision of the code, when we had x<1.0, we simply multiplied the step by 1.0, which would avoid the obvious issues around x=0.
Thus, I would be tempted to suggest replacing the line 181 from abs_step = rel_step * sign_x0 * np.abs(x0) in the current code by abs_step = rel_step * sign_x0 * np.maximum(1.0, np.abs(x0))... if it weren't for the fact that the comment above specifically says

Don't multiply by max(1, abs(x0) because if x0 < 1 then their requested step is not used.

...although that warning doesn't really make sense to me, because the best way to consider the requested step is to multiply by max(1, abs(x0)) 🤔

If rel_step is not specified then _compute_absolute_step tries to figure out a sensible relative step, and takes into account any entries in x0 that are close to zero, by virtue of np.maximum(1.0, np.abs(x0)).
However, if rel_step is specified then _compute_absolute_step respects the users relative step with respect to x. i.e. when the docstring for least_squares.diff_step says:

The actual step is computed as x * diff_step

that is exactly what happens in the numerical differentiation code.  You can change the size of the relative step for each of the entries in x by providing an array for diff_step. There is also some safety provided for when entries in x are zero.
I don't have a copy of Numerical Recipes so can't comment on what the text says in the reference.
Note that if we calculated step size as x_scale * diff_step then the steps would become absolute and not relative, which is not desired.
There's more background in https://github.com/scipy/scipy/issues/11258 as to why we do this.

@andyfaff you are right that using x_scale * diff_step would make it an absolute step and not a relative one. At first I didn't grasp the importance of the step being relative (I could rephrase my original post if it helps).
Also, you are right when you say that the documentation explains correctly what the code actually does (which is x * diff_step)
I read the thread in #11258 and it helps me better understand the big picture, so let me try to reformulate what I see as the remaining problem given this context: while the current algorithm does scale the step with the value of x (which from my current understanding is desired at least for numerical reasons), and does provide safety when x=0, it does not account for what I would call "the resolution of the cost function" for lack of a better term.
When working with noisy data, steps smaller than a certain delta will provide meaningless gradients because at that scale the topology of the cost function is dominated by the noise more than the signal. Or, in my case, I have cost functions that have tons and tons of tiny plateaux. If you use a step of eps in those functions, the gradients are null, but if I can make sure the step is at least 0.000001 for example, then the function will optimize nicely.
So I think what's really missing there is a way to specify an absolute minimum for the step size.
Using np.maximum(1.0, np.abs(x0)) has that effect for me, but I understand it has adverse effects as well.

Regarding Numerical Recipes, without going into the details, it mentions that the step should be scaled by the "characteristic scale of x", which they dub x_c.
They say:

[...] one often assumes x_c = x (except near x=0, where some other estimate of the typical x scale should be used).

which I understand to mean that around x=0, special care must be taken to ensure that the step still allows a valid estimation of the gradient.

Also, in my specific case, another solution would be to be able to pass an absolute diff_step to the function least_squares, but that does not seem to be possible at the moment.
Thanks for the help!
It's great to see such a reactive community!

Note: the reference to Numerical Recipes is describing numerical differentiation, not topics related to least squares.
I think the current diff_step behaviour is better suited to differentiating w.r.t small valued parameters whose partial derivatives are less noisy/have no plateaus. This is because _compute_absolute_step allows small valued parameters (x < 1) to retain a relative step. If it were changed back to multiplying by np.maximum(1, np.abx(x0)) then small-valued parameters are given an absolute step. This isn't suited for parameters close to 1.
--> existing behaviour is consistent with NR because we're scaling steps w.r.t the characteristic scale of x. This is True for parameters greater than, and less than, one. For parameters less than 1 that scaling is done by choosing appropriate diff_step.
So what to do with parameters that have plateaus in $\frac{\delta f}{\delta x_i}$? One way might be to create a minimum abs_step keyword parameter. However, I don't understand why knowledge of the problem can't be used in this particular issue.  Let's say that you know that the scale of a parameter might be on the order of 1e-4, but you know steps have to be greater than 2e-6 because of plateaus in $\frac{\delta f}{\delta x_i}$. For that parameter an appropriate diff_step might be 0.05 (0.1?). This would make the step 5e-6. This would give you a bit of range that the parameter value could take.
Perhaps a better approach is to transform the parameter itself. If there's a parameter that is known to be small in the objective function why not change the setup to vary the logarithm of the parameter?
e.g. instead of the parameter value being 1e-4 it's now transformed to -4. This does mean that the parameter is forced to be positive, but now it can approach as close to zero as you want.

An example might help convey the issue:
Imagine we want to find the x,y coordinates of a white circle on a black background in a pixelated image by comparing the image to a (pixelated) render made from a perfect circle.
Consider that we know the distribution of the possible position for the circle, so that we call the mean position (x0,x1) = (0.0,0.0).
Now, to find that position, you render the circle at various positions, ranging from (-10.0,-10.0) to (10.0,10.0) for example, using a cost function that compares the render to the reference image. We navigate that search space using the least_squares algorithm to find the position that matches the reference image the best.
There are two important aspects in that (much simplified) version of my problem:

We always start at x=0 as it is our best guess a priori for the position of the circle. We could offset that arbitrairily and say the we use (0.1,0.1) as the center of the distribution (and apply the corrections here and there to make that work), but that seems like a hack to avoid an issue more than it is a solution to the issue.
We have multiple plateaux in our cost function linked to the pixel size and, if we use anti-aliasing, the oversampling factor in our renderer. If two positions of the circle differ by less than the size of those pixels / oversamples, their renders will be identical, and the cost function will return the same cost.

And the issue there is really visible when you consider that at (x0,x1)=(0.0,0.0), the effective step will always be the machine precision, no matter what value I give for diff_step.

Personally, I feel like being able to provide a minimum absolute step would be the sound solution here, as it helps us represent correctly one more information that we have about the problem: the 'resolution' of the cost function.

For that particular problem I think there's better way of solving it, assuming that the circle is visible all the way around its circumference.
Go through the image and make a list of all the white pixel coordinates. Calculate the mean for all x values, and all y-values. That will be the centre of the circle.
Alternatively it'd probably be easier to use something like cv2.HoughCircles (https://theailearner.com/tag/cv2-houghcircles/).

Yes, I know, I was just trying to find a toy problem that exhibited the characteristics of the much more complexe problem I'm trying to solve, which has plateaux and for which we search at or around x=0

Adding a minimum absolute step to least_squares would have the following things to consider:

min_abs_step would indicate that there should be an abs_step as well.
what if you only want min_abs_step to apply to one parameter and not others?
which would take preference, abs_step or diff_step?
what happens if you want diff_step for some parameters and abs_step for others?
does min_abs_step just clip the relative step?
...

I can see the point of what you want, but it's also increasing complexity by a lot as well.
Another alternative if you want to pursue using least squares would be to specify your own jac callable. You can then specify whatever finite differencing scheme you want:
from scipy.optimize import approx_fprime

class my_jac:
    def __init__(self, fun, epsilon=np.sqrt(np.finfo(float).eps)):
        self.eps = epsilson
        self.fun = fun

    def __call__(self, xk):
        # you could create whatever absolute step (epsilon) you desire at this point
        return approx_fprime(xk, self.fun, epsilon=self.eps)

min_abs_step would indicate that there should be an abs_step as well.

Maybe it should be called min_diff_step, but no, it should not imply that we need to define an abs_step, it's really meant to be a minimum value that we allow  _compute_absolute_step to return for that parameter

what if you only want min_abs_step to apply to one parameter and not others?

To specify it per parameter, pass a vector, similar to how bounds are handled. A value of 0 would default to the machine precision.

which would take preference, abs_step or diff_step?
what happens if you want diff_step for some parameters and abs_step for others?

As mentionned above, there would be no abs_step, we only provide the lowest value that  _compute_absolute_step can return for that parameter

does min_abs_step just clip the relative step?

Yes it would.
I think a lot of the complexity is removed when you consider my request is not about mixing relative and absolute values, but I agree that it is not a trivial change either. Still, I feel like it is something fundamental that is missing from the current implementation considering most real world problems can have a fair amount of noise and will suffer from similar limitations around x=0. In my case, I'm mostly limited by plateaux, which is a more specific issue, I can agree on that though.
So, yeah, that's pretty much the best case I can make for why I think allowing to specify a minimum step is the way to go, but if the community doesn't see the value there I can't force anyone either, and yes, specifying a jac would be a good workaround.

Slightly offtopic but related to your problems: have you considered using a derivative-free optimizer? For me, optimize(method='powell') gave for example good results for noisy problems.

Thanks for the tip @dschmitz89 !
I am currently translating / refactoring Matlab code into Python, so I prefer to stick closer to the original code at the moment, but I'll definitely check it out eventually.

An alternative is to use leastsq, where specification of a epsfcn would allow you to have full control over the step size in the finite differencing.

Thanks @andyfaff , interesting option, but I see that this does not support bounds on the parameters, so that won't work in my case.


feat(backend): add Sops Backend

Description
Add support for secrets encrypted with SOPS and stored in a local file.
The actual backend is currently called LocalSecretManagerBackend since it has no dependancy on sops, i.e. the decrypt function is passed as a parameter when creating the backend.
This first iteration contains the bare minimum for a working version, i.e. only json and yaml (both parsed as yaml) and only simple keys.
Fixes: <! -- link to issue -->
Checklist
Please make sure that your PR fulfills the following requirements:

[x] Reviewed the guidelines for contributing to this repository
[x] The commit message follows the Conventional Commits Guidelines.
[x] Tests for the changes have been updated
[x] Docs have been added / updated
[ ] Optional. My organization is added to USERS.md.

Type of Change

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

Other information

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

How does sops know how to decrypt the file? Presumably it's using a decryption key set somewhere? Assuming that's the case, we should allow this key to be configured as an env var in the repo-server container, via config file, or from a key in a Kubernetes secret like we do for all the backend specific config keys like VAULT_TOKEN, etc: https://github.com/argoproj-labs/argocd-vault-plugin/blob/main/pkg/config/config.go#L203

For key material sops supports AWS KMS, GCP KMS, Azure, Vault, GPG and AGE.
A encrypted file contains metadata on what keys it was encrypted with.
When using GPG or AGE keys there is a standard lookup path which can be changed using an environment variable.
When using managed services AWS, GCP, etc. the credentials can be handled similar to how credentials are handled for current backends.
More detail can be found here: https://github.com/mozilla/sops
My current usage of SOPS is using AGE keys which I volume mount from a kubernetes secret to the standard sops location in the ArgoCD container.
I will need to look a bit more into if the credentials for the other services needs some extra handling or can piggy back on current usage.

This first iteration contains the bare minimum for a working version ... and only simple keys.

Can you elaborate on what this means? What kinds of keys can a user expect to work, and which ones wouldn't? This would be good information for the docs section

To elaborate simple means only the first level keys in a document
With the following yaml file:
hello: Welcome to SOPS! Edit this file as you please! parent:     child: data
then path would be the location of the file and secret-key could be either hello or parent.
The reason I added this comment was that I originally thought that then there would not be a way to get the value of parent.child but after reading the documentation better I found that the product has more power then I realised with the support of jsonpath.
I plan to update the docs before this is completed but I wanted to get some feedback on the change itself first.

RE: configuration for sops decrypt key location, I see this https://github.com/mozilla/sops#22encrypting-using-age:

When decrypting a file with the corresponding identity, sops will look for a text file name keys.txt located in a sops subdirectory of your user configuration directory. On Linux, this would be $XDG_CONFIG_HOME/sops/keys.txt. On macOS, this would be $HOME/Library/Application Support/sops/keys.txt. On Windows, this would be %AppData%\sops\keys.txt. You can specify the location of this file manually by setting the environment variable SOPS_AGE_KEY_FILE.

So what I'd like to see added to this PR is code to take any AVP_SOPS_* keys (read from env, config file, or secret) and set them in the environment. That way users can expect setting the above env variable through any of the AVP supported configs will be passed through to the sops tool. You can do this by just adding sops to this slice here: https://github.com/argoproj-labs/argocd-vault-plugin/blob/main/pkg/config/config.go#L41.

So what I'd like to see added to this PR is code to take any AVP_SOPS_* keys (read from env, config file, or secret) and set them in the environment. That way users can expect setting the above env variable through any of the AVP supported configs will be passed through to the sops tool. You can do this by just adding sops to this slice here: https://github.com/argoproj-labs/argocd-vault-plugin/blob/main/pkg/config/config.go#L41.

Thanks for the info, I will look into making that change

Aside from my comment about exposing all sops config options in AVP, this looks good to me (code, tests, docs). One small nit, other backend files are in all lowercase - can we change backends/localSecretManager.go to backends/localsecretmanager.go?

Done

You can do this by just adding sops to this slice

Nice feature, sops has been added to the slice

Tested locally:
sops-secret.yaml:
secret: passw0rd

age keypair:
AGE-SECRET-KEY-???
age1404kpjnjw4hf2zma5hljqakkcmkmgu0yewn2khcgzdhj5wln5v6qwz2rkt

encrypted sops-secret.yaml to yield sops-secret-enc.yaml:
secret: ENC[AES256_GCM,data:5WMJgXG8LQI=,iv:Itk8noU579Vqor68cVSuiL0KT4c+GOTHIRCvMcAk10o=,tag:K2RmQvoyevIhX/u6c2bBkQ==,type:str]
sops:
    kms: []
    gcp_kms: []
    azure_kv: []
    hc_vault: []
    age:
        - recipient: age1404kpjnjw4hf2zma5hljqakkcmkmgu0yewn2khcgzdhj5wln5v6qwz2rkt
          enc: |
            -----BEGIN AGE ENCRYPTED FILE-----
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjNDJWdTkwRGEzMDhMaTJq
            T29BRTB4bE5sNmR5TlBrQ1JWZ3BnZFoxdXpNClFwbDJHRENVcWV4OHYvRkpzc25r
            aG8xUTNvN0ZiMmJ2V0VVYTY0aG1jVDAKLS0tIE5zbmxIWElhQ1pGbS83dUJ6eXpL
            V3BXQWY4c2VETTM3V2hmaUhLUVFxRzAKufN2bEdwlnx2jHreBwrQf5z47TlrLz/9
            h9SoaxuYRNcE7uEv9ejMVg5csHAwo3GPdno/6UXvTioVH1P0VMWzZQ==
            -----END AGE ENCRYPTED FILE-----
    lastmodified: "2022-01-18T16:18:14Z"
    mac: ENC[AES256_GCM,data:bRtow8CvkVEFDkFSXsJitDZqUkADIa6TiSKlRtVZmxvoBS6hkrYHRkRKy5/ldflymg2trUA02mUTslzqyB++LHu7TjVIDQCUXd4V88E1COatbcMjXSMfIYwmHlrmvuJTa2DN2j6svBL4sVhln1DgCCl/pfUOv6BfL/ze0e4kiGw=,iv:Wr+W+R98D7dcGHC2/gER8cFoCcDThItO6vaScetiAtU=,tag:zxpsKFbEhhaw8yQaA/3jrQ==,type:str]
    pgp: []
    unencrypted_suffix: _unencrypted
    version: 3.7.1

Created k8s secret manifest:
apiVersion: v1
kind: Secret
metadata:
  annotations:
    avp.kubernetes.io/path: "fixtures/input/local/sops-secret-enc.yaml"
    avp.kubernetes.io/remove-missing: "true"
    # avp.kubernetes.io/secret-version: "1"
    # avp.kubernetes.io/kv-version: "1"
  name: example-secret
  namespace: default
type: Opaque
data:
  secret: <secret>

Generate manifest:
Joshuas-MacBook-Pro-2:argocd-vault-plugin jkayani$ SOPS_AGE_KEY_FILE=$PWD/fixtures/input/local/sops-age-key-file AVP_TYPE=sops ./argocd-vault-plugin generate fixtures/input/local/sops.yaml
apiVersion: v1
data:
  secret: passw0rd
kind: Secret
metadata:
  annotations:
    avp.kubernetes.io/path: fixtures/input/local/sops-secret-enc.yaml
    avp.kubernetes.io/remove-missing: "true"
  name: example-secret
  namespace: default
type: Opaque
---

@Icerius Could you resolve the conflicts and then we will finish our review. Thanks!

@Icerius Could you resolve the conflicts and then we will finish our review. Thanks!

Done


Updates to integrate FLORIS v3

This PR updates the custom wind module to integrate FLORIS v3. This vectorizes the wind series calculation and greatly speeds up the use of FLORIS for the wind plant modeling.
This implementation currently uses the farm defined in floris_input.yaml. A subsequent PR will include methods that allow the user to modify the wind plant being simulated.

Can you add floris to the requirements? the CI is failing since it cannot find floris


NIFI-3528 Added support for keytab/principal to Kafka 0.10 processors

Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[X] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[X] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[X] Has your PR been rebased against the latest commit within the target branch (typically master)?

[X] Is your initial contribution a single, squashed commit?

For code changes:

[X] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[X] Have you written or updated unit tests to verify your changes?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
==================================================
At the moment, it is not possible to have multi-tenancy when using Kafka processors: a single JAAS configuration file must be set in JVM variables to allow communication with Kerberos enabled Kafka cluster. Since the release of Kafka client 0.10.2, this has been improved and it gives the possibility to define a Login Module at processor level.
Here is a summary of the tests performed: on a standalone NiFi instance, only the krb5.conf file path has been set in nifi.properties. And the following workflow has been used:

Each Publish/Consume is using its own pair of user keytab/principal and consume/publish from/to a queue where correct ACLs have been set for the corresponding users. By looking at the audit logs, we can confirm that the authentication on each queue is correctly performed and that we have the expected behavior.
At the moment, I used the following JAAS input as the standard:
    KafkaClient {
       com.sun.security.auth.module.Krb5LoginModule required
       useTicketCache=false
       renewTicket=true
       serviceName="kafka"
       useKeyTab=true
       keyTab="/path/to/keytab"
<EMAIL_ADDRESS>    };

and I only exposed the keytab and principal as new properties. The other properties are not exposed but that's something we could add if necessary/useful.

+1 Verified this is working correctly, much nicer than configured the JAAS file in bootstrap.conf, will merge to master!


Made 3D gizmos alpha not use fixed values.

Currently, the 3D gizmos use alpha values that are fixed.
This PR was opened because of the following comment:
https://github.com/godotengine/godot/pull/55052/files/39987d2e3ce5d780ea0b058de1683ddeab061dc8#r752426916
That means, even if a user turns the alpha of a specific Gizmos color to a very low value or even zero, the gizmo will still be visible when being selected.
I personally find the gizmo "solid" colors very obstructing, especially when doing visual work like setting up particles.
Not being able do disable or at least lower the alpha is very annoying.
In this PR, the values take the colors alpha from the Editor Settings into consideration and also has a threshold so it will be completely invisible if set below a certain value.

I think exposing alpha for gizmo colors is a good idea, but I'm not sure why we need the MAX((gizmo_color.a - 0.2) * 0.02, 0.0) remapping step.
I would just take whatever alpha was defined by the user, if they want the gizmo to be transparent they can just set it to 0.
If it's a matter of getting more precision on the lower range, maybe a pow mapping would be enough, but clamping the values to a maximum of 0.02 seems a bit too much.

Is this abandoned?


Site is down

Hello,
The site has been down for a couple of weeks now it looks like. 502 Bad Gateway returned on any lookup.
Is it simply maintenance or is there an issue?

Hi,
@g0rbe: any feedback would be appreciated.
Regards.


error downloading from qr code

"Failed to install from URL.
https://api.titledb.com/v0/proxy/000400000F12EE00
Result code: 0xD8A0A3C
Level: Permanent (27)
Summary: Invalid state (5)
Module: HTTP (40)
Desc: Failed to verify TLS certificate (60)
same error while loading TitleDB

TitleDB is working fine for me. Likely a problem with your connection.


SmartEVSE MQTT does not reconnect after network failure

Release v3.5.0-RC1
Hi,
Doing some network test I realized  that MQTT connection from SmartEVSE to Mosquitto broker is not restarted if a network comms fail happens.
When I start mosquitto broker, everything runs fine. Each device connects: SmartEVSEs, Axpert PV Inverter, HA, Tasmota devices, etc.
2024-03-25 09:28:48: New connection from <IP_ADDRESS>:64412 on port 1883.
2024-03-25 09:28:48: New client connected from <IP_ADDRESS>:64412 as SmartEVSE-Tesla (p2, c1, k15).
2024-03-25 09:28:48: Will message specified (7 bytes) (r1, q0).
2024-03-25 09:28:48: 	SmartEVSE-Tesla/connected
2024-03-25 09:28:48: Sending CONNACK to SmartEVSE-Tesla (0, 0)
...
2024-03-25 09:28:53: New connection from <IP_ADDRESS>:60094 on port 1883.
2024-03-25 09:28:53: New client connected from <IP_ADDRESS>:60094 as SmartEVSE-Mercedes (p2, c1, k15).
2024-03-25 09:28:53: Will message specified (7 bytes) (r1, q0).
2024-03-25 09:28:53: 	SmartEVSE-Mercedes/connected
2024-03-25 09:28:53: Sending CONNACK to SmartEVSE-Mercedes (0, 0)
...
2024-03-25 09:29:00: New connection from <IP_ADDRESS>:57588 on port 1883.
2024-03-25 09:29:00: New client connected from <IP_ADDRESS>:57588 as Axpert-0DD700 (p2, c1, k15).
2024-03-25 09:29:00: Will message specified (5 bytes) (r1, q0).
2024-03-25 09:29:00: 	Axpert/Alive
2024-03-25 09:29:00: Sending CONNACK to Axpert-0DD700 (0, 0)
...
2024-03-25 09:29:15: New connection from <IP_ADDRESS>:39804 on port 1883.
2024-03-25 09:29:15: New client connected from <IP_ADDRESS>:39804 as mqtt_home_assistant (p5, c0, k15).
2024-03-25 09:29:15: Will message specified (7 bytes) (r0, q0).
2024-03-25 09:29:15: 	homeassistant/status
2024-03-25 09:29:15: Sending CONNACK to mqtt_home_assistant (0, 0)
...
2024-03-25 09:29:15: New connection from <IP_ADDRESS>:57846 on port 1883.
2024-03-25 09:29:15: New client connected from <IP_ADDRESS>:57846 as DVES_A9C3D4 (p2, c1, k30, u'DVES_USER').
2024-03-25 09:29:15: Will message specified (7 bytes) (r1, q1).
2024-03-25 09:29:15: 	tele/tasmota_A9C3D4/LWT
2024-03-25 09:29:15: Sending CONNACK to DVES_A9C3D4 (0, 0)

After some minutes, I power off WiFi AP so all devices except HA (wich is network wired) are disconnected
2024-03-25 09:33:40: Client SmartEVSE-Mercedes has exceeded timeout, disconnecting.
2024-03-25 09:33:40: Sending PUBLISH to mqtt_home_assistant (d0, q0, r0, m0, 'SmartEVSE-Mercedes/connected', ... (7 bytes))
...
2024-03-25 09:33:46: Client SmartEVSE-Tesla has exceeded timeout, disconnecting.
2024-03-25 09:33:46: Sending PUBLISH to mqtt_home_assistant (d0, q0, r0, m0, 'SmartEVSE-Tesla/connected', ... (7 bytes))
...
2024-03-25 09:33:46: Client Axpert-0DD700 has exceeded timeout, disconnecting.
2024-03-25 09:33:46: Sending PUBLISH to mqtt_home_assistant (d0, q0, r0, m0, 'Axpert/Alive', ... (5 bytes))
...
2024-03-25 09:34:04: Client DVES_A9C3D4 has exceeded timeout, disconnecting.
2024-03-25 09:34:04: Sending PUBLISH to mqtt_home_assistant (d0, q0, r0, m0, 'tele/tasmota_A9C3D4/LWT', ... (7 bytes))

Then I swith on AP and rest of devices reconnect
2024-03-25 09:38:29: New connection from <IP_ADDRESS>:56767 on port 1883.
2024-03-25 09:38:29: New client connected from <IP_ADDRESS>:56767 as DVES_A9C3D4 (p2, c1, k30, u'DVES_USER').
2024-03-25 09:38:29: Will message specified (7 bytes) (r1, q1).
2024-03-25 09:38:29: 	tele/tasmota_A9C3D4/LWT
...
2024-03-25 09:39:00: New connection from <IP_ADDRESS>:54328 on port 1883.
2024-03-25 09:39:00: New client connected from <IP_ADDRESS>:54328 as Axpert-0DD700 (p2, c1, k15).
2024-03-25 09:39:00: Will message specified (5 bytes) (r1, q0).
2024-03-25 09:39:00: 	Axpert/Alive
2024-03-25 09:39:00: Sending CONNACK to Axpert-0DD700 (0, 0)

But EVSEs don't do it so they remain "unavailable" forever in HA. To make them available again, I must reboot them
Thanks!

I cannot reproduce this, at my site they reconnect both to wifi and HA when available.  Could you test
de779d4d4.zip

If they don't reconnect, are they available to the network (can you ping them), or are they available to the network but not to the MQTT server?

Like a charm.
I've tested five cycles of switching off/on the AP and the change works
Thanks!


2d CameraManager do not unregister RESIZE event when be destroyed

Version

Phaser Version: v3.55.2

Description
https://github.com/photonstorm/phaser/blob/5c8ecbcf999e6f328d21884e877c9e5935d2d350/src/cameras/2d/CameraManager.js
The event is registered at line 163, but will never be unregistered. This will introduce garbage objects if we continuously create and destroy scenes.
sys.game.scale.on(ScaleEvents.RESIZE, this.onResize, this);

Example Test Code
var game = new Phaser.Game({});

game.scene.add("dummy", {}, true);
setInterval(function () {
    game.scene.remove("dummy");
    game.scene.add("dummy", {}, true);
    console.log(game.scale.listenerCount("resize"));
} ,1000);

Thank you for submitting this issue. We have fixed this and the fix has been pushed to the master branch. It will be part of the next release. If you get time to build and test it for yourself we would appreciate that.


Log Based Replication | Listing logs using listObjectVersions

Explain the changes

Listing logs using listObjectVersions, We are doing that in order to use KeyMarker for pagination.

This will not work in all cases, need to reevaluate. closing.


Fix/question mark

clickhouse uses re2 regex library and there is no "?" symbol to match any symbol.

I think better solution is
s = strings.Replace(s, "?", "[^.]", -1)


refactor: an plus b syntax

Description:
Refactor+ features:

Refactor AST of an+b
Parse :nth(2n + 1 of <selector_list>) {}
Parse :not(<selector_list>) {} selectors

BREAKING CHANGE:
Yes
Related issue (if exists):
No

@kdy1 Fixed, forgot to send a test file :smile:


Add to to Pytorch container

Closes #364.

@speedfreakw  this should fix your problem. Can you please try it?

Codecov Report

Merging #365 (051a3d3) into main (dac08f4) will decrease coverage by 5.05%.
The diff coverage is 80.00%.

@@            Coverage Diff             @@
##             main     #365      +/-   ##
==========================================
- Coverage   91.13%   86.08%   -5.06%
==========================================
  Files          58       58
  Lines        3374     3377       +3
  Branches      675      675
==========================================
- Hits         3075     2907     -168
- Misses        157      327     +170
- Partials      142      143       +1

Flag
Coverage Δ

unittests
86.08% <80.00%> (-4.97%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

hummingbird/ml/_container.py
77.43% <80.00%> (-12.73%)
:arrow_down:

...mmingbird/ml/operator_converters/sparkml/linear.py
42.85% <0.00%> (-57.15%)
:arrow_down:

...bird/ml/operator_converters/sparkml/discretizer.py
47.36% <0.00%> (-42.11%)
:arrow_down:

hummingbird/ml/_topology.py
67.68% <0.00%> (-17.50%)
:arrow_down:

hummingbird/ml/convert.py
67.36% <0.00%> (-16.85%)
:arrow_down:

hummingbird/ml/_parse.py
76.11% <0.00%> (-10.20%)
:arrow_down:

...ml/operator_converters/sparkml/vector_assembler.py
90.00% <0.00%> (-10.00%)
:arrow_down:

...rd/ml/operator_converters/sklearn/decomposition.py
81.81% <0.00%> (-6.07%)
:arrow_down:

...l/operator_converters/_pipeline_implementations.py
73.68% <0.00%> (-5.27%)
:arrow_down:

... and 2 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 dac08f4...051a3d3. Read the comment docs.

@speedfreakw this should fix your problem. Can you please try it?

yes this fixes the 'to' Error, but I'am now getting an other error in the next Line
model = model.to('cuda')
prediction = model.predict(X)

'NoneType' object has no attribute 'predict'

This is an easy fix.

@speedfreakw the error should be fixed now.


Popover or Tooltip don't display correctly

Версия 1.28.2 (1.28.2)
Mac OS 10.14 (18A391)

Bug
Подсказка об ошибке в package.json отображается не правильно

The warning is not shown properly. In my opinion, it should fall down, because I can't see the error.

Understood.
So looks like this happens when the warning is on the first line.
I wasn't able to see this:

Can you share your settings?

Okay, now shows fine, I don't know why, it's been showing some time wrong...


Implement Non-destructive layer

I have a somewhat-functional tool for nondestructive terrain editing using stamps, similar to that of the Microverse unity plugin, currently interfacing (buggily) with HTerrain. It generates a heightmap as the process' output. Could there be ways to set regions / update an entire heightmap from GDScript?

Yes. Look at importer.gd which is imports user files into the terrain via gdscript.

you mean via img = Terrain3DStorage.load_image(height_file_name, ResourceLoader.CACHE_MODE_IGNORE, r16_range, r16_size) (line 62)? Also, the brush tool must only update a region, right? I'd like to be able to offer real-time feedback in the editor as the user drags the stamps around. How bad of an idea would it be to import an entire new heightmap as the user drags the stamp around, or would it only be possible if I were to calculate diffs somehow between the old heightmap and the new and only update that region? I know that's the Proper way to do it, but that's difficult.

Look at the online help in godot (Shift+F1) for Terrain3DStorage or look at the functions exposed in _bind_methods here:
https://github.com/outobugi/Terrain3D/blob/d42c79a47db40db9c2dfce2eedf822ec3203b8df/src/terrain_3d_storage.cpp#L1563
load_image will import an image and place it on the terrain. You can import as small as one 1k region (though it currently also expects and overwrites control/color maps as well. We can change that to only import what is provided).
get/set_map_region will allow you to retreive and set a 1k region image at a time. If you're going to do it non-destructively you'll have to retain what was there before. Our sculpt tools work on whatever is in these images. It will be challenging to do it this way.
Also you need to work across region boundaries.
It will probably be easier to incorporate a non-destructive data layer in C++ for stamps and curves by design.

Currently on each edit update, we consolidate all heightmaps into one array to be sent to the shader.
Non-destructive editing could look like this:

A second container for heightmap adjustments. It wouldn't need full coverage. It could be an array of images and their locations.
On each update, these get blit on to the generated heightmap and sent to the shader.
All image editing happens to the original layer as normal.
Any stamp instance could be made permanent.
Curves can be defined that generate a road/riverbed stamp along the path, with an option for width, or single (riverbed) or dual grooves (road)
All stamps can have an feathered edge parameter

Data is sent to the GPU here?

Yes, for the height/control/color maps. Actually sent when we set the material parameter.

Is this feature on the roadmap? is there any date when this would be available in the plugin?

Whenever someone needs it and implements it. We don't need it for Out of the Ashes, so it's not on my personal task list anytime soon. There are far more pressing issues. I can provide guidance.


ETA for GA?

Hi, may you please share ETA\roadmap for when customers can use it in their production?

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

ID: 6de70aec-9ebe-5655-6657-5c171de374b1
Version Independent ID: c9eb35c8-8703-511b-987b-e2a441be2e47
Content: Preview - Create a Windows Server container on an Azure Kubernetes Service (AKS) cluster
Content Source: articles/aks/windows-container-cli.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

@bennya1 apologies but we do not have any ETA that we are able to share at this time. However as we move closer to GA the docs will be updated to reflect that.

@mimckitt and how about now? Are closing in on an ETA?


Migration App

This app facilitates migrating deposits from V3, V4 or V5 to any desired V5 vaults.
It utilizes LiFi's widget to help with some of the routing or bridging whenever feasible.
In an attempt to get rid of build errors with the widget - this PR also upgrades react-query from V4 to its latest version (V5).

Will merge this in now and continue working on another branch, although migration app builds are still failing with the LiFi widget - the react-query upgrade is blocking work elsewhere.


[resoto][chore] Bump resotoclient

Code of Conduct
By submitting this pull request, I agree to follow the code of conduct.

Codecov Report
Patch and project coverage have no change.

Comparison is base (b750ca9) 89.10% compared to head (e849f27) 89.10%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1578   +/-   ##
=======================================
  Coverage   89.10%   89.10%
=======================================
  Files          82       82
  Lines       13022    13022
=======================================
  Hits        11603    11603
  Misses       1419     1419

Flag
Coverage Δ

resotocore
89.10% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fix localization loading + Cleanup

make use of addon scope to implement localization without polluting the global environment
use the proper event for addon initalisation, make the event handler more generic make the yell filter bail out early if the filter option is not set / is false
I tried to comment new concepts liberally, but happy to expand further here.

I appreciate the suggestions, but the branches are real works in progress. I commit to them often to make sure I don't lose work. If the branch ever goes into a pre-release state, I would love the suggestions submitted as issues for me to work through. Localization, while I assume is low in priority, was my next task since I've seen it implemented several ways.
I will be taking all of your changes in this pull request into consideration as I continue.

But you have packaged this branch and put it up on curse.
My PR fixes issues with this file's: https://www.curseforge.com/wow/addons/shut-up-rhonin/files/4550275 code.

Oh well damn. I created a pre-release to test something and Curse snagged it as a full release. I'll have to fix that. Thanks!

That package - aside changes I've made to make better use of the available framework - has a few actual problems.

VARIABLES_LOADED event hasn't been related to addon loading since a few expansions. It now fires when Blizzard CVars and Blizzard related addons load.
ADDON_LOADED with your addon name as first argument is the event that denotes X addon variables loaded.
The way the localization is implemented will
a leak the variable names to the global environment and
b only the last file's linked in .toc contents remain in memory (in this particular case  ShutUpRhoninStrings_ru.lua
Previous entries are overwritten.
Leaking other globals is not an outright logical bug but it make an addon prone to breaking other addons (or getting broken by them, if they clobber each other's variables put in global namespace.

Yeah. It's been over a decade since I wrote addons.  Hence me starting with a very small thing to do. I was mainly trying to figure out the options panel again. You included localization in your previous pull request so I was trying to figure that out too. I don't like localizations in the main file for several reasons and was working to break them out. With your request I noticed I forgot the check for locale altogether.

I have an alpha build up that incorporates your changes with my style. Wouldn't mind a second set of eyes on it.

If it is the code that's up in the yell-filter branch it's still not entirely correct, tbh I don't see what style has to do with it I'm sorry :)
The event handler is still wrong and imho harder to understand than the one in my pull request.
The function signature is [frame], event, ...
[frame] is implicit and is passed by the : colon notation.
event in this addon can be one of ADDON_LOADED or PLAYER_ENTERING_WORLD
the argument list varies by event but always follows the event parameter
When the PLAYER_ENTERING_WORLD event fires, the isLogin argument is actually the one named addonName in your function definition and the isReload argument is the one you have named isLogin and the one you have named isReload (the 3rd after the event parameter) will always be nil.
So this only works incidentally. Look at my code in this pull request, The event and ... argument list are always properly ordered. the argument list is assigned local variable names that make sense.
The localization files are still also only partially correct.
The english/default one is ok.
The other 3 are missing
local _, ShutUpRhonin = ...
local L = ShutUpRhonin.L

under the GetLocale() check and before trying to populate the localization array. L doesn't magically exist, at file scope without getting a reference to it from the ... vararg passed by the wow client.

And this is why I asked for the second set of eyes. :)
I had noticed some odd behavior and I'm pretty sure it was the reload value being nil. I'll get to test that out later.
I looked at DBM's localization and they use a globally scoped table rather than one applied to the addon. That's how I missed that. I've also never taken the time to change locales to verify.


Client fails to parse some json response from back-end

Description
Depending on the document the used JSON parse fails to parse the response as valid json, tried the same with Faraday client and the reponse is parsed fine.
Steps to reproduce
Run a query, that retunrs attached response
response.json
Expected Behavior
Client should parse that response
Actual Behavior
Client fails parsing the response with
```/Users/honza/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/typesense-0.15.0/lib/typesense/api_call.rb:91:in `load': quoted string not terminated (after hits[119].document.content) at line 1, column 161314 [parse.c:241] (Oj::ParseError)

## Metadata

**Typesense Version**: latest

**OS**: macos

closing as this seems to be upstream issue in typesense, the attached json gets parsed by Oj just fine