Extra arguments for meta_factory

Hello,
Thank you for this package. It helps me a lot to keep modules initialization very readable and clean.
In my projects, I often use from_params classmethod to instantiate modules from complex jsonnet config. In general, it works great with hydra-slayer. However, there are some aspects:

Instead of get_from_params I use from_params.
Some of the modules require lazy initialization.

To accomplish that, I can modify _target_ to work with from_params function or add custom methods to Registry. All in all, it works fine, but it would be great if I could conveniently tell hydra-slayer through config to work with custom classmethod for both call_meta_factory and partial_meta_factory.
For instance, something like that:
local init = {
    "meta_factory": {
        "_target_": "hydra_slayer.call_meta_factory",
        "method": "from_params",
    },
};
local lazy_init = {
    "meta_factory": {
        "_target_": "hydra_slayer.partial_meta_factory",
        "method": "from_params",
    },
};

bwt, in the first case you also can use:
local init = {
    "_target_": "datasets.Dataset.get_from_params",
    "path_to_images": "data/path/to/images",
    "path_to_annotations": "data/path/to/annotations",
};


Document latest template files.

Description:
We have documenting stuff at TEMPLATING-FILES.md with examples to corresponding .args.mjs lets add #131, #138 , #129 .
Also #138 we don't actually have any examples (might update eip-5792 example with it) but I think we are gonna hit similar situation in future where we add things to template.mjs and don't have corresponding example of .args.mjs (it might live in 3rd party extension).
What if we create a fake extension which uses all the .args.mjs and all the fields in init. and all the example args.mjs file point to it. So whenever we add .template.mjs file we also add corresponding .args.mjs in that fake extension. This will also help test the PR which adds the template.mjs file.

What if we create a fake extension which uses all the .args.mjs and all the fields in init. and all the example args.mjs file point to it. So whenever we add .template.mjs file we also add corresponding .args.mjs in that fake extension. This will also help test the PR which adds the template.mjs file.

:100:  Love this idea.


Mistake on Wiki Page - Methods

https://github.com/rstaib/jquery-steps/wiki/Methods
The description for next and previous step are switched. Just letting you know.

Fixed it!


ilia -p tracker unable to properly handle unicode filenames

This error is fairly easy to reproduce, simply create a file which uses unicode characters and try finding it using ilia.
For example, I have created a file "test_ñ_и.txt" in Documents, and trying to find it using ilia yields:

This error is not limited to the user interface, trying to open the file fails because the path is passed badly formatted to xdg-open. This is the console output after hitting Enter with the entry selected:
gio: file:///home/tatjam/Documents/test_31_08.txt: Error when getting information for file “/home/tatjam/Documents/test_31_08.txt”: No such file or directory

The fix is remarkably simple, I will create a pull request.

Pull request #54 created that fixes this, closing the issue.


Incorporate simple self-loading POJO cache service into Jedis

At interact.io we like Jedis a lot and we've written a simple self-loading POJO cache service that covers many of our use cases. We'd like to have such a generic a convenience service incorporated into the Jedis library.
Please take a look at our implementation: https://gist.github.com/bascan/3607126cf8e557d6dc54
Thanks!
Bas Cancrinus - interact.io

@bascan we appreciate that you like Jedis and we're always welcome to new contributors . We're trying to keep Jedis as small as possible because we're only 3 contributors and we receive a lot of bugs and improvements every week. Because of that, for satellite projects around Jedis we always encourage the community to create a new library and not bundle them into Jedis directly.
The main reason for this is because these projects need to be tested and maintained with the same spirit of Jedis, and we (the current contributors) can't commit to that task as we can barely keep up to date with the current workflow. It's also a better way to manage as end users won't need to wait for a Jedis release in order to get new features.
I'm pretty sure that there are a lot of Jedis users that would benefit from your solution, that's why we hope that you can create a library out of it (maybe sponsored by your company) and generate community around that. If there's anything from the Jedis side that you'd like to propose in order to deliver a better product just let us know.
Thanks.

@marcosnils Thanks for your comprehensive reply! I factored our cache service out into the following public github repo: https://github.com/bascan/jedis-pojo
I'll release a Maven artifact from this repo in a few days. Could you add a reference to jedis-pojo in your wiki so your users can find us?
Thanks, Bas

@bascan amazing!. I'll add the link to the wiki shortly.


[BUG] EventHubsBinderRecordModeIT#testSendAndReceiveMessage failed

Context
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1868435&view=logs&j=5fe92c1d-3c25-55b7-1c07-fa5c3c25e91d&t=55c333a2-afdf-54d6-1385-c643b91b3f0b&l=953
[ERROR]   EventHubsBinderRecordModeIT.***SendAndReceiveMessage:69
Expecting value to be true but was false

Goal
Fix the pipeline failure. Make it stable.
Solution

Investigate how spring-cloud-kafka / rabbitmq are testing the same function.
If spring-cloud-kafka / rabbitmq do not have similar test, check whether awaitility can be used in this scenario. Refs: https://www.baeldung.com/awaitility-testing

Both Kafka Binder and RabbitMQ Binder have the similar test, refer KafkaBinderTest and RabbitBinderTests.
From the test case logs, the message have been send:
2022-09-22 15:29:29.568  INFO 42031 --- [           main] .a.s.c.i.t.e.b.EventHubsBinderSyncModeIT : Manually sending message 9fb7a101-bdf7-4e70-b7c1-255b599e95ec
but we don't receive it, maybe there is something wrong in message receive side.

Adding ServiceActivator to receive the message that send failed can solve this problem:
@ServiceActivator(inputChannel = "errorChannel")
public void receiveProduceErrorMsg(Message sendFailedMsg) {
    LOGGER.info("receive send failed msg: '{}'", sendFailedMsg);
    LATCH.countDown();
}

But it will cause another problem: If all test cases send messages failed , we don't cover message receive scenario.
So I think we can add ServiceActivator in EventHubsBinderSyncModeIT, EventHubsBinderRecordModeIT, EventHubsBinderManualModeIT and EventHubsBinderBatchModeIT, leave EventHubsBinderConsumeErrorIT to cover message receive scenario.
In additional, adding EventHubsBinderProduceErrorIT to cover message send error scenario.

Close it because PR merged.


[WIP] Exchanged at time support

https://github.com/RubyMoney/money-rails/pull/455
https://github.com/RubyMoney/money/pull/658

Not possible with Google Currency :-/


Ensure resolvconf is installed

On some ubuntu images resolvconf is not installed so ensure that it is
before calling it.

Can one of the admins verify this patch?

"ok to test" to accept this pull request for testing
"test this please" for a one time test run
"add to whitelist" to add the author to the whitelist

ok to test

retest

retest

retest


Fix source location on collection cast optional-to-Any warning.

The warnings here are not ideal, nor are the fixits, but having a
correct source location at least helps users determine where the
conversions are happening.
I've filed https://bugs.swift.org/browse/SR-2928 to improve the warnings
and fixits.
This resolves https://bugs.swift.org/browse/SR-2921 and the warning
location portion of rdar://problem/28722908.

@swift-ci Please smoke test.


fix: Corrected Controller CreateVolume to use default iscsi when stor…

Corrected Controller CreateVolume to handle the case where the storageProtocol is NOT specified in the StorageClass YAML file. The default of iscsi is used when the user does not specify a storage protocol. Additional debug was also added when the controller code is attempting to retrieve the iSCSI IQN and portals and there is an error.

Looks good, but what if the user puts in an invalid value?

Good point. I created a new function storage.ValidateStorageProtocol() that validates the the user entered a valid protocol string and returns "iscsi" if invalid or blank. please check out the new diff.


Copying formatted code is not working as expected

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Copy code from a code block comment (text surrounded by 3 backticks)
Try pasting it without formatting (CMD+SHIFT+OPTION+V in os X)
See how it includes the 3 backticks

Expected Result:
user should be able to send code
Actual Result:
the format is being included as text, you can't paste it with format anywhere and you can't really paste it without format either.
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
Desktop App

Version Number: 1.1.86-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: @iwiznia
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1659120334379329
View all open jobs on GitHub

Happening on 1.1.86-5 as well. Looks good to go external

The PR with the fix is just merged on https://github.com/Expensify/App/pull/9880. It should be fixed soon.

Are we ok to close this, then?

Merged so closing.


compilation and run on linux for OSVR-HMD

hello,
trying to compile and run the master branch on linux,
had to comment some parameters in com_osvr_Multiserver.cpp (line 146) to make it compile (see pull request),
but now, it does'nt run and throw a regex error
vr bin # ./osvr_server osvr_server_config.HDK12ExtendedLandscape.sample.json [OSVR Server] Using config file 'osvr_server_config.HDK12ExtendedLandscape.sample.json' [OSVR Server] Constructing server as configured... [OSVR Server] Loading auto-loadable plugins... [OSVR Server] Loading plugins... [OSVR Server]  [OSVR Server] Instantiating configured drivers... [OSVR] Added device: org_osvr_filter_videoimufusion/HeadFusion [OSVR] Client context initialized for org.osvr.analysisplugin [OSVR Server] Successes: [OSVR Server]  - com_osvr_VideoBasedHMDTracker/VideoBasedHMDTracker [OSVR Server]  [OSVR Server] Errors: [OSVR Server]  - org_osvr_filter_videoimufusion/VideoIMUFusion	regex_error [OSVR Server]  [OSVR Server]  [OSVR Server] Aliases found and parsed from config file. [OSVR Server] Display descriptor found and parsed from config file. [OSVR Server] RenderManager config found and parsed from the config file. [OSVR Server] Triggering automatic hardware detection... [OSVR Server] Registering shutdown handler... [OSVR Server] Starting server mainloop: OSVR Server is ready to go! [OSVR] Performing hardware auto-detection. [OSVR] Added device: com_osvr_Multiserver/OSVRHackerDevKit0 terminate called after throwing an instance of 'std::regex_error'   what():  regex_error Aborted vr bin # ^C vr bin # ./osvr_server OSVR_HDK_1_3.json  [OSVR Server] Using config file 'OSVR_HDK_1_3.json' [OSVR Server] Constructing server as configured... [OSVR Server] Loading auto-loadable plugins... [OSVR Server] Loading plugins... [OSVR Server]  [OSVR Server] Instantiating configured drivers... [OSVR Server]  [OSVR Server] Using OSVR HDK for display configuration. Did not find an alternate valid 'display' object in config file. [OSVR Server] Triggering automatic hardware detection... [OSVR Server] Registering shutdown handler... [OSVR Server] Starting server mainloop: OSVR Server is ready to go! [OSVR] Performing hardware auto-detection. [OSVR] Added device: com_osvr_Multiserver/OSVRHackerDevKit0 terminate called after throwing an instance of 'std::regex_error'   what():  regex_error Aborted
any hint ?
is there anyone that had the video tracker working on linux ? (I have some serious projects waiting for this to be ported to the OSVR-HMD)
thanks a lot !

Same issue here.

commit 0c54f5eac5b24490ac547f548812dd731911e238

sudo osvr_server /usr/local/share/osvrcore/osvr_server_config.json
[OSVR Server] Using config file '/usr/local/share/osvrcore/osvr_server_config.json'
[OSVR Server] Constructing server as configured...
[OSVR Server] Loading auto-loadable plugins...
[OSVR Server] Loading plugins...
[OSVR Server]
[OSVR Server] Instantiating configured drivers...
[OSVR Server]
[OSVR Server] Using OSVR HDK for display configuration. Did not find an alternate valid 'display' object in config file.
[OSVR Server] Triggering automatic hardware detection...
[OSVR Server] Registering shutdown handler...
[OSVR Server] Starting server mainloop: OSVR Server is ready to go!
[OSVR] Performing hardware auto-detection.
[OSVR] Added device: com_osvr_Multiserver/OSVRHackerDevKit0
terminate called after throwing an instance of 'std::regex_error'
what():  regex_error

As far as I am aware the video tracker still needs porting, that's been tracked at #339. However, this crash should not happen in any case.

I don't have the tracker plugged in, for what its worth.

The regex error is a dupe of a recent issue, apparently gcc 4.8 includes the regex header but it errors at runtime every time, so the associated code just needs to be tweaked to not use a regex (it's not a complicated regex)

Ah, found it, this is the regex issue: https://github.com/OSVR/OSVR-Core/issues/416


Request: enable multiple origins in CORS plugin

Hi,
I've a question (or request... ;))
Is planned to enhance the CORS plugin to allow multiple origins?
At the moment I can add only one origin, or the "*" for allow all.
Thanks.

Not currently planned, doing so would require doing some matching on the origin of the request, as in the specification the origin-list is more strict in production allowing only a single domain or * / null.
A few common suggestions are to do a regex check against the origin as I also suggest above.
Adding this as a note for anyone who is interested in patching the CORS plugin to provide this functionality, as I am unsure whether such a possibility is possible from within the plugin itself.
Doing some digging you could emulate this common suggestion using ngx.var.http_origin which would be that variable to do so.
Thoughts?

I think that being able to configure the Access-Control-Allow-Origin header based on the Origin header is the way to go (based on all of the recommendations that @nijikokun mentioned on the previous comment), regardless on how the comparison is carried out (direct comparison, regex, etc.). This is a critical feature if you consider that browsers do not allow a CORS header with a permissive value (*) when the request has any form of authentication using headers (e.g., the Authorization header, which is used for basic auth, OAuth, etc.)

@jmdacruz +1
We are having issues because we need to allow credentials from multiple domains :(

@thefosk would love to have this as a feature too. Any implementation suggestions to work around for now?

:+1:
I need the allow credentials from all my sub-domains.

I was thinking to add a new configuration property to the plugin, called something like config.origin_by_client. If set to true, it will return an Access-Control-Allow-Origin valued to whatever Origin value has been requested by the client.
Does this make sense?

The plugin would definitely need some sort of whitelist of Origin values that are allowed, and this can be either a list of strings or a regex. You can go one step further and make it a hybrid list of either regex expressions or plain strings (this would be better than a complex regex trying to match multiple domains with subdomains, etc.).
I would do something like this:

Keep the current origin parameter and add a new origins parameter. At least one of the two should be required

For backwards compatibility, you could allow both values to be provided, in which case you created a merged list of values from both origin and origins

The new origins parameter would be an array. Each of the elements on that array can either be a plain string (matched with plain string matching against the incoming Origin header) or a regex
The way you would distinguish whether the value is a plain string or a regex is using the classic perl format of /expression/

Since the values for the Origin header will never contain slashes (because they always represent domain names) this is a safe way to identify when the value is a regex

So, you would end up with a configuration such as:
curl -X POST http://kong:8001/apis/{api}/plugins \
    --data "name=cors" \
    --data "config.origin=mockbin.com" \
    --data "config.origins=subdomain.mockbin.com, /.*\.something\.mockbin\.com/" \
    --data "config.methods=GET, POST" \
    --data "config.headers=Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Auth-Token" \
    --data "config.exposed_headers=X-Auth-Token" \
    --data "config.credentials=true" \
    --data "config.max_age=3600"

Where mockbin.com is a value provided by the current origin parameter, subdomain.mockbin.com is a string/literal value provided on the new origins array parameter, and /.*\.something\.mockbin\.com/ is a regex provided on the new origins array parameter.
What I like about this approach is that it can be used with a basic list of domains in scenarios where you can easily enumerate them, but you also have the power to use regex when needed. It also avoids the need of a boolean flag completely, and it remains backwards compatible with applications from a registration point of view.

We have been using our own custom plugin as specified in #1774 , where we just have a configured list of domains to allow, for a while now (about 8 months).
There is a concern where this list becomes massive.
Would love to see this supported so we don't have to update ours every time kong updates the cors plugin.

Agree, looking forward for support for multiple domains for CORS in the plugin.

This was done in #2203!


Does this app even work on Windows 11 at all?

This is the only thing I get after running the exe. Nothing happens after that even after starting my CC, playing youtube videos or even starting CC first instead of CastSponsorSkip. The help document mentions nothing of Windows version.
Oh I am running chromecast v2 if this helps. What am I missing here? Thanks

It should work with Windows, but I haven't tested it myself yet. If it's not too much trouble, can you install go-chromecast and run go-chromecast ls to see if any devices are detected?

So I went ahead and install docker but not for this test, it was for ISponsorBlockTV. Whille it works, yours does not, It still stuck on searching for devices. I really wish this simple exe one works because it does not make any sense to use docker which consumes GIGS of SSD space and RAM just to run this thing. Unfortunately ISponsorBlockTV does not have any simple exe builds.
oh and ignore the "exiting" I was installing yours from command prompt and rerunning it on docker window to capture screenshot

I saw the go chromecast thingie and its just an exe so I ran it. This is running while my TV/CC is on

@MrManinBlack1337 Thanks for testing that. It seems like discovery may not work from Windows. I'll have to do some additional testing to see if I can get it working.
In the mean time, I've added support for hardcoding the device list in v0.7.0! A device list can be passed with the new --devices flag or with the CSS_DEVICES env.

This works! I can live with this. Way better than running resources heavy docker. Anyway can I connect to multiple devices or just one while using this flag?

@MrManinBlack1337 Yes! I should have specified in my original comment, but that flag/env accepts a comma-separated list of device IP addresses


Integration with Helm?

Hi all, are there thoughts for how grafeas and helm would interact? Is a specific helm release of a specific version of a chart a Deployment Kind occurrence? Does helm get its own Kind?
Thanks,
Jonah

Hi there, for questions like these, we have a mailing list. Could you post to that instead?
https://groups.google.com/forum/#!forum/grafeas-users
Thanks,
Vincent


Adjust top position

Hi there,
I would like to Adjust top margin because I have ADS banner at bottom, so if I adjust height to see ads then my popup view is too low.
I've been trying to add CGrectMake but doesn't work.
Secondly, I want to make close button position X to right instead of left.
Thanks

@vietnguyen09 One workaround here, set popupController.containerView.transform with translation to adjust the Y position, but may have some unexpected behaviors.
If you want to move "X" button to the right, you may need to set the leftBarButtonItem to an empty bar button item and create your own rightBarButtonItem. But this is not recommended because "Cancel"/"Close" action should be on left side.

For anyone who have similar question.
this code for hide leftBarButtonItem and show rightBarButtonItem and close selector.

    UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [rightButton setImage:[UIImage imageNamed:@"popup-close"] forState:UIControlStateNormal];
    [rightButton setTintColor:[UIColor whiteColor]];
    [rightButton addTarget:self action:@selector(rightBarButtonItemAction:) forControlEvents:UIControlEventTouchUpInside];
    [rightButton sizeToFit];
    rightButton.titleEdgeInsets = UIEdgeInsetsMake(0, -50, rightButton.titleLabel.frame.size.width, rightButton.titleLabel.frame.size.height);
    UIBarButtonItem* rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
    self.navigationItem.rightBarButtonItem = rightBarButtonItem;
    self.navigationItem.hidesBackButton = YES;
- (IBAction)rightBarButtonItemAction:(id)sender
{
	[self.popupController dismiss];
}

After a while thinking about adjust top position, I've just realized that, this is not necessary like kevin0571 said may have some unexpected behaviors but anyway, I've figure out the way to do that for anyone need.
In file STPopupController.m find this code

CGFloat containerViewY = (_containerViewController.view.bounds.size.height - containerViewHeight) / 2;

And just edit / 2 to any number you want, it's will change the margin top of the popup view.
@kevin0571 I agree with you about change top position but I don't know why you said cancel/close should be on left side? is it the Europeans and the Americas are lefthanded is the reason I guess?

@vietnguyen09 I think right bar button is supposed to be action like "send", "compose", same rule as a full screen modal view. But if you don't have right bar button on your popup, I think it's ok to put close button on right, I did see some apps do this. Just that personally I prefer to keep them consistent.

Nice catch, I was looking for such implementation. Thanks @kevin0571 and @vietnguyen09


Make sure only one package syncing operation happens at a time

The initial implementation does not guard against multiple sync operations running concurrently: https://github.com/open-telemetry/opamp-go/pull/76
This needs to be fixed.

Hey, Why would it be a problem if multiple syncing operations happen concurrently?

Hey, Why would it be a problem if multiple syncing operations happen concurrently?

All sorts of bad things. :-) Packages are normally stored on disk, so we will concurrently read or write the same directory or same file with all sort of races happening.

Correct me if I am wrong here. There is a single agent running on system. Package is stored in disk on that system. Now that agent does a single syncing operation which is completed before the next package syncing operation needs to be done by the server. The only conflict possible is when the present syncing operation doesn't get completed before the next syncing operation starts (all by same agent). Am I right?

Yes, exactly. If there is a previously ongoing syncing, it may be writing the package file that it just downloaded. The new syncing operation may try to do the same and it will fail. The best here is to just avoid it. If a sync is in progress the new one should not start until the previous one is complete.

Hey

My understanding is that sync would be called from onMessage callback. Is there any example implementation where I could setup and subsequently test the changes? ( The example/agent.go doesn't have the sync called from onMessage).
There should be just a single packagesync operation running for each client at any moment right? (WS/HTTP)

There is no example, but here is a test that performs the sync operation: https://github.com/open-telemetry/opamp-go/blob/be3f3ffe0c25a72b656913dc465370f23b740802/client/clientimpl_test.go#L1243
Yes.

@kpratyus I am assigning this to you since you are already working on it. Thanks.

Facing the following race condition. Trying to debug it. Any help would be appreciated.
Read at 0x00c000380da8 by goroutine 24:
  runtime.slicecopy()
      /usr/lib/golang/src/runtime/slice.go:284 +0x0
  google.golang.org/protobuf/internal/impl.mergeBytesNoZero()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/merge.go:167 +0xc6
  google.golang.org/protobuf/internal/impl.(*MessageInfo).mergePointer()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/merge.go:52 +0x2b5
  google.golang.org/protobuf/internal/impl.(*MessageInfo).merge()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/merge.go:32 +0x9a
  google.golang.org/protobuf/internal/impl.(*MessageInfo).merge-fm()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/merge.go:23 +0x84
  google.golang.org/protobuf/proto.mergeOptions.mergeMessage()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/proto/merge.go:73 +0xc8
  google.golang.org/protobuf/proto.Clone()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/proto/merge.go:58 +0x84
  github.com/open-telemetry/opamp-go/client/internal.(*ClientSyncedState).SetPackageStatuses()
      /opamp-go/client/internal/clientstate.go:121 +0x67
  github.com/open-telemetry/opamp-go/client/internal.(*packagesSyncer).reportStatuses()
      /opamp-go/client/internal/packagessyncer.go:336 +0x1c6
  github.com/open-telemetry/opamp-go/client/internal.(*packagesSyncer).syncPackage()
      /opamp-go/client/internal/packagessyncer.go:223 +0xa5e
  github.com/open-telemetry/opamp-go/client/internal.(*packagesSyncer).doSync()
      /opamp-go/client/internal/packagessyncer.go:127 +0x4e5
  github.com/open-telemetry/opamp-go/client/internal.(*packagesSyncer).Sync·dwrap·11()
      /opamp-go/client/internal/packagessyncer.go:65 +0x64

Previous write at 0x00c000380da8 by goroutine 72:
  runtime.slicecopy()
      /usr/lib/golang/src/runtime/slice.go:284 +0x0
  google.golang.org/protobuf/internal/impl.consumeBytesNoZero()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/codec_gen.go:5410 +0xe5
  google.golang.org/protobuf/internal/impl.(*MessageInfo).unmarshalPointer()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/decode.go:139 +0x79d
  google.golang.org/protobuf/internal/impl.consumeMessageInfo()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/codec_field.go:252 +0x25c
  google.golang.org/protobuf/internal/impl.(*MessageInfo).unmarshalPointer()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/decode.go:139 +0x79d
  google.golang.org/protobuf/internal/impl.(*MessageInfo).unmarshal()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/decode.go:62 +0x104
  google.golang.org/protobuf/internal/impl.(*MessageInfo).unmarshal-fm()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/internal/impl/decode.go:55 +0x104
  google.golang.org/protobuf/proto.UnmarshalOptions.unmarshal()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/proto/decode.go:93 +0x2bd
  google.golang.org/protobuf/proto.Unmarshal()
      /root/go/pkg/mod/google.golang.org/protobuf@v1.27.1/proto/decode.go:50 +0xa4
  github.com/open-telemetry/opamp-go/client/internal.(*wsReceiver).receiveMessage()
      /opamp-go/client/internal/wsreceiver.go:73 +0x67
  github.com/open-telemetry/opamp-go/client/internal.(*wsReceiver).ReceiverLoop()
      /opamp-go/client/internal/wsreceiver.go:55 +0xf7
  github.com/open-telemetry/opamp-go/client.(*wsClient).runOneCycle()
      /opamp-go/client/wsclient.go:242 +0x5cf
  github.com/open-telemetry/opamp-go/client.(*wsClient).runUntilStopped()
      /opamp-go/client/wsclient.go:264 +0x44
  github.com/open-telemetry/opamp-go/client.(*wsClient).runUntilStopped-fm()
      /opamp-go/client/wsclient.go:257 +0x4d
  github.com/open-telemetry/opamp-go/client/internal.(*ClientCommon).StartConnectAndRun.func1()
      /opamp-go/client/internal/clientcommon.go:199 +0xb2


Problem when setting up an OSKR bot

Discussed in https://github.com/kercre123/wire-pod/discussions/112

Originally posted by quim-g March 14, 2023
Hi,
after filling in the ip of my oskr bot and uploading the SSH key file, I am getting the following error: not running (last error: open ../certs/cert.crt: no such file or directory). After this the bot screen remains in black and nothing else happens.
I guess that this is because it is not finding file cert.crt in ~/wire-pod/certs but I don't know how to generate this certificate. Any idea?
Thank you

Solved Re-installing wire pod.


JavaScript

User Story
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I can see the four topics I learned listed along with a suggestion on what I should study first

its been debugged, added random list topics


Getting Core gRPC error from server Core: 6565 in Basic Example

Expected Behavior
As described in Basic Example Notebook
Current Behavior
Create a project workspace
In [10]: client.create_project('customer_project')
Jupyter Cell Response
`
FutureTimeoutError                        Traceback (most recent call last)
/opt/conda/lib/python3.7/site-packages/feast/client.py in _connect_core(self, skip_if_connected)
191             grpc.channel_ready_future(self.__core_channel).result(
--> 192                 timeout=GRPC_CONNECTION_TIMEOUT_DEFAULT
193             )
/opt/conda/lib/python3.7/site-packages/grpc/_utilities.py in result(self, timeout)
139     def result(self, timeout=None):
--> 140         self._block(timeout)
141
/opt/conda/lib/python3.7/site-packages/grpc/_utilities.py in _block(self, timeout)
85                         if remaining < 0:
---> 86                             raise grpc.FutureTimeoutError()
87                         else:
FutureTimeoutError:
During handling of the above exception, another exception occurred:
ConnectionError                           Traceback (most recent call last)
 in
----> 1 client.create_project('customer_project')
/opt/conda/lib/python3.7/site-packages/feast/client.py in create_project(self, project)
274         """
275
--> 276         self._connect_core()
277         self._core_service_stub.CreateProject(
278             CreateProjectRequest(name=project), timeout=GRPC_CONNECTION_TIMEOUT_DEFAULT
/opt/conda/lib/python3.7/site-packages/feast/client.py in _connect_core(self, skip_if_connected)
194         except grpc.FutureTimeoutError:
195             raise ConnectionError(
--> 196                 f"Connection timed out while attempting to connect to Feast "
197                 f"Core gRPC server {self.core_url} "
198             )
ConnectionError: Connection timed out while attempting to connect to Feast Core gRPC server core:6565
`
Steps to reproduce
Specifications

Version: Latest / Cloned and followed local install / setup instructions
Platform: OS X
Subsystem: Miniconda activated ENV

Tried both Chrome and Safari as Jupyter browser.
All the previoussteps (incl. the PIP install / upgrade completed without error
Possible Solution

Hi @tomthebuzz!
Thanks for trying out the software.
The above error does come up when trying to connect to a deployment of Feast that isn't live yet. Generally it takes around 30-60 seconds to start the system up the first time. Not sure if that is perhaps the problem
Are you running on GKE or using Docker Compose?

Thanks for checking back. Am running on docker-compose and by now have re-installed everything multiple times and also made sure (via grpc_cli) that the base grpc install works. I repeatedly get the following error when feast core is trying to create the jdbc metadata connection:
core_1            | 2020-02-22 18:28:00.793  WARN dfffde7afadc --- [           main] o.h.e.j.e.i.JdbcEnvironmentInitiator     : HHH000342: Could not obtain connection to query metadata : The connection attempt failed.
core_1            | 2020-02-22 18:28:00.810  WARN dfffde7afadc --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
core_1            | 2020-02-22 18:28:00.893  INFO dfffde7afadc --- [           main] o.a.c.c.StandardService                  : Stopping service [Tomcat]
feast_core_1 exited with code 1

Hi @tomthebuzz. Two quick questions

Have you modified any configuration, or are you using the default Docker Compose configuration?
Are you running the SDK from the Docker Compose notebook, or from your local machine?

I just did the following
git clone https://github.com/gojek/feast
cd feast/infra/docker-compose
cp .env.sample .env
docker-compose up -d

which brings everything up besides batch serving (which is expected because I havent configured it)
It could be that there is a connectivity problem to your database. Is your database coming online?

Had the same error. The reason for me was that POSTGRES was down.
Solved it by adding POSTGRES password to docker-compose:
db:
    image: postgres:12-alpine
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}
    ports:
      - "5432:5342"

and adding the password to the environment file .env


Mobile Auth Support

Built-in a popup for mobile support that could easily styled or override via a callback function.
This would allow mobile to be supported out of the box.

How about instead, a callback in the SDK for is_moble or something. So we could get a callback for when auth needs to occur and bypass the popup.


[bug]  Snap package needs serial-port plug added for VMware

Checklist:

[x] I am not using HomeAssistant. Or: a developer has told me to come here.
[X] I have checked the troubleshooting section and my problem is not described there.
[X] I have read the changelog problem was not mentioned there.

Build/Run method

[ ] Docker
[ ] PKG
[X] Snap package
[ ] Manually built (git clone - npm install - npm run build )

zwavejs2mqtt: <IP_ADDRESS>bad95
zwave-js: 7.2.4
Describe the bug
Zwave dongles under vmware are enumerated as serial ports, NOT as usb devices.  (i.e. /dev/ttyS1 not /dev/ttyACM0)  So the snap package needs to have serial-port added to it as a plug, otherwise running zwavejs2mqtt under vmware is impossible via a snap.  (Zwavejs2mqtt says can't open the serial port, because snap won't let it, and you can't tell snap to give it permission to do so!)
To Reproduce
Steps to reproduce the behavior:

Fire up a ubuntu VMware VM. Pass through a usb zwave serial dongle.  (It'll likely come through as /dev/ttyS1.)
Install zwavejs2mqtt via snap package
sudo snap connect zwavejs2mqtt:serial-port
error: snap "zwavejs2mqtt" has no plug named "serial-port"

So...  can't run zwave2js under vmware because you can't give the snap rights to read a serial port.
Expected behavior
Well once the serial-port plug is added to the snap, should be easy to give the snap access to the serial port using snap connect as above.
Thanks!

@jmgiaever any clue?

There's a new version including the missing plug in the edge channel.
If the package is already installed, you can switch with sudo snap zwavejs2mqtt --channel=edge and refresh sudo snap refresh zwavejs2mqtt.
Let me know if it works correctly @TheKorn2 as I'm traveling and do not have physical devices to test with.

Well one step forwards!  Almost...
~$ sudo snap download --channel=edge zwavejs2mqtt Fetching snap "zwavejs2mqtt" Fetching assertions for "zwavejs2mqtt" Install the snap with:    snap ack zwavejs2mqtt_94.assert    snap install zwavejs2mqtt_94.snap :~$ sudo snap ack zwavejs2mqtt_94.assert :~$ sudo snap install zwavejs2mqtt_94.snap zwavejs2mqtt v4.0.1 from Giaever.online (giaever-online) installed :~$ sudo snap connect zwavejs2mqtt:serial-port error: snap "snapd" has no "serial-port" interface slots ~$ sudo snap connect zwavejs2mqtt:serial-port /dev/ttyS0 error: snap "/dev/ttyS0" has no "serial-port" interface slots ~$ snap connections zwavejs2mqtt Interface         Plug                           Slot               Notes hardware-observe  zwavejs2mqtt:hardware-observe  :hardware-observe  manual network           zwavejs2mqtt:network           :network           - network-bind      zwavejs2mqtt:network-bind      :network-bind      - raw-usb           zwavejs2mqtt:raw-usb           :raw-usb           manual serial-port       zwavejs2mqtt:serial-port       -                  -
So at least it's no longer telling me flat-out no, just "no place to stuff it".  ;)
(My current serial port is /dev/ttyS0, but I can easily make it /dev/ttyS1, which is the default. As part of troubleshooting I nuked the built-in serial port, easy to put back if necessary.)

Hi, which device do you use? Since I don't have any of my dev devices with me, it's hard to give a proper guidance of usage of the serial-port. But if I remember correctly, you'll have to do the following:
$ snap set system experimental.hotplug=true
$ systemctl restart snapd.service

Then connect the plug serial-port with a (gadget?) snap that has support for it. There was one for the Aeotec Z-stick Gen-5, but can't recall exactly. You can also try to connect with core:usb20-serial or snapd:usb20-serial

Try to examine the slots from the following: snap interface serial-port or check the docs.

I'm using a homeseer smartstick+...  basically just the sigma reference design with a homeseer logo on it.
snap interface serial-port replies...
~/pc-amd64-gadget$ snap interface serial-port
name:    serial-port
summary: allows accessing a specific serial port
So I'm unfortunately kind of lost at this point. Reading this would lead me to believe that what I'm trying to do is impossible, which seems crazy but I really can't seem to get anything to play ball.
I tried running through ogra's response (#4) here here but it appears that the format of snapcraft.yaml has changed since that reply was written, because the resulting file refuses to validate.
Also keep in mind that using the usb mental model isn't correct here. While it's physically a usb stick, vmware is abstracting it as a 16550A uart chip. So I don't think the hot plugging is relevant. (I could be wrong!)
$ dmesg | grep ttyS
[    1.469812] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
Apologies as I didn't really intend to open up a can of worms, but the wriggling things on the floor seem to insist.

Thinking about this more, I think at this point it's OK to close. Even though I'm not working, seems to be an issue with snap itself vs. the snap package, which was updated. (Thanks!!)

Thanks @jmgiaever

Hi,
First off: Sorry for my late reply on this but I've been very busy lately.
As I'm not a Windows/Mac user I'm not able to install VMWare and debug this issue. But I've tried with an LXD instance on my Linux setup and it works just with raw-usb.
I guess your host OS is Windows or Mac?
This is what I did to reproduce with LXD:
# ON HOST
# Install lxd, I'm using Snap. Make sure it's available on your system.
$ snap install lxd

# Ensure your user has the group (change joachim to whatever).
sudo usermod joachim -a -G lxd
# Reboot
sudo reboot

# Add new container (don't use sudo)
lxc launch ubuntu:20.04 zwavejs2mqtt

# Add USB/Serial device to guest.
# Change ttyAMC0 to whatever your device is indentified by
# Set CALLED_IN_HOST as it's identified on HOST (e.g ttyACM0)
# Set CALLED_IN_GUEST as what you want it to be identified in GUEST (e.g ttyACM0)
$ lxc config device add zwavejs2mqtt CALLED_IN_GUEST unix-char mode=0666 gid=20 path=/dev/CALLED_IN_HOST

# Find IPV4 of GUEST and NOTE it
$ lxc list zwavejs2mqtt

# Login to guest
$ lxc exec zwavejs2mqtt -- /bin/bash

# ON GUEST
# Install zwavejs2mqtt
$ snap install zwavejs2mqtt

# Connect necessary interfaces
$ snap connect zwavejs2mqtt:raw-usb
$ snap connect zwavejs2mqtt:hardware-observe

# Reboot container (and RETURN TO HOST)
$ sudo reboot

# (Log back in to the container as described in the last command for HOST)

# Set server.host to IPV4
$ snap set zwavejs2mqtt=<IPV4 address>

# Start zwavejs2mqtt and follow output
$ zwavejs2mqtt.exec

Now go into the browser at http://<IPV4 address>:8091/ and to «settings». You will now find /dev/CALLED_IN_GUEST in the list of devices under the «general»-tab.
I will try figure out how to do this in VirtualBox too, as I can remember that it was much trickier to get the controller available under VBox, to reach it from a VM instance of Win10 when I had to upgrade the chip. Just need to get the darn VirtualBox to work first :sweat:

Well I don't see much use in virtual box, because this is kind of specific to how vmware vitalizes its serial ports.
What I remember as the show stopping issue with the snap was snap itself throwing a total security fit re: serial ports. Honestly it was two weeks ago and the brain has already flushed it all at this point, sorry!

Hi,
I'm mostly interested in figuring out these details as it might help others within the community.
I've now tested with VirtualBox too and also here you'll add the USB device and it will show up as a USB device under the VM and in the list under settings of zwavejs2mqtt. No serial-port interface needed, only raw-usb.
Can you share which VMWare you're using?

I've now successfully done it similar to how I did it with VIrtualBox. Make sure USB 2.0 is enabled. For simplicity I didn't add any filter or only allow specific device(s) through,
Then enable the device from the toolbar on the bottom. Mine is called «Sigma Design Modem» on VMware, and something similar on VirtualBox.
When you have booted the VM and passed through the USB device,

install the snap package sudo snap install zwavejs2mqtt
connect raw-usb and hardware-observe interfaces with sudo snap connect zwavejs2mqtt:<interface>
start zwjs2m with sudo zwavejs2mqtt.exec and follow the output from the terminal.

If you're running a Linux desktop you can from the VM guest instance launch a browser locally and reach zwavejs2mqtt on http://localhost:8091/.
If you're using a server or minified version of linux (e.g Ubuntu Server or Core), you have to set the server.host to make zwjs2m listen on the correct interface and not use «localhost» (you probably want to do this anyway?).
On newer versions of Ubuntu that do not ship net-tools anymore, you'll have to use the command ip addr show to find the IP address on correct interface. Other distros of Linux might ship net-tools and you can then use the command ifconfig.
Set the host-ip with
sudo snap set zwavejs2mqtt server.host=<IP addr>

and restart zwavejs2mqtt as in 3. above.
You can now access zwavejs2mqtt from the host on http://IP:8091/.
Now go to Settings  > Zwave and select your device. In my case it was /dev/ttyACM0.
When everything runs as expected. End the command zwavejs2mqtt.exec and run zwavejs2mqtt.enable to daemonize it so it will start on boot and run in the background.

Ahhhh, OK...  Now that I'm seeing it again (clean OS install finished) I'm remembering the problem.
The root problem is that vmware refuses to virtualize this zwave stick as a usb device, not entirely an uncommon event. It allows it to pass through as a serial port (see /dev/ttyS0, /dev/ttyS1, etc.) and can be used that way just fine in the guest, but it cannot be passed through as a usb device inside the guest OS, only as a serial port. The upshot is that anything that references /dev/ttyACM0 is a non-starter because that simply doesn't exist in this context. Anything that references passing through as a USB device is a non-starter because even though I can have other devices pass through as USB, this particular one I can't for whatever technical behind the scenes vmware reason.
The zwave faux serial port works in this config (I told the docker install to use /dev/ttyS0 , and it's happily sending and receiving zwave data), just snap doesn't. I don't think it's the snap's problem/fault, I think it's snap itself. (I got as far as some security problem with snap and serial ports falling out of google and at that point I didn't care anymore and switched horses to docker.)

Hi,
Ah. Since VMware do pass mine through as an USB device, it probably makes things easier.
Do you know which USB device this is?

Yep! Homeseer smartstick+ (pdf).

Thanks, I can only find the G3 version. I guess that's the upgraded kind, but looks like it's working the same ("virtual COM device").
Before I order one to investegate further, I'll just want to make sure that you've tried to enable hotplug support?
sudo snap set system experimental.hotplug=true
sudo systemctl restart snapd.service

and checked that it doesn't show up in the list of slots of the command:
sudo snap interface serial-port

I guess Snapd is loading this based on the vendor & product id and Snapd doesn't have any option to identify it since it's , in your case, forwarded as a serial port and not an USB device.
This is the output in VM of dmesg when I passthrough the devices from the toolbar:
[  484.576893] usb 2-2.2: new full-speed USB device number 6 using uhci_hcd
[  484.964652] usb 2-2.2: New USB device found, idVendor=0658, idProduct=0200, bcdDevice= 0.00
[  484.964659] usb 2-2.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  484.969385] cdc_acm 2-2.2:1.0: ttyACM0: USB ACM device
[  503.890512] usb 2-2.2: USB disconnect, device number 6
[  510.300949] usb 2-2.2: new full-speed USB device number 7 using uhci_hcd
[  510.692007] usb 2-2.2: New USB device found, idVendor=0658, idProduct=0200, bcdDevice= 0.00
[  510.692013] usb 2-2.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  510.696782] cdc_acm 2-2.2:1.0: ttyACM0: USB ACM device
[  528.094069] usb 2-2.2: USB disconnect, device number 7
[...]
[  644.860131] usb 2-2.2: new full-speed USB device number 8 using uhci_hcd
[  645.256773] usb 2-2.2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[  645.256782] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  645.256787] usb 2-2.2: Product: CP2102N USB to UART Bridge Controller
[  645.256792] usb 2-2.2: Manufacturer: Silicon Labs
[  645.256796] usb 2-2.2: SerialNumber: 6ab01867cb08ea11bc2bd1352473482f
[  645.312686] usbcore: registered new interface driver usbserial_generic
[  645.314655] usbserial: USB Serial support registered for generic
[  645.320221] usbcore: registered new interface driver cp210x
[  645.320714] usbserial: USB Serial support registered for cp210x
[  645.321212] cp210x 2-2.2:1.0: cp210x converter detected
[  645.340174] usb 2-2.2: cp210x converter now attached to ttyUSB0
[  650.112112] usb 2-2.3: new full-speed USB device number 9 using uhci_hcd
[  650.500376] usb 2-2.3: New USB device found, idVendor=0658, idProduct=0200, bcdDevice= 0.00
[  650.500382] usb 2-2.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  650.504885] cdc_acm 2-2.3:1.0: ttyACM0: USB ACM device

This is the output from snap inteface serial-port on my VM, when hotplug is enabled:
name:    serial-port
summary: allows accessing a specific serial port
slots:
  - snapd:aeotecz-stickgen5zw0 (allows accessing a specific serial port)
  - snapd:cp210xuartbridge (allows accessing a specific serial port)

Yeah they recently upgraded it, so did the usual thing of a fire sale to blow out all the old product.
To be honest I wouldn't bother ordering one to investigate, unless it's really going to bother you if you don't. As far as I'm concerned this is an edge case, and one that's probably not all that common. So if it stays a non-functional edge case I doubt think it's really going to affect all that many people.
Unless it's going to keep you up at night, of course. ;)
~$ sudo snap get system experimental.hotplug true
`~$ sudo snap interface serial-port
name:    serial-port
summary: allows accessing a specific serial port
plugs:

zwavejs2mqtt`

~$ dmesg | grep tty [    0.199904] printk: console [tty0] enabled [    1.458207] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
And that is the only reference in dmesg. Obviously, it's no 16550A, but I guess that's how vmware is virtualizing it. It works though, so can't really complain!
`~$ snap interface serial-port
name:    serial-port
summary: allows accessing a specific serial port
plugs:

zwavejs2mqtt`

I think that was where I hit the road block, I couldn't define a slot that I could let zwavejs2mqtt plug into.


optimize ThreadlessExecutor

What is the purpose of the change

optimize ThreadlessExecutor
tri response works on user threads

The original ThreadlessExecutor uses the LinkedBlockingQueue.take method to wait response, which will reduce the performance of the benchmark.
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #11965 (b45a78d) into 3.2 (bd57066) will increase coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                3.2   #11965      +/-   ##
============================================
+ Coverage     69.80%   69.83%   +0.03%
  Complexity        2        2
============================================
  Files          1575     1575
  Lines         64935    64917      -18
  Branches       9451     9454       +3
============================================
+ Hits          45327    45337      +10
+ Misses        15271    15248      -23
+ Partials       4337     4332       -5

see 27 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

timeout 超时回调加了一个 isShutdown的判断。
我们线上也出现了 线程池被关掉的情况。 问下当时是有什么逻辑 触发了这个shutdonw 吗。
  ExecutorService executor = future.getExecutor();
            if (executor != null && !executor.isShutdown()) {
                executor.execute(() -> notifyTimeout(future));
            } else {
                notifyTimeout(future);
            }


Same avatars for every user?

Why am I see same avatar for different accounts?
How are you using FT, could you extend the manual please?
 ~ % near view dev-1632083448233-46360154416655 avatar_of '{"account_id":"1.testnet"}'
View call: dev-1632083448233-46360154416655.avatar_of({"account_id":"1.testnet"})
'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCINICAgICB2aWV3Qm94PSIwIDAgMTIwIDEyMCINICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0gIDxnIGZpbGw9IiMwMDAiIHN0cm9rZT0iIzAwMCI+DSAgICA8cmVjdCB4PSI1MCIgeT0iMTAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIvPg0gICAgPHJlY3QgeD0iMTAiIHk9IjMwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjIwIi8+DSAgICA8cmVjdCB4PSIxMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSIzMCIvPg0gICAgPHJlY3QgeD0iNzAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iMzAiLz4NICAgIDxyZWN0IHg9IjMwIiB5PSI4MCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+DSAgICA8cmVjdCB4PSI3MCIgeT0iODAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIvPg0gIDwvZz4NPC9zdmc+DQ=='
 ~ % near view dev-1632083448233-46360154416655 avatar_of '{"account_id":"2.testnet"}'
View call: dev-1632083448233-46360154416655.avatar_of({"account_id":"2.testnet"})
'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCINICAgICB2aWV3Qm94PSIwIDAgMTIwIDEyMCINICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0gIDxnIGZpbGw9IiMwMDAiIHN0cm9rZT0iIzAwMCI+DSAgICA8cmVjdCB4PSI1MCIgeT0iMTAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIvPg0gICAgPHJlY3QgeD0iMTAiIHk9IjMwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjIwIi8+DSAgICA8cmVjdCB4PSIxMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSIzMCIvPg0gICAgPHJlY3QgeD0iNzAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iMzAiLz4NICAgIDxyZWN0IHg9IjMwIiB5PSI4MCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+DSAgICA8cmVjdCB4PSI3MCIgeT0iODAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIvPg0gIDwvZz4NPC9zdmc+DQ=='

Why am I see same avatar for different accounts?

If the user has not created an author for himself, then the default image is displayed. It is expected that the user will create an avatar on his own for his account using the interface https://neatar.github.io/

How are you using FT, could you extend the manual please?

<EMAIL_ADDRESS>

Why am I see same avatar for different accounts?

it has been improved, now the default avatars are different
Thanks for the feedback


Optimization: Polynomial division

Easy improvement of division speed between polynomials
Executive Summary
Dividing two polynomials with significantly different degrees can take a long time (about 1 minute (to several hours) for degree ≃20.000 and 10.000).
Steps to Reproduce
Running this program may take around 60 seconds, depending on your system:
use std::time::Instant;

use lambdaworks_math::elliptic_curve::short_weierstrass::curves::bls12_381::curve::BLS12381FieldElement as F;
use lambdaworks_math::polynomial::Polynomial;

fn main() {
    let degree_poly_1 = 20_000; // Arbitrary value
    let mut coeffs1 = vec![F::zero()];
    for _ in 0..degree_poly_1 - 1 {
        coeffs1.push(F::zero());
        // coeffs1.push(F::one() + F::one()); // Or in place, this one lasts several hours
    }
    coeffs1.push(F::one());
    let p1 = Polynomial::new(&coeffs1);
    // Arbitrary polynomial, it could be computed with `new_monomial`, or in another way

    let degree_poly_2 = 10_000; // Arbitrary value
    let mut coeffs2 = vec![F::zero()];
    for _ in 0..degree_poly_2 - 1 {
        coeffs2.push(F::zero());
    }
    coeffs2.push(F::one());
    let p2 = Polynomial::new(&coeffs2);
    // Arbitrary polynomial, it could be computed with `new_monomial`, or in another way

    let start = Instant::now();
    let _q = p1 / p2; // We divide p2 by p2
    let duration = start.elapsed();

    // And display the time it took to compute it
    println!("Time to compute the quotient between a polynomial of degree {} and another of degree {}: {}s",
        degree_poly_1,
        degree_poly_2,
        duration.as_secs()
    );
}

Root Cause Analysis
Dividing a polynomial by another will call the mul_with_ref function, which computes the product of two polynomials in a natural way. But in long_division_with_remainder, this function is used with a monomial in argument, and so the mul_with_ref function wastes time computing useless products and sums (for each 0 coefficient of the monomial factor).
Recommendations
We can replace the current code by this one, which just check that both coefficients are not 0 to perform operations:
pub fn mul_with_ref(&self, factor: &Self) -> Self {
        let degree = self.degree() + factor.degree();
        let mut coefficients = vec![FieldElement::zero(); degree + 1];

        if self.coefficients.is_empty() || factor.coefficients.is_empty() {
            Polynomial::new(&[FieldElement::zero()])
        } else {
            for i in 0..=factor.degree() {
                if !factor.coefficients[i].is_zero() {
                    for j in 0..=self.degree() {
                        if !self.coefficients[j].is_zero() {
                            coefficients[i + j] += &factor.coefficients[i] * &self.coefficients[j];
                        }
                    }
                }
            }
            Polynomial::new(&coefficients)
        }
    }

I believe the overhead of checking for zero coefficients is negligible compared to the performance gains from avoiding unnecessary computations.
Or to keep a constant time property for classical multiplication, one can instead create the previous function only for use in the long_division_with_remainder function, removing the if !self.coefficients[j].is_zero() { condition:
pub fn mul_with_ref_for_long_division_with_remainer(&self, factor: &Self) -> Self {
        let degree = self.degree() + factor.degree();
        let mut coefficients = vec![FieldElement::zero(); degree + 1];

        if self.coefficients.is_empty() || factor.coefficients.is_empty() {
            Polynomial::new(&[FieldElement::zero()])
        } else {
            for i in 0..=factor.degree() {
                if !factor.coefficients[i].is_zero() {
                    for j in 0..=self.degree() {
                            coefficients[i + j] += &factor.coefficients[i] * &self.coefficients[j];
                    }
                }
            }
            Polynomial::new(&coefficients)
        }
    }

and keep the current mul_with_ref function as is.
Benchmarks
On my system, the first division operation (the one not commented) is reduced from about 1 minutes without the verifications to less than 1 second with verifications (the duration.as_secs() function returned 0 seconds in my tests, indicating that the operation now completes in less than 1 second), and the second one (the commented one) is reduced from several hour to about 1 minute.

Thank you.


Comparison operator with an expected size for collections

Yo Andrey!
Please review my commit with comparison operator for collections of WebElements.
I have added new feature for the method shouldHaveSize(int):
.shouldHaveSize(GREATER, 1);
.shouldHaveSize(EQUALS, 1); works like good old .shouldHaveSize(1);
.shouldHaveSize(GREATER, 1).shouldHaveSize(LESS_OR_EQUALS, 5);

We should probably wait, until the selenide collection implementation will be updated. The problem is that any of shouldHaveSize() - can not work 100% reliable with ajax apps, as we don't know when collection is completely loaded yet. More methods that are not 100% reliable - more confusion.

I understand what you mean, but my case is not related to Ajax.
I have a elastic markup which may contain from 4 to 7 elements (like Youtube for example) depending on a screen resolution. I need to check it as $(".videos").shouldHaveSize(GREATER_OR_EQUALS, 1).shouldHaveSize(LESS_OR_EQUALS, 7) but Selenide don't offers way to do that.

@vasilevichra Thank you for the pull request! Let's discuss nuances.

If number of elements depends on browser size. Isn't it more correct to set browser size explicitly and then test exact number of elements?
If we still decide to have these methods, I would prefer to have one method $$.shouldHave() and multiple CollectionCondition subclasses. Something like that:

$$("li").shouldHave(sizeGreaterThan(3));
$$("li").shouldHave(sizeLessThan(7));
$$("li").shouldHave(sizeBetween(3, 7));

@vasilevichra I did it! Thought, a little bit differently. See https://github.com/codeborne/selenide/commit/1c3094a1e28525c7efef97257a86fe9a5b5c5432
Anyway, thank you for the commitment!


Wont upload on github even after submitting the problem.

Please review previous closed issues before filling out a new one! Duplicate issues will be closed without comment.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

The `sha` property is null in PUT request hence hit is failing with following error message.
{
  "message": "Invalid request.\n\nFor 'properties/sha', nil is not a string.",
  "documentation_url": "https://docs.github.com/rest/reference/repos#create-or-update-file-contents"
}

how can i rectify this error


Strong typing not failed when object missed required interface property

TypeScript Version:  3.8.3
Code
interface SomeObject {
    a: string;
    b: string;
}

const obj1: SomeObject = { // fail as expected, because b is missing
    a: 'a'
};

const obj2 = { // not fail
    a: 'a'
} as SomeObject;

const obj3 = <SomeObject> { // not fail
    a: 'a'
};

Expected behavior:
Strong typed object should fail when some required field is missing

This is what casts are for and why they aren't a replacement for type annotations.
const x = {} as string; // valid and dangerous downcast
const y = 'string' as {}; // valid and safe upcast
const z = 42 as string; // invalid because neither type is a sub-type of the other


SWAT-6295 Fix Jinja template example when there is no controller points

This is not the good way to fix the issue.
Because doing so will set an empty string as controller points, and the report will generate but without the graphs.
The root cause was that the result was run with a NLG in French. The fix will be this PR: https://github.com/Neotys-Labs/neoload-cli/pull/245


stderr files are mixed up when two compile_file() are run in separate tests

Given a file with two tests that each of them invoke compile_file() once, when the tests are run  with cargo test, Trybuild will sometimes confuse the stderr between the different files.
Example of test file:
use trybuild::TestCases;

#[test]
fn test_1() {
    TestCases::new().compile_fail("compile_failures/1.rs");
}

#[test]
fn test_2() {
    TestCases::new().compile_fail("compile_failures/2.rs");
}

When I run TRYBUILD=overwrite cargo test I got the following output:
$ TRYBUILD=overwrite cargo test
    Finished dev [unoptimized + debuginfo] target(s) in 0.02s
     Running target/debug/deps/trybuild_bug-d5914003f188d23e

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target/debug/deps/compile_failures-de2e248fffe703d4

running 2 tests
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Checking trybuild_bug-tests v0.0.0 (/home/manuel/dev/rust/trybuild_bug/target/tests/trybuild_bug)
    Blocking waiting for file lock on build directory                    ] 0/1: trybuild_bug-tests(bin)
    Finished dev [unoptimized + debuginfo] target(s) in 0.16s
    Finished dev [unoptimized + debuginfo] target(s) in 0.07s

test compile_failures/1.rs ...

test compile_failures/2.rs ... wip

NOTE: writing the following output to `compile_failures/1.stderr`.
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
error: expected one of `(` or `<`, found `{`
 --> $DIR/1.rs:1:9
  |
1 | fn main { failure_1 }
  |         ^ expected one of `(` or `<` here
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈

test test_1 ... ok
wip

NOTE: writing the following output to `compile_failures/2.stderr`.
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
error: expected one of `(` or `<`, found `{`
 --> $DIR/1.rs:1:9
  |
1 | fn main { failure_1 }
  |         ^ expected one of `(` or `<` here
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈

test test_2 ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Notice how Trybuild is writing the error output of 1.rs into 2.stderr. This happens randomly, it will sometimes pick one, sometimes the other.
See a full repo that reproduces the issue here: https://github.com/manuelmorales/trybuild_file_mixup. I'm using rustc 1.39.0 on Ubuntu 19.10.

Seems like a race condition. Running the tests with cargo test -- --test-threads 1 makes the problem go away.

I'm running into the same issue - extracting "positive" tests that should compile on all rustc versions into a single test doesn't work, and so my code has to run the positive & negative tests (where error messages might differ between rustc versions) in the same test function.
It does seem like some sort of non-parallelism-safety issue: The error I get says that a test (which should succeed) succeeded when failure was expected.

Looking into this a bit: Every test creates its own mini cargo project. I think the issue is that every test uses the same directory and name, meaning that when run in parallel, the writing of the manifest is overlapping. Something like
Thread 1 - Writes manifest, starts cargo
Thread 2 - Writes manifest, starts cargo
Thread 1 - Cargo gets lock, runs test
Thread 2 - Cargo gets lock, runs test
Or other similar situations.


Create a web-application project template

So far the only thing we've done leveraging datazen is the WoW-macro UI (source): https://vkottler.github.io/blizzard/static/
Right out of the gate this drove some useful feature development on the generator side, but we need to build out a template (like https://github.com/vkottler/python-package-template) so we can make more GUIs

We have a few initial use-cases:

A way to visualize SVG work using svgen, and continue development on https://github.com/vkottler/svgen/issues/6
A GUI for vtelem

It's possible we may want to look into non-browser GUIs so we can more easily connect Python code to a UI

Probably for Python, something like "prompt toolkit" (i.e. https://github.com/vkottler/vmklib/issues/3) isn't an endgame that works for everything.
Other options:

https://docs.python.org/3/library/tkinter.html (part of the standard library!)
https://wxpython.org/
https://matplotlib.org/ (plotting only)
https://plotly.com/python/ (plotting only)
Connect a Python server to something like Electron (kind of pointless)
Connect an arbitrary web app to a Python web server, and add RESTful APIs to packages where needed (might make the most sense for svgen)

Resources:

https://www.w3schools.in/python-tutorial/gui-programming/

Maybe we should try https://grpc.io/ or something, too

We have this now, too https://github.com/vkottler/typescript-package-template

https://github.com/vkottler/runtimepy does front-end apps in Python.


move layer definition from trainer to models.

public layers moving from trainer to models according to @oneseer's design.

/assign @oneseer

Codecov Report

Merging #203 (0128f4a) into main (9a48752) will decrease coverage by 4.15%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #203      +/-   ##
==========================================
- Coverage   71.42%   67.27%   -4.16%
==========================================
  Files         104      110       +6
  Lines        4101     4354     +253
  Branches      419      453      +34
==========================================
  Hits         2929     2929
- Misses       1028     1281     +253
  Partials      144      144

Impacted Files
Coverage Δ

towhee/models/layers/__init__.py
0.00% <0.00%> (ø)

towhee/models/layers/dropblock2d.py
0.00% <0.00%> (ø)

towhee/models/layers/droppath.py
0.00% <0.00%> (ø)

towhee/models/layers/weight_init.py
0.00% <0.00%> (ø)

towhee/models/layers/multi_scale_attention.py
0.00% <0.00%> (ø)

towhee/models/layers/pool_attention.py
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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

/approve
/lgtm

/assign @junjiejiangjjj


Python 3.11 support

Getting this error when trying to install dependencies using Python 3.11 or higher.
Searching for commonroad-reach>=2023.1
Reading https://pypi.org/simple/commonroad-reach/
Downloading https://files.pythonhosted.org/packages/e8/6a/7bc84173fa859cd8f2dee6384df0626339c5176056d03758decc897fe26b/commonroad_reach-2024.1.tar.gz#sha256=0e0d995c0ef0f2ded6430f1c4e095df59723b2ee552455388087bf2b884fd29a
Best match: commonroad-reach 2024.1
Processing commonroad_reach-2024.1.tar.gz
error: Couldn't find a setup script in /tmp/easy_install-q5c7esh7/commonroad_reach-2024.1.tar.gz

Looks like commonroad-reach doesn't have a release for 3.11 and for whatever reason also can't be compiled.

We currently only support Python 3.8-3.10. We will provide Python wheels for newer versions with one of the next releases of commonroad-reach.


Memory keeps increasing leads to crashing in iOS(It would easily happen  in iPhone 6)

When pushing and popping a complicated page repeatedly, the memory keeps increasing.
The same issue also exists in Flutter Gallery.
As described above:

[✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.13.5 17F77, locale zh-Hans-CN)
• Flutter version 0.5.1 at /Users/blockmake/Documents/Test/flutter
• Framework revision c7ea3ca377 (8 weeks ago), 2018-05-29 21:07:33 +0200
• Engine revision 1ed25ca7b7
• Dart version 2.0.0-dev.58.0.flutter-f981f09760
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
• Android SDK at //Users/blockmake/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-27, build-tools 27.0.3
• ANDROID_HOME = //Users/blockmake/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
• All Android licenses accepted.
[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 9.3, Build version 9E145
• ios-deploy 1.9.2
• CocoaPods version 1.5.0
[✓] Android Studio (version 3.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 23.2.2
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
[!] VS Code (version 1.25.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected devices (2 available)
• Mi 4c    • 82cd1714                             • android-arm64 • Android 7.0 (API 24)
• iPhone X • A2C46D32-7C1A-4F90-A187-44281E51789C • ios           • com.apple.CoreSimulator.SimRuntime.iOS-12-0 (simulator)

Reproducing Steps: Push a page with complicated UI and pop, and do it repeatedly , or push diffrent pages repeatedly.

I have the same problem, it seems FlutterViewController never be called dealloc to release. Every push will increase about 60+M memory.

Same here, flutter is reducing our possibilities with this. :worried:

Call flutterEngine?.destroyContext() when you want release flutterViewController

@cxq1221 - can you please provide a simple sample project that shows the problem?

@ened the example provided by topic-starter of this issue https://github.com/flutter/flutter/issues/32143 (don't know why it was closed) is always crashing on ios (testing on iPhone 6 )by the same reason as well as flutter gallery sample with flutter version v1.7.8+hotfix.2 stable channel and v1.9.0 from dev channel.

DestroyContext would crash

@cxq1221  did you solve the issue. I have been having this issue for about a month now. no solution really frustrating.

This is a big problem that our team has also encountered. We hope the authorities can solve it as soon as possible

Hopefully they will. I have also opened another issue regarding this topic, no answer though.

CC @gaaclarke who has commented on https://github.com/flutter/flutter/issues/44256 . Aaron: can you please try to see if this issue can be reproduced?

There are a few issues that have addressed this.  It sounds like some of the original comments are talking about a retain cycle with FlutterViewController, which isn't the case today.
Some of the comments talk about releasing resources when FlutterViewController is deleted, that was addressed in: https://github.com/flutter/engine/pull/13396 . It seems like some people may want to look into FlutterViewController.allowHeadlessExecution.
One comment talks about the code in https://github.com/flutter/flutter/issues/32143 getting memory booted.  I just ran that on master and it doesn't get memory booted.  You can see when the image cache reaches a certain size it ejects things from memory.
I suggest we put out a call for a reproduction case that results in a memory boot on master.  That will help us definitively say if there is an issue still and what exactly it is since a few different things have been talked about.

There are a few issues that have addressed this. It sounds like some of the original comments are talking about a retain cycle with FlutterViewController, which isn't the case today.
Some of the comments talk about releasing resources when FlutterViewController is deleted, that was addressed in: flutter/engine#13396 . It seems like some people may want to look into FlutterViewController.allowHeadlessExecution.
One comment talks about the code in #32143 getting memory booted. I just ran that on master and it doesn't get memory booted. You can see when the image cache reaches a certain size it ejects things from memory.
I suggest we put out a call for a reproduction case that results in a memory boot on master. That will help us definitively say if there is an issue still and what exactly it is since a few different things have been talked about.

Hi @gaaclarke . Compared to the solution that set allowHeadlessExecution to NO. I prefer to set allowHeadlessExecution to YES. And call destroyContext by a timer when the FlutterViewController dealloc. This should allow some code at the end can be executed.

Based on @gaaclarke's comments last year, it sounds like this bug is not really actionable any more, because it covers many topics. I recommend that for each individual thing you would like to see changed, you file a separate bug and describe the use case, the bug, how to reproduce the bug, and so forth. Thanks.


Added aiub.edu domain

Added aiub.edu domain for American International University-Bangladesh

@Kudrot467 I am sorry, the domain aiub.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Add debugging

Codecov Report

Merging #422 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #422   +/-   ##
=======================================
  Coverage   57.89%   57.89%
=======================================
  Files          45       45
  Lines        5645     5645
=======================================
  Hits         3268     3268
  Misses       2075     2075
  Partials      302      302

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 9c240f5...33c4a37. Read the comment docs.


Which of the parameters can be made public?

In context of the dbfv psi example,
The party struct :
type party struct {
	sk         *rlwe.SecretKey
	rlkEphemSk *rlwe.SecretKey

	ckgShare    *drlwe.CKGShare
	rkgShareOne *drlwe.RKGShare
	rkgShareTwo *drlwe.RKGShare
	pcksShare   *drlwe.PCKSShare

	input []uint64
}

Here ckgShare, rkgShareOne and rkgShareTwo are generated using the secret key and crp; Do we need to create private channels between parties to aggregate the shares and generate the pk and rlk?
By this I mean are the select parameters mentioned above are private to the parties or can they be publicly disclosed.

ckgShare, rkgShareOne and rkgShareTwo above can be publicly disclosed (see 2020/304 for more information about the CKG and RKG protocols).

Thanks a lot!


Shift to use new imported ifrau client

Bump the hello-world FRA to use the latest ifrau client so we can test this new workflow within an actual FRA.

Note: This can't/shouldn't merge until the requisite ifrau version bump PRs are merged and released in core/htmleditor.

New core/htmleditor versions have been published with the new ifrau usage, so I'll do a quick test run locally and then merge this if everything looks good.

Ok, core and htmleditor changes have now been merged and released, so I'll merge this.


Fix some missing data issue

Remove continent from parent places.
Remove null data from bar chart.
Add % as unit for unemployment rate.

Did this trigger any d3 warnings in the console? Iirc, it was a naive fix to clear those warnings for stacked bar charts with null values.

I do not see console warnings. This is for a single bar chart case:
 do you think the d3 warnings apply here?

The warnings were for stacked bar charts.

There's a test that needs to be fixed tho

There's a test that needs to be fixed tho

The tests are very comprehensive now.


allow passing in validator directly to construct ScoringConfig

@morgante can you PTAL? Thanks.

Could you remove it and all references?

Done. The field is removed, together with the reference of it (attachValidator).


Migrate to command-executor-lib

Resolves:
issue: #54

can you assign me this under GSSOC'24?

@anglerfishlyy this is already taken by @WYGIN. Feel free to checkout other issues.

Also, I'm confused how node_modules got here, did you add them explicitly? I added those in gitignore.

I will take care of it, i believe this is due to not using workspaces!

Also, I'm confused how node_modules got here, did you add them explicitly? I added those in gitignore.

I will take care of it, i believe this is due to not using workspaces!

Sounds good.

@frankhart2018 ready for review

Closing this. Please re-open if you want to wrap this up.

Closing this. Please re-open if you want to wrap this up.

For sure :)


Add assets

With videos in YouTube

@sundaram123krishnan If you want to spend a little time to make a nice "Feature Showcase" page with the gifs an dlinks to videos, or embedded video players (plus maybe a short description of what you are watching...) that would be great!!!
Otherwise, we can create an issue to do that for the next-release, as it would be nice to show off all these improvements, without a massive release notes or post with them all in.
In the release notes / posts I would show one short gif of waveform as "eye candy" and link to the showcase page to "see more".
Up to you:

merge as is and create issue for next release
take a shot at it, pushing to this branch your changes!


needs update for string.data changes

After JuliaLang/julia#19449, soon to be merged for Julia 0.6, you will no longer be able to access the raw bytes of a string via string.data; instead, do Vector{UInt8}(string).  For example, this affects:
https://github.com/JuliaDB/ODBC.jl/blob/cb61c6fa5e31cdc9b627b54f7ac6bd6515fad10b/src/Sink.jl#L40-L46

getptrlen(x::AbstractString) = pointer(x.data), length(x), UInt8[] also looks suspicious to me.  First, length(x) is the length in codepoints, whereas with pointers you usually want the length in bytes.  Second, this doesn't seem likely to work for anything that is not a ByteString or a substring thereof.   Maybe you want:
getptrlen{T<:Compat.String}(x::Union{T,SubString{T}}) = pointer(x), sizeof(x), UInt8[]


Wants to upload entire archive again after upgrade from <IP_ADDRESS>2 to <IP_ADDRESS>1

I normally do a docker pull and everything upgrades fine, however this major upgrade has me re-uploading 4.0TB which will take months!  I looked online and my backup is still there, and I can restore from earlier this year, but apparently my CRCs don't match with their v7 and it wants to upload everything again!  I remember this happening when we went from v5 to v6 and crashplan rolled everyone back a version and held us there a very long time!  So,, I called today and sure enough they recommend rolling back.  Sigh!!!  Has anyone else seen this with v7?  I rolled back to v2.6.4 which is v6 and will see what happens.  It's syncing now.
I am running this on a QNAP 877 NAS for the last year or so without any issues using the code below.  Thanks for all your work on this wonderful docker!

> `docker run --restart unless-stopped -d \
>     --name=crashplan-pro \
> 	--restart=always \
>     -e USER_ID=0 \
>     -e GROUP_ID=0 \
>     -p 5800:5800 \
>     -p 5900:5900 \
>     -e TZ=America/Chicago \
>     -e CRASHPLAN_SRV_MAX_MEM=3072M \
>     -v /share/docker/appdata/crashplan-pro:/config:rw \
>     -v /share/CACHEDEV1_DATA:/share:ro \
>     jlesage/crashplan-pro`

Are you sure the data was actually re-uploaded?  After an upgrade, the local cache is cleared, making CrashPlan to re-evaluate all your data, both locally and remotely.  The activity reported by CrashPlan can be confusing and can make you think that everything is re-uploaded.  But when you look at the history, you realize that your data is actually not re-uploaded.

Yes, pretty sure... It ran for two days after it did a full block sync and
reported 4G completed and 3.8TB to go, with 7 months remaining.  I reverted
back to the v6 client tonight and it's currently at 28% on synchronizing
block information. Once that's done we'll see how much it shows needs
uploaded.
On Wed, Jul 3, 2019, 20:07 Jocelyn Le Sage<EMAIL_ADDRESS>wrote:

Are you sure the data was actually re-uploaded? After an upgrade, the
local cache is cleared, making CrashPlan to re-evaluate all your data, both
locally and remotely. The activity reported by CrashPlan can be confusing
and can make you think that everything is re-uploaded. But when you look at
the history, you realize that your data is actually not re-uploaded.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jlesage/docker-crashplan-pro/issues/183?email_source=notifications&email_token=AJM5C3WDJTAJLVL4FWOVG4TP5VENTA5CNFSM4H5NJYN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZGBESI#issuecomment-508301897,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJM5C3TOTA5AOG2MSSUXVJ3P5VENTANCNFSM4H5NJYNQ
.

Alright, I confirmed that with <IP_ADDRESS>2, I was able to do a full block sync overnight and today it shows all backed up.  :/  This the EXACT same issue they had with v5 to v6, eeesssh.  I will report it to Crashplan and see what they say.  Last time it was also a "known issue" and they held forced upgrades on the windows clients until they sorted it out.

Are you using your own encryption key?

Yes I am using my own key.
On Sat, Jul 6, 2019, 19:49 Jocelyn Le Sage<EMAIL_ADDRESS>wrote:

Are you using your own encryption key?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jlesage/docker-crashplan-pro/issues/183?email_source=notifications&email_token=AJM5C3UI5GIDU6WMC6FLYPDP6E4RNA5CNFSM4H5NJYN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZLCSOQ#issuecomment-508963130,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJM5C3ULFGVHMAEBLZVDRZLP6E4RNANCNFSM4H5NJYNQ
.

It's not the first time I heard issue with usage of custom key... so your issue may be related to this.  Unfortunately this is likely an issue from CrashPlan side.  Did you get any feedback from them?

They are taking the easy out since they can see I am using an unsupported client and saying to use more memory (reply below).  I didn't try upping the memory just because it would take about 16 hours to block sync the 4.0TB.  I didn't really think that moving from 3G to 4G would really make any difference since the container doesn't seem to use more than 1.5G at any time.  What do you think?

Hello,
Thank you for your reply! Our recommendation is to allow 1024 MB of RAM per TB of size or million files. Since you mentioned having 4 TB show as to-do, I would recommend an allocation larger than 3072 MB (which is your current setting).
Although CrashPlan is expected to use significantly less than the maximum allowed memory at most times, it is important that it be allowed to request this amount when it needs it. If it is not, it could report incorrectly or fail to function as expected, and could lead to behavior similar to what you describe.
Additionally, can you confirm what distribution and version of Linux you are running on this computer? From what I can see, it looks like you are running a version of Linux that we do not support. This means that we don't build or test CrashPlan for this system, and can't promise that it will work as expected. You can find our complete system requirements here:
https://support.code42.com/Administrator/Small_Business/Get_started_with_CrashPlan_for_Small_Business/CrashPlan_for_Small_Business_requirements
Please do not hesitate to contact me if you have any further questions or if there is anything else I can help you with.
Best regards,

You can try to increase the limit to 4G, just to make sure that it's not a point that the support team can argue on ;)
Also, I think you should say that the Linux distribution is based on Ubuntu, which is not totally false since all the libraries used by CP binaries come from Ubuntu.
Also, as you can see in /share/docker/appdata/crashplan-pro/log/app.log, the OS is reported is a generic Linux.  This is probably why they ask you to confirm.

A new version of CrashPlan has been release.  Maybe it fixes this issue?

I'll give this a try when I get home later this weekend.
On Sat, Jul 13, 2019, 21:02 Jocelyn Le Sage<EMAIL_ADDRESS>wrote:

A new version of CrashPlan has been release. Maybe it fixes this issue?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jlesage/docker-crashplan-pro/issues/183?email_source=notifications&email_token=AJM5C3TRMJVF4MFNXISXILTP7KCMVA5CNFSM4H5NJYN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ34THI#issuecomment-511166877,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJM5C3SLQKCFQLOZNWPWLFDP7KCMVANCNFSM4H5NJYNQ
.

SUPER happy to report that <IP_ADDRESS>5 works properly!  I also upped my container memory from 3G to 4G to match my archive size, but I seriously doubt that is what fixed it.

Issue closed


Static Modal Content Issue

I want to give my custom modal for selections? How I can do this?

Custom modal is not supported yet


feat: add wildcard option for static access

The title is the description.
Example 1:
    <rule ref="rulesets/cleancode.xml/StaticAccess">
        <properties>
            <property name="exceptions">
                <value>
                    \Illuminate\Support\*,
                </value>
            </property>
        </properties>
    </rule>

Example 2:
   <rule ref="rulesets/cleancode.xml/StaticAccess">
        <properties>
            <property name="exceptions">
                <value>
                    *\Support\*,
                </value>
            </property>
        </properties>
    </rule>

Example 3:
    <rule ref="rulesets/cleancode.xml/StaticAccess">
        <properties>
            <property name="exceptions">
                <value>
                    \Illuminate\*,
                </value>
            </property>
        </properties>
    </rule>

With Laravel, an option that only takes namespace App\*  would be helpful.
Unfortunately, the errors of packages are also output.

You might want to target the 3.x branch so you don't have to support the very old versions of PHP

@AJenbo
But why? The functions used are available since PHP 4.

@AJenbo But why? The functions used are available since PHP 4.

Because you are writing PHP 7.4 style code cause you have gotten so used to it at this point you don't even think about it.

https://www.php.net/manual/en/functions.arrow.php#example-187

@Muetze42 this is also not PHP 5.3 compatible:

@AJenbo
I have already adjusted it.

@Muetze42 ok, by the way I do get notifications for everything here since I'm a maintainer

Laravel is full of “StaticAccess”.
Is PHPMD 3 already in the starting blocks? Or will it still take a while?
I'm already thinking about developing a Laravel package with Laravel-specific customizations. (Like Larastan for PHPStan)

Is PHPMD 3 already in the starting blocks? Or will it still take a while?

All the cleanups are done.
I do hope we will land support for yml configs as well, but I think it can also come in 3.1.
I am looking at adding parallel processing, and maybe that's what the others are waiting for, not sure.
See https://github.com/phpmd/phpmd/milestone/25 and https://github.com/phpmd/phpmd/wiki

I have added tests for the 3 cases.
I think the XML configuration is not so bad with PHPMD. Maybe just add a XAML to XML parser in between? (It's similar with PHPCS, which can actually do XML & JSON)
But good to see that someone is continuing the project. It seemed to be “dead” for a while. If I remember correctly, there was a bit of a standstill with the release of PHP 8.
In my current projects everything is covered with unit tests, PHPCS, PHPStan. The only thing missing was PHPMD and I was glad to see that it can be installed and works without any problems.


XML

I don't quite understand how Jetpack Compose works, I haven't had much time to learn it, is there any previous version written in XML, I just refer to the Background remover section

Nope, this project was jetpack compose first from the beginning


No Hot Reload using a Docker container

Description
When working in Gridsome in a Docker container, hot reload doesn't seem to work.
Steps to reproduce
Install a new gridsome install in a docker image with some tips to make everything works wonders like host: <IP_ADDRESS> and the .env file for GraphQL endpoint.
Used #58 and #134 for making it work in docker.
Expected result
When modifying code in src folder, the development server should re-compile the changed files.
Actual result
Nothing changes. I just got this error:

I need to stop the container and create a new one to make changes appear.
Environment

Libs:
- gridsome version: 0.6.3
- @gridsome/cli version: 0.1.1

Browser:
- [X] Chrome (desktop) version 74.0.3729.169 (64 bits)

For Tooling issues:
- Node version: 10.16.0
- Platform: Docker on Windows 10 WSL

Have a look at this issue, @Kitefr. Should solve your issue... excerpt:

[..] added to gridsome.config.js as suggested above:
module.exports = {
host: '<IP_ADDRESS>'
port: 8080,
};

Closing, as this is duplicate of aforementioned close issue.

Like i said, i already done what was said in this topics but the hot reloading is still not working.

Like i said, i already done what was said in issue #58 but the hot reloading is still not working.

Sorry, my bad for not noticing that. Re-opening and pinging @hjvedvik.

No worry. Thanks for the futur help.
Maybe i need to enable polling in webpack ?

@Kitefr I had the same problem. Here is the way I worked around it:
gridsome.config.js
const merge = require('webpack-merge');
const {env} = process;

module.exports = {
  siteName: 'My Website',
  plugins: [],
  host: '<IP_ADDRESS>',
  port: '8000',

  configureWebpack(config) {
    return merge(config, {
      devServer: {
        proxy: {
          '/': `${env.VIRTUAL_HOSTNAME}:8000`,
        },
      },
    });
  },
}

In my configuration, the VIRTUAL_HOSTNAME environment variable is the hostname by which I am accessing the development website on my browser.
I also created a port binding between the Docker container and the host:
8000:8000

Thanks for you help @rich-choy, I'll try when I'll get some time.

I believe the problem has to do with your docker using <IP_ADDRESS> as it's host address to set up a web socket to your browser, while you are in using localhost as the hostname. This miss-match in hostname makes it impossible for web socket to correctly connection.
The example given by @rich-choy uses a proxy which should work, but you could also try to change the public to match the one you use in your browser.
devServer: {
   public: 'http://localhost:8080',
   host: '<IP_ADDRESS>',
},

This will be improved in the next release :) The default host will be <IP_ADDRESS>. And the GraphQL and SockJS endpoints will be /___graphql and /___echo instead of full absolute URLs. SockJS will also run on the same port as the site.

@hjvedvik Fantastic!

This should be fixed in 0.7.x.

I was having this issue in 0.7.10 after upgrading from 0.7.0 and assume I fixed it by:

deleting package-lock.json,
deleting node_modules,
running a fresh npm install


RGPD/CookieConsent: Ask the user for cookies

The front application should prompt the user to store informations in the browser.
Local Cart
This option allows the application to store the cart items of an anonymous user in the local storage, so that the cart can be retrieved when the user comes back.
If it is not accepted, cart items of an the anonymous user is stored in memory, & is lost at every page refresh. Existing items in the local storage store are removed.

Note: For connected user, this authorization has no real effect

Tracking
Allows the site to use Google Analytics (& maybe other trackers) to analyse traffic.
If it is accepted, the Google Analytics script is added to the page & events are bound.
If it is not accepted, Google Analytics related cookies are removed.
Do not bother me
In case the user has declined both Local Cart & Tracking, the application can't know if the user have already seen the cookie consent. This option gives none of the authorizations above, but stores an item to say that the user has configured his consents. The stored item is inserted only if all above options are defined; otherwise, the stored item is removed.

Partially implemented: only the server cart isn't working for now