Unable to run the test

I tried to run test, with command
python test_sirs.py --inet ytmt_ucs_old --model twostage_ytmt_model --name ytmt_uct_sirs_test --hyper --if_align --resume --icnn_path ./checkpoints/ytmt_uct_sirs/ytmt_uct_sirs_68_077_00595364.pt
but have an error:
-------------- End ---------------- Traceback (most recent call last):   File "test_sirs.py", line 25, in <module>     engine = Engine(opt)   File "/home/andrew/reseach_cloned/DSRNet/engine.py", line 19, in __init__     self.__setup()   File "/home/andrew/reseach_cloned/DSRNet/engine.py", line 28, in __setup     self.model = make_model(self.opt.model)()  # models.__dict__[self.opt.model]()   File "/home/andrew/reseach_cloned/DSRNet/models/__init__.py", line 8, in make_model     base = importlib.import_module('models.' + name)   File "/root/miniconda3/envs/skylumml/lib/python3.8/importlib/__init__.py", line 127, in import_module     return _bootstrap._gcd_import(name[level:], package, level)   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import   File "<frozen importlib._bootstrap>", line 991, in _find_and_load   File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked ModuleNotFoundError: No module named 'models.twostage_ytmt_model'

Hi~ We have updated the evaluation code. Please see README.md for more instructions. We have released the small version of the DSRNet, and more checkpoints will be released later, because we have reorganized the network structure and it takes time to retrain them.

thank you, now it works! but I ran test_sirs.py with modifications on 126-134 lines in file dsrnet_model_sirs.py
with torch.no_grad():             # print(self.forward())             self.forward()             output_i = tensor2im(self.output_t)             output_j = tensor2im(self.output_r)             if self.data_name is not None and savedir is not None:                 Image.fromarray(output_i.astype(np.uint8)).save(join(savedir, name, '{}_l.png'.format(self.opt.name)))                 Image.fromarray(output_j.astype(np.uint8)).save(join(savedir, name, '{}_r.png'.format(self.opt.name)))                 Image.fromarray(tensor2im(self.input).astype(np.uint8)).save(join(savedir, name, 'm_input.png'))

and when you are planning to release biiger models?

thank you, now it works! but I ran test_sirs.py with modifications on 126-134 lines in file dsrnet_model_sirs.py with torch.no_grad(): # print(self.forward()) self.forward() output_i = tensor2im(self.output_t) output_j = tensor2im(self.output_r) if self.data_name is not None and savedir is not None: Image.fromarray(output_i.astype(np.uint8)).save(join(savedir, name, '{}_l.png'.format(self.opt.name))) Image.fromarray(output_j.astype(np.uint8)).save(join(savedir, name, '{}_r.png'.format(self.opt.name))) Image.fromarray(tensor2im(self.input).astype(np.uint8)).save(join(savedir, name, 'm_input.png'))

Thanks for your bug report, and it has been fixed.
We will release the other checkpoints as soon as possible (no longer than a week). If you are eager to see them, I can share you with the results of them or the unorganized code.

thanks, I will wait your release version!

thanks, I will wait your release version!

Hi~ We have released the large version of the DSRNet. Please check the README.md for more details

thank you


Refactor/reporters

This PR is mainly a refactoring of the reporters.py file.
It shifts as much configuration and formatting into the base classes Reporter and DeltaReporter. The main reason for this is to keep the needed changes to this file when introducing new formats, which needs a Reporter as well as a DeltaReporter subclass, minimal! Furthermore, it sets a standard for all the output tables.
Possible future supportable output formats include: JSON, YAML, CSV, TSV, NSV (new-line separated values sometimes also summarized as TSV).
Also, the refactoring aaims to show clearly the used data structure, which are named tuples at the moment and follow a row-based logic. Namedtuples are immutable, as the code contains options to include a missed_lines column, the analogue mutable data structure recordtype might be an option.
Dictionaries could be an option as well (especially when trying to extend to JSON and YAML formats); the nature of dictionaries demand though to have unique keys and thus the code would have to be transformed in such a way as that it adheres to a column-wise implementation logic and then the output could be formatted as in the dictionary example from tabulate to have the headers as keys:
>>> print(tabulate({"Name": ["Alice", "Bob"],
...                 "Age": [24, 19]}, headers="keys"))
  Age  Name
-----  ------
   24  Alice
   19  Bob

Can we rebase and resolve conflicts?

Hi @aconrad
This PR is a bit more complicated.

The following commits also make adjustments to the data structure, i.e. from named tuples to dictionaries.
The problem is at the moment that I only could do the reporter classes but not the delta reporters.
I have an implementation for the delta reporters but the test fails, because I have a hard time with the following lines:

https://github.com/aconrad/pycobertura/blob/master/pycobertura/templates/html-delta.jinja2#L41
https://github.com/aconrad/pycobertura/blob/master/pycobertura/templates/html-delta.jinja2#L46
https://github.com/aconrad/pycobertura/blob/master/pycobertura/templates/html-delta.jinja2#L57

Hi @aconrad
I think now it is at a nice place (everything with dictionaries) and I resolved your review, but for the 2 non-resolved ones, which I commented above and are still open and would be good if you could go over the code again :)

Hey @gro1m, thanks again for your contributions. I'm away from a laptop for a couple of days, will take a look at your work next week.

Hi @aconrad
Thanks for the info, I should have now resolved addressed all of your comments above.
As an additional feedback: it would be nice if we could make the html report tests formatting-independent and if we could have a formatter for jinja2 files.
The lines 37-51 in html-delta.jinja2 are quite confusing without proper indentation:
{%- for iter in range(lines["Filename"]|length) %}

            {{ lines["Filename"][iter]}}
            {{ lines["Stmts"][iter] }}
            {{ lines["Miss"][iter] }}
            {{ lines["Cover"][iter] }}
{%- if show_source and show_missing %}

{%- for missed_line in lines["Missing"][iter] %}
            {%- if not loop.first %}, {% endif %}{{ missed_line }}
{%- endfor %}

{%- endif %}

{%- endfor %}

It took a long time for me to see that the missed_line loop is nested inside the first for loop and that the if statement is in the first for loop...

It took a long time for me to see that the missed_line loop is nested inside the first for loop and that the if statement is in the first for loop...

Ugh, yes. If I recall, I was trying to be strict about the string output. The dashes you see in {%- are meant to suppress the whitespace before the jinja template. It's probably not the best way to test it and it's prone to breakage / fragile. Best would probably be to parse the HTML output in an in-memory DOM representation and then check the DOM itself or dump the DOM back to a string for comparison with a fixture.

I will also do the CHANGES section again, once you are happy with the rest in this PR :)

Merged! 🎉
Thanks for all your work on this! Great clean-up of the reporters.py file. This lays the ground for easier-to-implement output formats!


Stream to vlc

Streaming video to vlc.

The "point" is to use youtube-dl as a wrapper for streams which uses a token.
@nodiscc mad a really a nice solution to manage that!

I second @nodiscc regarding the --stream option, and had a particular use-case in mind.

A --stream option would be great

I'm trying the "-o -" solution, but with some websites (e.g. periscope) it doesn't work: I get the stream saved to a file named "-". Is this expected behaviour (due to limitations of some website or video format), or is it a bug in that particular extractor?

+1 to the last question

This feature indeed needs some extra codes for live streams. (m3u8 from periscope, etc.)

this patch will make them work as well:
diff --git a/youtube_dl/downloader/external.py b/youtube_dl/downloader/external.py
index 30277dc..cda39fe 100644
--- a/youtube_dl/downloader/external.py
+++ b/youtube_dl/downloader/external.py
@@ -225,7 +225,7 @@ class FFmpegFD(ExternalFD):

         args += ['-i', url, '-c', 'copy']
         if protocol == 'm3u8':
-            if self.params.get('hls_use_mpegts', False):
+            if self.params.get('hls_use_mpegts', False) or tmpfilename == '-':
                 args += ['-f', 'mpegts']
             else:
                 args += ['-f', 'mp4', '-bsf:a', 'aac_adtstoasc']
@@ -235,7 +235,10 @@ class FFmpegFD(ExternalFD):
             args += ['-f', EXT_TO_OUT_FORMATS.get(info_dict['ext'], info_dict['ext'])]

         args = [encodeArgument(opt) for opt in args]
-        args.append(encodeFilename(ffpp._ffmpeg_filename_argument(tmpfilename), True))
+        if tmpfilename == '-':
+            args.append('pipe:1')
+        else:
+            args.append(encodeFilename(ffpp._ffmpeg_filename_argument(tmpfilename), True))

         self._debug_cmd(args)

Any updates about this? Would love to get 60FPS livestreams pumped directly into VLC, as livestreamer doesn't support DASH.

DASH should be supported. Any problems/errors?

For livestreamer? I'm just not sure of any way to select qualities other than the usual "audio_webm, audio_mp4, 144p (worst), 240p, 360p, 720p (best)" options.

Which video are you trying? Please give a concrete URL.

Here's one 720p60 example: https://www.youtube.com/watch?v=brDB5lk3G3A
And a 1080p60 example: https://www.youtube.com/watch?v=eXQ2ZZcTMpc

I was wrong - such DASH support is not implemented yet. Please follow #5563 instead for that.

Is there no option to stream and save the video at the same time? The output .mp4.part files can't be played while there are downloaded so I have to use a hack like this: youtube-dl "https://www.youtube.com/c/FRANCE24English/live" -o - | cat - > replay.mp4

The output .mp4.part files can't be played

Could you try: --hls-use-mpegts

@yan12125 thanks, it works but I would like the output file named "replay.mp4" instead of "replay.mp4.part" while I stream. Is there a way to do this?

@baptx Thanks, that what I needed, it seems that your solution is the only one that:

downloads the audio and video at the same time which makes it usable before it finishes downloading (--hls-use-mpegts --no-part doesn't)
creates a file so one can move forward and backward in the video (youtube-dl URL_HERE -o - | vlc - doesn't )

It can be shortened to:
youtube-dl https://www.youtube.com/watch?v=oHg5SJYRHA0 -o - > replay.mp4
Does anyone know how to not have to start VLC separately while keeping the two beforementioned properties?

Try this: youtube-dl URL_HERE -o - | tee replay.mp4 | vlc -

@yan12125 VLC is still reading only from stdin and therefore can't move forward and backward in the video.

@tuxayo I see your problem. Such a need is complicated and I guess a script is inevitable:
import subprocess
import youtube_dl

player_run = False
p = None

def hook(status):
    global player_run, p

    if not player_run:
        player_run = True
        p = subprocess.Popen(['mpv', status['filename']])

opts = {
    'format': 'best',
    'nopart': True,
    'progress_hooks': [hook],
    'verbose': True,
}

with youtube_dl.YoutubeDL(opts) as ydl:
    ydl.download(['https://www.youtube.com/watch?v=oHg5SJYRHA0'])

p.wait()

@yan12125 Awesome thanks! Great to see that youtube_dl is so flexible.

@yan12125 This works good for YouTube but not for other sites like hotstar (requiring multiple HLS requests). I can't pass this stream to mpv with your code:
ydl.download(['http://www.hotstar.com/sports/cricket/vivo-ipl-2018/sunrisers-hyderabad-vs-chennai-super-kings-m186521/match-highlights/calm-csk-clip-soaring-srhs-wings/2001612550'])

However, mpv (youtube-dl backend) works perfectly fine and I am able to seek video too:
mpv http://www.hotstar.com/sports/cricket/vivo-ipl-2018/sunrisers-hyderabad-vs-chennai-super-kings-m186521/match-highlights/calm-csk-clip-soaring-srhs-wings/2001612550

But problem is that this works only for mpv specifically. I can't get this to work with other players like vlc or mplayer.

Hi everyone, I wondering if it is possible to stream a playlist?

@siutin Mpv is able to stream playlist

function ytvlc() {
    URLS=(${(ps:\n:)"$(youtube-dl "$1" --get-url)"})
    vlc "${URLS[1]}" --input-slave "${URLS[2]}"
}

This lua script allows opening YouTube videos in vlc directly. It should to be installed ~/.local/share/vlc/lua/playlist/ and it just seems to work.


Support for certificate verification with revocation lists

The LinkedCertificate::verify function was modified to also optionally accept a CRL.
As this changes the API, the version is bumped

This will need some changes after landing #128 which will come first

Close this because this is done by https://github.com/fortanix/rust-mbedtls/pull/214


Feature/twilio basic sms

adding a starting Twilio SMS bot integration with a messaging service and a virtual number

👍


Feature/417 form validator react

Added the barebone validator for React Form component (right now it is just the email and it gives the invalid warning when you input anything into the email input) but I wanted to start a discussion here on:

The regex structure for the inputs that we want to validate
If handling the changes to the inputs in both the form component and input component should be the way to go or should it be only in one component (I think it should be in one component, the form component)

👋 Thanks for creating a pull request! 🚀 Checkout the storybook we created for it here.

Added the barebone validator for React Form component (right now it is just the email and it gives the invalid warning when you input anything into the email input) but I wanted to start a discussion here on:

The regex structure for the inputs that we want to validate
If handling the changes to the inputs in both the form component and input component should be the way to go or should it be only in one component (I think it should be in one component, the form component)

What I think is, the component should only has the indicator (which conditional render whenever there is error or success), where this indicator should be handle by the developer when they are using the component, cause there can be multiple condition for forms, I don't think we can handle all the validation for the form conditions, what we can do is provide a utility function which checks the input values based on that the dev can toggle the indicator. This utility function can validate the input values base on few condition eg: emails, required, maxLength, minLength. What you guys think? @ethan-qsh  @JohanObrink  @hjalmers  @mario-subo

Built most simplest form validator and only works with text inputs for now, what you guys think ? @JohanObrink @hjalmers @mario-subo @ethan-qsh

Hmm, yeah since I haven't worked anything with forms in react I'm not sure what most teams and developers prefer and use, but I think it makes sense not to add too much logic to each form "item". Then again, if we have a component for email it would make sense to add basic email validations to it.
I like the way reactive forms handles form validations in angular i.e something like:
this._fb.group({
            name: ['', [Validators.required]],
            age: [18, [Validators.required, Validators.min(18), Validators.foo]],
            email: ['', [Validators.required, Validators.email]]
        })

You specify the rules in the component holding the form (not in each form element although it would be possible and might make sense for some like email, personal identity number etc.). The above will in angular generate a form with a couple of requirements that in turn will be emitted in an error object if not fulfilled. That error object can be used to populate error texts with the option to pass custom texts using a map, eg.
{
  min: 'Value has to be greater than or equal to 18',
  required: 'Field is required',
  email: 'Incorrect email address',
  foo: 'Foo validator returned some custom error'
}

Common validators for required, email, min, max, minLength, maxLength etc. are provided by default and can easily be extended and it's easy to create custom validators as well. Would be nice if we could try and use the same terms and behaviour for both react and angular and define custom validator functions in extract. Also only on error should be displayed for a field at any given time which allows us to keep the props for each form item pretty slim i.e. only provide one for message and if it's valid or not etc.

Hmm, yeah since I haven't worked anything with forms in react I'm not sure what most teams and developers prefer and use, but I think it makes sense not to add too much logic to each form "item". Then again, if we have a component for email it would make sense to add basic email validations to it.
I like the way reactive forms handles form validations in angular i.e something like:
this._fb.group({
            name: ['', [Validators.required]],
            age: [18, [Validators.required, Validators.min(18), Validators.foo]],
            email: ['', [Validators.required, Validators.email]]
        })

You specify the rules in the component holding the form (not in each form element although it would be possible and might make sense for some like email, personal identity number etc.). The above will in angular generate a form with a couple of requirements that in turn will be emitted in an error object if not fulfilled. That error object can be used to populate error texts with the option to pass custom texts using a map, eg.
{
  min: 'Value has to be greater than or equal to 18',
  required: 'Field is required',
  email: 'Incorrect email address',
  foo: 'Foo validator returned some custom error'
}

Common validators for required, email, min, max, minLength, maxLength etc. are provided by default and can easily be extended and it's easy to create custom validators as well. Would be nice if we could try and use the same terms and behaviour for both react and angular and define custom validator functions in extract. Also only on error should be displayed for a field at any given time which allows us to keep the props for each form item pretty slim i.e. only provide one for message and if it's valid or not etc.

Yeap agreed, we should have both react and angular and define custom validator functions in extract so that we can reuse in both but I think we can have required rule for now, if things are good then we can improvise it, I took the inspiration from here https://ant.design/components/form where we pass in rules for every input component with custom error message, where the developer will be flexible to pass in a custom validation callback to validate the input.


Support hiding a config node

A hidden node should not be returned when iterating on the config, but it should be accessible if accessed directly.

[ ] Add a config flag for hidden
[ ] When converting to container, yaml or anything else - support including hidden nodes as an option (default to False).

This would introduce many questions about serialization, listing and conversion to other formats. going to abandon this idea for now.


if consider to support '--include-before'  flag?

Which version of the AzCopy was used?
azcopy version 10.6.0
Which platform are you using? (ex: Windows, Mac, Linux)
Windows
What command did you run?
I saw azcopy support '--include-after'  flag now, I'd like to know if it will support '--include-before'  flag ?

This is a duplicate of https://github.com/Azure/azure-storage-azcopy/issues/1075
Please close this issue @cuntoulishifu


Setup automatic workflow

[x] setup tests
[x] create workflow

I think its working fine but still we can review it


How to enable not only square image, but if we zoom out to fit screen image, it should be like rectangle?

How to enable not only square image, but if we zoom out to fit screen image,
image should be like rectangle like on screen?

Am also looking for same... either it should not allow to zoom out the square area or it needs to return the image set in the crop view.

me too


runtime/syntax/text.vim: add texMathNumber

This makes numbers highlighted with the Numbers group for the tex file type.

Can you update and rebase this PR to the latest?

ping @cecamp


[ADP-2871] use a query store for tx metas

[x] Create a QueryStore for TxMeta so that we can use an (only) on-disk store for them

ADP-2871

bors r+


batch-mark-files-as-viewed basically broken

Description
It has off-by-one errors and other weird behaviors. I don't know if I broke it in my last PR 😔
How to replicate the issue

Visit https://github.com/refined-github/refined-github/pull/5845/files
Start clicking the Viewed checkbox while holding shift

The first selections might make sense, then no more
Extension version
main
Browser(s) used
Safari, Chrome

Working perfectly for me on version 22.7.20, Chrome

Keep trying shift-cliking on 1, 3, 1, 4, 2, etc In this video I never left shift, you can see it starts missing pieces and just becoming useless:
https://user-images.githubusercontent.com/1402241/182196848-1d60b515-c41e-449f-b9b3-52c4df9c92c0.mov

Alt-clicks are completely broken too, at every try


Kernel Memory Integration

.NET Aspire issue link
No response
Overview
Kernel Memory is a great way to inject RAG capabilities in an application. It can be run as a container, so it'd be pretty easy to write the integration.
Usage example
var postgres = builder.AddPostres("postgres");

var kernelMemory = builder.AddKernelMemory("rag")
    .WithReference(postgres);

Note: Currently, the appsettings.json of KernelMemory would probably require something more like this:
var postgres = builder.AddPostres("postgres");

var kernelMemory = builder.AddKernelMemory("rag")
   .WithEnvironment("Postgres__ConnectionString", postgres);

Additional context
No response
Help us help you
Yes, I'd like to be assigned to work on this item

cc. @dluc

Would a client integration also be part of this?
Given you have to provide an appsettings.json would it make sense to model that similar to how the DAB integration works? Does the KM container image support config via environment variables? Given it's a .NET app I'd assume that it uses multiple config sources, so we wouldn't need to have any kind of config transformation.
If it does support environment variables as a config source, you could possibly even ditch the appsettings.json and just have a .NET object model that we translate to WithEnvironment("....", ...) calls.

Since km offers a guided script to set up the appesettings, and given that the appsettings requires lots of configs, it might be worth it to follow the dab model. It would make the apphost using this integration cleaner.
Regarding the client integration, I'm thinking about it. It would surely be helpful to easily inject what is basically an http client with few methods.

Being able to provide the config file makes sense for existing applications that use KM and want to add Aspire as the orchestration engine over it, but I would still think we should have a .NET API that allows you to configure the service via Aspire directly. Looking at the source code for KM the service calls https://github.com/microsoft/kernel-memory/blob/3f9a04a74e95195634c2f0107bda918c8dae3369/service/Core/Configuration/ConfigurationBuilderExtensions.cs#L20 and that will enable environment variables.
This means that we, at the very least, provide things like connection strings without having to have them "hacked" into the appsettings.json files.
Fundamentally, we could build an API like so:
var km = builder.AddKernelMemory("km")
    .WithAzureOpenAIText(aoai, "gpt-4o")
    // and configuration for other services
    ;

Also, we should have a client integration, as without that, it's going to really limit the integration of the server.

I agree


ToolTip overflow Fix and positioning

fixes #1051

Fixes the tooltip text overflow issue by allowing it to take the full size required.
Moves the tooltip to the most inside box upper right hand side
Sorts the items in the tooltip for inside-out.

Question 1
What's so bad about tooltip that follows mouse?
https://user-images.githubusercontent.com/4214172/142263517-b81fe0ac-344c-47e7-acdd-1f0d1c77ccaf.mp4
Question 2
Seems like this still isn't optimal.  You can end up completely covering a bounding box with a tooltip with no way around it.
https://user-images.githubusercontent.com/4214172/142263521-a44e0529-8df5-405a-ab0e-8edb80f3bac9.mp4
Question 3
Also seems like there's a race condition somewhere.  The tooltip doesn't update sometimes when you move around.
https://user-images.githubusercontent.com/4214172/142263524-5492b214-bc57-4ba9-a33a-600cc580bb90.mp4

Question 1
What's so bad about tooltip that follows mouse? It seems pretty responsive to me.

If your happy with the responsiveness we can go with that.  The only counterpoint is that we have had some complaints about the tooltip drawing icons and people not liking them following the mouse closely. Maybe instead of a hover based tool it requires a different action to trigger?

Question 2
Seems like this still isn't optimal. You can end up completely covering a bounding box with a tooltip with no way around it.
Yeah, this is probably a problem given that it appears in the same location for the inside box each time so it will always hide outside box.
Question 3
Also seems like there's a race condition somewhere. The tooltip doesn't update sometimes when you move around.

I'm having trouble consistently replicating this but I did manage to get it to happen.  It seems to happen a bit more when zoomed in vs the entire image.
Thank you for the feedback and questions.  I'm leaning more towards just having it attached to the mouse now.

With option 1 (follow pointer) I did notice that depending on zoom level, the tooltip can be under the pointer and intercept mouse interactions.  IDK if there's a reliable way around that.  Because the coordinates are in image-space and not screen-space, having a constant offset is probably undesirable.

If your happy with the responsiveness we can go with that. The only counterpoint is that we have had some complaints about the tooltip drawing icons and people not liking them following the mouse closely

As I recall, that was related to doing annotation.  Someone thought the icons were in the way while drawing, which is fair.  This you can turn off and isn't really useful while drawing anyway, so it's probably fine, but we should get someone like Matt or Roddy to actually decide.

With option 1 (follow pointer) I did notice that depending on zoom level, the tooltip can be under the pointer and intercept mouse interactions. IDK if there's a reliable way around that. Because the coordinates are in image-space and not screen-space, having a constant offset is probably undesirable.

I also like Option 1. As for the image space / screen space issue, my gut tells me to ask David Manthey about it. GeoJS has ways to plot things in screen space, if I am not mistaken.

This is perfect.  I couldn't figure out from the code how you got the padding in screen space though, just curious

This is perfect. I couldn't figure out from the code how you got the padding in screen space though, just curious

I just pushed the changes, I need to self review it.  I'm still using the position function provided geoJS but I looked at what it does internally inside of geoJS, converted to display corrdinates, added the offset and then converted back into the geojs coordinates used for the display.
The zooming event only supplies info in screenspace (relative to the element) so I would have to do some more conversions to get it right and that coordinate doesn't change after each zoom.  It was much easier to just save the last mousePosition and use it like a mouseMove function for the zooming instead.


[GH-225] Derive monoids and semigroups.

https://github.com/input-output-hk/cardano-shell/issues/225

bors r+


fix(kube-console): publishing

Current dependencies on/for this PR:

main

PR #2807   👈

This comment was auto-generated by Graphite.


add missing function validation_errors() at Common functions

it is documented at user guide source but the function was not yet defined.

I'm assuming you're talking about in the form helper? If so - this doesn't use the same parameters as the docs show, and isn't in the form helper file. Would also need to tests to be included.
When you look on the validation docs it lists the new way to handle that.
What should happen, though, is that we remove both that function and the form_error function just above it in the docs. I'll do that now.
Thanks for catching it!


Strange behavior with LLM import requirements

This import works fine:
from langchain import Anthropic

This import does not:
from langchain import AI21

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'AI21' from 'langchain' (/opt/anaconda3/envs/fed_nlp/lib/python3.9/site-packages/langchain/__init__.py)

I think there is a slight documentation inconsistency here: https://langchain.readthedocs.io/en/latest/reference/modules/llms.html
This PR starts to solve that. Should all the import examples be
from langchain.llms import X instead of from langchain import X?

yes - lets go to from langchain.llms import X everywhere


Use Harmony 2 instead of Redirection Framework

by doing some quick comparison I suspect much of the custom AI code is a copy of the original code with some pre/post modifications. But we have not yet moved them to harmony because of harmony1 shortcomings. but now that we have harmony 2 we should remove the custom AI redirections. The advantages are:
1- if Cities skylines change their code we will have the most up-to-date code. I am concerned that some of that code is already too old and we have not noticed.
2- easier maintenance.
3- less likely to make mistakes.
EDIT: I am dividing this issue to 3 steps:
1- migrate CustomVehicle to harmony (#864 easy peasy!)
2- migrate CustomVehicleAI to harmony (clever prefixes would do the job)
* patch StartPathFind() #895
* patch other CustomVehicleAI methods
3- move CustomPathFind to harmony (this issue). This is the hardest part and requires a badass transpiler.

see #864

its a bit difficult to compare the code because we have renamed compiler variables and we have our own spacing style. Does anyone has a solution?

agree

Based on my experience with node controller the most flexible way of using transpiler call insert is to do this:
load/calculate value
[INSERTED INSTRUCTION] value = MethodName(value,....);
use/store value

Looks like this was completed by #1089


sleep causes cluster to lose stuff

after resume from sleep cluster looks like this even if I F5 refresh

Hello @matti , thank you for reaching out!


[routing_manager] new API to check if an external route is published

This commit add two public functions to RoutingManager:

IsExternalRoutePublished() to check if network data contains the BR's external route;
IsDefaultRoutePublished() to check if network data contains the BR's default route(::/0)
(combining these two functions into one may be considered in the future)

This commit also defines kDefaultRoutePrefix in ip6_address.hpp to represent ::/0 prefix, as well as  moves RoutePublisher::kUlaPrefix definition from RoutingManager to ip6_address.hpp as constexpr to track with
kDefaultRoutePrefix.

Thanks @abtink @superwhd for reviewing this PR.  Per your comment, I created a new PR (https://github.com/openthread/ot-br-posix/pull/2284), will close this one.


Fix for Git v2.35.2 spec changes

The GitHub Actions fails Due to Git v2.35.2 spec changes.
Fixes error thrown by reviewdog
reviewdog: PullRequest needs 'git' command: failed to run 'git rev-parse --show-prefix': exit status 128

See https://github.com/reviewdog/reviewdog/issues/1158 for more info

We are in need of this fix too as our GitHub Action broke. An alternative would be to pin the git version installed in the Dockerfile to avoid another regression like this.

Thank you for the quick fix! Merged and briefly checked. Please let me know if the issue persists.

@nikitasavinov thanks for merging this! Are you able to cut a new release to include this? We don't use latest and instead pin all our dependencies including the version of this GitHub Action (which is currently pinned to v0.5.0)

Absolutely - in fact, it's already done.

Fantastic, this did the trick for us. Thank you!


Auto-retry on failure

Deployments can fail for a number of reasons but often a simple retry will resolve it.
We should have a certain number of automatic retries for the following types of failures:

kubectl API response errors (such as get, delete, list, apply)
http network request failures
timeouts

maybe this is included in http network request failures, but when we see DNS lookup failures like Error: core: getaddrinfo EAI_AGAIN use1-prod-2.k8s-controller.invisionapp.com:443 we should retry again as it was most likely a temporary blip with our DNS query.


Dolphin release candidate testing - SharePoint Online Product Assessment Sanity Testing

💡 Summary
In preparation of releasing the Dolphin or v0.3.0 of ScubaGear code, conduct sanity testing of the SPO product. Objective and Scope of the task are provided below.
Objectives:

There are no regression issues in the SPO product assessments with Dolphin Release
Additional sanity testing to ensure that: each policy assessment result is shown in the report, assessment works against all available tenants (G5/E5, G3/E3)
SPO product assessment works both in interactive and non-interactive (service principal) modes.

Scope:

Detailed functional testing of each policy statement result is out of scope
Consistent results between interactive/non-interactive modes and no operational issues in running the test against all tenant types are within the scope.

Motivation and context
This would be useful to ensure that Dolphin release is stable
Implementation notes
Before the test, ensure that test user has minimum user role on a given tenant to assess the SharePoint Online (look into README). Then, execute the SPO product assessment on all available tenants – first in interactive mode and then in non-interactive mode. After the test verify the following:

Verify that all tests run without errors and results reports are generated. Each policy has a result (no empty results)
Ensure that there are no regressions from Coral release – for the tested tenant compare the result report from current assessment against saved Coral release results - ensure that any different result is consistent with code change (provide a detailed explanation on any observed diff in results)

Acceptance criteria

SPO product assessment works in both interactive and non-interactive mode against G5, E5, G3 and E3 tenants.
There are no crashes and/or empty results
Results are consistent with Coral release assessment results - any diff is consistent with code changes (viz. support for conditional access policies)

Cisaent- NOT interactive mode

[x] Light Mode works PASS
[x] Dark Mode works PASS
[x] No Empty Results PASS

2.1

[x] Test 1: File and folder links set to specific people passes PASS
[x] Test 2: File and folder links set to only in org fails PASS
[x] Test 3: File and folder links set to anyone with link fails PASS

2.2

[x] Test 1: Sharepoint external sharing set to in org passes PASS
[x] Test 2: Sharepoint external sharing set to new & existing passes PASS
[x] Test 3: Sharepoint external sharing set to existing passes PASS
[x] Test 4: Sharepoint external sharing set to anyone fails PASS

2.3

[x] Test 1: Not-Implemented

2.4 Policy 1

[x] Test 1: Sharepoint external sharing set to in org passes PASS
[x] Test 2: Sharepoint external sharing not set to in org, guest expire enabled, expire = 30 days passes PASS
[x] Test 3: Sharepoint external sharing not set to in org, guest expire not enabled, expire = 30 days fails PASS
[x] Test 4: Sharepoint external sharing not set to in org, guest expire enabled, expire not 30 days fails PASS
[x] Test 5: Sharepoint external sharing not set to in org, guest expire not enabled, expire not 30 days fails PASS

2.4 Policy 2

[x] Test 1: Sharepoint external sharing set to in org passes PASS
[x] Test 2: Sharepoint external sharing not set to in org, reath enabled, reauth = 30 days passes PASS
[x] Test 3: Sharepoint external sharing not set to in org, reath not enabled, reauth = 30 days fails PASS
[x] Test 4: Sharepoint external sharing not set to in org, reath enabled, reauth not 30 days fails PASS
[x] Test 5: Sharepoint external sharing not set to in org, reath not enabled, reauth not 30 days fails PASS

2.5

[x] Test 1: No running custom scripts passes PASS
[x] Test 2: Can run custom scripts fails PASS

Cisaent- interactive mode

[] Light Mode works ****
[] Dark Mode works ****
[] No Empty Results ****

2.1

[] Test 1: File and folder links set to specific people passes ****
[] Test 2: File and folder links set to only in org fails ****
[] Test 3: File and folder links set to anyone with link fails ****

2.2

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing set to new & existing passes ****
[] Test 3: Sharepoint external sharing set to existing passes ****
[] Test 4: Sharepoint external sharing set to anyone fails ****

2.3

[] Test 1: Not-Implemented

2.4 Policy 1

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing not set to in org, guest expire enabled, expire = 30 days passes ****
[] Test 3: Sharepoint external sharing not set to in org, guest expire not enabled, expire = 30 days fails ****
[] Test 4: Sharepoint external sharing not set to in org, guest expire enabled, expire not 30 days fails ****
[] Test 5: Sharepoint external sharing not set to in org, guest expire not enabled, expire not 30 days fails ****

2.4 Policy 2

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing not set to in org, reath enabled, reauth = 30 days passes ****
[] Test 3: Sharepoint external sharing not set to in org, reath not enabled, reauth = 30 days fails ****
[] Test 4: Sharepoint external sharing not set to in org, reath enabled, reauth not 30 days fails ****
[] Test 5: Sharepoint external sharing not set to in org, reath not enabled, reauth not 30 days fails ****

2.5

[] Test 1: No running custom scripts passes ****
[] Test 2: Can run custom scripts fails ****

G3- interactive mode

[] Light Mode works ****
[] Dark Mode works ****
[] No Empty Results ****

2.1

[] Test 1: File and folder links set to specific people passes ****
[] Test 2: File and folder links set to only in org fails ****
[] Test 3: File and folder links set to anyone with link fails ****

2.2

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing set to new & existing passes ****
[] Test 3: Sharepoint external sharing set to existing passes ****
[] Test 4: Sharepoint external sharing set to anyone fails ****

2.3

[] Test 1: Not-Implemented

2.4 Policy 1

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing not set to in org, guest expire enabled, expire = 30 days passes ****
[] Test 3: Sharepoint external sharing not set to in org, guest expire not enabled, expire = 30 days fails ****
[] Test 4: Sharepoint external sharing not set to in org, guest expire enabled, expire not 30 days fails ****
[] Test 5: Sharepoint external sharing not set to in org, guest expire not enabled, expire not 30 days fails ****

2.4 Policy 2

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing not set to in org, reath enabled, reauth = 30 days passes ****
[] Test 3: Sharepoint external sharing not set to in org, reath not enabled, reauth = 30 days fails ****
[] Test 4: Sharepoint external sharing not set to in org, reath enabled, reauth not 30 days fails ****
[] Test 5: Sharepoint external sharing not set to in org, reath not enabled, reauth not 30 days fails ****

2.5

[] Test 1: No running custom scripts passes ****
[] Test 2: Can run custom scripts fails ****

G3- NOT interactive mode

[] Light Mode works ****
[] Dark Mode works ****
[] No Empty Results ****

2.1

[] Test 1: File and folder links set to specific people passes ****
[] Test 2: File and folder links set to only in org fails ****
[] Test 3: File and folder links set to anyone with link fails ****

2.2

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing set to new & existing passes ****
[] Test 3: Sharepoint external sharing set to existing passes ****
[] Test 4: Sharepoint external sharing set to anyone fails ****

2.3

[] Test 1: Not-Implemented

2.4 Policy 1

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing not set to in org, guest expire enabled, expire = 30 days passes ****
[] Test 3: Sharepoint external sharing not set to in org, guest expire not enabled, expire = 30 days fails ****
[] Test 4: Sharepoint external sharing not set to in org, guest expire enabled, expire not 30 days fails ****
[] Test 5: Sharepoint external sharing not set to in org, guest expire not enabled, expire not 30 days fails ****

2.4 Policy 2

[] Test 1: Sharepoint external sharing set to in org passes ****
[] Test 2: Sharepoint external sharing not set to in org, reath enabled, reauth = 30 days passes ****
[] Test 3: Sharepoint external sharing not set to in org, reath not enabled, reauth = 30 days fails ****
[] Test 4: Sharepoint external sharing not set to in org, reath enabled, reauth not 30 days fails ****
[] Test 5: Sharepoint external sharing not set to in org, reath not enabled, reauth not 30 days fails ****

2.5

[] Test 1: No running custom scripts passes ****
[] Test 2: Can run custom scripts fails ****


third-party repository support

Description of the new feature/enhancement

the current package managers for windows such as Scoop allows you to create your own repository, it would be awesome if you can add your own repo to allow users to customize the repo to their needs.
Proposed technical implementation details (optional)

This is already possible as per https://github.com/microsoft/winget-cli#sources:

The client is built around the concept of sources; a set of packages effectively. Sources provide the ability to discover and retreive the metadata about the packages, so that the client can act on it.
The default source reflects that data available from the Community repo.
We plan to better support additional sources, and additional types of sources, in the future. For now, additional sources can be configured, but only one used at a time.

PS > winget source list
PS > winget source add --help

You can also simply throw some manifests on a fileshare and install them via:
PS > winget install --manifest \\fileserver\share\packagerepo\manifests\mycompany\myapp\1.0.0.yaml

See https://aka.ms/winget-command-source for details.

Related issues:

#160
#203
#213
#226

@megamorf but how do you make your own "source" server ?

@AntoineTurmel As of right now the only available source type is Microsoft.PreIndexed.Package which is defined as:
https://github.com/microsoft/winget-cli/blob/e997f3e394e66f2389f4f33f36c58b1c2768e975/src/AppInstallerRepositoryCore/Microsoft/PreIndexedPackageSourceFactory.h#L11-L18
Repo updates are done via Azure DevOps pipelines which don't seem to be included in the repos so  no luck there. The only workaround for now is to have manifests and setups on a share and reference those paths in the manifest files. Then, as mentioned before, provide the --manifest during the winget install call.

#118 May be the most simple way to achieve third-party repository support.

This is already possible as per https://github.com/microsoft/winget-cli#sources:

The client is built around the concept of sources; a set of packages effectively. Sources provide the ability to discover and retreive the metadata about the packages, so that the client can act on it.
The default source reflects that data available from the Community repo.
We plan to better support additional sources, and additional types of sources, in the future. For now, additional sources can be configured, but only one used at a time.

PS > winget source list
PS > winget source add --help

You can also simply throw some manifests on a fileshare and install them via:
PS > winget install --manifest \\fileserver\share\packagerepo\manifests\mycompany\myapp\1.0.0.yaml

See https://aka.ms/winget-command-source for details.

This is already possible as per https://github.com/microsoft/winget-cli#sources:

The client is built around the concept of sources; a set of packages effectively. Sources provide the ability to discover and retreive the metadata about the packages, so that the client can act on it.
The default source reflects that data available from the Community repo.
We plan to better support additional sources, and additional types of sources, in the future. For now, additional sources can be configured, but only one used at a time.

PS > winget source list
PS > winget source add --help

You can also simply throw some manifests on a fileshare and install them via:
PS > winget install --manifest \\fileserver\share\packagerepo\manifests\mycompany\myapp\1.0.0.yaml

See https://aka.ms/winget-command-source for details.

Excellent contribution. Thank you for going out of your way to make this information available to those searching for some sort of solution.

It is possible to add additional repositories using winget source add.
For help you can execute winget source -?
Support for REST API based repositories is nearly complete in the client as of v0.3.
We will be providing a reference implementation of a REST API based source along with our v1.0 release.

Updating this issue to help users find the reference implementation at
https://github.com/microsoft/winget-cli-restsource

For people looking for a private repository, we offer this now as a hosted service at https://winget.pro.

For people looking for a private repository, we offer this now as a hosted service at https://winget.pro.

Since this service isn't part of Microsoft, I don't think that you should use the winget name like that

I definitely agree with this…

For people looking for a private repository, we offer this now as a hosted service at https://winget.pro.

Since this service isn't part of Microsoft, I don't think that you should use the winget name like that

Not sure if it's ok to also advertise here but seeing since Winget.pro did it, I've created WinGetty over here: https://github.com/thilojaeggi/WinGetty which does everything Winget.pro does and more with the addition of it being open source and self-host able.


Compile error in thresholder.cpp

I tried to compile 3.05.00 on a rasperry pi with rasperian 4.1.19+ and get the following error:
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -O2 -DNDEBUG -DUSE_STD_NAMESPACE -I../ccutil -I../ccstruct -I../viewer -I../classify -I../dict -I../wordrec -I../cutil -I../textord -I../openc
l -I../neural_networks/runtime -I../cube -I/usr/local/include/leptonica -g -O2 -MT thresholder.lo -MD -MP -MF .deps/thresholder.Tpo -c thresholder.cpp  -fPIC -DPIC -o .libs/thresholder.o
thresholder.cpp: In member function 'virtual void tesseract::ImageThresholder::ThresholdToPix(tesseract::PageSegMode, Pix**)':
thresholder.cpp:187:20: error: 'nullptr' was not declared in this scope
Makefile:482: recipe for target 'thresholder.lo' failed
make[2]: *** [thresholder.lo] Error 1
This maybe relates to #535 and its fix in here https://github.com/tesseract-ocr/tesseract/blob/master/ccmain/thresholder.cpp#L187?

Try current code from 3.05 branch (or apply localy changes in https://github.com/tesseract-ocr/tesseract/commit/e85a7e2529416a12e806a8df2e9fdf92f7e39a5f


No Servers Configured

Hi. I've followe your guide to configure DNSCrypt on my Pi Hole but when y execute the command sudo "./dnscrypt-proxy"  gives me a  fatal error "no servers configured". I've tried some things with no luck. Any ideas? I also attach my dnscrypt-proxy.toml
dnscrypt-proxy.txt

Took a quick look at your file and it's probably because you've used incorrect servers and relay combination. try adding or changing servers/relays to check if it works. You can find the list here

I've just tried to put the same servers as you, and it gives me same error. Here's the updated .toml file.
dnscrypt-proxy.txt

You have odoh relays but no odoh servers configured in [sources] section. Try comparing your toml file with (https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml). Check and uncomment odoh servers under [sources]
If that doesn't work, I'd recommend you to start editing a fresh example file from scratch and giving it another shot.


ui: fix high draw times with low prob lane lines

When drawing very thin lane lines and you set a brush, UI frame times shoot up to hundreds of ms. If you don't draw the polygon, or don't set a brush, there's no issues. I tried to disable anti-aliasing, but that had no effect. The following plots are just with one lane line for isolation. As llp[0] nears 0, the frame times get worse and worse. @deanlee can you think of any reason why this happens and a better way to fix it instead of removing the dynamic width?
https://github.com/commaai/openpilot/blob/80eff1b6ce6600c8b93846ac6e096cf38f9ec695/selfdrive/ui/qt/onroad.cc#L444-L448
https://github.com/commaai/openpilot/assets/25857203/36c9261b-3bd7-48d6-8adb-21cc841d7abf

I had previously submitted a PR #23542 to not draw lane line when the llp nears 0. However, I don't know why it behaves this way. While changing brushes frequently can impact performance, especially when drawing on an OpenGL surface, it shouldn't be so noticeable.

I was able to reproduce it when I only set one brush (to white) and drew one lane line

Will there be an improvement if "setSamples"  to a lower value? current value is 16:
https://github.com/commaai/openpilot/blob/d68bd905fc9440352007e115c0f46dc9c0b4e402/selfdrive/ui/qt/util.cc#L98

No, I even disabled it with -1, same issue. I can even reproduce it on PC if you want the rlog

Ah, max_distance from the plan is almost always above 100 when testing, but model is much less. If you hardcode max_distance to 99, the spikes mostly go away. any ideas @deanlee?

Certain QPolygonFs cause these high frame times consistently, for example this waits until a high draw time, then keeps drawing it:
selfdrive/ui/ui.cc: max_distance orig, new: 78.3472 100
selfdrive/ui/qt/onroad.cc: using bad poly
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-394.075,900.027)QPointF(-54.5725,810.538)QPointF(180.188,748.413)QPointF(341.522,705.421)QPointF(467.642,671.917)QPointF(563.719,647.199)QPointF(624.822,628.565)QPointF(675.679,613.808)QPointF(702.328,601.059)QPointF(725.26,591.128)QPointF(733.876,585.022)QPointF(754.121,577.493)QPointF(751.813,572.547)QPointF(766.213,569.503)QPointF(771.051,564.169)QPointF(762.17,565.01)QPointF(775.544,562.746)QPointF(775.581,562.746)QPointF(762.21,565.01)QPointF(771.095,564.169)QPointF(766.261,569.503)QPointF(751.866,572.547)QPointF(754.181,577.493)QPointF(733.944,585.022)QPointF(725.336,591.128)QPointF(702.414,601.059)QPointF(675.778,613.808)QPointF(624.937,628.565)QPointF(563.854,647.199)QPointF(467.803,671.917)QPointF(341.716,705.421)QPointF(180.428,748.413)QPointF(-54.2691,810.538)QPointF(-393.679,900.027))
selfdrive/ui/qt/onroad.cc: draw time: 1.05996 ms

selfdrive/ui/ui.cc: max_distance orig, new: 66.7283 100
selfdrive/ui/qt/onroad.cc: using bad poly
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-310.599,902.3)QPointF(4.31749,814.123)QPointF(224.051,753.363)QPointF(368.411,712.633)QPointF(486.291,680.94)QPointF(580.094,657.547)QPointF(625.66,640.1)QPointF(682.804,625.856)QPointF(702.245,613.073)QPointF(725.857,603.528)QPointF(735.763,597.09)QPointF(754.062,589.918)QPointF(750.446,584.782)QPointF(766.495,580.99)QPointF(772.2,575.44)QPointF(759.51,576.265)QPointF(770.563,574.463)QPointF(770.599,574.463)QPointF(759.55,576.265)QPointF(772.244,575.44)QPointF(766.543,580.99)QPointF(750.5,584.782)QPointF(754.122,589.918)QPointF(735.83,597.09)QPointF(725.933,603.528)QPointF(702.331,613.073)QPointF(682.903,625.856)QPointF(625.775,640.1)QPointF(580.229,657.547)QPointF(486.451,680.94)QPointF(368.606,712.633)QPointF(224.29,753.363)QPointF(4.62096,814.123)QPointF(-310.203,902.3))
selfdrive/ui/qt/onroad.cc: draw time: 18.168 ms

selfdrive/ui/ui.cc: max_distance orig, new: 73.8285 100
selfdrive/ui/qt/onroad.cc: using bad poly
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-451.948,899.583)QPointF(-99.3411,810.203)QPointF(146.246,748.129)QPointF(319.808,704.831)QPointF(455.683,670.959)QPointF(564.931,645.632)QPointF(635.444,626.562)QPointF(697.379,611.425)QPointF(735.719,598.36)QPointF(768.944,587.918)QPointF(786.11,581.553)QPointF(816.362,573.425)QPointF(821.051,568.269)QPointF(843.466,564.851)QPointF(852.994,559.49)QPointF(848.498,560.107)QPointF(864.489,558.175)QPointF(864.526,558.175)QPointF(848.538,560.107)QPointF(853.038,559.49)QPointF(843.514,564.851)QPointF(821.105,568.269)QPointF(816.422,573.425)QPointF(786.177,581.553)QPointF(769.019,587.918)QPointF(735.806,598.36)QPointF(697.478,611.425)QPointF(635.559,626.562)QPointF(565.065,645.632)QPointF(455.843,670.959)QPointF(320.003,704.831)QPointF(146.485,748.129)QPointF(-99.0377,810.203)QPointF(-451.552,899.583))
selfdrive/ui/qt/onroad.cc: draw time: 1.18842 ms

selfdrive/ui/ui.cc: max_distance orig, new: 100 100
selfdrive/ui/qt/onroad.cc: using bad poly
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-421.356,904.149)QPointF(-78.3551,813.953)QPointF(154.816,751.289)QPointF(318.861,707.915)QPointF(442.034,674.219)QPointF(540.446,649.28)QPointF(606.151,630.116)QPointF(655.488,615.075)QPointF(687.746,601.825)QPointF(713.056,591.03)QPointF(723.581,584.804)QPointF(747.622,576.588)QPointF(747.899,571.431)QPointF(766.482,568.15)QPointF(774.357,562.801)QPointF(767.935,563.462)QPointF(785.301,560.92)QPointF(785.337,560.92)QPointF(767.975,563.462)QPointF(774.401,562.801)QPointF(766.53,568.15)QPointF(747.953,571.431)QPointF(747.682,576.588)QPointF(723.649,584.804)QPointF(713.132,591.03)QPointF(687.833,601.825)QPointF(655.588,615.075)QPointF(606.266,630.116)QPointF(540.581,649.28)QPointF(442.195,674.219)QPointF(319.055,707.915)QPointF(155.056,751.289)QPointF(-78.0515,813.953)QPointF(-420.96,904.149))
selfdrive/ui/qt/onroad.cc: draw time: 1.28275 ms

selfdrive/ui/ui.cc: max_distance orig, new: 86.5993 100
selfdrive/ui/qt/onroad.cc: using bad poly
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-227.194,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 54.2867 ms high!

selfdrive/ui/ui.cc: max_distance orig, new: 82.4211 100
selfdrive/ui/qt/onroad.cc: is closed: true
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-226.891,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 48.1844 ms high!

selfdrive/ui/ui.cc: max_distance orig, new: 61.5824 100
selfdrive/ui/qt/onroad.cc: is closed: true
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-226.891,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 48.1316 ms high!

Certain QPolygonFs cause these high frame times consistently, for example this waits until a high draw time, then keeps drawing it. It then is fixed if you convert it to an integer polygon with .toPolygon()
selfdrive/ui/ui.cc: max_distance orig, new: 73.8285 100
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-451.948,899.583)QPointF(-99.3411,810.203)QPointF(146.246,748.129)QPointF(319.808,704.831)QPointF(455.683,670.959)QPointF(564.931,645.632)QPointF(635.444,626.562)QPointF(697.379,611.425)QPointF(735.719,598.36)QPointF(768.944,587.918)QPointF(786.11,581.553)QPointF(816.362,573.425)QPointF(821.051,568.269)QPointF(843.466,564.851)QPointF(852.994,559.49)QPointF(848.498,560.107)QPointF(864.489,558.175)QPointF(864.526,558.175)QPointF(848.538,560.107)QPointF(853.038,559.49)QPointF(843.514,564.851)QPointF(821.105,568.269)QPointF(816.422,573.425)QPointF(786.177,581.553)QPointF(769.019,587.918)QPointF(735.806,598.36)QPointF(697.478,611.425)QPointF(635.559,626.562)QPointF(565.065,645.632)QPointF(455.843,670.959)QPointF(320.003,704.831)QPointF(146.485,748.129)QPointF(-99.0377,810.203)QPointF(-451.552,899.583))
selfdrive/ui/qt/onroad.cc: draw time: 1.18842 ms

selfdrive/ui/ui.cc: max_distance orig, new: 100 100
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-421.356,904.149)QPointF(-78.3551,813.953)QPointF(154.816,751.289)QPointF(318.861,707.915)QPointF(442.034,674.219)QPointF(540.446,649.28)QPointF(606.151,630.116)QPointF(655.488,615.075)QPointF(687.746,601.825)QPointF(713.056,591.03)QPointF(723.581,584.804)QPointF(747.622,576.588)QPointF(747.899,571.431)QPointF(766.482,568.15)QPointF(774.357,562.801)QPointF(767.935,563.462)QPointF(785.301,560.92)QPointF(785.337,560.92)QPointF(767.975,563.462)QPointF(774.401,562.801)QPointF(766.53,568.15)QPointF(747.953,571.431)QPointF(747.682,576.588)QPointF(723.649,584.804)QPointF(713.132,591.03)QPointF(687.833,601.825)QPointF(655.588,615.075)QPointF(606.266,630.116)QPointF(540.581,649.28)QPointF(442.195,674.219)QPointF(319.055,707.915)QPointF(155.056,751.289)QPointF(-78.0515,813.953)QPointF(-420.96,904.149))
selfdrive/ui/qt/onroad.cc: draw time: 1.28275 ms

selfdrive/ui/ui.cc: max_distance orig, new: 86.5993 100
selfdrive/ui/qt/onroad.cc: using bad poly
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-227.194,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 54.2867 ms high!

selfdrive/ui/ui.cc: max_distance orig, new: 82.4211 100
selfdrive/ui/qt/onroad.cc: is closed: true
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-226.891,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 48.1844 ms high!

selfdrive/ui/ui.cc: max_distance orig, new: 61.5824 100
selfdrive/ui/qt/onroad.cc: is closed: true
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-226.891,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 48.1316 ms high!

It looks like the polygon was drawn using software simulation instead of hardware acceleration

Certain QPolygonFs cause these high frame times consistently, for example this waits until a high draw time, then keeps drawing it. It then is fixed if you convert it to an integer polygon with .toPolygon()
selfdrive/ui/ui.cc: max_distance orig, new: 73.8285 100
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-451.948,899.583)QPointF(-99.3411,810.203)QPointF(146.246,748.129)QPointF(319.808,704.831)QPointF(455.683,670.959)QPointF(564.931,645.632)QPointF(635.444,626.562)QPointF(697.379,611.425)QPointF(735.719,598.36)QPointF(768.944,587.918)QPointF(786.11,581.553)QPointF(816.362,573.425)QPointF(821.051,568.269)QPointF(843.466,564.851)QPointF(852.994,559.49)QPointF(848.498,560.107)QPointF(864.489,558.175)QPointF(864.526,558.175)QPointF(848.538,560.107)QPointF(853.038,559.49)QPointF(843.514,564.851)QPointF(821.105,568.269)QPointF(816.422,573.425)QPointF(786.177,581.553)QPointF(769.019,587.918)QPointF(735.806,598.36)QPointF(697.478,611.425)QPointF(635.559,626.562)QPointF(565.065,645.632)QPointF(455.843,670.959)QPointF(320.003,704.831)QPointF(146.485,748.129)QPointF(-99.0377,810.203)QPointF(-451.552,899.583))
selfdrive/ui/qt/onroad.cc: draw time: 1.18842 ms

selfdrive/ui/ui.cc: max_distance orig, new: 100 100
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-421.356,904.149)QPointF(-78.3551,813.953)QPointF(154.816,751.289)QPointF(318.861,707.915)QPointF(442.034,674.219)QPointF(540.446,649.28)QPointF(606.151,630.116)QPointF(655.488,615.075)QPointF(687.746,601.825)QPointF(713.056,591.03)QPointF(723.581,584.804)QPointF(747.622,576.588)QPointF(747.899,571.431)QPointF(766.482,568.15)QPointF(774.357,562.801)QPointF(767.935,563.462)QPointF(785.301,560.92)QPointF(785.337,560.92)QPointF(767.975,563.462)QPointF(774.401,562.801)QPointF(766.53,568.15)QPointF(747.953,571.431)QPointF(747.682,576.588)QPointF(723.649,584.804)QPointF(713.132,591.03)QPointF(687.833,601.825)QPointF(655.588,615.075)QPointF(606.266,630.116)QPointF(540.581,649.28)QPointF(442.195,674.219)QPointF(319.055,707.915)QPointF(155.056,751.289)QPointF(-78.0515,813.953)QPointF(-420.96,904.149))
selfdrive/ui/qt/onroad.cc: draw time: 1.28275 ms

selfdrive/ui/ui.cc: max_distance orig, new: 86.5993 100
selfdrive/ui/qt/onroad.cc: using bad poly
selfdrive/ui/qt/onroad.cc: is closed: false
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-227.194,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 54.2867 ms high!

selfdrive/ui/ui.cc: max_distance orig, new: 82.4211 100
selfdrive/ui/qt/onroad.cc: is closed: true
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-226.891,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 48.1844 ms high!

selfdrive/ui/ui.cc: max_distance orig, new: 61.5824 100
selfdrive/ui/qt/onroad.cc: is closed: true
selfdrive/ui/qt/onroad.cc: QPolygonF(QPointF(-226.891,810.096)QPointF(8.98217,748.223)QPointF(161.815,705.726)QPointF(275.524,672.734)QPointF(359.59,648.144)QPointF(400.718,629.924)QPointF(440.32,615.716)QPointF(445.962,602.879)QPointF(453.59,593.545)QPointF(447.754,587.792)QPointF(452.235,580.514)QPointF(442.916,575.783)QPointF(446.003,573.375)QPointF(445.972,568.046)QPointF(427.373,568.612)QPointF(445.016,567.363)QPointF(445.053,567.363)QPointF(427.413,568.612)QPointF(446.017,568.046)QPointF(446.051,573.375)QPointF(442.969,575.783)QPointF(452.294,580.514)QPointF(447.821,587.792)QPointF(453.666,593.545)QPointF(446.048,602.879)QPointF(440.419,615.716)QPointF(400.833,629.924)QPointF(359.725,648.144)QPointF(275.684,672.734)QPointF(162.009,705.726)QPointF(9.22202,748.223)QPointF(-226.891,810.096))
selfdrive/ui/qt/onroad.cc: draw time: 48.1316 ms high!

If it takes tat much time, the polygon should have been drawn using software simulation instead of hardware acceleration

If it takes tat much time, the polygon should have been drawn using software simulation instead of hardware acceleration

It's only certain polygons, why would that happen?

This will happen when qt's opengl PaintEnginee doesn't know how to close the points. In this case qt will use Qpaintpath to do a software simulation rending.

Is there a significant difference if you replace drawPolygon with drawConvexPolygon?

Yes, no spikes, but leads to undefined behavior.
(just drawing one)

So it looks like we can solve this issue by making the first point in polygon implicitly connected to the last point. this would satisfy the conditions for hardware acceleration.

So I profiled both a good section of the route (with thick lane line) and compared it to the bad section (with thin line).
This is inside QPaintEngineEx::draw(), which up till here seemed similar (no extra function calls). The ir per call is massively different here:
Good:

Bad:

drawConvexPolygon will set mode to ConvexMode https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/opengl/qpaintengine_opengl.cpp#L3870, it is guaranteed to use hardware acceleration:
f (mode == ConvexMode && !d->high_quality_antialiasing) {
            //### resolving on polygon from points isn't correct
            d->setGradientOps(d->cbrush, bounds);

            const qreal *vertexArray = reinterpret_cast<const qreal*>(&points[0]);

            if (sizeof(qreal) == sizeof(double)) {
                Q_ASSERT(sizeof(QPointF) == 16);
                glVertexPointer(2, GL_DOUBLE, 0, vertexArray);
            }
            else {
                Q_ASSERT(sizeof(QPointF) == 8);
                glVertexPointer(2, GL_FLOAT, 0, vertexArray);
            }

            glEnableClientState(GL_VERTEX_ARRAY);
            glDrawArrays(GL_TRIANGLE_FAN, 0, pointCount);
            glDisableClientState(GL_VERTEX_ARRAY);
        }

But lane lines are not convex, right?

Yeah think you're right, qTriangulate must be on the CPU. If you enable stencil buffering, it uses that instead of qTriangulate and the frame times are much more consistent:
https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp#L942-L966

And here's running on that C3 in the testing closet! Switched to 1 bit buffer size half way through

WOW! so it has been resolved by enabling stencil buffering? that's awesome!!!

One final test on two different devices. One is on jenkins and is positioned to generate lane lines with many intersections and polygon is very thin at the end (causing qTriangulate to return visual artifacts and take longer to calculate). The other is at my desk and lane lines are so close to 0 prob you can't see them.
Jenkins device:

Desk device:

@deanlee you think this is related to need to round the hue in the path? If you can reproduce that, want to test before and after this PR with the rounding removed?


Enabling PXP accelearion for lvgl for i. MXRT1064

Greetings all,
Currently it isn't possible to use pxp gpu acceleration for 2D lvgl rendering in ZephyrOS. Pxp acceleration not only is necessary for faster rendering, but also for display rotation, which doesn't seem to be possible (with acceptable performance) without the pxp accel.
Here is some research of files that would be need. But just adding them to a Project isn't enough:

lv_gpu/lv_gpu_nxp.c, lv_gpu/lv_gpu_nxp.h: low level drawing calls for LVGL
lv_gpu/lv_gpu_nxp_osa.c, lv_gpu/lv_gpu_osa.h: default implementation of OS-specific functions (bare metal and FreeRTOS only)

optional, required only if LV_USE_GPU_NXP_PXP_AUTO_INIT is set to 1

PXP related code depends on two drivers provided by MCU SDK. These drivers need to be added to project:

fsl_pxp.c, fsl_pxp.h: PXP driver
fsl_cache.c, fsl_cache.h: CPU cache handling functions

@danieldegrasse this is what we discussed in Prague at EOSS :) If we can help or you can point us how to contribute here we'd be open to this.

Hi @arfoll, I think integrating the PXP into LVGL directly would come later, as there are additional functions the PXP supports (like blending) that LVGL leverages. For the display rotation use case, I will look into exposing the PXP driver using the DMA API to see if it can satisfy your needs there.


{ADO} Pin version 2.1.17 for cred scan

Because package Microsoft.Security.CredScan in task Run Credential Scanner was upgraded from version 2.1.17 to the new version <IP_ADDRESS>, a large number of issues were scanned, resulting in CI blocking pipeline link
Therefore, pin the version of Microsoft.Security.CredScan to the last successfully version 2.1.17 to avoid blocking CI

/azp run

ADO

Also, as an FYI:
https://docs.microsoft.com/en-us/azure/security/develop/security-code-analysis-overview

Effective July 1, 2022, the Microsoft Security Code Analysis (MSCA) extension will be retired. Existing MSCA customers will retain their access to MSCA through July 1, 2022. Please refer to the OWASP Source Code Analysis Tools for alternative options in Azure DevOps. For customers planning to migrate to GitHub, you can check out GitHub Advanced Security.

Not sure what will be the replacement of CredScan.


How to make 2 event play at the same time

Are you trying to code on Source Code (Haxe) or on the Downloaded Build (Lua)?
Downloaded Build
Show an screenshot/video of your problem.
So there isn't 10 ways to say what I want so it might be confusing,
NO I'm not saying that I can't place 2 note at the same place (anyway you can)
The real question is: I manage to create a code that allow draining from the opponent using an event
(Btw, the script you (ShadowMario) gave me was little to useless since I had no idea how to use it! (A little explanation on how to use it couldn't hurt next time))
Anyway, here is the script in question
function onEvent(name, value1, value2)
	function opponentNoteHit()
		if getProperty('health') > (value2 / 50) and getProperty('health') < (value1 / 50) then
			setProperty('health', (value2 / 50))
		else if  getProperty('health') > (value2 / 50) and getProperty('health') > (value1 / 50) then
			setProperty('health', getProperty('health')-(value1 / 50))
		end
		end
	end
end

-- Value 1 is for drain (Divided by 50 since health stat is 2-0)
-- Value 2 is for health minimum (Also divided by 50, 0 will cause the player to die, going over 100 will do the same as 100)

To be short, if the health is over the minimum and the drain value, drain the player, if the health is over the minimum but lower then the drain value, insert the minimum value (To avoid getting killed because the health is set under 0 for a frame)
Anyway, when you add a new drain event, it replace the old one, which is good, but then, if you play another event it will stop the drain! (Yes you can just place another drain event right after it, but come on, I want things to be clean)
Any solution that doesn't require the Source Code?
Edit : Bonus question, what is the default value when you leave blank?

Are you serious that you need an explanation for this
Also this entire post is confusing as hell i didn't understand what is your exact question

No reply, i will assume op figured it out.


Note properties (analysis tab) - view

As a user, I want to view details for the last-touched note in a tuning strip, in a Note properties tab in the analysis section of the UI.
This is the first step; the second step allows robust editing of the note data.

New functionality: To avoid selection toggle for notes, hold Ctrl.
Implementation examples

No note touched.

Note touched.


Proposal: Combine NFTs to ERC-20 Token

Description

A platform for user to wrap their NFTs to an Erc-20 token and unwrap from ERC-20 token to NFTs

Bounty track

Dapp on Kaia

Interesting. Approved to proceed.


Fix for handling lists of dicts in attributes.

Handled this case:
pygenie.jobs.PrestoJob() \
    .dependencies([{"data": "blah", "name": "blah"}])

Which failed due to the list normalization.

Coverage decreased (-0.1%) to 88.706% when pulling c3802833ce5d13bb4cf4609e52edcb24a11b45f0 on charsmith:master into 047cd7e2f474e92be9e7d329ea8fc130d17db3dd on Netflix:master.


Documentation on how to publish a Composer Bot to a Dev Ops pipeline

@Dewain27 I've removed @luhan2017 's assignment and her team is focusing on other areas.

Team, please use this aka.ms link:
https://aka.ms/bfcomposercicd

Actually We are trying to deploy a bot throw some pipelines with DevOps , It will help me a lot !


Fix OutputFormat FourCC

Unity sends output reports with HIDO not HID

Blunder on my part, got it right in PlasticBand-Unity but not here lol


DRAFT - Feature/enable disable health signal stream

Codecov Report

Merging #46 (b87283b) into main (e3fcffa) will increase coverage by 0.04%.
The diff coverage is 76.66%.

@@            Coverage Diff             @@
##             main      #46      +/-   ##
==========================================
+ Coverage   75.80%   75.84%   +0.04%
==========================================
  Files         165      165
  Lines        3025     3014      -11
  Branches       57       56       -1
==========================================
- Hits         2293     2286       -7
+ Misses        732      728       -4

Impacted Files
Coverage Δ

...src/main/scala/surge/core/KafkaProducerActor.scala
81.08% <25.00%> (+13.08%)
:arrow_up:

...e/internal/health/HealthSignalStreamProvider.scala
73.33% <50.00%> (-26.67%)
:arrow_down:

...surge/internal/core/SurgePartitionRouterImpl.scala
64.28% <100.00%> (-1.43%)
:arrow_down:

...a/surge/internal/domain/SurgeMessagePipeline.scala
84.44% <100.00%> (+2.22%)
:arrow_up:

...ternal/akka/actor/ActorLifecycleManagerActor.scala
89.47% <100.00%> (ø)

.../scala/surge/internal/health/HealthSignalBus.scala
71.27% <100.00%> (+1.71%)
:arrow_up:

...afka/streams/AggregateStateStoreKafkaStreams.scala
78.57% <100.00%> (ø)

...rnal/health/supervisor/HealthSupervisorActor.scala
71.64% <0.00%> (-2.24%)
:arrow_down:

...a/surge/kafka/KafkaPartitionShardRouterActor.scala
63.01% <0.00%> (-0.69%)
:arrow_down:

.../surge/internal/kafka/KafkaProducerActorImpl.scala
86.58% <0.00%> (-0.44%)
:arrow_down:

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 e3fcffa...b87283b. Read the comment docs.

You may want to rename the PR title of this as well so it's not merged with "DRAFT" in it :)


Add %z and fix %e

%e has a leading blank instead of zero (_2)
%z is the timezone in +/-hhmm offset from UTC.

Totally missed this. Thanks for this!


During the Q3 exams we gave too long for the force homework

They got like 4 weeks for this (Mar 30 to Apr 26). This homework was an easier one and then the subsequent homeworks got all backed up and more overloaded. It would have probably been better to have the due date for HW07 on April 20th.

I've made this homework due the day after the two week exam break.


MNT: Re-rendered with conda-build 3.21.9, conda-smithy 3.21.1, and co…

…nda-forge-pinning 2<IP_ADDRESS>.22.29

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I was trying to look for recipes to lint for you, but it appears we have a merge conflict.
Please try to merge or rebase with the base branch to resolve this conflict.
Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Develop units tests to cover alternative locales

Description
We have quite a few test cases that aren't covered regarding different locales
Example provided by @houmark

Mention me when you want me to test also :) We have a setup with all locals loaded to the user so I can easily test a real life case with different locals.


fix: agent monitor ip cache flush logic

Codecov Report

Merging #318 (d4b387e) into main (95ff9dc) will increase coverage by 0.12%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #318      +/-   ##
==========================================
+ Coverage   63.89%   64.02%   +0.12%
==========================================
  Files          41       41
  Lines        6883     6880       -3
==========================================
+ Hits         4398     4405       +7
+ Misses       2119     2115       -4
+ Partials      366      360       -6

Impacted Files
Coverage Δ

pkg/monitor/agent.go
68.87% <100.00%> (-0.19%)
:arrow_down:

plugin/tower/pkg/controller/global/controller.go
86.75% <0.00%> (-1.29%)
:arrow_down:

pkg/agent/controller/policy/policy_controller.go
78.59% <0.00%> (-0.79%)
:arrow_down:

pkg/controller/group/group_controller.go
70.57% <0.00%> (+0.18%)
:arrow_up:

plugin/tower/pkg/controller/policy/controller.go
84.19% <0.00%> (+2.27%)
:arrow_up:


Larger look into the uint64 space, choosing the best k for my machine

The dimensions of biological data that we are able to investigate are formed by some choice of k, and we can represent biological scenarios in terms of .kdb files. By selecting some choice of k, we are able to concentrate the problem solving capacities of the computer, the logical imperative to mesh with the grammatical, and produce readable, semantic, organic codebase.
I don't spend enough time in the README, but it's a source of great anxiety.
Anyways yeah I'm going to consider this uint space for a moment to really get a grasp of the potential feature space.

And I need to keep track of the metadata, then technically any kdb cluster could store semantic meaning, a question to capture...

[0-18446744073709551615] is the potential size of the feature space.

I'm confused... each element of the array can be any value from 0:18446744073709551615? And the index can also be any number in this range, so we have a maximum numpy array length of what exactly? Or does this not matter?

The sweetest choice of k, when working with tens to hundreds of profiles, for this era of memory, seems to be k=12:15.
These are specific enough to differentiate between microbial species, with a sensitivity proportional to 4^k.
This seems to produce meta genomic and microbial profiles with tolerable (< 16Gb) memory footprints for profile generation from tens of individual fasta genomes, in one command.
I suggest most users experiment with a conservative choice of k, until my local resources permit me to look further into high-memory usage scenarios.


Refactor the OptionListUtil component

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

We would like to refactor the OptionListUtil component. Before making this external we need to agree on what the plan is.

Original DD discussion
Slack thread

@lindboe suggested speaking with the @Expensify/design team first:

We could look at refactoring and splitting up the file into more specific domains. The functions in this are pretty large as well and could be broken into smaller, more focused parts.

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01854ce53c62b5b779
Upwork Job ID:<PHONE_NUMBER>147867136
Last Price Increase: 2023-11-07

Currently planning this as part of the Attendee Tracking design doc

On hold for now, along with the Doc.


Timer callback stops firing when no data is moving through the system

Hi,
I am having troubles with my timer callback calling after a few seconds when using the zenoh middleware with my application. I am not experiencing this issue with cyclonedds. I have tried and failed to reproduce it with a small example. Is there any way to introspect the timer queue within Zenoh?

So it is tricky because rmw_zenoh doesn't directly deal with the timer callbacks.  Those are handled at the rcl/rclcpp layer.  However, if the rmw_wait that is implemented in Zenoh gets hung up for some reason, it can cause the timer callbacks to be delayed.  They should eventually fire (after rmw_wait times out), but they may be delayed.
It's hard to say here without an example, but there have been some other issues we've been trying to track down with rmw_wait.  #153 should have solved some of it, but seems to have caused a regression.  If you apply #157, does the problem go away?

@clalancette I still have the same issues on #157. From your comments it seems that I would want to instrument the rmw_wait function if I wanted to drill down into what was happening though.

Moving to the backlog for now since other relevant issues #153 and #157 haven't been resolved yet.

This issue also only happens when my node has multiple timers.

Hey @AlexDayCRL could you try doing a clean build with the latest rolling branch and confirm if the problem still exists?

There's been no response here in a long time, so I'm going to close this out.  If you are still having problems with the latest, please feel free to reopen.


missing import webpack-sources

Resolution to https://github.com/unjs/unplugin/issues/410 breaks new Nuxt installs (and any other use of unplugin without webpack) as webpack-sources is now imported directly into the main entrypoint of unplugin.
<EMAIL_ADDRESS>Maybe we could use a dynamic import?

~> https://github.com/unjs/unplugin/issues/412

Should be fixed in v1.13.1 with 6d4d2b13277e3904419d8b8227c6336930b9a2ad


No API integration for scheduled maintenance

My team was hoping to integrate with the API to automatically create issues when downtime was detected - however we'd obviously like to skip this during scheduled maintenance.
However, the current APIs don't seem to be integrated with the maintenance features.

+1
I just noticed the exact same behaviour. This is a real bummer since we're trying to automatically set the status of our interfaces and during a scheduled maintenance all potential issues should be ignored.


Number type matchers when using Pact specification version 2

I am trying to create a contract for a response which contains a number value attribute. Something like the following:
"parent_attr": {
    "child_attr": 11
}

The used matchers for this part of the response are the following:
PactDslJsonBody()
    .object("parent_attr")
        .numberType("child_attr", 11)
    .closeObject()

And the result in the pact itself:
"$.parent_attr.child_attr ": {
     "match": "number"
}

The issue comes from the constraint that the consumer and the provider should use pact specification version 2. This results in a pact verification warning about the number attribute:

WARN: Ignoring unsupported matchers [{"match"=>"number"}]

What is the best approach for number type matchers when using pact specification version 2? Is there any way the resulting matcher to be:
"$.body.parent_attr.child_attr ": {
    "match": "type"
}

The same as the one which comes as a result when stringType() is used.

That's a good point. The number matches are just extensions to type matchers, so we could do that.


All debuggers don't start if any of them has problem while loading

Issue Type: Bug
I have installed official C# extension, which includes debugger support. For some reason it crashes on my arch linux (see log 1).
After it crashes I can't start any debugger (python, haskell etc.). Nothing literally happens. See screencast:

log 1:
--------------------------------------------------------------------------------
Razor.VSCode version 1.0.0-alpha2-20181112.3
--------------------------------------------------------------------------------
Razor's trace level is currently set to 'Off'
 - To log issues with the Razor experience in VSCode you can file issues at https://github.com/aspnet/Razor.VSCode
 - To change Razor's trace level set 'razor.trace' to 'Off', 'Messages' or 'Verbose' and then restart VSCode.
-----------------------------------------------------------------------------------------------------------------------------

[Info  - 0:16:37] Connection to server got closed. Server will restart.
[Info  - 0:16:38] Connection to server got closed. Server will restart.
[Info  - 0:16:39] Connection to server got closed. Server will restart.
[Info  - 0:16:40] Connection to server got closed. Server will restart.
[Error - 0:16:41] Connection to server got closed. Server will not be restarted.

PS I don't care about C# debugging at all, this extension breaks debug support.

You have a ton of extensions. This has the potential that some of them are interacting in a way that results in the problem you are seeing.
Could you please disable all extensions with the exception of C# and Python.
Does C# still crashes in that smaller setup?
If yes, is it still not possible to start Python debugging in that situation?

Does restarting VS Code helps if you are in the situation that debugging no longer works?

Yes but only if I disable C# extension. Actucally that's what I do to workaround: disable it and run "Reload window" command.
I'll test it today later, currently have no access to my arch machine

I came across this too trying to start the typescript debugger. It's a bug in Razor.VSCode https://github.com/aspnet/Razor.VSCode/issues/223

I have created new folder where locally disabled all extensions except c# and python ones. c# extension continues to crash, I can't even create launch.json from gui, see screenshot. And of course debugger still doesn't launch.
I think you need to create basic debugger extension which throws exceptions everywhere it can to reproduce, I don't know

I also believe that this issue is not related to new release, I use arch seldom.

Please file this issue against C# extension.

There is definitely an issue with extension, but vscode has an issue too. It stops working properly with buggy extension. Why close?

@isidorn let's investigate why VS Code debugging stops working after the C# issue.

@weinand ok, I can investigate.

I wrote a debug adapter extension that throws on start and I can not reproduce this exact issue.
However I could reproduce a similar issue which might cause this and I fixed this.
@Yanpas @bmewburn So please try vscode insiders tomorrow and let me know if you can still reproduce https://code.visualstudio.com/insiders/
Also can you reproduce this if you uninstall or disable the live share extension?

Can you upload your extension to github? I'll try to experiment with throw in different methods or/and add sleeps.
Will test soon.

@Yanpas I just modified the mock debug extension, you can find it here and try to throw in multiple places https://github.com/Microsoft/vscode-mock-debug
Though just using C# on arch linux should do it for you. Also please note my live share comment.

Nope, that didn't help, still python debugger doesn't start with C# extension:
Version: 1.33.0-insider
Commit: edd2c737f9b6f08cd0e30050b441cd262eb7f0d8
Date: 2019-03-21T06:14:07.104Z
Electron: 3.1.6
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Linux x64 5.0.0-arch1-1-ARCH

Seems like error happens in startDebugging (debugService.ts), after startInitializingState. I catch error in different places

You may try to run manjaro vbox image to reproduce since this distro is very close to arch
https://www.osboxes.org/manjaro/

@yanpas thanks for providing more details. But I could still not repro.
Can you try to find the most specific place where the error is thrown?
Also when you start debugging Python which does not start can you put a breakpoint here and step and try to figure out why debugging is not started.
We can also do a debugging session together if you have time.
Setting up a archlinux machine I could look into doing some time in the future since I unfortunetly do not have time now.

Funny way to break C# extension is cp /usr/bin/echo ~/.vscode-oss-dev/extensions/ms-vscode.csharp-1.17.1/.razor/rzls
While trying to debug vscode noticed that likely Promise returned in this.extensionService.activateByEvent line 259 never gets resolved:
diff --git a/src/vs/workbench/contrib/debug/electron-browser/debugService.ts b/src/vs/workbench/contrib/debug/electron-browser/debugService.ts
index 8c0d6605cf..fe8bf8b8e3 100644
--- a/src/vs/workbench/contrib/debug/electron-browser/debugService.ts
+++ b/src/vs/workbench/contrib/debug/electron-browser/debugService.ts
@@ -71,6 +71,26 @@ const enum TaskRunResult {
        Success
 }

+function promiseTimeout<T>(ms: number, promise:Promise<T>){
+       return new Promise<T>(function(resolve, reject){
+
+               // create a timeout to reject promise if not resolved
+               let timer = setTimeout(function(){
+                       reject(new Error("promise timeout"));
+               }, ms);
+
+               promise
+                       .then(function(res){
+                               clearTimeout(timer);
+                               resolve(res);
+                       })
+                       .catch(function(err){
+                               clearTimeout(timer);
+                               reject(err);
+                       });
+       });
+}
+
 export class DebugService implements IDebugService {
        _serviceBrand: any;

@@ -256,7 +276,7 @@ export class DebugService implements IDebugService {

                this.startInitializingState();
                // make sure to save all files and that the configuration is up to date
-               return this.extensionService.activateByEvent('onDebug').then(() => {
+               let p = this.extensionService.activateByEvent('onDebug').then(() => {
                        return this.textFileService.saveAll().then(() => this.configurationService.reloadConfiguration(launch ? launch.workspace : undefined).then(() => {
                                return this.extensionService.whenInstalledExtensionsRegistered().then(() => {

@@ -336,6 +356,7 @@ export class DebugService implements IDebugService {
                        this.endInitializingState();
                        return Promise.reject(err);
                });
+               return promiseTimeout(1000, p);
        }

        /**

Thanks for providing more details, reopening to investigate more

Should be fixed  via https://github.com/Microsoft/vscode/commit/d9a72bc222b550398ebaf553c02e8f21f292f034

Were you able to reproduce this bug with modification of rzls executable on any linux and c# extension v 1.17.1?
I've pulled master now, ran yarn install; yarn watch and launched nodejs debugger inside code-oss-dev and nothing happens:

@Yanpas no, I did not change the rzis executable.
Let's reopen and assign to next milestone to investigate then.

@Yanpas Sorry for not responding on this sooner. I can not reproduce following your steps @Yanpas with the latest out of source on my os x.
I have modified the rzis file and the C# basically crashes on start of since it is not supported with vscode out of source. I would expect you also see something similar.
After the crash I can normally run my node debugger. If I use vscode-insiders I can debug C# even if I delete the whole .rzis file
Is it possible to get a different reproducable case? Best one would be modifying a fork of Mock debugger from here.
Or is it possible that we do a live debuggin session on your machine?
For example just F1 > developer tools > put a brekapoint here when you launch debugging after a failure and try to figure out why it just hangse?

I cannot reproduce with insiders and manually instaleed 1.17.1. I even tried find -executable | xargs rm -f from extension folder. May be closed I think, thank you!

@Yanpas  Thank you for looking into it. Closing.
If someone else can reproduce please provide more steps with regards to my last comment from above.

@isidorn assuming this doesn't need to be verified? It was never removed from the July milestone.


ManipulationHandler is completely broken

Overview
Checking out the ManipulationExample scene I found that the manipulations are unusable with the Mixed Reality Motion Controllers:

Selecting any of the Objects teleports them to somewhere near of the actual gaze position instead of keeping it in place.

Moving them around does not behave like you would expect in the least (just try it and you'll see)

Manipulating them with two controllers involves head rotation too. Just holding still and turning the head rotates the object. This should be handled by the hands only.

Expected Behavior
Manipulation just works
Actual Behavior
Manipulation does not work very good
Steps to reproduce

Open the ManipulationExample scene
Play around with the objects

Unity Editor Version
2018.3.6f1
Mixed Reality Toolkit Release Version
mrtk_development

This should be improved in the latest MRTK_development branch, though some specific issues may still exist. Closing this so that we can re-open bugs with more specific issues. Alexees, if you run into problems with the latest ManipulationHandler, please file a new issue, one issue per behavior problem. It will make it much easier to fix if we break the problem into smaller sub-problems.


Override Flake8's aggregate_options

This PR addresses the concern brought up in https://github.com/john-hen/Flake8-pyproject/issues/19
The issue was addressed by overriding Flake8's aggregate_options() function, similar to how Flake8's parse_config() is being overwritten currently.
This solution was seen as preferable to simply calling parse_known_args() because it allows this plug-in to work with calls to flake8.main.cli.main() (i.e. it doesn't assume that --toml_config is coming from the command line)
Testing
Wrote the following simple script to make sure it worked
import flake8.main.cli

flake8.main.cli.main(["--toml-config=repo/pyproject.toml", "test_file.py"])

Also ran the following command from my home directory to make sure it still worked
flake8 --toml-config=repo/pyproject.toml test_file.py

Confirmed that python3 tools/test.py still passes all tests

The expansion of the tilde is a feature of the Unix shell, which is not involved when you pass the arguments directly. It would work if you ran that command in the terminal. But replicating shell features is really not "our concern".

Yikes, that was a really bad assumption on my part! I'm so used to working with code that is meant to run on Ubuntu that this hadn't crossed my mind... I'm glad there are tests in place to flag this type of stuff :100:
I pushed a change to remove this: https://github.com/john-hen/Flake8-pyproject/pull/20/commits/f0a9e5da845dd130e26a25f897522840b6afa765
And realized I forgot to remove import os (fixed in https://github.com/john-hen/Flake8-pyproject/pull/20/commits/34c658a7635d7595a02630e43b2f423dd0101dd5)