Shouldn't gist use a PURL for it's namespace IRI?

Currently the namespace IRI for gist Core is: https://ontologies.semanticarts.com/gist/, but this IRI is problematic for two big reasons:

It tightly couples the ontology to the commercial company Semantic Arts, which might make non-USA governments, or non-USA-based corporations, wary of reusing it.
If Semantic Arts goes away (e.g., is bought out by another company, or it goes bust), then the domain name https://semanticarts.com may no longer exist or be resolvable, thereby preventing lookups. This could make any organization, USA-based or not, wary of having their data contain IRIs that may become unresolvable in future.

Instead it would be advisable (as is very common practice for ontologies generally) to define the namespace IRI using a PURL service, such as https://w3id.org. (Other PURL services could be considered perhaps (but the only other 'major' PURL services that I'm aware of at the moment are European ones like the new https://purl.eu, or https://data.europa.eu/)).
If https://w3id.org were chosen, this would just require the registration of 'gist' and a simple .htaccess file to redirect from a new gist namespace IRI (e.g., something like https://w3id.org/gist/core/) to the current location of the gist ontology, i.e., https://ontologies.semanticarts.com/o/gistCore.

This is a good idea. However, we are not exactly sure how this will work. Say we adopt this approach. We create a redirect rule so that when someone types the W3ID URI, it goes to Semantic Arts servers, where we control what is returned. Say Semantic Arts goes bust, so the redirect rule points to a non-functioning domain. How does using permanent URIs help? Who/what will serve up anything useful? How is it any different than what we do now, if we go bust, the domain stops working in both cases.

@pmcb55 A couple of additional points:

We would like the w3id namespace to include Semantic Arts to identify us as the ontology authors and maintainers, even if the company were to cease to exist. So we would propose https://w3id.org/semanticarts/gist.
Unlike common practice, we use two different IRIs for the namespace and the ontology IRI. The former is https://ontologies.semanticarts.com/gist/, while the latter is https://ontologies.semanticarts.com/o/gistCore. How will that square with the use of the w3id URI?

@uscholdm it would help since someone with "authority" could make a PR with an updated .htaccess file to change the redirect to a functioning server. "authority" could be the original submitter or someone who could make the case/point to evidence that they are a legitimate successor. I subscribe to the w3id GitHub repo and glance at the PR discussions (which are open for anyone to view) https://github.com/perma-id/w3id.org/pulls?q=is%3Apr+is%3Aclosed - the maintainers seem to do a diligent job.
@rjyounes it's up to you whether to keep the separate URIs for w3id.org. In either case the .htaccess file could do what you like with rules for /o/gistcore.
Likewise the rules could redirect https://w3id.org/semanticarts/gist/Person to return the whole ontology as a short term fix to avoid the 404, and later map to something like a DESCRIBE query if you have a SPARQL endpoint.
There's really a lot you can do in .htaccess file - there's a lot of documentation out there or you could look at some of the existing files in the w3id.org repo.
Finally, in case of confusion from the name, this capability is not affiliated with or endorsed by the W3C - it has its own management consortium. Scroll to the bottom of this long page https://github.com/perma-id/w3id.org for who does run and fund it.

@rivettp Excellent, very helpful response. So the punch line is the difference is that you can transfer authority. If no one does that, then the benefit disappears - the links will just be broken.
Thanks

Our conclusion is:

We first need to make our IRIs resolve. I'm assigning the issue to Jamie for this step. Dave suggests:

First priority is to make sure someone can download the whole file (as is current, that shouldn’t be too hard is it?)
Then how about we have an end point with DESCRIBE $URI

Then submit the w3id PR with a redirect from https://w3id.org/semanticarts/gist.

@uscholdm @Jamie-SA @mkumba Do we want to get the namespace change into v12? @uscholdm has suggested that the release not include an update of this level of impact along with all our other major changes, making migration more difficult. However, it could easily be included in the migration scripts.

I had started to work on this after we discussed it at the fall summit but remember that we had not known the full extent of the changes required when it was discussed. I need to go look at it again...

It looks like we are going to go ahead with this, but I have a couple of comments I've been thinking about since it was originally requested so I'm going to throw them out here.
One of the original reasons given was:

It tightly couples the ontology to the commercial company Semantic Arts, which might make non-USA governments, or non-USA-based corporations, wary of reusing it.

Does this really go away if semanticarts is still in the URL such as: https://w3id.org/semanticarts/gist?
Also, I think that argument doesn't acknowledge the benefits of having a known company actively developing it and using gist in many large enterprise projects and the 20 years of learning embodied in the work. When choosing open source technologies to build on, I find it reassuring to have a large corporation backing and contributing to it.

I proposed adding /semanticarts/ into the namespace, but not the domain, because I think it addresses both the original concern and the one you raise. We eliminate the technical coupling to the Semantic Arts domain and servers, as requested by Pat, but we retain an association between Semantic Arts and gist. This namespace can be retained even if the ontology maintenance is transferred to another organization or persons.
From: Jamie-SA @.>
Date: Tuesday, May 9, 2023 at 5:01 AM
To: semanticarts/gist @.>
Cc: Rebecca Younes @.>, Mention @.>
Subject: Re: [semanticarts/gist] Shouldn't gist use a PURL for it's namespace IRI? (Issue #683)
It looks like we are going to go ahead with this, but I have a couple of comments I've been thinking about since it was originally requested so I'm going to throw them out here.
One of the original reasons given was:

It tightly couples the ontology to the commercial company Semantic Arts, which might make non-USA governments, or non-USA-based corporations, wary of reusing it.

Does this really go away if semanticarts is still in the URL such as: https://w3id.org/semanticarts/gist?
Also, I think that argument doesn't acknowledge the benefits of having a known company actively developing it and using gist in many large enterprise projects and the 20 years of learning embodied in the work. When choosing open source technologies to build on, I find it reassuring to have a large corporation backing and contributing to it.
—
Reply to this email directly, view it on GitHubhttps://github.com/semanticarts/gist/issues/683#issuecomment-1539336318, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAM5PZB5JU5F6KD5VIVO7H3XFIBWXANCNFSM5YLFQVPQ.
You are receiving this because you were mentioned.Message ID: @.***>

DECISION:

gist namespace change to w3id.org domain
Ontology IRI returns the entire ontology, as currently
What does the namespace IRI return?

Text explaining why ontology IRIs and namespaces are not the same.
If you want the ontology: Link to the ontology
If you want to know more about gist: Link to the gist page on SA website
Link to gist documentation

Tasks:

[ ] Submit PR to w3id with update to .htaccess file for redirect to SA server - Jamie
[ ] Replace namespaces in all files in gist repo - Colton
[ ] IRIs of individual ontology terms should return HTML. - Jamie
Later step would be to use content negotiation to return either RDF or HTML. See issue #130. -
[ ] Create web page to display for namespace IRI - Dave
[ ] Update website links - Jamie
[ ] Maybe documentation changes in repo docs - Rebecca
[ ] Peter's eBook - Peter
[ ] Imports of gistCore in sub-gists
gistHR - Rebecca
gistProfSrv - Dylan
Ontologies in gistAcct repo - Jamie
gistSW - Katie

Submit one PR per item.

Hi all - firstly, I'm really sorry that I completely missed all the posts on this thread until Dave pinged me a couple of days ago! (Yes, I am 'Watching' this repo, but for some reason I don't get the notifications of changes (probably 'cos I've so overly-restricted my email filters, as I have to try and 'Watch' lots of repos/Confluence instances from customers/Jira repos/GitBucket repos/etc.)).
But secondly, I'm really impressed (again!) with the above discussion, and (again!) I 100% agree with the outcome you folks have arrived at here.
For example:

Yep, I totally agree that keeping /semanticarts/ in the Namespace IRI is actually better than what I originally suggested. The only 'important' part of the Namespace IRI is the domain, as that determines 'who' controls the full IRI. By changing that to w3id.org you've introduced the critical layer of indirection in that 'who', and that's all that really counts.
The fact that you've slotted in /semanticarts/ in there too is actually a wee bit better I think, as, for humans, it provides a nice little bit of (potentially, over time, if/when Semantics Arts is bought out, or disappears - historical) information on where this vocab originated, which I think is really 'nice' (and machines couldn't care less what's in an IRI after the domain part (apart from pesky hashes '#' in there though of course, but that's a whole other topic...!)).
So yeah, to @Jamie-SA - my concern really does "go away if semanticarts is still in the URL", 'cos it's no longer in the domain.
Yep, I also agree with gist's stance on: "Unlike common practice, we use two different IRIs for the namespace and the ontology IRI". I had a big lightbulb go off in my head over dinner with @uscholdm in Fort Collins last year as he explained the rationale for that. So much so in fact that I've now incorporated that into Inrupt's vocab Best Practices, and applied it to all our internal vocabs.
In other words, I think we should all be encouraging that to become the "common practice" :) !
And yep, I totally agree with @rjyounes wish to have the entire vocab resolve as RDF via it's Namespace IRI, and also for individual terms to also resolve as RDF (and in both cases to support content negotiation for providing HTML too). The best example I know of that working well today is QUDT (e.g., https://qudt.org/schema/qudt/CurrencyUnit). But yeah, I also agree that that is kinda a separate topic to the Namespace IRI issue itself (but yeah, the simple .htaccess rewrite rules from w3id.org can certainly be helpful in providing that for you too, if you like).

@Jamie-SA I put issues into the next release for the remaining tasks here. Can we move this one to Review?

I think this is as done as it needs to be to release v12. Not sure if that means we should close it or not. But definitely in Review seems reasonable.

@Jamie-SA I suggest we close this, since all the tasks that remain open have their own items now.


Request for disabled prop type tooltip

The Request is regarding addition of new prop to Tooltip. Consider the scenario Tooltip is added to a component and the focus is lost from the screen without moving the cursor over the tooltip component.
Then when focus returns to the parent component, even though mouse is not on the component with tooltip, tooltip is shown.

@vasanthkumar97 You can try that:
<Tooltip disableFocusListener>

IT helped Thanks


system: load <libpath>/../pkg if <libpath>/pkg doesn't exist but <libpath>/../pkg does

Load <libpath>/../pkg if <libpath>/pkg doesn't exist but <libpath>/../pkg does.
This to workaround the fact most file browsers will create a subfolder when extracting an archive that doesn't contain one.
This makes Unvanquished_0.56.0/linux-amd64/daemon load Unvanquished_0.56.0/pkg the same way Unvanquished_0.56.0/daemon loads Unvanquished_0.56.0/pkg.

Using FS::RawPath::ListFiles() is overkill but we don't have yet a dedicated function to test that a directory exists.

I'm against it. Going into .. to look for resources seems like a fishy and insecure design.
Curiously, this could cause a build in Unvanquished/build to automatically find the repository's pkg/. This could seem "convenient" but I think it is a bad idea. I don't want stuff to unpredictably change behavior based on how you choose the build dir. And testing with only released assets is an often desired use case.

If we had a builtin mini-GUI in the engine to run when there is no dpk, we could display a minimal file browser where people could just walk directories for a pakpath (basically going to parent dir and selecting pkg/). I believe Darkplaces does something a bit like that.
I'm also unhappy with the idea of the engine looking at the parent directory. But I'm also unhappy abot the zip thing almost never working as expected. We may also make that mechanism stronger by only looking at the parent dir if the basename of the current dir is something like linux-amd64 (and variants).

How about adding some extract.sh to the zip file?
Or the README instructions could be changed to recommend moving pkg into the new folder which might be easier.

How about adding some extract.sh to the zip file?

It would not solving the problem of starting a binary properly if the solution requires to start a binary properly. Also Linux systems doesn't run .sh file this easily in file browser, making it more complicated than a simple binary.

Or the README instructions could be changed to recommend moving pkg into the new folder which might be easier.

That still needs a README to give instruction, so it doesn't change much. Actually such README instruction to move pkg in may help on macOS.


Add 'Save as Copy' to File menu options

I often find myself wanting to save a copy of a file, as backup, and continue working on the on the original open file.
Currently I have to do a 'Save As', close the renamed file and re open the original file.
A 'Save as Copy' option would simplify this.

You can get this by installing this extension: https://marketplace.visualstudio.com/items?itemName=sleistner.vscode-fileutils


Avoid panics in edge cases

These cases happened when a really old TALM image got deployed accidentally. Panics from various places due to the mismatch between API and binary. CGUs got left behind in weird states which caused more panics even with the right version of TALM. It's difficult to cleanup them when TALM doesn't stay up.

/cherrypick release-4.11

/cherrypick release-4.10


Update to the new borrowing-based futures read/write API in gio

Depends on https://github.com/gtk-rs/gio/pull/255

much simpler 👍

See dependency PR. This does not work like this :)


Threaded Instancing: Control is not drawn if Control.visibility is changed from false to true during _ready()

Godot version:

v3.1-stable..3.2.3-stable (probably < 3.1 also, I couldn't open the reproduction in 3.0.6)
OS/device including version:

windows, mac, linux
Pop!_OS 20.04 LTS (like ubuntu 20.4)
OpenGL ES 3.0 Renderer: GeForce GTX 1070 with Max-Q Design/PCIe/SSE2
nvidia-driver-440
Issue description:

When calling PackedScene.instance() in a thread, then adding it to the scene and an ancestor Control.visible property is changed from false to true during _ready() it will not be drawn.

Steps to reproduce:
Run the reproduction.
Relevant code:
        var SomePackedScene: PackedScene = load('res://SomePackedScene.tsn')
	var instance = yield(BgWorker.new().instance_scene(SomePackedScene), 'completed')
	$"2dPanel".add_child(instance)

BgWorker.gd:
extends Reference

signal _thread_done(status)

var _thread: Thread

func instance_scene(scene: PackedScene) -> Node:
	assert(!_thread)
	_thread = Thread.new()
	_thread.start(self, '_thread_load', scene)
	var result: Node = yield(self, '_thread_done')
	_thread.wait_to_finish()
	_thread = null
	return result

func _thread_load(scene: PackedScene) -> void:
	var status: int = OK
	var instance := scene.instance()
	call_deferred('_thread_done', instance)

func _thread_done(result: Node) -> void:
	emit_signal('_thread_done', result)

Minimal reproduction project:

gui_in_3d_repro2.zip

Does call_deferred here effectively place the signal on the main thread? If not that could be the problem

A workaround is to yield for an idle frame and re-set the visibility then.
	for n in nodes:
		n.visible = false
	yield(get_tree(), 'idle_frame')
	yield(get_tree(), 'idle_frame')
	for n in nodes:
		n.visible = n.name == name

Seems to be fixed in godot 4.3-beta2


[Feature request] Add placeholder support in down-sampled time series

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
Is it possible to add placeholder support in down-sampled time series ?
Like this:
select max_value(value) into root.sg_bk.::(value_max) from root.sg.** GROUP BY(10s);

Solution
No response
Alternatives
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

Actually, after downsample query, the DataSet headers are like max_value(root.XX.XX.XX), so we cannot take it as a raw path, so we cannot extract path from max_value(root.XX.XX.XX), and if we use group by level clause the case will be more complex.

BTW, you can use align by device clause to use placeholder, like the following:


fig.cap cannot be set dynamically for remote blocks

fig.cap's handling is odd - it can work with statically assigned captions, but if I try to dynamically assign a caption to a remote block, I receive "object of type 'symbol' is not subsettable" and the rmd entirely refuses to render.
fig-cap.zip

Removing knitr engine from package in next version.


mt_rand sequences differ between runs with mock cache being warmed and without

Hi. In our phpunit test we use srand to set initial value for the random number generator. After we started to use softmocks we've encountered the problem which was inequality between expected and actual results in tests which cover a code which uses the mt_rand function.
The reason was that during creation of mock cache the PrettyPrinterAbstract is called and mt_rand ran. It would be better to think not to use mt_rand.

Sorry, I'm not sure what you're talking about, as there don't seem to be any mt_rand() calls in Soft Mocks code base itself:
$ grep -R mt_rand . | wc -l
0

I can confirm that there is an mt_rand() call inside the PHP-Parser though:
./vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php:        $this->docStringEndToken = '_DOC_STRING_END_' . mt_rand();

I do agree that this code looks a bit odd but I suggest that you create a github issue in PHP Parser repository as in this case it may be a source of very subtle bugs too.


EWS + Waffle

Hello,
I would like to get this API working together with Waffle, so we could do SSO. What credential configuration should be used for that? Is it possible to use the WebCredentials for passing a Kerberos token? (Or is there any other / easier way which is preferred?) Please note that because of security considerations, there's no account that we could use with username + password.
Zoltán

hit the same issue, I think WebCredentials not support token.
Is there have any solution?

@fqlyu I couldn't fix it yet, but I will need to (one major project of ours requires this, so there aren't any other choice). I will send updates on this thread, so please stay tuned.

In the end, we had to go with a workaround so I don't think I will get back to this anymore.

@scorchio Would it be possible to you explain how you did the workaround?
Thanks.

We have a slightly different scenario (OAuth), but this might work here as well. In order to pass the token, we created our own credentials class, inherited from ExchangeCredentials and overrode the prepareWebRequest method:
@Override
public void prepareWebRequest(HttpWebRequest request) {
String token = null;
token = OAuthTokenManager.getToken(user, credentials);
request.getHeaders().put("Authorization", "Bearer " + token);

}
I think the last line is the most important for you.


Change statements from switch to if

Huge size savings. 😄
Performance stays about the same – maybe drops a little, but I don't know if 10 runs is enough to tell. In any case, the drop isn't likely too much.
Code readability also maybe drops a little, but hey, minus 18 bytes!

Size of format
Size of localeFormat
Ops/sec (average of 10 runs)

Current
157 B
165 B
1 247 244,9919

switch → if
139 B (- 18)
154 B (- 11)
1 214 782,9195

Btw, do you know why those /* c8 ignore next 3 */ comments are needed? Or in other words, why does c8 fail to cover those lines? Edit: well, because the lines were not tested. 😅 I created #9 to add those missing tests.

I like size savings, but not when they reduce readability. So I'm going to pass on this one.
Thank you so much for the other pull requests though!


Re_run on SSH doesn't update the machine file in .chef/provisioning/ssh

Pretty sure the issue is in the ssh driver but we should get it fixed.

This is fixed in the latest update of the ssh driver which will be released tomorrow or thursday

@double-z Amazing news!! Lets test it as soon as it is released! :+1:

@double-z any update on this Zack? :smile:


Comparison Assertions

I sometimes like to have comparison assertions, like "lessThan" or "greaterThan".
Is this the kind of feature you would accept in a PR, or that you would recommend using an external module for, to keep the tape core small?

I'm personally in favor of restricting the tape API to be compatible with node assert. If the method is not in node core then it should probably not be in tape.
Other people may want to chime in with other opinions.

I would also agree to keep the tape core small. For additional functionality, modules are probably the best bet, e.g.,  promises blue-tape or chai assertions type-chai.

I think we've long since decided to match the API of assert.


Mispelled repository variable name exposes a repository to the global scope level

When getRepositoryById() is called with a correct id, subsequent calls using invalid/non-existent ids will (incorrectly) return the previous loaded repository.

Coverage remained the same at 13.851% when pulling 476d61dab8691f0df572132f0fadedf7cc5f4059 on annotate_controller-repository_leakage into 47eb6955bd9570d703c586b42e57f7c4c2817e26 on master.


Error while training in distributed mode

Hello, I ran into an error when I am training the code in distributed mode. Error is as follow "torch.distributed.elastic.multiprocessing.errors.childFailedError: main.py FAILED
any idea?
Thanks!

Could you please give me some more complete error messages? I think there should be some other outputs before this error message that you have given.
And it would be better if you could provide more details about the script you are running.
Thanks~

Since I have been waiting to receive a reply for a long time, I have temporarily closed this issue.


Typing improvements

These heuristics (not based on the API's value_type field though) are implemented in-engine.
Looking forward to ditching value types for good.


List chats

This includes a fix for the bug that infiniteMessageArea returns a promise now.  Also adds a list of all the chats optionally on the left.

praise: Confirmed, that it fixes the issue :+1:
issue (non-blocking): Bad UX, especially when opening both, participants and chat list:

Both lists overlap, the participant list overlapps with green plus icon, things are note aligned. Since I think this is a general problem with solid-ui and our lack of design system it should not block this specific PR
suggestion: Split bugfix and new features in seperate PR, so that a fix can be reviewed and released quicker

issue (maintenance, non-blocking): It has become a very large file that does a lot of things. I propose we split it up next time we change something, e.g. into seperate components (chat list, participants, message list, ...)
issue (testing, non-blocking): The chat completely lacks unit tests. Wen need to change this to stop further regressions. For now I consider it non-blocking, but highly recommend we are more aware of this in future.

Great! There was a question on gitter from @ewingson about deploying this -
Yes, you can merge that, then run the release script with lines https://github.com/solid/solidos/blob/master/scripts/release#L47-L74 commented out, so chat-pane is the first one it builds, and then everything that comes after it.
One thing to be careful about when doing that:
If this line doesn't find any changes then it will not tag a version. So a safer way to do it is to:

run npm version patch && npm publish -timeout=9999999 in this repo
run git push origin master --follow-tags in this repo
run the release script starting from the solid-panes step


perf: 优化明细表滚动性能 close #2548, #2402

👀 PR includes

✨ Feature

[ ] New feature

🎨 Enhance

[ ] Code style optimization
[ ] Refactoring
[ ] Change the UI
[ ] Improve the performance
[ ] Type optimization

🐛 Bugfix

[x] Solve the issue and close #2548, #2402

🔧 Chore

[ ] Test case
[ ] Docs / demos update
[ ] CI / workflow
[ ] Release version
[ ] Other ()

📝 Description

🖼 Screenshot

Before
After

🔗 Related issue link

🔍 Self-Check before the merge

[ ] Add or update relevant docs.
[ ] Add or update relevant demos.
[ ] Add or update test case.
[ ] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-v1.54.6 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Initial public interface changes

This should be enough to move our internal uses to our long-term public interface.
Includes:

Move Records objects exports to records package
Define public interface for db package
Add SqlAlchemyDbHook for more Airflow support
Remove utility methods not used by records-mover itself (to be moved to our internal library)

I also pushed up a change to better advertise what parts of the records_mover.airflow package are public interface.


Would not build gluten cpp in Mac OS

Problem description
./get_velox.sh
./build_velox.sh
cd ./cpp && rm -rf build && mkdir build && cd build && cmake -DBUILD_VELOX_BACKEND=ON .. && make -j
then report the following error.
Undefined symbols for architecture x86_64:
  "fLI::FLAGS_split_preload_per_driver", referenced from:
      gluten::VeloxBackend::initConnector(facebook::velox::Config const*) in VeloxBackend.cc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [releases/libvelox.dylib] Error 1
make[1]: *** [velox/CMakeFiles/velox.dir/all] Error 2
make: *** [all] Error 2

System information
Mac OS
CMake log
Undefined symbols for architecture x86_64:
  "fLI::FLAGS_split_preload_per_driver", referenced from:
      gluten::VeloxBackend::initConnector(facebook::velox::Config const*) in VeloxBackend.cc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [releases/libvelox.dylib] Error 1
make[1]: *** [velox/CMakeFiles/velox.dir/all] Error 2
make: *** [all] Error 2

It may be related to #3419. You can try rebase to the latest commit of main branch.

It may be related to #3419. You can try rebase to the latest commit of main branch.

I built from the commit fb3bc843b0fc9 which include the PR #3419 , so i think it is not related to the PR.

Looks your velox code is updated but not gluten. I think you may need to pull the latest code for gluten.

@leesf Yes it seems like your Velox source is out-of-date. Rerunning get_velox.sh may help.

thank you guys for your help. updated code (gluten & velox) and re-compile success.


Manage repository topics

Hi,
I didn't find a way to manage repository topics using this API. Is it possible? If it's not, is there any plans to implement it?
Thank you.

See #463 .


Malformed URL address detected when port number is not specified

Hi,
We've tried the latest 3.1.1 version and it seems there is some issue while validating the instance URLs.
If we specify an address without the port number it fails with the following error:
Malformed URL address detected in RemoteInstance(httpUrl='http://aem-author.example.com:-1', user='admin', password='*************', typeName='author', environment='prod')

because you used negative port number ;) -1' you entered

please check fix available https://github.com/Cognifide/gradle-aem-plugin/pull/155

check out plugin sources git clone git@github.com:Cognifide/gradle-aem-plugin.git -b http-port-optional
enter cloned directory then build plugin sh gradle
update settings.gradle (or buildscript.gradle) in your project sources to be using version 3.1.2 and add mavenLocal() into pluginManagement { repositories {} } (or buildscript { repositories {}  }) section.
tell about results

thanks, Krystian

I just checked that fix by using sh gradlew :aemDebug. Be sure that when you have no port explicitly defined, you should specify type of instance in a configure closure, e.g:
        remoteInstance "http://aem-author.example.com", {
                    typeName = "author"
                }
                remoteInstance "https://example.com", {
                    typeName = "publish"
                }
                remoteInstance "https://<IP_ADDRESS>", {
                    typeName = "author2"
                }
                remoteInstance "https://<IP_ADDRESS>", {
                    typeName = "publish2"
                }

then sh gradlew :aemDebug is outputing:
{
"instances" : {
        "local-author" : {
          "httpUrl" : "http://aem-author.example.com",
          "user" : "admin",
          "password" : "admin",
          "typeName" : "author",
          "environment" : "local",
          "name" : "local-author",
          "type" : "AUTHOR",
          "httpPort" : 80
        },
        "local-publish" : {
          "httpUrl" : "https://example.com",
          "user" : "admin",
          "password" : "admin",
          "typeName" : "publish",
          "environment" : "local",
          "name" : "local-publish",
          "type" : "PUBLISH",
          "httpPort" : 443
        },
        "local-author2" : {
          "httpUrl" : "http://<IP_ADDRESS>",
          "user" : "admin",
          "password" : "admin",
          "typeName" : "author2",
          "environment" : "local",
          "name" : "local-author2",
          "type" : "AUTHOR",
          "httpPort" : 80
        },
        "local-publish2" : {
          "httpUrl" : "https://<IP_ADDRESS>",
          "user" : "admin",
          "password" : "admin",
          "typeName" : "publish2",
          "environment" : "local",
          "name" : "local-publish2",
          "type" : "PUBLISH",
          "httpPort" : 443
        }
}

thanks for reporting it. I think that it is fixed. Please confirm and reopen if needed / still having problems.
https://github.com/Cognifide/gradle-aem-plugin/releases/tag/3.1.2

Glad to hear that😉 greetings


Create a cmdline interface for testing Context creation + Complete function

What type of PR is this?
/kind cleanup
What does this PR do / why we need it:
This PR:

creates an abstraction for accessing the Cobra library from the genericclioptions.New() function and from the Complete() functions.
moves some client-go code from the Context package to the kclient one.
removes the Cobra dependency (parameter) to the Run() function, where is was (nearly) never used
adds a unit tests for genericclioptions.New() function

This changes make possible to test the creation of the context and the Complete function without dependencies (except filesystem dependency, because I cannot find a way to use the devfile library on a fake filesystem).
Which issue(s) this PR fixes:
Fixes #?
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

[ ] I have read the test guidelines

How to test changes / Special notes to the reviewer:

Unit Tests finished.
View logs: TXT HTML

/test psi-kubernetes-integration-e2e
Same problem as before the fix by Anand on Redis ClusterRole

Unit Tests finished.
View logs: TXT HTML

OpenShift Tests finished.
View logs: TXT HTML

Kubernetes Tests finished.
View logs: TXT HTML

OpenShift Tests finished.
View logs: TXT HTML

/test psi-kubernetes-integration-e2e
[Fail] odo link command tests for OperatorHub Operators are installed in the cluster when a component and a service are deployed when a link with between the component and the service is created with --bind-as-files and --inlined when odo push is executed [BeforeEach] should display the link in odo describe

/test psi-kubernetes-integration-e2e
[Fail] odo link command tests for OperatorHub Operators are installed in the cluster when a component and a service are deployed when a link between the component and the service is created when odo push is executed [BeforeEach] should not list the service binding in `odo service list`

Kubernetes Tests finished.
View logs: TXT HTML

Unit Tests finished.
View logs: TXT HTML

OpenShift Tests finished.
View logs: TXT HTML

/test v4.9-integration-e2e
[Fail] odo devfile push command tests when Create and push java-springboot component [It] should execute default build and run commands correctly

/test v4.9-integration-e2e
Timed out waiting for image pull secrets in the test namespace.

  * could not run steps: step integration-e2e failed: "integration-e2e" test steps failed: "integration-e2e" pod "integration-e2e-integration-e2e-steps" failed: the pod ci-op-px3806ri/integration-e2e-integration-e2e-steps was deleted without completing after 43m0s (failed containers: )

/retest

Kubernetes Tests finished.
View logs: TXT HTML

OpenShift Tests finished.
View logs: TXT HTML

Unit Tests finished.
View logs: TXT HTML

/test psi-kubernetes-integration-e2e
[Fail] odo link command tests for OperatorHub Operators are installed in the cluster when a component and a service are deployed when a link is created and custom binding data is being injected with --map when no additional flag other than --map is passed to odo link [BeforeEach] should have created the mappings correctly

Kubernetes Tests finished.
View logs: TXT HTML

OpenShift Tests finished.
View logs: TXT HTML

Unit Tests finished.
View logs: TXT HTML

/test v4.9-integration-e2e
[Fail] odo link command tests for OperatorHub Operators are installed in the cluster when a component and a service are deployed when a link between the component and the service is created when odo push is executed [BeforeEach] should find files in component container

Thanks @valaparthvi for your review

/test psi-kubernetes-integration-e2e
 [Fail] odo link command tests for OperatorHub Operators are installed in the cluster when a component and a service are deployed when a link is created and custom binding data is being injected with --map when --bind-as-files flag is used along with --map [BeforeEach] should have created the mappings correctly

Kubernetes Tests finished.
View logs: TXT HTML

OpenShift Tests finished.
View logs: TXT HTML

Unit Tests finished.
View logs: TXT HTML

OpenShift Tests finished.
View logs: TXT HTML

Kubernetes Tests finished.
View logs: TXT HTML

Unit Tests finished.
View logs: TXT HTML

Kubernetes Tests finished successfully.
View logs: TXT HTML

OpenShift Tests finished successfully.
View logs: TXT HTML

Unit Tests finished successfully.
View logs: TXT HTML

Kubernetes Tests finished successfully.
View logs: TXT HTML

Unit Tests finished successfully.
View logs: TXT HTML

OpenShift Tests finished successfully.
View logs: TXT HTML

Kubernetes Tests finished successfully.
View logs: TXT HTML

Unit Tests finished successfully.
View logs: TXT HTML

OpenShift Tests finished successfully.
View logs: TXT HTML

/lgtm

/test psi-kubernetes-integration-e2e
Timeout after 4h

/test psi-kubernetes-integration-e2e
Timeout after 4h


[BUG][SmartThings Ecosystem] What's the reason why SmartThings ecosystem set the NodeLabel value of the end-device after commission

Reproduction steps

Commission the device by chip-tool , then read the NodeLabel in basic cluster, it's empty value
Share the device to smartThings ecosystem, then read the NodeLabel, it's "Matter Color Light" or sometings the settting is "Matter Temperature Light" . Analyze the logs, it's true that the smartThings set the value

Bug prevalence
Every time
GitHub hash of the SDK that was being used
Matter tag v1.0.0
Platform
other
Platform Version(s)
Matter 1.0
Anything else?
Just want to know the reason

What makes the setting happen
Why set the "Matte Color Light"

This sounds like a question for Samsung, not a core Matter issue.  Per spec for NodeLabel:

This attribute SHALL represent a user defined name for the Node. This attribute SHOULD be set during initial commissioning and MAY be updated by further reconfigurations.

so setting the attribute during commissioning is perfectly reasonable in general.


fix Should not use operator[] for _query_ctx_map

Ref: https://en.cppreference.com/w/cpp/container/unordered_map/operator_at
Returns a reference to the value that is mapped to a key equivalent to key or x respectively, performing an insertion if such key does not already exist.
The original code would make _query_ctx_map has key 0-0 and value null-pointer.

run buildall

run cloud_p1

crash on p0 is not related to this pr, re run

run p0


⚠ Bofrost.fr has degraded performance

In ecf487a, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1953 ms

Resolved: Bofrost.fr performance has improved in cd10fc6.


triangle: incorrect test in some tracks

Please check if there's a test that states that a triangle with sides 2, 4, 2 is invalid. The triangle inequality states that for any triangle, the sum of the lengths of any two sides must be greater than or equal to the length of the remaining side. If this doesn't affect this track, go ahead and just close the issue.

It doesn't not. On it.


Fixed uncorrect fields naming (PagesCount->FilesCount)

I fix changes only in 1 example (Receipt Recognition)
If I'm going in the right way, I'll pull all other changes.

Bad brunching


How to distinguish the message in the private and public channels?

Subj

If it is a direct message the TotalParticipants count will be 2

@tomlm It's not good solution. Because, TotalParticipants may increase in public or private channel in Slack and new users can read your personal messages from/to bot.

I am facing same issue, can you provide better solution


Simplify PolicyValidator

We don't need to pass the method: into this validator as it always calls get_privavcy_policy.
Only rescue on 400/bad request; this indicates the policy entered does not exist in the system. Other errors will bubble up to show the respective error page to the user.

The ID won't change as it's recorded in one of the VCR casettes


[wip] Performance experiments

Experiments in improving derivation performance. Trying two things:

inlining isCross
don't check hardening flags up front

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@grahamcofborg eval

Tomorrow I'll generate some flame graphs for comparison, but according to the performance report in the Checks tab, this is very promising. Some highlights:

function calls are reduced by ~1 million,
83 mb cut off the heap
4.5 million fewer lookups

Nicely done!

Nice job 🙂 BTW, how do you profile nix and what do you to create flame graphs?

It looks like https://github.com/NixOS/nixpkgs/pull/59369 isn't included in your branch, so it is a bit obscured by the unique function's interesting behavior. At any rate, here we are:
before: http://gsc.io/log.matthewbauer.pre.folded.svg
after: http://gsc.io/log.matthewbauer.folded.svg

https://github.com/NixOS/nixpkgs/pull/59756/checks?check_run_id=109424120 this report is generated by comparing the results from NIX_SHOW_STATS=1 nix-instantiate pkgs/top-level/all-packages.nix -A unstable.
For flame graphs: have like 30gb of ram (swap is ok but slow) and follow https://github.com/NixOS/nix/pull/2782

@grahamc A question for you on the performance report:
Is it comparing performance results against the previous commit or the master branch? For instance I am trying to figure out the difference between these two results:

https://github.com/NixOS/nixpkgs/pull/59756/checks?sha=a06b702
https://github.com/NixOS/nixpkgs/pull/59756/checks?sha=a1dcb88


Priam with Cassandra 2.1.6

Hi,
I am trying to upgrade our Cassandra to 2.1.6 version and used the latest Priam version from maven (2.0.7). When I started Priam, Priam logs says the cassandra started and does not report any error but when i check cassandra log I find the following issue. Is it due to new version of cassandra? or something different? Let me know if you need more logs.
ERROR 15:07:02 Fatal configuration error
org.apache.cassandra.exceptions.ConfigurationException: Invalid yaml. Please remove properties [multithreaded_compaction, memtable_total_space_in_mb, in_memory_compaction_limit_in_mb] from your cassandra.yaml
at org.apache.cassandra.config.YamlConfigurationLoader$MissingPropertiesChecker.check(YamlConfigurationLoader.java:162) ~[apache-cassandra-2.1.6.jar:2.1.6]
at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:115) ~[apache-cassandra-2.1.6.jar:2.1.6]
at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:84) ~[apache-cassandra-2.1.6.jar:2.1.6]
at org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:161) ~[apache-cassandra-2.1.6.jar:2.1.6]
at org.apache.cassandra.config.DatabaseDescriptor.(DatabaseDescriptor.java:136) ~[apache-cassandra-2.1.6.jar:2.1.6]
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:164) [apache-cassandra-2.1.6.jar:2.1.6]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:536) [apache-cassandra-2.1.6.jar:2.1.6]
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:625) [apache-cassandra-2.1.6.jar:2.1.6]
Invalid yaml. Please remove properties [multithreaded_compaction, memtable_total_space_in_mb, in_memory_compaction_limit_in_mb] from your cassandra.yaml
Fatal configuration error; unable to start. See log for stacktrace.

Hi pencilmouse ,
We currently support C* 2.0.x only.

What is the timeline for supporting C* 2.1.x ?

@jhohertz has a version that seems to work with 2.1, up to 2.1.4 at least (I have not tested anything later)
https://github.com/jhohertz/Priam/tree/staging_2.1

Just a warning that my branch has not tracked mainline development since Oct 2014, and I am not presently working on it. That said you may be able to cherry pick some commits from Oct 10, 2014, which is when I worked around the yaml config issues.

I needed to upgrade Cassandra to 2.1.x then I came across with this thread, I don't see in the current branches anything which mentions the use of Cassandra above 2.0.9.
Looks like if I want to use 2.1.x I will need to stop using Priam, is any other alternative.
Thanks!

Hi, I wanted to know what is the latest version of cassandra supported by priam. I couldn't find it anywhere in the wiki.
Thanks

The latest C* version supported by Priam is 2.1, using Priam branch 3.x.


Update to gradle 5.0

Codecov Report

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

@@             Coverage Diff              @@
##             master     #404      +/-   ##
============================================
- Coverage      79.1%   78.96%   -0.14%
  Complexity      532      532
============================================
  Files            69       69
  Lines          1723     1726       +3
  Branches        263      268       +5
============================================
  Hits           1363     1363
+ Misses          195      193       -2
- Partials        165      170       +5


Feature/helm operator namespace

Change the operator helm chart to get the namespace from helm install --name (instead of operatorNamespace in values.yaml), default the operator service account name to 'default'.
Change the helm testing infra to accept the --name parameter too since we'll use it as the domain uid in the domain helm chart.
Fix a few minor helm issues at the same time.
Passed jenkins: http://wls-jenkins/job/weblogic-kubernetes-operator/490

Includes the https://github.com/oracle/weblogic-kubernetes-operator/pull/374 changes too.

Do you mean "--namespace" instead of "--name"?

Addressed Anthony's issues, jenkins still passes http://wls-jenkins/job/weblogic-kubernetes-operator/491/


"View data as graph" button in Diagram

Not to be merged directly into master. This is part of the long-running plot-variables branch for XY Plot/Diagram integration
Adds a new button to the Diagram tile toolbar - "View data as graph" - as requested in PT-186507020 .
Implementation notes:

When calling useConsumerTileLinking, the type of shared model being offered (eg SharedDataSet or SharedVariables) is specified.

Testing notes:

Use the example-no-group-share unit for testing, since it has all the needed tile types and buttons configured.
The dialog that allows linking to other tiles has been refactored in this PR, so it would be worth testing other places where the dialog is used - eg 'View as graph' in table & datacards toolbars; "LInk table" in the table toolbar.

@tejal-shah I feel like there is something very odd going on in that document.  There are many tiles that are just showing up as blank space as you scroll down; not sure why.  Their datasets are showing up in the list, but without tile titles they get that default naming using the obscure IDs.

Okay, in that case, let's ignore this document for now and get this merged. I'll keep an eye out for this and see if this happens elsewhere.


Feat: projective line over ℝ is homeomorphic to the one-point compactification of ℝ

ℙ ℝ (Fin 2 → ℝ) and OnePoint ℝ are homeomorphic:
the projective line over ℝ is homeomorphic to the one-point compactification of ℝ.

This is just a first draft. Needs dramatic reduction in size, and interfacing with OnePointEquiv.lean.

Hopefully #18411 will help here.

Hopefully #18411 will help here.

Awesome!
Using this, I guess the map can just be fun x => ⟦ ![x,1] ⟧ which should be relatively easy to reason about, compared to my map.

@ocfnash The one thing I'm stuck on now is how to prove IsEmbedding fun r ↦ ⟦⟨![r, 1], ⋯⟩⟧?

I think what's happening is that because you are the first to define the topology of projective space, everything is missing. So the total amount of work to get to a situation where you can apply OnePoint.equivOfIsEmbeddingOfRangeEq will indeed be quite a few lines (and possibly more than your original work). However, the key point is that with the approach I am pushing, almost all of the work will be "general theory", and not specific to your end result. This will therefore enrich the library much more than adding one isolated result (and will also be much easier to maintain).
I would advocate splitting out a new PR from this one, which just sets up the topology on projective space and proves a few basic properties. You could create a new file Mathlib.Topology.Instances.Projectivization and add things like:
open scoped LinearAlgebra.Projectivization

-- Let `K` be a topological division ring
-- (for later results, may need `NormedDivisionRing K` instead)
variable {K : Type*}
  [DivisionRing K] [TopologicalSpace K] [TopologicalDivisionRing K]

-- Let `V` be a topological vector space over `K`
variable {V : Type*}
  [AddCommGroup V] [Module K V]
  [TopologicalSpace V] [ContinuousAdd V] [ContinuousSMul K V]

instance : TopologicalSpace (ℙ K V) := instTopologicalSpaceQuot
instance : T2Space (ℙ K V) := sorry
instance [FiniteDimensional K V] : CompactSpace (ℙ K V) := sorry

Once that is done, the next step will be to see what lemmas we have about linear maps (and continuous linear maps) and the induced topology. Ultimately you will be applying this to the map ℝ → ℝ × ℝ that sends x ↦ (x, 1) but we will want to develop (or if we are lucky, locate) the results quite generally.
Once these two components are in place, only then will we bring the pieces together use OnePoint.equivOfIsEmbeddingOfRangeEq and if we have done our job above well, all proofs should be short and easy.

Once these two components are in place, only then will we bring the pieces together use OnePoint.equivOfIsEmbeddingOfRangeEq and if we have done our job above well, all proofs should be short and easy.

Yes, this all makes sense. I have no idea how to prove your instance : T2Space (ℙ K V)  above though.
I added, just now, a proof that your approach using equivOfIsEmbeddingOfRangeEq does in fact succeed, using my original proofs as a lever.

Once these two components are in place, only then will we bring the pieces together use OnePoint.equivOfIsEmbeddingOfRangeEq and if we have done our job above well, all proofs should be short and easy.

Yes, this all makes sense. I don't know how to prove your instance : T2Space (ℙ K V)  above though.

I hoped I might get back to this over the weekend, but unfortunately I did not have any time. The short answer is that the T2Space instance follows because ℙ K V is locally homeomorphic to a codimension-one subspace of V (given a line in V, use Submodule.complementedLattice to choose such a subspace and argue from there).
Unfortunately I probably won't have much time till next weekend but of course there's always Zulip!

Once these two components are in place, only then will we bring the pieces together use OnePoint.equivOfIsEmbeddingOfRangeEq and if we have done our job above well, all proofs should be short and easy.

Yes, this all makes sense. I don't know how to prove your instance : T2Space (ℙ K V)  above though.

I hoped I might get back to this over the weekend, but unfortunately I did not have any time. The short answer is that the T2Space instance follows because ℙ K V is locally homeomorphic to a codimension-one subspace of V (given a line in V, use Submodule.complementedLattice to choose such a subspace and argue from there; on second thought if L is the line, it might be better to work with the quotient V ⧸ L rather than the complementary submodule).
Unfortunately I probably won't have much time till next weekend but of course there's always Zulip!

Meanwhile while working on this I proved a minor fact that seems to be missing in Mathlib --- #18711


Implement on Laravel

I know this might sound funny but I'm trying to call the library on Laravel from within a controller and can't seem to get it right.
This is my setup:
app/Http/Controllers/indexController.php is where I plan on using the screen capturing.
app/Http/Lib/Screen/ is where I have the library.
I tried a bunch of use options and nothing seemed to work.
How should I call the library?
Thanks in advance!

install the library via Composer and call it as any other

You're right.
Bad habit I do sometimes.
Though I have another weird issue.
This is my code:
		$url = 'https://github.com';

		$screenCapture = new Capture($url);
		$screenCapture->setWidth(1200);
		$screenCapture->setHeight(800);
		$screenCapture->setImageType('png');

$fileLocation = '/screen/';
$screenCapture->save($fileLocation); // Will automatically determine the extension type

echo $screenCapture->getImageLocation();

The save function is throwing this error:

PhantomJsException in Capture.php line 259:
'C:\xampp\htdocs\projectfolder' is not recognized as an internal or external command,
operable program or batch file.

What's the problem? The fileLocation path?
I tried a few different options and they all threw the same error.
Any help would be really appreciated.
Thanks

strange.
try setting the phantomjs dir with
$screenCapture->binPath = '/path/to/bin/dir/';
no idea why this error appears, maybe @MASNathan knows

We might be getting somewhere.
I added this:
$screenCapture->binPath = '/vendor/microweber/screen/bin/';
And now the error changed to PhantomJsException in Capture.php line 259: The system cannot find the path specified.

Try this:
Add the following to your composer.json file. The binaries will be downloaded in your vendor/bin directory. For more info regarding this process, view the  PhantonJS installer documentation.
 {
    //---
    "scripts": {
        "post-install-cmd": [
            "PhantomInstaller\\Installer::installPhantomJS"
        ],
        "post-update-cmd": [
            "PhantomInstaller\\Installer::installPhantomJS"
        ]
    }
    //---
}

And then run
$ composer require jakoch/phantomjs-installer microweber/screen

Didn't work. It's something to do with the way it reads the path.
When adding: $screenCapture->binPath = '/vendor/microweber/screen/bin/';
The error is: The system cannot find the path specified.
Just for the heck of it, I added this: $screenCapture->binPath = 'vendor/microweber/screen/bin/'; (left out the first slash) and it threw: 'vendor' is not recognized as an internal or external command, operable program or batch file.
When I add the actual full path on my computer it also throws an error.
Any idea why this is happening?
Such a shame, I really want to use this on my project...

@skittery I realise some years have passed since you posted this comment so you've probably moved on, but for the sake of posterity.
It looks like you're specifying a relative path from your project root to the bin directory whereas I believe you need to specify an absolute path. In a Laravel context you can do this with the base_path() helper. Just pass the relative path string as the argument into that function and it will automatically prepend the absolute path to the project directory.
$screenCapture->binPath = base_path('vendor/microweber/screen/bin/');

Hi @AndrewFeeney
Thanks a lot for replying to this.
I actually still do need this functionality so I wanted to give it another shot.
I installed a brand new Laravel instalation (6.0.1) and it worked perfectly.
I built the functionality in a controller using use Screen\Capture; and it actually worked.
I don't exactly know what the problem was last time, but I didn't have to use your method.
Thanks for the good work!
BTW - small question - Is there anyway I can take a screenshot, say of 1920 width and 1080 height, but when I clip it to be say 500 it will shrink it without cropping?
Thanks!

@skittery Yes, I noticed shortly after I posted my comment that the default path should work. That said, I've started using a different package by Spatie: https://github.com/spatie/browsershot as it relies on Puppeteer and headless Chrome instead of the now deprecated phantomjs.
Regarding your question, it sounds like you are trying to resize the image after capture, preserving the aspect ratio. I can't see any methods on this package for that. You could use another library to resize the image after the fact. Spatie's package does offer this functionality by exposing their image library: https://github.com/spatie/browsershot#manipulating-the-image

Wow, Spatie seems excellent.
Thanks a lot for that!
On Tue, Sep 10, 2019 at 11:39 PM Andrew Feeney<EMAIL_ADDRESS>wrote:

@skittery https://github.com/skittery Yes, I noticed shortly after I
posted my comment that the default path should work. That said, I've
started using a different package by Spatie:
https://github.com/spatie/browsershot as it relies on Puppeteer and
headless Chrome instead of the now deprecated phantomjs.
Regarding your question, it sounds like you are trying to resize the image
after capture, preserving the aspect ratio. I can't see any methods on this
package for that. You could use another library to resize the image after
the fact. Spatie's package does offer this functionality by exposing their
image library:
https://github.com/spatie/browsershot#manipulating-the-image
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microweber/screen/issues/95?email_source=notifications&email_token=ADA4A3HDND6P6EQPYJRBHDTQJAAXTA5CNFSM4EBSQVXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6MNKVA#issuecomment-530109780,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADA4A3HN2WQZ42DP5YERCUDQJAAXTANCNFSM4EBSQVXA
.

--
[image: photo]
Avi Klein
OK Digital
<EMAIL_ADDRESS>| http://okdigital.me
http://www.linkedin.com/in/kleinavi/


Using up/down to adjust plug values - add leading zero

I'm a big fan, as a user, of using the up/down arrows to adjust plug values on nodes.
One thing that keeps catching me out, though, is that when adjusting a value other than the 1s, it won't add required leading 0s, so if the 10s value on a plug starting at 24 is reduced, it goes 24 -> 14 -> 4, at which point it is suddenly shifting the 1s value.
Can I suggest a tweak where it goes 24 -> 14 -> 04 etc.
I do like that Gaffer already does something that has bugged me in Nuke, which is that it is just adding/subtracting 1, 10, 100 etc. So pressing DOWN on the leading 0 of 01 (if I add the 0 manually) takes it to -9, which is right, in my opinion. Nuke make it go 10 -> 01 -> -11 (just adjusting that number). Pressing UP again takes it from -11 -> -01 -> 11

Fixed in PR #1487


[ErrorResponseException] 10062: Unknown interaction (Show Modal In JDA)

General Troubleshooting

[X] I have checked for similar issues on the Issue-tracker.
[X] I have checked for PRs that might already address this issue.

Version of JDA
5.0.0-beta.13
Expected Behaviour
Is there something problem in my code?
I've got an error so randomly
 @Override
    public void onButtonInteraction(@NotNull ButtonInteractionEvent event) {

        TextInput textInput = TextInput.create("text-input","text", TextInputStyle.PARAGRAPH).build();
        Modal modal = Modal.create("custom-modal", "modal")
                .addComponents(ActionRow.of(textInput))
                .build();

        event.replyModal(modal).queue();
    }

I edit it
    @Override
    public void onButtonInteraction(@NotNull ButtonInteractionEvent event) {

        TextInput textInput = TextInput.create("text-input","text", TextInputStyle.PARAGRAPH).build();
        Modal modal = Modal.create("custom-modal", "modal")
                .addComponents(ActionRow.of(textInput))
                .build();

        event.getInteraction().replyModal(modal).queue();
    }

But, Both not work neither sometimes
Code Example for Reproduction Steps
@Override
    public void onButtonInteraction(@NotNull ButtonInteractionEvent event) {

        TextInput textInput = TextInput.create("text-input","text", TextInputStyle.PARAGRAPH).build();
        Modal modal = Modal.create("custom-modal", "modal")
                .addComponents(ActionRow.of(textInput))
                .build();

        event.getInteraction().replyModal(modal).queue();
    }

Code for JDABuilder or DefaultShardManagerBuilder used
    private static final ConfigProvider configProvider = ConfigProvider.getInstance();
    private static final String BOT_TOKEN = configProvider.getString("BOT_TOKEN");
    public static void main(String[] args) {
        JDABuilder builder = JDABuilder.createDefault(BOT_TOKEN);
        String activityName = configProvider.getString("ACTIVITY_NAME");
        String activityType = configProvider.getString("ACTIVITY_TYPE");
        String status = configProvider.getString("STATUS");

        try {
            Activity.ActivityType type = Activity.ActivityType.valueOf(activityType.toUpperCase());
            Activity activity = Activity.of(type, activityName);
            builder.setActivity(activity);
        } catch (IllegalArgumentException e) {
            LOGGER.severe("No exist Activity Type");
        }

        JDA jda = builder.build();
        jda.addEventListener(new ButtonModalEvent());
    }

Exception or Error
22:26:50.069 [ForkJoinPool.commonPool-worker-1] ERROR n.d.jda.api.requests.RestAction - RestAction queue returned failure: [ErrorResponseException] 10062: Unknown interaction
net.dv8tion.jda.api.exceptions.ContextException: null
        at net.dv8tion.jda.api.exceptions.ContextException.here(ContextException.java:54)
        at net.dv8tion.jda.api.requests.Request.<init>(Request.java:77)
        at net.dv8tion.jda.internal.requests.RestActionImpl.queue(RestActionImpl.java:197)
        at net.dv8tion.jda.internal.requests.restaction.interactions.InteractionCallbackImpl.queue(InteractionCallbackImpl.java:74)
        at net.dv8tion.jda.api.requests.RestAction.queue(RestAction.java:572)
        at net.dv8tion.jda.api.requests.RestAction.queue(RestAction.java:538)
        at kr.starly.discordbot.listener.ticket.TicketRequestButtonInteraction.onButtonInteraction(TicketRequestButtonInteraction.java:36)
        at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:442)
        at net.dv8tion.jda.api.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:96)
        at net.dv8tion.jda.internal.hooks.EventManagerProxy.handleInternally(EventManagerProxy.java:88)
        at net.dv8tion.jda.internal.hooks.EventManagerProxy.handle(EventManagerProxy.java:70)
        at net.dv8tion.jda.internal.JDAImpl.handleEvent(JDAImpl.java:176)
        at net.dv8tion.jda.internal.handle.InteractionCreateHandler.handleAction(InteractionCreateHandler.java:148)
        at net.dv8tion.jda.internal.handle.InteractionCreateHandler.handleInternally(InteractionCreateHandler.java:100)
        at net.dv8tion.jda.internal.handle.SocketHandler.handle(SocketHandler.java:39)
        at net.dv8tion.jda.internal.requests.WebSocketClient.onDispatch(WebSocketClient.java:1014)
        at net.dv8tion.jda.internal.requests.WebSocketClient.onEvent(WebSocketClient.java:900)
        at net.dv8tion.jda.internal.requests.WebSocketClient.handleEvent(WebSocketClient.java:878)
        at net.dv8tion.jda.internal.requests.WebSocketClient.onBinaryMessage(WebSocketClient.java:1053)
        at com.neovisionaries.ws.client.ListenerManager.callOnBinaryMessage(ListenerManager.java:385)
        at com.neovisionaries.ws.client.ReadingThread.callOnBinaryMessage(ReadingThread.java:276)
        at com.neovisionaries.ws.client.ReadingThread.handleBinaryFrame(ReadingThread.java:996)
        at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:755)
        at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108)
        at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64)
        at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45)

As suggested by the troubleshooting guide:

This interaction failed / Unknown Interaction
This means you didn't acknowledge or reply to an interaction in time. You only have 3 seconds to reply or acknowledge. You have to use event.deferReply().queue(), event.deferEdit().queue(), event.editMessage(...).queue(), or event.reply(...).queue(). (If you don't queue() it won't do it)

Either you have a second instance of your bot running that already replied (common problem with eclipse users), or you took longer than 3 seconds to reply to the interaction.

As suggested by the troubleshooting guide:

This interaction failed / Unknown Interaction
This means you didn't acknowledge or reply to an interaction in time. You only have 3 seconds to reply or acknowledge. You have to use event.deferReply().queue(), event.deferEdit().queue(), event.editMessage(...).queue(), or event.reply(...).queue(). (If you don't queue() it won't do it)

Either you have a second instance of your bot running that already replied (common problem with eclipse users), or you took longer than 3 seconds to reply to the interaction.

The former Is not But, I wonder in latter Why It's take more than 3 seconds? even just a simple code

Go reset your token and try again, this will make previous instances not reply anymore.
Also when asked about your JDABuilder, we need you to supply the entire builder, including listeners and the build() call

Oh sorry about that I didn't know it's require entire builder 'cause This is my first post
Soo That's mean a limitation exist on it? (If it's true)
Did you know any expected number of limitation ?

Please provide the things requested.

Also code blocks are made as:
```java
//Code
```
I cannot answer your question about limitations if you don't provide your configuration (your entire JDABuilder basically)

Also code blocks are made as: java //Code
I cannot answer your question about limitations if you don't provide your configuration (your entire JDABuilder basically)

Sorrry for late  I jsut edit it!

Seems fine, you just have another instance running, go reset your token
You don't need getInteraction() calls btw, using the event is just as fine

Seems fine, you just have another instance running, go reset your token
You don't need getInteraction() calls btw, using the event is just as fine, I would also recommend adding the event listeners on JDABuilder instead of JDA

Thank ur solution I'll edit it and btw, What if that model show in many time by user?
Is it able to prevent with the "try&catch" keywords?

You cannot reply multiple times, and you cannot send multiple modals
If you need a multi-step modal then make a button that will show the next modal when clicked
If you want to prevent an user for using the button more than once then edit it to either remove it, or disable it
You would need to reply the modal and then use the hook to "edit the original components" with the new buttons


Objects can be read and written from the Object Pool on multiple threads

FuturePool is written to support single threaded reads and writes, but multiple threads can write to the pool. The main pathway is where the thread used by the underlying Stream both reads and writes to the pool. When a toQueue operation is completed however, a Future can returned itself to the pool when it completes - this is on a different thread.
FuturePool needs to use a thread-safe collection such as an AtomicArrayReference to store pooled objects.
This is on master, but on any released version of simple-react.

Fixed in simple-react v0.99.2


Introduce Microsoft.FluentUI.AspNetCore.Components.DataGrid.ODataAdapter for OData Support

🙋 Feature Request
I noticed the Microsoft.FluentUI.AspNetCore.Components.DataGrid.EntityFrameworkAdapter package provides great support for EntityFramework. It would be highly beneficial for the community if OData support could also be integrated directly into the FluentUI Blazor DataGrid component. This enhancement would facilitate more efficient handling of complex data operations for those of us using OData in our projects.
Thank you for considering this addition.
💁 Possible Solution
A new library named Microsoft.FluentUI.AspNetCore.Components.DataGrid.ODataAdapter. This library would provide first-class support for OData, enabling efficient data operations and integration directly within FluentUI Blazor DataGrid component.

Moving this to the Discussion area so we can see if there is more interest in this


Fix guitar and other items swaping

About the PR
Fix #7087
Was just a typo in .yml all across codebase.
Screenshots

Changelog

:cl:

fix: Guitar and other items now correctly react on quick equipment key (Z by default).

ah my bad. I thought I changed them all but somehow missed a whole bunch


Propage committed subdag

Before this PR, consensus shipped committed certificates one by one through an output channel. It now sends the entire committed sub-dag to the executor.
The consensus now ships the following structure to the executor: https://github.com/MystenLabs/sui/blob/bee6ab6f712d29ff6759fdf11365178f71aa0344/narwhal/consensus/src/lib.rs#L38-L43
Then the executor performs the following tasks:

The subscriber looks at this structure to fetch a list of batches (i.e., the transaction data) from the workers.
The subscriber then ships that list to the notifier that executes them. The notifier is also augmented to know when each sub-dag has been committed (so it can call notify_commit_boundary)

@andll Is this what we discussed or did I miss something?

I see, so we want to pass the committed sub-dag to the notifier (not to the execution crate in general)

Ok, have a look now if it is what you had in mind. The notifier has now access to the committed sub-dag

I also have a question about wrapping/unwrapping subdag into shell - why did you chose to do it this way? Would it be easier/less error prone if we just had one CF for entire subdag?

@andll could you please elaborate more on this idea? Wanna make sure I get it right before I comment

@asonnino don't have any other comments from my side. My only comment is whether you want to deploy this in one of our environments (ex private testnet or the labnet) for some testing before you merge - or you are good to go as is.

@asonnino don't have any other comments from my side. My only comment is whether you want to deploy this in one of our environments (ex private testnet or the labnet) for some testing before you merge - or you are good to go as is.

However you prefer (no strong feelings). Although It seems that I cannot merge it since there still seems to be an issue with the Typescript SDK

However you prefer (no strong feelings). Although It seems that I cannot merge it since there still seems to be an issue with the Typescript SDK

Yeah that's a known issue for now - and not blocking for merging. Also you don't need to merge to deploy in any of the testing environments - we can just deploy from any commit. Ping me for doing this offline. I am disabling auto-merge and approving to unblock. Then you do as you wish.

@andll it seems we also need your approval to allow merging


Controllers dataset

Pull request contains a port of the "dataset/projects" field feature from the old controller logic into the new controller logic.

merged manually in 94b4411ab7b8141a789a3a4fed5cf449239a5f2d


Develop

able to create a local.properties file and write the jdk path into it

able to create apk files based on scheme (debug and release)

able to sign apk file provided that jks file is found in root repo

able to upload to hockeyapp (currently there is no zipping yet)

able to run all tasks using sample readyci.yml file for android

README is updated


[Bug]: soldjs const signal build failed

Version
System:
    OS: Linux 6.1 Debian GNU/Linux 12 (bookworm) 12 (bookworm)
    CPU: (6) x64 Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz
    Memory: 10.58 GB / 15.55 GB
    Container: Yes
    Shell: 5.2.15 - /bin/bash
  Browsers:
    Chrome: 123.0.6312.58
  npmPackages:
    @rsbuild/core: latest => 0.5.4
    @rsbuild/plugin-babel: latest => 0.5.4
    @rsbuild/plugin-solid: latest => 0.5.4

Details
const Abc = () => {
    const [el, setEl] = createSignal<HTMLElement>();
    return
abc

}

  × Module build failed:
  ╰─▶   × Error:
        │   × cannot reassign to a variable declared with `const`
        │     ╭─[/._/Downloads/app/src/home.tsx:49:1]
        │  49 │   signature: "dda5a601"
        │  50 │ });
        │  51 │ const Abc = _$$component(_REGISTRY, "Abc", () => {
        │  52 │   const [el, setEl] = createSignal();
        │     ·              ──┬──
        │     ·                ╰── const variable was declared here
        │  53 │   return /*@refresh jsx-skip*/_$createComponent(Abc_1, {
        │  54 │     v0: _arg => {
        │  55 │       if (typeof setEl === "function") {
        │  56 │         setEl(_arg);
        │  57 │       } else {
        │  58 │         setEl = _arg;
        │     ·         ──┬──
        │     ·           ╰── cannot reassign
        │  59 │       }
        │  60 │     }
        │  61 │   });
        │     ╰────
        │
        │

Reproduce link
build failed
Reproduce Steps
build failed

This might be a bug of solid-refresh v0.7.5.
I have tried to downgrade solid-refresh to v0.6.3 and the build was successful.

I can reproduce this issue in a Vite project too if upgrading solid-refresh to the latest version:

I will downgrade the solid-refresh version in Rsbuild until this issue is fixed by solid-refresh

https://github.com/solidjs/solid-refresh/pull/70

Nice bro


Upgrade from 1.19.10292.0 to 1.20.10293.0  created new settings.json. Old settings lost !?

Windows Terminal version
1.20.10293.0
Windows build number
10.0.19045.0
Other Software
No response
Steps to reproduce
winget install Microsoft.WindowsTerminal.Preview
Expected Behavior
Config backup or preservation
Actual Behavior
Old config missing in $HOME\AppData\Local\Packages\Microsoft.WindowsTerminalPreview*\LocalState\settings.json

The preview version of Terminal stores settings in a different place than the stable version, because they may be incompatible and refer to preview-only features. 1.19 is the current Stable version. 1.20 is the current Preview version.
You can copy the settings from the Stable version yourself. They are stored at %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState.

Thx, but my 19 version was prewiev not stable.  Before upgrade:
winget list Microsoft.WindowsTerminal
Name                      Id                                Version     Available    Source
Podgląd Terminalu Windows Microsoft.WindowsTerminal.Preview 1.19.3172.0 1.20.10293.0 winget
Installers should always preserve user modified config files (or backup them) as it is typical on Linux package managers.

My 19 version was prewiev not stable. Before upgrade:
winget list Microsoft.WindowsTerminal
Name                                     Id                                                    Version         Available       Source
-----------------------------------------------------------------------------------------------------
Podgląd Terminalu Windows   Microsoft.WindowsTerminal.Preview 1.19.3172.0 1.20.10293.0 winget
IMHO Installers should always preserve user modified config files (or backup them) as it is typical on Linux package managers.


bug error when use rnn and multi-gpu

I add a recurrent layer to the model body, as in my model the current output depends on the previous. It runs well in single GPU but fails when use multi-gpu. the log looks as below:
INFO:tensorflow:Cannot use 'Identity_264' as input to 'Identity_129' because they are in different while loops.

Identity_264 while context: hi_trans/parallel_1_9/hi_trans/body/rnn/while/while_context
Identity_129 while context: hi_trans/parallel_0_9/hi_trans/body/rnn/while/while_context

Traceback for Identity_264:
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/t2t_train.py", line 58, in <module>
    tf.app.run()
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/platform/app.py", line 126, in run
    _sys.exit(main(argv))
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/t2t_train.py", line 54, in main
    t2t_trainer.main(flags_passthrough)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/bin/t2t_trainer.py", line 337, in main
    execute_schedule(exp)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/bin/t2t_trainer.py", line 287, in execute_schedule
    getattr(exp, FLAGS.schedule)()
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py", line 388, in train
    saving_listeners=self._saving_listeners)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py", line 868, in _call_train
    saving_listeners=saving_listeners)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/estimator/estimator.py", line 352, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/estimator/estimator.py", line 812, in _train_model
    features, labels, model_fn_lib.ModeKeys.TRAIN, self.config)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/estimator/estimator.py", line 793, in _call_model_fn
    model_fn_results = self._model_fn(features=features, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 874, in wrapping_model_fn
    use_tpu=use_tpu)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 925, in estimator_model_fn
    logits, losses_dict = model(features)  # pylint: disable=not-callable
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/layers/base.py", line 696, in __call__
    outputs = self.call(inputs, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 139, in call
    sharded_logits, losses = self.model_fn_sharded(sharded_features)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 191, in model_fn_sharded
    sharded_logits, sharded_losses = dp(self.model_fn, datashard_to_features)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/expert_utils.py", line 254, in __call__
    outputs.append(fns[i](*my_args[i], **my_kwargs[i]))
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 219, in model_fn
    body_out = self.body(transformed_features)
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/sentence_selection.py", line 863, in body
    dtype=tf.float32)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/rnn.py", line 632, in dynamic_rnn
    dtype=dtype)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/rnn.py", line 829, in _dynamic_rnn_loop
    swap_memory=swap_memory)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/control_flow_ops.py", line 3096, in while_loop
    result = loop_context.BuildLoop(cond, body, loop_vars, shape_invariants)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/control_flow_ops.py", line 2874, in BuildLoop
    pred, body, original_loop_vars, loop_vars, shape_invariants)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/control_flow_ops.py", line 2814, in _BuildLoop
    body_result = body(*packed_vars_for_body)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/control_flow_ops.py", line 3075, in <lambda>
    body = lambda i, lv: (i + 1, orig_body(*lv))
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/rnn.py", line 800, in _time_step
    (output, new_state) = call_cell()
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/rnn.py", line 786, in <lambda>
    call_cell = lambda: cell(input_t, state)
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/sentence_selection.py", line 585, in __call__
    *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/layers/base.py", line 680, in __call__
    self.build(input_shapes)
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/sentence_selection.py", line 651, in build
    shape=[input_depth, 1])
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/layers/base.py", line 533, in add_variable
    partitioner=partitioner)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variable_scope.py", line 1297, in get_variable
    constraint=constraint)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variable_scope.py", line 1093, in get_variable
    constraint=constraint)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variable_scope.py", line 431, in get_variable
    return custom_getter(**custom_getter_kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/expert_utils.py", line 206, in daisy_chain_getter
    v = tf.identity(last_device_v)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/array_ops.py", line 131, in identity
    return gen_array_ops.identity(input, name=name)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 2051, in identity
    "Identity", input=input, name=name)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
    op_def=op_def)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py", line 3271, in create_op
    op_def=op_def)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py", line 1650, in __init__
    self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access

Traceback for Identity_129:
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/t2t_train.py", line 58, in <module>
    tf.app.run()
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/platform/app.py", line 126, in run
    _sys.exit(main(argv))
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/t2t_train.py", line 54, in main
    t2t_trainer.main(flags_passthrough)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/bin/t2t_trainer.py", line 337, in main
    execute_schedule(exp)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/bin/t2t_trainer.py", line 287, in execute_schedule
    getattr(exp, FLAGS.schedule)()
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py", line 388, in train
    saving_listeners=self._saving_listeners)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py", line 868, in _call_train
    saving_listeners=saving_listeners)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/estimator/estimator.py", line 352, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/estimator/estimator.py", line 812, in _train_model
    features, labels, model_fn_lib.ModeKeys.TRAIN, self.config)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/estimator/estimator.py", line 793, in _call_model_fn
    model_fn_results = self._model_fn(features=features, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 874, in wrapping_model_fn
    use_tpu=use_tpu)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 925, in estimator_model_fn
    logits, losses_dict = model(features)  # pylint: disable=not-callable
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/layers/base.py", line 696, in __call__
    outputs = self.call(inputs, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 139, in call
    sharded_logits, losses = self.model_fn_sharded(sharded_features)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 191, in model_fn_sharded
    sharded_logits, sharded_losses = dp(self.model_fn, datashard_to_features)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/expert_utils.py", line 254, in __call__
    outputs.append(fns[i](*my_args[i], **my_kwargs[i]))
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/t2t_model.py", line 219, in model_fn
    body_out = self.body(transformed_features)
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/sentence_selection.py", line 863, in body
    dtype=tf.float32)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/rnn.py", line 632, in dynamic_rnn
    dtype=dtype)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/rnn.py", line 829, in _dynamic_rnn_loop
    swap_memory=swap_memory)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/control_flow_ops.py", line 3096, in while_loop
    result = loop_context.BuildLoop(cond, body, loop_vars, shape_invariants)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/control_flow_ops.py", line 2874, in BuildLoop
    pred, body, original_loop_vars, loop_vars, shape_invariants)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/control_flow_ops.py", line 2814, in _BuildLoop
    body_result = body(*packed_vars_for_body)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/control_flow_ops.py", line 3075, in <lambda>
    body = lambda i, lv: (i + 1, orig_body(*lv))
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/rnn.py", line 800, in _time_step
    (output, new_state) = call_cell()
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/rnn.py", line 786, in <lambda>
    call_cell = lambda: cell(input_t, state)
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/sentence_selection.py", line 585, in __call__
    *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/layers/base.py", line 680, in __call__
    self.build(input_shapes)
  File "/hdfs/pnrsy/v-xiden/philly_workspace/sentence_selection/sentence_selection.py", line 651, in build
    shape=[input_depth, 1])
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/layers/base.py", line 533, in add_variable
    partitioner=partitioner)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variable_scope.py", line 1297, in get_variable
    constraint=constraint)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variable_scope.py", line 1093, in get_variable
    constraint=constraint)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variable_scope.py", line 431, in get_variable
    return custom_getter(**custom_getter_kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tensor2tensor/utils/expert_utils.py", line 209, in daisy_chain_getter
    v = tf.identity(var._ref())  # pylint: disable=protected-access
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/array_ops.py", line 131, in identity
    return gen_array_ops.identity(input, name=name)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 2051, in identity
    "Identity", input=input, name=name)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
    op_def=op_def)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py", line 3271, in create_op
    op_def=op_def)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py", line 1650, in __init__
    self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access

I use the raw tf.nn.dynamic_rnn, is there extra modification needed for it to work? Thanks in advance.

In my case, I am training a lstm_seq2seq model with lstm_seq2seq params, I got the following err when I try to use multi GPU."ValueError: Cannot use 'lstm_seq2seq/parallel_1_5/lstm_seq2seq/body/lstm_seq2seq/encoder/rnn/while/rnn/multi_rnn_cell/cell_0/basic_lstm_cell/MatMul' as input to 'Identity_2' because they are in different while loops. See info log for more details."

i want to follow up on this issue, i recently modified body and introduced a while loop into it. This gives an error very similar to that from @mapingshuo . The code works fine with single gpu and crash with multi-gpu where raised a valueError involving 2 identities that are from different name_scope (parallel_0_5, parallel_1_5 for instance). Disabling daisy_variable_chain will get pass this error but would get into an even worse mess.
According to my understanding, this is because parallel scope in data_parallelism is only a name_scope and therefore would not prevent fetching of variables from parallel_1 to parallel_0 as input and hence we got the while_loop check error.
On another hand, the fetching of variable from different copies might not be a bad idea since thats how we train multi-gpu models i believe, so this just unfortunately doesnt work on stuff when while_loop is involved.
Maybe modifying the daisy_chain_getter and introduce regex against while loop variables would work?

https://github.com/tensorflow/tensor2tensor/blob/543293cfb490121f67c6d87287b9b0c7c3670286/tensor2tensor/layers/common_hparams.py#L256
This setting controls whether to copy variables around in a daisy chain (if true) or leave their placement to TensorFlow. It only affects multi device training and mostly should be turned on for performance. One exception are recurrent models: with dynamic loops it must be off.


perf: convert to buffer during async writes

This should be significantly faster in node 22.7

wouldn't it be significantly slower on 18 and 20?

Not necessarily. But yea, it would probably be slower. Should we check for node version in runtime?


Update deploy.sh script

Add confirmation switch:
This script is going to deploy on production. Are your sure?

Let's do this!
Fuck, no!

Done here: https://github.com/UstymUkhman/UstymUkhman/commit/62dcef1edabf10317c45292f7c2f7e3fe2532885


Unable to use @auth directive with @hasMany relationship

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v16.16.0
Amplify CLI Version
10.2.3
What operating system are you using?
Mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
No
Describe the bug
Hi AWS Amplify API GitHub community,
I am trying to access a specific pattern with GraphQL where there are Items as the "parent" data type which have public read enabled (everyone can see the data of all the Items)...but then there can be a child owner-only one-to-many relationship to Items called SubItems with a @hasMany array appended as a  "child" or "children" to that parent type Item.
For reference, I am using the AWS Amplify framework to work with AppSync, but all the normal rules should still apply.
What I want to be able to do is the following — there are Items, and Items have a one-to-many relationship with SubItems. But only the person who created the SubItem could see this. Also, if I were to listItemsByTimestamp such as in a feed...the SubItems wouldn't be accessible in something like this type of feed:
[Item #1: "hi there 1st Item"] — anyone can see this
[Item #2: "testing this again"] — anyone can see this
[SubItem #1] — ONLY seeable from DynamoDB or the creator
[SubItem #2] — ONLY seeable from DynamoDB or the creator
[SubItem #3] — ONLY seeable from DynamoDB or the creator
[Item #3: "yup, I'm a 3rd Item"] — anyone can see this
In graphql, is this pattern valid below where the type Item has public-read data EXCEPT for the references to the SubItems which would only be viewable by the owner who created them? I tried to mess around with the @auth directives for types but then it makes the public read error by having fields that are trying to be rendered but can't because of the directives: https://docs.amplify.aws/cli/graphql/authorization-rules/#signed-in-user-data-access
This is why I want to see if I can securely do it this way? Although, my concern is that the children would inherit the parent auth roles by default even if the children have owner-only read/create.
#PARENT ITEM
type Item
    @model
    @auth(rules: [
        { allow: owner, ownerField: "owner", provider: userPools, operations: [create, read, update, delete] }
        { allow: private, provider: userPools, operations: [read] }
        { allow: public, operations: [read] }
    ])
{
    id: ID!
    text: String!
    type: String!
        @index(
            name: "SortItemsByTimestamp"
            queryField: "listItemsSortedByTimestamp"
            sortKeyFields: ["timestamp"] # sort items by time overall
        )
    timestamp: Int!
    owner: String!
    subitems: [SubItem]
        @hasMany(indexName: "SubItemsOfItem", fields: ["owner"])
        @auth(rules: [{ allow: owner }])
}

type SubItem
    @model
    @auth(rules: [
        { allow: owner, ownerField: "owner", provider: userPools, operations: [create, read] }
    ])
{
    id: ID!
    text: String!
    timestamp: ID!
    owner: String!
    type: String!
        @index(
            name: "SortSubItemsByTimestamp"
            queryField: "listSubItemsSortedByTimestamp"
            sortKeyFields: ["timestamp"] # sort subitems by time overall
        )
    timestamp: Int!

    item: String
        @index(
            name: "SubItemsOfItem",
            queryField: "listSubItemsOfItem",
            sortKeyFields: ["timestamp"]
    }
    itemPointer: Item @belongsTo(fields: ["item"])

Expected behavior
I want to be able to run the listItemsByTimestamp graphql query and have it list all of the items, but not with the "UNAUTHORIZED" errors where it says Not Authorized to access subitems on type ModelItemConnection.
It's because the SubItem has owner-only read/create....so I want to be able to connect it to the Item parent....but this in graphql generates queries that include SubItems by default...which causes my list query to error out and not load the data without rendering errors in my react app.
Reproduction steps

Create the GraphQL schema as shown above
Push to amplify/appsync
Use the amplify SDK in react to run a list query for the parent element and then try to list them in react.js

Project Identifier
No response
Log output

# Put your logs below this line

Additional information
No response
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

Hi @BrianHHough,
The problem you're running into is that when you use field level authorization, it will override model level authorization. So when the subitems field is using owner auth, it only uses the owner of the Item to determine access, while the authorization information from SubItem is not used.
From the sound of it you only want to return the SubItems that a user has access to, but you're not trying to block access to the field any differently than the rest of the model. So in that case you want to remove the field level authorization

Hi @BrianHHough 👋, We are closing this issue as we have not received any response from you. However, if you are still facing the same issue and require our assistance, please don't hesitate to leave a comment. This way, we can reopen the issue and provide you with better assistance.
Thank you!