Resizeable columns

Closes #4806. Backports #5840.
Depends on #6546, therefore marked as draft until this one is merged.

Good catch! This was caused by some fractional widths being set, which should be fixed by d13a68a.

Thanks for the update, but, unfortunately, it doesn't seem to have fixed the problem. The initial size of many columns is fractional, but they display fine, so I poked a little bit at the CSS. When I increased the right border from 1px to 2px, the display looks like this:

so the border on the "Profession" column is there, but partially occluded by something. The only other hint that I can offer is that removing width: max-content appears to fix the border rendering (but also collapses all the column widths to their default).

Sorry about this, I am not sure why I thought my commit had fixed it: I could indeed still reproduce the problem on my side.
After more investigation it seems that the will-change: transform CSS attribute was the culprit. I am not completely sure why it was introduced back when @lisa761 worked on infinite scrolling. I suspect it was to anticipate that the width of a column could change when scrolling, as new content would be added in the newly-fetched rows. This isn't the case here as we don't have any infinite scrolling.
Also this property is meant to be added in a transitional fashion via a script rather than permanently, so I think it's safe to remove. And it seems to reliably fix the issue as far as I can tell (tested with Firefox and Chromium).

I have expanded the resizing controls so that they also cover the column groups area


OpenShift with Metrics

Deploy samba-operator over OpenShift cluster, with enabled metrics-exporter side-car container. Takes care of all missing OpenShift configuration by reconcile of SmbCommonConfig.
This patch-set is intended for next development cycle (v0.3)

Things are looking pretty decent IMO. Some of the openshift-iness goes a little over my head, but I can follow a fair portion of it.
I have a bunch of small non-functional things that need fixing.
We can discuss testing later in a call or in a followup issue.

I'm not sure if you think it's ready for another round of review, but I note that the "scarping" commit message typo still seems to be present.
Let me know when you think its good to go for reviews and I'll take another look. Thanks!

/test centos-ci/sink-clustered/mini-k8s-1.23


fix(deps): include babel runtime in build

This updates the Rollup Babel plugin and also includes the Babel runtime in the final build, as recommended by Babel. The Rollup Babel plugin has babelHelpers set to "runtime", which is recommended for libraries in the plugin documentation.
https://www.npmjs.com/package/@rollup/plugin-babel
This is necessary for anyone using a tooling setup that does not include Babel out of the box. For instance Vite, etc.
Reasoning
I was running into this error:
Uncaught ReferenceError: regeneratorRuntime is not defined

Specifically with useAsyncDebounce.

I'm getting this error as well on build with Next.js v10.2.3


Add usr and home to the default file filter.

Issue: #1582

Adds /usr and /home to generate_local_set default file filter.

Great, Thank you.


Landmark Name Spam

When approaching any landmark in the nether this is what shows up, also I could use help with creating a decent name generator if you wouldn't mind.

Using datapacks cause name to just appear regardless of where you are

That's me just spawning in

Name clips through pause menu


Implement Iterator support for Array

I implemented this a month ago but forgot to make a PR for it, after the ruby-sys PR was merged.
Consider this a placeholder so that I remember to rebase this and so no one else duplicates my work :smile:

This is ready for review.
The Travis builds are failing due to a change unrelated to this.

Wow looks amazing!
I will be able to test the code in several hours and then will let you know!
I think, I'll try to implement the same thing for Hash instead of having ruby functions like each(). It should make API much better for end-users.

Great! I will also add more examples to docs!

@malept, please update to 0.7.8 if you need these changes. I've also pushed FromIterator for Array (@e8fdbe553d4f1bb708092a6c21e93de8fccf7436)

I've also pushed FromIterator for Array

Nice!


sst deploy exits 0 even when it fails to deploy due to missing AWS credentials

$ sst deploy
Preparing your SST app
Transpiling source
Linting source
Deploying stacks
functionArn: arn:aws:lambda:us-east-1:${Token[AWS.AccountId.0]}:function:mysstapp-app-dev-notify.
dev-mysstapp-infra-dynamodb: deploying...

 ❌  dev-mysstapp-infra-dynamodb failed: Error: Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment
    at SdkProvider.resolveEnvironment (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/api/aws-auth/sdk-provider.ts:208:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at CloudFormationDeployments.prepareSdkFor (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/api/cloudformation-deployments.ts:236:33)
    at CloudFormationDeployments.deployStack (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/api/cloudformation-deployments.ts:162:70)
    at CdkToolkit.deploy (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/cdk-toolkit.ts:194:24)
    at Object.deployAsync (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/serverless-stack.ts:122:15)
    at /Users/me/workspace/mysstapp/serverless-infra/node_modules/@serverless-stack/core/index.js:71:17
    at async Promise.all (index 0)
    at deployStacks (/Users/me/workspace/mysstapp/serverless-infra/node_modules/@serverless-stack/core/index.js:48:5)
    at Object.parallelDeploy (/Users/me/workspace/mysstapp/serverless-infra/node_modules/@serverless-stack/core/index.js:446:3)

 ❌  dev-mysstapp-infra-dynamodb failed: Error: Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment

dev-mysstapp-infra-eventbridge: deploying...

 ❌  dev-mysstapp-infra-eventbridge failed: Error: Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment
    at SdkProvider.resolveEnvironment (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/api/aws-auth/sdk-provider.ts:208:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at CloudFormationDeployments.prepareSdkFor (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/api/cloudformation-deployments.ts:236:33)
    at CloudFormationDeployments.deployStack (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/api/cloudformation-deployments.ts:162:70)
    at CdkToolkit.deploy (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/cdk-toolkit.ts:194:24)
    at Object.deployAsync (/Users/me/workspace/mysstapp/serverless-infra/node_modules/sst-cdk/lib/serverless-stack.ts:122:15)
    at /Users/me/workspace/mysstapp/serverless-infra/node_modules/@serverless-stack/core/index.js:71:17
    at async Promise.all (index 1)
    at deployStacks (/Users/me/workspace/mysstapp/serverless-infra/node_modules/@serverless-stack/core/index.js:48:5)
    at Object.parallelDeploy (/Users/me/workspace/mysstapp/serverless-infra/node_modules/@serverless-stack/core/index.js:446:3)

 ❌  dev-mysstapp-infra-eventbridge failed: Error: Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment

Stack dev-mysstapp-infra-dynamodb
  Status: failed
  Error: Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment

Stack dev-mysstapp-infra-eventbridge
  Status: failed
  Error: Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment

✨  Done in 2.93s.

If an error is encountered at the cdk synthesizing step, it exits appropriately, though: There was an error synthesizing your app. error Command failed with exit code 1.
Any ideas why this might be the case? I'm trying to write a deploy script and I'd like for SST to properly exit non-zero when it fails to deploy.

Looking at the code, it looks like there is nothing that checks to see if any of the final stackStates are in a failed state.
Would you accept a PR for this? What do you think the behavior be, to exit non-zero if any of the stacks failed?
Would it be better if this were a flag, e.g. something like --error-on-failed-states? TBH, even just writing that feels awkward. I think changing it to exit non-zero on any failures is the least surprising default behavior.

@smoll Thanks for looking into it. Yeah the non-zero status is the right behavior for sure. We'd appreciate a PR!

Just a comment, we also had this problem, we worked around with the attached patch:
@serverless-stack+cli+0.20.0.patch.zip

This has been fixed in v0.23.0
@smoll @molnarzs Thank you guys for bringing this up.


Refactor event getting / approval getting code to be more generic

Right now, we retrieve a bunch of events with different formats, that we read from in our different approvalToAllowance functions. Ideally we'd add an intermediate data structure that normalises the underlying raw blockchain data into an abstract ApprovalEvent (or more generic TokenEvent to also include transfers). This should make it easier to ad support for other chains that work slightly different from most EVM chains (such as LUKSO or Starknet).

We refactored the events to be more generic. No work has been done yet to build on top of that to support other chains like LUKSO.


Side menu creation form doesn't work

Laravel Version: 10.23.1
PHP Version: 8.2.7
Laravel-admin: 1.8.17

Description:
When I am trying to add a new side menu link via this form, /admin/auth/menu and according to this doc — seems that the "submit" button doesn't work, and the menu link is not creating.

But it still works with php artisan admin:generate-menu
Steps To Reproduce:
make a fresh install of laravel-admin and try to add new menu link

The answer was in https amdin.php config settings which should be enabled to true
'https' => env('ADMIN_HTTPS', true)


Servers.url

Open API contains server object: https://swagger.io/specification/
Can I somehow pass it in the plugin?

Yes, you can pass it with the "freeFields" configuration : https://kbuntrock.github.io/openapi-maven-plugin/#/configuration?id=freefields
It is possible to write the json directly in the pom.xml (allow to inject maven properties) or it can be written in a dedicated json file (cleaner).
Does it fit your needs?
PS : For this kind of questions, I guess we could use the "Discussions" github functionality : https://github.com/kbuntrock/openapi-maven-plugin/discussions
Specially the "Q&A" section (not used yet but I think thread creation is allowed for everyone, don't hesitate to tell me if not).

Just to be sure - it will also work with YML, right?

OK, works


[19687] Fix documentation on immutable DataWriterQos

This fixes the Mutable column on the table describing DataWriterQos, that was found wrong during the development of eProsima/Fast-DDS#3915

@mergifyio backport 2.11.x 2.10.x 2.6.x


How to get all tickers just for spot ?

Hi,
how can i get all the tickers for just spot trading ?
Thank you

from binance import Client
client = Client()
exchange_info = client.get_exchange_info()
spot_markets = []
for market in exchange_info['symbols']:
if 'SPOT'in market['permissions']:
spot_markets.append(market['symbol'])
print(spot_markets)
Adeel @.***> ezt írta (időpont: 2022. szept. 19., H,
19:18):

Hi,
how can i get all the tickers for just spot trading ?
Thank you
—
Reply to this email directly, view it on GitHub
https://github.com/sammchardy/python-binance/issues/1249, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABVKGMYTEJGGNQ5X7BZT4OTV7COABANCNFSM6AAAAAAQQJV3SI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thank you for your help

I got this same response earlier but there are some tickers in response which are not available in binance spot trading but are shown in response from this library

these are not even in any trading (spot, futures, margin) on binance

@sirfrank  is this is a bug or something in this library ?

My bad ...
from binance import Client
client = Client()
exchange_info = client.get_exchange_info()
spot_markets = []
for market in exchange_info['symbols']:
if 'SPOT'in market['permissions'] and market['status'] == 'TRADING':
spot_markets.append(market['symbol'])
print(spot_markets)
print(len(spot_markets))

from binance import Client
client = Client()
exchange_info = client.get_exchange_info()
spot_markets = []
for market in exchange_info['symbols']:
if 'SPOT'in market['permissions'] and market['status'] == 'TRADING':
spot_markets.append(market['symbol'])
print(spot_markets)
print(len(spot_markets))
see the added : and market['status'] == 'TRADING'
Adeel @.***> ezt írta (időpont: 2022. szept. 19., H,
19:41):

@sirfrank https://github.com/sirfrank is this is a bug or something in
this library ?
—
Reply to this email directly, view it on GitHub
https://github.com/sammchardy/python-binance/issues/1249#issuecomment-1251338011,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABVKGM5IGNYCYKKR3EZBJUTV7CQT7ANCNFSM6AAAAAAQQJV3SI
.
You are receiving this because you were mentioned.Message ID:
@.***>

It is working just fine, Thank you for your help, really appreciated @sirfrank

No problem ! I am playing around with Binance API for a while, i just restarted working with it (hobby level, thou ...).
If you wish to cooperate<EMAIL_ADDRESS>.


add mysql like 'show tables' statement to list all available tables

Hello @jossephus,
Thank you for implementing this cool feature, can you please fix clippy comments on this PR then we need to fix it too on other PR and handle conflict
Thank you

Sure. I didnt run clippy. I am fixing them now. Thanks.

Clippy suggestions are implemented now.

Clippy suggestions are implemented now.

Thank you and welcome to the project


How to set the timeout value for the client request ?

Hello, I have two questions need help:

When I use HttpClient to POST/GET to server, how to set the timeout if the server doesn't respond in a given time  then the HttpClient will returned once the request is timeout ?
It's possible to make the HttpClient works as asynchronous mode ?

Thanks & regards,

The client was implemented as simple as possible, and have to change it abit to support timeouts. Found this blog post on how to do it: http://bicosyes.com/2009/12/boostasio-synchronous-read-with-timeout/. I'll try to find time for it in a week or two, unless someone beats me to it with a pull request.

In order to make the HttpClient work asynchronously, you can start it in a thread, pass a callback to the thread, and run this callback when the client finishes with appropriate parameters. This is the typical way to make a synchronous function asynchronous. Use std::shared_ptr to keep track of your resources (as you do not know when they run out of scope). Do some googling on the subjects if you are unsure. It is well worth knowing:)

I have been make a patch to set the timeout for send and recv, but don't know how to send the PR, below is my code:
class timeout_op
{
public:
	timeout_op(unsigned int timeout, int _name)
		:timeout_value(timeout),
		op_name(_name)
	{

	};

	template<class Protocol>
	int level(const Protocol& p) const { return SOL_SOCKET; }

	template<class Protocol>
	int name(const Protocol& p) const { return op_name; }

	template<class Protocol>
	const void* data(const Protocol& p) const { return &timeout_value; }

	template<class Protocol>
	size_t size(const Protocol& p) const { return sizeof(timeout_value); }

private:
	unsigned int timeout_value;
	int op_name; // SO_SNDTIMEO or SO_RCVTIMEO
};

typedef boost::asio::ip::tcp::socket HTTP;

template<>
class Client<HTTP> : public ClientBase<HTTP> {
public:
    Client(const std::string& server_port_path, unsigned int s_timeout = 0, unsigned int r_timeout = 0)
		: ClientBase<HTTP>::ClientBase(server_port_path, 80),
		send_timeout(s_timeout),
		recv_timeout(r_timeout)
		{
        socket=std::make_shared<HTTP>(asio_io_service);
    }

private:
    void connect() {
        if(socket_error || !socket->is_open()) {
            boost::asio::ip::tcp::resolver::query query(host, std::to_string(port));
            boost::asio::connect(*socket, asio_resolver.resolve(query));

            boost::asio::ip::tcp::no_delay option(true);
            socket->set_option(option);

			// For Linux  does the time_out need to be /1000 ?
			if (send_timeout > 0)
			{
				timeout_op send_op(send_timeout, SO_SNDTIMEO);
				socket->set_option(send_op);
			}

			if (recv_timeout > 0)
			{
				timeout_op recv_op(recv_timeout, SO_RCVTIMEO);
				socket->set_option(recv_op);
			}

            socket_error=false;
        }
    }

	unsigned int send_timeout;
	unsigned int recv_timeout;
};

This looks like a good solution, do you know if it is platform independent? Strange that this way is not shown in the Boost.Asio examples, at least not to my knowledge. What platform are you on?

I'm using the Windows, it's Windows 10 + VS2013.
Please see this docmentation:
http://think-async.com/Asio/boost_asio_1_3_0/doc/html/boost_asio/reference/SettableSocketOption.html

Fixed in https://github.com/eidheim/Simple-Web-Server/commit/8a73cb381a79d21290522ce0cbf9be3dff78bd48


Multiple features and bug eliminations

I just added those features/bug eliminations

Select tag
Tab navigation #3
Checkbox only possible #6
No interference with commom sweetAlerts #5

Thanks for all the work. Please check compliance with feross/standard style. After that I'll test the changes.

eross/standard style checked

Merged, thanks for contributing!


Missing "softexco" company from peviitor.ro

URL: https://peviitor.ro/
browser: Microsoft Edge
device: Computer
OS: windows

Steps to reproduce

Open peviitor URL
Put the name "softexco" in the search field
Press the button "Caută"
Pay attention that is no displayed

Expected results

It should displayed on peviitor.ro the company "softexco"

Actual results

There is no displayed the company "softexco" on peviitor.ro

Fixed can you retest?

Retest.


CSS :has() pseudo-class selector

It'd be nice if HTMLRewriter supported the CSS :has() pseudo-class selector.
In my case I'd like to use it for selecting elements which have a child element with specific attributes. For now I need to parse the whole XML tree and then filter upon the array result to check if attributes are there.

That would be nice, but I don't think it is possible with the way streaming parsing works. In order to know if an element has some child element, it has to keep track of the parent element while continuing to parse until the child element. However, by that time, the parent element can no longer be changed, making it rather less useful.


Unknown coverage badge

Please remove codeclimate's unknown coverage badge as you have another badge(coveralls) telling us your overall test coverage.

Okay! Thank you for that @andela-bmakinwa. I have removed it. Closing this issue now


[WIP] Support observability for workers and error reporting of services

Purpose
Support observability for workers
Attach logs to active spans
Support attaching of errors to service tracers and service metrics
Fixes #
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #17469 into master will decrease coverage by 59.16%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master   #17469       +/-   ##
===========================================
- Coverage   68.85%    9.68%   -59.17%
===========================================
  Files           5       46       +41
  Lines         122     1476     +1354
  Branches       21      239      +218
===========================================
+ Hits           84      143       +59
- Misses         38     1320     +1282
- Partials        0       13       +13

Impacted Files
Coverage Δ

composer/packages/tracing/src/ToolBar.tsx

composer/packages/tracing/src/TraceList.tsx

composer/packages/tracing/src/DetailView.tsx

composer/packages/tracing/src/TraceLogs.tsx

composer/packages/tracing/src/index.ts

tool-plugins/vscode/src/utils/logger.ts
52.63% <0%> (ø)

tool-plugins/vscode/src/core/index.ts
100% <0%> (ø)

tool-plugins/vscode/src/utils/rpc/handler.ts
5.88% <0%> (ø)

tool-plugins/vscode/src/debugger/index.ts
0% <0%> (ø)

tool-plugins/vscode/src/debugger/manager.ts
0% <0%> (ø)

... and 41 more

Continue to review full report at Codecov.

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


Add junit-platform-commons to dependency management

Adding the junit-platform-commons to the dependency management ensures that this specified version will be used. Without explicitly setting the version, third party dependencies might bring junit-platform-commons in an older version. This causes problem when this older version is not compatible with junit-jupiter used in this project.
With this change the performance tests can be run again from java-security-it via mvn failsafe:integration-test

I could not get the integration tests to run by putting the jupiter dependencies to the front of the pom.xml. It still pulled the wrong dependency version.
However, I have found the junit 5 bill of materials which I replaced all junit 5 dependencies in the main pom.xml with.
This also solves the problem and now there is only one dependency for junit5 in the main pom.xml.
@nenaraab would this solution work out for you?


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-25-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3496

Questions ?
Please refer to the Backport tool documentation


banMacros default value "" str incompatible with usages assuming dict

For starters, many thanks for offering this library! It's great :) (and used here by me)
Exception when banMacros isn't defined in toolbox config. This can be resolved user-end by defining a ban macro, but could be improved here
banMacros init'd to "" if doesn't exist:
ToolboxSettings.load()
		for item in ["domainTags", "removalReasons", "modMacros","banMacros"]:
			if item not in page.keys(): page[item] = ""

banMacros passed to from_dist with "" if didn't exist:
SettingsRoot.from_dict()
		_banMacros = BanMacros.from_dict(obj.get("banMacros"))

"".get() no bueno:
BanMacros.from_dict()
	def from_dict(obj: Any) -> 'BanMacros':
		_banNote = str(obj.get("banNote"))
		_banMessage = str(obj.get("banMessage"))
		return BanMacros(_banNote, _banMessage)

https://github.com/adhesivecheese/pmtw/blob/main/pmtw/settings.py#L27
Logs:
2022-12-15T16:50:02.903 app[7366d868] ord [info] File "/usr/local/lib/python3.10/site-packages/pmtw/settings.py", line 239, in from_dict

2022-12-15T16:50:02.903 app[7366d868] ord [info] _banMacros = BanMacros.from_dict(obj.get("banMacros"))

2022-12-15T16:50:02.903 app[7366d868] ord [info] File "/usr/local/lib/python3.10/site-packages/pmtw/settings.py", line 27, in from_dict

2022-12-15T16:50:02.903 app[7366d868] ord [info] _banNote = str(obj.get("banNote"))

Same thing with removal reasons and mod macros. I was able to fix this on my end by creating a dummy removal reason header text, then removing it; creating a dummy mod macro, then removing it; and finally creating a dummy ban macro, then removing it.
When looking at the diff we can see that those parts were initialized by the adding then removing causing them to be dictionaries as expected rather than strings:
{
    "ver": 1,
    "domainTags": "",
-    "removalReasons": "",
+    "removalReasons": {
+        "pmsubject": "",
+        "logreason": "",
+        "header": "",
+        "footer": "",
+        "removalOption": "suggest",
+        "typeReply": "reply",
+        "typeStickied": false,
+        "typeCommentAsSubreddit": false,
+        "typeLockComment": false,
+        "typeAsSub": false,
+        "autoArchive": false,
+        "typeLockThread": false,
+        "logsub": "",
+        "logtitle": "",
+        "bantitle": "",
+        "getfrom": "",
+        "reasons": []
+    },
-    "modMacros": "",
+    "modMacros": [],
    ...
-    "banMacros": ""
+    "banMacros": {
+        "banNote": "",
+        "banMessage": ""
+    }
}

Hey there! Apologies for the late reply here. Currently pmtw mirrors the setup created by toolbox, which does initialize those as blank strings. It looks like it should be fine to initialize them as empty lists, so as soon as I've got a chance to make sure that doesn't make anything misbehave I'll patch that!
Also, I'm super glad to know pmtw's getting some use!

Same issue here. Just making the change in #10 didn't fix the issue; I still got:
File "/opt/homebrew/lib/python3.11/site-packages/pmtw/settings.py", line 27, in from_dict
    _banNote = str(obj.get("banNote"))

AttributeError: 'str' object has no attribute 'get'

I had a config page that looks like this:
{'ver': 1, 'domainTags': '', 'removalReasons': {'pmsubject': '', 'logreason': '', 'header': '', 'footer': '', 'removalOption': 'suggest', 'typeReply': 'pm', 'typeStickied': False, 'typeLockComment': False, 'typeAsSub': False, 'typeLockThread': False, 'logsub': '', 'logtitle': '', 'bantitle': '', 'getfrom': '', 'reasons': []}, 'modMacros': '', 'usernoteColors': '', 'banMacros': ''}

Following the steps suggested by @HaydenElza fixed it.


Should const be renamed?

An issue raised by @guipublic is whether we should rename const to something more descriptive since it is meant to be a "is known at compile-time" tag moreso than "is not mutated" tag as some may expect. There is precedence for both approaches - in rust a const fn is one that is evaluated at compile-time and a const variable is one that is a compile-time constant and is substituted for its rhs at each use (this is evident when using Atomics or Mutexes - they will appear as if they never change). In C++ a constexpr expression is similarly known at compile-time, but a const type is one that is shallowly immutable.

@jfecher what is the status on this issue?

Closed, we have renamed the old const to comptime to indicate whether a value should be known at compile-time or not.


[WIP] start of the admin conosole for configuring the EN Server.

/hold
This is very much in progress - but wanted to show current status.
This provides a Web UI for configuring the server.
Took a shot at a CLI, but got very complicated very quickly, wanted to show this approach.

/hold

/lgtm

/unhold
This is ready for review - represents create/edit/delete working for authorized apps + lots of scaffolding for the UI.

#370
#382


Firefox signing user out after a few seconds without warning

When running this example project locally with an instance of Identity Server 4 as the identity authority, it works fine in Chrome and Edge (on Windows), but Firefox for some reason adds an iframe into the markup a few seconds after the user is authenticated with src set to the connect/authorize endpoint. This causes an error on the identity authority's side ("No user present in authorize request") which in turn causes the React app to behave as if the user has signed out, even logging "Action type: redux-oidc/USER_SIGNED_OUT" in the console.
This is Firefox 59.0.1 (64-bit).
Why does Firefox, and only Firefox, add this iframe to the markup? FYI I've also logged this on Stack Overflow with more detail here:

Since this is about how oidc-client handles their silent renewal, please redirect your question to oidc-client's issue tracker.


Update peer dependency for mocha

Looks like mocha updated:  https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#301--2016-08-03
mocha-webpack is currently looking for<EMAIL_ADDRESS>For me personally, mocha 3.0.1 is working fine, but this may warrant a major version bump for mocha-webpack as there are breaking changes in it.

👍

Released with 0.6.0.


Alexsludds patch 1

This patch adds pn junction ring modulators and a fix to pn junction cross sections.

Thank you Alex!


Add default_encoding parameter to set | autodetect the encoding if the charset is missing from the headers

Using the default encoding
When requests are made to a site without explicit character set information from the server, but the encoding is known, it's advisable to explicitly set the default encoding.
from curl_cffi import requests

resp = requests.get(..., default_encoding="shift-jis")
print(response.encoding)  # Shows charset given in the Content-Type charset, or else "shift-jis".
print(response.text)  # The text decoded with the Content-Type charset, or using "shift-jis".

Using character set auto-detection
When the server doesn't provide character set information reliably, and the encoding is unknown, enabling auto-detection allows for a best-effort guess when converting bytes to text. To activate auto-detection, set the default_encoding parameter to a function that takes input bytes and returns the appropriate character set for decoding.
Let's take a look at autodetection using charset-normalizer
from curl_cffi import requests
from charset_normalizer import detect

def autodetect(content):
    return detect(content).get("encoding")

# Using a session with character-set autodetection enabled.
s = requests.Session(default_encoding=autodetect)
resp = s.get(...)
print(resp.encoding)
print(resp.text)

fyi httpx uses utf-8 with errors=replace as default fallback. it uses charset_normalizer as optional feature.

requests - fallback to auto-detected encoding
https://github.com/psf/requests/blob/8dd3b26bf59808de24fd654699f592abf6de581e/src/requests/models.py#L924
https://github.com/psf/requests/blob/8dd3b26bf59808de24fd654699f592abf6de581e/src/requests/models.py#L790

requests - fallback to auto-detected encoding

Needs decision. (I prefer httpx way, to not force new dependency.)

httpx way: https://github.com/encode/httpx/blob/392dbe45f086d0877bd288c5d68abf860653b680/httpx/_models.py#L587

httpx PR with useful information
https://github.com/encode/httpx/pull/2165/

I also prefer to add this as an optional feature.

@yifeikong :checkered_flag:
Ignore the check error in Build, test and release / Build bdist wheels and test (macos-14) (pull_request).
Just run the checks later, it's some bugs on the site.

@yifeikong Update the documentation where you see fit, I've added a description in the first post.

The problem occurred when installing pipx.
But as it turned out, it is already installed https://github.com/pypa/cibuildwheel#v2170
So I removed that action and all works.

@yifeikong @T-256 :checkered_flag:

Since autoflake, flake8, flake8-bugbear, flake8-pie are removed, the most popular rules for ruff are set.
https://docs.astral.sh/ruff/linter/#rule-selection

I recommend splitting out unrelated changes into another PR, as it helps with review (and for downstream users to audit)

Split the PR into several, in this one I left only adding the default_encoder parameter and updating the github actions to remove the bug in the tests.

Generally, I think the encoding/charset properies should be kept, other wise it would be a breaking change, which should be introduced only when the major version bumps.


Unable to specify the DHCHAP key (hostkey) to other files.

During my exploration of nvme-stas for auto discovery and connect when NVMe-oF target is configured with authentication, seem couple of things are not working as per expectation.
To set the context, when a target is configured with Uni-directional authentication, the dhchap key need to configure to file /etc/stas/sys.conf.doc at initiator. Based on the details mentioned in the field description following experiment are performed.
# key:     The host's DHCHAP key to be used for authentication. This is an
#          optional parameter only required when authentication is needed.
#          A value starting with "file://" indicates that the Host Key can
#          be retrieved from a separate file. Typically, nvme-cli saves the
#          Host Key in /etc/nvme/hostkey. For compatibility with nvme-cli,
#          nvme-stas defaults to looking for the existence of this file and
#          will read the Key from it. Otherwise, you can overwrite the default
#          Key by specifying its value here or specifying another file that
#          contains an alternate Host Key to use.
#          Type: string
#          Default: file:///etc/nvme/hostkey
System Details:

Component
Version

NVMe-STAS
2.3.1

OS
Ubuntu 24.04 LTS

Kernel
6.8.0-45-generic

Experiments Summary:

SNO
Description
Result
Status

1
Configure the DHCHAP key in /etc/nvme/hostkey file and set the correct file path in key filed of /etc/stas/sys.conf.doc file. (eg: key=file:///etc/nvme/hostkey)
The test subsystem got connected automatically
PASS

2
Delete /etc/nvme/hostkey file and configure the DHCHAP key in /etc/nvme/hostkey2 file. Set the file path /etc/nvme/hostkey2 in key filed of /etc/stas/sys.conf.doc file. (eg: key=file:///etc/nvme/hostkey2)
The test subsystem was not connected automatically
FAIL

3
Set the DHCHAP key directly into the key filed of /etc/stas/sys.conf.doc file. (e.g:  key=DHHC-1:01:3mR5goAg1lA1uFfXqcP+E6HBapjfrksp6fSsMmQGqd1m7+7l:)
The test subsystem was not connected automatically
FAIL

Could you please explain if it is a right behavior?

Hi @SwatiChaw - Thanks for reporting this issue.
I guess I should have clarified that the file /etc/stas/sys.conf.doc (with a .doc at the end) is just a template file used to document how to configure nvme-stas. Therefore, nvme-stas does not look at that file at all. Instead, nvme-stas looks for /etc/stas/sys.conf (without a .doc at the end). If /etc/stas/sys.conf is not present (the default), then nvme-stas uses defaults values, which are documented in /etc/stas/sys.conf.doc.
Users that do not want to use the default configuration should create /etc/stas/sys.conf (this can be done with cp /etc/stas/sys.conf.doc /etc/stas/sys.conf) and then edit /etc/stas/sys.conf to make the desired changes.
Please try the same test but using /etc/stas/sys.conf instead of /etc/stas/sys.conf.doc and let me know if that fixes the issue.
Thanks.

Hi @martin-belanger,
Thanks a lot for the clarification.
I have re-run the same test with the suggested changes. All tests Passed this time.
I want to try one more scenario where Target is configured with 4 subsystems (subsystem1, subsystem2, subsystem3, subsystem4), each with a different host-keys.
A single host (say Host 1) should configure hostkey1, hostkey2, hostkey3, hostkey4 respectively to access each subsystem respectively?
Host1 configured with hostkey1 ---> to access subsytem1
Host1 configured with hostkey2 ---> to access subsytem2
Host1 configured with hostkey3 ---> to access subsytem3
Host1 configured with hostkey4 ---> to access subsytem4
During the manual connect using nvme-cli, a separate key is passed for each connect command. But I am not sure how to achieve the same for auto-discovery. Could you suggest if this scenario can be tested using nvme-stas? and if possible, how to achieve this?

IIRC, you should be able to manually configure each subsystem in /etc/stas/stacd.conf and specify dhchap-ctrl-secret for each subsystem. Basically, in /etc/stas/stacd.conf you can configure each subsystem with the exact same parameters (or at least very similar parameters) that you would pass to nvme-cli.
For example:
controller = transport=tcp;traddr=<IP_ADDRESS>;dhchap-ctrl-secret=<some-secret>;nqn=nqn.1988-11.com.dell:PowerSANxxx:01:20210225100113-454f73093ceb4847a7bdfc6e34ae8e28;   etc...

This is something that I have not tested much because at the time that I implemented nvme-stas authentication was still fairly new in libnvme and going through constant changes. This is something I will need to revisit when I get a chance.

Forgot to mention that when you're done changing the configuration you can apply the changes as follows:
sudo systemctl reload stacd

OR

sudo systemctl restart stacd

Hi @martin-belanger
Thanks for sharing the details.
My query was regarding the dhchap-secret(hostkey) for unidirection authentication.
nvme-cli gives the option to specify a new dhchap-secret(hostkey) for the same hostnqn to connect to different subsystems in the target ->
root# nvme connect --help
Usage: nvme connect  [OPTIONS]
Connect to NVMeoF subsystem
Options:
[  --transport=, -t  ]      --- transport type
[  --nqn=, -n  ]            --- subsystem nqn
[  --traddr=, -a  ]         --- transport address
[  --trsvcid=, -s  ]        --- transport service id (e.g. IP
port)
[  --host-traddr=, -w  ]    --- host traddr (e.g. FC WWN's)
[  --host-iface=, -f  ]     --- host interface (for tcp
transport)
[  --hostnqn=, -q  ]        --- user-defined hostnqn
[  --hostid=, -I  ]         --- user-defined hostid (if default
not used)
[  --dhchap-secret=, -S  ]  --- user-defined dhchap key (if
default not used)
nvme connect -t tcp -n ${subsystem1} -a <IP_ADDRESS> -s 4420 \
--hostnqn=nqn.2014-08.org.nvmexpress:uuid:$hostid --hostid=$hostid --dhchap-secret=$hostkey1
nvme connect -t tcp -n ${subsystem2} -a <IP_ADDRESS> -s 4420 \
--hostnqn=nqn.2014-08.org.nvmexpress:uuid:$hostid --hostid=$hostid --dhchap-secret=$hostkey2
nvme-cli allows connecting to multiple subsystems, from the same host, with a different hostkey,
Is this supported in automated discovery? I don't see "dhchap-secret" specified in /etc/stas/stacd.conf

Ah! Now I see what you mean. The option to specify a different host key (dhchap-secret) per controller is not currently supported by nvme-stas. However, adding support should not be too complicated. I can have a look at it.
On the other hand, I'm not sure in which circumstances one would want to configure multiple host keys. There's already a lot of keys to configure all over the place. If one has to do this on several hosts (think 100s of hosts) it can get pretty tedious.
By the way, I don't know if you're familiar with the work done by the nvmexpress group (https://nvmexpress.org/), but you may want to have a look at TP8019 - Authentication Verification Entity for_DH-HMAC-CHAP 2022.12.14a. This document discusses an authentication server where all the keys/secrets can be configure in a central place.


add ISSUE_TEMPLATE, move PR template

PR Checklist:

[X] I have run npm test locally and all tests are passing.
[X] I have added/updated tests for any new behavior.

[X] If I have made a significant change, an issue has already been created where the problem / solution was discussed: N/A

PR Description

Adding an issue template to reduce the number issues that would recieve better answers on Stack Overflow / gitter. Also should dramatically improve the quality of the issues filed.
Template was borrowed heavily from Babel's, thanks babel!

Merging so that we can get something up to reduce the number of support issues that come in through github (that would do better on Stack Overflow, gitter, etc). Open to any changes to iterate on this going forward.


Vertical timeline spans

Continued from PR #55.
Resolves #52
Resolves #56

@enigmartyr, when you have some time, please go through buildVerticalTimeline and push up some commits to rename some variables with variable names that are more clear. If you could adjust some code to adhere to the eslint code style rules, I would appreciate that too but if not I can always fix that myself when I have some time.
Thanks!

Screenshots:


Objects with non-mongoIDs crash mongodb-rest

if I create
{"_id":5}
in the database
and request the object
<IP_ADDRESS>/db/collection/5
it crashes the server.

Closing as duplicate


Can't bind IDictionary

Properties which directly expose IDictionary aren't bound, while properties which derive from IDictionary will.
For example:
public interface IMyDictionary<TKey, TValue> : IDictionary<TKey, TValue> { }

public class MyDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IMyDictionary<TKey, TValue> { }

public class MySettings
{
  public IDictionary<string, string> WontBind { get; } = new Dictionary<string, string>();
  public IMyDictionary<string, string> WillBind { get; } = new MyDictionary<string, string>();
}

Is there any chance that a similar change could be made to support ICollection<string>?
For instance, OpenIdConnectOptions has an ICollection<string> for its "Scope" property. I've worked around this by adding a "Scopes" string with space seperator, getting the string value, and splitting into a list in code. But automatic binding to a list would be preferable.

@adamholdenyall the proposed pull request  #453 would actually deal with this situation too. Previously, the binder would not find directly exposed IDictionary<> or ICollection<> properties, the fix allows it to find them.
When a property is an interface, it must already be initialised in order to be bound (the configuration binder wouldn't know which concrete class to assign to an interface property), so the lack of a setter is not a problem.
WRT OpenIdConnectOptions, the proposed fix would allow that to be bound as you hope.

@andrewlock Is there any reason why the binder couldn't create a List<> for an ICollection<> property (and an IEnumerable<> property for that matter), and a Dictionary<> for an IDictionary<> property? The fact that the property is an interface means the implementation type shouldn't matter (and if it did, the caller could just initialize it to the desired type before calling in to the binder).

Fixed via https://github.com/aspnet/Configuration/pull/453

Creation issues for generic interfaces like IList/ICollection/IEnumerable will be tracked via https://github.com/aspnet/Configuration/issues/466


Add support for X values

I went with the decorator approach, not really tested yet.

Thanks, looks like a good start


Feature Request: literature note opens in new tab in obsidian

Feature Requested
it'd be great if the literature note can be opened in a new tab (perhaps devise a toggle to suit different usages?).
Relevant Screenshot
No response
Checklist

[X] The feature would be useful to more users than just me.

currently, the Obsidian URI does not allow specifying things like opening in a new tab. So the only way to do this would to use an extra Obsidian plugin as requirement, which I'd like to avoid since every use would need to add this as requirement, even if they do not use such a feature.
I'd suggest opening a feature request in the Obsidian forum for making the URI more flexible. Until then, I will unfortunately have to refrain from implementing this feature.

another obsidian related issue: sometimes, when creating+opening a new literature note (i.e. when there's no preexisting note), obsidian reports an error of file not found. I guess that it might be due to that obsidian is acting too quickly (prior to the creation of the .md)?
This no longer happens when the same command is triggered again. And this doesn't happen every time.
Any insight on what might be the cause?

That's due to Obsidian not picking up a newly create file yet. Again, there is little I can do on my end about this, I think.

i'm trialing in non-obsidian environment, perhaps introduce an option to choose the default editor?
the replacement script i'm toying:
#!/usr/bin/env osascript -l JavaScript
ObjC.import("stdlib");
const app = Application.currentApplication();
app.includeStandardAdditions = true;
//───────────────────────────────────────────────────────────────────────────
/** @type {AlfredRun} */
// biome-ignore lint/correctness/noUnusedVariables: Alfred run
function run(argv) {
const citekey = argv.join("");
const literatureNotePath =
$.getenv("literature_note_folder").replace(/^~/, app.pathTo("home folder")) +
/${citekey}.md;
// Create literature note
const literatureNoteExists = Application("Finder").exists(Path(literatureNotePath));
if (!literatureNoteExists) {
	const template = "---\ntags: \naliases:\n---\n\n";
	app.doShellScript(`echo '${template}' > '${literatureNotePath}'`);
}

// Always open with the system-default app
app.doShellScript(`open '${literatureNotePath}'`);

}

If you want a new feature, please open a feature request


Fix deviations related to initializing object/record readonly fields

Description:
$title. See https://github.com/ballerina-platform/ballerina-spec/issues/532

With the changes to objects where readonly fields were replaced with final fields, we no longer have these concerns re: objects. Need to finalize and fix the behaviour for records.


Rotate and scale tools size

Rotate and scale tools size don't change according to world size http://prntscr.com/b4aau1.
They have normal size with default world size (12.80 x 7.20), but to small with, for example, 1280x720 world size.

Thanks for reporting! Fixed in 0.3.2.


License

Hello
Add license for it please

I will suggest that you would like to add MIT or GNU.

I've added a License thanks


Implement OpenAI's "Force the top half of an image as input" Feature

This feature is used in the original blog post to show that a sufficiently trained dalle is capable of zero shot visual reasoning about existing imagery. This is really cool to me and I even have some data from that very blog post to test it with!
Please let me know if you need help/compute with this feature. Thanks.

Yup this is easier than it sounds, will be done this week for sure

@afiaka87 ok, this is done! here https://github.com/lucidrains/DALLE-pytorch/commit/0eb09e17c29e84aaa4095ee2b852e519cff44576

Fantastic! Was literally just trying to understand the json they return for those types of prompts actually.
Let me see if I can't test it out here in about an hour

@lucidrains I'm having trouble figuring out how exactly to use this. Here's my code:
from torchvision import transforms as T
from PIL import Image
from dalle_pytorch.simple_tokenizer import tokenize, tokenizer, VOCAB_SIZE

# already defined from training.
# dalle = DALLE(vae = vae, **dalle_params).cuda()

image_tranform = T.Compose([
    T.ToTensor()
])

text = "the exact same dog on the top as a sketch on the bottom"
image = Image.open("./the_dog_photo.png")
tokenized_text = tokenize(text).squeeze(0).cuda()
mask = tokenized_text != 0
image_tensor = image_tranform(image)

img_prime = torch.randn(4, 3, 256, 256)

images = dalle.generate_images(
    text,
    mask = mask[:1],
    img = image_tensor,
    # num_init_img_tokens = (14 * 32)
)

images.shape # (4, 3, 256, 256)
> Expected 4-dimensional input for 4-dimensional weight [128, 3, 3, 3], but got 3-dimensional input of size [3, 111, 256] instead

This is the image I'm trying to pass in:

@afiaka87 added some asserts to the generate_image function https://github.com/lucidrains/DALLE-pytorch/commit/0da8d2852add77dd8e4294f020d7e6a472ac26a3 let me know if you are still seeing the same error!

@afiaka87 i think the image also needs to have an unsqueeze(0)

@afiaka87 i think the image also needs to have an unsqueeze(0)

@lucidrains Awesome! I'll have a look in the morning.

"The morning" meant "a week from now" apparently. Looking into this today.

Following up...

Needs a bit more time perhaps


son-package error messages

When you try to package a project, and your VNFDs are not placed in subfolders (one subfolder per VNFD) the packaging tool fails with an error that does not provide much insights.
It happens e.g. if you have:
sources/
    vnf/
        vnfd1.yml
        vnfd2.yml

instead of:
source/
     vnf/
        vnf1/
           vnfd1.yml
         vnf2/
           vnfd2.yml

For me as a user of the tool it was confusing to find the reason for this error when looking at the following output:
2016-08-30 08:55:55 dev-vm son.package.package[6139] ERROR Unable to solve all dependencies required by the service descriptor.
2016-08-30 08:55:55 dev-vm son.package.package[6139] ERROR Failed to package function descriptors
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO package_pcs executed in 0.506 sec
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO Create Package Resolver Section
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO package_prs executed in 0.000 sec
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO Create Package Dependencies Section
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO package_pds executed in 0.000 sec
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO Create Artifact Dependencies Section
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO package_ads executed in 0.000 sec
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO Create General Description section
2016-08-30 08:55:55 dev-vm son.package.package[6139] INFO package_gds executed in 0.000 sec
Traceback (most recent call last):
  File "/usr/local/bin/son-package", line 9, in <module>
    load_entry_point('sonata-cli', 'console_scripts', 'son-package')()
  File "/home/manuel/son-cli/src/son/package/package.py", line 877, in main
    pck = Packager(workspace, project, dst_path=args.destination)
  File "/home/manuel/son-cli/src/son/package/package.py", line 97, in __init__
    self.package_descriptor = self._project
  File "/home/manuel/son-cli/src/son/package/package.py", line 158, in package_descriptor
    self._package_descriptor.update(package_content)
TypeError: 'bool' object is not iterable

Why do we need the VNFDs to be placed in separated subfolders?
The tool might detect this and say that it didn't find the VNFDs

The decision of putting each VNF inside a separate folder was intentional as some VNFs may have artifacts associated with them (e.g. docker files) which would be placed inside the same folder.
I'm going to reproduce the error and add a more intuitive error.

@lconceicao Yes, the folder structure makes sense. A nice error will solve the problem. Maybe we can also think about a feature which initializes a project: Create folder structure, minimal VNFDs etc. to simplify this process for our users.

The `son-workspace --project .." command already creates a project structure, containing a sample service descriptor and function descritor. Or are you referring to something more complex?

@lconceicao Ah. No no this is exactly what I am talking about 👍

@mpeuster Can you confirm that the problem is solved?

Confirmed! Works fine now 👍 Thanks!
Output:
2016-08-30 16:02:32 dev-vm son.package.package[7538] INFO package_gds executed in 0.000 sec
2016-08-30 16:02:32 dev-vm son.package.package[7538] ERROR Failed to package Package Content Section. Could not find a network service and/or its referenced function descriptors
2016-08-30 16:02:32 dev-vm son.package.package[7538] CRITICAL Missing package descriptor. Failed to generate package.

Close.


[question] About line break, I found a case that seems to be a bug

Hi tdewolff, recently when I was using canvas, I found a line break case that might not be as expected, demo like this:
package main

import (
	"github.com/tdewolff/canvas"
	"github.com/tdewolff/canvas/renderers"
)

func main() {
	fontLatin := canvas.NewFontFamily("latin")
	if err := fontLatin.LoadFontFile("Arial.ttf", canvas.FontRegular); err != nil {
		panic(err)
	}
	face := fontLatin.Face(30, canvas.Black, canvas.FontRegular, canvas.FontNormal)

	W := 500.0
	H := 500.0

	c := canvas.New(W, H)
	ctx := canvas.NewContext(c)
	ctx.SetFillColor(canvas.White)
	ctx.DrawPath(0, 0, canvas.Rectangle(W, H))

	ctx.SetCoordSystem(canvas.CartesianIV)

	// Note: text "", " " or any text that match "^/s*$" will cause panic
	txt := canvas.NewTextBox(face, "+++++++++++ HelloWorld", 100, 0, canvas.Left, canvas.Top, 0, 0)
	ctx.DrawText(0, 0, txt)
	renderers.Write("test.png", c, canvas.DPMM(2.0))
}

we can see that when textbox's width can't include "+++++++++++ HelloWorld", so it cause line break like below, this is what we expected:

but when we replace "+" to space, text become "            HelloWorld", now the result is:

so why in second case, HelloWorld doesn't break into a new line?  is it a bug?

LOL, you are right, thanks for reply!


Baidu API with GeocoderAuthenticationFailure

The version of geopy is 1.21.0.
from geopy.geocoders import Baidu

geolocator = Baidu(api_key='xxx')
location = geolocator.geocode('天安门')

When I call Baidu API, it will get GeocoderAuthenticationFailure.
I degugged it and found geopy still using the v2 of Baidu when the version of Baidu is v3 now.

modify the file geopy\geocoders\baidu.py
api_path = '/geocoding/v3'

v2 seems to continue to work at the moment, so it looks like it was an intermittent problem.
And the key I have doesn't seem to work with v3, I'm getting an Authentication Failure error.
I cannot find any information on the differences between the versions, and why was it bumped. Looking at the docs (they seem to be only in Chinese, so I'm using a translator to English) I don't see any difference from v2, and the "Update log" (translated) tab doesn't contain any meaningful information.
If keys from v2 are no longer valid for v3, then I cannot just change the url in the next geopy version -- this would be a breaking change. I'd have to create a new geocoder class for v3.
Would be glad if anyone could bring some light on what is going on with this version bump and authentication keys.

Spent 2 hours trying to login to my Baidu account. For some reason they have reset my password and didn't let me to restore it neither with my email nor with my phone. The only thing that helped is trying to restore by username (I didn't know I had one!), which I saw as taken only trying to register a new account (in despair).
Anyway, I got to the API keys console and managed to create new API keys, and here are my conclusions:

old keys definitely don't work with v3
new keys definitely don't work with v2
In v3 they have split geocoding from reverse geocoding to two different endpoints.

Fixed in f612130 by adding a new BaiduV3 geocoder.


Earlgrey: prim_ram_1p_scr.sv doesn't work in Verilator

When prim_ram_1p_scr.sv is on Surelog list, there is the following error during verilation:
%Error: Could not get lowconn handle for port, aborting
%Error: Internal Error: ../V3Ast.cpp:344: Null item passed to setOp1p

That module passes the test. It should be enabled together with dependencies

Removed from the list in https://github.com/antmicro/verilator/pull/496


hip_version.h missing when installed from apt package manager

hip_version.h does not generate when installed using apt package manager.
HIP version  : 3.3.20126-2dbba46b
Ubuntu: 18.04
Apt: 1.6.12

Issue solved by using later docker image from ROCm


Fix for Unity 2022

Unity 2022.1 UI Elements introduced a Column type, which conflicted with the fluent UI column

The FluentUITK code would be later removed in favor of simpler API, and less relying on UI Elements (I find them too slow and cumbersome), with more custom IMGUI stuff. I'll merge this for now


chore: release main

:robot: I have created a release beep boop
redlog: 1.5.3
1.5.3 (2024-05-11)
Bug Fixes

redlog: update go.mod (e8333af)

This PR was generated with Release Please. See documentation.

:rocket: This description was created by Ellipsis for commit 64ec25c1e690294abf4c0f958f7a489ce795f678

Summary:
This PR updates the project version to 1.5.3, fixes a bug in go.mod, and updates the release manifest and changelog.
Key points:

Update project version to 1.5.3
Fix bug in go.mod
Update .release-please-manifest.json and CHANGELOG.md

Generated with :heart: by ellipsis.dev

:robot: Release is at https://github.com/op/redlog/releases/tag/redlog/v1.5.3 :sunflower:


Fix: wrong links in public mode

Sorry, I haven't created an issue before.
Function formatFleURL() check public mode here to return correct link in public mode that is bypassing Meteor.
But 'fileRef' object had no 'public' property defined so returned link always pointed to the file served by Meteor instead of web server.

Hello @tjaisson,
For the security reasons you can not change .public setting in the middle of the runtime. .public is part of the collection schema and assigned upon upload
Feel free to reopen it in case if the issue is still persists on your end.
P.S. I'm sorry for the late reply


omnitone is ~50mb in npm

omnitone is ~50mb in npm. We need to reduce this footprint asap
du -h reveals the very large size of the repository
 √ du -h
301M    .
301M    total

with a more verbose output:
√ find * | xargs du  | sort -nr | awk '{print $2}' | xargs du -h
 50M	examples/resources
 50M	examples
 50M	examples/resources
 50M	examples/resources
 28M	examples/resources/jlwarbirds3.amb
 22M	examples/resources/4ch_B_FuMaNorm_FuMaOrd_speech.wav
 52K	src/resources
108K	src
 52K	build/resources
104K	build
 68K	doc/diagram-omnitone.png
 68K	doc
 52K	src/resources
 52K	src/resources
 52K	build/resources
 52K	build/resources
 36K	build/omnitone.js
 24K	test
 16K	build/omnitone.min.js
 12K	src/resources/LICENSE
 12K	build/resources/LICENSE
 12K	README.md
 12K	LICENSE
8.0K	test/test-setup.js
8.0K	src/foa-rotator.js
8.0K	src/foa-phase-matched-filter.js
8.0K	src/foa-decoder.js
4.0K	webpack.config.js
4.0K	webpack.config.all.js
4.0K	test/test-router.js
4.0K	test/test-rotator.js
4.0K	test/test-phasematchedfilter.js
4.0K	test/index.html
4.0K	src/version.js
4.0K	src/utils.js
4.0K	src/resources/cube.config
4.0K	src/resources/README.md
4.0K	src/resources/E35.26_A45_D1.4.wav
4.0K	src/resources/E35.26_A135_D1.4.wav
4.0K	src/resources/E35.26_A-45_D1.4.wav
4.0K	src/resources/E35.26_A-135_D1.4.wav
4.0K	src/resources/E-35.26_A45_D1.4.wav
4.0K	src/resources/E-35.26_A135_D1.4.wav
4.0K	src/resources/E-35.26_A-45_D1.4.wav
4.0K	src/resources/E-35.26_A-135_D1.4.wav
4.0K	src/omnitone.js
4.0K	src/main.js
4.0K	src/foa-virtual-speaker.js
4.0K	src/foa-speaker-data.js
4.0K	src/foa-router.js
4.0K	src/audiobuffer-manager.js
4.0K	package.json
4.0K	examples/resources/LICENSE
4.0K	examples/demo.html
4.0K	build/resources/cube.config
4.0K	build/resources/README.md
4.0K	build/resources/E35.26_A45_D1.4.wav
4.0K	build/resources/E35.26_A135_D1.4.wav
4.0K	build/resources/E35.26_A-45_D1.4.wav
4.0K	build/resources/E35.26_A-135_D1.4.wav
4.0K	build/resources/E-35.26_A45_D1.4.wav
4.0K	build/resources/E-35.26_A135_D1.4.wav
4.0K	build/resources/E-35.26_A-45_D1.4.wav
4.0K	build/resources/E-35.26_A-135_D1.4.wav
4.0K	bower.json
4.0K	CONTRIBUTING.md

this can be solved with .npmignore or  .files directive in the package.json file. I'll have a PR coming shortly

Yes, the problem here is media files for the example. Perhaps I should set up another repository only for the example and remove it from the core library.


About Model Conversion！

感谢您的开源！
您的项目非常有趣，我想问能使用mgeconvert 能将该模型转换成onnx嘛，或着有其他方法嘛！
期待您的回复！

我尝试用一下代码转换mge模型出现错误： Segmentation fault (core dumped)
data1 = mge.Tensor(np.random.random([1, 3, 384, 512]).astype(np.float32)),
data2 = mge.Tensor(np.random.random([1, 3, 384, 512]).astype(np.float32))

pretrained_dict = mge.load("model/crestereo_eth3d.mge",map_location="cpu")
model = CREStereo(max_disp=256, mixed_precision=False, test_mode=True)

model.load_state_dict(pretrained_dict["state_dict"], strict=True)

model.eval()
@jit.trace(symbolic=True, capture_as_const=True)
def infer_func(a,b, *, model):
    pred = model(a,b)
    return pred
infer_func(data1,data2,model=model)
infer_func.dump("./test.mge", arg_names=["left_image","right_image"],output_name=["disp"])

@ibaiGorordo  thanks for your help！
When I use mgeconvert's convert tracedmodule_to_onnx -i tracedmodule.tm -o out.onnx I get the following error:
Traceback (most recent call last):
  File "/home/zt/.local/bin/convert", line 525, in <module>
    main()
  File "/home/zt/.local/bin/convert", line 518, in main
    args.func(args)
  File "/home/zt/.local/bin/convert", line 280, in convert_func
    opset=args.opset,
  File "/home/zt/.local/lib/python3.6/site-packages/mgeconvert/converters/tm_to_onnx.py", line 61, in tracedmodule_to_onnx
    irgraph = tm_resolver.resolve()
  File "/home/zt/.local/lib/python3.6/site-packages/mgeconvert/frontend/tm_to_ir/tm_frontend.py", line 71, in resolve
    self.get_all_oprs()
  File "/home/zt/.local/lib/python3.6/site-packages/mgeconvert/frontend/tm_to_ir/tm_frontend.py", line 103, in get_all_oprs
    assert op_gen_cls, "METHOD {} is not supported.".format(expr.method)
AssertionError: METHOD __rmul__ is not supported.

The reason is that many OPs of CREstereo do not have corresponding operator support for mgeconverter.
In addition:
When I use the script to evaluate the real-time performance of CREstereo, my computer is an RTX1050ti, and the result is less than 1 Fps. However, under the same conditions, RAFTstereo has nearly 3 Fps, and the realtime model has more than 6 Fps. So CRestereo is too big for me.

I get segmentation fault even if I build megengine and megconvert for my environment.
Installing MgeConvert CREStereo - Zenn - my article
By the way, I have already confirmed that CREStereo works in the CPU environment on which it was built. I have given up on exporting to ONNX because MegEngine will segfault no matter what workaround I try.

@ibaiGorordo
$ pip install pickle5

/usr/local/lib/python3.7/dist-packages/megengine/serialization.py

import pickle5

pickle5.load(f)

Hi @PINTO0309 thanks for the tip. @sunmooncode I got the same error after fixing my issue.
Also I have create a Google Colab notebook to reproduce the error:
https://colab.research.google.com/drive/1IMibaByKwiAIam8UAvyI-2U_Z9O7rBWS?usp=sharing

Commenting these two lines fixes the rmul:
https://github.com/megvii-research/CREStereo/blob/924d9f2d8656017d924656194238587f7e70d658/nets/crestereo.py#L98-L99
However, next I get the following error:
AssertionError: Module <class 'megengine.module.normalization.InstanceNorm'> is not supported.

That is because megconvert does not support this operation. I have seen that many in the network do not support it, so it should not be converted.

Yeah... I tried converting the model to .mge (using @trace(symbolic=False, capture_as_const=True), but using mge_to_onnx outputs the following error: AssertionError: OP PowC is not supported.
I do not understand the framework enough, but seems to be hard to fix the issues

Since it seems to be hard to convert, I have tried to implement the model in Pytorch. The model seems to run normally, but since I don't have the weights I cannot fully test it.
My hope is that somehow we can translate the weights from this model there.
https://github.com/ibaiGorordo/CREStereo-Pytorch

@ibaiGorordo  Good job
You can train a model with a small step count and run through that model to see if it converts. Secondly, pytorch to onnx cannot contain dynamic structures. The structure needs to be instantiated.

@sunmooncode I was able to convert the weights directly, however, it seems that there is some parameter that is probably not correct. But overall the conversion seems to work.
Haven't tried converting it to other frameworks yet.

I was able to fix the implementation issues and convert the model to ONNX: https://github.com/ibaiGorordo/ONNX-CREStereo-Depth-Estimation. From there it should be easier to convert to other platforms. Here is a video with the output in ONNX https://youtu.be/ciX7ILgpJtw
@sunmooncode regarding the low speed, if you use a low resolution (320x240) and only do one pass without flow_init, you can get decent speed with good quality.

@ibaiGorordo Should I not combine the first and second model into one?

I have committed a large number of ONNX models of various resolution and ITER combinations. I imagine the ITER10 version is twice as fast.
https://github.com/PINTO0309/PINTO_model_zoo/tree/main/284_CREStereo

init
This model generates flow_init.

next
This model takes as input a total of three images: flow_init generated by the init model and two LEFT/RIGHT images.

combined
Two levels of inference, init and next, are merged into a single onnx.

@PINTO0309 @ibaiGorordo Thanks for your help!
I would like to know how you converted these models, can you provide their conversion scripts, it would be very helpful to me.

@sunmooncode
I have slightly modified the inference code in the repository provided by ibaiGorordo to make ONNX exportable logic.
https://github.com/ibaiGorordo/CREStereo-Pytorch
It is important to note that it takes 30 minutes to an hour to output a single onnx file.
    device = 'cpu'
    model = Model(max_disp=256, mixed_precision=False, test_mode=True)
    model.load_state_dict(torch.load(model_path), strict=True)
    model.to(device)
    model.eval()

    import onnx
    from onnxsim import simplify
    RESOLUTION = [
        [240//2,320//2],
        [320//2,480//2],
        [360//2,640//2],
        [480//2,640//2],
        [720//2,1280//2],
        #[240,320],
        #[320,480],
        #[360,640],
        #[480,640],
        #[720,1280],
    ]
    ITER=20
    MODE='init'
    MODEL = f'crestereo_{MODE}_iter{ITER}'

    for H, W in RESOLUTION:

        if MODE == 'init':
            onnx_file = f"{MODEL}_{H}x{W}.onnx"
            x1 = torch.randn(1, 3, H, W).cpu()
            x2 = torch.randn(1, 3, H, W).cpu()
            torch.onnx.export(
                model,
                args=(x1,x2),
                f=onnx_file,
                opset_version=12,
                input_names = ['left','right'],
                output_names=['output'],
            )
            model_onnx1 = onnx.load(onnx_file)
            model_onnx1 = onnx.shape_inference.infer_shapes(model_onnx1)
            onnx.save(model_onnx1, onnx_file)

            model_onnx2 = onnx.load(onnx_file)
            model_simp, check = simplify(model_onnx2)
            onnx.save(model_simp, onnx_file)

        elif MODE == 'next':
            onnx_file = f"{MODEL}_{H}x{W}.onnx"
            x1 = torch.randn(1, 3, H, W).cpu()
            x2 = torch.randn(1, 3, H, W).cpu()
            x3 = torch.randn(1, 2, H//2, W//2).cpu()
            torch.onnx.export(
                model,
                args=(x1,x2,x3),
                f=onnx_file,
                opset_version=12,
                input_names = ['left','right','flow_init'],
                output_names=['output'],
            )
            model_onnx1 = onnx.load(onnx_file)
            model_onnx1 = onnx.shape_inference.infer_shapes(model_onnx1)
            onnx.save(model_onnx1, onnx_file)

            model_onnx2 = onnx.load(onnx_file)
            model_simp, check = simplify(model_onnx2)
            onnx.save(model_simp, onnx_file)

    import sys
    sys.exit(0)

Next, this script
https://github.com/PINTO0309/PINTO_model_zoo/blob/main/284_CREStereo/onnx_merge.py
Alternatively, merging oonnx into a single graph using this tool is optional and feasible.
https://github.com/PINTO0309/snc4onnx

@sunmooncode
No, I am not. Try it first. ibaiGorordo solves all problems.

I get segmentation fault even if I build megengine and megconvert for my environment. Installing MgeConvert CREStereo - Zenn - my article
By the way, I have already confirmed that CREStereo works in the CPU environment on which it was built. I have given up on exporting to ONNX because MegEngine will segfault no matter what workaround I try.
${HOME}/.local/bin/convert mge_to_onnx \
-i crestereo_eth3d.mge \
-o crestereo_eth3d.onnx \
--opset 11

/home/user/.local/lib/python3.8/site-packages/megengine/core/tensor/megbrain_graph.py:508: ResourceWarning: unclosed file <_io.BufferedReader name='crestereo_eth3d.mge'>
  buf = open(fpath, "rb").read()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
Traceback (most recent call last):
  File "/home/user/.local/bin/convert", line 525, in <module>
    main()
  File "/home/user/.local/bin/convert", line 518, in main
    args.func(args)
  File "/home/user/.local/bin/convert", line 283, in convert_func
    converter_map[target](
  File "/home/user/.local/lib/python3.8/site-packages/mgeconvert/converters/mge_to_onnx.py", line 50, in mge_to_onnx
    irgraph = MGE_FrontEnd(mge_fpath, outspec=outspec).resolve()
  File "/home/user/.local/lib/python3.8/site-packages/mgeconvert/frontend/mge_to_ir/mge_frontend.py", line 21, in __init__
    _, outputs = load_comp_graph_from_file(model_path)
  File "/home/user/.local/lib/python3.8/site-packages/mgeconvert/frontend/mge_to_ir/mge_utils.py", line 106, in load_comp_graph_from_file
    ret = G.load_graph(path)
  File "/home/user/.local/lib/python3.8/site-packages/megengine/core/tensor/megbrain_graph.py", line 511, in load_graph
    cg, metadata = _imperative_rt.load_graph(buf, output_vars_map, output_vars_list)
RuntimeError: access invalid Maybe value

backtrace:
/home/user/.local/lib/python3.8/site-packages/megengine/core/lib/libmegengine_shared.so(_ZN3mgb13MegBrainErrorC1ERKSs+0x4a) [0x7f3b39dfe1fa]
/home/user/.local/lib/python3.8/site-packages/megengine/core/lib/libmegengine_shared.so(_ZN3mgb17metahelper_detail27on_maybe_invalid_val_accessEv+0x34) [0x7f3b39f060f4]
/home/user/.local/lib/python3.8/site-packages/megengine/core/_imperative_rt.cpython-38-x86_64-linux-gnu.so(+0x14c605) [0x7f3b94873605]
/home/user/.local/lib/python3.8/site-packages/megengine/core/_imperative_rt.cpython-38-x86_64-linux-gnu.so(+0x14c823) [0x7f3b94873823]
/home/user/.local/lib/python3.8/site-packages/megengine/core/_imperative_rt.cpython-38-x86_64-linux-gnu.so(+0x11d62e) [0x7f3b9484462e]
/usr/bin/python3(PyCFunction_Call+0x59) [0x5f5e79]
/usr/bin/python3(_PyObject_MakeTpCall+0x296) [0x5f6a46]
/usr/bin/python3(_PyEval_EvalFrameDefault+0x5d3f) [0x570a1f]
/usr/bin/python3(_PyFunction_Vectorcall+0x1b6) [0x5f6226]
/usr/bin/python3(_PyEval_EvalFrameDefault+0x5706) [0x5703e6]

@PINTO0309 hi， this image is from dataset Holopix 50K? I cannot get such good results with the same image. How did you do the pre-rectification?

I think you can use any image you like.

this is the result I get with test.py

@PINTO0309 Hi, the result I get with test.py is much worse than the image you provided. Is there anything I need to do before input the image to test.py?

I think you can use any image you like.

this is the result I get with test.py

@ibaiGorordo any sugestions?

@Tord-Zhang 你使用的是什么模型

@Tord-Zhang 你使用的是什么模型

作者提供的模型哈。问题不在模型上，我是用的是holopix50k的原始数据，没有经过严格的极线校正。作者提供的两张图片是校正过的，所以我得到的结果比较差。不过作者没有回应关于极线校正的细节

@Tord-Zhang 你使用的是什么模型

作者提供的模型哈。问题不在模型上，我是用的是holopix50k的原始数据，没有经过严格的极线校正。作者提供的两张图片是校正过的，所以我得到的结果比较差。不过作者没有回应关于极线校正的细节

极限校正的话可以用opencv或者MATLAB 你试过自己校正的数据或者Middlebury嘛 看看结果是否正确

@PINTO0309 Hello, have you tried to deploy on other platforms? The combined onnx reports an error when converting MNN: Can't convert Einsum for input size=3
Convert Onnx's Op init_ onnx::Mul_ 2590 , type = Einsum, failed, may be some node is not const

CREStereo's OAK-D optimization validation https://zenn.dev/pinto0309/scraps/475e4f2a641d22
You could extrapolate Squeeze just before Einsum to remove the batch size, run Einsum, and then restore the batch size with Unsqueeze after Einsum is run.

If 3D doesn't work, just make it 2D. Try it yourself.

torch.onnx.export

Hi @PINTO0309 Thanks a lot for the great work! I have a question here. Your CREStereo model zoo contains two types of ONNX files. One is ONNX, and the other is TensorRT (also in .onnx format). Do you mind sharing how the TensorRT ONNX files were generated? Thanks!

The topic is too old and I no longer have the resources at hand from that time. However, a comparison will immediately reveal the difference. You will soon see what errors you get when you run it on TensorRT.
$ ssc4onnx -if crestereo_combined_iter2_240x320.onnx

┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ OP Type                ┃ OPs        ┃┃ OP Type                ┃ OPs        ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Add                    │ 268        ││ Add                    │ 268        │
│ AveragePool            │ 8          ││ AveragePool            │ 8          │
│ Cast                   │ 120        ││ Cast                   │ 120        │
│ Concat                 │ 68         ││ Concat                 │ 68         │
│ Conv                   │ 126        ││ Conv                   │ 126        │
│ Div                    │ 64         ││ Div                    │ 64         │
│ Einsum                 │ 12         ││ Einsum                 │ 16         │
│ Elu                    │ 8          ││ Elu                    │ 8          │
│ Expand                 │ 56         ││ Expand                 │ 56         │
│ Floor                  │ 24         ││ Floor                  │ 24         │
│ Gather                 │ 32         ││ Gather                 │ 32         │
│ GatherElements         │ 48         ││ GatherElements         │ 48         │
│ Greater                │ 48         ││ Greater                │ 48         │
│ InstanceNormalization  │ 38         ││ InstanceNormalization  │ 38         │
│ Less                   │ 48         ││ Less                   │ 48         │
│ MatMul                 │ 24         ││ MatMul                 │ 24         │
│ Mul                    │ 415        ││ Mul                    │ 415        │
│ Neg                    │ 2          ││ Neg                    │ 2          │
│ Pad                    │ 32         ││ Pad                    │ 32         │
│ Pow                    │ 8          ││ Pow                    │ 8          │
│ Reciprocal             │ 4          ││ Reciprocal             │ 4          │
│ ReduceMean             │ 168        ││ ReduceMean             │ 168        │
│ ReduceSum              │ 8          ││ ReduceSum              │ 8          │
│ Relu                   │ 82         ││ Relu                   │ 82         │
│ Reshape                │ 114        ││ Reshape                │ 114        │
│ Resize                 │ 3          ││ Resize                 │ 3          │
│ Sigmoid                │ 26         ││ Sigmoid                │ 26         │
│ Slice                  │ 288        ││ Slice                  │ 288        │
│ Softmax                │ 4          ││ Softmax                │ 4          │
│ Split                  │ 36         ││ Split                  │ 36         │
│ Sqrt                   │ 8          ││ Sqrt                   │ 8          │
│ Sub                    │ 146        ││ Sub                    │ 146        │
│ Tanh                   │ 14         ││ Tanh                   │ 14         │
│ Transpose              │ 30         ││ Transpose              │ 30         │
│ Unsqueeze              │ 116        ││ Unsqueeze              │ 116        │
│ Where                  │ 96         ││ Where                  │ 96         │
│ ---------------------- │ ---------- ││ ---------------------- │ ---------- │
│ Total number of OPs    │ 2592       ││ Total number of OPs    │ 2596       │
│ ====================== │ ========== ││ ====================== │ ========== │
│ Model Size             │ 21.3MiB    ││ Model Size             │ 21.3MiB    │
└────────────────────────┴────────────┘└────────────────────────┴────────────┘

The topic is too old and I no longer have the resources at hand from that time. However, a comparison will immediately reveal the difference. You will soon see what errors you get when you run it on TensorRT.
$ ssc4onnx -if crestereo_combined_iter2_240x320.onnx

┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ OP Type                ┃ OPs        ┃┃ OP Type                ┃ OPs        ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Add                    │ 268        ││ Add                    │ 268        │
│ AveragePool            │ 8          ││ AveragePool            │ 8          │
│ Cast                   │ 120        ││ Cast                   │ 120        │
│ Concat                 │ 68         ││ Concat                 │ 68         │
│ Conv                   │ 126        ││ Conv                   │ 126        │
│ Div                    │ 64         ││ Div                    │ 64         │
│ Einsum                 │ 12         ││ Einsum                 │ 16         │
│ Elu                    │ 8          ││ Elu                    │ 8          │
│ Expand                 │ 56         ││ Expand                 │ 56         │
│ Floor                  │ 24         ││ Floor                  │ 24         │
│ Gather                 │ 32         ││ Gather                 │ 32         │
│ GatherElements         │ 48         ││ GatherElements         │ 48         │
│ Greater                │ 48         ││ Greater                │ 48         │
│ InstanceNormalization  │ 38         ││ InstanceNormalization  │ 38         │
│ Less                   │ 48         ││ Less                   │ 48         │
│ MatMul                 │ 24         ││ MatMul                 │ 24         │
│ Mul                    │ 415        ││ Mul                    │ 415        │
│ Neg                    │ 2          ││ Neg                    │ 2          │
│ Pad                    │ 32         ││ Pad                    │ 32         │
│ Pow                    │ 8          ││ Pow                    │ 8          │
│ Reciprocal             │ 4          ││ Reciprocal             │ 4          │
│ ReduceMean             │ 168        ││ ReduceMean             │ 168        │
│ ReduceSum              │ 8          ││ ReduceSum              │ 8          │
│ Relu                   │ 82         ││ Relu                   │ 82         │
│ Reshape                │ 114        ││ Reshape                │ 114        │
│ Resize                 │ 3          ││ Resize                 │ 3          │
│ Sigmoid                │ 26         ││ Sigmoid                │ 26         │
│ Slice                  │ 288        ││ Slice                  │ 288        │
│ Softmax                │ 4          ││ Softmax                │ 4          │
│ Split                  │ 36         ││ Split                  │ 36         │
│ Sqrt                   │ 8          ││ Sqrt                   │ 8          │
│ Sub                    │ 146        ││ Sub                    │ 146        │
│ Tanh                   │ 14         ││ Tanh                   │ 14         │
│ Transpose              │ 30         ││ Transpose              │ 30         │
│ Unsqueeze              │ 116        ││ Unsqueeze              │ 116        │
│ Where                  │ 96         ││ Where                  │ 96         │
│ ---------------------- │ ---------- ││ ---------------------- │ ---------- │
│ Total number of OPs    │ 2592       ││ Total number of OPs    │ 2596       │
│ ====================== │ ========== ││ ====================== │ ========== │
│ Model Size             │ 21.3MiB    ││ Model Size             │ 21.3MiB    │
└────────────────────────┴────────────┘└────────────────────────┴────────────┘

Got it. Thanks a lot for the prompt reply!

@sunmooncode
您好，我现在正在研究如何导出crestereo模型的.onnx文件，在使用https://github.com/ibaiGorordo/CREStereo-Pytorch/blob/main/convert_to_onnx.py的方法后，模型的推理精度显著下降了，想请教您是否也是用这个代码来生成.onnx文件的，如果是的话，推理精度是否下降了呢


DisplayList indexing causes a performance regression for culled DisplayList dispatching

As seen in this graph: https://flutter-engine-perf.skia.org/e/?begin=1722726504&end=1724748757&keys=X346e104025d3787e8c5ad568df51e9fc&requestType=0&selected=commit%3D42503%26name%3D%252Cconfig%253Ddefault%252Ccpu_scaling_enabled%253Dfalse%252Cexecutable%253D_b_s_w_ir_cache_builder_src_out_ci_host_release_benchmarks_display_list_builder_benchmarks%252Clibrary_build_type%253Drelease%252Cmhz_per_cpu%253D2200%252Cnum_cpus%253D8%252Csub_result%253Dcpu_time%252Ctest%253DBM_DisplayListDispatchCull_kCulledWithRtree%252Cunit%253Dus%252C&xbaroffset=42409

But there were also improvements as well. In this graph, the times went down when the indexed dispatching was landed and went up when it was reverted.
https://flutter-flutter-perf.skia.org/e/?begin=1722640878&end=1724724632&keys=Xfc5b6f7fd1231d499395088b9104bda9&requestType=0&selected=commit%3D42242%26name%3D%252Carch%253Dintel%252Cbranch%253Dmaster%252Cconfig%253Ddefault%252Cdevice_type%253Dmokey%252Cdevice_version%253Dnone%252Chost_type%253Dlinux%252Csub_result%253D99th_percentile_frame_rasterizer_time_millis%252Ctest%253Dvery_long_picture_scrolling_perf__e2e_summary%252C&xbaroffset=42242

@flar I think this is OK for now, the tradeoffs of having this functionality seem worthwhile. Should we close this issue?

We could probably "do better", but since these measurements are in uS, they probably aren't worth tracking. The improvements on frame times are in mS, so they outweigh the overhead.


Can't compile on emulated raspbian

On a raspbian emulated with :
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda raspbian-wheezy.img -redir tcp:2222::22

I tried to compile facette and I have this error :
# github.com/facette/facette/thirdparty/github.com/ziutek/rrd
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:44: undefined: i64toa
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:96: c.create undefined (type *Creator has no field or method create)
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:129: u.update undefined (type *Updater has no field or method update)
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:131: u.update undefined (type *Updater has no field or method update)
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:387: g.graph undefined (type *Grapher has no field or method graph)
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:387: not enough arguments to return
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:392: g.graph undefined (type *Grapher has no field or method graph)
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:450: e.xport undefined (type *Exporter has no field or method xport)
build/facette-linux-arm/src/github.com/facette/facette/thirdparty/github.com/ziutek/rrd/rrd.go:450: not enough arguments to return
result: fail
Makefile:112: recipe for target 'build/facette-linux-arm/bin/facette' failed
make: *** [build/facette-linux-arm/bin/facette] Error 1

Hi Sylvain,
Indeed we have some cross compilation issues as cgo is used by github.com/ziutek/rrd package.
We still haven't figure a way to bypass this problem.

See #317 for a possible cross-compilation solution.


Local storage impl & dark mode toggle hide on section delete

fixes #63
fixes #64

@katherinepeterson  i have implemented the local storage functionality . Try it out on the preview deployment url and let me know your thoughts about it and any issues/gaps you face while validating the feature . If you think there are issues / we can move this to draft mode , and keep fixing remaining issues . If you think , its good to go , still let's test it on the preview deployment for one more day to be sure its good to go !
Also , this PR also fixes the issue where now when a section is deleted , dark-mode-toggle button also gets hidden , as there is no editor to toggle upon , unless a user selects a section to work upon .

@katherinepeterson , closed this one due to some merge issue opened a new one with proper changes & successfully deployed !


Update readme

Replace $som = SOMtodayUser("henk","mypassword","myschool","dembrin");
with
$som = new SOMtodayUser("henk","mypassword","myschool","dembrin");

Thanks! It's merged!


Add error dialog when no runtimes found

Currently when no runtimes are configured the submission forms
display and empty dropdown, which would eventually cause a backend
error upon submission.
This adds a check and error dialog in that case.
This will be further improved upon with the implementation of #271
Fixes #393
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

I think the "customization" in the title makes the body feel a little redundant.  Perhaps a title of 'Error retrieving metadata' would help eliminate that feeling?

Agree with @kevin-bates with just a title here
Maybe 'Error retrieving runtimes metadata' to be more clear?

Sorry, but my point was to leave the customization out of the title since it becomes redundant with the body.   Perhaps we can drop the title altogether?

updated, new screenshot:

@ajbozarth - thank you for updating the title.
I don't know if others agree, but should this particular dialog even have a title?  After I mentioned perhaps dropping the title altogether, the more I think that's actually the right thing to do...

Because we control the body of the message completely, there's really no "preamble" necessary.  Whereas the 'Error submitting pipeline' error dialog is presenting a relatively random error thrown from the server - so a title to introduce that error message is useful.
This is more of a message than an error.
The body implies the title but doesn't really present it as an error - there's just no metadata of this particular type and, really, no attempt has been made to even create that metadata.  For example, had runtimes metadata existed, but all of them had schema issues, the fetch would get an empty list back and no message would be presented.  Same goes if all runtimes had been removed (after their initial existence).

I know this is minor, but while we're talking about this, we should do what we feel is right.

updated the title text as discussed in scrum and I rebased on master and force pushed to fix the merge conflicts


Non serializable client builder

One of the main change concerns the
configuration classes, replace by builders. Although ProducerBuilder and
ConsumerBuilder interfaces implement Serializable, corresponding
implementations aren't, because a pulsar client object is embedded. The
schema object is also a problem for serialization.

The problem has not an easy fix. The builders impl intrinsically hold references to non-serializable objects (eg: Client instance, or auth providers).
I think in contexts that needs to serialize the config and dispatch to multiple nodes, a better options is to pass the config arguments in serialized form and then construct the client with builder on the target machines.
From Pulsar API perspective, we could ease that task by providing a way to load config from properties/yaml file. eg:
PulsarClient.builder().loadConfigFromProperties("my-conf.properties").build()

Can we do things like PulsarClient.builder.withConf(ClientConfiguration).build()?

I think the original clients and client configuration are not removed. so people should be able to still use the old api to construct the client, where client configuration is still serializable, right?

Yes, originals configuration classes are still there (sparkStreamingPulsarReceiver still used these), but marked as deprecated. Although i did not verify if changes in configuration fields have been reported in these classes. Some fields have different default values, a few names changes, maybe new field appears.
However, I don't think Builder interfaces should implement serializable if implementations can't

@gfouquier yes, agreed. I also don't think builder interfaces should implement serializable.
so it might still have values of having ClientConfiguration and let builder build the client with a provided configuration.
thoughts @merlimat ?

Yes, we should removed Serializable from interfaces since there's no easy way to have any implementation to support that and then add a way to config from properties/yaml or map

@gfouquier I put up a PR for introducing loadConf(Map<String, Object>) for builders. in that way, you can use a Map for serializing the client settings. can you take a look and see if that works for your use case?

It will works for me since I already handle each configuration options from the command line, but it will less robust that calling method to set each options in case of name changes.

but it will less robust that calling method to set each options in case of name changes.

that's true. I am using jackson object mapper to covert settings and reload to POJO. so the name changes should be caught and exception would be thrown to prevent any misconfiguration.
we will also enforce not changing field names and maintain backward compatibility as well.
hope this will reduce some of your concerns :)


add Logo and enhance header section to the website

This will make website reprensentable and good looking ,Plz add labels gssoc-ext,hactoberfest accepted and level  I like to work on it

@OpenTekHub kindly assign this issue to me

Please create an issue following the issue template

could you assign this to me if there is no betterment, or related issue really wanted to contriibute


how to get a MSVCRTD-based debug-build LIB on Windows

Hello, I have a legacy visual c++ project that a has MSVCRTD /MTd_StaticDebug. Can i build my rust part in similar way?
I'm aware of rustflags = ["-Ctarget-feature=+crt-static"] for a Static build, but not sure of how i can get a debug version. Any help is much appreciated.

If you set the CXXFLAGS environment variable to -MTd, and then run cargo build, the cc crate that cxx uses will pick up this variable value and should give you the debug version of the library


Add Pricing option to Product dropdown in header

[description]:

Add 'Pricing' to 'Product' dropdown in header.

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/24b43ea55d03a015b6107a7114aa05f7e37f5393/

LGTM, but you need to add it to the mobile version of the topnav as well.

@jseldess ah yes I didn't see that.  Update forthcoming.

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/179168188436a9ea784532402e1ddf8897e9196b/


Device Info Memory size

Use case
I want to enable lite mode on Google map if device memory is less than 1.5 GB
because I got crash issues and the app is slow on iPad 4 which has only 1 GB memory ram.
Proposal
I wonder if device_info plugin could add the actual device ram memory size?

Closing as device_info is deprecated in favor of device_info_plus.


Enhance string template substitution logic to specify width of forecast hours.

This feature is needed to support the file naming conventions that arose during Perry Shafran's point verification efforts with METplus.
Currently, string_template_substitution.py has the following logic when formatting the "Level" or "Lead" values:
%HH means a 2-digit hour.
%HHH means a 3-digit hour.
Enhance the code to support the two new variants:
(1) %H means an unpadded integer value.  For example, a value of 1 is formatted as "1", 12 as "12", and 128 as "128".
(2) %.nH means a integer value padded with 0's out to a width of n.  For example, when format = "%.3H", a value of 1 is formatted as "001", 12 as "012", and 128 as "128".
This issue was discussed during the METplus meeting on 8/23/18.  Note that we also considered a more pythonic way of specified field width using "%H:03d" would mean to pad with 0's to a width of 3.  Similarly, "%H:X3d" would mean to pad with 'X' to a width of 3.  However, we decided that the NOAA scientists would be more comfortable using the printf formatting option.
Dan A also brought up f-strings, which are a newly supported string formatting option for python 3.  We should look into f-strings to make sure that we won't regret later what we implement now.
Note that we should also enhance string template substitution to support sub-hourly forecast intervals.  The MET software is set up to parse forecast times down to the second.  Forecast times are specified as "HH" for hours or "HHMMSS" for hours, minutes, and seconds.  For consistency, we should have METplus support similar logic.

I believe I completed this work. Is there anything outstanding that needs to be done? We don't have support for minutes and seconds in a forecast lead. Is that in another ticket? It would be good to write some unit tests to ensure that everything works properly.

Correction: I did actually write pytests to cover those cases. However, I tried running the tests and 5 other tests unrelated to these tests failed..

The tests that failed are now skipped until Minna has a chance to resolve the changes. Closing issue.