Use part of the request body for routing, but don't load the whole request into RAM

Is your feature request related to a problem? Please describe.
I have a case where I want to read the first X bytes from the request and route to a different host depending on the value read.
I know that you can accomplish what I'm doing by caching the request using ServerWebExchangeUtils.cacheRequestBody() and then reading the bytes from the cached DataBuffer.
But in my case, multiple HTTP clients could send requests with 250 MB of data or more. If I don't limit the DirectMemory, the process will be killed by my cgroup RAM limit. If I limit the DirectMemory, new requests will get HTTP 500 responses stating that there's not enough memory.
I tried to solve the problem by using DataBufferUtils.takeUntilByteCount() without caching, but then either the request is forwarded without a body since the Producer of the data already sent everything or an error is thrown that 2 subscribers can't listen to the same request Flux.
Describe the solution you'd like
This probably goes against the principles of reactive programming, but is there some way to stop the request producer midway and to produce a new Flux which repeats the first few DataBuffers which were read in the custom GatewayFilter and then adds the rest of the outstanding DataBuffers?
Additional context
I've read about ModifyRequestBodyGatewayFilterFactory and ReadBodyPredicateFactory and both of them rely on reading the whole request body into an Object.

What I did to solve my problem for now is to forward anything from the request to a Subscriber with a Sinks.many().multicast().onBackpressureBuffer(3000) inside. Then I override the request Flux with sink.asFlux() in a ServerHttpRequestDecorator.
The Subscriber.onNext() reads DataBuffers until it has enough information to determine where the request should be forwarded to and then emits that info in a Sinks.one().
If the buffer size is too small, sink.tryEmitNext() will lead to EmitResult.FAIL_ZERO_SUBSCRIBER or EmitResult.FAIL_OVERFLOW. It seems like the MonoSendMany doesn't read anything from the queue until a certain event happens.
At this point of time, I have no idea what it's waiting for. Thread.sleep() and then emitting the value again in the Subscriber does not change anything. It will repeatedly return one of the EmitResults mentioned above in an endless loop.

I have encountered similar problems, I think there is a better solution, here is my code:
import java.util.List;
import java.util.function.Function;

import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.factory.rewrite.CachedBodyOutputMessage;
import org.springframework.cloud.gateway.support.BodyInserterContext;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ReactiveHttpOutputMessage;
import org.springframework.http.codec.HttpMessageReader;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
import org.springframework.web.reactive.function.BodyInserter;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.server.HandlerStrategies;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

public class DemoFilter implements GatewayFilter {

    // set a reasonable value
    private static final int BYTE_COUNT = 1024;

    private final List<HttpMessageReader<?>> messageReaders;

    public DemoFilter() {
        messageReaders = HandlerStrategies.withDefaults().messageReaders();
    }

    private String getHost(String str) {
        // implement this method
        return "host based on str";
    }

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        ServerRequest serverRequest = ServerRequest.create(exchange, messageReaders);

        final byte[] first1024Bytes = new byte[BYTE_COUNT];

        Flux<DataBuffer> modifiedBody = serverRequest.bodyToFlux(DataBuffer.class).map(new Function<DataBuffer, DataBuffer>() {
            int readByteCount = 0;

            @Override
            public DataBuffer apply(DataBuffer dataBuffer) {
                if (readByteCount < BYTE_COUNT) {
                    int rawPosition = dataBuffer.readPosition();
                    int before = dataBuffer.readableByteCount();
                    dataBuffer.read(first1024Bytes, readByteCount, Math.min(dataBuffer.readableByteCount(), BYTE_COUNT - readByteCount));
                    int after = dataBuffer.readableByteCount();
                    readByteCount += before - after;
                    // recover dataBuffer！
                    dataBuffer.readPosition(rawPosition);
                }
                return dataBuffer;
            }
        });

        final Mono<Object> mono1 = Mono.defer(() -> {
            exchange.getAttributes().put("newHost", getHost(new String(first1024Bytes)));
            // latter filters can use the "newHost" attribute to do something
            return Mono.empty();
        });

        BodyInserter<Flux<DataBuffer>, ReactiveHttpOutputMessage> bodyInserter = BodyInserters.fromPublisher(modifiedBody, DataBuffer.class);
        HttpHeaders headers = new HttpHeaders();
        headers.putAll(exchange.getRequest().getHeaders());

        CachedBodyOutputMessage outputMessage = new CachedBodyOutputMessage(exchange, headers);
        final Mono<Void> mono2 = bodyInserter.insert(outputMessage, new BodyInserterContext())
                .then(Mono.defer(() -> {
                    ServerHttpRequest decorator = decorate(exchange, headers, outputMessage);
                    return chain.filter(exchange.mutate().request(decorator).build());
                })).onErrorResume((Function<Throwable, Mono<Void>>) Mono::error);

        return modifiedBody.then(mono1).then(mono2);
    }

    ServerHttpRequestDecorator decorate(
            ServerWebExchange exchange, HttpHeaders headers,
            CachedBodyOutputMessage outputMessage
    ) {
        return new ServerHttpRequestDecorator(exchange.getRequest()) {
            @Override
            public HttpHeaders getHeaders() {
                long contentLength = headers.getContentLength();
                HttpHeaders httpHeaders = new HttpHeaders();
                httpHeaders.putAll(headers);
                if (contentLength > 0) {
                    httpHeaders.setContentLength(contentLength);
                } else {
                    httpHeaders.set(HttpHeaders.TRANSFER_ENCODING, "chunked");
                }
                return httpHeaders;
            }

            @Override
            public Flux<DataBuffer> getBody() {
                return outputMessage.getBody();
            }
        };
    }

}

@tmzk1005 Your modifiedBody.then(mono1) waits until the whole request is done, which is the same as caching the request.
At that point, using ServerWebExchangeUtils.cacheRequestBody() and then reading the bytes from exchange.getAttribute(CACHED_REQUEST_BODY_ATTR) would achieve the same result.
Set -XX:MaxDirectMemorySize=150M and send a 200 MB request to your application. It will throw an out of memory error for Direct Memory.

@bergerst  Yes, I was wrong. I test my application as you suggested and got an out of memory error for Direct Memory.
I  wonder Method windowUntil  of Flux may help solve this problem, but I did not figure out a perfect solution.

We are fighting with SOAP in Spring Cloud and have similar issues.
To detect the SOAP Operation or read the SOAP security header, we need to read part of the message.
At a certain point we have all information and could let the rest of the body (several MB) stream through.
I would love to see an example. The documentation is currently sparse.

@robert-gdv The SOAP action can be read from the Content-Type HTTP header. It should look like this, normally: Content-Type: application/soap+xml;action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b"
The action part of the Content-Type is optional, though. So you have to make sure the client actually sends it. That still doesn't solve the Security element part, though.


Patterns for testing hyper client usage?

I'm implementing a program that is using Hyper for its HTTP client. I'm still pretty new to Rust, especially writing tests in Rust, so please bear with me.
I want to be able to test the production of requests and the consumption of responses within my program. To this end, I think I want some kind of a testing HttpClient that enables me to intercept the request that would be sent and mock a response given "any" request.
It seems like tests/client.rs is actually standing up a little HTTP server for each test. While certainly a way to accomplish it, this seems… excessive. This may be a limitation of Hyper's HttpClient at the moment. If so, I'm willing to explore what it will take to make my dreams into reality.
Ultimately, I'm looking for something like mocking in Ruby or Scala, where I can say something like this for testing a parser:
val client = new HttpClient
val resp = createExpectedResponse()
when(client.execute(Any)) thenReturn(resp)
val output = parser.parse(client.execute(createRequest()))
output should be(expectedParsedValue)

My desired state at close of this issue is an article in the Hyper guide recommending best practices for  testing when Hyper is involved.

Since Client is generic over a connector, which can return any type of AsyncRead + AsyncWrite, it is definitely possible to make tests using some mocked thing.
hyper's tests/client.rs specifically use TCP as more of a promise that the client works correctly on TCP, instead of a bug existing in a mocked transport.

I'm going to close this as it's a question about patterns, rather than a bug in hyper.

My intended outcome for this was the inclusion of recommendations in the
documentation. That there aren't good examples means there may be work
for someone to do, even if that someone is me-a-few-months-from-now.


Add codeclimate yaml.

Seems like this is necessary to use some of the features of code climate now...
Def. gonna also need to resolve #201, as well.

Closing in favor of #201 and then #263


Bump esp-idf tag version to v4.4.4

A user in the matrix chat had some problems, using the wifi. The problem he encountered was a wired network state his router pushed him in. This is happening when flashing the chip -> it starts and tries to connect to a wifi -> user than starts to attach with espmonitor -> reseting the esp (nuking the current connection)-> special network refuses to connect wifi again(looking user out for some minutes). There is a "fix" in the newer version of esp-idf that presents the user here with a more clear error.

IMHO, if we bump version to v4.4.4 it should be for all project, since it's a relevant change maybe we can discuss it in the next community meeting.

IMHO, if we bump version to v4.4.4 it should be for all project, since it's a relevant change maybe we can discuss it in the next community meeting.

The issue was discussed in yesterday's meeting  and we've decided to update the tag, I'll create a PR to handle it!

IMHO, if we bump version to v4.4.4 it should be for all project, since it's a relevant change maybe we can discuss it in the next community meeting.

The issue was discussed in yesterday's meeting  and we've decided to update the tag, I'll create a PR to handle it!

I could not made it yesterday. Thank you for addressing it.


BUG-Blank chart after too much changes

Description
If a chart's data changes a lot, the corresponding chart will go blank and will not return to its normal behavior without refreshing the page.
How to reproduce
from taipy.gui import Gui
from math import cos, exp

value = 10

page = """
Markdown
# Taipy *Demo*

Value: <|{value}|>

<|{value}|slider|>

<|{compute_data(value)}|chart|>
"""

def compute_data(decay:int)->list:
    return [cos(i/6) * exp(-i*decay/600) for i in range(10_000)]

Gui(page).run()

Change the slider a lot of times, play with it. The chart should at one point be blank and it is not possible to see the data even by changing the slider again. The user has to refresh the page.
Expected behavior
When the chart goes blank, Taipy should try to make it work
Screenshots

Runtime environment
Taipy GUI: 2.3.1

I've been trying to reproduce this problem with Taipy GUI 3.0, watching closely the interaction between the client, that triggers the action of recomputing the data sent to the Chart control, and the server that does the update request.
No errors were detected, and after a while (the time it takes to process all the consecutive change requests from the slider), the chart updates properly. This can, however, take time: there are lots of computations done on the server to deliver the new data.
This delay is obviously caused by the fact that the callback takes a while, preventing immediate feedback on the page. And this is exactly why Taipy recommends that you don't spend too much time on the server responding to front-end events.
There's nothing Taipy GUI can do on its own to fix that delay.
A real problem would occur should the page never update, which I cannot reproduce.
I'm willing to close this issue at this point, after your acknowledgment.

 I need to refresh the page to see it the correct chart appears.

I understand.
But I cannot reproduce that behavior.
Are you using Taipy 3.0.0.dev*, and would you consider a screen share of that sometime?

I am using today version of Taipy:
taipy-gui              3.0.0.dev3

The example works best with less points:
from taipy.gui import Gui
from math import cos, exp

value = 10

page = """
Markdown
# Taipy *Demo*

Value: <|{value}|>

<|{value}|slider|>

<|{compute_data(value)}|chart|>
"""

def compute_data(decay:int)->list:
    return [cos(i/6) * exp(-i*decay/600) for i in range(100)]

Gui(page).run()


examples/image-classification-web：No response when executing script  './run-server.sh'

Describe the bug
when executing script './build-for-web.sh' :
[INFO]: Installing wasm-bindgen...
[INFO]: Optional fields missing from Cargo.toml: 'description', 'repository'. These are not necessary, but recommended
[INFO]: License key is set in Cargo.toml but no LICENSE file(s) were found; Please add the LICENSE file(s) to your project directory
[INFO]: :-) Done in 2m 00s
[INFO]: :-) Your wasm pkg is ready to publish at E:\webgpu\burn-main\examples\image-classification-web\pkg/no_simd.
And no response when executing script  './run-server.sh' .
Desktop (please complete the following information):

OS: win10
Browser：chrome canary

Additional context

@Luni-4 is working on migrating the script to xstask (see #851) so that it works the same across platforms including Windows. I am on Mac, so I can't verify why it's failing.
If you'd like to see the demo live, I have temporarily hosted here: https://antimora.github.io/image-classification/

Closing this as it will be fixed by https://github.com/Tracel-AI/burn/issues/851


[build-script][windows]Update all suite.json for host app in windows

Add host-app parameter in suite.json.
Impacted tests(approved): new 0, update 11, delete 0
Unit test platform: Crosswalk Project for Windows 19.49.514.0
Unit test result summary: pass 11, fail 0, block 0
BUG=XWALK-6598

LGTM


Edit productivity-tools collection

Thank you for contributing! Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[ ] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[x] Suggesting edits to an existing topic or collection
[ ] Curating a new topic or collection

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288)
[x] Content (and my changes are in index.md)

Common development tools in one place to improve productivity.

Curating a new topic or collection

[ ] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[ ] My folder contains a *.png image (if applicable) and index.md
[ ] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

Please replace this line with an explanation of why you think this topic or collection should be curated.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

Hi @reugn  We currently do not accept contributions from anyone affiliated with the project.

I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Thank you


Add single cell tools to match https://singlecell.usegalaxy.eu/

Installation sequence for tool-installers

[ ] Test using @galaxybot test this
[ ] Inspect CI output for expected changes
[ ] Deploy using @galaxybot deploy this if test install was successful
[ ] Merge this PR

@galaxybot deploy this


500 Internal Server error in console as Transaction Datagrid Not working.

Terms

[X] Before you openning this issue, i have checked if the issue has already been reported.

Bagisto Version(s) affected
v2.1.1
Issue Description
When we check  the transaction section in the Admin end, there we can see that the transaction data grid is not working. Getting 500 Internal Server Error in console.
Preconditions

Admin should be logged in.
Data should be present in Transaction section.

Steps to reproduce

Go to Admin -> Sales -> Transactions.
Open Console -> Check the error in console.

Expected Result
There should be no exceptional error in console.
Please fix the issue here -> https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Admin/src/DataGrids/Sales/OrderTransactionsDataGrid.php#L106
Actual Result
Currenty we can see that error is appearing.
Video
https://github.com/bagisto/bagisto/assets/92721837/b313eabd-4e2a-4075-bdb2-ab8c7c9a6b72
Screenshots
No response
Additional context
No response

Checked and found that the issue has been fixed and PR has been merged. Hence I am closng the issue. Please check the the Video for the reference.
Video
https://github.com/bagisto/bagisto/assets/92721837/efa700c2-02cc-4fd6-92b4-f21728dd7fc3


Fix wrong next step

@aaronadamsCA : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks, @aaronadamsCA!
#sign-off


ConvertFrom-Json : Invalid JSON primitive

🐛 Summary
What's wrong? Please be specific.
when I try to run this
Invoke-SCuBA -ProductNames aad -OutPath C:\report
I get the following error message
ConvertFrom-Json : Invalid JSON primitive: .
At
C:\Users\test\Desktop\ScubaGear-v0-2-1\ScubaGear-0.2.1\PowerShell\ScubaGear\Modules\CreateReport\CreateReport.psm1:46
char:44
+ $SettingsExport =  Get-Content $FileName | ConvertFrom-Json
+                                            ~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand
any idea what could be the issue? I have checked the jason file and the format seems correct, thanks

@chenzhengdong125 Thanks for opening the issue and bringing our attention to this error. From the error message, it is unclear what is causing the issue. If possible, can you please share the ProviderSettingsExport.json and TestResults.json files (after redacting any sensitive information from them). This can help us debug the issue further.

@chenzhengdong125 It is happening to me too. It seems it only errors out when running against AAD, all other modules running fine.
ProviderSettingsExport.txt
TestResults.txt

@chenzhengdong125 can you confirm if you have a similar situation (no CAP policies)?  If not, can you provide redacted JSON and TestResults so we can investigate the cause?

@chenzhengdong125 can you confirm if you have a similar situation (no CAP policies)? If not, can you provide redacted JSON and TestResults so we can investigate the cause?

Thanks, I don't have any CAP in azure, so it will be the same issue I guess

Great.  In that case, you can try the code at HEAD (by using this link) or wait a few weeks for the 0.3.0 release to come out that should have the fix for this issue.
We'll go ahead and close as a duplicate of #134


Add nodemailer-sendgrid-transport to /packages

Issue Summary
Please see issue https://github.com/sendgrid/nodemailer-sendgrid-transport/pull/28
We want to upgrade that repo and bring it into this monorepo, then deprecate the old package.

Hi @thinkingserious
Can you shed a little more light on what you hope to achieve? My understanding of this is we need to move the sendgrid-transport module here (/packages). Is it just that?
Thanks!

Hi @iifeoluwa,
We need to do what you describe and update the dependency to match the current version of this SDK.
Thanks!
With Best Regards,
Elmer

Alright, great! @thinkingserious
One more thing though. I was thinking you'd want to merge this PR first before we move the package over.
Moving the package here and recreating the PR might be problematic. What do you think?
Regards.

Hi @iifeoluwa,
That is a great PR, but it's not using the latest version of this SDK.

Alright then, I'll get on with it.
Thanks @thinkingserious

Hello @thinkingserious,
I'm sorry, I won't be able to take this on at the moment. I might get back to it when I have enough time to go through how nodemailer's transport plugin and the mail package API works.
I don't know enough about it right now and wouldn't want to make a mess of things. I apologize for any inconvenience caused.
Regards.

Nodemailer author here. Just FYI I created SendGrid transport module for Nodemailer that is fully compatible (or as much compatible as possible) with Nodemailer API and uses the "@sendgrid/mail" module under the hood to do the actual delivery. You can find the module here: https://github.com/nodemailer/nodemailer-sendgrid
The main reason I created this module was to demonstrate how to use the internal normalize method available for transports. This method takes nodemailer message structure and converts it to a JSON compatible object that can be used by APIs like SendGrid (all attachments and such are normalized to base64 strings).

Is there any update regarding the addition of nodemailer-sendgrid-transport?

Not yet @Berkmann18, this is still working its way up our backlog. Thanks for checking in!

Is this issue still relevant? I would give it a go.

My apologies for the confusion @mauricetmeyer, I had not updated the labels on this one. I do hope you will consider another issue, there's lots to do :)
Thanks for helping out @Berkmann18!

What is the status of this issue? Anything more needed to be done?

Since there has been no activity on this issue since March 1, 2020, we are closing this issue. Please feel free to reopen or create a new issue if you still require assistance. Thank you!


lib/bit-representation: init

Description of changes
Add lib functions to parse and stringify integers following a base such as binary and hexadecimal.
Blocks:

Implementation of hash based proof of concept for https://github.com/NixOS/rfcs/pull/151

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

I found a bug in the conversion. I also need to realize how to do tests for the lib.

Bug solved. The remainders where being generated reversed. I just had to reverse that list and everything is now working nice.

I also added tests, some of them compared with results from Python.

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

1 package blacklisted:

nixos-install-tools

These char -> int attribute sets should not be exposed in the interface, it's an implementation detail.
There's also already lib.toHexString and lib.toBaseDigits which this PR should unify with.
I also think it should be called lib.intRepresentations or so, "bit" would only match for binary.

Whoa, I didn't know about toBaseDigits. It's almost the same thing I am trying to do here lol.

These char -> int attribute sets should not be exposed in the interface, it's an implementation detail.
There's also already lib.toHexString and lib.toBaseDigits which this PR should unify with.
I also think it should be called lib.intRepresentations or so, "bit" would only match for binary.

I changed the implementation of toHexString to use intRepresentations and added the possibility for one to only pass the name of the base instead of the mapping.
I also refactored the mapping logic to be a list and when parsing it also builds a lookup table that makes that attrset so lookups are faster and it's harder to provide invalid inputs.
I am not sure if I should keep that lookup table function there or move somewhere else tho.

These char -> int attribute sets should not be exposed in the interface, it's an implementation detail.
There's also already lib.toHexString and lib.toBaseDigits which this PR should unify with.
I also think it should be called lib.intRepresentations or so, "bit" would only match for binary.

I changed the implementation of toHexString to use intRepresentations and added the possibility for one to only pass the name of the base instead of the mapping.
I also refactored the mapping logic to be a list and when parsing it also builds a lookup table that makes that attrset so lookups are faster and it's harder to provide invalid inputs.
I am not sure if I should keep that lookup table function there or move somewhere else tho.

Hmm still not very happy with the interface, how about something like

formatBinary :: Int -> String: Formats a number as binary
formatOctal :: Int -> String: Formats a number as octal
formatHex :: Int -> String: Formats a number as hexadecimal

Also parseBinary, parseOctal, etc.
But I guess much more importantly, can you show why we need all of these? We shouldn't add functions without use cases to lib.

Hmm still not very happy with the interface, how about something like

formatBinary :: Int -> String: Formats a number as binary
formatOctal :: Int -> String: Formats a number as octal
formatHex :: Int -> String: Formats a number as hexadecimal

Also parseBinary, parseOctal, etc.
But I guess much more importantly, can you show why we need all of these? We shouldn't add functions without use cases to lib.

Initially, parsing a hex hash to decompose in values to use with the port allocator RFC implementation. That way we can generate valid ports that are less likely to have collisions.

That hinges on the RFC/PR being accepted/merged, and from what I could tell it's not close to that, so I don't think we can use that as justification. And this would only be a justification for parseHex, not any of the other functions.

That hinges on the RFC/PR being accepted/merged, and from what I could tell it's not close to that

Then let's keep it as a proof-of-concept.

And this would only be a justification for parseHex, not any of the other functions.

Completeness.

Completeness.

I'm very much against merging 5 functions without any use cases just because of "completeness". Interfaces without any use cases are but a maintenance burden. We can always easily add more functions later if the use cases do happen to arise.

Completeness.

I'm very much against merging 5 functions without any use cases just because of "completeness". Interfaces without any use cases are but a maintenance burden. We can always easily add more functions later if the use cases do happen to arise.

At first I only wanted to add a hex parser to int. That's what I need actually, but as the logic keeps the same I added support for arbitrary mappings. BTW maybe it's best to remove the case normalization (all uppercase for example) and that mapping aliases and then add a fromHEXString to follow the same but inverse signature as toHEXString.

Did a rebase

But I guess much more importantly, can you show why we need all of these? We shouldn't add functions without use cases to lib.

When working with ip addresses and subnets having functions to convert to and from binary and hex to decimal is incredibly useful. Like writing a function to check if a ip is part of a subnet basically requires converting it and it's netmask to binary and throwing and logic on it, or when doing any calculations with ipv6 where the entire ip is represented as hex values.

@Janik-Haag Sounds like a good use case to me!


HCWM - QUATERMAN PRIME

this Mystical dude would be a good candidate to re-test Bayou Vermilion Railroad.

Tested also with the Bayou Vermillion Railroad, but the noon ability actually cannot be used as QUATERMAN PRIME cannot be booted. But that worked along with the discount.


docs: fix typo in <PrismicRichText> TSDoc

Types of changes

[x] Chore (a non-breaking change which is related to package maintenance)
[ ] Bug fix (a non-breaking change which fixes an issue)
[ ] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
Fixes a typo
Checklist:

[ ] My change requires an update to the official documentation.
[ ] All TSDoc comments are up-to-date and new ones have been added where necessary.
[ ] All new and existing tests are passing.

Thanks for the fix @mikefrancis! It will be published in the next release. 🙂


OHIF viewer requests frames with Accept: transfer-syntax=* header which is not supported by Orthanc

Bug Report
Describe the Bug
I tried to setup OHIF v3 (bug can be reproduced with OHIF v2 too) with local orthanc server as described in documentation. Images loaded to orthanc are displayed correctly on list of images and can be downloaded through its UI, but when I'm launching viewer for selected image I'm getting black window instead of image (thumbnail is also empty).
Above issue is caused by failing GET request:
GET /dicom-web/studies/2.25.33821232590408129531920511982967717759/series/2.25.72291574555945918176759302442880844677/instances/2.25.319280037670054236943789430461364251103/frames/1 HTTP/1.1

Host: localhost:3000
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0
Accept: multipart/related; type="application/octet-stream"; transfer-syntax=*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Referer: http://localhost:3000/viewer?StudyInstanceUIDs=2.25.33821232590408129531920511982967717759
Cookie: i18next=en-US
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin

Looks like Orthanc server does not accept Accept: transfer-syntax=* header for uncompressed data and throws following error when viewer tries to fetch frame:
orthanc_1  | E1022 19:14:43.249920 PluginsErrorDictionary.cpp:111] Exception inside the plugin engine: Bad request
orthanc_1  | E1022 19:14:43.325805 PluginsManager.cpp:164] Bad request: DICOMweb RetrieveFrames: Cannot specify a transfer syntax (*) for default Little Endian uncompressed pixel data

What steps can we follow to reproduce the bug?
Setup local orthanc server as described in documentation.

I meet the same problem when I am running a local orthanc docker container.

I meet the same problem also. The solution in my case was to install the newest version of orthanc server, to start the local orthanc server. The error message doesn't appear anymore and the images can be displayed in the OHIV viewer.

I meet the same problem also. The solution in my case was to install the newest version of orthanc server, to start the local orthanc server. The error message doesn't appear anymore and the images can be displayed in the OHIV viewer.

This worked for me. Thanks, I used the 1.9.7 image and the errors got fixed.

I've encountered the same issue on the v3-stable branch from yesterday on two machines. A third machine is running with an older (sometime in May) release with the same docker/docker-compose/orthanc.json/ngnix settings. I've installed a version of Orthanc (the :latest) which looks like it's from May 2022.
Is there something else I can update? Is there something in the new cornerstone/data streaming libraries that requires a change in the orthanc configurations? Thanks.

Orthanc transcoding syntax was introduced in Orthanc 1.7.0 Documentation.
So you simply update the .docker\Nginx-Orthanc\docker-compose.yml file orthanc image version to like 1.11.0, for example:
services:   orthanc:     image: jodogne/orthanc-plugins:1.11.0
I think the master branch should use this version by default.


String can't be value in enum?

I'm trying to validate a string in yml is not a reserved mysql keyword (like 'accessible'. hundreds of strings)
Is this possible in pykwalify?

I implemented this with an extension: https://pykwalify.readthedocs.io/en/unstable/extensions.html
👍


Ambient occlusion buffer pool implementation is incomplete

The R2AmbientOcclusionBufferPool type still contains stubs that raise UnimplementedCodeException. This is an oversight and must be completed!

All that's left is error handling. The provided jpuddle listener just raises UnimplementedCodeException.


CUINT conv exit fails if no UoM exists in the system

Unit of measure is converted based on actual information in DB. It is not "mockable". If there is not UoM - parser fails because cannot apply conversion. Although the unit test data is consistent.
Not sure what to with this. One option is just to advise using most universal codes in tests ... like KG. Skipping CUNIT conv exit explicitely may not be correct in other cases.

Same issue for SD doc types

added ignore_conv_exit. The solution may be subject to change
    zcl_text2tab_parser=>create( lt_act )->ignore_conv_exit( 'CUNIT' )->parse(
      exporting
        i_data      = lv_src
      importing
        e_container = lt_act ).


Reorder fastcgi_params

include fastcgi_params sets default parameters
fastcgi_param SCRIPT_FILENAME sets a specific parameter
Moved above so fastcgi_params doesn't override fastcgi_param
Solves php-fpm chroot issue where $document_root may no longer be relevant

Awesome, thank you very much!
Did we have an issue about this?

No issues! Was trying to get php chroot working and this allowed it to work. The directive is otherwise not needed (especially since it was always getting overwritten everytime before)


Create config.json

The FIWARE Foundation need a simple JSON file available in a standard location in each repo to be able to continue to make FIWARE Releases and improve the degree of cross-product integration testing that can occur. This change has been agreed by the TSC and has been added to the contribution requirements.
Please suggest or amend values where known.

I added the json as part of my ci updates.


Update uhfreader288m.py

If need to read tid then must be set the adrTid and the lenTid parameters.

Thanks for the contribution @stivehu, this looks really great and I'll try and test it out this week.
Do you have any information on the adrTid and lenTid parameters, as I should really add some explanation in some class doc now that the number of supported parameters is growing.


setting-path option

Is there an option such as setting-path
like setup-java
https://oss.navercorp.com/actions/setup-java/blob/8d222861066e40836af2181b3a2ddd46f05b2dd8/docs/advanced-usage.md#apache-maven-with-a-settings-path

NOTE: The settings.xml file is created in the Actions $HOME/.m2 directory. If you have an existing settings.xml file at that location, it will be overwritten. See below for using the settings-path to change your settings.xml file location.
If you don't want to overwrite the settings.xml file, you can set overwrite-settings: false

At the moment, there isn't. I'm not sure I understand what this option is for. Why would you have an existing settings.xml file at the default location?

When using an Actions self-hosted runner with multiple shared runners the default $HOME directory can be shared by a number runners at the same time which could overwrite existing settings file.
Is there any problem like above in graalvm setup action?

Yes, I believe this extension has the describe problem. We'll look into a fix for this.

Yes, I believe this extension has the describe problem. We'll look into a fix for this.

thx


UweDrechsel.vym version 2.8.8

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

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.0 schema?

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

Microsoft Reviewers: Open in CodeFlow

It looks like the issue is that the installer is specified as x86 but may actually be x64. Did you specify the correct architecture?

It looks like the issue is that the installer is specified as x86 but may actually be x64. Did you specify the correct architecture?

I think you are right. The installer installs into Program Files (x86) but the application is actually x64. I changed in the architecture in the manifest.


Reverse complement negative strand reads in fastq output

Fixes #736
This does slightly differ from Picard.  AlignmentRecordConverter currently ignores the negative strand flag is the read is unmapped.  That would result in the read not being reverse complemented when output.  I've left as is and only compared with Picard on mapped reads.
This then will leave unmapped reads unaltered on output (which seems to be the correct thing to do) but I'm not sure why the aligner would mark it as negative if it was unmapped.  I.E. if the aligner reverse complements but then removes the mapping (sets the mapq to 0) perhaps we should look at the flag?

Other than a few nits, looks good to me! Thanks @arahuja.
Also, the failing test in Jenkins appears to be org.bdgenomics.adam.cli.Adam2FastqSuite.convert SAM to paired FASTQ. The stack trace is:
java.lang.NullPointerException
      at scala.collection.mutable.ArrayOps$ofRef$.length$extension(ArrayOps.scala:114)
      at scala.collection.mutable.ArrayOps$ofRef.length(ArrayOps.scala:114)
      at scala.collection.SeqLike$class.size(SeqLike.scala:106)
      at scala.collection.mutable.ArrayOps$ofRef.size(ArrayOps.scala:108)
      at scala.collection.mutable.Builder$class.sizeHint(Builder.scala:69)
      at scala.collection.mutable.ArrayBuilder.sizeHint(ArrayBuilder.scala:24)
      at scala.collection.TraversableLike$class.builder$1(TraversableLike.scala:240)
      at scala.collection.TraversableLike$class.map(TraversableLike.scala:243)
      at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108)
      at org.bdgenomics.adam.rdd.ADAMContext.loadBam(ADAMContext.scala:239)
      at org.bdgenomics.adam.rdd.ADAMContext$$anonfun$loadAlignments$1.apply(ADAMContext.scala:516)
      at org.bdgenomics.adam.rdd.ADAMContext$$anonfun$loadAlignments$1.apply(ADAMContext.scala:513)
      at org.apache.spark.rdd.Timer.time(Timer.scala:57)
      at org.bdgenomics.adam.rdd.ADAMContext.loadAlignments(ADAMContext.scala:511)
      at org.bdgenomics.adam.cli.Adam2FastqSuite$$anonfun$1.apply$mcV$sp(ADAM2FastqSuite.scala:42)
      at org.bdgenomics.utils.misc.SparkFunSuite$$anonfun$sparkTest$1.apply$mcV$sp(SparkFunSuite.scala:97)
      at org.bdgenomics.utils.misc.SparkFunSuite$$anonfun$sparkTest$1.apply(SparkFunSuite.scala:93)
      at org.bdgenomics.utils.misc.SparkFunSuite$$anonfun$sparkTest$1.apply(SparkFunSuite.scala:93)
      at org.scalatest.Transformer$$anonfun$apply$1.apply$mcV$sp(Transformer.scala:22)
      at org.scalatest.OutcomeOf$class.outcomeOf(OutcomeOf.scala:85)
      at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
      at org.scalatest.Transformer.apply(Transformer.scala:22)
      at org.scalatest.Transformer.apply(Transformer.scala:20)
      at org.scalatest.FunSuiteLike$$anon$1.apply(FunSuiteLike.scala:166)
      at org.scalatest.Suite$class.withFixture(Suite.scala:1122)
      at org.scalatest.FunSuite.withFixture(FunSuite.scala:1555)
      at org.scalatest.FunSuiteLike$class.invokeWithFixture$1(FunSuiteLike.scala:163)
      at org.scalatest.FunSuiteLike$$anonfun$runTest$1.apply(FunSuiteLike.scala:175)
      at org.scalatest.FunSuiteLike$$anonfun$runTest$1.apply(FunSuiteLike.scala:175)
      at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
      at org.scalatest.FunSuiteLike$class.runTest(FunSuiteLike.scala:175)

Imports and license cleaned up
Test pasts for me locally, but possibly some weirdness in the paths on Jenkins.  Updated it, let's see if it works, if not is there somewhere to view the Jenkins page?

Jenkins, test this please.

Looks I had to move where the test resources file were, should work now.

Jenkins, test this please.

Merged! Thanks @arahuja.


Automatically publish GitHub release

Currently RD creates the GitHub release in draft mode and you need to manually publish it.
To avoid this manual step RD should automatically publish the release after attachments are uploaded.

Discussion showed that a review of the release is required before publishing it.


Add render method to Component and auto implement Renderable

Fixes: https://github.com/yewstack/yew/issues/339

As a thought, to make this a non-breaking change, you could define a FullComponent which is the superset of Component with the added render function and blanket implement impl <T> Component for T where T: FullComponent and  impl <T> Renderable<T> for T where T: FullComponent.
I understand that you are opposed to aesthetic-only changes, but something like this would allow avoidance of breaking everyone's code, and normalize the existence of something like PureComponent should you choose to include that.
The obvious downsides would be confusion related to differences between FullComponent and Component, and the fact that the dominant Component interface just gained four extra letters.
It might be possible to deprecate Component, then making it private to Yew (something tells me the typesystem may not be fond of this), forcing eventual migration over to FullComponent, Component could be renamed to something like ComponentInternalImpl, and FullComponent could be transitioned in the same way to become Component. So over the course of 5 or so releases you might be able to accomplish a gradual migration back to the normal, minimal trait name with deprecation warnings instead of a single breaking change.


Add support for launch parameters

What's the difference with #301?
No anger here, I just don't wanna spoil our development efforts :)

What's the difference with #301? No anger here, I just don't wanna spoil our development efforts :)

Oh, I hadn't seen that PR.
Overall I would say

variable parameters
are directly passed to NS instead of using ns_startup_args.txt, which would persist beyond the lifetime of FlightCore

A combination of the two with a text input that lets you add your own parameters while giving you a selection of known commands would probably be best.
Having already tried the file based approach with #178 I think it would be best to pass the options directly, since those files persist outside of FlightCore and you cannot control what other stuff may be passed.
I'm open for going down whatever route, I'd just love to be able to use FlightCore for all thats needed to launch Northstar.

I'm not sure how I feel about storing launch args in FlightCore persistent store (only now got the chance to read the full PR)...
For background when I initially set out on making FlightCore I didn't want any persistence at all. But alas people have weird installs so I need to keep track of them when I cannot autodetect. Also having dev stay enabled is kinda nice, if you wanna change the UI language, you don't wanna do it every time, etc. so I was kinda forced to use persistence after all.
The way I see it, I would keep this PR to just adding the option to launch with additional launch args. So that for example one could then easily add a button that e.g. launches a custom profile.
The way I see it, the ns_launch_args.txt is preferred for args that are across multiple profiles, e.g. -multiple or +exec custom.cfg while having the option to allow for additional args is useful when tying it to a profile.
All that aside, I would keep this PR to just adding support for launch args but without the store part. With persistence, any additional thing we store increases the number of combinations exponentially, which makes it easy to introduce bugs. So I'd say either remove it from this PR or make a separate one without it and then we merge the non-persistence stuff first.
If you wanna have a way to test launch args, you could add a button that has some hardcoded to e.g. launch the PR profile ;)


Exception: Reached maximum number of idle transformation calls

Description
Hi, I am using your lib to model Probabilistic Time Series forecasting problem. Specifically, I used  "electricity_nips" dataset with get_dataset function. However an Exception occured when I feed dataset_train  into estimator.train function. Detailed  descriptions are as follows:
To Reproduce
dataset = get_dataset("electricity_nips", regenerate=False)

train_grouper = MultivariateGrouper(max_target_dim=min(2000, int(dataset.metadata.feat_static_cat[0].cardinality)))

test_grouper = MultivariateGrouper(num_test_dates=int(len(dataset.test) / len(dataset.train)),
                                   max_target_dim=min(2000, int(dataset.metadata.feat_static_cat[0].cardinality)))

dataset_train = train_grouper(dataset.train)
dataset_test = test_grouper(dataset.test)

estimator = TimeGradEstimator(
    target_dim=int(dataset.metadata.feat_static_cat[0].cardinality),
    prediction_length=dataset.metadata.prediction_length,
    context_length=dataset.metadata.prediction_length,
    cell_type='GRU',
    input_size=1484,
    freq=dataset.metadata.freq,
    loss_type='l2',
    scaling=True,
    diff_steps=100,
    beta_end=0.1,
    beta_schedule="linear",
    trainer=Trainer(device=device,
                    epochs=20,
                    learning_rate=1e-3,
                    num_batches_per_epoch=100,
                    batch_size=64, )
)

predictor = estimator.train(dataset_train, num_workers=8)

Error message or code output
The errors occured in predictor = estimator.train(dataset_train, num_workers=8), which is demonstrated as below:
Traceback (most recent call last):
  File "/root/miniconda3/envs/crime/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/root/miniconda3/envs/crime/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/root/.vscode-server/extensions/ms-python.python-2023.2.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/__main__.py", line 39, in <module>
    cli.main()
  File "/root/.vscode-server/extensions/ms-python.python-2023.2.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 430, in main
    run()
  File "/root/.vscode-server/extensions/ms-python.python-2023.2.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 284, in run_file
    runpy.run_path(target, run_name="__main__")
  File "/root/.vscode-server/extensions/ms-python.python-2023.2.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 321, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "/root/.vscode-server/extensions/ms-python.python-2023.2.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 135, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/root/.vscode-server/extensions/ms-python.python-2023.2.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 124, in _run_code
    exec(code, run_globals)
  File "/root/autodl-nas/TimeGrad/main.py", line 110, in <module>
    predictor = estimator.train(dataset_train)
  File "/root/autodl-nas/TimeGrad/pts/model/estimator.py", line 179, in train
    return self.train_model(
  File "/root/autodl-nas/TimeGrad/pts/model/estimator.py", line 151, in train_model
    self.trainer(
  File "/root/autodl-nas/TimeGrad/pts/trainer.py", line 63, in __call__
    for batch_no, data_entry in enumerate(it, start=1):
  File "/root/miniconda3/envs/crime/lib/python3.8/site-packages/tqdm/std.py", line 1185, in __iter__
    for obj in iterable:
  File "/root/miniconda3/envs/crime/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 521, in __next__
    data = self._next_data()
  File "/root/miniconda3/envs/crime/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 561, in _next_data
    data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
  File "/root/miniconda3/envs/crime/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 28, in fetch
    data.append(next(self.dataset_iter))
  File "/root/miniconda3/envs/crime/lib/python3.8/site-packages/gluonts/transform/_base.py", line 103, in __iter__
    yield from self.transformation(
  File "/root/miniconda3/envs/crime/lib/python3.8/site-packages/gluonts/transform/_base.py", line 124, in __call__
    for data_entry in data_it:
  File "/root/miniconda3/envs/crime/lib/python3.8/site-packages/gluonts/transform/_base.py", line 124, in __call__
    for data_entry in data_it:
  File "/root/miniconda3/envs/crime/lib/python3.8/site-packages/gluonts/transform/_base.py", line 189, in __call__
    raise Exception(
Exception: Reached maximum number of idle transformation calls.
This means the transformation looped over 1 inputs without returning any output.
This occurred in the following transformation:
gluonts.transform.split.InstanceSplitter(dummy_value=0.0, forecast_start_field='forecast_start', future_length=24, instance_sampler=ExpectedNumInstanceSampler(axis=-1, min_past=192, min_future=24, num_instances=1.0, total_length=54352, n=8), is_pad_field='is_pad', lead_time=0, output_NTC=True, past_length=192, start_field='start', target_field='target', time_series_fields=['time_feat', 'observed_values'])

Environment

Operating system: Because my server can't connect to the web. So I download the "electricity_nips" dataset in my laptop and upload the dataset to the server and run the code in my server. My server that ran the code is Ubuntu 9.3.0-17ubuntu1~20.04 and my laptop that download the dataset is windows 10.
Python version: 3.8.10
GluonTS version: 0.12.3
MXNet version: without MXNet

(Add as much information about your environment as possible, e.g. dependencies versions.)

Hi, it looks like you are using a model from pts, and not GluonTS.
I'm not sure how things interplay here.
But the basic issue is that we have a safety check on some transformation to prevent an idling infinite loop. It uses a counter and breaks when there were that many iterations without a result. In your case that value appears to be 1 which is very low :).
You can try this as a workaround:

 env._set("max_idle_transforms") = 100

Hi, it looks like you are using a model from pts, and not GluonTS.
I'm not sure how things interplay here.
But the basic issue is that we have a safety check on some transformation to prevent an idling infinite loop. It uses a counter and breaks when there were that many iterations without a result. In your case that value appears to be 1 which is very low :).
You can try this as a workaround:
from gluonts.env import env

 env._set("max_idle_transforms", 100)

I add your code into my code but the same errors occur. Actually I use the customized model based on GluonTS, and the model  is put in pts. May I ask where the errors might be? Thx a  lot!
And I can show my Estimator as follows
class TimeGradEstimator(PyTorchEstimator):
    def __init__(
        self,
        input_size: int,
        freq: str,
        prediction_length: int,
        target_dim: int,
        trainer: Trainer = Trainer(),
        context_length: Optional[int] = None,
        num_layers: int = 2,
        num_cells: int = 40,
        cell_type: str = "LSTM",
        num_parallel_samples: int = 100,
        dropout_rate: float = 0.1,
        cardinality: List[int] = [1],
        embedding_dimension: int = 5,
        conditioning_length: int = 100,
        diff_steps: int = 100,
        loss_type: str = "l2",
        beta_end=0.1,
        beta_schedule="linear",
        residual_layers=8,
        residual_channels=8,
        dilation_cycle_length=2,
        scaling: bool = True,
        pick_incomplete: bool = False,
        lags_seq: Optional[List[int]] = None,
        time_features: Optional[List[TimeFeature]] = None,
        **kwargs,
    ) -> None:
        super().__init__(trainer=trainer, **kwargs)

        self.freq = freq
        self.context_length = (
            context_length if context_length is not None else prediction_length
        )

        self.input_size = input_size
        self.prediction_length = prediction_length
        self.target_dim = target_dim
        self.num_layers = num_layers
        self.num_cells = num_cells
        self.cell_type = cell_type
        self.num_parallel_samples = num_parallel_samples
        self.dropout_rate = dropout_rate
        self.cardinality = cardinality
        self.embedding_dimension = embedding_dimension

        self.conditioning_length = conditioning_length
        self.diff_steps = diff_steps
        self.loss_type = loss_type
        self.beta_end = beta_end
        self.beta_schedule = beta_schedule
        self.residual_layers = residual_layers
        self.residual_channels = residual_channels
        self.dilation_cycle_length = dilation_cycle_length

        self.lags_seq = (
            lags_seq
            if lags_seq is not None
            else lags_for_fourier_time_features_from_frequency(freq_str=freq)
        )

        self.time_features = (
            time_features
            if time_features is not None
            else fourier_time_features_from_frequency(self.freq)
        )

        self.history_length = self.context_length + max(self.lags_seq)
        self.pick_incomplete = pick_incomplete
        self.scaling = scaling

        self.train_sampler = ExpectedNumInstanceSampler(
            num_instances=1.0,
            min_past=0 if pick_incomplete else self.history_length,
            min_future=prediction_length,
        )

        self.validation_sampler = ValidationSplitSampler(
            min_past=0 if pick_incomplete else self.history_length,
            min_future=prediction_length,
        )

    def create_transformation(self) -> Transformation:
        return Chain(
            [
                AsNumpyArray(
                    field=FieldName.TARGET,
                    expected_ndim=2,
                ),
                # maps the target to (1, T)
                # if the target data is uni dimensional
                ExpandDimArray(
                    field=FieldName.TARGET,
                    axis=None,
                ),
                AddObservedValuesIndicator(
                    target_field=FieldName.TARGET,
                    output_field=FieldName.OBSERVED_VALUES,
                ),
                AddTimeFeatures(
                    start_field=FieldName.START,
                    target_field=FieldName.TARGET,
                    output_field=FieldName.FEAT_TIME,
                    time_features=self.time_features,
                    pred_length=self.prediction_length,
                ),
                VstackFeatures(
                    output_field=FieldName.FEAT_TIME,
                    input_fields=[FieldName.FEAT_TIME],
                ),
                SetFieldIfNotPresent(field=FieldName.FEAT_STATIC_CAT, value=[0]),
                TargetDimIndicator(
                    field_name="target_dimension_indicator",
                    target_field=FieldName.TARGET,
                ),
                AsNumpyArray(field=FieldName.FEAT_STATIC_CAT, expected_ndim=1),
            ]
        )

    def create_instance_splitter(self, mode: str):
        assert mode in ["training", "validation", "test"]

        instance_sampler = {
            "training": self.train_sampler,
            "validation": self.validation_sampler,
            "test": TestSplitSampler(),
        }[mode]

        return InstanceSplitter(
            target_field=FieldName.TARGET,
            is_pad_field=FieldName.IS_PAD,
            start_field=FieldName.START,
            forecast_start_field=FieldName.FORECAST_START,
            instance_sampler=instance_sampler,
            past_length=self.history_length,
            future_length=self.prediction_length,
            time_series_fields=[
                FieldName.FEAT_TIME,
                FieldName.OBSERVED_VALUES,
            ],
        ) + (
            RenameFields(
                {
                    f"past_{FieldName.TARGET}": f"past_{FieldName.TARGET}_cdf",
                    f"future_{FieldName.TARGET}": f"future_{FieldName.TARGET}_cdf",
                }
            )
        )

    def create_training_network(self, device: torch.device) -> TimeGradTrainingNetwork:
        return TimeGradTrainingNetwork(
            input_size=self.input_size,
            target_dim=self.target_dim,
            num_layers=self.num_layers,
            num_cells=self.num_cells,
            cell_type=self.cell_type,
            history_length=self.history_length,
            context_length=self.context_length,
            prediction_length=self.prediction_length,
            dropout_rate=self.dropout_rate,
            cardinality=self.cardinality,
            embedding_dimension=self.embedding_dimension,
            diff_steps=self.diff_steps,
            loss_type=self.loss_type,
            beta_end=self.beta_end,
            beta_schedule=self.beta_schedule,
            residual_layers=self.residual_layers,
            residual_channels=self.residual_channels,
            dilation_cycle_length=self.dilation_cycle_length,
            lags_seq=self.lags_seq,
            scaling=self.scaling,
            conditioning_length=self.conditioning_length,
        ).to(device)

    def create_predictor(
        self,
        transformation: Transformation,
        trained_network: TimeGradTrainingNetwork,
        device: torch.device,
    ) -> Predictor:
        prediction_network = TimeGradPredictionNetwork(
            input_size=self.input_size,
            target_dim=self.target_dim,
            num_layers=self.num_layers,
            num_cells=self.num_cells,
            cell_type=self.cell_type,
            history_length=self.history_length,
            context_length=self.context_length,
            prediction_length=self.prediction_length,
            dropout_rate=self.dropout_rate,
            cardinality=self.cardinality,
            embedding_dimension=self.embedding_dimension,
            diff_steps=self.diff_steps,
            loss_type=self.loss_type,
            beta_end=self.beta_end,
            beta_schedule=self.beta_schedule,
            residual_layers=self.residual_layers,
            residual_channels=self.residual_channels,
            dilation_cycle_length=self.dilation_cycle_length,
            lags_seq=self.lags_seq,
            scaling=self.scaling,
            conditioning_length=self.conditioning_length,
            num_parallel_samples=self.num_parallel_samples,
        ).to(device)

        copy_parameters(trained_network, prediction_network)
        input_names = get_module_forward_input_names(prediction_network)
        prediction_splitter = self.create_instance_splitter("test")

        return PyTorchPredictor(
            input_transform=transformation + prediction_splitter,
            input_names=input_names,
            prediction_net=prediction_network,
            batch_size=self.trainer.batch_size,
            prediction_length=self.prediction_length,
            device=device,
        )

The offending class is InstanceSplitter, as you can see from the last line of your logs:
gluonts.transform.split.InstanceSplitter(dummy_value=0.0, forecast_start_field='forecast_start', future_length=24, instance_sampler=ExpectedNumInstanceSampler(axis=-1, min_past=192, min_future=24, num_instances=1.0, total_length=54352, n=8), is_pad_field='is_pad', lead_time=0, output_NTC=True, past_length=192, start_field='start', target_field='target', time_series_fields=['time_feat', 'observed_values'])

The problem appears to be here:
https://github.com/zalandoresearch/pytorch-ts/blob/81be06bcc128729ad8901fcf1c722834f176ac34/pts/model/estimator.py#L107
        with env._let(max_idle_transforms=maybe_len(training_data) or 0):

Here, it sets max_idle_transforms to 1 in your case.
There is not much we can do, since that is not our library.
However, you could artificially make your input dataset bigger by doing:
dataset_train = list(train_grouper(dataset.train))
dataset_train *= 100

Amazing! After adding your code, the errors disappear. But I stilll can't understand the reason why the error occur and is there any difference in training data after adding your code? Could you please explain in detail for me or give me some materials or directions? Please forgive me that I am a freshman for GluonTS.

The base problem is that for training we construct an endless stream of time series by iterating over the input data again and again. More or less this:
def training_iter(dataset):
    while True:
        for entry in dataset:
            yield entry

Then we have transformations that we apply to that stream of entries. However, some of these transformations (e.g. InstanceSplitter) don't map input to output 1 to 1, but can also yield more or less time series.
For example, you could have a transformation step that filters too short time series based on a threshold. But if the threshold is too high, it filters out all time series and we are stuck with an infinite loop. The same can happen for instance splitting when the input time series is shorter than the prediction length.
To mitigate this, there is max_idle_transforms which counts how many invocations of a transformation step didn't yield a result. If it exceeds that value, you get above exception.
In GluonTS we set that value to the length of the dataset, but not lower than 100. In pts it is essentially just the length of the dataset, in your case 1. So as soon as the instance splitter skips one time series, things break.
The trick here is to just make the input dataset artificially larger, to force the value to be 100.
If your model was using the base estimator defined in GluonTS, you wouldn't have the issue.

Ok, thank you for the patient explanations! Although I still can't fully understand, I know that the dataset is extended by simply repeating, Right? I will carefully check its influence for my code and probably further read official doc of gluonts.

Yes, repeating in your case is a good workaround.
But the root of this issue is pts, so I'm closing this one.


(GH-587) SSH agent forwarding for Docker and Vagrant

This addresses #587
I've tried to create an issue in JIRA, but I can't seem to find the correct project (I don't appear to have visibility for QENG) ; any help would be much appreciated.

Hi @kevpl,
That's been amended now .. please let me know if that's sufficient, or if there are any further changes required? thanks :)

@madAndroid , awesome, the test looks much better!  Unfortunately, I see a fifth commit that's just merging changes?  We usually just rebase when code has changed elsewhere, so that we don't add new history entries like this one.
Once this is eliminated, I'll submit the code for one last test, and as long as everything looks good there, we should be able to merge this soon!

Unfortunately it looks as though that merge commit was merged into master prior to me creating the feature branch :-/ ... I'll have a look at how to squash that single commit - git rebase master --interactive is not showing that as one of the commits, for some reason

ahh.. there we go :) sorted!

@kevpl - does that look okay now? :)

@madAndroid yep, looks good.  I'll submit for testing now.

@puppetlabs-jenkins retest this please

:red_circle: Test failed.
Refer to this link for build results: http://jenkins-beaker.delivery.puppetlabs.net/job/Beaker Combined Smoketest/400/


Venari Prime is missing in the Kavat's list.

Venari Prime is not listed along Venari and the other Kavats.

Last I check, Venari Prime for whatever reason does not give mastery XP

She gives, just like regular Venari. I needed 14k to L2 and after leveling Khora Prime I got the MR test prompt.

Ah I was not aware there was a hotfix yesterday. I've manually added Venari Prime.


rust-analyzer "replace match with if let" code action doesn't apply correctly

This time I do have a reproducible setup:
enum Test {
    Foo,
    Bar,
}

fn main() {
    let foo = Test::Foo;
    match foo {
        Test::Foo => println!("foo"),
        _ => {}
    }
}

Put the cursor somewhere in the match block and execute the code action.
The resutling block will be
    ifet Test::Foo = foo {
        println::! ("foo")
    }

Commands sent by kak-lsp:
set-register s %val{selections_desc}
eval -buffer ''/tmp/rust-test/src/main.rs'' -save-regs ^ ''select 8.5,8.9 8.11,8.13 8.14,8.14 9.9,9.12 9.13,9.14 9.15,9.17 9.18,9.18 9.19,9.20 9.21,9.21 9.22,9.36 9.37,9.37 9.38,10.8 10.9,10.15 10.16,11.4 11.5,11.5
exec -save-regs "" Z
exec "z<space>"
lsp-replace-selection ''''if''''
exec "z1)<space>"
lsp-replace-selection ''''let''''
exec "z1)<space>"
lsp-insert-before-selection '''' ''''
exec "z1)<space>"
lsp-insert-before-selection ''''Test::Foo''''
exec "z1)<space>"
lsp-insert-before-selection '''' ''''
exec "z1)<space>"
lsp-insert-before-selection ''''=''''
exec "z1)<space>"
lsp-insert-before-selection '''' ''''
exec "z1)<space>"
lsp-insert-before-selection ''''foo''''
exec "z2)<space>"
lsp-replace-selection ''''println''''
exec "z3)<space>"
lsp-replace-selection ''''''''
exec "z3)<space>"
lsp-replace-selection ''''''''
exec "z3)<space>"
lsp-replace-selection ''''!''''
exec "z4)<space>"
lsp-replace-selection ''''("foo")''''
exec "z4)<space>"
lsp-replace-selection ''''''''
exec "z4)<space>"
lsp-replace-selection ''''''''
exec "z4)<space>"
lsp-replace-selection ''''''''
exec "z4)<space>"
lsp-replace-selection ''''
    ''''
exec "z5)<space>"
lsp-replace-selection ''''}''''
exec "z6)<space>"
lsp-replace-selection ''''''''
exec "z6)<space>"
lsp-replace-selection ''''''''''
select %reg{s}'

I ran into this the other day as well. It was kind of hilarious just how badly it broke.

Sort of related, but would it be possible to group all of the changes into a single undo group, instead of having to undo 50 times?

Yeah, I've been wanting to do that.
We don't get an undo group because apply_text_edits_to_buffer uses eval  -buffer, which doesn't have a client in the context. I believe that we should detect if the target file is the  same as the active buffer, and drop the -buffer switch in that case.

I've pushed a possible fix to #532, it covers most of this example.
Sadly not everything - I ran into https://github.com/mawww/kakoune/issues/4373, I'm not sure how to work around that yet.
Probably we should move to a more robust way to perform edits.

A more robust approach: apply text edits on the kak-lsp side and feed them into Kakoune with %|cat contents-after-edits<ret>. Then we wouldn't need to work around these peculiarities and we also wouldn't need #533.

Thanks for reporting! I wish there were reusable test suites for LSP clients/servers.
I've also fixed the undo problem, this should feel more natural now.


[Feature Request] Region auto enable on env variable

Region auto-enable

On creation of a ConfidentialClientApplication, MSAL shall detect env variable MSAL_FORCE_REGION, which will be set to a specific region (e.g. westus1)
If this env variable is set, MSAL shall opt-in to ESTS-R with the value of this variable.

Disabling the behavior
If region is explicitly set in MSAL to the string "DisableMsalForceRegion`, then the above no longer applies
Conflicts with WithAzureRegion(xyz)
Use of the api WithRegion(xyz) takes precedence over the env variable.
Acceptance tests
For all of the tests, assume env variable MSAL_FORCE_REGION=eastus

No other config is used. ACTUAL region used: eastus
App developer configures region "westus" in MSAL. ACTUAL region used: westus
App developer configures region "DisableMsalForceRegion" in MSAL. ACTUAL region used: none

Original issue:
https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/4930

MSALJS does not use the WithRegion(xyz) api like .net does.

MSALJS does not use the WithRegion(xyz) api like .net does.

Can you please adapt the feature request to MSAL JS API? Happy to review,.

@bgavrilMS According to your acceptance tests, I think I don't even need to check for the value of the passed in region. If it exists at all, then it overrides the environment variable. Is that correct? It doesn't matter if it's passed in with a value of "DisableMsalForceRegion" or "alskdjh". However if it is, "DisableMsalForceRegion", then I'll need to set it to undefined instead of leaving it as that string.

@bgavrilMS According to your acceptance tests, I think I don't even need to check for the value of the passed in region. If it exists at all, then it overrides the environment variable. Is that correct? It doesn't matter if it's passed in with a value of "DisableMsalForceRegion" or "alskdjh". However if it is "DisableMsalForceRegion", then I'll need to set it to undefined instead of leaving it as that string.
I was able to pass the three acceptance tests listed above with the code
const region: AzureRegion | undefined =
            ENV_MSAL_FORCE_REGION && !validRequest.azureRegion
                ? ENV_MSAL_FORCE_REGION
                : validRequest.azureRegion === "DisableMsalForceRegion"
                ? undefined
                : validRequest.azureRegion;

but I don't think this is the functionality you're looking for.

Using the ternary operator : there makes the code hard to read. Consider refactoring with if clauses.
If the region API is set to DisableMsalForceRegion, then the request goes to ESTS, not to ESTS-R.


Add an agent plugin for ShardingSphere 5.0.0-beta

Add an agent plugin to support ShardingSphere 5.0.0-beta

[x] Add a test case for the new plugin, refer to the doc
[x] Add a component id in the component-libraries.yml
[x] Add a logo in the UI repo

[X] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Related to #7173 .
[X] Update the CHANGES log.

Could we consider removing some plugins for old versions? We have hosted many versions for ShardingShpere, I am feeling too many.

Could we consider removing some plugins for old versions? We have hosted many versions for ShardingShpere, I am feeling too many.

Indeed. Maybe we can remove the oldest version. #7173

Does this plugin still support ShardingSphere SDK only?

Does this plugin still support ShardingSphere SDK only?

It also supports the ShardingSphere Proxy.

Does this plugin still support ShardingSphere SDK only?

It also supports the ShardingSphere Proxy.

I would like to ask how? I can't see the enhancement to make MySQL/PostgreSQL plugin(JDBC) inject any context in the SQL statement to propagate. How could we link the app to ShardingSphere proxy? This is missed for a long time.

Does this plugin still support ShardingSphere SDK only?

It also supports the ShardingSphere Proxy.

I would like to ask how? I can't see the enhancement to make MySQL/PostgreSQL plugin(JDBC) inject any context in the SQL statement to propagate. How could we link the app to ShardingSphere proxy? This is missed for a long time.

I'm sorry that I misunderstood the 'support'. I think the context cannot propagate to Proxy for now. There will be a new context when request sent to the Proxy.

Another question, do we expect another API changes from beta to GA? I have noticed ShardingSphere keeps changing tracing-related APIs. This is a little frustrating

Do you accidentally remove supported-list.md change? I remember it was there, but not now.

I didn't update this file before.

Another question, do we expect another API changes from beta to GA? I have noticed ShardingSphere keeps changing tracing-related APIs. This is a little frustrating

There are massive changes from ShardingSphere 4.x to 5.0. From beta to GA the kernel API might not change.

I think we are facing a mssql test fails

manifest for microsoft/mssql-server-linux:latest not found: manifest unknown: manifest unknown

Could you help with checking logs? It may not be caused by your codes. But it keeps failing.

I think we are facing a mssql test fails

manifest for microsoft/mssql-server-linux:latest not found: manifest unknown: manifest unknown

Could you help with checking logs? It may not be caused by your codes. But it keeps failing.

I've checkd the https://github.com/apache/skywalking/actions/workflows/plugins-test.1.yaml and this case also failed in other PRs.
It looks like docker's issue or the network is unstable. Consider creating an issue for this problem if it always failed.

I think we are facing a mssql test fails

manifest for microsoft/mssql-server-linux:latest not found: manifest unknown: manifest unknown

Could you help with checking logs? It may not be caused by your codes. But it keeps failing.

I've checkd the https://github.com/apache/skywalking/actions/workflows/plugins-test.1.yaml and this case also failed in other PRs.
It looks like docker's issue or the network is unstable. Consider creating an issue for this problem if it always failed.

I can't check the merged PR again. but with this fail, other test cases wouldn't run. I think this is an easy fix issue. Could you take a look at the logs? It seems an image missing.

I think we are facing a mssql test fails

manifest for microsoft/mssql-server-linux:latest not found: manifest unknown: manifest unknown

Could you help with checking logs? It may not be caused by your codes. But it keeps failing.

I've checkd the https://github.com/apache/skywalking/actions/workflows/plugins-test.1.yaml and this case also failed in other PRs.
It looks like docker's issue or the network is unstable. Consider creating an issue for this problem if it always failed.

I can't check the merged PR again. but with this fail, other test cases wouldn't run. I think this is an easy fix issue. Could you take a look at the logs? It seems an image missing.

I ran the mssql-jtds-scenario locally but didn't reproduce what happened in the GitHub Action.

I fixed mssql image issue, which should be very easy to be fixed by yourself.

Roger that. Thanks!


After login, its showing error 500

i changed .htaccess, changed all model and controller file names to cap first, added my db

Note: my db name has is u30432_serp coz I am using hostinger


🐛 Bug: mochajs.org needs a CSP (Content Security Policy)

From this comment by @plroebuck w/ comments by @munter.

Closing per https://github.com/mochajs/mocha/pull/3999#issuecomment-653881172. Someone yell at me if that's wrong. 🙂


Open a PR on DefinitelyTyped?

Apparently the DefinitelyTyped definitions are really out of date. At least, that's what I keep hearing from PouchDB+Angular users. (I've never used TypeScript.)
Could you open a PR on DT to merge your stuff into theirs? Otherwise it seems like PouchDB users are perpetually confused. Unless you think there's a better solution (really I have no idea, just offering suggestions here 🙂). Thanks!

@nolanlawson, no - I have no better idea.
When I first looked at this the DT definitions were already really out of date. I put out a request for contributions (see borisyankov/DefinitelyTyped#4328), but there was little interest at that time. My first solo dev effort probably did the 80 of the 80/20 rule to get to v3.4.0, but by the point that was done you were already moving on with versions, then you were v4 and now v5!
I think the consensus is that we ignore anything pre v5 (now v5.4.4) and just get it working. I'm not sure what needs to be done to achieve that.
The other issue is that I'm on totally different projects now. I rarely if ever touch pouchdb and typescript, and since I have both of these things have changed so I'm not an up to date authority on either. I'm happy to coordinate efforts to bring pouchdb.d.ts up to date and submit a PR to DT, but someone else needs to do the lions share of the work I don't think we're at the stage where we can do that yet. The good news is that I think pouchdb.d.ts is still a better starting point that starting from scratch.
Would you be happy for me to close this as a duplicate of #14 ?

Yep, looks like a dup to me. Happy to close!
As for your work on the issue, I’m sorry that it’s been hard to keep up with us. I would love to make things easier for the TypeScript community but unfortunately it’s just a lot of work to match our pace, even if our API is relatively stable.

I'd never ask you to apologize for having such a fast-paced project like PouchDB. Please, by all means, keep doing the awesome job you're doing as fast as you can!
However, I do think what we have here is not far from what we need to be a final version for 5.x.y as a base for future typings. The code is complex right now only because of the two-face life PouchDB had up until v4. If we could ever ditch the callback side and stick with promise based api, it would be quite easy to simplify everything and make it easy to update.
Other than that, the only other high point I remember seeing on the way to polishing this was finding a way to define the map/reduce/query functions for couch, which have a special scope with special things available to it, for example the emit() function. As far as I remember, TS doesn't offer a solution to beautifully implement that without having the user do something manually.

@nolanlawson - your pace would not be an issue if I had time to spend on this. The issue is more (as @fredgalvao touched on) the impedance mismatch between a highly flexible javascript based project, and trying to specify a useful, highly typed, api for it. So really its a javascript vs typescript issue.
We had fun with supporting both the promise and callback apis, but I think we did an ok job with that. It does make the api a little more complex, but that's just the way of it.
I'll try and move things on, we'll see where we get to.


Fixing docs :event -> :event_name

Telemetry metrics structs have events specified by the :event_name atom as opposed to :event. Updating the docs to reflect that.

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


Add new rebus

Cornucopia
Associated Issue: #121

Pull Request Test Coverage Report for Build 267

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 90.686%

Totals

Change from base Build 263:
0.0%

Covered Lines:
126

Relevant Lines:
137

💛  - Coveralls

Cool, thank you 🙂


Update regex not to include color tags.

I don't have the tools to build c# so I can only hope this works. The regex was tested however.
wordRegex: https://regex101.com/r/C3pLwa/1
spaceRegex: https://regex101.com/r/y5vEk5/1/
Note: while wordRegex highlights spaces in the test, they are not actually matched.
Solution to #1

Sadly this wont work as the \K tag is not supported by the C# regex implementation. I will find a different solution.

Ok I hope it should work now.

Please do not make changes to the Owoify library. It is not mine, but i had to modify it slightly to make it work with Muck's libraries. I want to keep those changes very minimal. Is this possible to do in the text preprocessor?

I have only modified Program.cs, which I believe is the preprocessor you mentioned.

Oh I'm dumb, it's not.

The library seems to be under MIT, however I have a possible implementation.

Ok, I don't feel like doing that today and I don't know if I will ever get reminded to return so here is my idea:
Both numbers and pipes (|) are not affected, even on the ovo level.
Get all tags in the text (starts with <, no spaces, ends with >) and placing them in an array or some other container.
Replace all of them in the text with ||<index in the array>|| and pass it on to Owoify.
Loop over each index in the array and replace ||<i>|| with the tag.
To make collisions with normal chat activity less likely a number can be added inside of the double pipes.
This will make all text in <> be not affected, but I don't think its that much of a problem.
I am closing this PR as you have expressed my method to be not acceptable for what you want this library to be, which I understand.

The library seems to be under MIT, however I have a possible implementation.

Yeah. It's not about the license. More just that i don't want to edit the library really, and the only reason i've done so is because i actually had to and it would not compile as-is. I guess improvements to the owoification algorithm are welcome in that directory in this repo, but stripping TMP tags is not part of Owoify itself and i want that to be done in the mod itself.


Missing LICENSE

I see you have no LICENSE file for this project. The default is copyright.
I would suggest releasing the code under the GPL-3.0-or-later or AGPL-3.0-or-later license so that others are encouraged to contribute changes back to your project.

thanks!  added!
went with Apache 2.0 after discussions with some of a few of the model owners / streamlit (they all use apache 2.0, so in that spirit i think it makes sense).


ts代码跑起来了，但游戏变得超卡。不知道跟这个报错有木有关系

plugin.js:188 An abnormal situation has occurred: the PlayerLoop internal function has been called recursively. Please contact Customer Support with a sample project so that we can reproduce the problem and troubleshoot it.

而且在很多Android设备上会报这个错

IOS设备上能运行起来，但也超卡

而且在很多Android设备上会报这个错  IOS设备上能运行起来，但也超卡

跟到这个报错的原因了
<ReferenceError: WeakRef is not defined>
应该是这里报的

是不是Android真机环境下不支持WeakRef啊

大佬，es2021新特性啊这都是

plugin.js:188 An abnormal situation has occurred: the PlayerLoop internal function has been called recursively. Please contact Customer Support with a sample project so that we can reproduce the problem and troubleshoot it.

巨卡的问题发现原因了，webgl不能设置targetFrame，一设置就变卡顿

现在就剩es2021新特性的问题了大佬，orz

你在群里加下我QQ，这个事情在和微信一起处理


Removes null check on body to allow tombstone messages

Allow the property 'Body' of the class 'TransportMessage' to be null. This is needed to support tombstones/compaction (https://kafka.apache.org/documentation/#compaction).

ah, that was simple 😁 thanks!

it's out in Topos (+ Topos.*) 0.0.57


Munmap

forked from #51

This change is

@nh2 I've rebased this one and it should be ready for a review. It's more or less trivial one


Windows Timer Resolution always increased to 1ms while code.exe is running

Issue Type: Performance Issue
Launching code.exe always sets platform time resolution to ~1ms (instead of the default ~10-15ms), which stays increased until the vscode window is closed. Apparently, this behaviour wastes power and is not recommended by Microsoft.
For reference, a similar issue is known to affect Visual Studio (not Code) WPF, as far as I am aware.
Method:

With and without extensions (--disable-extensions)
2 Windows PCs: w10 x64 Home (this) and another Pro
Timer resolution checked using SysInternals clockres64.exe
"powercfg -energy duration 5" also identified code.exe as the source of the resolution increase
Balanced power cfg mode, wall power. Haven't tried laptop on battery or other power cfg modes.

VS Code version: Code 1.40.2 (f359dd69833dd8800b54d458f6d37ab7c78df520, 2019-11-25T14:54:45.096Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (12 x 3696)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_offsurface_control: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.94GB (23.13GB free)

Process Argv

Screen Reader
no

VM
0%

Process Info
CPU %	Mem MB	   PID	Process
    0	    79	 13536	code main
    0	   158	  1668	   window (t.py - 201911 - Visual Studio Code)
    0	    36	 12876	     searchService
    0	   101	 13660	     extensionHost
    0	    31	 13548	       electron_node bundle.js
    0	    12	 15072	     watcherService
    0	    11	 13456	       console-window-host (Windows internal process)
    1	   109	  4516	   gpu-process
    1	    68	  6456	   window (Issue Reporter)
    0	    71	 13020	   shared-process

Workspace Info
|  Window (t.py - 201911 - Visual Studio Code)
|    Folder (201911): 165 files
|      File types: json(138) py(7) pyc(4) bak(3)
|      Conf files: settings.json(1);

Extensions (18)

Extension
Author (truncated)
Version

vscode-json
and
1.5.0

vscode-django
bat
0.19.0

django-html
bib
1.3.0

django-snippets
bib
1.1.1

vscode-eslint
dba
1.9.1

python-extension-pack
don
1.6.0

MagicPython
mag
1.1.0

vscode-docker
ms-
0.9.0

mssql
ms-
1.7.1

pyright
ms-
1.1.7

anaconda-extension-pack
ms-
1.0.1

python
ms-
2019.11.50794

vscode-typescript-tslint-plugin
ms-
1.2.3

vscode-json-editor
nic
0.2.3

quicktype
qui
12.0.46

vscode-yaml
red
0.6.1

vscodeintellicode
Vis
1.2.0

jinja
who
0.0.8

Thanks for the report, this is due to using the backgroundThrottling option from electron. At the moment I would say this is as designed but we are looking to remove this, so will leave this issue open for updates.
/cc @bpasero FYI

We no longer disable backgroundThrottling, can you confirm if this is still an issue with latest stable ?


Add include to README

Update README to add forgotten include
Credits @yilmazo https://github.com/wercker/stern/pull/139/files

/assign @superbrothers


Added Yellow Neumorphism Login and Signup templates

Added Yellow Neumorphism Login and Signup templates.
I have attached a preview.

1-Add your projectfolder into folder pages
2-Project folder structure
i-index.html
ii-js folder
iii-css folder
iv-image
v-ss of your work
3-Add your userdata into Data/pages.json folder
        "id": 1,
        "name": "Your clone Page Name",
        "description" : "This is the login page of this this ...",
        "img": "",
        "githuburl": "",
        "liveurl": "",
        "userData": {
            "nameofcreator": "",
            "githuburl": "",
            "linkedinurl": "",
            "portfolio": "",
            "email": "",
            "twitter": ""
        }
    }

4-Create a Pr
5- Star the repo


Equivalency with MITRE mitigations

Hello,
Is the set of NIST controls mitigating a given technique/sub technique to be understood as equivalent to the set of MITRE mitigations mitigating the same technique/sub technique?
I have so far assumed that the set of MITRE mitigations mitigating a given technique/sub technique when implemented will effectively mitigate it as best possible. So my question is really about figuring out if the same is true if one implements the set of NIST controls instead.
Have you considered mapping control to control instead which would help somewhat with this question?
Many thanks in advance,
Slim

Slim,
Thank you for submitting this issue. I’m not sure that I understand your questions, though. Please let us know if this answer doesn’t address your inquiry.
The mappings are between NIST controls and ATT&CK techniques, not mitigations. We use mitigations as our starting point when developing the mappings as they help us select techniques and then understand how a given control might apply, but we do not provide mappings of ATT&CK mitigations.
Techniques may apply to more than one mitigation. Therefore, a particular subset of controls mapped to techniques addressed by a mitigation would need to be selected to identify those specific controls.
Thank you,
Tiffany Bergeron


Fileformats: Some v5 footprints not working

Current Behaviour
KMR211NGLFS.kicad_mod
SOT-23-5_RIT.kicad_mod
not working
Expected Behaviour
Loads and converts to v6
Possible Solution
Add to test dir and check what the problem is.
Version
.
Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Fixed in #748


thumbnails not showing correct aspect ratio

Thumbnails are shown vertically stretched since 3D Warehouse changed embed sizes from 400×300 to 580×326.
The 3D Warehouse embed code includes size parameters in the url which should match the size of the iframe. This works fine for the 3D view, because it can display the viewport in any size. However, for the thumbnail view, the thumbnail is stretched into the given size, breaking the natural aspect ratio.

Updated onebox dimensions to 580×326 which is still narrower than the discourse forum threads (690px).
This will break again when 3D Warehouse changes the aspect ratio again.
commit bec0a6e8329d1d27f66270f08fd66f705ebc8d28

This was fixed by d5a451a4771f75d88a6482df4e6099da9636a2c9


fix(add ../../having-your-say-guide/ to href): add ../../having-your-say-guide/ to href

add ../../having-your-say-guide/ to href

:tada: This PR is included in version 2.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


add animation duration as prop

1s is too slow :) … this makes it just another property

Definitely. Wasn’t sure if you supported it.

On Apr 23, 2018, at 11:48, Steven<EMAIL_ADDRESS>wrote:
@styfle commented on this pull request.
In src/circle.tsx:

 const strokeDashoffset = getOffset(progress);

const transition = animate ? 'stroke-dashoffset 1s ease-out' : null;

const transition = animate ? 'stroke-dashoffset ' + animationDuration + ' ease-out' : null;
Should this use ES6 templates instead?

const transition = animate ? stroke-dashoffset ${animationDuration} ease-out : null;
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Let me know if that test looks okay. Wrote it before takeoff with not enough coffee :)

Tests looks good to me, but the build is failing atm... not sure why /:

I think I see why.

Check the travis details. Apparently the tests are broken.

Right. I’d love to test locally but ts-react-toolbox test is erroring.

On Apr 27, 2018, at 9:29 AM, Vilva<EMAIL_ADDRESS>wrote:
Check the travis details. Apparently the tests are broken.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/zzarcon/react-circle/pull/14#issuecomment-384969980, or mute the thread https://github.com/notifications/unsubscribe-auth/AABXzPhprB_kzSqJZKWm8MHm5r6kbb5_ks5tsx0ngaJpZM4TgFJI.

@vilvadot @zzarcon OK, got the test suite running.  I've confirmed the tests are failing locally.
Please teach me to fish: how do I update the snapshot? jest --updateSnapshot doesn't work out of the box for me because the test is written in typescript. I'm missing something.
From yarn run test, my options are
Watch Usage
 › Press a to run all tests.
 › Press f to run only failed tests.
 › Press p to filter by a filename regex pattern.
 › Press t to filter by a test name regex pattern.
 › Press q to quit watch mode.
 › Press Enter to trigger a test run.

@ericdfields I think you can just run $ yarn test latter press a to run all tests and whenever the snapshot fails, you can press u from the ci, that will update the snapshots to the new version 👍

All set! Thanks for the help.

Looks good to me @zzarcon

Awesome stuff @ericdfields thanks for taking your time and adding the test 🙌


Performance issues with making links unfindable

Disabling findable links, it takes up the majority of the time rendering pages. It seems to me that the DOM manipulation is a bit too much. Below is a screenshot of what I got when I printed the time taken for each step of the renderer.

For now, I'm disabling the function, since we already stop users from Ctrl+F 'ing in other ways, but it would be nice to fix this eventually.

I tried a few things:

Creating a new DOM element and running all the changes on it, then loading that into the frame element didn't have a significant effect.
Setting a timeout to run disableFindableLinks after the page loads just means the links aren't clickable (as the event loop is taken up by the processing).
Breaking up each step in the querySelector into a separate timeouts/async calls makes it take longer (since I think the dom needs to update every time), and before moving onto the next page those events have to finish.function disableFindableLinks(frame) {

    // Disable CTRL + F by splitting up link text into different div
    frame.querySelectorAll("a").forEach(function(a) {

        setTimeout(() => {
            let iter = document.createNodeIterator(a, NodeFilter.SHOW_TEXT);
            let textNode;

            while (textNode = iter.nextNode()) {
                let replacementNode = document.createElement('div');
                replacementNode.innerHTML = '
' + textNode.textContent.split('').map(function(character) {
                    return '
' + character.replace(/\s/g, ' ') + '
'
                }).join('') + '
'
                textNode.parentNode.insertBefore(replacementNode.firstChild, textNode);
                textNode.parentNode.removeChild(textNode);
            }
        }, 0);
    });
}

Perhaps we can do 3, but keep track of timeouts and cancel them when we click a new event?