Temperature on AudioCreateTranscriptionRequest is not working.

When you call the AudioCreateTranscriptionRequest and set the temperature param, thats give a float error on a JSON
        Dim FilenameMinArquivo = "Audio.mp3"
        Dim Request As New AudioCreateTranscriptionRequest With {
                                                        .FileName = FilenameMinArquivo,
                                                        .File = sampleFile,
                                                        .Temperature = 0.2,
                                                        .Model = Models.WhisperV1,
                                                        .ResponseFormat = StaticValues.AudioStatics.ResponseFormat.Srt}

        Dim GerarResult = Gpt3.Audio.CreateTranscription(Request)

        While Not GerarResult.IsCompleted
            EsperaMS(16)
        End While

        If GerarResult.Result.Successful Then

            If Convertido Then
                File.Delete(Filename)
            End If

            If GerarResult.Result.Text.StartsWith("{") Then
                Throw New Exception(GerarResult.Result.Text)
            End If

            Return GerarResult.Result.Text

        Else
            Throw New Exception(GerarResult.Result.Error.Message)
        End If

The expected is a diferent transcription
Desktop (please complete the following information):

OS: Windows 10
Language VB.NET

Hi, I don't have knowledge of VB, but the code works fine with C#. I asked ChatGPT about your issue and shared the answer below, which may help you. Feel free to let me know if this doesn't solve your issue.
User
what is the value type of Temperature here?
 Dim FilenameMinArquivo = "Audio.mp3"
        Dim Request As New AudioCreateTranscriptionRequest With {
                                                        .FileName = FilenameMinArquivo,
                                                        .File = sampleFile,
                                                        .Temperature = 0.2,
                                                        .Model = Models.WhisperV1,
                                                        .ResponseFormat = StaticValues.AudioStatics.ResponseFormat.Srt}

        Dim GerarResult = Gpt3.Audio.CreateTranscription(Request)

        While Not GerarResult.IsCompleted
            EsperaMS(16)
        End While

        If GerarResult.Result.Successful Then

            If Convertido Then
                File.Delete(Filename)
            End If

            If GerarResult.Result.Text.StartsWith("{") Then
                Throw New Exception(GerarResult.Result.Text)
            End If

            Return GerarResult.Result.Text

        Else
            Throw New Exception(GerarResult.Result.Error.Message)
        End If

ChatGPT
In the provided code snippet, the Temperature property is being used as part of an AudioCreateTranscriptionRequest object. The value type of Temperature here is Double. This is inferred from the assignment of 0.2 to the Temperature property. In .NET (and VB.NET, as this code appears to be), decimal literals without any suffix are treated as Double by default, which is a floating-point numeric type capable of holding both very small and very large numbers.
User
how can I make it float
ChatGPT
To explicitly make the Temperature property a Float in VB.NET, you would typically use the F or f suffix on the numeric literal to denote a Single (the VB.NET term for a floating-point value that is less precise and smaller in range than a Double). However, VB.NET does not use the F or f suffix like C# does. Instead, VB.NET uses type conversion functions or specifies the type directly if necessary.
In your case, since VB.NET does not directly support a suffix to make literals a Single, you would ensure that the Temperature property itself is declared to accept Single values, or you would explicitly convert the value to Single when assigning it, like so:
vb.net
Copy code
.Temperature = CSng(0.2)
CSng is a VB.NET function that converts an expression to a Single. This ensures that the Temperature is explicitly treated as a Float (or Single in VB.NET terminology). However, it's important to note that this conversion should match the expected type of the Temperature property in your AudioCreateTranscriptionRequest class. If the property is defined to accept Double, you might need to adjust the class definition to accept Single instead, if you specifically need to use Single for some reason.
Here's how you might adjust the class definition, assuming you have access and can change it:
Public Class AudioCreateTranscriptionRequest
    Public Property FileName As String
    Public Property File As Object ' Assuming sampleFile is of an object type
    Public Property Temperature As Single ' Changed from Double to Single
    Public Property Model As Models
    Public Property ResponseFormat As StaticValues.AudioStatics.ResponseFormat
End Class

Changing the property type to Single will enforce that Temperature is always a float when instances of AudioCreateTranscriptionRequest are created or manipulated.

I'm using the nuget lib, because of this i dont have the acess to change the property type, but it apears "single?" when i put the mouse over. In VB.NET the conversions works automatically, in this case, wathever the type of the number set in .temperature =, its change to single, anyway i tried to make the "CSng(0.2)", and it not worked.


Dev

In this PR, I did the following:

Created a new Rails API app with the PostgreSQL database
Created model and migration files
Added greeting route that returns data in JSON
Configured app to allow CORS operations from all origins

Just to let you know, we are having some server issues in the dashboard when it comes to reviewing code, but this does not mean your project is not approved. As soon as the server comes back your project will be approved, please be patient. Other than that, congratulations!

Thanks for letting me know about this, I was a little worried because I'm
unable to submit the project to be marked as completed
On Sat, Jul 2, 2022, 22:39 Isaí Céspedes Sánchez @.***>
wrote:

Just to let you know, we are having some server issues in the dashboard
when it comes to reviewing code, but this does not mean your project is not
approved. As soon as the server comes back your project will be approved,
please be patient. Other than that, congratulations!
—
Reply to this email directly, view it on GitHub
https://github.com/afizsavage/hello-rails-back-end/pull/6#issuecomment-1172973599,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALVF2ZZ2AIQNFVCWLTIWJ3LVSDALJANCNFSM52PTFAHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks for letting me know about this, I was a little worried because I'm unable to submit the project to be marked as completed
…
On Sat, Jul 2, 2022, 22:39 Isaí Céspedes Sánchez @.> wrote: Just to let you know, we are having some server issues in the dashboard when it comes to reviewing code, but this does not mean your project is not approved. As soon as the server comes back your project will be approved, please be patient. Other than that, congratulations! — Reply to this email directly, view it on GitHub <#6 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALVF2ZZ2AIQNFVCWLTIWJ3LVSDALJANCNFSM52PTFAHA . You are receiving this because you were mentioned.Message ID: @.>

Don't worry, you're welcome. If after the server is back you still cannot submit the project as completed, make sure to ask for a new review but let the new reviewer know about this situation, so the new reviewer can approve your code with no more issues. Hopefully, it is not going to be necessary to do this, but just in case.


Remove dependency on ChainHandle in cosmos-client-components crate

For the initial development of Hermes SDK, we reuse the existing ChainHandle implementation in Hermes v1 in order to speed up the prototyping. With the new code base maturing, it is now better to reimplement the corresponding methods inside Hermes SDK, so that we can eventually remove the dependency on the Hermes v1 code base.
For the re-implementation, we would identify all uses of with_blocking_chain_handle in the cosmos-client-components crate. We would then locate the corresponding CosmosSdkChain ChainHandle implementation at ibc_relayer::chain::cosmos, and copy over the implementation.
The majority of implementation should be possible by including dependencies such as CanQueryAbci, HasGrpcAddress, and HasRpcClient. Other than that, the main difference for the new implementation is that we use async functions, and therefore there is no need to use block_on to call other async functions. For reference, one can look at the re-implementation that we have already done for components traits such as ChainStatusQuerier and ClientStateBytesQuerier.
Following is a list of component implementations that use with_blocking_chain_handle in the implementation:

[ ] ChannelHandshakePayloadBuilder
[ ] CreateClientPayloadBuilder
[ ] UpdateClientPayloadBuilder
[ ] ConnectionHandshakeMessageBuilder
[ ] ConnectionHandshakePayloadBuilder
[ ] AckPacketPayloadBuilder
[ ] ReceivePacketPayloadBuilder
[ ] TimeoutUnorderedPacketPayloadBuilder
[ ] CounterpartyChainIdQuerier
[ ] ConnectionEndQuerier
[ ] ConsensusStateHeightQuerier
[ ] ConsensusStateHeightsQuerier
[ ] ConsensusStateQuerier
[ ] ReceivedPacketQuerier
[ ] WriteAckQuerier

The re-implementation should be done in small steps, with each PR only focus on one or few of the re-implementations.

awesome! Thank you for creating this issue @soareschen, lemme dive into it.

hi @soareschen I'm doing the first PR, if I understand correctly, the CGP's mentioning 3 kinds of contexts: Chain context, Relayer context and Tx context, am I right?
Besides that, I want to ask how to verify my changes, I run cargo test and here is the error output:

so the test is not functional testing, am I right? It means I will need to spawn a local interchain to check it.

CGP is a programming technique for defining modular contexts. There are several abstract contexts in Hermes SDK, such as Relay, Chain, Runtime, Bootstrap, Logging, Encoding, etc. For each abstract context, there are concrete implementations of the context, such as CosmosRelay, CosmosChain, HermesRuntime, etc.
For the integration tests, we make use of chain executable such as gaiad and simd to test that the relayer is working correctly with the real chains. You can install the chain executables in any way, and expose them in the $PATH environment variable. The standard way for us to load the chain executable is using Nix Flakes.
You can refer to the commands used on the CI to see how the integration tests can be run locally. For example, the Cosmos integration tests can be run using:
nix shell .#cargo-nextest .#protobuf .#gaia .#celestia-app .#ibc-go-v8-simapp -c \
    cargo nextest run -p hermes-cosmos-integration-tests \
    --test-threads=2

Note that you can also run nix shell .#package-name to include the chain executable into your shell. For example, nix shell .#gaia would include gaiad in the shell environment. After that, you can run commands such as cargo test -p hermes-cosmos-integration-tests without having to specify the Nix packages every time.

@soareschen Thank you for your detailed explanation, I will follow your instructions.

hi @soareschen Im trying to use the command in github workflow file to run tests and I faced this error:

I thought my change was made it failed and I tried to switch into the main branch, delete the flake.lock file, but still failed. Can you please assist further?

After upgrading to the latest nix version, the test command is getting build but then I got the error dial tcp: lookup proxy.golang.org: i/o timeout. The solution is export the env var GOPROXY=direct fixed the issue.
And very soon after that, it failed just because the connection refused while that port was available on my machine.

Changing from localhost to <IP_ADDRESS> makes it worked great.
And the problem has been resolved. Anw the experience was interesting for me personally.
Just curious @soareschen have you faced these problems before?
I will do some more updates and create PRs soon.

hi @soareschen I saw a lot of implementations for a while, sorry for delay because of some personal reasons and now I think I'm good to move on. I just realized that there are only a few dependencies left on ChainHandle, do you want me to continue with them? Or would you like to give me another GFI?

For ChannelHandshakePayloadBuilder I saw it to be replaced by ChannelOpenTryPayloadBuilder, I guess you may have a plan for it, so I won't touch.
for CreateClientPayloadBuilder and UpdateClientPayloadBuilder I saw you created 2 new issues, can you share the details what expectation for those? I may help.
and below are a few remaining components that I see:

[ ] AckPacketPayloadBuilder
[ ] ReceivePacketPayloadBuilder
[ ] TimeoutUnorderedPacketPayloadBuilder
[ ] CounterpartyChainIdQuerier
[ ] ReceivedPacketQuerier
[ ] WriteAckQuerier

I may try with the component has suffix Querier

Hey @thaodt, you are right that we are doing quick refactoring on the payload builders to generalize the implementation to work on non-Cosmos chains. We won't touch the querier methods just yet, so you can give them a try if you like.

While I'm trying to remove ChainHandle dependency on WriteAckQuerier, I noticed this snippet:
https://github.com/informalsystems/hermes-sdk/blob/3bb20a0dc3ca0e8116b60ead284fb79091369783/crates/cosmos/cosmos-chain-components/src/impls/queries/write_ack_event.rs#L45-L63
the query_write_ack_events fn belongs to the link part in relayer v1. It receives a chain_handle as a parameter, I suppose I need to move this logic also or there is a way to achieve the same thing. Could you please shed some light on this @soareschen ? Thanks.

Yes, in this case you need to extract the relevant logic from Hermes v1 functions, such as query_packet_events and query_packets_from_block. The new implementation do not need to be as general as the v1 functions. For example, it only need to handle the case of Qualified::Equal, so the other branches do not need to be copied.
Ultimately, the actual parameters you need are values such as rpc_client: &HttpClient and rpc_address: &Url, which you can get from HasRpcClient.

Yes, in this case you need to extract the relevant logic from Hermes v1 functions, such as query_packet_events and query_packets_from_block. The new implementation do not need to be as general as the v1 functions. For example, it only need to handle the case of Qualified::Equal, so the other branches do not need to be copied.
Ultimately, the actual parameters you need are values such as rpc_client: &HttpClient and rpc_address: &Url, which you can get from HasRpcClient.

Understood. Im on it.


Include the unknown version number in Error::UnknownVersion

r? @philipc

Coverage decreased (-94.04%) to 0.0% when pulling aa0a0936cdfe0b4368771b19a96294b353a36a27 on fitzgen:unknown-version-includes-the-unknown-version into de7eeff87fa21264e41f2b2e0b82f45f88851b2d on gimli-rs:master.

Thanks for review!


Support record headers

This PR (de)serialize headers on Record, according with Kafka
protocol the Record's headers are lists supporting multiple entries of
key/value structure.
The headers before defined as <<0>> were replaced by [] which
matches with protocol definition.

[x]  add record's headers
[x] deal with null header's keys and values
[x]  add tests for message (de)serialization
[x] fix credo and dialyzer findinds

I will the PR is in WIP I just want to bring some early feedback to get
exactly that kind of input.
The check-list I put on PR if I am not too wrong is covering the serde mag
tests
Thx for your feedback
On Sat, 6 Jun 2020 at 19:30 Dan Swain<EMAIL_ADDRESS>wrote:

@dantswain commented on this pull request.
Thanks for this! Could you please add some message serde test cases for
both serialization and deserialization?  The client tests are not run by
Travis-ci but the functional ones are.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dantswain/kayrock/pull/8#pullrequestreview-425773028,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAE5LEQT7UALDZN7BQDMNVLRVK7PLANCNFSM4NV7IULA
.

--
Rogério Ramos da Silva
skype: habutre<EMAIL_ADDRESS>"
Fé inabalável é somente aquela que pode encarar a razão face-a-face em
qualquer época da Humanidade".
♬ Exemplo de Humildade, Tião Carreiro e Pardinho
P Antes de imprimir pense em seu compromisso com o Meio Ambiente

@dantswain On Kafka Scala client when the header key is null they thrown an exception on produce record code, I was thinking would make sense ignore that header and go ahead to publish the record.
What do you think?

Hi @habutre sorry I didn't back to you sooner.  Generally I would not like to ignore any error conditions.  Is there any valid use case where the header's key would be nil?

Hi @habutre sorry I didn't back to you sooner. Generally I would not like to ignore any error conditions. Is there any valid use case where the header's key would be nil?

The only case I can envisioning is when someone by mistake tries to add a header without a key. I brought this from the Scala Kafka client which I believe is one of the closest compliant code for Kafka.
if (headerKey == null)
    throw new IllegalArgumentException("Invalid null header key found in headers");

I didn't realize we have runtime exceptions in the code. So I follow the same approach though, raise an error in that case. Is it fine?

Generally in Elixir we would probably just start with a match error - e.g.,
def handle_value(x) when not is_nil(x) do
  # code for the happy path
end

which would throw a MatchError if x is nil.  Throwing a custom exception has a couple benefits:

If anyone wants to catch the error, they can catch that specific error (not super common in Erlang/Elixir)
You can attach a useful error message to it to help other developers understand what went wrong (a little more common in Erlang/Elxir in my experience)

However it adds complexity, so it's a bit of a tradeoff.  The idiomatic thing, I think, is to rely on things like MatchError until there is a compelling reason to add a specific error message.
Another thing we can do is, when we go to integrate this into KafkaEx, perform some validation of the message before attempting to publish it.  I.e., publish could return {:error, %InvalidMessage{reason: :invalid_headers}} or something like that.

@dantswain while I am waiting for you review here, make sense to start some draft implementation on KafkaEx?


Certain commands not working

Just a quick question, is this project still maintained?  Can't get certain commands to work.  Perhaps someone could give a bit of insight into whether or not it's worth pursuing.
Thank you,
John

Hi John! I haven't been using this program for a while (I wrote it a long time ago), so I never noticed that it stopped working. I am quite busy at the moment, so I won't have time to fix it any time soon, unfortunately. Maybe I will find some time eventually and fix whatever needs fixing, but I can't promise anything.

You could check out the website of API this is based on. In the past, they had some recommendations for libraries that supported the API, maybe there is something there for you
I'd be happy to review any PRs that propose fixed!

Hey Fritz.
Thanks for the reply, much appreciated.  Ok cool, will do that and see what I can come up with.
Have a good one.
John


Fixed #32713, Fixed CVE-2021-XXXXX -- Prevented newlines and tabs from being accepted in URLValidator on Python 3.9.5+.

In Python 3.9.5+ urllib.parse() automatically removes ASCII newlines and tabs from URLs [1, 2]. Unfortunately it created an issue in the URLValidator. URLValidator uses urllib.urlsplit() and urllib.urlunsplit() for creating a URL variant with punycode which no longer contains newlines and tabs in Python 3.9.5+. As a consequence, the regular expression matched the URL (without unsafe characters) and the source value (with unsafe characters) was considered valid.
[1] https://bugs.python.org/issue43882
[2] https://github.com/python/cpython/commit/76cd81d60310d65d01f9d7b48a8985d8ab89c8b4

buildbot, test on selenium

buildbot, test on selenium.

General :heavy_check_mark:
Would it make sense to link to the Python ticket/pull request that added that change? With that, people are more easily able to verify if they are affected by the Python change. I'm thinking about downstream providers who may or may not backport individual commits for Python.

Thanks both :+1: I pushed edits to release notes.

@apollo13 Thanks for checking.

What we might be able to do in the future is to apply the same fix that Python has to our form/model clean (although that might not work depending on when validation runs) methods.

We already use urllib.urlsplit() and urllib.urlunsplit() in the URLField form field, so on Python 3.9.5+ it silently removes newlines and tabs, see:
https://github.com/django/django/blob/96f55ccf798c7592a1203f798a4dffaf173a9263/django/forms/fields.py#L672-L698
Maybe we could add note to the release notes :thinking: , e.g.
``URLField`` form field which use ``URLValidator`` silently removes newlines
and tabs on Python 3.9.5+, so the possibility of newlines entering your data
only existed if you are using these validators outside of the form fields.

I added a note about the URLField form field.
@adamchainz Thanks for checking :+1:


improvement for image editor (event, ratio change)

Jodit Version:  3.16.5
Browser:   Chrome & Firefox
OS:   Windows &Linux
Is React App: False
Code
for event afterImageEditor
var editor = new Jodit('#editor', {
	imageDefaultWidth: 600,
	events: {
		afterImageEditor: function(ev){ //this don't launch
			console.log(ev);
  	      },
		afterInsertImage: function(ev){
			Jodit.modules.resize_small_img(ev, "editor");
		},
	}
});

Jodit.modules.resize_small_img = function (img, jodit) {
	img.onload = function(){//wait img to load
		if (img.width >= img.naturalWidth){ //resize img if is smaller
			img.width = img.naturalWidth;
			img.height = img.naturalHeight;
		}
		jodit = window[jodit];
		jodit.synchronizeValues(); //sync to jodit
	}
}

Expected behavior:
afterImageEditor event launch after resize or crop image
afterInsertImage normally launch
Actual behavior:
afterImageEditor event do not launch after resize or crop image
main goal to this :

when picture is smaller than imageDefaultWidth,
we prefer to set the real size of picture
when ratio change (with crop function of image editor),
update ratio to image

update about this request :
in image properties,
when i clic on input  : imageWidth, imageHeight
function changeSizes run and change value to keep ratio,
then is it possible to trigger changeSizes function after crop ?
also if picture is smaller than imageDefaultWidth, then set to original value.


Collect paginated timemaps

Some archives have pagination in place where all the pages needs to be collected to prepare full TimeMap.

This seems like a pretty major bug. Do you have a list of which archives are currently supplying paginated TimeMaps? This might be something to include in the archives.json. I think LANL has this archive metadata in their more verbose archives listing.

Yes, LANL has paging information available in their Archive registry. For IA it says, "timemaps are paged chronologically forward" which I see the response being sorted in chronologically forward order, but I don't see any paging there even when response has 50K+ Mementos. So, I am relaxed that it is not affecting the overall number of Mementos that we are aggregating.
As far as inclusion of the sort order and paging information in the archives list is concerned, it can be helpful in some optimization tricks, but otherwise I don't see much utility of it. This will increase the overhead of each archive entry signature and will become complex and confusing for users who will be adding custom archives list. Additionally, if an archive silently changes the behavior, detecting such changes and fixing them timely will be difficult.
The current implementation is optimized for "chronologically forward" order which is the default behavior of the OpenWayback and many big archives return their responses that way, but it can even handle unsorted responses (because sorting is not enforced by the RFC).
As far as paging is concerned, one approach to implement that is to look for rel="timemap" with from and until attributes while parsing a TimeMap and push the discovered URI into a session set to keep track of previously discovered pages. If the newly discovered page is not already requested, a new go routine can be instantiated to fetch that. This approach will even handle Index TimeMaps. To test the functionality, LANL's aggregators (DIY and WDI) can be used as source archives.

I started dealing with pages timemaps about 18 months ago.  Both the Internet Archive and LANL aggregator conform to RFC 7089 § 5.1.1 Paging Timemaps (https://tools.ietf.org/html/rfc7089#section-5.1.1).  Page size for both is 1,000 mementos.
Recommendations:

Memgator should figure out how implement paging or risk timing out trying to build one huge timemap.  For example on 2014-10-12, both ga.js and urchin.js (part of google analytics) had over 100,000 mementos each with a combined timemap size of ~1.2MB.  (I have encountered an image with over 200,000 mementos, but don't recall the URI-R right now).  The elapsed time to retrieve all 110 timemap pages was over 9 minutes.

Notes:

Although both IA and LANL ostensibly order by Memento-Datetime, I did encounter instances where this order was violated.
In the case where there are multiple mementos for the same Memento-Datetime, they can be split across multiple pages.

Thanks for the feedback @galsondor. Not having pagination simplifies a lot of things in usual client applications, that's why I wanted to return the complete response as the primary focus of the tool, especially, when it is encouraged to use it locally. Additionally, without local caching (in the form of marshaled object), pagination is a more costly business for the server. Pagination, if ever implemented would have a different approach in it which will be guided by the client. For example, the client may ask all the Mementos in a given time range. This approach will allow the MemGator server to identify when to stop asking for more pages from the upstream in some cases.

Page size for both is 1,000 mementos.

I don't find it to be the case for IA now.
$ curl -s "http://web.archive.org/web/timemap/link/http://www.google.com/" | wc -l
50070

I also tried to grep for TimeMap pagination links in the response, but they are not present.

@ibnesayeed Did a quick search of my research data cache.  Only the LANL aggregator returned paged timemaps during the Oct 2014 run.  Since then a new LANL aggregator has been implemented; it returns indexed timemaps vice paged timemaps.
Note that 'ga.js' is now 149 pages.
$ curl 'http://labs.mementoweb.org/timemap/link/http://www.google-analytics.com/ga.js' \
  | fgrep 'rel="timemap"' | wc -l
149

The first curl -I attempt returned a 503 Gateway timeout, probably due to the amount of data accumulated before the index timemap could be constructed.  So, it is easy to infer that collecting paged or index timemaps will create similar timing challenges for memgator.


create an addHeaders() method if getConfig is being deprecated?

Description
Many apis require an Authorization header or similar credentials to function properly. Guzzle seems to support adding headers when a client is created, then has an ability to supply headers in options when a request is actually made. The problem is that when authorization is added when creating the client, supplying headers in a request over-writes any values that were in the client headers.  The Authorization header goes bye-bye!
It therefore, might be useful to have an ability to specify 'additional' headers when making a request as opposed to replacing headers when 'headers' is included in a request's options.
Example
I discovered this when it was necessary to add a Content-type header in a specific post using a client that was created from another method which added in the Authorization header:
function getClient() {
    return new Client([
        'base_uri' => 'https://api.somehost.com/v1/',
        'headers' => [
            'Authorization' => 'Bearer ' . env('MY_API_TOKEN')
        ]
    ]);
}

function getData($requestJson) {
    $client = $this->getClient();
    $responseStream = $client->post(
            sprintf("data/%s/details.json", env("DATA_SOURCE_ID")),
            [
                'headers' => [ // including this negates the client's Authorization header
                    'Content-Type' => 'application/json',
                    'Accept' => 'application/json'
                ],
                'body' => $requestJson
            ]
        );
    return $responseStream->getBody()->getContents();
}

Additional context
My first thought was to pull the existing headers from the client and doing an array merge. But there did not seem to be a 'getHeaders()' method and 'getConfig("headers")' appears to be subject to deprecation.
Perhaps another way to go about this would be to always do an array merge of the headers whenever a request is being made.

Adding a getHeaders() method to the Client class will be useful (especially as getConfig() is being depreciated).
I am happy to implement this.


Feature/55 settings options

Fixes #55

Current coverage is 0.00% (diff: 100%)

Merging #57 into feature/multiple_card_type_support will not change coverage

@@           feature/multiple_card_type_support   #57   diff @@
===============================================================
  Files                                       1     1
  Lines                                      21    21
  Methods                                     0     0
  Messages                                    0     0
  Branches                                    0     0
===============================================================
  Hits                                        0     0
  Misses                                     21    21
  Partials                                    0     0

Powered by Codecov. Last update 5373efc...6137aea


Added AWS Cloudformation template to create doa stack

Following changes -

Added cloudformation template to allow provisioning devops academy stack.
Update Module 7 tomcat cloudformation templaets to include region map for AMIs.

LGTM.


Update README.md

Initial Commit for GmaerSoft42's Software (WareSoft) repository.

PR #44 opened just for a fork for @GmaerSoft42


The cache is not cleared after golang debugging.

code-server version:1.1119-vsc1.33.1
OS Version: linux

Description
When you start debugging dalve with golang extension, a folder /home/user/.cache/go-build/..... is created.
After end debugging the folder is not cleared.

Requesting further information. Failure to reply means it was fixed in your end and I'll close this automatically after 3 days.


Self-closing component tags are not properly supported

Example:
<component [input]="context"/><component2 [input]="context"/>
Renders as:
<component [input]="context"><component2 [input]="context"></component2></component>
When it should render as:
<component [input]="context"></component><component2 [input]="context"></component2>
They both get rendered, but one becomes the child of the other

Hm, I can probably see about adding support for self-closing components.
The reason it doesn't work right now as that the default selector hook parser processes the content after it has already been rendered as HTML and picks out the component tags from there. Unfortunately, because self-closing tags are not valid HTML and rather a trick of Angular templates, they are rendered all jumbled when directly output in modern browsers, which is what you're seeing.
However, the selector hook parsers also has a regex-based parsing mode that can find non-HTML-constructs and is already utilized if you use {enclosing: false} in your SelectorHookParserConfig.
I will look into expanding that option to also work with self-closing tags when set to false.

Hey there!
I've just released v3.1.0 of the library which now supports self-closing tags (configured via the new allowSelfClosing option in each SelectorHookParserConfig). As its true by default, all you need to do is to enable regex-based selector parsing for your components.
An example could look like so:
  const parsers: HookParserEntry[] = [{
    component: TestComponent,
    parseWithRegex: true
  }];

  const content = `

Hello from the the content string!

    <app-test [message]="'This is the first comp!'"/>
    <app-test [message]="'This is the second comp!'"/>

Text after component

  `;

<ngx-dynamic-hooks [parsers]="parsers" [content]="content"></ngx-dynamic-hooks>


[BR-2] SSH session to auto-extend the breakpoint timer

At the moment, the Breakpoint timer can expire even if there is an active SSH connection.
In the same way we run keepalives to keep the connection open, we can periodically extend the timer when at least an SSH session is active.
Here is where we spawn a goroutine to send the keepalives.
https://github.com/namespacelabs/breakpoint/blob/main/pkg/sshd/sshd.go#L81-L82
Similarly, we can have another goroutine periodically extending the waiter timer
BR-2

Hey I would like to look into this issue. Thank you!

Hey @AvineshTripathi! Thanks for your interest! I assigned this issue to you. Let us know if you need any help!

Hey @gmichelo being in the waiter func how do I know if the ssh session is still on . I know keepAlive is what keeps the ssh session up for a user now in order to communicate if ssh session is started or ended to the waiter func do I need to send a siglnal via chan based on ctx.Done present in the keepAlive and take actions on it in waiter.
Also when you said goroutine for waiter on what basis do we want that goroutine to return.
P.S. I am facing confusion regarding how components talk/connected to each other


fix: repository governance

This PR was automatically created by the AVM grept governance tool

Supersceeded by #49


Add default component resource config

@nwangtw in the future are we planning on having the non-default version of all the variables?  If that is the case I am not sure that is a good idea.  We will have something like TOPOLOGY_COMPONENT_DEFAULT_CPU as well as TOPOLOGY_COMPONENT_CPU.  Might be an overkill.  Can we just use one variable e.g. TOPOLOGY_COMPONENT_CPU and just set a default for it and it will be the default value for all components in a topology for that resource.  If the use want to overwrite they can do it on a per component basis.  This is whole it was done in Storm.
Also in Storm we used file i.e. default.yaml to hold all the default values for variables.  On packaging storm, the defaults.yaml will be placed inside storm-core.jar. The defaults.yaml file will be read on startup for default values.  This make it easier to find and change defaults compared to hardcoding default values in code.

@nwangtw yes components can have different resource requirements, I am just suggesting we use one variable for each resource and just pre set a default value for that variable and allow the user to overwrite it in their topology main if they want.
for example
TOPOLOGY_COMPONENT_CPU is set to default of 10 the "word" component
if the user doesn't overwrite it like:
SpoutDeclarer spout = builder.setSpout("word", new TestWordSpout(), 10).setCPULoad(20);
than the "word" component will has a CPU req of 10

On a side note, I think the API for resource specification will be more user friendly if users can specify resource requirements directly on the Spout/bolt object like:
SpoutDeclarer spout = builder.setSpout("word", new TestWordSpout(), 10).setCPULoad(20);
instead of separately declaring it:
conf.setComponentRam("word", 20);
Perhaps we can have both options

@jerrypeng Yeah. that is stage two. https://github.com/twitter/heron/pull/2800

dropping to avoid new configs.
https://github.com/twitter/heron/pull/2800 should allow users to do it. We will see if we need another helper function or not in future


freerdp disconnected with Fastpath update Surface Commands [4] failed when playing 1080p full screen video

buildconfig:
This is FreeRDP version 2.2.0 (d60824d80)
Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_GETLOGIN_R=1 HAVE_INTTYPES_H=1 HAVE_JOURNALD_H=TRUE HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL= HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=ON WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=ON WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=ON WITH_DSP_FFMPEG=OFF WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=ON WITH_FAAD2=ON WITH_FFMPEG=TRUE WITH_FFMPEG=TRUE WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=ON WITH_GSSAPI=OFF WITH_ICU=OFF WITH_JPEG=ON WITH_LAME=ON WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=ON WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_NEON=ON WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=ON WITH_PCSC=ON WITH_PROFILER=OFF WITH_PULSE=ON WITH_SAMPLE=ON WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=OFF WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SOXR=ON WITH_SSE2=OFF WITH_SWSCALE=ON WITH_THIRD_PARTY=OFF WITH_VAAPI=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=ON WITH_WINPR_TOOLS=ON WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XV=ON WITH_ZLIB=ON
Build type:          Release
CFLAGS:               -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -fno-omit-frame-pointer -DWINPR_DLL
Compiler:            GNU, 6.3.0
Target architecture: ARM

commandline: ./xfreerdp /multimon /sound:format:17 /microphone:format:1 /cert:ignore /rfx /floatbar /gdi:hw /v:${SERVER_IP} /audio-mode:0 /u:${USER} /p:${PASSWD}
how to reproduce: connect to a windows 10 server on a 1920x1080 monitor, play a 1080p video full screen and wait, freerdp would crash in dozens of minutes or several hours.
log: https://paste.ubuntu.com/p/WjTCtPQJ3C/
I found this crash only happen with option /gdi:hw, but this option can improve the video performance significantly.
With addition option /log-filters:com.freerdp.core.rdp:DEBUG I found that when the crash happens, the length printed here is always 131068, which will cause function update_recv_surfcmd_frame_marker return False because Stream_GetRemainingLength(s) is 2.
Here is log with the debug option: https://paste.ubuntu.com/p/pb4r7M5Hdg/

Please run with current nightly to check if already fixed

also, if you require performance, try the /gfx options, you´re forcing old windows 7 style RDP pipeline.

Please also post a full log with /log-level:debug, the interesting parts are missing from the ones you posted.

also, if you require performance, try the /gfx options, you´re forcing old windows 7 style RDP pipeline.

I've tried /rfx, /gfx, gfx:AVC444, gfx:AVC420, but finally /rfx with gdi:hw have the best performance, it does't have teared frame when playing full screen video.
I've built the mater branch and I will see if the server would disconnect.

@akallabeth The latest build also disconnected to the server, the full log is uploaded to google drive.
The log of the last two seconds when disconnection happended is pasted here: https://paste.ubuntu.com/p/b4qn7xh37p/

@amazingfate ok, strange. can not reproduce with the same flags to a windows 10 server playing a fullscreen video for ~1h now...
anything else you can add?
From the log nothing suspicious, it just seems to be a broken frame from the server :/

@amazingfate oh, and you forgot to redirect stderr in your log, there are only debug and info messages.

@akallabeth I've come back home with the console left in my company. But the stderr should be the same as the log I pasted before. Since I've reproduced this issue for several times with the same ERROR log and all the logs have the same line recv Fast-Path Surface Commands Update (0x04), length:131068.
The stderr should be like this:
[11:13:04:088] [18602:18603] [ERROR][com.freerdp.core.fastpath] - Fastpath update Surface Commands [4] failed, status -1
[11:13:04:088] [18602:18603] [ERROR][com.freerdp.core.fastpath] - FASTPATH_FRAGMENT_LAST fastpath_recv_update_data: fastpath_recv_update() - -1
[11:13:04:088] [18602:18603] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update_data() fail
[11:13:04:088] [18602:18603] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -3
[11:13:04:088] [18602:18603] [ERROR][com.freerdp.core] - freerdp_check_fds() failed - 0
[11:13:04:089] [18602:18603] [INFO][com.freerdp.client.common] - Network disconnect
[11:13:04:089] [18602:18603] [ERROR][com.freerdp.client.x11] - Failed to check FreeRDP file descriptor

@amazingfate since I can not reproduce, could you dump the data (e.g. the stream) that is causing the error? I might be able to deduce the issue from the data, but without a proper way to reproduce that is hard.
Checked the parsing loop and it looks like everything according to spec so no easy to spot issue there :/

@akallabeth oh, I forgot my windows 10 server have this program installed, which modified its group policy for RDP.

@akallabeth could you tell me how to dump the stream, I can reproduce the issue by connecting to the windows 10 server from a ogon session now.

there is winpr_hexdump and similar, that can dump to wlog, or better just write the stream to a temporary file (è.g.
fp = fopen("/tmp/somename.txt", "ẅ+");
 fwrite(stream_buffer(), stream_lenght(), fp);
fclose(fp);

@akallabeth I added these line below in function fastpath_recv_update, and reproduced successfully:
        if (Stream_GetRemainingLength(s) == 131068)
        {
                WLog_INFO(TAG, "fastpath_recv_update stream length is 131068");
                FILE * fp;
                fp = fopen("stream_dump.txt", "w+");
                fwrite(s, Stream_GetRemainingLength(s), 1, fp);
                fclose(fp);
        }

Here is log: https://paste.ubuntu.com/p/PsvzQQ7H2T/
Here is the data I dumped:
stream_dump.txt

@amazingfate ok, that will not work ;)

wStream* is a struct, get the buffer with Stream_Buffer(s)
fwrite should be called with fwrite(buffer, 1, size, fp) (stream of bytes, not stream of somesize elements)

@akallabeth Here is the diff I made to code:
diff --git a/libfreerdp/core/fastpath.c b/libfreerdp/core/fastpath.c
index 6e815c2be..84d81827b 100644
--- a/libfreerdp/core/fastpath.c
+++ b/libfreerdp/core/fastpath.c
@@ -382,6 +382,14 @@ static int fastpath_recv_update(rdpFastPath* fastpath, BYTE updateCode, wStream*
                  fastpath_update_to_string(updateCode), updateCode, Stream_GetRemainingLength(s));
 #endif

+       if (Stream_GetRemainingLength(s) == 131068)
+       {
+               WLog_INFO(TAG, "fastpath_recv_update stream length is 131068");
+               FILE * fp;
+               fp = fopen("stream_dump.txt", "w+");
+               fwrite(Stream_Buffer(s), 1, Stream_GetRemainingLength(s), fp);
+               fclose(fp);
+       }
        switch (updateCode)
        {
                case FASTPATH_UPDATETYPE_ORDERS:
diff --git a/libfreerdp/core/surface.c b/libfreerdp/core/surface.c
index d5c709885..d9064e507 100644
--- a/libfreerdp/core/surface.c
+++ b/libfreerdp/core/surface.c
@@ -116,14 +116,14 @@ static BOOL update_recv_surfcmd_frame_marker(rdpUpdate* update, wStream* s)
 {
        SURFACE_FRAME_MARKER marker;

-       if (Stream_GetRemainingLength(s) < 6)
+       if (Stream_GetRemainingLength(s) < 2)
                return FALSE;

        Stream_Read_UINT16(s, marker.frameAction);
        Stream_Read_UINT32(s, marker.frameId);
        WLog_Print(update->log, WLOG_DEBUG,
-                  "SurfaceFrameMarker: action: %s (%" PRIu32 ") id: %" PRIu32 "",
-                  (!marker.frameAction) ? "Begin" : "End", marker.frameAction, marker.frameId);
+                  "SurfaceFrameMarker: action: %s (%" PRIu32 ") id: %" PRIu32 ", stream length is %d",
+                  (!marker.frameAction) ? "Begin" : "End", marker.frameAction, marker.frameId, Stream_GetRemainingLength(s));

        if (!update->SurfaceFrameMarker)
        {
@@ -155,6 +155,15 @@ int update_recv_surfcmds(rdpUpdate* update, wStream* s)
                                break;

                        case CMDTYPE_FRAME_MARKER:
+                               if (Stream_GetRemainingLength(s) == 2)
+                               {
+                                       WLog_INFO(TAG, "fastpath_recv_surfmd_frame_marker gonna start, stream length is 2");
+                                       FILE * fp;
+                                       fp = fopen("stream_frame_marker.txt", "w+");
+                                       fwrite(Stream_Buffer(s), 1, Stream_GetRemainingLength(s), fp);
+                                       fclose(fp);
+                                       winpr_HexDump(TAG, 2, s, Stream_GetRemainingLength(s));
+                               }
                                if (!update_recv_surfcmd_frame_marker(update, s))
                                        return -1;

Here is the log: https://drive.google.com/file/d/1-Bk01W4KfiqSWvz1NQCJr5A2N8aYm6Fs/view?usp=sharing
Here is the size 131068 dump file in fastpath_recv_update:
stream_dump.txt
Here is the size 2 dump file in update_recv_surfcmds:
stream_frame_marker.txt

@amazingfate ok, this is better, but I´m lacking one more ingredient:
updateCode parameter for fastpath_recv_update that the stream dump is for.

ingredient

It could get found in the log:
[16:02:59:078] [16054:16055] [DEBUG][com.freerdp.core.rdp] - recv Fast-Path Surface Commands Update (0x04), length:131068
[16:02:59:078] [16054:16055] [INFO][com.freerdp.core.fastpath] - fastpath_recv_update stream length is 131068

These two lines are printed in the same function.

sorry, realized just after I wrote that that is in the log :)
checked the spec and rereading the code I can not find any problem except the data received is invalid (aka short)

Only thing I can think of is bulk_decompress reporting 2 bytes short, but that would lead to more than this issue.

just a silly question, can you reproduce this issue without your program installed?

just a silly question, can you reproduce this issue without your program installed?

RemoteFX is not enabled by default in a clean installed windows10, so I install this program to enabled RemoteFX and other features. Maybe I can modify the group policy by myself in a clean installed machine and see if this issue can be reproduced.

@akallabeth Since the surface command 4 (Frame Marker Command) length is 2 instead of 6, missing the frameId(length 4), I made a dirty hack:
diff --git a/libfreerdp/core/surface.c b/libfreerdp/core/surface.c
index c406b954a..fb9e1caca 100644
--- a/libfreerdp/core/surface.c
+++ b/libfreerdp/core/surface.c
@@ -107,11 +107,19 @@ static BOOL update_recv_surfcmd_frame_marker(rdpUpdate* update, wStream* s)
 {
        SURFACE_FRAME_MARKER marker = { 0 };

-       if (Stream_GetRemainingLength(s) < 6)
+       if (Stream_GetRemainingLength(s) < 2)
                return FALSE;

        Stream_Read_UINT16(s, marker.frameAction);
-       Stream_Read_UINT32(s, marker.frameId);
+       if (Stream_GetRemainingLength(s) < 4)
+       {
+               marker.frameId = 0;
+               WLog_INFO(TAG, "Frame Marker Command lost frameId, use 0 instead");
+       }
+       else
+       {
+               Stream_Read_UINT32(s, marker.frameId);
+       }
        WLog_Print(update->log, WLOG_DEBUG,
                   "SurfaceFrameMarker: action: %s (%" PRIu32 ") id: %" PRIu32 "",
                   (!marker.frameAction) ? "Begin" : "End", marker.frameAction, marker.frameId);

In my test the diconnecction doesn't happen, but I don't know if frameId is always 0.
Reference: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/7a4d7c0c-06e3-4802-aaa8-92c8f1d86f6e

@amazingfate I believe you that it helps for your case. I´d still want to know if this is a real bug with windows RDP server or the program you use.
The former would make an argument to upstream the hack, the latter not so much.

@akallabeth What the program did is installing some windows update patch and configuring some RDP related group policies after  decompiling it. It seems that the root cause is hard to find out :( .
The windows 10 server is a KVM machine, I gonna see if this issue can be reproduced in a physical machine.

@amazingfate ok. can you give me some insight in what this program is and if there are public sources?

@akallabeth This program should be provided by a arm thinclient vendor. I can unarchive this program and see a file named readme.txt:
This package is used to optimize the performance of microsoft RDP connection. When you use the thin client, please enable the RemoteFX option for RDP connection to get a better experience.

Notices:

1, This package is released for windows 7 and windows 2008 R2 system.

2, Please make sure the host CPU supports SLAT feature.

3, Please make sure the RemoteFX option is enbaled in the thin client.

@akallabeth The program should be downloaded from here: http://www.jieyung.com/download/showdownload.php?id=61&lang=en

These are the group policies configured by this program on Windows 10:
public static void Windows10()
{
	LocalPolicyEdit("ColorDepth", 999, RegistryValueKind.DWord);
	LocalPolicyEdit("fEnableVirtualizedGraphics", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("GraphicsProfile", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("ImageQuality", 3, RegistryValueKind.DWord);
	LocalPolicyEdit("VGOptimization_CaptureFrameRate", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("VGOptimization_CompressionRatio", 3, RegistryValueKind.DWord);
	LocalPolicyEdit("fDenyTSConnections", 0, RegistryValueKind.DWord);
	LocalPolicyEdit("UserAuthentication", 0, RegistryValueKind.DWord);
	LocalPolicyEdit("SelectNetworkDetect", 3, RegistryValueKind.DWord);
	LocalPolicyEdit("fEncryptRPCTraffic", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("AllowedAudioQualityMode", 7, RegistryValueKind.DWord);
	LocalPolicyEdit("fDisableAudioCapture", 0, RegistryValueKind.DWord);
	LocalPolicyEdit("SecurityLayer", 0, RegistryValueKind.DWord);
	LocalPolicyEdit("fDisableTerminalServerTooltip", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("LicensingMode", 4, RegistryValueKind.DWord);
	LocalPolicyEdit("bEnumerateHWBeforeSW", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("fEnableRemoteFXAdvancedRemoteApp", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("AVC444ModePreferred", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("AVCHardwareEncodePreferred", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("MaxCompressionLevel", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("VisualExperiencePolicy", 1, RegistryValueKind.DWord);
	LocalPolicyEdit("LicenseServers", "<IP_ADDRESS>", RegistryValueKind.String);
}

Rename the program to a .rar file, then unarchive it, and decompile RDPAccelerator.exe, we can see the code above.

#6626 fixed glyph cache issues, closing.
create a new issue if not resolved.


Documentation doesn't show subcommands

Pushed a fix in https://github.com/click-contrib/sphinx-click/issues/23 but waiting for pypi to include 1.2.0, will pin to github master if not fixed.

fixed in #6


Use expeditor's default promote config

There's no need to explicitly define Expeditor's default promote config so let's remove it.

Closing this because we prefer to keep it explicitly defined.


[sql-hint] Better SQL table/column name completion, fixes #2323

Could you maybe add test cases? A big problem with the SQL completion is that I'm never sure what it's supposed to do, and whether a change I make breaks some of its functionality.
The idea would be to add an sql-hint-test.js file in addon/hint, which hooks into the simple testing framework defined in test/driver.js, and calls the completion function on some interesting inputs, verifying that it returns the right completions. Then include the new test script in test/index.html, and it will be run as part of the test suite.

Sure. I'll look into it.

@marijnh, I have added some tests for sql-hint. Please have a look.
Please check that I wrote the tests in right way, as I did not find any docs and wrote on basis of other tests and driver.

Sorry, I didn't follow the style guilds properly. Please review the tests. If it looks fine, I'll recommit this.

Great! I've cleaned them up a little (a1cdedd) and merged your work. (I had to move them to test/ to prevent the automatic linter from going bonkers over them -- it is apparently not really suited for test code yet).

Thanks. :)


[Icons] Rework cache warm

The warm cache took a lot of time because

the regexp was very open (due to the non-prefix icon names)
twig templates were listed multiple times (due to the namespace system)

And a looot of false positives caused lot of cache locks for nothing.
On ux.symfony.com project with this component, the PR make the icons detected from 1000+ to 1 :)
And the command is now way quicker to run.
The prefix-less icons are warmed by simply listing the SVG at the root of the asset/icons directory

Thanks Simon.


 Use npm module stupid-player
Use promise instead promise-polyfill in radio-service

#22


Ensure Query does not use the wrong World

Query relies on the World it stores being the same as the world used for creating the QueryState it stores. If they are not the same then everything is very unsound. This was not actually being checked anywhere, Query::new did not have a safety invariant or even an assertion that the WorldId's are the same.
This shouldn't have any user facing impact unless we have really messed up in bevy and have unsoundness elsewhere (in which case we would now get a panic instead of being unsound).

bors is bad so i guess I will just close this and wait until my other PR lands???

nvm apparently bors will just retry a bunch and then try to merge with something else?


Adaptive Cholesky and symmetric BandedMatrices

Trying to test the adaptive Cholesky implementation and running into some odd behavior. For example, the test example for Cholesky contructs the matrix
S = Symmetric(BandedMatrix(0 => 1:∞, 1=> Ones(∞)))

but strangely running something simple like S*S doesn't finish computing - maybe it's not doing it lazily as it should. Also importantly the Jacobi matrices as constructed by ClassicalOrthogonalPolynomials.jl for normalized Legendre are SymTridiagonal but don't register as symmetric banded matrices in the sense that matters for adaptive Cholesky (can't see an existing way to convert between those, is there one?).
As a temporary workaround I was going to just generate the Jacobi matrix in the same way as the above test example, that is using
X = Symmetric(BandedMatrix(1 => (1:∞) ./sqrt.(4 .*(1:∞).^2 .-1)))

which is an explicit construction for the X multiplication operator for normalized Legendre polynomials but then I run into the first problem mentioned above, that matrix operations with X never finish computing.

This always requires a bit of jiggling due to trying to catch the right *.
Can you try for now using ApplyArray(*,S,S)?

S*S

I got S^2 working since then it knows the result is Symmetric.
S*S is a bit harder: we would need to adaptively check that the array is in fact symmetric. This is doable, but do you need it?

 If I understand you correctly this means I can generate X^a, (I-X)^b as well as (t*I-X)^c.
I guess it still prevents us from working with the fully general  X^a * (I-X)^b * (t*I-X)^c though because it doesn't know the resulting weight multiplication operator is symmetric?

You can always just wrap it in Symmetric

which is actually what S^2 does: it's equivalent to Symmetric(S*S)

I've basically been using that, yes.  I'll give it a try.

Seeing some odd results - not sure what's going wrong here?
julia> # define some test operator

julia> S = Symmetric(BandedMatrix(0 => 1:∞, 1=> Ones(∞)))
ℵ₀×ℵ₀ Symmetric{Float64, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(*), Tuple{Matrix{Float64}, ApplyArray{Float64, 2, typeof(vcat), Tuple{ApplyArray{Float64, 2, typeof(hcat), Tuple{Zeros{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, InfiniteArrays.ReshapedArray{Int64, 2, InfiniteArrays.InfUnitRange{Int64}, Tuple{Int64, Infinities.InfiniteCardinal{0}}, Tuple{}}}}, Ones{Float64, 2, Tuple{Base.OneTo{Int64}, InfiniteArrays.OneToInf{Int64}}}}}}}, InfiniteArrays.OneToInf{Int64}}} with indices OneToInf()×OneToInf():
 1.0  1.0   ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅   …
 1.0  2.0  1.0   ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅   1.0  3.0  1.0   ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅   1.0  4.0  1.0   ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅   1.0  5.0  1.0   ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅   1.0  6.0  1.0   ⋅    ⋅   …
  ⋅    ⋅    ⋅    ⋅    ⋅   1.0  7.0  1.0   ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅   1.0  8.0  1.0
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅   1.0  9.0
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅   1.0
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅   …
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅   …
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅   …
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅   …
  ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅    ⋅
 ⋮                        ⋮                   ⋱

julia> # intend to use cholesky on this:

julia> (S^2)[1:100,1:100]
100×100 BandedMatrix{Float64} with bandwidths (2, 2):
 2.0  3.0   1.0    ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
 3.0  6.0   5.0   1.0    ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
 1.0  5.0  11.0   7.0   1.0    ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅   1.0   7.0  18.0   9.0   1.0    ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅    1.0   9.0  27.0  11.0   1.0    ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅    1.0  11.0  38.0  13.0   1.0  …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅    1.0  13.0  51.0  15.0         ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅    1.0  15.0  66.0         ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅    1.0  17.0         ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅    1.0         ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
 ⋮                            ⋮                ⋱
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅         1.0      ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …   193.0     1.0      ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅      9411.0   195.0     1.0       ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅       195.0  9606.0   197.0      1.0
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅         1.0   197.0  9803.0    199.0
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅      1.0   199.0  10002.0

julia> # non-adaptive cholesky gives the expected results:

julia> U = cholesky(Symmetric((S^2)[1:100,1:100])).U
100×100 UpperTriangular{Float64, BandedMatrix{Float64, Matrix{Float64}, Base.OneTo{Int64}}}:
 1.41421  2.12132  0.707107   ⋅        …    ⋅           ⋅           ⋅
  ⋅       1.22474  2.85774   0.816497       ⋅           ⋅           ⋅
  ⋅        ⋅       1.52753   3.05505        ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅        2.82843        ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
 ⋮                                     ⋱
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …    ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅        …   0.0104178    ⋅           ⋅
  ⋅        ⋅        ⋅         ⋅            2.01031     0.0103104    ⋅
  ⋅        ⋅        ⋅         ⋅           97.9896      2.01021     0.0102052
  ⋅        ⋅        ⋅         ⋅             ⋅         98.9897      2.0101
  ⋅        ⋅        ⋅         ⋅             ⋅           ⋅         99.9898

julia> U[1:100,1:100]'*U[1:100,1:100]
100×100 BandedMatrix{Float64} with bandwidths (2, 2):
 2.0  3.0   1.0    ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
 3.0  6.0   5.0   1.0    ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
 1.0  5.0  11.0   7.0   1.0    ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅   1.0   7.0  18.0   9.0   1.0    ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅    1.0   9.0  27.0  11.0   1.0    ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅    1.0  11.0  38.0  13.0   1.0  …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅    1.0  13.0  51.0  15.0         ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅    1.0  15.0  66.0         ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅    1.0  17.0         ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅    1.0         ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
 ⋮                            ⋮                ⋱
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …      ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅       ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅         1.0      ⋅       ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅   …   193.0     1.0      ⋅        ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅      9411.0   195.0     1.0       ⋅
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅       195.0  9606.0   197.0      1.0
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅         1.0   197.0  9803.0    199.0
  ⋅    ⋅     ⋅     ⋅     ⋅     ⋅     ⋅     ⋅          ⋅      1.0   199.0  10002.0

julia> # adaptive cholesky has some strange entries?

julia> V = cholesky(S^2).U
ℵ₀×ℵ₀ UpperTriangular{Float64, InfiniteLinearAlgebra.AdaptiveCholeskyFactors{Float64, BandedMatrix{Float64, Matrix{Float64}, Base.OneTo{Int64}}, ApplyArray{Float64, 2, typeof(*), Tuple{Symmetric{Float64, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(*), Tuple{Matrix{Float64}, ApplyArray{Float64, 2, typeof(vcat), Tuple{ApplyArray{Float64, 2, typeof(hcat), Tuple{Zeros{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, InfiniteArrays.ReshapedArray{Int64, 2, InfiniteArrays.InfUnitRange{Int64}, Tuple{Int64, Infinities.InfiniteCardinal{0}}, Tuple{}}}}, Ones{Float64, 2, Tuple{Base.OneTo{Int64}, InfiniteArrays.OneToInf{Int64}}}}}}}, InfiniteArrays.OneToInf{Int64}}}, Symmetric{Float64, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(*), Tuple{Matrix{Float64}, ApplyArray{Float64, 2, typeof(vcat), Tuple{ApplyArray{Float64, 2, typeof(hcat), Tuple{Zeros{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, InfiniteArrays.ReshapedArray{Int64, 2, InfiniteArrays.InfUnitRange{Int64}, Tuple{Int64, Infinities.InfiniteCardinal{0}}, Tuple{}}}}, Ones{Float64, 2, Tuple{Base.OneTo{Int64}, InfiniteArrays.OneToInf{Int64}}}}}}}, InfiniteArrays.OneToInf{Int64}}}}}}} with indices OneToInf()×OneToInf():
 1.41421  2.12132  0.5       ⋅        …
  ⋅       1.22474  1.99171  0.666667
  ⋅        ⋅       2.50661  1.61412
  ⋅        ⋅        ⋅       3.77935
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅        …
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅        …
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅        …
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅        …
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅
  ⋅        ⋅        ⋅        ⋅        …
  ⋅        ⋅        ⋅        ⋅
 ⋮                                    ⋱

julia> V[1:100,1:100]'*V[1:100,1:100]
100×100 Matrix{Float64}:
 2.0       3.0        0.707107   0.0       …     0.0            0.0
 3.0       6.0        3.5        0.816497        0.0            0.0
 0.707107  3.5       10.5        5.37377         0.0            0.0
 0.0       0.816497   5.37377   17.3333          0.0            0.0
 0.0       0.0        0.398946   8.35605         0.0            0.0
 0.0       0.0        0.0        0.264596  …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 ⋮                                         ⋱
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0             0.0            0.0
 0.0       0.0        0.0        0.0       …     0.0            0.0
 0.0       0.0        0.0        0.0             0.0103104      0.0
 0.0       0.0        0.0        0.0           196.979          0.0102052
 0.0       0.0        0.0        0.0          9803.0          198.979
 0.0       0.0        0.0        0.0           198.979      10002.0

Must be a resizing bug.. let me look into it


Development address not obvious

When starting, the <IP_ADDRESS>:8000 address appear in the terminal.

Although when navigating to it, there is nothing.
The documentation mention localhost:8080
The correct address is localhost:8000

Resolved now!


update dependencies_win.bat commit_id equals .sh commit_id

dependencies_win.bat commit_id is not update, i change ,bat commit_id equals .sh commit_id

Thank, LGTM~


elementexplorer INFO level logging low SNR; how to turn off?

I cannot figure out a way to affect the logging output for elementexplorer.js.  A simple command to call getText() dumps about 50 lines of INFO output.  See output below.
Is there any way to configure the logging level to turn off this INFO logging?  It really makes this powerful tool a burden.
Thanks!
Brian
> var t = element(by.css( '.QE-page-title') )
undefined
> t.getText()
23:18:51.806 INFO - Executing: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]])
23:18:51.812 INFO - Done: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
23:18:51.816 INFO - Executing: [find elements: By.selector: .QE-page-title])
23:18:51.822 INFO - Done: [find elements: By.selector: .QE-page-title]
23:18:51.838 INFO - Executing: [get text: 0 [[ChromeDriver: chrome on MAC (9baee9a4d744b792ec8d792d9d97a263)] -> css selector: .QE-page-title]])
23:18:51.845 INFO - Done: [get text: 0 [[ChromeDriver: chrome on MAC (9baee9a4d744b792ec8d792d9d97a263)] -> css selector: .QE-page-title]]
'Asset Group Editor:'
>

Most of this is coming from the selenium standalone server using the same stdout as the tests. We should indeed have some way to configure this.
A quick fix that you can use now is to start up the selenium standalone in a separate process (either calling it yourself or via webdriver-manager start) and connect to it using seleniumAddress from a config or the command line (e.g. --seleniumAddress http://localhost:4444/wd/hub).

Julie, the element explorer is still the original one right? So the parameters won't be available yet. (unless.. @btmurrell are you using master or 1.6?)

Thanks for the quick response.  I have started the selenium server as a separate process, and I am on protractor 1.6.1 (from npm install, not from master).
@juliemr giving --seleniumAddress on the cmd to elementexplorer did the trick, thank you!  (I'm giving protractor training today. :+1:  ) But I have a bit of confusion you may be able to clear up for me.
I found that even tho I wanted to use seleniumAddress: null in my protractor.conf.js (as i'm happily using for my specs), elementexplorer could not seem to launch it, so I needed to start it myself (ele expl spat ECONNREFUSED if I had not started it). But after starting it and giving elementexplorer the --seleniumAddress alleviates the extra logging problem.  Q: You mention setting in a conf -- what conf is elementexplorer reading? I would like to leverage it.
Aside: There is not much doc on elementexplorer yet, but I am discovering its features and i really want to exploit its powers.  For example, I just figured out that it works as expected -- I can load my page object files with require() and hit them interactively.  Powerful stuff. Thank you.

With the new release, please check out http://angular.github.io/protractor/#/debugging for up to date info.

Still not really understanding the solution to this... =( The logs are painful and make things so very hard to debug...


Implement wrapper for mode

mode_wrapper.py exists, but has not been run or tested. A config file, sample data, and a sample call to mode using a parameter file and other command line arguments is required to test this wrapper.

This work is being done on branch feature_136_gridstat_mode_diffs since it is related. See GitHub Issue #136 for more information. I will close this issue when I finish all changes for both issues.


[pretty] shfmt only git files

This PR enhanced make-pretty to only shfmt git files.

I realized that the actual issue is that shfmt does not use git ls-files to filter only repository files. But I think it is still valid to change the exclude patterns.
An alternative fix would be use git ls-files together with shfmt. But the current fix seems even simpler.
Thoughts? @jwhui

@simonlingoogle this seems reasonable and a good enhancement to me. 👍
I am just curious about the background on this. Is there a problem caused with formatting all matching source files?

@simonlingoogle this seems reasonable and a good enhancement to me. 👍
I am just curious about the background on this. Is there a problem caused with formatting all matching source files?

When executed locally on my workstation, script/make-pretty check shell gives false fail with massive output because it checked shell files in the build/ directory and the configure file. I think it's confusing for OT developers.


trace detail error with collecting envoy trace by skywalking zipkin receiver

Please answer these questions before submitting your issue.

Why do you submit this issue?
[x] Question or discussion
[ ] Bug
[ ] Requirement
[ ] Feature or performance improvement

Question

What do you want to know?

can skywalking work with envoy directly?
Which version of SkyWalking, OS and JRE?
6.4.0
in k8s
use official docker image
my setup step

enable the zipkin receiver in skywalking-oap env
set the envoy zipkinAddress to skywalking-oap:9411
change the skywalking-ui timezone

problem
get the trace list in skywalking ui with trace id ,start time and duration.
but cannot get the trace detail,i find the error in skywalking-oap log
java.lang.NullPointerException: null
	at org.apache.skywalking.oap.server.storage.plugin.zipkin.elasticsearch.ZipkinTraceQueryEsDAO.doFlexibleTraceQuery(ZipkinTraceQueryEsDAO.java:183) ~[storage-zipkin-plugin-6.4.0.jar:6.4.0]
	at org.apache.skywalking.oap.server.core.query.TraceQueryService.queryTrace(TraceQueryService.java:108) ~[server-core-6.4.0.jar:6.4.0]
	at org.apache.skywalking.oap.query.graphql.resolver.TraceQuery.queryTrace(TraceQuery.java:80) ~[query-graphql-plugin-6.4.0.jar:6.4.0]
	at org.apache.skywalking.oap.query.graphql.resolver.TraceQueryMethodAccess.invoke(Unknown Source) ~[reflectasm-1.11.7.jar:6.4.0]
	at com.coxautodev.graphql.tools.MethodFieldResolverDataFetcher.get(MethodFieldResolver.kt:147) ~[graphql-java-tools-5.2.3.jar:?]
	at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:227) [graphql-java-8.0.jar:?]
	at graphql.execution.ExecutionStrategy.resolveField(ExecutionStrategy.java:170) [graphql-java-8.0.jar:?]
	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:59) [graphql-java-8.0.jar:?]
	at graphql.execution.Execution.executeOperation(Execution.java:158) [graphql-java-8.0.jar:?]
	at graphql.execution.Execution.execute(Execution.java:100) [graphql-java-8.0.jar:?]
	at graphql.GraphQL.execute(GraphQL.java:558) [graphql-java-8.0.jar:?]
	at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:500) [graphql-java-8.0.jar:?]
	at graphql.GraphQL.executeAsync(GraphQL.java:470) [graphql-java-8.0.jar:?]
	at graphql.GraphQL.execute(GraphQL.java:401) [graphql-java-8.0.jar:?]
	at org.apache.skywalking.oap.query.graphql.GraphQLQueryHandler.execute(GraphQLQueryHandler.java:87) [query-graphql-plugin-6.4.0.jar:6.4.0]

i think the trace have stored,and query success. but I don't know where is the problem.

Read #2653


rebrand to ... JSEN?

javascript EVERYTHING notation

okay name is taken.
howabout
jrod - javascript r .... o .... declaration
javascript right object declaration
javascript reticulated omnipurpose declaration


Add key for BottomNavigationBarItem

I have check this link:
https://github.com/flutter/flutter/blob/master/packages/flutter/test/material/bottom_navigation_bar_test.dart
It use tester.tap to drive one of BottomNavigationBarItem. but It is not very convenient if app support localization.
I think it add key can more flex to test.

I don't think those tests are meant to be localized. The strings are just hard coded code names given to the widgets in order to be able to identify them later in the test. I'm going to close this issue but feel free to reopen if I missed anything.

Assume the code like this:
String localizationTabTitleString(int index) {
// get different title from specific language
}

bottomNavigationBar: BottomNavigationBar(
  items: const <BottomNavigationBarItem>[
    BottomNavigationBarItem(
      icon: Icon(Icons.ac_unit),
      title: Text(localizationTabTitleString(0)),
    ),
    BottomNavigationBarItem(
      icon: Icon(Icons.access_alarm),
      title: Text(localizationTabTitleString(1)),
    ),
  ],
),

then I must use localizationTabTitleString to test:
await tester.tap(find.text(Text(localizationTabTitleString(0)));

I think this is not make sense? or do I miss other way to write BottomNavigationBar test?

Feel embarrassed. I should use flutter_driver to make sense.
Ref this link.

Ah sorry, I misunderstood the problem. If you're writing tests for your app, feel free to use keys for widget lookup.

I agree with @JoeCiou. It's unintuitive and impedes testing to omit a key for a random widget (BottomNavigationBarItem). Is there a reason for this? If not, @LongCatIsLooong I'd like the issue reopened and I could open a PR.
ref: https://api.flutter.dev/flutter/widgets/BottomNavigationBarItem-class.html

@gronka  Ah sorry looks like I read the issue wrong. Like you said BottomNavigationBarItem is not a widget but I'm reopening the issue in case you're still interested in opening a PR.
Not sure why exactly it's made that way, the class seems to be used by both the material bottom nav bar class and the Cupertino navbar class, so it's possible that it's intentionally made a non-widget so it can stay design language agnostic.
/cc @HansMuller

Apologies for commenting on an older issue but, as it's still open, I'd just like to add that there is a different use-case where this is unintuitive.
I'm currently implementing coach marks and I'd like to add a coach mark to the item itself but I'd either have to focus on the icon or implement a custom bottom navigation bar myself.

@gronka - BottomNavigationBarItem is used to produce a single widget in the Material BottomNavigationBar and CupertinoTabBar implementations, so providing and eventually using a key would make sense. This isn't something we're working on at the moment but happy to review a PR.

We are having an issue that would be solved by this.
We dynamically change the number of BottomNavigationBarItem's we have in the bar depending on what one you currently have selected. This causes the splash / inkwell effect to happen on the wrong item, the one adjacent to the one you tapped. Adding keys fixes this.

Apologies for commenting on an older issue but, as it's still open, I'd just like to add that there is a different use-case where this is unintuitive.
I'm currently implementing coach marks and I'd like to add a coach mark to the item itself but I'd either have to focus on the icon or implement a custom bottom navigation bar myself.

can you please provide the code?


sendReceive doesn't support chunked responses

Marathon 0.15.1:
2016-02-21T03:51:58.000Z heh [2016-02-21 03:51:58,414] INFO Received health result for app [/mydc/hbase/metrics/regionservers/myhost] version [2016-02-21T03:41:25.284Z]: [Unhealthy(mydc_hbase_metrics_regionservers_myhost.fc6ec539-d84c-11e5-aabd-000f532c2b70,2016-02-21T03:41:25.284Z,RuntimeException: sendReceive doesn't support chunked responses, try sendTo instead,2016-02-21T03:51:58.414Z)] (mesosphere.marathon.health.HealthCheckActor:marathon-akka.actor.default-dispatcher-24)
2016-02-21T03:52:09.000Z heh [2016-02-21 03:52:09,280] INFO Received health result for app [/mydc/hbase/metrics/regionservers/myhost] version [2016-02-21T03:41:25.284Z]: [Unhealthy(mydc_hbase_metrics_regionservers_myhost.fc6ec539-d84c-11e5-aabd-000f532c2b70,2016-02-21T03:41:25.284Z,ConnectionException: Closed,2016-02-21T03:52:09.280Z)] (mesosphere.marathon.health.HealthCheckActor:marathon-akka.actor.default-dispatcher-47)
2016-02-21T03:52:19.000Z heh [2016-02-21 03:52:18,074] INFO Received health result for app [/mydc/hbase/metrics/regionservers/myhost] version [2016-02-21T03:41:25.284Z]: [Unhealthy(mydc_hbase_metrics_regionservers_myhost.fc6ec539-d84c-11e5-aabd-000f532c2b70,2016-02-21T03:41:25.284Z,RuntimeException: sendReceive doesn't support chunked responses, try sendTo instead,2016-02-21T03:52:18.074Z)] (mesosphere.marathon.health.HealthCheckActor:marathon-akka.actor.default-dispatcher-39)
2016-02-21T03:52:28.000Z heh [2016-02-21 03:52:28,119] INFO Received health result for app [/mydc/hbase/metrics/regionservers/myhost] version [2016-02-21T03:41:25.284Z]: [Unhealthy(mydc_hbase_metrics_regionservers_myhost.fc6ec539-d84c-11e5-aabd-000f532c2b70,2016-02-21T03:41:25.284Z,RuntimeException: sendReceive doesn't support chunked responses, try sendTo instead,2016-02-21T03:52:28.118Z)] (mesosphere.marathon.health.HealthCheckActor:marathon-akka.actor.default-dispatcher-24)

This randomly kills 1/3 of instances, moving another 1/3 into the state where health checks fire for it.

Could be that healthchecks with results over 1mb make marathon do crazy things.

@bobrik Yeah, seems so and we definitely should look into this, but having such a large health check response kinda sounds like an antipattern...

You don't always control what you can health check.

True story :smile:

did anyone get solution for this issue?

I feel like spray 1.3.5 supports chunked now (I could be wrong) but we will be moving to akka http soon and you're now able to use mesos health checks instead. Please reopen if you're still affected in 1.3.x or master.


Failed to build when deploy to Vercel

i get error as:
when i delpoy in https://vercel.com/
ELIFECYCLE  Command failed with exit code 22.
18:49:26.951 | WARN   Local package.json exists, but node_modules missing, did you mean to install?
18:49:26.980 | Error: Command "pnpm run next:install" exited with 1
18:49:27.505 | BUILD_UTILS_SPAWN_1: Command "pnpm run next:install" exited with 1

I have changed CI today. The document was outdated. See prebuild.sh


Currency Mask Focus Not Working With Shadcn Dialog + RHF

Description
By default, Shadcn's Dialog component will focus on the first focusable element once it is opened. When the Currency Mask input is the first focusable element of the dialog, the value and defaultValue are both ignored:

Cause
When handleFocuns is called, the value of input.targer.value is 0
Demo Component
import { zodResolver } from '@hookform/resolvers/zod'
import { CurrencyInput } from 'react-currency-mask'
import { useForm } from 'react-hook-form'
import { z } from 'zod'

import { Button } from '@/components/ui/button'
import {
  Dialog,
  DialogContent,
  DialogDescription,
  DialogHeader,
  DialogTitle,
  DialogTrigger,
} from '@/components/ui/dialog'
import {
  Form,
  FormControl,
  FormDescription,
  FormField,
  FormItem,
  FormLabel,
  FormMessage,
} from '@/components/ui/form'

import { Input } from './components/ui/input'

const formSchema = z.object({
  value: z.number().min(0).positive(),
})

export function App() {
  const form = useForm<z.infer<typeof formSchema>>({
    resolver: zodResolver(formSchema),
    defaultValues: {
      value: 30,
    },
  })

  function onSubmit(values: z.infer<typeof formSchema>) {
    console.log(values)
  }

  return (
    <main>
      <Dialog>
        <DialogTrigger asChild>
          <Button>Open Form</Button>
        </DialogTrigger>
        <DialogContent>
          <DialogHeader>
            <DialogTitle>Are you absolutely sure?</DialogTitle>
            <DialogDescription>
              This action cannot be undone. This will permanently delete your
              account and remove your data from our servers.
            </DialogDescription>
          </DialogHeader>
          <Form {...form}>
            <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
              <FormField
                control={form.control}
                name="value"
                render={({ field }) => (
                  <FormItem>
                    <FormLabel>Value</FormLabel>
                    <FormControl>
                      <CurrencyInput
                        value={field.value}
                        defaultValue={10}
                        onChangeValue={(_, value) => {
                          field.onChange(value)
                        }}
                        onFocus={(_, original, masked) =>
                          console.log({ original, masked })
                        }
                        InputElement={
                          <Input placeholder="R$ 0,00" inputMode="numeric" />
                        }
                      />
                    </FormControl>
                    <FormDescription>
                      This is your public display name.
                    </FormDescription>
                    <FormMessage />
                  </FormItem>
                )}
              />
              <Button type="submit">Submit</Button>
            </form>
          </Form>
        </DialogContent>
      </Dialog>
    </main>
  )
}

Solutions
After debugging a little bit, i came up with two solutions
A - Change handleFocus
Since the event.target.value inside this function is 0, maybe we could use the actual value prop sent to the component. That said, handleFocus could be something like:
const handleFocus = (event: FocusEvent<HTMLInputElement, Element>) => {
    if (autoSelect) {
      event.target.select()
    }

    const [originalValue, maskedValue] = updateValues(value ?? '0')

    if (maskedValue && onFocus) {
      onFocus(event, originalValue, maskedValue)
    }
}

B - Update the initial value for maskedValue
This solution consists in updating the initial maskedValue to something like:
const [maskedValue, setMaskedValue] = useState<number | string>(() => {
    if (!value) return '0'

    const [, calculatedMaskedValue] = maskValues(
      locale,
      value,
      currency,
      hideSymbol,
    )

    return calculatedMaskedValue
})

Let me know your thoughts here and maybe we can discuss more! Once we agree on a solution i can open a PR.
Comments
Greeting from Brazil Fortaleza-CE! Awesome package @leoreisdias! I've been looking for a currency input/mask, found many of them but honestly the best one is react-currency-mask, congrats for the project!

@KevinGuedes Hello!
First, sorry for the delay in getting back to you. Thank you for reporting this issue and providing such detailed suggestions! The solutions you proposed are interesting and can work well to address the problem.
I particularly like Solution B because it initializes the maskedValue more robustly, ensuring the input value remains consistent with the value prop from the start. This approach reduces dependency on external props throughout the component's lifecycle, making the component more predictable and less prone to errors.
(I believe) this solution will help prevent future issues related to the component's initial state, especially in more complex scenarios.
If you would like to open a PR with this change, I would be happy to review it!
Thanks again for your contribution and the kind words! 😊
Cheers from Minas Gerais! 😎