issue #19 : create GET /categories endpoint, retrieves all categories

issue #19 : create GET /categories endpoint, retrieves all categories

Current coverage is 98.09% (diff: 100%)

Merging #33 into dev will not change coverage

@@                dev        #33   diff @@
==========================================
  Files             8          8
  Lines           105        105
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            103        103
  Misses            2          2
  Partials          0          0

Powered by Codecov. Last update 48c3ff6...edd09f2


an mistake in the article on page:https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Functions

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details

[ ] New documentation

[x] Correction or update

Details
There is an mistake in the article on page:

Another mistake:

And one more mistake:

Functions

Apologies, but we don't have the bandwidth to maintain translations; you are more than welcome to edit the page yourself.


Fix cached pool fetcher

Fixes #632
The CachedPoolFetcher was only caching a single pool per token pair even if multiple pools were fetched by inner. Components relying ont he Cache (e.g. the price estimate) would therefore only get a single pool on cache hits leading to suboptimal price estimates.
Test Plan
Adjusted the unit test (failed before this change) and made sure we are now getting the best Uniswap price when trying to sell 100 WETH for UNI:
http://localhost:8080/api/v1/markets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2-0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984/sell/99995000000000000000
And the best Sushiswap price when trying to sell 100 WETH for SUSHI
http://localhost:8080/api/v1/markets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2-0x6B3595068778DD592e39A122f4f5a5cF09C90fE2/sell/99992840000000000000
Compared to expected values by using https://swap.archerdao.io/#/swap

This is also covered by the unit test.


NuGet package for Rhino.Inside assembly resolver

Create a NuGet package for the Rhino.Inside assembly resolver that depends on the RhinoCommon, Grasshopper and RhinoWindows packages.
This will reduce the amount of boilerplate required to set up new Rhino.Inside projects.
See also RH-54969

Does this code handle cases where RhinoCommon.dll or Grasshopper.dll would be loaded in another AppDomain, for example, one which enables Shadow Copying? I'm running into issues where a host app might have its own Assembly Resolving code and creates new AppDomains. This means that the Grasshopper.dll being called is in a different AppDomain than the one used by Rhino.

The current package works on PackageReference projects, but not when packages.config is used.

I just tried to switch over to use the Rhino.Inside nuget package for compute.rhino3d and got the following message

Attempting to gather dependency information for package 'Rhino.Inside.0.1.1' with respect to project 'compute.geometry', targeting '.NETFramework,Version=v4.6.2'
Gathering dependency information took 61.75 ms
Attempting to resolve dependencies for package 'Rhino.Inside.0.1.1' with DependencyBehavior 'Lowest'
Unable to find a version of 'RhinoWindows' that is compatible with 'Rhino.Inside 0.1.1 constraint: RhinoWindows (>= 7.0.19274.12465-wip)'.
Time Elapsed: 00:00:00.1081074
========== Finished ==========

Looks like this is a known issue with packages that have a stable version but have prerelease dependencies.

NuGet/Home#2944


Add an option to remove unphysical solutions data in the result object

Currently, unphysical branches are encoded with NaNs, but data about unphysical branches are kept. This is done in favor of plotting since NaNs are ignored. However, in problems where neither plotting (nor branch ordering) is important, storing unphysical branches seems an overkill. An option to sparsify data, in order to avoid storage of result objects filled with NaNs would be appreciated.

I agree. I already had I lot of annoyances with this. I propose we add a keyword to the transform_solutions function to filter the solutions of specific classes.

We should save by default physical solutions. We could then use simple Run-Length encoding to store the data:
[https://en.wikipedia.org/wiki/Run-length_encoding]


Unable to assign a different shortcut in FancyZones

Microsoft PowerToys version
0.72.0
Installation method
GitHub, PowerToys auto-update
Running as admin
None
Area(s) with issue?
FancyZones
Steps to reproduce

Navigate to the FancyZones settings page
Change the shortcut for "Previous Window" by clicking on the pencil button to "Alt+PgUp"
Try to do a similar change to "Next Window" - > "Alt+PgDn"

✔ Expected Behavior
I should be able to assign that shortcut similar to how I did it for "Previous Window"
❌ Actual Behavior
The assignment doesn't work.
I tried editing and saving, it check if the ui wasn't getting updated.. But that wasn't the issue.
Could repro in 2 laptops with the same version..
Other Software
No response

Not able to repro this, going to close. Let us know if you see this again!


Add requirements, ruff pre-commit hook and pytest config

Will add the guidelines in another PR

looks a bit overkill for a project with a single file and 200 LOC tbh.
will this add any additional steps for somebody trying to just run the code ?

looks a bit overkill for a project with a single file and 200 LOC tbh.
will this add any additional steps for somebody trying to just run the code ?

No it won't add any additional steps to just run the code.
These are  formatter and guides for contributors.
It will only effect the developers by making sure everyone share the same config since everyone might have their own config locally

Will add the guidelines in another PR

https://github.com/moest-np/center-randomize/pull/32


Rebinding to boost::small_vector stops working starting from GCC 13

Online repro: https://gcc.godbolt.org/z/aMaTWeWj5
I'm not sure if the issue wrt allocator rebinding is in here or in boost::small_vector, if you happen to have an idea...

I looked into this, as far as I can say this is a bug in boost::small_vector. In this commit they added some safety checks to libstdc++: https://github.com/gcc-mirror/gcc/commit/64c986b49558a7c356b85bda85195216936c29a3
And I think due to these the build fails. I don't think I can do anything about this in my code, I'd report a bug in boost
Also, semi-related, I have created an issue to add allocator support to ankerl::svector, then this would be an alternative: https://github.com/martinus/svector/issues/51

Here is a smaller reproducer, with just boost: https://gcc.godbolt.org/z/b4TnYdWxK

thanks!


Email is not getting verified before sending email.

Email is not getting verified.
const msg = {
       to<EMAIL_ADDRESS>       from<EMAIL_ADDRESS>       subject: 'Sending with SendGrid is Fun',
       text: 'and easy to do anywhere, even with Node.js',
       html: 'and easy to do anywhere, even with Node.js',
     };
     let result = await sgMail.send(msg);
     console.log(result);

In above code I am writing an invalid email in agains to. But sendGrid is still sending the same result as the valid email. every target email must be verified before sending email. it must be make sure that the target email exist or not.

Hello @AhmadRaza786,
Are you requesting that we implement a service where we check the validity of the email before you send it?
With Best Regards,
Elmer

Hello @thinkingserious , Exactly this is what I am asking for. Currently, SendGrid is not verifying that the target email is exist or not. It must take care of this verification. And I am ready to contribute in SendGrid for it.

I'm on It.

Closing as this is a non-library issue.


note command

Adds the command /note or /notes that prints the link to the thoughts on note taking.
These thoughts are collected from TOP discord server I believe, and someone has made it as a google document.
https://docs.google.com/document/d/1fas8xwMRi4GVrnCtp9U5OL7Y9QB6v5H_Wx19m4UQwgI/edit
I have seen a lot of people asking about note taking, so I thought this could be useful.

I appreciate you adding this command! I have a small ask, we changed the formatting of the commands slightly. An example of this can be found here. Additionally, we will be making it mandatory to add tests to any new commands to be added. An example of the tests can be seen here. It would be super helpful if you could perhaps consider at minimum refactoring the command to the new format, and super super helpful if you could add the spec file as well! Ultimately you can copy and paste the tests and just replace the callbacks strings with the appropriate note/notes strings. Let me know if you have any questions.

I appreciate you adding this command! I have a small ask, we changed the formatting of the commands slightly. An example of this can be found here. Additionally, we will be making it mandatory to add tests to any new commands to be added. An example of the tests can be seen here. It would be super helpful if you could perhaps consider at minimum refactoring the command to the new format, and super super helpful if you could add the spec file as well! Ultimately you can copy and paste the tests and just replace the callbacks strings with the appropriate note/notes strings. Let me know if you have any questions.

It would be super helpful if you could perhaps consider at minimum refactoring the command to the new format

Yes of course I can do it! But I am a bit confused if you mean just my command or all you want me to work on other commands as well?

and super super helpful if you could add the spec file as well! Ultimately you can copy and paste the tests and just replace the callbacks strings with the appropriate note/notes strings

I actually haven't gone through the test section yet, so I don't know how to implement it yet. But if this isn't urgent thing,I can try to go through basic materials of test and implement it? Or should I just copy and paste the strings like you said? :)

It would be super helpful if you could perhaps consider at minimum refactoring the command to the new format

Yes of course I can do it! But I am a bit confused if you mean just my command or all you want me to work on other commands as well?

and super super helpful if you could add the spec file as well! Ultimately you can copy and paste the tests and just replace the callbacks strings with the appropriate note/notes strings

I actually haven't gone through the test section yet, so I don't know how to implement it yet. But if this isn't urgent thing,I can try to go through basic materials of test and implement it? Or should I just copy and paste the strings like you said? :)

There’s going to be a totally new README with instructions, you won’t need any testing experience :)
That said I’m totally happy to do it, though the bot test branch should be merged to master today I believe, and we really made it to where people don’t have to do much more than copying and pasting and changing the command name in the tests. It’s super important since as you might have seen, our commands are super out of wack as far as regex.

There’s going to be a totally new README with instructions, you won’t need any testing experience :)
That said I’m totally happy to do it, though the bot test branch should be merged to master today I believe, and we really made it to where people don’t have to do much more than copying and pasting and changing the command name in the tests. It’s super important since as you might have seen, our commands are super out of wack as far as regex.

The updated README has been merged, with test directions :)
https://github.com/TheOdinProject/odin-bot-v2/blob/master/README.md

The updated README has been merged, with test directions :)
https://github.com/TheOdinProject/odin-bot-v2/blob/master/README.md

Okay! I'll take a look at make a change today. I'm not sure if I can do it in the right way, please let me know if I do something stupid.

Okay! I'll take a look at make a change today. I'm not sure if I can do it in the right way, please let me know if I do something stupid.

That’s what the pull request and review process is for ;)

That’s what the pull request and review process is for ;)

So, I followed the instruction and everything went well but test. npm test creates a lot of fails, I am not too sure what I did wrong. Should I upload the error log?
Here's the brief look of it.

So, I followed the instruction and everything went well but test. npm test creates a lot of fails, I am not too sure what I did wrong. Should I upload the error log?
Here's the brief look of it.

That's okay- it's the other tests and they should fail because our regexes are incorrect. If you run npm test note.test.js or however you named the test file, it'll run those tests only! If those pass, I'm happy to merge if you provide a screenshot.

That's okay- it's the other tests and they should fail because our regexes are incorrect. If you run npm test note.test.js or however you named the test file, it'll run those tests only! If those pass, I'm happy to merge if you provide a screenshot.

Hi! I've just finished note command and its test file, if there's something to be fixed please let me know!

Hi! I've just finished note command and its test file, if there's something to be fixed please let me know!

@I3uckwheat Do you mind reviewing and merging this? Thank you!

@I3uckwheat Do you mind reviewing and merging this? Thank you!

I don't think we want to be linking to someone else's google document. That has some inherent risk we do not want to take on.

I don't think we want to be linking to someone else's google document. That has some inherent risk we do not want to take on.

Currently it passes most of the tests, however when it's preceded or followed by any characters or special characters, it still matches the word.
For example,
'Here is the thoughts on /notes!'
'Have a look at this a/notes'
'Have a look at this /notesb'
All these examples would still invoke the note command. Maybe this could be improved? Or are we okay with it?

Currently it passes most of the tests, however when it's preceded or followed by any characters or special characters, it still matches the word.
For example,
'Here is the thoughts on /notes!'
'Have a look at this a/notes'
'Have a look at this /notesb'
All these examples would still invoke the note command. Maybe this could be improved? Or are we okay with it?

Tests must pass. For example, this is a huge issue with our /google command. If you drop https://google.com/searchsomething in the chat, the google command fires off. Same with /code, if you drop a URL or something with "/code" in it, the code command fires off.

Tests must pass. For example, this is a huge issue with our /google command. If you drop https://google.com/searchsomething in the chat, the google command fires off. Same with /code, if you drop a URL or something with "/code" in it, the code command fires off.

That should be preventing pushes, but we need to fix all the other tests first

That should be preventing pushes, but we need to fix all the other tests first

I've updated my solution using negative lookahead and negative lookbehind.
Updated solution indicates that it shouldn't be followed any non-whitespace character(e.x 1, a, #, c, !).
Can you review them?

I've updated my solution using negative lookahead and negative lookbehind.
Updated solution indicates that it shouldn't be followed any non-whitespace character(e.x 1, a, #, c, !).
Can you review them?

Go ahead and post the passing tests as well :)

Go ahead and post the passing tests as well :)

There you go :)

Thanks for this! I really appreciate the work to fix everything and do the tests!

Thanks for this! I really appreciate the work to fix everything and do the tests!


OAuth support

Currently, both backends theoretically support logging in and making authenticated edits, using regular cookie-based sessions. (Though for the browser backend, you’ll be subject to CORS restrictions, so the usefulness of this is fairly limited.) However, for the Node.js backend to be more useful, we should really figure out OAuth support. This will allow m3api to be used for tool backends.

We can probably limit this to OAuth 2.0, which seems to be much simpler to use – after you’ve finished the authorization, you get an access token that you just include as a constant header in all your requests: Authorization: Bearer [hex]

Adding an Authorization header will likely require changes to the internal interface, which means #13 is relevant to this issue.

So the good news is that OAuth 2.0 is pretty easy to do. At least for a confidential client (i.e. one that can keep its client secret secret – one with a backend, that is), you don’t need to do any cryptographical stuff yourself – you just make some requests with parameters that get copied around.
The bad news is that MediaWiki implements OAuth 2.0 via the REST API. So this will definitely require a breaking change to the internal interface (cc #13 again), because the m3api-oauth extension package will need to be able to make requests to rest.php instead of api.php. (I think it’s safe to infer that URL from the API URL, though.)
Also, it seems the bearer token is only valid for 4 hours. The rest.php/oauth2/access_token response also includes a refresh_token that can apparently be used to get a new access token (haven’t tried that yet, though), but that would mean that m3api-oauth would somehow have to hook into m3api’s retry mechanism to automatically refresh the access token and then retry the request on authentication errors.
And I haven’t tried out how a non-confidential client works – that sounds pretty cool (you could probably do browser-only applications that make edits?), but requires something called a PKCE code challenge. (I got that link from mw:OAuth/For Developers – so far I haven’t found it tremendously useful tbqh.) Almost certainly that’s some cryptographical stuff (i.e. beyond copy+pasting things between requests).

I think for a first release of m3api-oauth (accompanying m3api 0.8.0), we can leave out refresh tokens and non-confidential clients. Let’s solve the easier case first and then do follow-up releases for more features.

Okay, that PKCE link is so confusing because it’s only a part of the documentation. Start here for the full chapter: https://www.oauth.com/oauth2-servers/pkce/
Also, it claims that PKCE is useful for confidential clients as well, so I guess once we support PKCE, we might as well use it all the time? But we can still go ahead without it for the initial release.
Also, why it’s recommended to use SHA2-256 for the PKCE stuff, clients who don’t have access to it are allowed to use plain text as well (and no other cryptographic primitives are needed). That’s good news to us, because crypto.subtle.digest() (usage) isn’t available in all the Node versions we support. We should probably use it if available, otherwise fall back to plain text. (Perhaps with a request option to opt out of plain mode being used, for paranoid people? Not sure.)

Here’s what an error for an expired access token looks like, by the way:
{
  "code": "mwoauth-invalid-authorization",
  "info": "The authorization headers in your request are not valid: Invalid access token",
  "docref": "See https://test.wikipedia.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
}

(The code is especially important for retry, cf. #24.)

Draft for an oauth.js that I’ll probably massage into a proper extension package on the train tomorrow:
import { DEFAULT_OPTIONS } from './core.js';

const secretTokenSymbol = Symbol('OAuthClient.secretToken');

class OAuthClient {

	constructor( consumerToken, secretToken ) {
		this.consumerToken = consumerToken;
		Object.defineProperty( this, secretTokenSymbol, {
			value: secretToken,
		} );
	}

}

async function getAuthorizeUrl( session, options = {} ) {
	const { 'm3api-oauth/client': client } = {
		...DEFAULT_OPTIONS,
		...session.defaultOptions,
		...options,
	};
	const restUrl = session.apiUrl.replace( /api\.php$/, 'rest.php' );
	const clientId = client.consumerToken;
	// TODO PKCE
	return `${restUrl}/oauth2/authorize?response_type=code&client_id=${clientId}`;
}

async function handleCallback( session, callbackUrl, options = {} ) {
	const { 'm3api-oauth/client': client } = {
		...DEFAULT_OPTIONS,
		...session.defaultOptions,
		...options,
	};
	const restUrl = session.apiUrl.replace( /api\.php$/, 'rest.php' );
	const accessTokenUrl = `${restUrl}/oauth2/access_token`;
	const code = new URL( callbackUrl ).searchParams.get( 'code' );
	const { status, headers, body } = await session.internalPost( accessTokenUrl, {}, {
		grant_type: 'authorization_code',
		code,
		callback_uri: callbackUrl,
		client_id: client.consumerToken,
		client_secret: client[ secretTokenSymbol ],
	}, { /* TODO user agent */ } );

	if ( status !== 200 ) {
		throw new Error( `OAuth request returned non-200 HTTP status code: ${status}` );
	}

	session.defaultOptions.authorization = `Bearer ${body.access_token}`;
}

export {
	OAuthClient,
	getAuthorizeUrl,
	handleCallback,
};

And how it’s used:
import * as readline from 'node:readline/promises';
import { stdin as input, stdout as output } from 'node:process';

import Session from './node.js';
import { OAuthClient, getAuthorizeUrl, handleCallback } from './oauth.js';

const session = new Session( 'test.wikipedia.org', {
	formatversion: 2,
}, {
	userAgent: 'lucas-oauth-test',
	'm3api-oauth/client': new OAuthClient( 'REDACTED', 'REDACTED' ),
} );

const rl = readline.createInterface( { input, output } );
const callbackUrl = await rl.question( 'Go to ' + await getAuthorizeUrl( session ) + ' and tell me where you got redirected: ' );
rl.close();
await handleCallback( session, callbackUrl );

console.log( await session.request( { action: 'query', meta: 'userinfo' } ) );

Also, while it’s recommended to use SHA2-256 for the PKCE stuff, clients who don’t have access to it are allowed to use plain text as well (and no other cryptographic primitives are needed). That’s good news for us, because crypto.subtle.digest() (usage) isn’t available in all the Node versions we support. We should probably use it if available, otherwise fall back to plain text. (Perhaps with a request option to opt out of plain mode being used, for paranoid people? Not sure.)

lmaoooo
For hashed PKCE, we need:

crypto.getRandomBytes() (generate random code verifier)
crypto.subtle.digest() (hash it)
btoa (Base64-encode it)

and of those three… btoa is the one with the worst Node support, only being supported since Node 16 (whereas the other two are supported since Node 15).
I guess it’s fine in the grand scheme of things – Node 15 is a non-LTS version, so by now, everyone should be either on Node ≤14 or ≥16, and so btoa and crypto should have the same Node support in the wild. (And Debian Bookworm is set to support Node 18, btw.) But it does mean that the name I envisioned for the “paranoid” option, requireCrypto, is arguably not appropriate, since crypto isn’t necessarily the defining feature (though it will be in browsers, which have supported btoa since always).
Or we just polyfill / roll our own Base64. (We need a modified version of it anyways, so we could roll those modifications directly into our Base64 implementation, I suppose.)

After sleeping on it: there’s absolutely no reason to support Node 15. Let’s call the option requireCrypto (or some other verb), and just throw an error if the platform has crypto but not btoa().

With the initial release of m3api-oauth2, I think we can close this task \o/


test: 💍 Time tampering tests for _.throttle and _.deobounce

✅ Closes: #2883
Changes
Tests only:

Monkey patch Date.prototype.getTime and Date.prototype.valueOf methods and Date.now method in _.debounce and _.throttle test cases,
Provide additional test case asserting the outputs before and after monkey patching,
Remove the reference to _.now method in test cases as the underlying implementation of library methods don't reference the methods from the _ object but rather call dependent methods directly.

Checklist
After the changes I ensured that:

no stylistic or unwanted errors are present, by running npm run lint,
no tests are failing, by running npm run test,
build passes with no issues, by running npm run bundle.

Done

[x] Added/updated unit tests for this change
[x] Included links to related issues/PRs

Additional notes
The underlying changes could've been done by monkey patching the native Date and Date.prototype methods in before (or beforeEach) and after (or afterEach) hooks in the Functions QUnit module. However, that would require a minor changes in two other test cases from the same module (as the valueOf method of the Date.prototype would be changed for all test cases and always return the same value which would cause certain test cases to hang to the operations new Date - date < amount as that will always result in the false value in the while loop).
I can provide the change if necessary using before and after hooks instead.
I just wanted to assure that the implementation of _.throttle and _.debounce methods will not break, if the system time would be tempered (monkey patched).
I guess the test cases can be safely omitted as they're redundant @jgonggrijp?
If so, I can provide another commit to the same PR removing the obsolete test cases.

Coverage remained the same at 95.197% when pulling 4d5d1984cb8132c5f73ff020b261c1bc8724b771 on ognjenjevremovic:test/time-tampering-tests into a4cc7c065517f0fa132217161794b015ca537a5d on jashkenas:master.

Hey @jgonggrijp, thank you so much for such an in depth review.
I really appreciate it!

I have a few very minor change requests about the assertion comments, otherwise everything looks excellent.

You're right; the messages should definitely be more concise.
To be honest, I wasn't sure how to structure the assertion comments. I wanted to somehow diversify the messages between _.debounce and _.throttle but I'm not that good with the wording; I thought prefixing the assertion comments with the method name could help.
I'll be sure to address these with the suggested changes.

Out of curiosity: why is there a ring emoji in the commit title? Is it some kind of cultural reference?

I apologize for this 😄 .
I usually like to structure the commit messages in a descriptive manner, using the format: intention: + summary of the change (as a commit message head) followed by a long description. I use git-cz to make such formated commit messages.
I think the latest major version of the tool included the emojis and automatically prepends them to every commit message (made using the tool).
I can change the commit message and remove the emoji if you'd like?
* (Just to assure you, the emoji does not represents a symbol of any sort and it was unintentional as it does not really provide any meaningful value to the actual commit message).
Thank you for noticing such a detail 🙂 .

Which test cases are obsolete?

Just wanted to check if adding these 2 new test cases provided value to the overall tests and didn't include redundancy.
Also, I wanted to check if it is ok to keep the altered tests now that they use Date.prototype methods instead of _.now.
I think you already answered my question in your review; we want to keep all the tests.

I'm fine with the current solution, but if you want to refactor things a little bit, I'm fine with that, too.

If code duplication in tests is not too big of a trouble and doesn't introduce the confusion in the test cases by any means, I'm fine with the current implementation as well.
Using beforeEach and beforeAll would require certain changes and might be different from all other scenarios in the tests.

Congratulations with your first contribution! Please feel welcome to make more contributions.
(A suggestion, if you feel up to it: I have a big PR waiting (#2908) which requires multiple reviews by different people. If you could take a look at the diff and leave some comments, or if you know other, seasoned Underscore users who might be willing to do a code review (or contribute a real-world benchmark), that would be great.)


Using simple Doctrine queries results in an paginator exception

Passing a QueryBuilder that returns simple results, such as:
$query = $repository->createQueryBuilder('product')
    ->select('product.name');

results in an exception:

RuntimeException: The Paginator does not support Queries which only yield ScalarResults.

this can be fixed by applying a hint with custom output walker to the query in the data table type builder:
class ProductDataTableType extends AbstractDataTableType
{
    public function buildDataTable(DataTableBuilderInterface $builder, array $options): void
    {
        $builder->getQuery()->setHint(
            \Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER,
            \Doctrine\ORM\Query\SqlWalker::class,
        );
    }
}

This, however, can be handled automatically, see implementation in Sonata Admin:
https://github.com/sonata-project/SonataDoctrineORMAdminBundle/blob/4.x/src/Util/SmartPaginatorFactory.php#L66-L68

Fixed in 0.16


stderr on pre/postflight

running the latest beta on server and Client. I get the following output. Everything still uploads fine but getting some errors. I imagine it's unique to my environment. Looking for some pointers.
postflight stderr: 2015-10-12 14:49:18.498 Python[26392:315170] connection_willSendRequestForAuthenticationChallenge_ 2015-10-12 14:49:18.499 Python[26392:315170] Authentication challenge for Host: munkireport.(companyspecifics).com Realm: None AuthMethod: NSURLAuthenticationMethodServerTrust 2015-10-12 14:49:18.499 Python[26392:315170] Allowing OS to handle authentication request

You can safely ignore these messages. They're purely informational. I'll disable them in a future build.

Cool, good to know.. Thanks!


Cannot sync full node, no peers

Nengcoin version v<IP_ADDRESS>-randomSpike-1.12.x, Linux
I tried to run full node but I cannot find any peers. I run node for more than 24 hours and node received 0 blocks, nothing. This doesn't look like a good decentralized network... :-(
debug.log file looks like this:
2023-08-29 17:25:00 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:25:34 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:25:34 connect() to <IP_ADDRESS>:56452 failed after select(): Connection refused (111)
2023-08-29 17:25:35 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:25:41 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:25:41 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:25:43 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:25:56 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:26:55 connect() to <IP_ADDRESS>:54728 failed after select(): No route to host (113)
2023-08-29 17:26:56 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:27:02 connect() to <IP_ADDRESS>:38016 failed after select(): Connection refused (111)
2023-08-29 17:27:14 connect() to <IP_ADDRESS>:42358 failed after select(): Connection refused (111)
2023-08-29 17:27:48 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:27:54 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:28:17 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:28:34 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:28:35 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:28:52 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:29:09 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:29:11 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:29:12 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:29:30 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:29:39 connect() to <IP_ADDRESS>:58846 failed after select(): No route to host (113)
2023-08-29 17:30:02 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:30:47 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:31:10 connect() to <IP_ADDRESS>:6377 failed after select(): Connection refused (111)
2023-08-29 17:31:16 connect() to <IP_ADDRESS>:6377 failed after select(): No route to host (113)
2023-08-29 17:31:17 connect() to <IP_ADDRESS>:47748 failed after select(): Connection refused (111)

debian@thin:~/nengcoin_2.3.0_i686_linux-gnu$ ./nengcoin-cli getinfo
{
  "version": 2030000,
  "protocolversion": 70015,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 0,
  "timeoffset": 0,
  "connections": 0,
  "proxy": "",
  "difficulty": 0.000244140625,
  "testnet": false,
  "keypoololdest":<PHONE_NUMBER>,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00100000,
  "errors": ""
}

debian@thin:~/nengcoin_2.3.0_i686_linux-gnu$ ./nengcoin-cli getmininginfo
{
  "blocks": 0,
  "currentblocksize": 0,
  "currentblockweight": 0,
  "currentblocktx": 0,
  "difficulty": 0.000244140625,
  "errors": "",
  "genproclimit": 1,
  "networkhashps": 0,
  "pooledtx": 0,
  "testnet": false,
  "chain": "main",
  "generate": false
}

debian@thin:~/nengcoin_2.3.0_i686_linux-gnu$ ./nengcoin-cli getpeerinfo
[
]

Several alive nodes could be found at  http://nengexplorer.mooo.com:3001/network

This is likely a firewall issue.  There are tons of public nodes there as shown in block explorer.
The new version v2.3.0 is fast on node syncing in general, significantly better than older versions. This should not be issue now.


Target for the v0.3 release

[ ] #35
[ ] #34
[ ] #33
[ ] #32

#38 improve documents for layout and design


Unexpected cancellation behavior

Hi!
I stumbled upon your library and it looks very promising! Thanks for the hard work you put into it.
While testing timeouts and cancellations, the behavior I am seeing is not what I would expect though. Here's an example:
public void test() {
     return CompletableTask
        .supplyAsync(() -> {
            try {
                Thread.sleep(10_000); // sleep 10s
            } catch (InterruptedException e) {
                System.out.println("Interrupted");
                throw new CompletionException(e);
            }
            System.out.println("Interrupted? " + (Thread.currentThread().isInterrupted() ? "yes" : "no"));
            return "foo";
        }, Executors.newCachedThreadPool())
        .orTimeout(Duration.ofMillis(200), true)
        .join();
}

With such a code, I would expect the Thread.sleep() to be interrupted after 200ms but it does not seem to be the case ("Interrupted: no" is printed after 10s). Is that the expected behavior? Am I doing something wrong?
Also, I noticed that different executors will provide different results. Using newCachedThreadPool() will return a result after 200ms while using newSingleThreadExecutor() or Spring's ThreadPoolTaskExecutor will return but only after 10s. Again, is that expected?
Thanks!

Hello,
Yes, true interruption depends on the concrete executor used (mentioned in readme).
Smth. strange with the number of the available threads. For ex, Executors.newFixedThreadPool(2) will work as expected, but Executors.newFixedThreadPool(1) will not. Need to double-check why it happens, looks like there are should be at least 2 threads available.
Spring's ThreadPoolTaskExecutor is merely a wrapper, please try to use it with underlying pool of 2+ threads - it should work.

Issue confirmed -- will fix it shortly.

Fixed, see release 0.9.4

Thansk @vsilaev!
Just to confirm the expected behavior: with the code above, I'm expecting to have the main thread return in 0.2s (which works as long as there are more than 2 threads in the pool). But I'm also expecting to have the task cancelled (and therefore the Thread.sleep interrupted). So the test above should print "Interrupted" and throw.
Instead, it seems like the task is not properly cancelled, as "Interrupted? no" is printed after 10s.
I can confirm that setting cancelOnTimeout = true prevents the sequence from running in case a thenApplyAsync is added for instance.
Is the expectation that the running thread should be interrupted on timeout wrong?

It's interrupted now, your test is in repo now, and here is an output
Interrupted
Exception in thread "main" java.util.concurrent.CompletionException: java.util.concurrent.TimeoutException: Timeout after PT0.2S
	at net.tascalate.concurrent.SharedFunctions.wrapCompletionException(SharedFunctions.java:46)
	at net.tascalate.concurrent.Promise.join(Promise.java:81)
	at net.tascalate.concurrent.TimeoutDifferentExecutors.main(TimeoutDifferentExecutors.java:23)
Caused by: java.util.concurrent.TimeoutException: Timeout after PT0.2S
	at net.tascalate.concurrent.Try.doneOrTimeout(Try.java:112)
	at net.tascalate.concurrent.Promise.lambda$orTimeout$6(Promise.java:168)
	at java.base/java.util.function.Function.lambda$andThen$1(Function.java:88)
	at net.tascalate.concurrent.AbstractCompletableTask.lambda$thenApplyAsync$0(AbstractCompletableTask.java:150)
	at net.tascalate.concurrent.CallbackRegistry.lambda$callCallback$0(CallbackRegistry.java:282)
	at net.tascalate.concurrent.CompletableSubTask$DelegatingCallable.call(CompletableSubTask.java:46)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at net.tascalate.concurrent.CompletableSubTask.fireTransition(CompletableSubTask.java:66)
	at net.tascalate.concurrent.CallbackRegistry.lambda$callCallback$1(CallbackRegistry.java:284)
	at net.tascalate.concurrent.PromiseAdapter$1.execute(PromiseAdapter.java:47)
	at net.tascalate.concurrent.CallbackRegistry.callCallback(CallbackRegistry.java:284)
	at net.tascalate.concurrent.CallbackRegistry$IntermediateState.lambda$addCallbacks$0(CallbackRegistry.java:195)
	at net.tascalate.concurrent.CallbackRegistry$IntermediateState.callSuccessCallbacks(CallbackRegistry.java:211)
	at net.tascalate.concurrent.CallbackRegistry.success(CallbackRegistry.java:72)
	at net.tascalate.concurrent.AbstractCompletableTask.success(AbstractCompletableTask.java:130)
	at net.tascalate.concurrent.AbstractCompletableTask.lambda$doApplyToEitherAsync$9(AbstractCompletableTask.java:391)
	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2144)
	at net.tascalate.concurrent.CompletableFutureWrapper.onSuccess(CompletableFutureWrapper.java:41)
	at net.tascalate.concurrent.CompletableFutureWrapper.success(CompletableFutureWrapper.java:36)
	at net.tascalate.concurrent.Timeouts.lambda$delay$0(Timeouts.java:44)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:835)

Don't sure how you are adding thenApply, but it should be either:
        CompletableTask
           .supplyAsync(() -> {
              ...
           }, Executors.newFixedThreadPool(1))
           .orTimeout(Duration.ofMillis(200), true)
           .thenApply(Function.identity())
           .join();

OR
        CompletableTask
           .supplyAsync(() -> {
              ...
           }, Executors.newFixedThreadPool(1))
           .dependent()
           .thenApply(Function.identity(), true)
           .orTimeout(Duration.ofMillis(200), true)
           .join();

Notice the use of the dependent promise here: otherwise timeout will cancel only the promise returned from thenApply and will not interrupt the thread in supplyAsync

Ah thanks! I was missing the true param on the thenApply.


Proposal: Dockerized Application Configuration Management

This proposal suggests a new way to manage the application configuration information for Docker images and containers, which takes advantage of centralized configuration management services and cloud-style application principles.
See the proposal file for a complete description.

Can you please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "master" git@github.com:yeasy/docker.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

This will update the existing PR, so you do not need to open a new one.

Just signed it, please have a look.
Thanks!

Thanks for creating this proposal. While I see the value of using a configuration database, I don't think this (at least, not in the form it's proposed currently) needs to be in the core functionality of Docker. I can see some value in having "plugins/drivers" for setting environment variables (as alternative to just literal values and --env-file), but perhaps this is better suited for the orchestration software that uses Docker.
The current Remote API offers the means to set the environment variables when creating a container; orchestration software should be able to read the configuration from a configuration database and set the right environment variables when creating the container.
From that point of view, I think that implementing this proposal in docker compose may be better.

We propose to add a new instruction, e.g., ENV_DB or CFG_DB to specify where the configuration information store.

Specifying where the configuration should be retrieved from is a "runtime" configuration (ie, if I run a container from the image, I'll use my configuration-server, which will be a different server than you are using). Because of that, I don't think this should be something to specify in the Dockerfile.
on environment variables
Although environment variables are encouraged by "12 factor", environment variables also have downsides. For some applications, other storage mechanisms (such as etcd, which you mentioned) may be more suitable. Some downsides of environment variables (in Docker);

the variables are included in the output of docker inspect, which may not be wanted when storing sensitive data
environment variables set by docker are "fixed", ie, Docker cannot update their values on a running container (this may be needed for some configurations)
when linking containers, the environment variables that are set by Docker will be exposed to the linked container; the linked container can obtain possibly sensitive data.
environment variables in general are not the safest storing mechanism

All this is my personal opinion (I'm not a maintainer), I hope you understand my reasoning above.
Thanks again for creating this proposal, even though I'm currently "-1" on this (nothing set in stone), I really appreciate your effort to create a proposal; much appreciated!

@thaJeztah Thanks for your answer. I think you're right, it is probably too heavy functionality to have in core.
@yeasy Probably some orchestration tools better for this, swarm for example already use distributed storage.


undefined method 'queue'  raised in info endpoint.

Hi.
Since updating from 0.10.1 to 1.0.0 we're intermittently seeing 500s in the hirefire endpoint.
2024-02-01 11:54:44 +0000 Rack app ("GET /hirefire" - (xxx.xx.xx.xxx)): #<NoMethodError: undefined method 'queue' for {"queue"=>"default", "payload"...
I haven't been able to work out what the scenario is that triggers the issue, but it's frequent.
It seems queue is being called on a Hash at some points.
ruby 3.3.0
hirefire-resource (1.0.0)
rails (7.1.3)
sidekiq (7.2.1)
sidekiq-ent (7.2.1)
sidekiq-pro (7.2.0)

@DanMegaGamer, thanks for reporting the issue. Did you, by any chance, upgrade both hirefire-resource to version 1 and Sidekiq to version 7 (both major) simultaneously?
I think I know what might be happening. I'm currently investigating it, and I will get back to you soon.

hi @mrrooijen, thanks for reply, we did upgrade hirefire-resource  0.10.1 to 1.0.0 recently, but the update to Sidekq 7.2.0 was back in November. The issue seemed to arise after the hirefire-resource update was deployed.

@DanMegaGamer Sidekiq introduced a change in version 7.2.1 where a certain value was changed from a Hash to Sidekiq::Work. This modification affects how the data of that value should be accessed. I've just released hirefire-resource v1.0.1, which should address this issue. Give it a try and let me know how it goes.

Hey @mrrooijen, that does seem to have fixed the issue, thank you.

Great! Thanks for confirming.


It is not working with Angular 2 rc 3

Im trying to deploy in my app this fantastic component, but with the changes in RC 3 with forms dont work properly... You will update the component to the last version? Thank you!

I'd advise waiting until the forms component is stabilized before asking for changes. Angular has moved two versions of RC in the past few weeks alone. Wait until RTM.

Thanks for your answer @tylerjgarland, I agree !
If you can't wait @juligomez2, feel free to send a PR

Resolved in 1.0.4 (6eaff6db2e9b3a44f5802db03d715fb8d8fe59bd)


Release notes for 0.7.2

@VMRuiz requested a release with parameter mixins. I branched out 281f1f5 into 0.7.x to exclude more recent changes that we don’t want to release yet.

What prevents us from releasing main branch?

Yes, the seed URL field would just appear below the URL one, it would not be visually clear that you cannot combine both. We could release anyway, it’s not a big issue, but it’s not pretty.

Yes, the seed URL field would just appear below the URL one, it would not be visually clear that you cannot combine both.

Thanks! I think the way you did it here is the best, +1 to proceed with a branch.


Angular is deprecated - please migrate to React

Hello :wave: from Grafana Labs
We have detected that your plugin might still be using AngularJS and recommend migrating it to React, so that it may continue to operate successfully in future versions of Grafana.
You can read more on why and how by visiting our documentation: https://grafana.com/docs/grafana/latest/developers/angular_deprecation/
You can reach out to us with any questions via slack: slack.grafana.com - channel #plugins or our plugin development community forum

Hi @safchain
I just wanted to reach out directly regarding the above.
Given the plugins dependency on Angular and that it has not been updated in a number of years, it is at risk of being deprecated and removed from the catalog.
Are there any plans to update this plugin or should we go ahead and deprecate? If you would prefer we deprecate, and there is any specific guidance you would like to offer current users, please let me know and we can include that in any deprecation message.
If we don't hear anything in the next 30 days we'll go ahead and assume that deprecation is appropriate.
Thanks again for your contribution to the Grafana plugin ecosystem, we greatly value the time and effort that folks have put in to make plugins such as yours.
David

Hi David,
Thanks for reaching out to me. You can go ahead and deprecate it.
Regards,
Sylvain
Le jeu. 14 déc. 2023 à 21:57, David Harris @.***> a
écrit :

Hi @safchain https://github.com/safchain
I just wanted to reach out directly regarding the above.
Given the plugins dependency on Angular and that it has not been updated
in a number of years, it is at risk of being deprecated
https://grafana.com/legal/plugin-deprecation/ and removed from the
catalog https://grafana.com/grafana/plugins/.
Are there any plans to update this plugin or should we go ahead and
deprecate? If you would prefer we deprecate, and there is any specific
guidance you would like to offer current users, please let me know and we
can include that in any deprecation message.
If we don't hear anything in the next 30 days we'll go ahead and assume
that deprecation is appropriate.
Thanks again for your contribution to the Grafana plugin ecosystem, we
greatly value the time and effort that folks have put in to make plugins
such as yours.
David
—
Reply to this email directly, view it on GitHub
https://github.com/skydive-project/skydive-grafana-datasource/issues/7#issuecomment-1856578763,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUKL2CN6GO35TMPIGZD2EDYJNR5NAVCNFSM6AAAAAAWDSKRXCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJWGU3TQNZWGM
.
You are receiving this because you were mentioned.Message ID:
@.***
com>


Error during CORS package installation

Hello, to all!
I am facing this error when I try to perform a $ composer require barryvdh/laravel-cors:
$ composer require barryvdh/laravel-cors
Using version ^0.11.3 for barryvdh/laravel-cors
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for barryvdh/laravel-cors ^0.11.3 -> satisfiable by barryvdh/laravel-cors[v0.11.3].
    - Conclusion: remove laravel/framework v5.1.46
    - Conclusion: don't install laravel/framework v5.1.46
    - barryvdh/laravel-cors v0.11.3 requires illuminate/support 5.5.x|5.6.x|5.7.x|5.8.x -> satisfiable by illuminate/support[5.7.17, 5.7.18, 5.7.19, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.4, v5.8.8, v5.8.9].
    - don't install illuminate/support v5.5.0|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.16|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.17|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.2|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.28|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.33|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.34|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.35|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.36|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.37|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.39|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.40|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.41|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.43|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.5.44|don't install laravel/framework v5.1.46
    - don't install illuminate/support 5.7.17|don't install laravel/framework v5.1.46
    - don't install illuminate/support 5.7.18|don't install laravel/framework v5.1.46
    - don't install illuminate/support 5.7.19|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.0|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.1|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.10|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.11|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.12|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.13|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.14|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.15|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.16|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.17|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.19|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.2|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.20|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.21|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.22|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.23|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.24|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.25|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.26|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.27|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.28|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.29|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.3|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.30|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.31|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.32|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.33|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.34|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.35|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.36|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.37|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.38|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.39|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.4|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.5|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.6|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.7|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.8|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.6.9|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.0|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.1|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.10|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.11|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.15|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.2|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.20|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.21|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.22|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.23|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.26|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.27|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.28|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.3|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.4|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.5|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.6|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.7|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.8|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.7.9|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.0|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.11|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.12|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.14|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.15|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.17|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.18|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.19|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.2|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.20|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.22|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.24|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.27|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.28|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.29|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.3|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.30|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.31|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.32|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.33|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.34|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.4|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.8|don't install laravel/framework v5.1.46
    - don't install illuminate/support v5.8.9|don't install laravel/framework v5.1.46
    - Installation request for laravel/framework (locked at v5.1.46, required as 5.1.*) -> satisfiable by laravel/framework[v5.1.46].

Installation failed, reverting ./composer.json to its original content.

I really don't know how to proceed. 😢
Could you help me please?
Thanks to everybody!

Why are you using Laravel 5.1? This version doesn't support that, so maybe try an older version or upgrade Laravel.

0.9.2

Thanks! Perfectly installed!


Gas price option does not work

The gas price option (whether used from the CLI or the GUI) does not seem to work.  If you specify a gas price, the CLI will report that number back to you as the gas price in the initial startup text; however, it does not then seem to actually use this number.  Transaction receipts will still show the default gas price of 20 Gwei, and the GASPRICE opcode will still yield a value of 2*10^10 during contract execution.
Strictly speaking, it is possible that the gas price is being set correctly, and it's just that Ganache misreports it in transaction receipts and the GASPRICE opcode.  However, in that case, that should be fixed.  (I'm sure it's possible to distinguish between these two scenarios, but I haven't tried.)
Expected Behavior
Setting a gas price, whether at the CLI or GUI, should set that gas price, and that gas price should be reflected in transaction receipts, as well as in contract execution via the GASPRICE opcode.
Current Behavior
Described above; the CLI will echo the given gas price back to you, but receipts and GASPRICE act as if the default 20 Gwei is being used.
Steps to Reproduce (for bugs)

Start ganache-cli with a gas price other than the default, or start a Ganache workspace with gas price other than the default.
Execute any transaction (ideally one using the GASPRICE opcode, e.g. one that uses Solidity's tx.gasprice variable).
Get the transaction receipt and observe that it still shows a price of 20 Gwei.
If you executed a transaction that uses the GASPRICE opcode -- say by emitting the result in an event or storing it in a state variable -- inspect the event or state variable and observe that it contains a value of 2*10^10, not whatever gas price you entered.  Alternatively, if you only stored it in a local variable, debug the transaction with Truffle Debugger and observe that the local variable gets a value of 2*10^10.

(FWIW, the project I tested this with is the global-test project in the solidity-test-cases repository.)
Your Environment

Version used: Ganache CLI v6.4.1 (ganache-core: 2.5.3)
Operating System and version: Linux Mint 18.3

Thanks @haltman-at. Closing this as Ganache is respecting the gasPrice Truffle is setting on its transactions. Issue opened at Truffle to discussing this behavior here: https://github.com/trufflesuite/truffle/issues/2221


sql: add MODIFYCLUSTERSETTING role option

PR: https://github.com/cockroachdb/cockroach/pull/53930
From release notes:

Introduced a new MODIFYCLUSTERSETTING role option. This grants non-admin roles the ability to modify certain cluster settings, currently limited to settings with the "sql.defaults" prefix. [#53930][#53930] {% comment %}doc{% endcomment %}

Addressed in https://github.com/cockroachdb/docs/pull/8629


error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function 'pointPolygonTest'

Hello,
I have this new issue. I tried the solutions from this forum below but the error is still here...
I'm working on Colab so I'm very surprised to have all these errors...
Forum : https://stackoverflow.com/questions/67837617/cant-parse-pt-sequence-item-with-index-0-has-a-wrong-type-pointpolygon-er
THX everyone!
See what the first validation image looks like.
image, lines = next(image_generators[1]) #(ERROR LINE)
text = keras_ocr.data_generation.convert_lines_to_paragraph(lines)
print('The first generated validation image (below) contains:', text)
plt.imshow(image)
The first generated text is: High performing several farreaching reforms resulting in
error                                     Traceback (most recent call last)
 in ()
39
40 # See what the first validation image looks like.
---> 41 image, lines = next(image_generators[1])
42 text = keras_ocr.data_generation.convert_lines_to_paragraph(lines)
43 print('The first generated validation image (below) contains:', text)
3 frames
/usr/local/lib/python3.7/dist-packages/keras_ocr/data_generation.py in get_image_generator(height, width, font_groups, text_generator, font_size, backgrounds, background_crop_mode, rotationX, rotationY, rotationZ, margin, use_ligatures, augmenter, draw_contour, draw_contour_text)
708             permitted_contour=permitted_contour,
709             color=text_color,
--> 710             draw_contour=draw_contour_text,
711         )
712         alpha = text_image[..., -1:].astype("float32") / 255
/usr/local/lib/python3.7/dist-packages/keras_ocr/data_generation.py in draw_text_image(text, fontsize, height, width, fonts, use_ligatures, thetaX, thetaY, thetaZ, color, permitted_contour, draw_contour)
408         fontsize=max(min_character_size, 1),
409         M=M,
--> 410         contour=permitted_contour,
411     )
412     start_x = transformed_contour[:, 0].min()
/usr/local/lib/python3.7/dist-packages/keras_ocr/data_generation.py in compute_transformed_contour(width, height, fontsize, M, contour, minarea)
566         next(
567             index
--> 568             for index, contour in enumerate(newContours)
569             if cv2.pointPolygonTest(contour=contour, pt=(x, y), measureDist=False) >= 0
570         )
/usr/local/lib/python3.7/dist-packages/keras_ocr/data_generation.py in (.0)
567             index
568             for index, contour in enumerate(newContours)
--> 569             if cv2.pointPolygonTest(contour=contour, pt=(x, y), measureDist=False) >= 0
570         )
571     ][:, 0, :]
error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function 'pointPolygonTest'

Overload resolution failed:

Can't parse 'pt'. Sequence item with index 0 has a wrong type
Can't parse 'pt'. Sequence item with index 0 has a wrong type

Hello @faustomorales
sorry for tagging you but I'm trying your interactive example on Google Colab and I have some errors with your example...
I'm very interested understand what's happening and be able to use Keras-ocr after that...
THX!

Hi GMXela,
I had the same error
error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function 'pointPolygonTest'
and could solve it just installing an older version of opencv after installing keras-ocr on Colab
!pip install -U opencv-python==<IP_ADDRESS> --q
It seems to be a problem with the opencv, as you can see here
https://github.com/opencv/opencv/issues/20186

This can temporarily be fixed by transforming the pt objects in the data_generation.py file to type (int, int). You can do this by going to the three lines where cv2.pointPolygonTest is used and changing pt=(x,y) to pt=(int(x),int(y))

This can temporarily be fixed by transforming the pt objects in the data_generation.py file to type (int, int). You can do this by going to the three lines where cv2.pointPolygonTest is used and changing pt=(x,y) to pt=(int(x),int(y))

I was getting the same error for  'pointPolygonTest' function using the data generator as well. I tried everything to do with package versions which didnt help.  Finally I read this and decided to change those lines in the data_generation.py code and it works!

Should be fixed by this https://github.com/faustomorales/keras-ocr/pull/224


[WIP] Add EnrollmentRequest list and approval flow

I will be adding a route so that we can reference it via QR code


Zencoder responded with errors: There is a limit of 20 outputs per job.

Hi there,
on a new install (development) during testing of zencoding a video I get in
log/jobs/development/default.log (Encoding failed in Editor):
Zencoder responded with errors:
There is a limit of 20 outputs per job. If you need more outputs, contact us at<EMAIL_ADDRESS>Is pageflow requesting > 20 outputs? Can this be limited or do we need to get in touch with Zencoder support?
Thanks a lot in advance!
Cheers

I just found #536 , will check that first. No idea why i didn't find it during my first search. Sorry..

Please post the  config.zencoder_options settings from your config/initializers/pageflow.rb file.

hi tf
thanks for your reply, here we go:
 # Default options for paperclip attachments which are supposed to
  # use filesystem storage. All options allowed in paperclip has_attached_file
  # calls are allowed.
  config.zencoder_options.merge!(
    :api_key => 'XXXXXXXXXXXXXXXXXXXXXXX',
    :output_bucket => 'de-XXXXX-pageflow-development-out',
    :s3_host_alias => 'de-XXXXpageflow-development-out.s3-website-eu-west-1.amazonaws.com',
    :s3_protocol => 'https',
    :attachments_version => 'v1'
  )

Cheers,

To prevent hitting the limit, you need to disable SMIL outputs. The default setup was changed in 12.0, but I forgot to add a changelog item for the manual update step. I've added instructions and explanations to the 12.0 section of the changelog now. Please take a look if that fixes you issue. Thanks for bringing this up!

thanks tf!
actually now stuff is sent to zencoder and on zencoder side i see an encoding success.
But there is another issue obviously.  Looking at you zencoder_options above, I see that you try to use https as s3_protocol with an S3 website endpoint as s3_host_alias. That cannot work since S3 does not support HTTPS. So the requests time out.

Make sure to restart the resque workers after changing the config (and be sure there are no unexpected resque worker processes still running in the background)

oh man! Thanks for the pointer. I managed to copy that from another instance where we do not use S3 to serve the content (but an ordinary https after we synced down from S3) and this one supports https... It finally works. You made my day, thanks again!

Hi everyone.
Nice to  meet you!
I have a problem in pageflow development.
Image upload to aws3 and checking in publish is working well.
But for video, it says "Successfully uploaded", but still "0% Encoding in progress".
As a result, can't select video in edit of page.
Please reply this ticket if you had ever same issue before.


Test for fake.ksy

I have added a test for the fake.ksy which generates the required awkward_array.
These commands reproduce the generated array:
g++ -fPIC src-fake-test/fake.cpp -o libfake.so ./build/cp310-cp310-manylinux_2_35_x86_64/kaitai_struct_cpp_stl_runtime/libkaitai_struct_cpp_stl_runtime.so -shared

 python src-fake-test/fake.py

The plan after this is as follows -

Make a PR to awkward to add the required functions in the LayoutBuilder.h
generate the C code (as we need the LayoutBuilder*) from AwkwardCompiler.scala (maybe in a separate file?)
modify the CMakeLists.txt to generate .so files for kaitai_struct_cpp_runtime and lib[ksy_name].so using the source and header files generated by the user after running kaitai-struct-compiler
There are still some fixes need in the scala code but that can be done separately from the above.

It would be great if you all (@jpivarski  @agoose77, @ianna)  can have a look and give your feedback and suggestions on how to move forward with this.

Just a comment: code copied from dependencies like Awkward's header-only code and Kaitai's C++ runtime shouldn't be version-controlled. The generation process can make copies of these in a build directory, but that's transient. Eventually, the user might even want an option that cleans up (deletes) the working directory when it's done. (Not deleting it would be for debugging purposes.)

Just a comment: code copied from dependencies like Awkward's header-only code and Kaitai's C++ runtime shouldn't be version-controlled. The generation process can make copies of these in a build directory, but that's transient. Eventually, the user might even want an option that cleans up (deletes) the working directory when it's done. (Not deleting it would be for debugging purposes.)

You mean the header files, right? I have added that so that I could test it independently. That would be generated with the CMake only and won't be added to the runtime.

@ManasviGoyal my understanding of this PR is that it shows a hand-written Kaitai → Awkward example that will eventually be generated by kaitai?
At this stage I don't exactly know what you'd like for me to review. I'm totally happy to do a review, though! I can imagine that it might feel like there are lots of things to do here. Are you looking for suggestions on how to follow through your plan outlined above?

@ManasviGoyal my understanding of this PR is that it shows a hand-written Kaitai → Awkward example that will eventually be generated by kaitai?
At this stage I don't exactly know what you'd like for me to review. I'm totally happy to do a review, though! I can imagine that it might feel like there are lots of things to do here. Are you looking for suggestions on how to follow through your plan outlined above?

Hi, I wanted to get some suggestion on the CMakeLists.txt and how the module will be generated based on the new plan.


added practical example for finally

added practical example for finally block in try catch finally example

[ ] I have read freeCodeCamp's contribution guidelines.
[ ] My pull request has a descriptive title (not a vague title like Update index.md)
[ ] My pull request targets the master branch of freeCodeCamp.
[ ] None of my changes are plagiarized from another source without proper attribution.
[ ] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
Thank you and happy coding. ✈


OAK-10577 Advanced repository statistics

Ready for review

Would be nice to have a more structured output.

Right. However I would prefer to first get some real-world data before we spend a lot of time tweaking the output. Right now we don't know what is most useful and what is not. We can guess, but likely, a lot of the data turns out to be not useful (or only useful initially), and so we will remove it later. Most of the time I sent on making sure things are "correct" so far (tests). Documentation is sparse on purpose. We can spend a lot of time tweaking, but then it turns out that the data is not useful, or that some other data is a lot more useful. I would prefer if we don't try to do this kind of "optimization" right now, except for the obvious cases.
Having human readable text values: I would prefer machine-readable output with a useful fixed magnitude, e.g. GiB for binaries, and for counts: the number of millions.
Node count in millions: I think that "million" is a useful metric. Small environments will have 0 million, but that's fine. I don't remember I had a use case to get more accurate data.
Histogram: I agree it's not readable. I changed it to eg.: 3 (2B..4B), 13 (2KiB..4KiB), 23 (2MiB..4MiB), 33 (2GiB..4GiB), 43 (2TiB..4TiB).
For "size" and "count" data: I'll also add "size GiB", I guess that's the most interesting number; for "count", I'll add "count million".

it is easier to read if the tree is shown in order of bigger children.

Interesting idea! I tried that for the NodeCount, and now I'm not sure if it's really better. In a way, it looks confusing, because it's not sorted alphabetically:
/: 24
/content: 17
/content/dam: 17
/content/dam/braba: 10
/etc: 4
/etc/commerce: 4
/content/dam/acme: 3
/content/dam/braba/part-002: 2
/content/dam/braba/part-001: 2
/var: 2
/etc/commerce/products: 2
/etc/commerce/products/acme: 2
/content/dam/braba/part-004: 1
/var/audit: 1
/var/audit/com.day.cq.replication: 1
/content/dam/naru: 1
/var/audit/com.day.cq.replication/content: 1
/var/audit/com.day.cq.replication/content/dam: 1
/var/audit/com.day.cq.replication/content/dam/acme: 1
/content/dam/sesame: 1
/content/dam/braba/part-001/department-C: 1
/content/dam/braba/studios: 1

The tree of the node count is truncated at 5 levels, but the tree with BinarySize seems to include all levels. Why?

It is not truncated at a fixed number of levels. It's just that entries with value 0 are not shown.


Groups should have "categories"

Where "categories" represent what set a Group is from, so it's easier to distinguish things like the UH Core Curriculum (more common use case) from the generated Group for all "ACCT" courses (less common use case).

added in 9ceaacb


fix(agent): correct agent's behavior on Instance deletion

What this PR does / why we need it:
Make the agent remove itself from the instance nodes list instead of deleting the instance if it's not the last node with access to the device.
Refactored the way we get the AGENT_NODE_NAME to only fetch it once at startup.
This fixes #650.
Special notes for your reviewer:
If applicable:

[ ] this PR has an associated PR with documentation in akri-docs
[x] this PR contains unit tests
[x] added code adheres to standard Rust formatting (cargo fmt)
[x] code builds properly (cargo build)
[x] code is free of common mistakes (cargo clippy)
[x] all Akri tests succeed (cargo test)
[x] inline documentation builds (cargo doc)
[x] all commits pass the DCO bot check by being signed off -- see the failing DCO check for instructions on how to retroactively sign commits

/version patch


Fix ability to set working directory and env for dbgeng debug processes

Default value of null for dir and env parameters prevents them from actually being set to any non null value.

@ajmurphy520 This looks good - thanks (and apologies for having broken it)!


False error "Parse Error: The function signature doesn't match the parent." thrown in larger projects after changing both parent and child.

Tested versions
Reproduced in both 4.2.1 and 4.2.2
System information
Godot v4.2.2.stable - Windows 10.0.22631 - GLES3 (Compatibility) - AMD Radeon(TM) Graphics (Advanced Micro Devices, Inc.; 31.0.14057.2005) - AMD Ryzen 7 5700U with Radeon Graphics (16 Threads)
Issue description
First off, this bug doesn't seem to be triggered in small projects. I tried to create a MRP, but can't get the bug to trigger there. I've had this happen on multiple bigger projects, which I unfortunately can't share as MRP here.
When having both a parent class and child class, where the child class inherits from the parent class, I keep getting the error "Parse Error: The function signature doesn't match the parent. Parent signature is [...]" after adding/removing a parameter to/from both parent and child functions. Specifically, the editor seems to cache the parent signature and then doesn't update until I reload my or rename the parent class to break the inheritance (wait for the error "class not found" in child) and then renaming it back which seems to clear the cached function signature.
Test case 1 (no error when there should be):
Parent:

Child:

Notice that the child does have the little override symbol in the padding on the left
Test case 2 (error where there shouldn't be):
Parent:

Child:

This function started out with a single parameter, following the function signature you see in the error of test case 2. So it's still expecting the original function signature rather than the updated (two parameter) version.
Steps to reproduce

Create a function in a parent class, and override it in a child class
Add a parameter to the parent function
Notice that the child script doesn't throw any errors even though it should
Add the same parameter to the child function
Notice the error, even though it should be there

Minimal reproduction project (MRP)
N/A, seems to require a large project (all under NDAs) and I don't know the exact cause. If there's anything I can do on my end to help debug this let me know.

Reproduced in both 4.2.1 and 4.2.2

Have you checked 4.3 beta 1? Maybe #90601 solved this.


can not download pretrained models

Hi,
The pretrained models can not be downloaded by an external user.

We're sorry, but user@name can't be found in the uniofnottm-my.sharepoint.com directory. Please try again later, while we try to automatically fix this for you.

Thanks,
Alessio

The links must be restored now


[BUG] - Several potential bugs found using an automated code analysis tool

Internal/External
External
Area
Other
Summary
I ran a novel AI-based code-analysis tool on the entire cardano node directory (I'm the tool maker, its not released yet) and found 14 potential issues.
Steps to reproduce
I didn't want to create an issue for each. The issue list is in this Google Sheet.
I also uploaded it as issues cardano-node.csv.
Scan Date: 7/27/2024
Scanned code: https://github.com/IntersectMBO/cardano-node/tree/1e6f75101b5a637169efd8cb29026ad23ba4a427/cardano-node/src/Cardano/Node
If this feedback is useful, I can gladly run the tool on other directories, even on the entire repository.

Thank you!

One comment from out internal Slack channel that may be of interest to you:

I can’t comment on other items, as I have not looked at them, but item 4 seems bogus, unfortunately: The AI didn’t recognize bracket.

indeed, the AI initially gave me 30 potential issues and I manually removed
the bogus ones, I didn't notice that one (im new to haskell)
On Wed, Jul 31, 2024, 10:36 PM Erik de Castro Lopo @.***>
wrote:

One comment from our internal Slack channel that may be of interest to you:
I can’t comment on other items, as I have not looked at them, but item 4
seems bogus, unfortunately: The AI didn’t recognize bracket.
—
Reply to this email directly, view it on GitHub
https://github.com/IntersectMBO/cardano-node/issues/5926#issuecomment-2261896933,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBJ2JZ2H5DCCSSN74MHMLLZPGUKTAVCNFSM6AAAAABLSFFSY6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRRHA4TMOJTGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

The bracket family of functions in Haskell are of the form:
bracket setup shutdown action

Where the bracket function runs setup , then action and then shutdown (regardless of whether action threw an exception).


Y-Inlet requires supports

The Y inlet and Y outlet parts have bosses on them which require supports.  If the top boss was removed and the lettering embossed directly on the wall of the Y that would cut the supports in half.  If the bracket interface boss were to have a chamfer around the outside that would greatly reduce the supports needed there as well.
Thank you for this amazing work!

I see ware you going! It will reduce about 3 hours off printing time on the Inlet alone when we are able to print without supports.
When I have some time I will try to find a way to eliminate all the supports by using chamfers, or relocate the bracket interface.

@philreindl I just added the REV2 files of the Y-pieces + brackeds. They need less material to print now by removing the needs for support thanks to your tip!


matchmycolor.Colibri version <IP_ADDRESS>85

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

We have an issue with winget update. The winget update command will show updates for old Colibri versions, which are not published with winget (see screenshot where it shows updates for Colibri 22.1.2 and Colibri 3.8.12). How can we prevent winget from updating these versions?

We have an issue with winget update. The winget update command will show updates for old Colibri versions, which are not published with winget (see screenshot where it shows updates for Colibri 22.1.2 and Colibri 3.8.12). How can we prevent winget from updating these versions?

Hi @matchmycolor,
I checked a testing VM and didn't see these installed after installing the most recent version (previous to this PR). This was on a fresh install of Windows. Sometimes these are registry remnants of old installs - is it possible that your system has old registry entries that are causing these to appear?

The issue happens when an old version e.g. 3.8.12 is installed: https://cdn.matchmycolor.com/downloads/ColibriInstaller_<IP_ADDRESS>50.exe
This version is not published with winget, the product name is "Colibri® 3.8.12". When i run winget upgrade it should not show an update for this version.


OpenAI Chat Experiment Example dependency issue fix

🐛 Describe the bug
In # OpenAI Chat Experiment Example I've had to change the requirements install script to the below and the below version is working. Will contribute a PR soon fixing those dependencies.
!pip install fastapi kaleido python-multipart uvicorn cohere tiktoken pandas==1.5.3 ipykernel==5.5.6 ipython==7.34.0 tornado==6.3.2 decorator==4.0.2 jupyter-client==5.3.4 pyzmq==22.0.0 "typing-extensions<4.6.0"

Hi,
Thanks for raising this issue. We are happy to review a PR once you have narrowed down what changes are necessary.


Issues with your review.

The project is well done to go.
You have followed all the required changes recommended by your code reviewers.
However, please follow there are still changes required to be fixed as they are considered bugs.
Please review the previous comments and correct them.
Feel free to reach out if you have any questions or need assistance. 👍

god job on implementing the changes that's great


In RHEL 8, replace grub2-mkconfig by grubby

Grubby is the recommended way in RHEL 8 to modify kernel command line entries. By using grubby, we can avoid any issues related to boot entries no using variable kernelopts but using static entries instead.
Note: On platform s390x, we have to run the additional command zipl after running grubby.
See also https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/configuring-kernel-command-line-parameters_managing-monitoring-and-updating-the-kernel#setting-kernel-command-line-parameters_configuring-kernel-command-line-parameters .
See also https://github.com/linux-system-roles/sap-preconfigure/issues/146 .

Closing after copying over to https://github.com/sap-linuxlab/community.sap_install/issues/17


Support for Variable Substitution

Is it possible to support variable substitution for the draw.directory setting like VSCode? Currently it does not support this feature. When I have "draw.directory": "${fileDirname}/attachments", this is the result:

Hey @Alecton4! Thanks for submitting this issue. I agree this would be a nice feature but I'm not sure it's currently possible. There's an open feature request for it upstream though: https://github.com/microsoft/vscode/issues/2809

Found an unmaintained package that addresses this problem: vscode-variables (but doesn't work b/c the version of VSCode it depends on is too old)
So, I should say, this is possible to some extent. We could manually support a subset of these variables, for example. I'd agree that the one you've identified is probably one of the more useful ones.
Another option is to add a setting along the lines of draw.relativeTo: {workspace, file} which determines where the draw.directory value is appended to create an absolute path..

I gave this some more thought and feels like the best answer here (for your example, at least) is to make the directory relative to the current file by default. I've done that in the linked PR; feel free to add feedback there.
In the more general case of supporting variable substitution, we can add more broad replacements (similar to how it's done in the cmake tools extension); it's not entirely straightforward but not incredibly difficult.

@hall Thank you so much for your effort!
Just for your information, this Markdown Paste extension seems to support predefined variables, many of which are the same as VSCode's ones. But they may not necessarily be retrieved from VSCode. I tested it and it works fine.
Since I'm not a JS/TS developer, I may not be able to help you much. But I hope Markdown Paste could provide you with some insights!


GPU not in use?

I am running Ollama which was installed on an arch linux system using "sudo pacman -S ollama" I am using a RTX 4090 with Nvidia's latest drivers. I also installed cuda using "sudo pacman -S cuda"
I run the LLM using the command "ollama run dolphin-mixtral:latest"
it does not appear to use the GPU based on GPU usage provided by GreenWithEnvy (GWE), but I am unsure how to verify that information.
Is there a specific command I need to run to ensure it uses the GPU instead of the CPU?
nvidia-smi returns:
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.06              Driver Version: 545.29.06    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 4090        Off | 00000000:01:00.0  On |                  Off |
|  0%   42C    P8              37W / 450W |  20102MiB / 24564MiB |     11%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      3261      G   /usr/lib/Xorg                               632MiB |
|    0   N/A  N/A      3360      G   /usr/bin/gnome-shell                        327MiB |
|    0   N/A  N/A      3778      G   /usr/lib/xdg-desktop-portal-gnome            14MiB |
|    0   N/A  N/A      3973      G   gjs                                          99MiB |
|    0   N/A  N/A      4337      G   /app/lib/librewolf/librewolf                219MiB |
|    0   N/A  N/A      5088      G   ...,WinRetrieveSuggestionsOnlyOnDemand      167MiB |
|    0   N/A  N/A     67846      G   /usr/bin/gnome-text-editor                   13MiB |
|    0   N/A  N/A     69685      C   ...p/gguf/build/cuda/bin/ollama-runner    18000MiB |
|    0   N/A  N/A    101455      G   /usr/bin/nautilus                            32MiB |
|    0   N/A  N/A    101815      G   /usr/bin/kgx                                549MiB |
+---------------------------------------------------------------------------------------+

Hi @Y2K350, maintainer of the ollama and ollama-cuda for Arch here.
The ollama package only uses the CPU, while the ollama-cuda package has support for CUDA.

Hi @Y2K350, maintainer of the ollama and ollama-cuda for Arch here.
The ollama package only uses the CPU, while the ollama-cuda package has support for CUDA.

Thank you so much!

Hi @Y2K350, maintainer of the ollama and ollama-cuda for Arch here.
The ollama package only uses the CPU, while the ollama-cuda package has support for CUDA.

Is there a ROCm package for AMD GPUs?

Not yet, but I think the ollama executable does quite a bit of auto-detection at runtime, and that the ollama-cuda package might not be needed anymore.

Not yet, but I think the ollama executable does quite a bit of auto-detection at runtime, and that the ollama-cuda package might not be needed anymore.

Thanks. I asked because the executable did not recognize my GPU. Had to compile from source with amdgpu_targets parameter. Also opened an issue to document my experience.

Do we still need to use ollama-cuda? Even thought ollama shows that my GPU is detected (4090), it still uses the CPU.

same here (windows)

In the end, I tried ollama-cuda and it worked using my GPU. So, something is not quite right with the official distribution (on Arch).

I somehow retried it with the localhost server and checked the logs.
after 1-2 retries it was using the GPU even with the "standard" llama2

I am using Manjaro, so not too different from Arch, and I encounter two weird behaviors:

Even though the GPU is detected, and the models are started using the cuda LLM server, the GPU usage is 0% all the time, while the CPU is always 100% used (all 16 cores).

Sometimes when ollama server loads the model with the GPU LLM Server (cuda_v12 in my case), it generates gibberish. If I force ollama to use cpu_avix2 instead, the responses are ok.

Any ideas of what I could be doing wrong?
My card is is NVIDIA RTX A2000.

I think 4GB VRAM is not enough to hold an operating 7G model.
I have a 6 GB VRAM Nvidia Laptop that takes ~5 GB
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 546.65                 Driver Version: 546.65       CUDA Version: 12.3     | |-----------------------------------------+----------------------+----------------------+ | GPU  Name                     TCC/WDDM  | Bus-Id        Disp.A | Volatile Uncorr. ECC | | Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. | |                                         |                      |               MIG M. | |=========================================+======================+======================| |   0  NVIDIA GeForce GTX 1660 ...  WDDM  | 00000000:02:00.0 Off |                  N/A | |  0%   41C    P8               3W /  49W |   5030MiB /  6144MiB |      0%      Default | |                                         |                      |                  N/A | +-----------------------------------------+----------------------+----------------------+

Ok, yeah, I get it know. I tried orca-mini which is a 3b params model, and I see what I was expecting (no cpu usage, and the model responds super fast)

In the end, I tried ollama-cuda and it worked using my GPU. So, something is not quite right with the official distribution (on Arch).

how to install ollama-cuda on the Ubuntu 22.04 with 4090

@eruca it's a package for Arch linux, not Ubuntu..

How can we get ollama making use of the gpu on Ubuntu 22? I've also installed and am running llama3 and phi3 models, when I installed ollama it detected my GPU however it doesnt use my GPU? There are no errors or warning messages, the model runs fine.. it just uses the cpu and not the gpu.

I figured out, that for LLama3, the GPU will be used properly, while with Mistral and StableLM2 the GPU is not being used at all: https://github.com/ollama/ollama/issues/4359

hi i have tried both mistral:7b and llama3:8b and both didnt use my gpu, i dont know how to install ollama-cuda or if i need to flip a switch to get it to use my gpu
specs:
Version: ollama version is 0.1.37
GPU: GTX 1650
CPU: Ryzen 5 4600H
OS: Gentoo 2.15 x86_64

For some (most?) distros, Ollama is distributed as a package that comes with an executable named ollama that supports CPU, AVX, CUDA, ROCm etc, and tries to auto-detect which one it should use.
For Arch Linux, the ollama package just uses the CPU and uses less disk space (useful in combination with Docker and in the cloud), while ollama-cuda comes with support for NVIDIA GPUs / CUDA and ollama-rocm comes with support for AMD GPUs / ROCm. The ollama-cuda and ollama-rocm packages are much larger. than the ollama package. In addition to saving disk space, the idea is that installing a package named -cuda or -rocm is a strong hint and an aid for users in being sure that they installed the right package, and which capabilities they can then expect.
For Ubuntu, there appears to be a snap package for Ollama, but no regular official package.

@xyproto, what if you have an AMD GPU and a NVIDIA GPU?
To be clear I, I don't. But out of curiosity. Would it make sense to have a ollama-full package (not sure if that meets the naming guidelines)?

@Syphdias If someone has a very unusual setup, they can always install Ollama by tweaking and building the official package, install Ollama with a package from AUR, using snap/flatpak, download a release or build and install Ollama manually. Please let me know if AMD+NVIDIA GPU setups do become popular, though.

Hi, I'm on PopOS 22.04, NVIDIA 2080 Ti. I am also noticing no GPU usage when I run ollama and my CPU spikes. How can I run ollama with my GPU?

Hi all, give this fix a go: https://github.com/ollama/ollama/issues/4604#issuecomment-2130436000

Ollama, at least, needs to say in logs that i'm not going to use Gpu because your vram is less. Or give other reason as to why it chose to not use GPU.
For me, I am using an RTX3060 8GB and the issue really doesn't seem to be around which Linux distro, I get the same issue with ubuntu. It's a pain in the bum(ive spent the whole night trying), to get ollama to use the gpu instead of the cpu with the small models.
I'm going to install Arch linux and then try ollama-cuda.
If I'm successful, I'll report back here.

Okay, found out what the issue was.
At least in my case.
We can look at the logs outputted by  ollama serve
In there it said cpu doesn't support AVX
But my cpu  does actually support avx
So the solution was to go into the bios settings, and then turn on the avx, to enabled, It was initially set to default auto, which I think means not enabled.
Now everything works as perfect the logs of ollama serve recognize my GPU and it is very fast when responding than GPU.