Deprecated: Non-static method should not be called statically in...

How can I make working for example this route?
['GET', '/article/{id}', ['SuperBlog\Controller\ArticleController', 'show']] ?
It works with FastRoute but in middle ore I get this error:
Deprecated: Non-static method SuperBlog\Controller\ArticleController::show() should not be called statically in.
ArticleController constructor has 3 params and I am using php-di and Relay packages.

That is out of scope of this package, that only detect the route but not execute it.
You can try request-handler middleware that create instances automatically if the route is not static.

I use it, but I am a beginner and I wasn't able to figure it out. At least I know where to look. Thanks

@piticu14 you need to configure PHP-DI to inject itself into RequestHandler middleware, then it should work as expected.

$containerBuilder = new ContainerBuilder;

$containerBuilder->addDefinitions(__DIR__ . '/config.php');
$container = $containerBuilder->build();

$dispatcher = simpleDispatcher(function (RouteCollector $r){
   $routes = include('routes.php');
    foreach ($routes as $route) {
        $r->addRoute($route[0], $route[1], $route[2]);
    }
});

$middlewareQueue[] = new FastRoute($routes);
$middlewareQueue[] = new RequestHandler($container);

$requestHandler = new Relay($middlewareQueue);
$response = $requestHandler->handle(ServerRequestFactory::fromGlobals());
$emitter = new SapiEmitter();
return $emitter->emit($response);

This is my bootstrap, already added $container to the RequestHandler.

Ok, this is because RequestHandler didn't use the containter to resolve an array with two strings like ['SuperBlog\Controller\ArticleController', 'show']. I fixed that, so if you update the dependencies, it should work fine now.

Thanks. It works great now.


Make the first part of the schedule

Create a file with the schedule of this project and put in the comment of this task, and update the Readme file with this information.

This is link of the schedule of project:
Activity Schedule


Add techInsightsServiceRef to node package

Hey, I just made a Pull Request!
Provide a default tech insights client via service ref in the node plugin/ Users can now use the techInsightsServiceRef to get a default tech insights client as follows:
import { techInsightsServiceRef } from '@backstage-community/plugin-tech-insights-node';

export const examplePlugin = createBackendPlugin({
  pluginId: 'example',
  register(env) {
    env.registerInit({
      deps: {
        logger: coreServices.logger,
        httpRouter: coreServices.httpRouter,
        ..., // other dependencies
        techInsights: techInsightsServiceRef,
      },
      async init({
        logger,
        httpRouter,
        techInsights,
      }) {
        httpRouter.use(
          await createRouter({
            logger,
            techInsights,
          }),
        );
      },
    });
  },
});

:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

@Xantier - does this change work for you? I'll work on getting CI 🟢 today.

@Xantier - does this change work for you? I'll work on getting CI 🟢 today.

Yup, this looks good. Should be good to go once CI is green


Speed up testing by turning off optimizer on dev mode

Current dependencies on/for this PR:

main

PR #272   👈

This comment was auto-generated by Graphite.


1.0.17

@patrickxb I think now is a good time for release

sounds good to me

https://github.com/Homebrew/homebrew-core/pull/3740


Deprecated useShareIndexes=false

Currently, the share splitting logic supports super legacy code for splitting and merging shares that don't use indexes. It makes the code more confusing than it has to be, and we have no reason to support this, so we should remove this functionality.

and we have no reason to support this

I thought the conditional logic for using share indexes was originally added to support blocks without share indexes. I assume early blocks on Mamaki don't contain share indexes. Why is it safe to remove backwards compatibility now? Are we guaranteed that future celestia-app versions won't be used for testnets with blocks that contain transactions without share indexes?

It makes the code more confusing than it has to be

Agreed! If it is safe to remove, then I'm on-board

Why is it safe to remove backwards compatibility now?

mamaki's days are numbered! maybe people are running their own networks else where, but since we haven't hit 1.0 I think its fine. speaking of which, we should actually try to get rid of this before 1.0, so we don't have to keep it for any longer than we have to :grimacing:

I guess we don't have to hit 1.0 on the feature freeze, and can spend some time cleaning up apis such as this before actually cut

as I think was made pretty clear by #1108, is that our share tests also need unit tests for splitting shares using indexes. Currently, we rely too much on the prepare/process fuzzer, which does test that, it just relies on randomness to test for edge cases.

IIUC the goal of this issue is to deprecate the useShareIndexes parameter because all block data (in tests and in networks that we care about moving forward) use blocks that contain transactions with share indexes.

Related: https://github.com/celestiaorg/celestia-node/issues/1231

Closing this as it is no longer relevant given https://github.com/celestiaorg/celestia-app/pull/1690


Suggestions does not update when there are no matched characters

VSCode Version: 1.42.1
OS Version: Windows 10

Steps to Reproduce:

Create a new python file in vs code
Press Ctrl + Space to trigger suggestions
Start typing in letters that doesn't match many of the suggestions ( For example: qqqq)
Suggestions list does not update to reflect suggestions to what is currently typed

Expected: the suggestions should hide or display "No Suggestions."
Screenshot of issue:

Does this issue occur when all extensions are disabled?: Yes

Pls file against Python extension

@weinand  This issue is also can be reproduced with other types of files as well like:  C#, Typescript, JavaScript, etc.
Should I file a issue for each one of these extensions?

Hi @weinand
It appears that this issue is not caused by the python extension as detailed in the comment linked below.
https://github.com/microsoft/vscode-python/issues/10436#issuecomment-596810525
The suggestion issue was reproducible in C# and JavaScript as mentioned by @kimadeline.
Could this issue be reopened?

Does not reproduce for me, please add repro steps that allow me to

Behaviour 1 (the letter doesn't show up in any of the suggestions):

Create a new C file in vs code
Press Ctrl + Space to trigger suggestions
Start typing in letters that don't match any of the suggestions ( For example: yyyy)
Suggestions list does not update to reflect suggestions to what is currently typed

Example:

Behaviour 2 (some of the suggestions contain the letter being typed):

Create a new JS file in vs code
Press Ctrl + Space to trigger suggestions
Start typing in letters that exist in some of the suggestions ( For example: qqqq)
Suggestions list does not update to reflect suggestions to what is currently typed

Example:

Thanks for clarifying

This is actually the designed behaviour - let me explain what's happening: There are two modes of IntelliSense - "auto" and "manual".

"auto" is IntelliSense-as-you-type and others,
"manual" is explicit IntelliSense request by a user gesture. like Cmd+Space.

In auto-mode IntelliSense hides when there are no more matches, in manual mode we don't do that. The reasoning is that you explicitly requested IntelliSense and we don't just wanna take it away from you, e.g. in the screen shot below I am in manual mode, typed a3 (misspell of ae) and the widget is now "frozen", the last good state is shown but no more filtering is happening. This allows you select an item or dismiss the completions but we don't wanna take them away from you automatically.


Message box displayed even after breakpoint being hit

Hi Calvin,
Thanks for this awesome extension! 👏🏻
There is an issue that has been bugging me when debugging lately.
Whenever I hit a breakpoint and proceed using step-over (F10), each statement displays the message box repeatedly.
Have you ever come across this before?
I'm using v2<IP_ADDRESS> with the latest VS 2022 v17.7.4.

Hey @MarcolinoPT, that is the current design, actually.
I've been waiting for some feedback on it, since its a little bit of a niche extension anyway.
I'm open to ideas and suggestions if you have any!  Though, I take it from the comment you'd only want it to prompt on the very first breakpoint in a debug session?
Thanks!

Hey @CalvinAllen, so sorry for my late reply.
Indeed 😊
For me, it would make sense to have a setting, through Visual Studio, where one could toggle that option.
Something like Display message box only when the breakpoint is hit or Always.
Does it make sense?
Thanks!

Yeah, definitely should be able to make that happen!


memcache config

Hi!
I am trying to make memcache work for my server and I get this error :
<IP_ADDRESS> - - [14/Feb/2016 02:26:33] "GET /osm/10/167/396.png HTTP/1.1" 500 -
Error on request:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/werkzeug/serving.py", line 194, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python2.7/site-packages/werkzeug/serving.py", line 182, in execute
application_iter = app(environ, start_response)
File "/usr/local/lib/python2.7/site-packages/TileStache-1.50.1-py2.7.egg/TileStache/init.py", line 381, in call
status_code, headers, content = requestHandler2(self.config, path_info, query_string, script_name)
File "/usr/local/lib/python2.7/site-packages/TileStache-1.50.1-py2.7.egg/TileStache/init.py", line 254, in requestHandler2
status_code, headers, content = layer.getTileResponse(coord, extension)
File "/usr/local/lib/python2.7/site-packages/TileStache-1.50.1-py2.7.egg/TileStache/Core.py", line 384, in getTileResponse
body = cache.read(self, coord, format)
File "/usr/local/lib/python2.7/site-packages/TileStache-1.50.1-py2.7.egg/TileStache/Memcache.py", line 106, in read
mem = Client(self.servers)
NameError: global name 'Client' is not defined
<IP_ADDRESS> - - [14/Feb/2016 02:26:33] "GET /osm/null HTTP/1.1" 400 -
My config is :
"cache":
{
"name": "Memcache",
"servers": ["<IP_ADDRESS>:11211"]
}
Am I doing something wrong?
Thanks!

Fixed it. Seems like my memcache python library wasn't installed.


Sei Mainnet Issues

What is Happening

Non-Sponsored txn -
Getting AA95 Bundler out of Gas Error

Sponsored txn -
Got the following error, we are using an outdated rpc at the backend,
outdated rpc - https://rpc.sei-apis.com/
new rpc - https://evm-rpc.sei-apis.com/

Sessions txn (Creating the session) -
Got another rpc issue, we need to replace the outdated rpc with the new one.

Successful gasless transfer txHash: 0x69ed66e6b54e8a59b1362462ffc2c7426a6e8f6529caf64c715d61fad4fb1e2c
Successful mint NFT txHash: 0xeb6d6d260149b3df1386210be02b888b9155e4795b43d33583771fffc4e595b3
⚠ 🚨 Their explorer (SeiScan) seems to be broken, search can't find any transactions or addresses, had to do a raw RPC call to check if the tx's were mined.

hey @TheDivic
I tested the SEI mainnet after the fixes, the sponsored and non-sponsored txns work super smooth now, but when I do a sessions txn and as soon as I create a session I get the AA95 BundlerOutOfGas error.

And regarding the explorer url, use the following url, since its not broken
https://seitrace.com/


Refresh aggregate infos after command execution

This PR adds a quick fix for auto refreshing aggregate list and aggregate details after command execution. It is not perfect, because it is purely based on command dialog being closed.
A better way would be to refresh after successful command execution. This way we could automatically close the dialog and trigger refresh. In case command execution fails the dialog would stay open and no refresh is triggered. @martin-schilling this would be perfect case for an event dispatcher redux middleware (you remember our discussion about the topic?).
Anyway, I think the quick fix is ok for now. It definitely increases UX because at the moment you have to refresh the browser to see updates.

Oh seems like I missed your comment. Using an event dispatcher middleware, like we discussed, would work but you want to reload state anyway, right? Isn't that something that can simply be triggered through the redux saga handling the command exectution? https://github.com/event-engine/cockpit/blob/master/src/saga/executeCommandFlow.ts#L17

Oh wait you're right! I was a bit too fast with my quick fix :D I'll check the saga option. Missed the fact that queries are dispatched from effect functions but state is selected from redux store. So dispatching same queries from a saga should refresh the components :+1:

Ok, let's do the refactoring later in the follow up #8
At the moment the saga does not have enough information. It only knows about the command, but not which aggregate data should be fetched again.

It only knows about the command, but not which aggregate data should be fetched again.

Yes I thought about that too. I think it would probably be a good idea to trigger some action here https://github.com/event-engine/cockpit/blob/master/src/AggregateDetailsPage.tsx#L15-L17 to push this information into the redux store and use it as the source of truth. Then any sub-components would simply rely on that information instead of getting it from the parent through the props. The required information would then be available for the sagas too


Further information is requested

Hello, can you put the code of network framework structure on it?Can you give me the training set and the test set?

Hi @oula-le
The loss function is independent of network architecture. You can use it with the conventional U-Net.
Unfortunately, I cannot distribute the dataset, as the data was acquired as part of an IRB protocol and is not approved for public release.
Thanks,
Junyu


make docker results npm ERR! Maximum call stack size exceeded

finlay@lab:nixster[master*]$ make docker
docker build --build-arg http_proxy="http://<IP_ADDRESS>:3128" --build-arg https_proxy="http://<IP_ADDRESS>:3128" . --tag stencila/nixster
Sending build context to Docker daemon  8.612MB
Step 1/27 : FROM node:10 AS builder
 ---> 5a401340b79f
Step 2/27 : WORKDIR /nixster
 ---> Using cache
 ---> 9faca749325a
Step 3/27 : COPY package.json .
 ---> Using cache
 ---> 7633ebfa7ffc
Step 4/27 : RUN npm install
 ---> Running in a678da723846
npm WARN deprecated<EMAIL_ADDRESS>This is a stub types definition. handlebars provides its own type definitions, so you do not need this installed.
npm WARN deprecated<EMAIL_ADDRESS>CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
npm WARN deprecated<EMAIL_ADDRESS>use String.prototype.padStart()
npm ERR! Maximum call stack size exceeded

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-05-14T23_03_58_747Z-debug.log
The command '/bin/sh -c npm install' returned a non-zero code: 1
Makefile:31: recipe for target 'docker' failed
make: *** [docker] Error 1

Thanks for trying this out @finlay. I wasn't able to replicate your error:
make docker
docker build . --tag stencila/nixster
Sending build context to Docker daemon  107.9MB
Step 1/27 : FROM node:10 AS builder
 ---> b826d251321b
Step 2/27 : WORKDIR /nixster
 ---> Using cache
 ---> 9c7517912793
Step 3/27 : COPY package.json .
 ---> d808e6573909
Step 4/27 : RUN npm install
 ---> Running in 7c575fe6e187
npm WARN deprecated<EMAIL_ADDRESS>This is a stub types definition. handlebars provides its own type definitions, so you do not need this installed.
npm WARN deprecated<EMAIL_ADDRESS>CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
npm WARN deprecated<EMAIL_ADDRESS>use String.prototype.padStart()

><EMAIL_ADDRESS>install /nixster/node_modules/integer
> node-gyp rebuild

I've updated all npm packages which may solve things for you. I've also added make docker to the Travis build - it's working there: https://travis-ci.org/stencila/nixster/builds/532563367#L672

The error was caused (I think) by the npm flooding the http_proxy.
I am building on a biggish computer (32 cores), and npm loves to do things in parallel! I will keep trying though.

OK, I'll close this issue. But if there is some way you think this repo can address this issue, feel free to reopen it.


Fix lakectl doctor validation for secret access key

We need to change IsValidAccessKeyID func to be aligned with KeyGenerator func

Was discussed in #2987


Celery3 Python3 issues

Really simple one that if I get time later I will make a PR for.
health_check_celery3/plugin_health_check.py:23 has an old style Python 2 print statement that is missing Py3's parenthesis causing a 500 to be generated.

This seems to fixed and could be closed.

@aleksihakli thanks for the info


Edit: machine-learning-create-experiment.md

I sent an email to the writer (Gary Ericson) with this question: You talk a lot about connecting modules and ports. Is it clear to the reader how to do that? I wouldn’t know how to do it ;) . If not, maybe a Note at the first mention that explains the process would be helpful.

Hi @ClarityQueen, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;


mullvad: fix build

https://github.com/NixOS/nixpkgs/pull/207804 removed git from nativeBuildInputs for buildRustPackage, which is apparently what allowed the build.rs to work here. Bring it back for this single package.
Description of changes
https://github.com/NixOS/nixpkgs/pull/207804 broke the build because mullvad relied on git being accessible in build.rs.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This is relatively unobtrusive and just fixes the build, so I'm going to merge it without reviews (though I usually try not to).


C Language (Cpptools extension) struct item completion not correct

VSCode Version: Code 1.10.2 (8076a19fdcab7e1fc1707952d652f0bb6c6db331, 2017-03-08T14:02:52.799Z)
OS Version: Windows_NT ia32 10.0.14393
Extensions:

Extension
Author
Version

cpptools
ms-vscode
0.10.5

csharp
ms-vscode
1.8.0

Steps to Reproduce:
if you have multi struct like:
typedef struct
{
int a;
int b;
}stA_t;
typedef struct
{
int c;
int d;
}stB_t;
define a struct like:
stA_t st_a;
when you used the auto completion
st_a when you input the point (.), you will get all struct item (a, b, c, d) in the auto completion window for notify. why not a, b for st_a ?

cpptools issues should be reported at https://github.com/Microsoft/vscode-cpptools/issues . The tracking issue is https://github.com/Microsoft/vscode-cpptools/issues/13 .
This is currently "by design" until we implement completion with the IntelliSense engine (i.e. the one used for Visual Studio 2017 completion). Our current completion (and other features) will include too much because it doesn't take the actual types into account when filtering and just uses a name lookup with some addition context, such as if there's a "." on the left, indicating we should return only members.

Thanks @sean-mcmanus!
Yes, this looks like an issue with the cpptools extension and not core vscode. Closing as external


feat(api): notify comms on case invalid

Describe your changes

appealInvalid template ID added to config & schema
notifyClient sends email when appellant case is invalid
invalid reasons formatted for template
getFormattedReasons util created to support invalid and incomplete
incomplete/invalid shared mocks updated to include reason texts

Issue ticket number and link
BOAT-870 API - Comms - Case found to be 'invalid’
Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[x] I have performed a self-review of my own code
[x] I have double checked this work does not include any hardcoded secrets or passwords
[ ] I have made corresponding changes to the documentation
[ ] I have provided details on how I have tested my code
[x] I have referenced the ticket number above
[x] I have provided a description of the ticket
[x] I have included unit tests to cover any testable code changes

I've deliberately skipped the test on line 899:
'updates appellant case when the validation outcome is Invalid with numeric array'
It's failing and I don't know what it's supposed to be doing.

I've deliberately skipped the test on line 899: 'updates appellant case when the validation outcome is Invalid with numeric array' on appellant-cases.test.js
It's failing and I don't know what it's supposed to be doing.

IIRC it's when you select the reasons but do not input any text in the "other" field.


Using appium custom helper from docs, does not give access to appium functions, "is not a function" error occurs for most functions under appium docs.

What am I missing?
I'm trying to write a custom helper that checks for 4 elements, and then sends a different command based on which element is present.
In order to do this, we needed a custom helper per the codeceptjs documentation https://codecept.io/helpers/Appium.
So we call:
let client = this.helpers['Appium'].browser
But that unfortunatly does not work as documented, it does not give access to almost any of the Appium functions documented on their website http://appium.io/docs/en/about-appium/api/
So when we try:
async checkElement(locator) {
let client = this.helpers['Appium'].browser;
        let elementResult = await client.$$(locator).isEnabled();
}

All of these commands throw an error that says something like this:
client.$$(...).isEnabled is not a function
Per the codeceptjs docs... that should be an appium client with all of those functions included...

Appium helper is wrapper for WebDriverIO Appium wrapper
See all available functions here:
https://webdriver.io/docs/api/appium.html

client.$$(locator) returns an array of elements found.
Array in js does not have isEnabled() function.
Use $ to find first element, or map/filter/[<position of element in array, for example 0>]

Thanks for your help here are your ideas in my solution. It's working for me.
   * Checks the specified locator for existence, if it exists, attempt to click it
   * @param locator accepts xpath elements
   */
  async appiumClick(locator)
  {
    let driver = this.helpers["Appium"].browser;
    let elementResult = await driver.$$(locator);
    if (elementResult === undefined || elementResult.length == 0)
    {
      return console.log("Locator: " + locator + " Not Found");
    }
    else if (elementResult[0].elementId)
    {
      return await elementResult[0].click();
    }
  }```

Good
Now, you can close the issue


Calculate grade

I can not calculate my grade for some reason?? or submit this assignment
Version: 1.92.2
Commit: fee1edb8d6d72a0ddff41e5f71a671c23ed924b9
User Agent: Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Embedder: codespaces

/causedByExtension please use your course support channel


Standardize Build Scripts

Create a common script that both a contributor to the SDK and PR CI can use to generate and run the commands required to run build.

CC: @chidozieononiwu


ImageList extensions

https://github.com/lminuti/FontIconEditor
https://github.com/EtheaDev/IconFontsImageList

Thanks, added (at last :))


README wrapping style

Are we doing soft or hard wrapping in the README.md? It's a bit muddled at the moment.

The answer is hard-wrapping.


fix(express): makeres.statusCode accessible

I have a middleware which send metrics to track if response statusCode is success see:
res.on('finish', () => {
    // $FlowFixMe `res.statusCode` exists
    if (res.statusCode >= 200 && res.statusCode < 400) {
      const end = diff(start)
      const completeURL = req.baseUrl ? req.baseUrl + req.path : req.path
      const normalizedURL = completeURL.replace(/\/\d/g, '/:id')
      trace.recordMetric(`response time :: (${req.method}) -> ${normalizedURL}`, end)
    }
})

res.statusCode is correctly set and accessible at this time.

It should already be defined in http.ServerResponse#statusCode.

It is also defined in: https://github.com/facebook/flow/blob/master/lib/node.js#L850

So might be a bug with flow itself? Can you reproduce?

Why don't you open a PR adding that to some of the tests for the lib def.

Could you add a statusCode test to the already existing express type-tests ?
I just double checked, statusCode should already be part of the http module :-)

Sure, will do.

I've rebased and pushed the test, without my fix here are the test results:
 * express_v4.x.x/flow_>=v0.25.x (flow-v0.37.0): Unexpected Flow errors(2):
   0-test_express_v4.x.x.js:148
   148:     if (res.statusCode >= 200 && res.statusCode < 400) {
                    ^^^^^^^^^^ property `statusCode`. Property not found in
   148:     if (res.statusCode >= 200 && res.statusCode < 400) {
                ^^^ express$Response

   0-test_express_v4.x.x.js:148
   148:     if (res.statusCode >= 200 && res.statusCode < 400) {
                                             ^^^^^^^^^^ property `statusCode`. Property not found in
   148:     if (res.statusCode >= 200 && res.statusCode < 400) {
                                         ^^^ express$Response

   Found 2 errors

   null

This hasn't been updated for quite a while.
If this is still relevant please submit a new PR.


No cache for scan ci

Description
This PR makes sure the scan ci command does not create a cache file. This fixes #68
What has been done

Do not create the cache file as soon as the Cache instance is created
In ci_cmd(), call scan_commit_range() with the cache set to a "dummy" cache class which does not save to disk

Codecov Report

Merging #110 (c8488ae) into main (86c47dd) will increase coverage by 0.10%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##             main     #110      +/-   ##
==========================================
+ Coverage   91.37%   91.48%   +0.10%
==========================================
  Files          29       29
  Lines        1461     1456       -5
==========================================
- Hits         1335     1332       -3
+ Misses        126      124       -2

Flag
Coverage Δ

unittests
91.48% <75.00%> (+0.10%)
:arrow_up:

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

Impacted Files
Coverage Δ

ggshield/config.py
89.06% <ø> (+1.00%)
:arrow_up:

ggshield/ci.py
91.66% <75.00%> (-8.34%)
:arrow_down:

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 86c47dd...c8488ae. Read the comment docs.


Regular group invitations add user as a owner

in the title.

https://github.com/Civcraft/NameLayer/pull/175
This is just a typo with the /nllm command. Player are not actually owners.

Just a displaying issue


haveged: 1.9.17 -> 1.9.18

Description of changes
https://github.com/jirka-h/haveged/releases/tag/v1.9.18

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 177554 run on x86_64-linux 1

1 package built:

haveged


Dot not show  when  i  slected a day

Thanks for the  nice Library.
@Pratyush Verma
Can   you  tell  me when   we select  a day dot  not shown there ?
please help  me out

Can you please elaborate? Do you want to show the dot when the day is selected or do you want to hide it on selection?

when  we select a day  i  want  to  show the dots

Check this issue.  #11
It should solve your problem.

thanks


chore(v2): Split powertools idempotency module (without redis impl)

Issue #, if available:
#1504
Description of changes:
Takes @eldimi 's changes from #1513 for the module split only. I've rebased the commits from 0ec7f4a0d7424c24cb402f23f6896111f257ac44 to 6da6aaf6b558edb56b18dd71e2f0ed1a7a8d8d13 inclusive onto v2. We will merge this and take the redis implementation in later.

Checklist

[ ] Meet tenets criteria
[ ] Update tests
[ ] Update docs
[ ] PR title follows conventional commit semantics

Breaking change checklist

RFC issue #:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (v2@b0af349). Click here to learn what that means.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@          Coverage Diff          @@
##             v2    #1559   +/-   ##
=====================================
  Coverage      ?   89.79%
  Complexity    ?      406
=====================================
  Files         ?       44
  Lines         ?     1274
  Branches      ?      165
=====================================
  Hits          ?     1144
  Misses        ?       88
  Partials      ?       42

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Chapter sort settings text gone with specific themes with pure black dark mode

Steps to reproduce

Enable pure black dark mode
Choose Neko Green, Outrun, Midnight Dusk, Mangadex, Grey Wolf, or Chocolate Strawberries themes
Open chapter sort settings

Expected behavior
Text to accompany the arrow and check boxes
Actual behavior
No text
Crash logs
No response
Neko version
2.10.0
Android version
Android 12
Device
Samsung Galaxy S20FE 5G
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] I have tried the troubleshooting guide.
[X] I have updated the app to the newest version Latest.
[X] I have filled out all of the requested information in this form.

<IP_ADDRESS>


Add an option to save/load scripts

Add an option to save/load scripts

You mean scripts types into the editor? It currently saves last script into local storage. You can also cut/paste them. Not sure I see much benefit, as editor is mainly for playing with the page. All scripts should be developed through manifest files.


Extra side buffers

Description
Bunch of extra side buffers open on every new session.
Steps to reproduce
Use this plugin with:
https://github.com/rmagatti/auto-session
enable autocmds:
        autocmds = {
          -- enableOnVimEnter = true,
          -- enableOnTabEnter = true,
        },

Expected behavior
Only two side buffers should be showing up by default
Environment

Neovim version: NVIM v0.9.0-dev-1259+g434f3d6a0-dirty
no-neck-pain.nvim version: latest
Plugin clash: rmagatti/auto-session

Hey! Thanks for opening the issue
I'll try to reproduce and see where the issue come from, thanks!

At first glance, there's indeed something clashing between the two plugins.
On the https://github.com/rmagatti/auto-session, it seems that it fully resets the _G global index values, so NNP state is unsync'd and re-creates everything from scratch.
I can try to find a way to cleanup existing buffers but not sure if I can properly identify them.

I managed to mitigate this bug by removing some options from sessionoptions:
vim.opt.sessionoptions = "buffers,curdir,terminal"

oh this is huge @ivanjermakov, thanks a lot! I'll try it myself and adds them as a default integration if it works

I can't get auto-session working together with no-neck-pain either. When i close nvim with :q, auto-session thinks one of the side buffers is the last buffer, causing me to see an empty buffer when reopening nvim. It does work with :qa though.
@shortcuts do you know how to solve this? I tried calling require("no-neck-pain").disable() in auto-session's pre_save_cmds hook to close no-neck-pain before it saves the session, but it still saves when one of the side buffers as last session.

Thanks for the reply! Do you mean closing no-neck-pain before it saves the session (e.g. pre_save_cmds)? This was the approach i attempted previously. It appears that no-neck-pain does not close in time before auto-session saves.
this is the code i hacked together:
return {
    "rmagatti/auto-session",
    lazy = false,
    init = function()
        vim.opt.sessionoptions = "buffers,curdir,terminal"
    end,
    opts = {
        log_level = "error",
        pre_save_cmds = {
            function()
                require("no-neck-pain").disable()

                vim.cmd("Neotree close")

                require("trouble").close()

                vim.cmd("Neotest summary close")

                require("dapui").close()

                vim.cmd.UndotreeHide()

                local windowIds = vim.api.nvim_list_wins()
                for _, winndowId in pairs(windowIds) do
                    local status = pcall(vim.api.nvim_win_get_var, winndowId, "fugitive_status")
                    if status then
                        vim.api.nvim_win_close(winndowId, false)
                        return
                    end
                end
            end,
        },
    },
}

a way to filter out windows/buffers given a buftype

@shortcuts thanks for the pointer. I double-checked it and indeed found an option to accomplish this. I ended up using:
return {
    "rmagatti/auto-session",
    lazy = false,
    init = function()
        vim.opt.sessionoptions = "buffers,curdir,terminal"
    end,
    keys = {
        {
            "<leader>ss",
            "<cmd>Autosession search<cr>",
            desc = "[S]earch [S]essions",
        },
        {
            "<leader>sd",
            "<cmd>Autosession delete<cr>",
            desc = "[S]earch [D]elete",
        },
    },
    opts = {
        log_level = "error",
        auto_session_use_git_branch = true,
        bypass_session_save_file_types = {
            "",
            "no-neck-pain",
            "neo-tree",
            "noice",
            "notify",
            "fugitive",
        },
    },
}

I used this keymap while focusing on windows to identify the file types of the plugins i want to disable:
vim.keymap.set("n", "<leader>m", function()
    local bufnr = vim.fn.bufnr("%")
    local buftype = vim.api.nvim_buf_get_option(bufnr, "filetype")
    vim.notify(buftype, "error")
end)

Great find @sand4rt! that's a good enough workaround for people that don't use the no-neck-pain side buffers as scratchpad however for custom filetypes it wouldn't work :/ I'll think of a way to natively fix that
Thanks again for using the plugin and the feedbacks!!

Same thing happens with persistence. When I restore a session, 4 side-buffers are created.
I realized that I don't use scratchpads, so I just disabled them. But then, this error pops up on session restoration:
Error executing vim.schedule lua callback: ...e/nvim/lazy/no-neck-pain.nvim/lua/no-neck-pain/state.lua:391: attempt to index field 'tabs' (a nil value)
stack traceback:
	...e/nvim/lazy/no-neck-pain.nvim/lua/no-neck-pain/state.lua:391: in function 'getSideID'
	...re/nvim/lazy/no-neck-pain.nvim/lua/no-neck-pain/main.lua:431: in function <...re/nvim/lazy/no-neck-pain.nvim/lua/no-neck-pain/main.lua:430>
	vim/shared.lua: in function 'tbl_filter'
	...re/nvim/lazy/no-neck-pain.nvim/lua/no-neck-pain/main.lua:430: in function 'callback'
	...vim/lazy/no-neck-pain.nvim/lua/no-neck-pain/util/api.lua:143: in function <...vim/lazy/no-neck-pain.nvim/lua/no-neck-pain/util/api.lua:142>


Update how-cloudflare-works.mdx

Summary

Screenshots (optional)

Documentation checklist

[x] The documentation style guide has been adhered to.
[x] If a larger change - such as adding a new page- an issue has been opened in relation to any incorrect or out of date information that this PR fixes.
[x] Files which have changed name or location have been allocated redirects.


[feat] Optimization - download only attachments for top visible patient records

Right now we're downloading all of it which is super slow

https://dev.to/fpaghar/how-to-check-if-an-element-is-visible-in-the-viewport-using-javascript-and-react-hook-4648


Incorrect URL Format in AWS S3 File Uploads

Describe the bug
There is a critical bug in Serverpod (version 1.1.1) related to file uploads with AWS S3. The issue stems from an incorrect format in the "description" URL, where the S3 domain and the region are incorrectly concatenated using a dash ("-") instead of a dot ("."). This formatting error leads to unsuccessful file uploads, as the expected format should be "....s3.[region]..." but it incorrectly appears as "....s3-[region]...".
To Reproduce

Set up Serverpod (version 1.1.1) for file uploads to AWS S3.
Initiate a file upload to S3 using the Serverpod framework.
Observe the error during the upload process, specifically focusing on the URL format used to access the S3 endpoint.
The URL is incorrectly formatted, using a dash to separate the S3 domain and region, resulting in a failed upload.

Expected behavior
The expected behavior is a seamless and successful file upload to AWS S3 when using Serverpod 1.1.1. The URL should be formatted correctly, chaining the S3 domain with the region using a dot (.), i.e., "....s3.[region]...".
Serverpod versions

CLI Version: 1.1.1
Library version: 1.1.1

Platform information
Windows, Mac
Additional context
This issue is critical as it hinders basic file upload functionality with AWS S3, a common use case for Serverpod applications. Prompt attention and a fix would be greatly appreciated to ensure smooth operation and integration with AWS services.
It's crazy that nobody ever found this bug in months.

Any updates on this? Still not working in 1.2.6


Convert frame to image

Question
How to i can convert frame to image?
What I tried
No response
VisionCamera Version
2.13.5
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

I have the same question

Closing as this is a stale issue - this might have been fixed with the full rewrite in VisionCamera V3 (🥳) - if not, please create a new issue.


Fix phone look and text (reduce size little bit)

Hey @codervivek5 . I want to work on this issue. Please assign me this under GSSOC'23

Hi @codervivek5, iam a GSSOC23 contributer and I would like to resolve this issue
Can you assign me this issue? Or any other issues you might have?
Heres My Resume which you might find useful: Resume
Ive more than 1 year of experience in android development(check profile for more details)

"Hi there! I'm excited to contribute to this project'GSSOC;'23 I've taken a look at the codebase and I believe I can make some valuable improvements. I'll start working on it right away. If you have any specific requirements or suggestions, please let me know. Looking forward to collaborating with you all on this!

Hey @codervivek5, thanks for assigining this issue, already working on it


Is it worth it to compile 2 seperate mainwindow.ui files for dev and user releases?

yes, we will do this for our final release

the answer is no


Add Close() to IConsumer interface

When I tried to use IConsumer, from the version 1.0.0-beta2 package, through DI in a project, I realized that the Close() method, meant to actually finalize a consumer, was not available in the interface, just in the concrete class.

It looks like @jvaesteves hasn't signed our Contributor License Agreement, yet.

The purpose of a CLA is to ensure that the guardian of a project's outputs has the necessary ownership or grants of rights over all contributions to allow them to distribute under the chosen licence.
Wikipedia

You can read and sign our full Contributor License Agreement here.
Once you've signed reply with [clabot:check] to prove it.
Appreciation of efforts,
clabot

[clabot:check]

@confluentinc It looks like @jvaesteves just signed our Contributor License Agreement. :+1:
Always at your service,
clabot

thanks for the PR @jvaesteves! - i'm closing since I've already slipped this into #656, and it'll be in -beta3.


Expire daemons when open file descriptors count reach a treshold

Current Behavior
Daemons running leaky code can accumulate open file descriptors and fail at some point with some Too many open files error.
Expected Behavior
Like daemons are expired according to memory/gc pressure, they should be expired when they keep a too large number of open file descriptors.
Environment
On all systems derived from unices, JMX provide MaxFileDescriptorCount and OpenFileDescriptorCount attributes that could help implement.
On Windows these attributes are absent ; we either need to not apply this expiration strategy or find a way to get the info.
Note that leaky file descriptors in code run by daemons can be a bigger problem on Windows given it's exclusive locking behavior and can prevent such an expiration strategy to bring real benefit.

In building the Hyperledger Besu project we found that, in the latest MacBooks Pro, some unit tests fail because the open file descriptors go over 10240 (as reported by lsof). This happens both with macOS 10.15 and 10.14.6, and with JDKs 11 and 12. Gradle 5.4.1.
The same build works well in 1-2 year old MacBooks - in there I see the open file descriptors going up to "only" about 8500.
For the time being we're using _JAVA_OPTIONS=-XX:-MaxFDLimit to allow the tests to finish even with those high numbers of descriptors. We're still not sure why the file descriptors go so high nor why they go even higher in the newer Macs, but if the tests hadn't failed I wouldn't even notice.

After a bit more testing, I see that the open FDs piling in the gradle daemons are thousands of pipes, shown by lsof like this:

...
java    99069 mija 4292u  KQUEUE                                       count=0, state=0x8
java    99069 mija 4293     PIPE 0xcefa84f33b5d7d39     16384          ->0xcefa84f33b5d7c79
java    99069 mija 4294     PIPE 0xcefa84f33b5d7c79     16384          ->0xcefa84f33b5d7d39
java    99069 mija 4295u  KQUEUE                                       count=0, state=0x8
java    99069 mija 4296     PIPE 0xcefa84f33b5d84b9     16384          ->0xcefa84f33b5d8579
java    99069 mija 4297     PIPE 0xcefa84f33b5d8579     16384          ->0xcefa84f33b5d84b9
...

I assume that the daemon is being sent its tasks (running unit tests in this case) through those pipes, and then somehow they don't get closed.
Is there anything that we can do to make the daemon close them?

Which Java process are you looking at?  Is it the Gradle daemon (the long lived process, stays alive between builds) or the Test Worker daemon (runs unit tests) or something else?
In the past, the failures we've seen have been around custom tasks leaking open file descriptors and not Gradle itself.  Does the number of open file descriptors go down once the build is complete?
One difference between old Macs and new ones could be the number of available processors.  On the builds that fail, you could try limiting the number of parallel tasks (e.g., --max-workers=2).  It could be that more tasks/tests are running in parallel on newer machines and they're opening lots of file descriptors.

Which Java process are you looking at? Is it the Gradle daemon (the long lived process, stays alive between builds) or the Test Worker daemon (runs unit tests) or something else?

Judging by the way the PIDs appeared and disappeared, I would say this was the Test Worker daemon.
I have a script which continually dumps the lsof of all the processes named java. If interested I can generate the sampled history of PIDs and FDs and send it to you.

In the past, the failures we've seen have been around custom tasks leaking open file descriptors and not Gradle itself. Does the number of open file descriptors go down once the build is complete?

In general it seems to mostly grow, though rarely it does ratchet back a bit.
Looks like the daemons are stopped and restarted when different gradle subprojects are run, which generally keeps the FDs from accumulating too much.

One difference between old Macs and new ones could be the number of available processors. On the builds that fail, you could try limiting the number of parallel tasks (e.g., --max-workers=2). It could be that more tasks/tests are running in parallel on newer machines and they're opening lots of file descriptors.

My machine is "old" so it doesn't cause the failure, though I do see the FDs growing to >8500. One of the problematic machines did behave even worse with --no-daemon.


Espresso Testing Support

As an Android Developer, we would like to implement instrumentation test if we behave correctly or not.
So we need to be able to fire the click. If possible can you add this functionality?

Are you asking for custom ViewMatchers for Espresso that helps you test link clicks?

Exactly how can we click the link?

ViewActions has a few openLink*() functions for opening links. Have you tried using them?

Oh thanks! Maybe we can put some information in the readme for someone who is not aware of openLink. I close the issue.


Scaling annotations on an image

I am facing a problem with displaying different box elements on an image. My code looks like this.
val zoomableState = rememberZoomableState()
Box(modifier = Modifier.fillMaxSize()) {
          ZoomableAsyncImage(
              model = ImageRequest.Builder(LocalContext.current)
                  .data(pathDrawing)
                  .memoryCachePolicy(CachePolicy.DISABLED)
                  .build(),
              state = rememberZoomableImageState(zoomableState),
              onClick = { offset ->
                  val transformation = zoomableState.contentTransformation
                  val scale = transformation.scale
                  val offsetX = transformation.offset.x
                  val offsetY = transformation.offset.y
                  val point =
                      Offset(((offset.x - offsetX) / scale.scaleX), ((offset.y - offsetY) / scale.scaleY))
                  uiAction(
                      WorkWithDrawingAction.AddDefect(
                          isClosed = false,
                          points = listOf(point)
                      )
                  )
              },
              modifier = Modifier.fillMaxSize(),
              contentScale = ContentScale.Crop,
              contentDescription = null
          )

          val transformation = zoomableState.contentTransformation
          val scale = transformation.scale
          val offsetX = transformation.offset.x
          val offsetY = transformation.offset.y
         uiState.defectsList.forEach { defect ->
            val frX = (appCoordinatesFirst.x * scale.scaleX) + offsetX
            val frY = (appCoordinatesFirst.y * scale.scaleY) + offsetY
            val scX = (appCoordinatesLast.x * scale.scaleX) + offsetX
            val scY = (appCoordinatesLast.y * scale.scaleY) + offsetY
            val (minX, maxX) = if (frX < scX) frX to scX else scX to frX
            val (minY, maxY) = if (frY < scY) frY to scY else scY to frY
            val adjustedMinX = with(LocalDensity.current) { minX.toDp() }
            val adjustedMinY = with(LocalDensity.current) { minY.toDp() }
            val adjustedWidth =
                with(LocalDensity.current) { (maxX - minX).toDp() }
            val adjustedHeight =
                with(LocalDensity.current) { (maxY - minY).toDp() }
            Box(
                modifier = defectModifier(
                onClickForDelete = {
                    uiAction(WorkWithDrawingAction.DeleteObject(defect))
                  }) .offset(
                     x = adjustedMinX ,
                     y = adjustedMinY
                  )
                     .size(width = adjustedWidth , height = adjustedHeight )

                      .drawBehind {
                         val startX = frX - minX
                         val startY = frY - minY
                         val endX = scX - minX
                         val endY = scY - minY
                         drawLine(
                         start = Offset(startX, startY),
                         end = Offset(endX, endY),
                         strokeWidth = strokeWidthForLine * scale.scaleX
                          )
                         }
                  }
}

By clicking, I fix a point (onClick). As soon as there are two of them, I draw a new box at two points in the same box where the image is located. At the same time, I adapt the coordinates of the points using scale and offset. For example, I drew a line using draw Behind. As it turned out, the line is always positioned correctly, but for some reason the box decreases or even shifts when the image is zoomed in (I attach pictures in the comments).
It seems to me that the problem is in the dp. Question: how can I make it so that the elements are attached to the picture, just as it is reduced and enlarged? Or how to solve this problem? I suppose with the help of zoomable, but I still haven't figured out how to use it correctly in this situation. Sorry if the question is beyond the scope of your library. I'll be glad if you help.

 - Original image, red color - box
 - I increased it a bit - everything is fine
 - I increased it a bit - everything is bad, the box is getting smaller, the upper right corner of the line is no longer in the box

@saket If you don't want to answer this or just don't know the answer, can you please say something? I'm just sitting here, hoping for you and waiting for advice.

I'm sorry @wizarlock, but OSS like telephoto are maintained by people in their free time. It's unfair to expect urgent responses from them.
I don't fully understand your usecase. Can you share a video of what's happening?

Hi @saket, I want to apologize for my earlier message. I truly didn't mean to be rude or impose on your time. In the past, you responded so quickly that I mistakenly assumed it was normal, and I didn't consider the fact that you maintain these projects in your free time. Thank you for the work you do, and I appreciate any help or advice whenever you're able to give it. Sorry again for the misunderstanding.
My main goal is to learn how to attach boxes to an image. They should have a constant position on the photo, i.e. they should grow/shrink and move like a photo. Something like a marker on a map, if that makes it easier to understand. Only it should retain its size. Let's look at the following example.
 val zoomSpec = ZoomSpec(maxZoomFactor = 3f)
    val zoomableState = rememberZoomableState(zoomSpec = zoomSpec)
    val pdfFile = File(uiState.currentDrawing.drawingFilePath)
    val pathDrawing = pdfFile.absolutePath.replace(".pdf", "_drawing.jpg")
    val localFirstPoint: MutableState<Offset?> = remember { mutableStateOf(null) }
    val customViewConfiguration = object : ViewConfiguration by LocalViewConfiguration.current {
        override val doubleTapTimeoutMillis: Long
            get() = 0
    }

    LaunchedEffect(
        uiState.topBarMode,
        uiState.photoMode,
        uiState.defectMode,
        uiState.instrumentalMode,
        uiState.clearLineTrigger
    ) {
        localFirstPoint.value = null
    }
    CompositionLocalProvider(LocalViewConfiguration provides customViewConfiguration) {
        Box(modifier = Modifier.fillMaxSize()) {
            ZoomableAsyncImage(
                model = ImageRequest.Builder(LocalContext.current)
                    .data(pathDrawing)
                    .memoryCachePolicy(CachePolicy.DISABLED)
                    .build(),
                state = rememberZoomableImageState(zoomableState),
                onDoubleClick = { _, _ -> },
                onClick = { offset ->
                    val transformation = zoomableState.contentTransformation
                    val scale = transformation.scale
                    val offsetX = transformation.offset.x
                    val offsetY = transformation.offset.y
                    val point =
                        Offset(
                            ((offset.x - offsetX) / scale.scaleX),
                            ((offset.y - offsetY) / scale.scaleY)
                        )

                    if (localFirstPoint.value == null) localFirstPoint.value =
                        point
                    else {
                        val frPoint = localFirstPoint.value!!
                        localFirstPoint.value = null
                        uiAction(
                            WorkWithDrawingAction.AddDefect(
                                isClosed = false,
                                points = listOf(frPoint, point),
                            )
                        )
                    }

                },
                modifier = Modifier
                    .fillMaxSize(),
                contentScale = ContentScale.Crop,
                contentDescription = null
            )
            if (uiState.endInit) {

                val strokeWidthForLine: Float
                when (uiState.currentFormat) {
                    Format.A4 -> {
                        strokeWidthForLine = 18f
                    }

                    Format.A3 -> {
                        strokeWidthForLine = 16f
                    }

                    Format.A2 -> {
                        strokeWidthForLine = 14f
                    }

                    Format.A1 -> {
                        strokeWidthForLine = 12f
                    }

                    else -> {
                        strokeWidthForLine = 10f
                    }
                }
                val defectItem =
                    uiState.botAppBarItems.find { it.mode == BotAppBarMode.DEFECT_MODE }!!

                val transformation = zoomableState.contentTransformation
                val scale = transformation.scale
                val offsetX = transformation.offset.x
                val offsetY = transformation.offset.y

                if (defectItem.visible.value) {
                    uiState.defectsList.forEach { defect ->
                        val coordinatesType = object : TypeToken<List<Coordinates>>() {}.type
                        val pointsList: List<Coordinates> =
                            Gson().fromJson(defect.defectPoints, coordinatesType)
                        val appCoordinatesFirst = viewModel.getAppCoordinates(
                            pointsList.first()
                        )
                        val appCoordinatesLast = viewModel.getAppCoordinates(
                            pointsList.last()
                        )
                        val frX = (appCoordinatesFirst.x * scale.scaleX) + offsetX
                        val frY = (appCoordinatesFirst.y * scale.scaleY) + offsetY
                        val scX = (appCoordinatesLast.x * scale.scaleX) + offsetX
                        val scY = (appCoordinatesLast.y * scale.scaleY) + offsetY
                        val (minX, maxX) = if (frX < scX) frX to scX else scX to frX
                        val (minY, maxY) = if (frY < scY) frY to scY else scY to frY
                        val adjustedMinX = with(LocalDensity.current) { minX.toDp() }
                        val adjustedMinY = with(LocalDensity.current) { minY.toDp() }
                        val adjustedWidth =
                            with(LocalDensity.current) { (maxX - minX).toDp() }
                        val adjustedHeight =
                            with(LocalDensity.current) { (maxY - minY).toDp() }
                        Box(
                            modifier = Modifier
                                .offset(
                                    x = adjustedMinX,
                                    y = adjustedMinY
                                )
                                .size(width = adjustedWidth, height = adjustedHeight)
                                .background(Color.Red)
                                .drawBehind {
                                    val startX =
                                        frX - minX
                                    val startY =
                                        frY - minY
                                    val endX =
                                        scX - minX
                                    val endY =
                                        scY - minY
                                    drawLine(
                                        color = Color.Black,
                                        start = Offset(
                                            startX,
                                            startY
                                        ),
                                        end = Offset(
                                            endX,
                                            endY
                                        ),
                                        strokeWidth = strokeWidthForLine * scale.scaleX
                                    )
                                }
                        )

                    }
                }
            }
        }
    }
}

Let me try to explain it again. In onClick, I fix the pressed point, when there are two of them, the box will be added.
I draw the box in the same box where the image is located. At the same time, as you can see, I transform two points using the scale and offset of the image, thereby trying to attach them to the image. A box is being built on these two points, in which I drew a line using drawBehind for clarity.
Let's watch the video now.
Uploading video.mp4…
What happens in the video: I double click. A red box with a line appears. When zooming in or out, the box goes crazy and moves/shrinks, but it should be attached like a line. The questions remain the same. how can I make it so that the elements are attached to the picture, just as it is reduced and enlarged? Or how to solve this problem? I suppose with the help of zoomable, but I still haven't figured out how to use it correctly in this situation.
Thanks again for your project, I've been looking for something like this for a long time! Thank you for helping the users of your project.

Thank you for the video, this was useful. My understanding is that you should be able to use zoomableState.contentTransformation for aligning your red box with the image as it zooms and pans. If it isn't working then I suspect something is incorrect with the maths.
Have you already seen how Modifier.applyTransformation() works? Is that something you can apply on your box?

I also noticed that you're converting the clicked offset in your onClick param from the layout's coordinate space into the image's coordinate space. Is that correct? This seems like something ZoomableState should handle automatically for you. We could consider adding APIs like ZoomableState#layoutToImageCoordinates(). What do you think?

Hi @saket, I am grateful to you for trying to help me.
I'm already using zoomableState.contentTransformation. Maybe it's really about math, but I doubt it very much. Something is wrong with dp...
I didn't find anything about Modifier.applyTransformation(). If such a thing really exists, then I would try. I've only seen the autoApplyTransformation s option in ZoomableState. But as I understand it, it is only for zoomable. My box is not zoomable and I have no idea how to use it correctly in this situation.
In onClick, I use scale and zoom to get coordinates relative to the image. I need it. Accordingly, I return these coordinates to the original view when drawing.
To be honest, I am lost and do not understand the reasons for this behavior of Box. I really hope for your help! I can test the case with Modifier.applyTransformation() only if you explain what you mean. In general, the example is quite simple, and if you try to re-deploy it and try to fix it in your free time, I will be very, very, very grateful to you!

Modifier.applyTransformation can be found here: https://github.com/saket/telephoto/blob/221179802619ac28b6196c1695f839e194c44cdc/zoomable/src/commonMain/kotlin/me/saket/telephoto/zoomable/ZoomableContentTransformation.kt#L100
Would you like to post this question to the Kotlinlang Slack? Others there might be able to help. I’m sorry, but I haven’t had sufficient time lately.
Additionally, if you can recreate this demo in the sample app, I’ll try to debug it when I get a chance -- but no promises 🤞.

After a day spent on this problem I received the following code:
Box(modifier = Modifier.fillMaxSize()) {
            ZoomableAsyncImage(
                model = ImageRequest.Builder(LocalContext.current)
                    .data(pathDrawing)
                    .memoryCachePolicy(CachePolicy.DISABLED)
                    .build(),
                state = rememberZoomableImageState(zoomableState),
                onDoubleClick = { _, _ -> },
                onClick = { offset ->
                    val transformation = zoomableState.contentTransformation
                    val scale = transformation.scale
                    val offsetX = transformation.offset.x
                    val offsetY = transformation.offset.y
                    val point =
                        Offset(
                            ((offset.x - offsetX) / scale.scaleX),
                            ((offset.y - offsetY) / scale.scaleY)
                        )

                    if (localFirstPoint.value == null) localFirstPoint.value =
                        point
                    else {
                        val frPoint = localFirstPoint.value!!
                        localFirstPoint.value = null
                        uiAction(
                            WorkWithDrawingAction.AddDefect(
                                isClosed = false,
                                points = listOf(frPoint, point),
                            )
                        )
                    }

                },
                modifier = Modifier
                    .fillMaxSize(),
                contentScale = ContentScale.Crop,
                contentDescription = null
            )
            if (uiState.endInit) {

                val strokeWidthForLine: Float
                when (uiState.currentFormat) {
                    Format.A4 -> {
                        strokeWidthForLine = 18f
                    }

                    Format.A3 -> {
                        strokeWidthForLine = 16f
                    }

                    Format.A2 -> {
                        strokeWidthForLine = 14f
                    }

                    Format.A1 -> {
                        strokeWidthForLine = 12f
                    }

                    else -> {
                        strokeWidthForLine = 10f
                    }
                }
                val defectItem =
                    uiState.botAppBarItems.find { it.mode == BotAppBarMode.DEFECT_MODE }!!

                if (defectItem.visible.value) {
                    uiState.defectsList.forEach { defect ->
                        val coordinatesType = object : TypeToken<List<Coordinates>>() {}.type
                        val pointsList: List<Coordinates> =
                            Gson().fromJson(defect.defectPoints, coordinatesType)
                        val appCoordinatesFirst = viewModel.getAppCoordinates(
                            pointsList.first()
                        )
                        val appCoordinatesLast = viewModel.getAppCoordinates(
                            pointsList.last()
                        )
                        val frX = (appCoordinatesFirst.x)
                        val frY = (appCoordinatesFirst.y)
                        val scX = (appCoordinatesLast.x)
                        val scY = (appCoordinatesLast.y)
                        val (minX, maxX) = if (frX < scX) frX to scX else scX to frX
                        val (minY, maxY) = if (frY < scY) frY to scY else scY to frY
                        val width = maxX - minX
                        val height = maxY - minY
                        val widthDp = with(LocalDensity.current) { width.toDp() }
                        val heightDp = with(LocalDensity.current) { height.toDp() }
                        Box(
                            modifier = Modifier
                                .graphicsLayer {
                                    val transformation = zoomableState.contentTransformation
                                    scaleX = transformation.scale.scaleX
                                    scaleY = transformation.scale.scaleY
                                    translationX =
                                        (minX * transformation.scale.scaleX) + transformation.offset.x
                                    translationY =
                                        (minY * transformation.scale.scaleY) + transformation.offset.y
                                    transformOrigin = TransformOrigin(0f, 0f)
                                }
                                .size(
                                    width = widthDp,
                                    height = heightDp
                                )
                                .background(Color.Red)
                                .drawBehind {
                                    val startX =
                                        frX - minX
                                    val startY =
                                        frY - minY
                                    val endX =
                                        scX - minX
                                    val endY =
                                        scY - minY
                                    drawLine(
                                        color = Color.Black,
                                        start = Offset(
                                            startX,
                                            startY
                                        ),
                                        end = Offset(
                                            endX,
                                            endY
                                        ),
                                        strokeWidth = strokeWidthForLine
                                    )
                                }
                        )
                    }
                }
            }
        }

And here are some very interesting results:

Managed to attach the Box to the image - it always stayed in place, did not grow or shrink. But as you can see, with long lines it can't draw such a big Box.
After debugging I realized that the problem was still with dp. The thing is that the resulting length and height are about 1000.dp. I tested, I can only draw about 400-600.dp, and then it does not grow.
I have solved a similar task before, using Modifier.pointerInput of the image. Then I got the coordinates of the mobile application, they were not so big. But I decided to try your library - now I do not have access to Modifier.pointerInput of the image. Besides, I am not sure that my method will work.
@saket Have you got any thoughts after my research? Maybe my version with Box is completely wrong. My task is to draw lines using Canvas. In the future I will need Modifier to drag and drop lines. It seems to me that in this case I can't do without dp. I will be glad to receive any message, even if you can't help me. The point is that canvas elements are rendered perfectly! But elements with modifier.... I don't know what to come up with anymore

here is a super terrible solution, but a solution!
val zoomSpec = ZoomSpec(maxZoomFactor = 3f)
    val zoomableState = rememberZoomableState(zoomSpec = zoomSpec)
    val pdfFile = File(uiState.currentDrawing.drawingFilePath)
    val pathDrawing = pdfFile.absolutePath.replace(".pdf", "_drawing.jpg")
    val localFirstPoint: MutableState<Offset?> = remember { mutableStateOf(null) }
    var containerSizeDp: Pair<Dp, Dp> by remember { mutableStateOf(Pair(0.dp, 0.dp)) }
    val curDensity = LocalDensity.current
    var containerSizePx by remember { mutableStateOf(IntSize.Zero) }
    val customViewConfiguration = object : ViewConfiguration by LocalViewConfiguration.current {
        override val doubleTapTimeoutMillis: Long
            get() = 0

    }
    LaunchedEffect(
        uiState.topBarMode,
        uiState.photoMode,
        uiState.defectMode,
        uiState.instrumentalMode,
        uiState.clearLineTrigger
    ) {
        localFirstPoint.value = null
    }
    CompositionLocalProvider(LocalViewConfiguration provides customViewConfiguration) {
        Box(modifier = Modifier.fillMaxSize()) {
            ZoomableAsyncImage(
                model = ImageRequest.Builder(LocalContext.current)
                    .data(pathDrawing)
                    .memoryCachePolicy(CachePolicy.DISABLED)
                    .build(),
                state = rememberZoomableImageState(zoomableState),
                onDoubleClick = { _, _ -> },
                onClick = { offset ->
                    val transformation = zoomableState.contentTransformation
                    val scale = transformation.scale
                    val offsetX = transformation.offset.x
                    val offsetY = transformation.offset.y
                    val point =
                        Offset(
                            ((offset.x - offsetX) / scale.scaleX),
                            ((offset.y - offsetY) / scale.scaleY)
                        )

                    if (localFirstPoint.value == null) localFirstPoint.value =
                        point
                    else {
                        val frPoint = localFirstPoint.value!!
                        localFirstPoint.value = null
                        uiAction(
                            WorkWithDrawingAction.AddDefect(
                                isClosed = false,
                                points = listOf(frPoint, point),
                            )
                        )
                    }
                },
                modifier = Modifier
                    .fillMaxSize()
                    .onGloballyPositioned { coordinates ->
                        containerSizePx = coordinates.size
                        val widthDp = with(curDensity) { coordinates.size.width.toDp() }
                        val heightDp = with(curDensity) { coordinates.size.height.toDp() }
                        containerSizeDp = Pair(widthDp, heightDp)
                    },
                contentScale = ContentScale.Crop,
                contentDescription = null
            )
            if (uiState.endInit) {

                val strokeWidthForLine: Float
                when (uiState.currentFormat) {
                    Format.A4 -> {
                        strokeWidthForLine = 18f
                    }

                    Format.A3 -> {
                        strokeWidthForLine = 16f
                    }

                    Format.A2 -> {
                        strokeWidthForLine = 14f
                    }

                    Format.A1 -> {
                        strokeWidthForLine = 12f
                    }

                    else -> {
                        strokeWidthForLine = 10f
                    }
                }
                val defectItem =
                    uiState.botAppBarItems.find { it.mode == BotAppBarMode.DEFECT_MODE }!!
                if (defectItem.visible.value) {
                    uiState.defectsList.forEach { defect ->
                        val coordinatesType = object : TypeToken<List<Coordinates>>() {}.type
                        val pointsList: List<Coordinates> =
                            Gson().fromJson(defect.defectPoints, coordinatesType)
                        val appCoordinatesFirst = viewModel.getAppCoordinates(
                            pointsList.first()
                        )
                        val appCoordinatesLast = viewModel.getAppCoordinates(
                            pointsList.last()
                        )
                        val frX = (appCoordinatesFirst.x)
                        val frY = (appCoordinatesFirst.y)
                        val scX = (appCoordinatesLast.x)
                        val scY = (appCoordinatesLast.y)
                        val (minX, maxX) = if (frX < scX) frX to scX else scX to frX
                        val (minY, maxY) = if (frY < scY) frY to scY else scY to frY
                        val width = maxX - minX
                        val height = maxY - minY
                        val widthDp = with(LocalDensity.current) { width.toDp() }
                        val heightDp = with(LocalDensity.current) { height.toDp() }
                        val maxBoxWidth = containerSizeDp.first
                        val maxBoxHeight = containerSizeDp.second

                        val numBoxesX = ceil(widthDp / maxBoxWidth).toInt()
                        val numBoxesY = ceil(heightDp / maxBoxHeight).toInt()

                        for (boxX in 0 until numBoxesX) {
                            for (boxY in 0 until numBoxesY) {
                                val currentMinX = minX + boxX * containerSizePx.width
                                val currentMinY = minY + boxY * containerSizePx.height

                                val currentWidth = min(maxBoxWidth, widthDp - boxX * maxBoxWidth)
                                val currentHeight = min(maxBoxHeight, heightDp - boxY * maxBoxHeight)

                                if (currentWidth > 0.dp && currentHeight > 0.dp) {
                                    Box(
                                        modifier = Modifier
                                            .graphicsLayer {
                                                val transformation = zoomableState.contentTransformation
                                                scaleX = transformation.scale.scaleX
                                                scaleY = transformation.scale.scaleY
                                                translationX =
                                                    (currentMinX * transformation.scale.scaleX) + transformation.offset.x
                                                translationY =
                                                    (currentMinY * transformation.scale.scaleY) + transformation.offset.y
                                                transformOrigin = TransformOrigin(0f, 0f)
                                            }
                                            .size(
                                                width = currentWidth,
                                                height = currentHeight
                                            )
                                            .background(Color.Red)
                                    )
                                }
                            }
                        }
                        Canvas(modifier = Modifier) {
                            val transformation = zoomableState.contentTransformation
                            val scale = transformation.scale.scaleX
                            val offsetX = transformation.offset.x
                            val offsetY = transformation.offset.y
                            val startX =
                                (frX * scale) + offsetX
                            val startY =
                                (frY * scale) + offsetY
                            val endX =
                                (scX * scale) + offsetX
                            val endY =
                                (scY * scale) + offsetY
                            drawLine(
                                color = Color.Black,
                                start = Offset(
                                    startX,
                                    startY
                                ),
                                end = Offset(
                                    endX,
                                    endY
                                ),
                                strokeWidth = strokeWidthForLine * scale
                            )
                        }
                    }
                }
            }
        }
    }
}

That is, instead of using one box, I will use as many as I need to fill in LOL


Show only chosen sensors

Fixes #313

Hang on @neukym there's an error

@neukym Ok it should be working now


ci: add codecov config

From https://github.com/ComPWA/pycompwa/commit/458ece4efaa81b275934a656dfd5a18402bec457
Closes https://github.com/ComPWA/tensorwaves/issues/19

@spflueger I think this one needs to be merged before the others, otherwise their codecov tests will fail


Question: What are the minimum hardware and software specifications for Mac

Given the recent virus, I am forced to work on my personal computer, which is a Macbook Pro. I installed the weekly Darwin.dmg file and installed VAPOR, but was unable to open it, with an error message recommending that I check to see the specifications.
My current device is a mid-2015 Macbook Pro running software version 10.13.6 High Sierra.

Vapor should work on that system. Could you specify what the error message you are encountering is and the installer version you are using?

I am told "Vapor cannot be opened because of a problem. Check with the developer to make sure vapor works with this version of macOS. You may need to reinstall the application. Be sure to install any available updates for the application and macOS.
Click Report to see more detailed information and send a report to Apple."
The installer I used was VAPOR3-3.2.0-Darwin-Weekly.dmg the week of march 30th.
Additionally I have a 2.5 GHz Intel Core i7 processor.

There should be a dropdown with additional information. You could also try running vapor from the command line to get this info. Could you try running the 3.2 release rather than the weekly build?

Alright, the main february 3.2.0 release I am able to boot up, but it seems to have a few issues.

Some of the buttons seem misaligned, such as the renderers, navigation, and settings bar. And the render window itself shrunk to the top of the screen. I kind of wanted to be able to help identify bugs in new releases now that I didn't need to ask for a custom installer.

Hi the graphical bugs you mentioned above exist because the GUI is not fully updated until you open a dataset. Once you import a dataset, these issues should be resolved.


New example project and cleanup. Dropping iOS cacheing

Previously we had 3 example project that were outdated. The purpose of this is to have 1 example project that we can maintain. It's a fresh RN project with 0.62.2. Inspiration and structure has been taken from react-native-webview.
Instead of creating separate example RN projects I suggest we just create multiple JS files. Right now I just made a simple basic player that we can easily maintain.
This removes the example project of cached videos for iOS. No idea how many people use it, but feels like something we could deprecate maybe?

@thymikee do you mind having a quick look at this new example/project structure? I saw the discussion you had with @vonovak. I couldn't get ios to work without specifying react-native run-ios --project-path example/ios. Everything seems to work fine btw, just not sure it's the ideal setup. Much appreciated 🙌

You can tell CLI where to look for the project through react-native.config.js: https://github.com/react-native-community/datetimepicker/blob/master/react-native.config.js

@thymikee for me it still picks the wrong one, although react-native config looks correct
module.exports = {
  dependencies: {
    'react-native-video': {
      root: __dirname,
    },
  },
  project: {
    android: {
      sourceDir: './example/android',
    },
    ios: {
      project: './example/ios/example.xcodeproj',
    },
  },
};

outputs: (react-native config)
"ios": {
      "sourceDir": "/Users/jensa/Developer/jensun/play/react-native-video/example/ios",
      "folder": "/Users/jensa/Developer/jensun/play/react-native-video",
      "pbxprojPath": "/Users/jensa/Developer/jensun/play/react-native-video/example/ios/example.xcodeproj/project.pbxproj",
      "podfile": "/Users/jensa/Developer/jensun/play/react-native-video/example/ios/Podfile",
      "podspecPath": "/Users/jensa/Developer/jensun/play/react-native-video/react-native-video.podspec",
      "projectPath": "/Users/jensa/Developer/jensun/play/react-native-video/example/ios/example.xcodeproj",
      "projectName": "example.xcodeproj",
      "libraryFolder": "Libraries",
      "sharedLibraries": [],
      "plist": [],
      "scriptPhases": []
    },

But when I run react-native run-ios:
npx react-native run-ios --verbose
debug Reading /Users/jensa/Developer/jensun/play/react-native-video/example/ios/Podfile
debug Reading /Users/jensa/Developer/jensun/play/react-native-video/example/ios/Podfile.lock
info Found Xcode project "RCTVideo.xcodeproj"

Doesn't matter if I use xcodeproj or xcworkspace. Npx or not.
react-native 62.2
cli 4.8.0
FYI I get the same error when trying to run datetimepicker.
Any ideas...?

@jenshandersson hi, let me know if need some assistance, I should have some time to spare. Thanks.

Thanks @vonovak but I've verified it's an issue with cli: https://github.com/react-native-community/cli/issues/1103#issuecomment-630187270

@benoitdion @n1ru4l  @cobarx what are your thoughts on my suggestion? This makes it much simpler to further develop this project and aligns with other RNC projects.

@jenshandersson It seems like you removed the video caching example. How to test whether the functionality is broken without an example app for it? How to test whether the functionality of the app without caching is broken after applying some changes that are targeted at the caching module without having two apps?

I didn't know the caching was widely used, was hoping we could deprecate and remove. It's a very niche use case that we don't have an implementation for Android. Again, I think we need to streamine this project otherwise the quality can never go up.
If we need the caching I suggest enabling it in the example then, if it's supported then we need to support it properly.

@n1ru4l or maybe we just add it as comments in the example/ios/Podfile, then people can use the optional caching. This way we keep 1 example that we can maintain, I don't feel it's reasonable to have 3 different RN projects with completely different code.

As discussed with @n1ru4l and maintainers we decided to remove iOS caching as we feel it's not part of the core video player. We can open an issue to discuss other ways of moving caching/offline playback forward, but currently this is out of scope of RNV. (One way would be to add a RNFS wrapper that downloads the assets before starting playback)
If you feel you need this functionality then feel free to stay at 5.0.x.

This will remove the Windows example code FYI. We would need someone from Microsoft to help out here, adding it back to this new example. Maybe @stmoy @acoates?

Thanks for the FYI @jenshandersson - I'm following up internally to see if we can find someone to add the Windows functionality to the new example.

@jenshandersson any updates on this PR? Looks like a really useful change and would be good to get this merged in.


Toml tag

fixes https://github.com/influxdb/telegraf/issues/320

I didn't realize we were already specifying configdirectory in the startup script, does this mean the packages I just published are broken? :sob:

Sorry, that is most likely the case. I included the change to the package script in this PR as well.

no problem, thanks for the PR :smile: I've updated & tested the packages already


OSError: /usr/local/lib/python3.10/dist-packages/torchtext/lib/libtorchtext.so: undefined symbol: _ZN2at4_ops10select_int4callERKNS_6TensorElN3c106SymIntE

Sorry, the library doesn't seem to be used in this repo.


Will look into later.


Xinhe/bge

Type of Change
feature or bug fix or documentation or others
API changed or not
Description
detail description
JIRA ticket: xxx
Expected Behavior & Potential Risk
the expected behavior that triggered by this PR
How has this PR been tested?
how to reproduce the test (including hardware information)
Dependency Change?
any library dependency introduced or removed

please change title, remove xinhe....


Unable to locate a development device; please run 'flutter doctor' for information about installing additional components.

Flutter run not working even after plugin android device and it does shows up in the listed device.
below is the doctor summary.
[✓] Flutter (Channel stable, v1.12.13+hotfix.5, on Linux, locale en_IN)
[!] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, set ANDROID_HOME to that location.
      You may also want to add it to your PATH environment variable.

    ✗ No valid Android SDK platforms found in /usr/lib/android-sdk/platforms. Directory was empty.
[✓] Android Studio (version 3.5)
[!] Android Studio
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.39.2)
[✓] Connected device (1 available)

! Doctor found issues in 2 categories.

Hi @mukkulsingh
if you are using flutter to develop an android app
you may want to double check your android studio installation
from the docs
let me know if the issue persists
thank you

yes i had installed android studio and it works perfectly fine when it comes to native android project

Hi @mukkulsingh
given your last message I feel safe to close this issue,
if you disagree please write in the comments
and I will reopen it.
Thank you


After upgrade this example no longer works.

Hi @pimeys
First, thanks for providing NixOS support.
nix flake update is enough to break this example.

Any suggestion?

Check that the prisma client version and whatever prisma --version reports are the same. Check that all the env vars set in the flake.nix are actually set in your environment.

So, I quickly checked and as it is with node/npm, you have to manually update the package.json to match the prisma engines/cli version that comes from nix:
diff --git a/package.json b/package.json
index 815489f..f9fdfde 100644
--- a/package.json
+++ b/package.json
@@ -11,11 +11,11 @@
   "license": "Apache-2.0",
   "devDependencies": {
     "@types/node": "^16.10.1",
-    "prisma": "3.1.1",
+    "prisma": "^3.8.0",
     "ts-node": "^10.2.1",
     "typescript": "^4.4.3"
   },
   "dependencies": {
-    "@prisma/client": "3.1.1"
+    "@prisma/client": "^3.8.0"
   }
 }

After doing so the prisma generate works correctly.

If you find some nice nix-fu to automate this, I'm all ears. I rarely work on the typescript side of things, so I'm not constantly annoyed by updating the versions of things...

Check that the prisma client version and whatever prisma --version reports are the same. Check that all the env vars set in the flake.nix are actually set in your environment.

Indeed version was mismatched at package.json, fixed it. But problem still persisted:

I see it working. You see a warning because Prisma does not officially support Nix/NixOS. You get the support because me and Tom are using NixOS for everything, but the official logic just confuses about the OS and gives a warning.

I checked with an example project and the warning is ugly but doesn't really matter here.
{
  "name": "nix-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "devDependencies": {
    "@types/node": "^16.10.1",
    "ts-node": "^10.2.1",
    "typescript": "^4.4.3"
  },
  "dependencies": {
    "@prisma/client": "3.8.0"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

const { PrismaClient } = require('@prisma/client')

const prisma = new PrismaClient()

async function main() {
  let data = await prisma.a.findMany();
  console.log(data)
}

main()
  .catch((e) => {
    throw e
  })
  .finally(async () => {
    await prisma.$disconnect()
  })

All the commands work:
> prisma db push
> node index.js

but the official logic just confuses about the OS and gives a warning

Thanks for the clarifying. I'm new to Prisma. So I wasn't really sure of what to expect. Good to know everything is alright despite the warning. :)
Regarding the version bump, CI can get latest version and substitute in place at package.json. The example could be a test so breakages would be noticed. Having example always fresh is also ideal. But it is up to you really.

I already complained to our javascript team about the warning. Don't hold your breath this to be a priority outside of a few Rust engineers, but I'll do my best to escalate the issue.


Print kokoro URL for new flakes

[trickle] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

LTGM


guide: update links from old "DVC Files" to new "Project Structure"

Continues #2098

Updates old links to https://dvc.org/doc/user-guide/dvc-files + small copy edits around them.
Removes outdated redirects from an even older guide structure.

All that said, we don't need to address this terminology issue in this PR! It's kind of unrelated to the link/redirect updates 😬

All that said, we don't need to address this terminology issue in this PR! It's kind of unrelated to the link/redirect updates 😬


SHOW GRANTS only shows for current database

In the documentation we say that show grants list all grants for all users and roles on all databases and tables.  This is not true, it will only show the grants for the users and roles on the current database.
To list all grants for all users and roles on all databases and tables you need to set the flag sql_safe_update to false, which allows you to set the current database to null, at that point you can list all grants for all users and roles on all databases and tables.
I am not sure we want to publicise this, but the documentation should be updated to say that show grants list all grants for all users and roles on the current databases and its tables at least.

@ericharmeling - not sure if this falls under SQL or security. Feel free to discuss with @Amruta-Ranade or reassign.

Picking this up for fixit


Dev guide: enable64bitSupport when subclassing a layer

Hi, I am trying to subclass a layer in deck.gl and have a question about the 64bit layer support. Basically, I have two vertex shader files (one regular and one 64bit) that I would use to override the existing ones.  The user can flag fp64 attribute to toggle on or off the 64 bit feature. In the implementation of core layers, the function enable64bitSupport is used to check the flag. However, this function does not seem to be exported in deck.gl so I am not able to use it when developing a standalone program. I could grab the function and add it to my repo, but not sure if it is the best way to do it. Any thought or suggestion on this?

@rivulet-zhang you can just copy and paste the enable64bitSupport function for now...

@shaojingli I see. Thanks!


Not able to loop wave to ATRAC3 / PSP

I used both the portable and installed version of the tool to convert a wave to ATRAC3 / .at3 but the .at3 converted file will not loop even after clicking the loop file box before converting. I tested the converted file on PPSSPP but the music track will not loop.

Sorry for the delay in replying.
First, I would like to see what happened when you converted your files to ATRAC.
Simply converting with the loop box enabled will not create a looping ATRAC.
You need to specify the appropriate values for LoopStart and LoopEnd.

thank you for responding, I updated ATRAC3 and put here images of my input, in the picture, it shows there was no loop for 0 seconds each, even though I put the values for LoopStart and LoopEnd in the other image.

This is strange.
Could you please show us a screenshot of what the conversion settings screen looks like once?
It could be a bug on the application side and I would like to see that.

Yes, here are my settings:

if you couldn't perform a perfect loop, try to manually do it via command prompt, i usually do that for testing purposes

Are you using Win10 OS?
It looks like Set the loop point is unchecked, did you run the conversion with the exact same settings as in the screenshot?
Normally, if you are creating a looping ATRAC, this should be checked here, which is odd.
Also, from the screenshot, it looks like there is a glitch in the UI.
This will be fixed in the next update.

Ahh I see.. good luck then, I'm currently using goldwave this tool to make some BGM for old PSP games so yeah

@nachotacos69
I also use goldwave.
It is the tool that helped me in the creation of wangan's nub format.
With goldwave, you can do some clever things.
I have never used it to create ATRAC, so I don't know, but it is a hassle to play around with HxD etc. every time when it comes to creating nubs.

alright, I'll keep updating my stuff and probably share them along the way I hope

Thank you, checking the box to loop from beginning to end helped looped the track on its whole. If I were to set the loop point, the first box, would I need to copy the measure numbers for the beginning and end of the track from the preview measure tool(the one with the blue lines)?


API data filtration and pagination

Context
the REST API list-endpoints needs for filters.
Decision
For the cardano-sl version of wallet there were filters and pagers as a part of a REST API.
So you can choose how much data you need, how it should be selected and sorted.
Right now there are no any ways to do something like that(except transaction list time-range querying). For example, /v2/stake-pools is returning about 500+ items, and spends about 2 seconds for it.
This is not scalable solution with linear perfomance degradation.
Acceptance Criteria

The API must support filtration and pagination of lists returned by endpoints.
There should be optional parameters for query for this purpose.

Development
QA

Hi :)
Thanks for reaching out. We are currently analyzing the need for pagination on various endpoint. In most cases however, it is rather reasonable to de-prioritize it over more important features.
Incidentally, we are already measuring database query times as well as API response latency delays on nightly builds (see https://buildkite.com/input-output-hk/cardano-wallet-nightly/builds/329).
As for the list stake pools endpoint, it is a bit singular and pagination wouldn't do any help here. This endpoint has to resolve data from 3 data-sources and make sure they are in sync altogether. One of source being a github repository :upside_down_face:  ... the metadata from the registry are cached however in order to remove the main bottleneck in the call. Still, we haven't yet spent much time looking for any other optimizations in this area. I agree that ~1s with caching still is a long time. But, there are ways to approach the problem before introducing pagination.
09:06:21 $ time cardano-wallet stake-pools list
real	0m2,665s
user	0m0,105s
sys	0m0,030s

09:06:24 $ time cardano-wallet stake-pools list
real	0m1,157s
user	0m0,141s
sys	0m0,012s

Having said that, note that we keep track of user stories and feature backlog in a different issue tracker (on JIRA). Pagination is already part of our backlog; I'll therefore close this issue, but, point heard :)