Automatic update of display orientation does not work properly when turning devices

Environment

Tech
Version

@material-ui/pickers
3.2.0

material-ui
4.1.3

React
16.8

Browser
Safari on iOS, chrome (and samsung internet) on Android

Peer library
moment 2.24.0

Steps to reproduce
I first observed a crash on iOS devices when turning them into landscape mode. While analyzing that I found a small further issue on Android devices that is caused by the same lines of code. That's why I describe the two observations in the following:
Observation 1

Use a DatePicker component
Open it on an iPad or iPhone
turn the device to landscape mode

Observation 2

Use a DatePicker component
Open it on an Android device
turn the device to upside down landscape mode

Expected behavior
The DatePicker is shown without an error, preferably as landscape variant.
Actual behavior
Observation 1
An error is thrown: "TypeError: undefined is not an object (evaluating 'window.screen.orientation.angle')"
It seems that the window.screen.orientation api is not supported by iOS Safaris. The code checks that window.screen and window.orientation are available but not that window.screen.orientation is available before accessing it. (see getOrientation in useIsLandscape.tsx)
Observation 2
On android devices the DatePicker is shown as portrait variant in upside down orientation instead of landscape variant like in regular landscape.
It seems that window.screen.orientation equals 270 in upside down landscape instead of -90 as expected. So the check does not apply correctly.
Live example
Sorry, I don't have one :(

+1
This is happening in my iOS app too.

Not sure if this is the right spot to post this.  Live example of the error can be found at:
timelockr (hosted on AWS))
The error did not show on my older devices, an iPad Air II and an iPhone 6s Plus.  It did show up on a newer iPad Pro and a newer generic iPad tablet (I can get the model numbers if needed). This link shows how to reproduce the error in the app:
reproducing_error
This link shows the output of the React ErrorBoundary surrounding the time-picker components during runtime:
error_at_runtime
The relevant code is as follows:

TimeExtensionDialog.jsx
TimePicker.jsx
DatePicker.jsx

If you want to reproduce the error in the app on your end, I have added a .env file that will let you run the client without having to install the backend.  The repo is here:
https://github.com/jehillert/timelockr-client.git

I have already fixed it. It will be published tomorrow

Sweet.  You guys rock!

Hey @dmtrKovalenko ,
thanks for that fast fix!
I had a look into it and just observed that it does not tackle the second problem. On my android devices window.screen.orientation.angle is 270 instead of -90 in upside down landscape mode. Hence, your method would return 'protrait' instead of 'landscape'. Don't know, if that differs on distinct devices. A modulo 180 check would ensure the correct result, I guess. Is it possible to add that as well?

Ohh goodness


improve scripts and docs

hi @mattieb,
this is my humble contribution to your project.
thank you.
changes

use bash as the default shell
fail on errors
make it posix compatible
pass shellcheck and shfmt
improve the docs

I don't have time right now to hit this 100%, but I did have a question—is the introduction of the Bash dependency just for pipefail? Or something else I've missed?
Otherwise, in general, I'm a fan of the shellcheck/shfmt/etc. and appreciate that. I am a bit more opinionated about the README formatting and am likely to cherry-pick most changes and skip one or two. Just a personal style thing.


feat(client_core): :sparkles: Move android to common CPAL code

This breaks switching to headphones while streaming. Will be fixed using oddio instead of rodio. oddio is backend agnostic and allows cpal to be used transparently


Update geo levels available & their estimation in Quidel documentation

The documentation for Quidel only lists msa, hrr, and state geo levels. We should bring that up to date:

[ ] Specify county in the list of available geo levels (and anything else missing -- nation? hhs?)
[ ] Specify how estimates are computed for these new geo levels

Source file
Rendered file

fixed in #839


Getting exception when deploy Speech SDK on Azure webapp SPXERR_MIC_NOT_AVAILABLE

Describe the bug
When I am trying to deplpy my Speech SDK (from Microphone To Speech)on Azure webapp getting SPXERR_MIC_NOT_AVAILABLE though it is working locally and over local iis deployed also.
To Reproduce
Steps to reproduce the behavior:
Write below method on .net core api and deploy on Azure
    public async Task<IActionResult> MicrophoneToSpeechAsync(string languageIso6391Code)
    {
        var subscription = _config.GetValue<string>("SubscriptionId");
        var location = _config.GetValue<string>("Region");
        var config = SpeechConfig.FromSubscription(subscription, location);
        config.SpeechRecognitionLanguage = string.IsNullOrWhiteSpace(languageIso6391Code) ? "en-us" :
        languageIso6391Code;

        // Creates a speech recognizer.
        using (var recognizer = new SpeechRecognizer(config))
        {
            Console.WriteLine("Say something...");
            var result = await recognizer.RecognizeOnceAsync();
            List<SpeechCommonService.DetectedLanguage> language = null;
            // Checks result.
            if (result.Reason == ResultReason.RecognizedSpeech)
            {
                Console.WriteLine($"We recognized: {result.Text}");

            }
        }
}

Error Screen
Extected behaviour it should understand the spoken words over microphone and convert it to text.

@samkuls when you deploy the speech sdk on webapp it tries to use the microphone of the hosted vm. Since the hosted vm do not have a microphone and so you get the above error. Please consider using PullStream or PushStream.

hello @amitkumarshukla
How to include push stream or pull stream in this code.
import azure.cognitiveservices.speech as speechsdk
import sys
def pronunciation_assessment_from_microphone():
""""performs one-shot pronunciation assessment asynchronously with input from microphone."""
# Creates an instance of a speech config with specified subscription key and service region.
# Replace with your own subscription key and service region (e.g., "westus").
# Note: The pronunciation assessment feature is currently only available on en-US language.
config = speechsdk.SpeechConfig(subscription="", region="")

# The pronunciation assessment service has a longer default end silence timeout (5 seconds) than normal STT
# as the pronunciation assessment is widely used in education scenario where kids have longer break in reading.
# You can adjust the end silence timeout based on your real scenario.
config.set_property(speechsdk.PropertyId.SpeechServiceConnection_EndSilenceTimeoutMs, "3000")

reference_text = ""
# create pronunciation assessment config, set grading system, granularity and if enable miscue based on your requirement.
# https://docs.microsoft.com/en-us/dotnet/api/microsoft.cognitiveservices.speech.pronunciationassessment?view=azure-dotnet
pronunciation_config = speechsdk.PronunciationAssessmentConfig(reference_text=reference_text,
                                                               grading_system=speechsdk.PronunciationAssessmentGradingSystem.HundredMark,
                                                               granularity=speechsdk.PronunciationAssessmentGranularity.Phoneme,
                                                               enable_miscue=False)

#SpeechRecognizer is class which has 2 methods 1)recognize_once 2)recognize_once_async
#https://www.dancingwithcrm.com/quickstart-azure-speech-recognition/
recognizer = speechsdk.SpeechRecognizer(speech_config=config)

print('recognizer',recognizer)
while True:
    # Receives reference text from console input.
    print('Enter reference text you want to assess, or enter empty text to exit.')
    print('> ')

    try:
        reference_text = input()
        if reference_text == "":
            print('Entered empty text to exit')
            sys.exit(0)
    except EOFError:
        break

    pronunciation_config.reference_text = reference_text
    pronunciation_config.apply_to(recognizer)

    # Starts recognizing.
    print('Read out "{}" for pronunciation assessment ...'.format(reference_text))

    # Note: Since recognize_once() returns only a single utterance, it is suitable only for single
    # shot evaluation.
    # For long-running multi-utterance pronunciation evaluation, use start_continuous_recognition() instead.
    result = recognizer.recognize_once_async().get()
    print("RESULT",result)
    print("RESULT REASON",result.reason)

    # Check the result

    #https://docs.microsoft.com/en-us/dotnet/api/microsoft.cognitiveservices.speech.resultreason?view=azure-dotnet

    #RecognizedSpeech Indicates the speech result contains final text that has been recognized. Speech recognition is now complete for this phrase.

    if result.reason == speechsdk.ResultReason.RecognizedSpeech:

        print('Recognized: {}'.format(result.text))
        print('  Pronunciation Assessment Result:')

    #https://docs.microsoft.com/en-us/dotnet/api/microsoft.cognitiveservices.speech.pronunciationassessment?view=azure-dotnet
        pronunciation_result = speechsdk.PronunciationAssessmentResult(result)
        print('    Accuracy score: {}, Pronunciation score: {}, Completeness score : {}, FluencyScore: {}'.format(
            pronunciation_result.accuracy_score, pronunciation_result.pronunciation_score,
            pronunciation_result.completeness_score, pronunciation_result.fluency_score
        ))
        print('  Word-level details:')
        for idx, word in enumerate(pronunciation_result.words):
            print('    {}: word: {}, accuracy score: {}, error type: {};'.format(
                idx + 1, word.word, word.accuracy_score, word.error_type
            ))
    elif result.reason == speechsdk.ResultReason.NoMatch:
        print("No speech could be recognized")
    elif result.reason == speechsdk.ResultReason.Canceled:
        cancellation_details = result.cancellation_details
        print("Speech Recognition canceled: {}".format(cancellation_details.reason))
        if cancellation_details.reason == speechsdk.CancellationReason.Error:
            print("Error details: {}".format(cancellation_details.error_details))

pronunciation_assessment_from_microphone()

@glharper

@amitkumarshukla : Can you please help me with some example of PullStream or PushStream ??

@amitkumarshukla : can you please help on this please?

@samkuls I am sorry as I thought I replied to you but looks like I replied to some other thread having almost the similar problem. Please look at https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/1215.  Please follow the examples https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/1215#issuecomment-901507916


update the devnet url port

You can probably close this since it's covered in https://github.com/MystenLabs/sui/pull/2221/files#diff-c782e22e0089128fc35ae28ac11b34285ccf02ff0466a1be624b6efd0436128b


[feature] Tork worker default folder

Hello
Now all shell workers create directoty under /tmp and it looks like /tmp/tork[SOME_ID]
Is it possible to change default directory to:
/tmp/[CONFIGURABLE_PATH]/tork[SOME_ID]?
somethin like this:
workdir, err := os.MkdirTemp(worker_path, "tork")

Did you try changing the temporary directory location using Go's TMPDIR env var since Tork relies on the standard library to generate temporary dirs?

Will test this, thanks


[Serving][Backend] Backend support zero_copy_infer and Serving reduce the output memory copy

PR types(PR类型)
Serving
Backend
Describe
Backend support zero_copy_infer and Serving reduce the output memory copy

在模型输出较大时，加速效果明显。


Review PDF for Kubecon

cncf-glossary-v3.pdf
FYI my feedback here is that we need an acknowledgements section and add that all documentation is licensed under CC-BY 4.0 at the end of the glossary.

Nice document 👌


scrabble-score: add additional test case with non-word chars

I propose to add the following test case to the tests of scrabble-score:
{"Hello, world!", 17}

This case contains printable non-word characters and whitespace within the string.
There is currently another test case with non-word characters:
{" \t\n", 0}

However, this case consists of only whitespace characters, and I noticed that many submissions simply use trim() on the string to make the test pass. With my proposed test case, this wouldn't be possible anymore and programmers are stimulated to use a more robust approach to sort out undesired characters.

Further, I suggest that test cases that include non-word chars expect an IllegalArgumentException, not that they expect the non-word chars to be ignored/skipped.
Of course, the extra credit problems for letter- and word-multiplier squares might make that problematic, but there is no indication of how such multiplier squares might be represented as part of the input.

I just opened a PR to update the xjava implementation of this problem to match the current canonical test data (v1.0.0). These test cases no longer include non-alphabetical characters, so I'm going to close this xjava issue.
If either of you feel strongly that non-alphabetical characters should be tested as part of this exercise, or that this exercise would benefit significantly from requiring input validation, please open a new issue in x-common to make your case! Thanks ❤


fullcalendar.js:15 Uncaught ReferenceError: jQuery is not defined

jquery.js already imported, I can use it anywhere inside my project.

Are you sure that jQuery is loaded before the calendar is generated?

I have checked my code, the jQuery file is loaded after fullcal..js
My suggestion is, can we control the position of JS fullcalender scripts rendering? for example at top or bottom.
Thanks,

I could make it so people would be able to include the scripts themselves. Now the scripts get loaded when the calendar is generated. Just not sure when I would have time for this, maybe I'll try to look at it tonight.

@fabuhelow
If you update to the latest version (V1.2.0) you can specify in your config file that you don't want to include the script files, you can then call the following function after your jQuery to load the scripts.
 \Edofre\FullcalendarScheduler\FullcalendarScheduler::renderScriptFiles();


Runtime error in constructor

I'm just trying to import this into an ionic 2 rc-4 app. I npm installed this and proxy-polyfill. If I include HttpInterceptorService in either my class constructor (and don't even use it), or if I add it to @NgModule.imports, then I get a runtime error when the app starts:
Cannot convert undefined or null to object
Stack
TypeError: Cannot convert undefined or null to object
    at hasOwnProperty (<anonymous>)
    at Function.__webpack_require__.o (http://localhost:8100/build/main.js:60:103)
    at Object.<anonymous> (http://localhost:8100/build/main.js:253049:67)
    at __webpack_require__ (http://localhost:8100/build/main.js:20:30)
    at Object.<anonymous> (http://localhost:8100/build/main.js:253127:70)
    at __webpack_require__ (http://localhost:8100/build/main.js:20:30)
    at Object.<anonymous> (http://localhost:8100/build/main.js:124508:79)
    at __webpack_require__ (http://localhost:8100/build/main.js:20:30)
    at Object.<anonymous> (http://localhost:8100/build/main.js:187013:95)
    at __webpack_require__ (http://localhost:8100/build/main.js:20:30)
Ionic Framework: 2.0.0-rc.4
Ionic Native: 2.2.12
Ionic App Scripts: 0.0.48
Angular Core: 2.2.1
Angular Compiler CLI: 2.2.1
Node: 6.8.1
OS Platform: OS X El Capitan
Navigator Platform: MacIntel
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36```

Hi, thanks for reporting an issue.
First what comes into my mind is version mismatch, you should be using angular v2.3.0 or higher.
Please try to update and run again.
And also can you tell which version you are trying to use (cause as far as I know Ionic using AOT and this library got AOT support only since v1.0.0)
Thanks

Unfortunately, Ionic requires specific angular versions, so I can't update to v2.3.0 or higher. Thank you for your quick response though!

Well maybe you can at least try to load lib without proxy polyfill (if a web view supports it natively of course) so we can have better understanding which part is failing?

I was able to switch to angular2-interceptors, but it is less versatile and more restrictive where my interceptors have to be careful not to use Http to avoid cyclic dependencies. I think I'll still need proxy polyfill in order to support a wider range of mobile devices. But I'll see if I can dig a bit deeper to see where it's failing...

Error is coming from:

where 'object' is undefined and 'property' is HttpInterceptorService

Unfortunately this piece of code does not tell me anything since it is generated and I guess not by ngc but by ionic itself which I haven't tried yet.
Maybe I will try to create some simple Ionic app and import lib there to get better understanding what might happen there.

Hi @Emmpa.
I was able to test it in Ionic 2 and I found some weird code generation from Webpack which was trying to access import before it was actually resolved.
So the first fix which crossed my mind is to rearrange exports and I did it - and it fixed the issue =)
I also verified some basic interceptions for requests/responses to make sure everything works well - and it is.
So will push a fix in a while, please do verify that it fixes the issue on your side as well and if not go ahead and reopen this one.
Thanks

Fix landed in v1.3.1

Hi @gund ! Thank you for looking into this! It looks like your change has resolved my issue (and I had to do something minor when it complained about undefined "__extends"), but I can use your module now! Thank you!!

Good to know that it works =)
Regarding your minor issue you can have a look at #89.


[Intel MKL] Adding support for convolution fusions with native format

Thank you for reviewing the PR. I have addressed your comments.


CloudFormation stack count doesn't return full count

Version: aws-quota-checker==1.12.0
when running
aws-quota-checker check cf_stack_count --profile tools --region $region

I'm seeing a maximum of 100 returned for regions that have more than 100 stacks. I suspect this is some kind of paging issue.

@Graham42 Thanks for reporting this. Could you please check out this branch and try it again. It should fix your issue.


CUD mutation - partial Input

Hi,
I am struggling with the CUD mutation and the partial inputs, the schema does not detect at all that the fields are optional

class MyModel(models.Model):
    title = models.CharField()
    subtitle = models.CharField()

# I first tried this
@strawberry_django.input(MyModel, fields="__all__", partial=True)
class MyModelInput:
    pass

# then tried with this
@strawberry_django.partial(MyModel, fields="__all__")
class MyModelInputPartial:
   pass

# and this, also tried with 'auto'
@strawberry_django.partial(MyModel, fields="__all__")
class MyModelInputPartial:
   title: str | None
   subtitle: str | None

@strawberry_django.type(
    MyModel,
    fields="__all__",
)
class MyModelType:
    pass

@strawberry.type
class Mutation:
    update: MyModelType = strawberry_django.mutations.update(MyModelInputPartial)

I tried using NodeInput as well, nothing works, in the schema subtitle and title are always mandatory data inputs
I want to only input either title or subtitle without having to reset the other attribute.
Thanks for you help,

Upvote & Fund

We're using Polar.sh so you can upvote and help fund this issue.
We receive the funding once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.

I think your issue is with the Django bit.
blank is by default False. And it determines in Django if a field is optional when used.
blank=True on the model Field makes it optional with:
@strawberry_django.input(MyModel, fields="__all__", partial=True)
class MyModelInput:
    pass

Alongside with @NT-Timm's comment, a field would also be considered optional if it has a default value.
Based on that, I'm going to close this issue. But, if you think this is still an issue and we should solve it in another way, please comment so I can reopen it.


Support concurent versions of a same data

It would be interesting to support concurrent versions of a same "data", for example in the heat equation, the path would identify the main array and we could keep concurrent versions associated to different time-steps.
For that, the following would be required:

[ ] explicitly tag data with the metadata that makes it unique,
[ ] support a query system to retrieve the value of a "data" associated with specific values of the metadata.

So, basically this would be like a database.

each table in the database would be one "data",
each table would have 1 column named "value" and one column for each of the metadata that make it unique,
when sharing the value, one row would be added to the table, the metadata value would be copied there,
when reclaiming, the row would be removed.

In practice, this means something like adding a map<string, Ref> Data_descriptor::keys() to Data_descriptor to let it model a table row and to let Context return a vector<Data_descriptor> where it currently returns a Data_descriptor to model a database table (i.e. a set of rows)
Please note this crude design proposal is just there to make it easier to understand. A better design should proposed.


Trying to change firstname/lastname as student

When trying to change the firstname as a student, the Web-UI shows the changed username after saving, but a validation error is returned by the backend, so nothing will be changed in the database.

This bug will be fixed with #264 . The change will be online with the next deployment (v0.4.5)


Update grpc-web to v1.2.0

grpc-web 1.2.0 includes a lot of refinements, improvements, and bug fixes. The build has been tested and make test returns no error.

Thanks @pzeinlinger! I want to push grpc 1.31 out too - will include this change with that.

Merged as part of #189


feat: Add ListMetadata + Read + Write functionality to Attio connector

Response:

updated unmarshal logic, used slog for error handling and common package vars

Removed code related to the self object ( Not supported as it is a single object and related to Auth info)
Added mock test for a list of getting metadata.
Implemented read functionality in the Attio connector

Used common functionality for unmarshalling the read response data

Getting a List of Metadata for the supporting objects

Test Result for list of Metadata

Read Functionality Responses

Write Functionality Responses

About creating Webhooks
"Target Url" is one of the body parameters used to create the webhook.
To make the target URL, I created a gin server and implemented the POST method to handle the URL.  Then using ngrok to expose my local server and get the public URL.
With the use of the URL, we can create the webhook. While the Event is triggered, the webhook URL automatically triggered by Attio server.
Also, we can monitor the changes in the ngrok dashboard page.
Adding Query parameter in read functionality
Some supporting objects have pagination in the Attio connector but, we give the pagination value through a query parameter. So I added the url.WithQueryParams() function manually in the read functionality. If the object has a process to handle the query parameter then the query value will be added to the URL or otherwise, it will neglected.

I have changed the pagination logic for the read functionality in the Attio connector

In that while using DumpJSON  function for printing the response, I faced issue with the next page response like

and also I tried with Json.MarshalIndent function again getting the same result.
so I changed the marshalIndent logic like below

and got the nextpage URL like

It is just printing the response so I removed my marshalIndent logic and used json.MarshalIndent function for printing the response.
some object in the Attio connector don't require pagination, so I make the restriction using supportLimitAndOffset variable and check in the read functionality like

If the URL contains query parameters like limit and offset and has a response value, then only next page data will generate in the response otherwise it will return empty value in the next page


HV-1526 Create separate validation context for different validation kinds

https://hibernate.atlassian.net/browse/HV-1526

Hi @gsmet, this is part of a preparation work for property holder validation. I tried to do smaller commits so it's easier to see what's happening. Mainly there are two bigger things and a couple small ones done so far.

added multiple validation contexts for different validation operations.
extracted the interface from previous ValidationContext and split responsibilities into two interfaces. The idea behind this part is that context used in ConstraintTree is pretty generic to validation operations and we can and would want to use the same interface for future property holder contexts.

I haven't started exploration of possible replacement/improvement of parameter validation context yet as it seems it would need more work and I want to get property holder validation in better shape first.

BTW, good call to push these commits separately.

@marko-bekhta I added a few more comments, mostly typos and formatting issues.
I suggested something about the change I found too invasive for a very small benefit, let's see if you agree with that. I think it would be a nice compromise for now and we can later refine it if it happens to be needed.

@gsmet sorry for all the typos and formatting. I think I fixed the problem in the IDE and it should not mess up the existing code.
As for extracting CrossParameterConstraintValidatorContext I've done that. I've thought about such approach initially but wasn't sure that making some of those inner builder classes visible would be good (e.g. ConstraintViolationBuilderImpl or NodeBuilder)

Finally got to the bottom of it. I made quite a lot of editorialization.
One thing for the future: for internal interfaces/classes, you don't need to write dumb javadoc. We expect javadoc for the API/SPI and if the purpose of the method should be explained. It avoids having to maintain it in the future.
In the same vein, I updated the toString() methods to use getClass().getSimpleName() to avoid having stalled class names in the future.
Apart from that, reworded a couple of comments and fixed a few warnings (missing @Override and type parameters, not sure your IDE warns you about them).
Anyway, nice work and glad to see this tackled. I remember the first time we played with this idea a few months ago with a bit of emotion ;).
Thanks!


Cassandra Websocket support

The objective of this PR is to add support for CQL over Websockets through Shotover. That means having a Websocket listener on Shotover that a compatible driver can send CQL messages to and have Shotover pass these messages to Cassandra through the traditional TCP socket, receive the responses and return it over the Websocket protocol to the client.
At the moment the only instance of this in the wild is an experiment from last year by the Scylla team that is not in production: https://www.scylladb.com/2022/08/11/scylladb-student-projects-cql-over-websocket/.
I am using the tokio-tungstenite library which handles all the websocket internals and lets us just feed the data of a binary Websocket message (which will be raw Cassandra protocol bytes) into our codecs. I also make use of the Sec-WebSocket-Protocol header to specify "cql" as the sub-protocol being used. Some examples of other database technologies using this: https://www.iana.org/assignments/websocket/websocket.xml.
To test this I began work on a simple Cassandra driver: https://github.com/conorbros/cql-ws
The design for configuring the Websocket listener in the topology.yaml is as follows, open to other suggestions as I just went with the simplest one to start with.
---
sources:
  cassandra_prod:
    Cassandra:
      listen_addr: "<IP_ADDRESS>:9042"
      websocket: true
chain_config:
  main_chain:
    - CassandraSinkSingle:
        remote_address: "<IP_ADDRESS>:9043"
        connect_timeout_ms: 3000
source_to_chain_mapping:
  cassandra_prod: main_chain

Moving forward:

make it robust, handle the shutdown logic properly
flesh out the test driver more and get more coverage
investigate performance and what can be done to improve it

Good start! We can flesh out test coverage and perf in a different PR - Getting the shutdown logic sorted will be good to land this patch

Alright, got the shutdown flow finished, just a couple error handling todos

I think now the shutdown flow is handled this can merged as is, I've started modifying the test driver to let us send different types of Websocket messages that will let us test the error handling for that. But as it stands this PR has the MVP functionality.

in terms of API, we could make it a field like transport: WebSocket that would let us extend to more types of transports in the future, e.g. transport: Quic

This is pretty cool work!
Just fix the remaining comments and I'll be able to approve.
In order to make use of this in a meaningful way I imagine we'll want to modify an existing driver to get all the driver features one would expect.
Do we have any plans for that?
Also, have you considered wrapping websockets such that they can be exposed as a tokio AsyncRead/AsyncWrite?
I imagine that kind of abstraction would let us share the websockets logic between shotover and the driver and would make for an easier drop in replacement of TCP for shotover or any driver that uses AsyncRead/AsyncWrite.
I imagine it would also come at a performance cost though.

https://github.com/snapview/tokio-tungstenite/issues/32


Missing rrules on x86 Julia for matrix distributions

I'll preface this by saying that these excerpts are being run on x64 Linux but with an x86 Julia binary, so I'm not sure how relevant / reproducible they really are, but it's causing some Turing test failures upstream, so...
The different distributions in the MWE below result in slightly different types in the error traceback. For Wishart it's Tuple{Val{(:dpotrf_, Symbol("libblastrampoline.so.5"))},..., for MatrixBeta it's :dgetrf, and for the MvNormals it's :dtrtrs.
using Distributions: Wishart, MatrixBeta, MvNormal
using DynamicPPL: @model, LogDensityFunction
using LogDensityProblems: logdensity_and_gradient
using LogDensityProblemsAD: ADgradient
import Mooncake

d = Wishart(7, [1 0.5; 0.5 1])

# These also fail
# d = MatrixBeta(3, 4, 4)
# d = MvNormal([0. ;0.; 0.], [1. 0. 0.; 0. 1. 0.; 0. 0. 1.])
# d = MvNormal([0.; 0.], [1. 0.; 0. 1.])

@model mat() = x ~ d
ℓ = ADgradient(:Mooncake, LogDensityFunction(mat()))
logdensity_and_gradient(ℓ, vec(rand(d)))

Full traceback (for Wishart)
ERROR: No rrule!! available for foreigncall with primal argument types Tuple{Val{(:dpotrf_, Symbol("libblastrampoline.so.5"))}, Val{Nothing}, Tuple{Val{Ref{UInt8}}, Val{Ref{Int32}}, Val{Ptr{Float64}}, Val{Ref{Int32}}, Val{Ptr{Int32}}, Val{Int32}}, Val{0}, Val{:ccall}, Ptr{UInt8}, Ptr{Int32}, Ptr{Float64}, Ptr{Int32}, Ptr{Int32}, Int32, Int32, Base.RefValue{Int32}, Base.RefValue{Int32}, Matrix{Float64}, Base.RefValue{Int32}, Base.RefValue{UInt8}}. This problem has most likely arisen because there is a ccall somewhere in the function you are trying to differentiate, for which an rrule!! has not been explicitly written.You have three options: write an rrule!! for this foreigncall, write an rrule!! for a Julia function that calls this foreigncall, or re-write your code to avoid this foreigncall entirely. If you believe that this error has arisen for some other reason than the above, or the above does not help you to workaround this problem, please open an issue.
Stacktrace:
  [1] rrule!!(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/rrules/foreigncall.jl:12
  [2] potrf!
    @ /opt/hostedtoolcache/julia/1.10.5/x86/share/julia/stdlib/v1.10/LinearAlgebra/src/lapack.jl:3217 [inlined]
  [3] (::Tuple{…})(none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…})
    @ Base.Experimental ./<missing>:0
  [4] (::MistyClosures.MistyClosure{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/rzVHC/src/MistyClosures.jl:15
  [5] DerivedRule
    @ ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:734 [inlined]
  [6] (::Mooncake.LazyDerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:1509
  [7] #cholesky!#140
    @ /opt/hostedtoolcache/julia/1.10.5/x86/share/julia/stdlib/v1.10/LinearAlgebra/src/cholesky.jl:268 [inlined]
  [8] (::Tuple{…})(none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…})
    @ Base.Experimental ./<missing>:0
  [9] (::MistyClosures.MistyClosure{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/rzVHC/src/MistyClosures.jl:15
 [10] DerivedRule
    @ ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:734 [inlined]
 [11] (::Mooncake.LazyDerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:1509
 [12] #cholesky!#141
    @ /opt/hostedtoolcache/julia/1.10.5/x86/share/julia/stdlib/v1.10/LinearAlgebra/src/cholesky.jl:296 [inlined]
 [13] (::Tuple{…})(none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [14] (::MistyClosures.MistyClosure{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/rzVHC/src/MistyClosures.jl:15
 [15] DerivedRule
    @ ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:734 [inlined]
 [16] (::Mooncake.LazyDerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:1509
 [17] nonsingular_wishart_logkernel
    @ ~/.julia/packages/Distributions/uuqsE/src/matrix/wishart.jl:189 [inlined]
 [18] (::Tuple{…})(none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [19] (::MistyClosures.MistyClosure{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/rzVHC/src/MistyClosures.jl:15
 [20] DerivedRule
    @ ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:734 [inlined]
 [21] (::Mooncake.LazyDerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:1509
 [22] invlink_with_logpdf
    @ ~/.julia/packages/DynamicPPL/ooLj8/src/abstract_varinfo.jl:782 [inlined]
 [23] (::Tuple{…})(none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [24] (::MistyClosures.MistyClosure{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/rzVHC/src/MistyClosures.jl:15
 [25] DerivedRule
    @ ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:734 [inlined]
 [26] (::Mooncake.LazyDerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:1509
 [27] tilde_assume!!
    @ ~/.julia/packages/DynamicPPL/ooLj8/src/context_implementations.jl:144 [inlined]
 [28] (::Tuple{…})(none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [29] (::MistyClosures.MistyClosure{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/rzVHC/src/MistyClosures.jl:15
 [30] (::Mooncake.DerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:734
 [31] (::Mooncake.DynamicDerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:1447
 [32] (::Mooncake.RRuleZeroWrapper{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:247
 [33] mat
    @ ./REPL[26]:1 [inlined]
 [34] (::Tuple{…})(none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [35] (::MistyClosures.MistyClosure{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/rzVHC/src/MistyClosures.jl:15
 [36] (::Mooncake.DerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:734
 [37] (::Mooncake.LazyDerivedRule{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ Mooncake ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:1509
 [38] RRuleZeroWrapper
    @ ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:247 [inlined]
 [39] logdensity
    @ ~/.julia/packages/DynamicPPL/ooLj8/src/logdensityfunction.jl:138 [inlined]
 [40] (::Tuple{…})(none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…}, none::Mooncake.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [41] (::MistyClosures.MistyClosure{…})(::Mooncake.CoDual{…}, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/rzVHC/src/MistyClosures.jl:15
 [42] DerivedRule
    @ ~/.julia/packages/Mooncake/GMFJI/src/interpreter/s2s_reverse_mode_ad.jl:734 [inlined]
 [43] logdensity_and_gradient(∇l::MooncakeLogDensityProblemsADExt.MooncakeGradientLogDensity{…}, x::Vector{…})
    @ MooncakeLogDensityProblemsADExt ~/.julia/packages/Mooncake/GMFJI/ext/MooncakeLogDensityProblemsADExt.jl:48
 [44] top-level scope
    @ REPL[28]:1
Some type information was truncated. Use `show(err)` to see complete types.

versioninfo()
(This was run on a github actions runner)
julia> versioninfo()
Julia Version 1.10.5
Commit 6f3fdf7b362 (2024-08-27 14:19 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (i686-linux-gnu)
  CPU: 4 × AMD EPYC 7763 64-Core Processor
  WORD_SIZE: 32
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

This looks quite odd, because I'm quite sure that I've added rules for all of these things. There must be something slightly off with the rule implementations -- I'll take a look once the 1.11 stuff is resolved.

I believe this to be resolved on 0.4.16 . The problem was just that the name associated to the BLAS / LAPACK function being ccalled varies depending on whether you're running a 64bit vs 32bit system. I had never run Mooncake on 32 bit, so I had missed this.
I'll leave it to you to close this issue if the Turing.jl problems have been resolved!

Indeed, it's fixed in Turing CI :) Thanks Will!


[Bug] Virus in Windows Setup file

Describe the bug
Trojan Ransom:Win32/Spursint.F!cl reported in Windows Setup file by Windows Defender.
To Reproduce
Steps to reproduce the behavior:

Go to downloaded file
Run antivirus scanner
See error

Expected behavior
No action
Screenshots
If applicable, add screenshots to help explain your problem.
Program version. You can find it in the Info tab of the setting window
1.62
Data version. You can find it in the Info tab of the setting window
16 Feb 2023

Additional context
Add any other context about the problem here.

Hello and ty for the report. If you downloaded the program from our github repo (https://github.com/WoWs-Builder-Team/WoWs-ShipBuilder/releases/tag/v1.6.2) then that's 100% a false positive due to the application not being signed. Signing an application is very expensive and beyond our possibilites atm. Because of that AV programs sometimes flags it as virus. If you didnt download it from our repo then i strongly advise you to remove it since we cannot guarantee the safeness of our application if not downloaded from our official git repo. If you still do not trust the application you can use the web version at https://app.wowssb.com/

This is a false positive, for details see https://forum.worldofwarships.eu/topic/156510-121toolendehuitjpbrru-wows-shipbuilder-v162/?tab=comments#comment-4355024 and https://www.virustotal.com/gui/file/5e362bda170fc7a54ee510c9b9d3066e1f13533989f2465d0c8a71d96b598861/


KAFKA-12196 Migrate connect:api module to JUnit 5

change import
assertThrows replaces try-catch

@g1geordie Please fix conflicting files :)

@g1geordie Please fix conflicting files :)

@g1geordie Please fix conflicting files again :)

@g1geordie Please fix conflicting files again :)

I fixed the conflict.

I fixed the conflict.

@ijuma  thank you for quick help 👍

@ijuma  thank you for quick help 👍


test PR with Github API

Please pull this in!

Docs Build status updates of commit 057737f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

node-azure-tools.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Backport https://github.com/grpc/grpc/pull/17997 to 1.18.x

Backports https://github.com/grpc/grpc/pull/17997 to v1.18.x - fixes ruby on windows

Android failed, but was due to https://github.com/grpc/grpc/issues/18006
Bazel RBE ASAN all tests failed with:
[  PASSED  ] 4 tests.
==19==LeakSanitizer has encountered a fatal error.
==19==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
==19==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)

... which was documented/fixed in https://github.com/grpc/grpc/issues/17846
interop cloud to prod tests failed, but one of the test servers was down on Monday
ios binary size failure: https://github.com/grpc/grpc/issues/17550

@srini100 I'm not authorized to merge on this branch, are you able to merge this?

No, I don't have permission either. This branch is locked. @nicolasnoble, can you merge?


Integrate chromatic for visual regressions

Chromatic can comment on our PRs with snapshot updates for visual regressions, we will be fine on free tier if we add limits to exactly what components were changed in the PR


Is CCL thread safe?

We need to check this, particularly for integration to TJPCosmo

As per the GSL docs anywhere that we use GSL is thread safe unless we do any really wacky things.

Actually, one thing that isn't thread-safe automatically is splines. Or rather, splines are thread-safe, but interpolation accelerators aren't. See #137

Yes!


1.json explanation

Hi, thx for sharing the work!
I have some questions about 1.json.
The following is part of 1.json.
boxes has four floats and hands_boxes has 8 floats (4 floats for each hand I guess). Are they representing top left and bottom right coordinates? If so, why do some boxes have floats bigger than 1.0? Aren't they normalized coordinates?
"boxes": [
      [
        [
          0.2140564318056461,
          0.2613191584746043
        ],
        [
          0.6636727227105035,
          0.9934246321519214
        ]
      ]
    ],
    "hands_boxes": [
      [
        [
          0.28504847773799186,
          0.27063686450322466
        ],
        [
          0.3797045389811198,
          0.342516311009725
        ]
      ],
      [
        [
          0.30871249304877385,
          0.2892722765604656
        ],
        [
          0.3702389328568069,
          0.35050291617711393
        ]
      ]
    ],

An example of boxes that has larger float than 1.0
"boxes": [
      [
        [
          0.2190996357688197,
          0.2629189019401868
        ],
        [
          0.664075881684268,
          1.097693155830105
        ]
      ]

EDIT
The floats are indeed the coordinates of bboxes. They are used in the following way:
# ControlNeXt-SVD-v2-Training/utils/pkl_dataset.py
                hands_mask = torch.zeros((guide_values.shape[0], 1, guide_values.shape[2], guide_values.shape[3]))
                if 'meta_info' in self.meta_info[idx].keys():
                    with open(self.meta_info[idx]['meta_info']) as f:
                        meta_info = json.load(f)

                    for idx, frame_id in enumerate(frame_ids):
                        if 'hands_boxes' in meta_info[frame_id].keys():
                            hand_boxes = meta_info[frame_id]['hands_boxes']
                            for (x0, y0), (x1, y1) in hand_boxes:
                                draw_mask(hands_mask[idx], x0, y0, x1, y1, 1.)

same question, by the way, do you know  how to get hand box?

@aleeyang check out ControlNeXt-SVD-v2/dwpose/wholebody.py. inference_pose outputs bboxes I guess. Haven't tried myself yet tho.

thank you. I am using the box generate from the hand keypoints.

We use DWPose to generate pose videos and meta-information, including the hands and body bounding boxes.
Are these boxes represented by the top-left and bottom-right coordinates?
Yes.
If so, why do some of the coordinates have values greater than 1.0?
As you may notice, this can occur when parts of the body are off-screen or partially hidden. Using a min function can resolve this. For more details, please refer to the DWPose project documentation.
Are the coordinates normalized?
Yes.


How to go about integrating mediapipe's Pose Tracking into an existing Visual Studio C++ project?

Description
I must admit that I am quite a newb when it comes to build systems. So far I've managed to build the hello_word and the Pose Tracking examples on Windows (going through quite a few hoops along the way). Of course, building those examples gives me an executable, which I can't integrate in another project.
What I'd like to do is have mediapipe as a dll or something similar so I can pass the framework an image and get joint coordinates in return, ideally. Can someone point me in the right direction?
I am going to use this Pose Tracking project
https://github.com/google/mediapipe/tree/master/mediapipe/examples/desktop/pose_tracking
https://github.com/google/mediapipe written in C ++ language in Visual Studio 2019 for another project in C #. I built it through Bazel in Windows 10 according to the document instructions and output a file.exe gave me I can not use this source code in .cc format in Visual Studio 2019 I wanted to help me how can I compile projects that I compile through Bazel I can use in Visual Studio. I found the following links but unfortunately the output which is in the form of sln project 2019 file in C ++ did not give me output.

Spam asking the same questions to random people.


Error running BAM

I'm getting this error when I'm trying to running  BAM
/pine/scr/k/w/kwamek/pengda_collab/IRFinder-2.0/bin/util/irfinder: error while loading shared libraries: libboost_iostreams.so.1.65.1: cannot open shared object file: No such file or directory

Got it Thanks.


Modular DataTable

What type of PR is this? (check applicable) 🚧

[ ] ♻ Refactor
[X] ✨ Feature
[ ] 🐛 Bug Fix
[ ] 👷 Optimization
[ ] 📝 Documentation Update
[ ] 🔖 Release
[ ] 🚩 Other

Describe your PR request 🔥
Adds a wrapper component for HTML table styles, as well as a demo of it.
Also implements the DataTable on the Members page.
Mobile & Desktop Screenshots/Recordings 📷

Related Issues 🩹
Resolves #16
Added to documentation? 📝

[ ] 📜 readme
[ ] 📜 other
[X] 🙅 no documentation needed

I didn't specify this clearly, but I believe the approach should be passing the columns and data as props rather than as children. It would better separate the component and alleviate the need to use Tailwind's @apply.
An example would be more like this.
const data = fetch(...);
const columns = ["Contact ID", "UH ID", ...];

return (
  <Datatable columns={columns} rows={data} />
);

I made a component demonstrating DataTable usage with some dummy values from the figma file.


Unable to install

Hi Martin,
I've followed all the instructions, and I am able to access my homebridge, and have managed to install the WeMo plugin.  When I try to install this plugin, I get the following error.
pi@raspberrypi:~ $ sudo npm install -g homebridge-airscape-whf-gen2-http
npm WARN npm npm does not support Node.js v10.15.2
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
npm ERR! code E404
npm ERR! 404 Not Found: homebridge-airscape-whf-gen2-http@latest
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-09-01T23_00_23_220Z-debug.log
I doubt it is due to the newer version of Node.js, but it is of course possible.
Thanks,
Drew

Any comments?
Thanks,
Drew


Brightness up to 1024

Hello!
I made a esp8266 rgb controller wich works fine by the way, but the brightness is too low. Is there any posibility to set the brightness more than 255?

espalexa has an eight bit unsigned value for brightness = 255 (=100%). ESP8266 uses a twelve bit PWM, so you must multiply the espalexa brightness value by four.
//callback function
void light_callback_example(uint8_t brightness);
{
analogWrite( LED, 4*brightness);
}

https://create.arduino.cc/projecthub/muhammad-aqib/arduino-pwm-tutorial-ae9d71

espalexa has an eight bit unsigned value for brightness = 255 (=100%). ESP8266 uses a twelve bit PWM, so you must multiply the espalexa brightness value by four.
//callback function
void light_callback_example(uint8_t brightness);
{
analogWrite( LED, 4*brightness);
}

https://create.arduino.cc/projecthub/muhammad-aqib/arduino-pwm-tutorial-ae9d71

It worked!
Thank you so much!

It worked!
Thank you so much!


[New game]:  Add Pattern Creation Game

🎮 Game Request
Game logic and basic description
Concept: Provide players with a grid and allow them to create patterns using different colors. They can then save and share their patterns.
Implementation: Use HTML for the grid, CSS for styling, and JavaScript to handle user interactions and pattern saving.
Point down the features
Game points
When the game starts, the player is presented with a grid (e.g., 10x10) of empty cells.
A palette of colors is available on the side for the player to choose from.
The player can select a color from the color palette by clicking on it.
The selected color becomes the active color for painting the grid cells.
The player clicks on any cell in the grid to fill it with the selected color.
The player can change the selected color at any time and continue filling cells to create a pattern.
Clicking a filled cell again will allow the player to change its color or reset it to empty. And further saving and sharing it.
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @ananyag309 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @ananyag309 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Subpaths with URI parameters are created as list items without a newline.

When list items are generated as part of a list of URIs which are subpaths, they end up on the same line instead of sequential, ie, when rendering:
/clusters:
  get:
  post:
  /{cluster_id}:
    get:
    put:

You'll end up with this:

/clusters * /clusters/{cluster_id}

instead of

/clusters
/clusters/{cluster_id}

Actually, it looks like it occurs regardless of the URI parameters. All subpaths get created as inline lists.


Linux Support

Not trying to be a nagging nancy, but I think we can all agree that anything to do with terminals should support Linux from the start.
Some official support for Linux would be great or at least documentation on how to ensure it's properly installed as I can't get it to install using the described method on any of my machines.

FWIW, it's working for me on Arch Linux just fine.

Seems to be working on Ubuntu Gnome 14.04 too

I'm having problems installing it, but I think it's just npm being slow.  I'm going to try it again and see if I can figure it out.
Either way, README states that Linux is not officially supported and I feel official support will he helpful in the future.

:+1:

Please check before creating your own issue: Linux support #49 . There's a lot of info there.

@flawiddsouza Thank you, I hadn't found that with a quick search of the issues, but my eyes tend to miss things easily.  Closing issue appropriately.


Update storage_guide.md

Issue #, if available:
Description of changes:
Document update
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #478   +/-   ##
=======================================
  Coverage   89.67%   89.67%
=======================================
  Files          59       59
  Lines        2974     2974
  Branches      588      588
=======================================
  Hits         2667     2667
  Misses        292      292
  Partials       15       15

Continue to review full report at Codecov.

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


Truncated subcommands such as quickwit index or quickwit source should display the subcommand help.

$ quickwit source
Failed to parse command arguments: Failed to parse source subcommand arguments.

Let's display the same output as quickwit source --help.

Strange, on main it's already displaying the help message without adding --help.

Not able to reproduce. Most likely happened as I was adding a command to the CLI.


Protect Bindings

Fix Issue #243

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.83% :tada:

Comparison is base (c10aaa5) 78.03% compared to head (6677726) 78.87%.
Report is 29 commits behind head on main.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #251      +/-   ##
==========================================
+ Coverage   78.03%   78.87%   +0.83%
==========================================
  Files          70       69       -1
  Lines        5751     5685      -66
==========================================
- Hits         4488     4484       -4
+ Misses       1263     1201      -62

Files Changed
Coverage Δ

src/lower.jl
93.91% <100.00%> (-1.07%)
:arrow_down:

src/virtualize.jl
95.83% <100.00%> (+0.37%)
:arrow_up:

... and 48 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

can we fix this in ScopeVisitor instead?


Move confStorage from src/pai-management to deployment/

Coverage increased (+19.7%) to 71.704% when pulling a1cc731bc82ebff88a9685526dec4936da0fa842 on yuye/git-integrate into 3f7190dd185c75ca42a38a03a3c9def172798106 on master.


fix(ndt_scan_matcher): fixed oscillation in ndt_scan_matcher

Description
This PR addresses a issue related to oscillation detection in the ndt_scan_matcher.
Context
The execution time of the ndt_scan_matcher is proportional to the number of iterations. In the current ndt_omp implementation, since line search is disabled, ndt_scan_matcher sometimes experiences oscillations, leading to a high number of iterations. Monitoring for oscillation can be beneficial when ndt_scan_matcher performance slows down.
Changes

Fixed a bug where the vector was not normalized in the calculation of oscillation.
Fixed to add output the oscillation count in /diagnostics.

Tests performed
It has been confirmed that the logging_simulator runs with the same accuracy as before on AWSIM data with GT.
Additionally, for a internal rosbag known to cause oscillations, it was observed that the oscillation count is accurately reported in /diagnostics and is correlated with execution time. Below is the resulting plot.

Effects on system behavior
There are no effects on system behavior.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

FYI: here is my oscillation visualization script.
#!/usr/bin/env python3
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_csv("diagnostics.csv")  # ros2 topic echo /diagnostics > diagnostics.csv
ndt_result = df[df.iloc[:, 4] == "ndt_scan_matcher"]

execution_time = ndt_result.iloc[:, 8].values.astype(np.float)
local_optimal = ndt_result.iloc[:, 10].values.astype(np.float) * 10
iteration = ndt_result.iloc[:, 12].values.astype(np.float)
oscilation = ndt_result.iloc[:, 18].values.astype(np.float)

plt.plot(execution_time, label="execution_time [ms]")
plt.plot(local_optimal, label="local_optimal [0 or 10]")
plt.plot(iteration, label="iteration []")
plt.plot(oscilation, label="oscilation []")
plt.legend()
plt.show()


Deploying Digital Twin Endpoints does not work through symbolic reference

Bicep version
Bicep CLI version 0.15.31 (3ba6e06a8d)
Describe the bug
Creating endpoints for Azure Digital Twins (ADT) by using symbolic links to an existing ADT instance does not work, but it does work when the ADT instance is created within the same deployment.
To Reproduce
What works:
resource newDigitalTwinsInstance 'Microsoft.DigitalTwins/digitalTwinsInstances@2023-01-31' = {
  name: newDigitalTwinsInstanceName
  location: 'westeurope'
}

resource endpoint 'Microsoft.DigitalTwins/digitalTwinsInstances/endpoints@2023-01-31' = {
  parent: newDigitalTwinsInstance
  name: endpointName
  properties: {
    authenticationType: 'KeyBased'
    endpointType: 'EventGrid'
    TopicEndpoint: TopicEndpoint
    accessKey1: '(PLACEHOLDER)'
    accessKey2: '(PLACEHOLDER)'
  }
}

What does not work but is expected to work:
resource existingDigitalTwinsInstance 'Microsoft.DigitalTwins/digitalTwinsInstances@2022-10-31' existing = {
  name: existingDigitalTwinsInstanceName
}

resource endpoint 'Microsoft.DigitalTwins/digitalTwinsInstances/endpoints@2023-01-31' = {
  parent: existingDigitalTwinsInstance
  name: endpointName
  properties: {
    authenticationType: 'KeyBased'
    endpointType: 'EventGrid'
    TopicEndpoint: TopicEndpoint
    accessKey1: '(PLACEHOLDER)'
    accessKey2: '(PLACEHOLDER)'
  }
}

Additional context
When using symbolic reference it throws the error:
{"code": "MissingArgument", "message": "Target - '<ADT_NAME/ENDPOINT_NAME>'. Input parameter 'source' is missing."}

@ogiel would you mind sharing the correlationId for this failure?

@anthony-c-martin not 100% which correlationId you mean but I get this when I try to deploy it through symbolic reference:
x-ms-correlation-request-id: e96f04fb-88c1-4bb4-b27b-528d1ead356a
The deployment itself does not fail because it will not start. It says there is an InvalidTemplateDeployment (which is not the case when not using symbolic reference to the same ADT instance).


Is there way to update Wifi Settings, without reseting ?

Also is there way to safe External port, if you doing port forwarding...
lets say from from 8080 external to 80 internal...
Thank you,

What do you mean by resetting? The easiest option is to add a button or short the config pin to ground, do that as you press the reset button or add power..
For port forwarding, what you are saying is possible assuming your router supports it, but alternatively if your router doesn't then  just set the device port to something random.. I would probably pick something more cryptic than 8080 or 81 as both are frequently used.. but a bit of port sniffing would still discover the device.. I wouldn't call opening it up safe anyway, but relatively low risk..
Also if you have just added the ESP8266 board library, V1.4.1 has a memory leak and you will likely get issues, 1.4.0 works fine.. just to save you some headaches :)

my point is that without saving external port somewhere in config, External URL get the wrong port...
Also i was asking if there a way to navigate to Wifi Config page without pressing a button, maybe there is hidden url or something... in case i what see what i entered... etc...
Thank you for Reply, i been playing with project and so far really like it...

The external port will be the same as the internal port if you just do a standard port forward, if you want to re-map this to something else externally on your router then you can.. when copying URLs from the web front end you can then just amend the :80 to :8080 or whatever you need..that's the easiest option here. It could be updated in code, but there are reasons to specify the internal port in the code as the web server needs to operate on that port, so it's mainly there for that purpose.. but the external port makes no difference other than displaying the link (I believe, I don't think this is used by Amazon?).. if you are keen to update the code you could do this by adding duplicates of the below fields thorough out the code with a prefix of ext then update the appropriate entries at about line 963 to refer to the extport instead of port
port
port_str
I had a play last night to see if I could get to the config page without pressing the button, I had no luck either.. it would be a good idea.. except that someone without physical access to the device could then in theory change the settings (a risk when you open to an external port).. This may be the reason it's not been opened, or could just be a code or memory limitation..
I've only been playing with this for a few months, and I now have a couple of these around the house linked to SmartThings.. I think this is an excellent project and quite simple even for a novice!

Also if you have just added the ESP8266 board library, V1.4.1 has a memory leak and you will likely get issues, 1.4.0 works fine.. just to save you some headaches :)
Could you clarify which library you mean exactly? I checked all libraries mentioned in the README but could not find one with version number close to 1.4.0 / 1.4.1.

Yes sorry for the confusion!


Refactor Message Retreiver waitgroup

Recator the wait group that is part of the message retreiver so we can block
shutdown if we're in the middle of processing transactions.

Coverage remained the same at 26.884% when pulling b3be6e02b0eccac39fd46cbf3a069609be0da09b on mr into<PHONE_NUMBER>f3e76fb803f58e8e110c2c4daa98d9 on master.

Coverage remained the same at 26.884% when pulling fb4cf60df4b4ae423af03813657075fe349109a2 on mr into<PHONE_NUMBER>f3e76fb803f58e8e110c2c4daa98d9 on master.

Coverage remained the same at 26.884% when pulling fb4cf60df4b4ae423af03813657075fe349109a2 on mr into<PHONE_NUMBER>f3e76fb803f58e8e110c2c4daa98d9 on master.


Blocks' help links are directed to Concrete5.6 documentation.

Changed links to a new documentation.

Nice catch.


Roll engine 74625aed323d..5d19c8795523 (6 commits)

https://github.com/flutter/engine/compare/74625aed323d...5d19c8795523
git log 74625aed323d..5d19c8795523 --no-merges --oneline
5d19c8795 Roll src/third_party/skia e514fa0f1a6c..4ef464cd3c2e (1 commits) (flutter/engine#6329)
5879daed1 Roll src/third_party/skia a85f3a138cbc..e514fa0f1a6c (1 commits) (flutter/engine#6328)
4974d7464 Roll src/third_party/skia 45239cb84d1d..a85f3a138cbc (7 commits) (flutter/engine#6327)
8743bb82d Format for #6324 (flutter/engine#6326)
89516aad9 Engine::Run returns enum: success, failure, or isolate already running (flutter/engine#6324)
83ec05d7a Roll src/third_party/skia a9adb6f03525..45239cb84d1d (9 commits) (flutter/engine#6323)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Trybots failed. These were the failed builds: https://flutter-dashboard.appspot.com/build.html

Commit queue failed; closing this roll.


Fixed #1227 - 2.0: Authentication (Replicator)

Update Replicator APIs to follow latest spec.

Implemented SessionAuthenticator.authenticate(). I'd like to keep constants in Authenticator till C4Socket is refactored. Thanks!


Sortby update

Related Issue(s): #
https://github.com/radiantearth/stac-spec/issues/727
Proposed Changes:

Changed sort api extension to use "+" and "-" field prefixes to define sort order for GET requests

PR Checklist:

[x] This PR has no breaking changes.
[x] I have added my changes to the CHANGELOG or a CHANGELOG entry is not required.
[x] API only: I have run npm run generate-all to update the generated OpenAPI files.

I know this isn't part of your change, but you also mind updating the JSON example to use properties.created rather than created?


The run button is a grey square

Hey, so the love2d run button is just a grey square

thanks for your feedback, i released a new version 1.10.2 to fix this issue, please reinstall and try again!


Pagefind Update

Hi,
Thank you for this PR.
I see you changed the package file by adding
"pagefind": "^1.2.4"
but

Pagefind is only at v1.0.3 as of now (https://github.com/cloudcannon/pagefind and https://www.npmjs.com/package/pagefind) and
TinyRocket does not use Pagefind internally. It is only used during the build step npm run build; npx pagefind --source dist (see https://tinyrocket.pages.dev/doc/ under "Search"). Adding the npm package does not do anything.

Cheers.

I am sorry.
so you dont use this one ?
https://github.com/shishkin/astro-pagefind

No. TinyRocket existed months before that.
In src/pages/search.astro, the page loads pagefind css and js which were pulled during the build npm run build; npx pagefind --source dist.


isAuthenticated() replacement

I'm trying to migrate from the old java-container-security to this library and I'm having problems replicating isAuthenticated() with the new library.
Basically I don't care about roles and I want to allow any authenticated user access to my service.
Using https://help.sap.com/viewer/4505d0bdaf4948449b7f7379d24d0f0d/2.0.04/en-US/cc45f1833e364d348b5057a60d0b8aed.html
With     <login-config>         <auth-method>XSUAA</auth-method>     </login-config>
and @ServletSecurity(@HttpConstraint(rolesAllowed = { “???” }))
I've tried various other rolesAllowed = "*", "", null etc but nothing seems to work.
I've also tried to use the "openid" role which always seems to exist but that doesn't seem to work.
When I look at the JWT token I can see that the scope includes "openid" but I still get:
`2/25/20 2:57:50.713 PM [APP/4-0] SYS   #2.0#2020 02 25 14:57:50.713#-08:00#DEBUG#org.apache.catalina.realm.RealmBase#
###A13EC8F04A914FB1A7AEEA2D18ADBA0B##xsahaa-java#org.apache.juli.logging.DirectJDKLog########http-nio-<IP_ADDRESS>-50128-exec-1#PLAIN##
Username [XSAHAA_TEST_USER] does NOT have role [openid]
2/25/20 2:57:50.713 PM [APP/4-0] SYS   #2.0#2020 02 25 14:57:50.713#-08:00#DEBUG#org.apache.catalina.realm.RealmBase#
###FDED7D6B88044702B7941AC0CE1561C4##xsahaa-java#org.apache.juli.logging.DirectJDKLog########http-nio-<IP_ADDRESS>-50128-exec-1#PLAIN##
No role found:  openid
`
It seems like it's removing all non-local scopes/roles and I'm not sure how to disable it.
Any ideas on how to make either of these methods work?

Hi @mobad
Which lib do you make use of? The new java security library? This repo combines several libraries...
Please check the settings „localScopeAsAuthorities“ you probably did in context of SAPOfflineTokenServices (as documented here:
https://github.com/SAP/cloud-security-xsuaa-integration/blob/master/java-security/Migration_SpringSecurityProjects.md#configuration-changes).
With this, the non-local scopes are filtered, like „openid“. And you can check for your application specific scopes without the xsappname (application id) prefix, like „appid!t123.“.
Best regards,
Nena

Hi @nenaraab,
So we were originally using a old version of java-container security but with a weird setup.
We were using tomcat with spring security and we're running on XSA.
Basically the setup described here https://help.sap.com/viewer/4505d0bdaf4948449b7f7379d24d0f0d/2.0.04/en-US/cc45f1833e364d348b5057a60d0b8aed.html under "Configure Spring Security"
But I was hoping to switch to "Configure Integrated Container Authentication of the SAP Java Buildpack" as it seemed much simpler.
But I'm not able to figure out how to do the equivalent of isAuthenticated.
I went back to the old setup and followed the migration guide but I've run in to an issue.
Caused by: java.lang.IllegalArgumentException: configuration must not be null
                                       	at com.sap.cloud.security.xsuaa.Assertions.assertNotNull(Assertions.java:10)
                                       	at com.sap.cloud.security.token.validation.validators.JwtValidatorBuilder.getInstance(JwtValidatorBuilder.java:47)
                                       	at com.sap.cloud.security.adapter.spring.SAPOfflineTokenServicesCloud.<init>(SAPOfflineTokenServicesCloud.java:117)
                                       	at com.sap.cloud.security.adapter.spring.SAPOfflineTokenServicesCloud.<init>(SAPOfflineTokenServicesCloud.java:101)
                                       	at com.sap.cloud.security.adapter.spring.SAPOfflineTokenServicesCloud.<init>(SAPOfflineTokenServicesCloud.java:88)

My VCAP_SERVICES is:
{
   "xsuaa": [
      {
         "name": "xsahaa-uaa",
         "label": "xsuaa",
         "tags": [
            "xsuaa"
         ],
         "plan": "default",
         .....
      }
   ]
}

You can see that my "plan" is "default".
I believe the exception is caused by the loadXsuaa function which runs:
		Optional<OAuth2ServiceConfiguration> applicationService = Optional
				.ofNullable(loadForServicePlan(XSUAA, Plan.APPLICATION));
		Optional<OAuth2ServiceConfiguration> brokerService = Optional
				.ofNullable(loadForServicePlan(XSUAA, Plan.BROKER));
		Optional<OAuth2ServiceConfiguration> legacyService = Optional
				.ofNullable(loadForServicePlan(XSUAA, Plan.SPACE));

You can see that it doesn't include the "default" service plan mentioned here: https://help.sap.com/viewer/4505d0bdaf4948449b7f7379d24d0f0d/2.0.04/en-US/0393ce339acf49bf97b17c671ce92b9f.html
So it doesn't find the config and returns null.
Could we get "default" added here?
If you have any ideas on how we could use the simpler buildpack config they would be much appreciated.
Thanks,
Mark

hi @mobad
Oh, thats interesting. Thanks for your your detailed feedback!
So, I'm going to support the default plan in the next version (probably 2.5.2). Please let me know if you need it in a timely manner (otherwise i would collect some more changes).
I regard to your request.
You're right, you do not need the additional Spring Security setup, if you are only interested in the basic JWT validation to make sure, that the user is authenticated.
How to realize that is documented in various samples, like here:
https://github.com/SAP/cloud-security-xsuaa-integration/tree/master/samples/sap-java-buildpack-api-usage
Note that the SAP java buildpack still makes use of the "old" sap-internal java-container library internally.  And this dependency is only required in case you need further information about the user, like the email, user name... Note that this will change incompatible with one of the next SAP Java buildpack versions.

Hi @nenaraab,
Thanks for the fix!
Unfortunately we're trying to fix a vulas issue with an old release of java-security-container that's blocking another team depending on our product so, if possible, a quick release would be appreciated.
As far as I can tell sap-java-buildpack-api-usage only handles the "is the user authorized" case not the "is the user authenticated" case.
Meaning I can do:
// configure servlet to check against scope "$XSAPPNAME.Display"
@ServletSecurity(@HttpConstraint(rolesAllowed = { "Display" }))

And check for $XSAPPNAME.Display but we don't want to have any roles checked because our previous instructions don't grant any roles and I cant find a way of just checking whether the token is valid like I can do with spring-security's isAuthenticated.
The possible workaround I mentioned with using the default "openid" or "uaa.user" role doesn't seem to work for some reason.
I just get that the role can't be found and I can't find a way to check for non-local roles using sap-java-buildpack-api. I think they get stripped out.
I think allRolesMode might be the way to do it without a role but I can't find a way to set it as there doesn't seem to be a realm. https://tomcat.apache.org/tomcat-8.0-doc/api/org/apache/catalina/realm/RealmBase.AllRolesMode.html
Thanks,
Mark

Hi @mobad
I'm not responsible for the java-security-container lib. Which version do you use and which dependency causes a vulas issue?

It's a super old unmaintained version of java-container-security like the com.sap.xs2 package which is why we're trying to migrate to this new library.

Too bad... I've tried also several variants like @ServletSecurity(@HttpConstraint(ServletSecurity.EmptyRoleSemantic.DENY)).. and found not a solution when using @ServletSecurity()... to skip the Roles check.
I take that as requirement for the new SAP Java Buildpack, that it will contain the "openid" as dummy scope.

for now I would suggest... as direct replacement for the super-old buildpack you can make use of the new java-client lib (using version 2.5.2 that supports Xsuaa service plan "default").
Would that be feasible?

@mobad
I've just released the "default" plan support with version 2.5.1.
Please try again...

Thanks @nenaraab it works!


chore(master): release 1.1.172

:robot: I have created a release beep boop
1.1.172 (2023-08-28)
Miscellaneous

deps: lock file maintenance (34b808d)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/keywind/releases/tag/v1.1.172 :sunflower:


Roll Flutter Engine from f38f46f66e9a to cea8d94c6e8d (4 revisions)

https://github.com/flutter/engine/compare/f38f46f66e9a...cea8d94c6e8d
2023-05-11<EMAIL_ADDRESS>switch MockTexture off of MockCanvas calls (flutter/engine#41906)
2023-05-11<EMAIL_ADDRESS>[Android] Lifecycle defaults to focused instead of unfocused (flutter/engine#41875)
2023-05-11<EMAIL_ADDRESS>Roll Skia from ccf73af6ca91 to aed81125e6bc (9 revisions) (flutter/engine#41946)
2023-05-11<EMAIL_ADDRESS>Clobber caches in licenses test. (flutter/engine#41942)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC aaclarke@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


TrackGraph with many-to-many entities in disconnected scenario

Lets say we have a scenario where a client has a local database instance with the same model as our server. The client may be unaware of the data which already exists in the server DB (e.g. because it is offline). The client now transfers a entity graph with many-to-may entities in it to the server. The server  calls the ChangeTracker.TrackGraph-method to check if some of the entities may already exist in its database (by using enitity-individual compare-methods) . If they exist, it fixes the Ids and sets the state to unchanged (by using the EntityEntry.Reload()-Method). If they not exist, it sets the Ids to 0 and the State to added.
If it now hits a many-to-many-entity, it may happen that one of its referenced entities is not yet tracked whereas others ids got fixed already to the right server ids. This leads to the attached exception because EF detects duplicated keys.
"System.InvalidOperationException" in Microsoft.EntityFrameworkCore.dll
<Message>The instance of entity type 'PostTag' cannot be tracked because another instance of this type with the same key is already being tracked. When adding new entities, for most key types a unique temporary key value will be created if no key is set (i.e. if the key property is assigned the default value for its type). If you are explicitly setting key values for new entities, ensure they do not collide with existing entities or temporary values generated for other new entities. When attaching existing entities, ensure that only one entity instance with a given key value is attached to the context.</Message><StackTrace>   bei Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IdentityMap`1.Add(TKey key, InternalEntityEntry entry)
   bei Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.StartTracking(InternalEntityEntry entry)
   bei Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.SetEntityState(EntityState oldState, EntityState newState, Boolean acceptChanges)
   bei ManyToMany.MyContext.CheckState(EntityEntryGraphNode obj) in D:\_Work\ManyToMany\ManyToMany\Program.cs:Zeile 106.

I know there is such a concept  as client side tracked object state, I have left this out here for simplicity, lets just assume the ObjectState is unknown anyways.
I have included a full working example and the resulting output.
Is there a workaround for this issue or am I doing it generally wrong? Any help is appreciated, thanks a lot for doing such a great job here to all of you!
Steps to reproduce
Run in console app
public class Program
    {
        static void Main(string[] args)
        {
            foreach (var file in Directory.GetFiles(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "*.db"))
            {
                File.Delete(file);
            }
            //Seed dbClient
            var offlineCtx = new MyContext("dbClient.db");
            offlineCtx.Database.EnsureCreated();
            var tag1 = new Tag { Name = "SomeTag" }; //A offline Client creates two new Tags
            var tag2 = new Tag { Name = "OtherTag" }; //unaware of existing online tags
            var post1 = new Post();
            post1.PostTags = new List<PostTag>() { new PostTag() { Post = post1, Tag = tag1 }, new PostTag() { Post = post1, Tag = tag2 } };
            offlineCtx.Posts.Add(post1);
            offlineCtx.Tags.AddRange(tag1, tag2);
            offlineCtx.SaveChanges();
            //Seed dbServer
            var serverCtxInit = new MyContext("dbServer.db");
            serverCtxInit.Database.EnsureCreated();
            serverCtxInit.Tags.AddRange(new Tag { Name = "OtherTag" }, new Tag { Name = "SomeTag" }); //these two tags exist already on the Server (with different IDs!!)
            serverCtxInit.SaveChanges();
            serverCtxInit.Dispose();

            //Read a post and tags from the local client db
            var postToTransfer = offlineCtx.Posts
                .Include(p => p.PostTags)
                .ThenInclude(pt => pt.Tag).First();

            //.. and send it over wire to the server (dummy)
            var recievedPost = postToTransfer;

            var serverCtx = new MyContext("dbServer.db");
            serverCtx.ChangeTracker.TrackGraph(recievedPost, serverCtx.CheckState); //lets check what we've got
            serverCtx.SaveChanges();
        }
    }
    public class MyContext : DbContext
    {
        private readonly string _fileName;
        public MyContext(string fileName)
        {
            _fileName = fileName;
        }
        public DbSet<Post> Posts { get; set; }
        public DbSet<Tag> Tags { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<PostTag>()
                .HasKey(t => new { t.PostId, t.TagId });

            modelBuilder.Entity<PostTag>()
                .HasOne(pt => pt.Post)
                .WithMany(p => p.PostTags)
                .HasForeignKey(pt => pt.PostId);

            modelBuilder.Entity<PostTag>()
                .HasOne(pt => pt.Tag)
                .WithMany(t => t.PostTags)
                .HasForeignKey(pt => pt.TagId);
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);
            optionsBuilder.UseSqlite($"filename= {_fileName}");
        }

        public void CheckState(EntityEntryGraphNode obj)
        {
            if (obj.Entry.Entity is Tag)
            {
                var tagToTest = (Tag) obj.Entry.Entity;
                var Id = (from t in Tags
                    //Check if we have already a Tag with this name
                    where t.Name == tagToTest.Name
                    select t.TagId).FirstOrDefault();

                if (Id != default(int))
                {
                    MyDebug.PrintDebug(tagToTest, "before");
                    tagToTest.TagId = Id; //Fix the Id for a already existing tag
                    obj.Entry.Reload(); //set the State to unchanged and fixes the references
                    MyDebug.PrintDebug(tagToTest, "after");
                }
            }
            else
            {

                Debug.WriteLine($"Adding {obj.Entry.Entity.GetType().Name} ...");
                var ids = (from p in obj.Entry.Properties //set all Ids to 0
                    where p.Metadata.IsKey() || p.Metadata.IsForeignKey()
                    select p).ToList();
                ids.ForEach(p => p.CurrentValue = 0); //unsafe, but we only have int Ids here
                obj.Entry.State = EntityState.Added; // ### Exception thrown here for the 2nd PostTag
            }
            MyDebug.PrintChangeTracker(ChangeTracker);
        }
    }

    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
        public List<PostTag> PostTags { get; set; }
    }

    public class Tag
    {
        public int TagId { get; set; }
        public string Name { get; set; }
        public List<PostTag> PostTags { get; set; }
    }

    public class PostTag
    {
        public int PostId { get; set; }
        public Post Post { get; set; }
        public int TagId { get; set; }
        public Tag Tag { get; set; }
    }

    public static class MyDebug
    {
        public static void PrintDebug(Tag Tag, string moment)
        {
            Debug.WriteLine($"Moment {moment} CurrentTag {Tag.TagId} {Tag.Name}");
            foreach (var t in Tag.PostTags.First().Post.PostTags)
            {
                Debug.WriteLine($"Post {t.PostId}, Tag {t.TagId}");
            }
            Debug.WriteLine("");
        }
        public static void PrintChangeTracker(ChangeTracker c)
        {
            Debug.WriteLine("Tracked Items");
            foreach (var e in c.Entries())
            {
                if (e.Entity is PostTag) Debug.WriteLine($"PostTag Post {((PostTag)e.Entity).PostId}, Tag {((PostTag)e.Entity).TagId} State {e.State}");
                if (e.Entity is Tag) Debug.WriteLine($"Tag {((Tag)e.Entity).TagId} State {e.State}");
                if (e.Entity is Post) Debug.WriteLine($"Post {((Post)e.Entity).PostId} State {e.State}");
            }
            Debug.WriteLine("");
        }
    }

Debug Output
Adding Post ...
Tracked Items
Post -2147482646 State Added

Adding PostTag ...
Tracked Items
Post -2147482646 State Added
PostTag Post -2147482646, Tag 1 State Added
Tag 1 State Detached

Moment before CurrentTag 1 SomeTag
Post -2147482646, Tag 1
Post 1, Tag 2

Moment after CurrentTag 2 SomeTag
Post -2147482646, Tag 2
Post 1, Tag 2

Tracked Items
Post -2147482646 State Added
PostTag Post -2147482646, Tag 2 State Added
Tag 2 State Unchanged

Adding PostTag ...
Exception Thrown: "System.InvalidOperationException" in Microsoft.EntityFrameworkCore.dll

Further technical details
EF Core version: 1.1.0
Database Provider: Microsoft.EntityFrameworkCore.Sqlite
Operating system: Win7 x64
IDE: VS2015

@michaelroeth The problem here is that the entities coming from the client have overlapping IDs with the entities already on the server. For example, the client has tags with IDs 1 and 2, and the server has also has tags with IDs 1 and 2, but these are different tags than on the client. This causes the key conflict while the graph is partially tracked.
Two ways to resolve this come to mind. The first is to use a different key space on the client. For example, I changed the keys of tags on the client to be -1 and -2 in your repro code and everything worked as expected.
The second is to make sure that Posts and Tags are tracked with the correct key values before attempting to add PostTag objects. There are lots of ways to do this, but a hacked together update of your code demonstrates one approach:
public void CheckState(EntityEntryGraphNode obj)
{
    if (obj.Entry.Entity is Tag)
    {
        HandleTag(obj.Entry);
    }
    else
    {
        Debug.WriteLine($"Adding {obj.Entry.Entity.GetType().Name} ...");
        var ids = (from p in obj.Entry.Properties
            //set all Ids to 0
            where p.Metadata.IsKey() || p.Metadata.IsForeignKey()
            select p).ToList();
        ids.ForEach(p => p.CurrentValue = 0); //unsafe, but we only have int Ids here

        var postTag = obj.Entry.Entity as PostTag;
        if (postTag != null)
        {
            HandleTag(Entry(postTag.Tag));
        }

        obj.Entry.State = EntityState.Added; // ### Exception thrown here for the 2nd PostTag
    }
    MyDebug.PrintChangeTracker(ChangeTracker);
}

private void HandleTag(EntityEntry entry)
{
    var tagToTest = (Tag) entry.Entity;
    var Id = (from t in Tags
        //Check if we have already a Tag with this name
        where t.Name == tagToTest.Name
        select t.TagId).FirstOrDefault();

    if (Id != default(int))
    {
        MyDebug.PrintDebug(tagToTest, "before");
        tagToTest.TagId = Id; //Fix the Id for a already existing tag
        entry.Reload(); //set the State to unchanged and fixes the references
        MyDebug.PrintDebug(tagToTest, "after");
    }
}

In this code, when a PostTag is encountered, we first go attach its Tag so that it gets the correct key values before then coming back to the PostTag.


Differentiate between payment links and integrating with the API

As per https://payments-platform.atlassian.net/browse/PP-7410
The current Go Live docs are heavily focused on the API journey, e.g. it says that a user needs to generate an API key.
This may be confusing for users who are going live with payment links, as not everything is applicable to them.
This PR is to make it clearer what is required to go live with payment links compared to the API, and also apply this to the rest of the tech docs.

we've seen that some service teams build a srivce using a payment lnk when they should really invest in an integration. should we offer any further differentiation on this page (ie you can automate your service with our integration) or would we expect people to have done that research themselves on the product pages first? happy to leave as is for now, but something to bear in mind - i think this makes the payment links sound super appealing with no downside but it's definitely not right for every service.

agree, i'll take out the positive blurb


Update docker docs

@pbugni I reviewed and tested most of the paths in the docs, let me know if you run into any issues, or have any ideas for making the docs clearer. Thanks!!


Adding Code for BAEL-394

@buddhini81 Alter the indentations and reapply this PR. The rest is all goo.

@adamd1985 Indentations fixed and the new example code file added for WebListener annotation.


How to remove download option

document viewer working fine, But I need to hide the download option. Please help me to sort this feature

disableContent="popout-hide"
is what I used

Hi @adarshkthrissur, it's what @matthew-thornton-cantata says. And that is just a attempt to hide the download button for the user. Because the document is loaded in an iframe there is no way to actual remove this option


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/118145

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/118628