[QUESTION] Trying to use span and get moire pattern

Hello I have a pice of code that creates a circle with points of color in the following way(see code) i have three ways of doing it the first one produces the result I want but is slow the other two are faster but the output is wrong see the following code and outcome (screenshots).
The first and slow method write to the canvas with a DrawCircle and x /y pos this
see nr 1
To speed things up i use a span of SKColor in two different versions to write directly to bitmap but if I use any other color then SKColors.Black I get moire patterns.
the first span method use an SKBitmap of 1024 * 1 bytes and Translate and RotateDegrees this produces moire pattern. See 2
The second span method (fastest) i use the whole 1024*1024 BitMap in other words an array of a 1048576 SKColor and use x and y i also get moire pattern see 3.
Version 2.88.3 same problem on Android and iOS.
Any idea of what i do wrong?
DrawCircle gray display is as i expect
public static void Write1SpokeToCanvas(SKSurface inSurface,ConcurrentQueue<drawingDataNew> queuDrawings, ref float range, SKColor radarBackgroundColor)
        {
   bool retValue;
                drawingDataNew drawdata;
                int midx, midy;
                midx = 1024 / 2 + xOffset;
                midy = 1024 / 2 + yOffset;
                byte[] spoke = new byte[512];
            lock (LockingPaintThread)
            {
                while (queuDrawings.Count > 0)
                {
                    retValue = queuDrawings.TryDequeue(out drawdata);
                    var angle = drawdata.degree;
                    double rad = ToRadian(angle);
                    double radcos = Math.Cos(rad);
                    double radsin = Math.Sin(rad);
                    if (retValue)
                    {
                        range = drawdata.range;
                        spoke = drawdata.data;
                        for (int k = 0; k < 512; k++)
                        {
                            float r = k;//*scale;
                            int valpunkt = spoke[k]; ;
                            var paint = theColorWeak;
                             paint.Color = SKColors.Transparent;
                            if (valpunkt == 0)
                                paint.Color = radarBackgroundColor;
                            else if (valpunkt > ThresholdRed)
                                paint = theColorStrong;
                            else if (valpunkt > ThresholdGreen)
                                paint = theColorIntermediate;
                            else if (valpunkt > ThresholdBlue)
                                paint = theColorWeak;
                            float x = (float)(midx + radcos * r);
                            float y = (float)(midy + radsin * r);
                            inSurface.Canvas.DrawCircle((int)x, (int)y, 1f, paint);
                        }
                    }
                }
            }
        }

Transformtransparent display has a moire pattern
The inBitMap is created as follows

SKBitmap(new SKImageInfo((int)radarRect.Width, 1, SKColorType.Bgra8888, SKAlphaType.Premul));
public static void Write1SpokeToBitMemory(SKCanvas inCanvas,SKBitmap inBitMap, ConcurrentQueue<drawingDataNew> queuDrawings, ref float range, SKColor radarBackgroundColor)
        {
            lock (LockingPaintThread)
            {
              var   lokBmp = new SKBitmap(new SKImageInfo(1024, 1, SKColorType.Bgra8888, SKAlphaType.Premul));

                var span = lokBmp.PeekPixels().GetPixelSpan<SKColor>();
                bool retValue;
                drawingDataNew drawdata;
                byte[] spoke;
                int x, y;
                while (queuDrawings.Count > 0)
                {
                    retValue = queuDrawings.TryDequeue(out drawdata);
                    if (retValue)
                    {
                        range = drawdata.range;
                        spoke = drawdata.data;
                        for (int k = 0; k < 512; k++)
                        {
                            float r = k;//*scale;
                            int valpunkt = spoke[k]; ;
                            var paint = theColorWeak;
                            paint.Color = SKColors.Empty;
                            if (valpunkt == 0)

                     //       paint.Color = SKColors.Transparent;
                            paint.Color = SKColors.Black;

                            else if (valpunkt > ThresholdRed)
                                paint = theColorStrong;
                            else if (valpunkt > ThresholdGreen)
                                paint = theColorIntermediate;
                            else if (valpunkt > ThresholdBlue)
                                paint = theColorWeak;
                            span[k] = paint.Color;
                        }

                        inCanvas.Save();
                        inCanvas.Translate(new SKPoint(512, 512));
                        inCanvas.RotateDegrees(drawdata.degree);
                        inCanvas.DrawBitmap(lokBmp, 0, 0);
                        inCanvas.Restore();
                    }
                }
            }
        }

Direct span without transform display has a moire pattern
The span is created as follows

   var radarsurfspokeBmp = new SKBitmap(new SKImageInfo(1024,1024, SKColorType.Bgra8888, SKAlphaType.Premul));
 Span<SKColor> radarBitmapSpan = radarsurfspokeBmp.PeekPixels().GetPixelSpan<SKColor>();

   public static void Write1SpokeToBitmapSpanMemory(Span<SKColor> span,  ConcurrentQueue<drawingDataNew> queuDrawings, ref float range, SKColor radarBackgroundColor)
        {
      // 1024*1024 = 1048576
                bool retValue;
                drawingDataNew drawdata;
                byte[] spoke;
            int midx = 1024 / 2 + xOffset;
            int midy = 1024 / 2 + yOffset;
            lock (LockingPaintThread)
                {
                    while (queuDrawings.Count > 0)
                    {
                        retValue = queuDrawings.TryDequeue(out drawdata);
                        var angle = drawdata.degree;
                        double rad = ToRadian(angle);
                        double radcos = Math.Cos(rad);
                        double radsin = Math.Sin(rad);
                        if (retValue)
                        {
                            range = drawdata.range;
                            spoke = drawdata.data;
                            for (int k = 0; k < 512; k++)
                            {
                                float r = k;//*scale;
                                int valpunkt = spoke[k];
                                var paint = theColorWeak;
                                paint.Color = SKColors.Transparent;
                                if (valpunkt == 0)
                                  paint.Color = SKColors.Transparent;
                                else if (valpunkt > ThresholdRed)
                                    paint = theColorStrong;
                                else if (valpunkt > ThresholdGreen)
                                    paint = theColorIntermediate;
                                else if (valpunkt > ThresholdBlue)
                                    paint = theColorWeak;
                                int x = (int)(radcos * r);
                                int y = (int)(radsin * r);
                            var s
![Screenshot_directDrawCirclegrey](https://user-images.githubusercontent.com/4975613/211543543-de282c1c-00af-4631-acd7-2903278a22a2.png)
panplac = GetPlaceInBitmapSpan((int)x,(int) y);
                            if (spanplac > 1048576)

                                Debug.WriteLine("X:" + x + " Y:" + y);
                            else
                            span[spanplac] = paint.Color;
                        }
                    }
                }

            }

        }

Image of ok outcome


chore: restore backend & game server log panels

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#54
#53  👈
#52
#51
#50
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @NathanFlurry and the rest of your teammates on  Graphite


AoT: Property 'ngOnInit' does not exist on type 'MdTooltip'

Hey guys,

I can use the AoT compiler without errors, but once I start serving the application with Webpack2, the type checker gives me the following errors:

buttons/buttons.component.ngfactory.ts:881:81 Property 'ngOnInit' does not exist on type 'MdTooltip'.
Angular: 2.0.0
Awesome-typescript-loader: 2.2.4
Webpack: 2.1.0-beta.22
Any ideas?

Had the same issue, as a workaround until it's fixed you can just simply add ngOnInit(): void; to<EMAIL_ADDRESS>

Thanks @ivoviz - worked beautifully

This should have been resolved in alpha.9


Way to "close" terminal session with "close folder"

OS/Web Information

code-server: v3.11.1
VS Code: v1.57.1
Commit: c680aae973d83583e4a73dc0c422f44021f0140e
Date: 2021-08-06T18:33:37Z
Browser: Mozilla/5.0 (X11; CrOS x86_64 13982.69.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.130 - Safari/537.36

Steps to Reproduce

Open folder from the menu
Mess around with files, terminals stuff...
Close folder from the menu

Expected
All state is cleared from the project.  Terminal ptys released, extensions unloaded, etc.
Actual
"Session" is still running:

Notes
It used to be that state was lost on close, so the current behavior is orders of magnitude more usable.  I think I am seeing a strangeness related to PR #2723.  Code server is a bit different from VS Code in that there is a difference between the window being closed, and the folder is closed.  Since it's a server it could be the browser crashed.  Would it be possible to tease those apart?  That being said, if that is too invasive I can live with needing to close the shell manually vs having my terminal lost when Amtrak's wifi flakes out. =)
This issue can be reproduced in VS Code: No

cc @code-asher who is more familiar with this part of code-server

Ahhhh yeah when we close the folder it makes sense to me that we should
close the associated terminal sessions.
When we get the close request we should hit up the terminal provider and
ask it to close its sessions for the workspace/folder that was just
closed.


Prettier console output and template system

As promised I implemented pretty-cli in the start script.
I created two new files that are used to customize the CLI and to create a personal template.
This approach is compatible with every other console library (ex. blessed) and allows to separate the messages from their visualization in order to be more future proof.
I'm working actively on the project so every opinion/suggestion is welcome.
Thanks.

webpack-dev-middleware supports a reporter option since version 1.7.0. This might be interesting to use, as it removes the need for adding callbacks for compiler "done", "invalid" etc. events. See the PR for more info.

Interesting, I don't know about the change.
I should edit my PR  to use those callbacks.
Thank you.
Please let me know if you have any suggestions.

@MichaelCereda, I don't use CRA myself, so I can't really comment on that. I'm maintaining webpack-dev-server and webpack-dev-middleware though, so if you need any hooks, let me know (preferably in a ticket in the necessary repo).

Thanks @SpaceK33z, I'll probably text you around next week. I have a couple of ideas in mind.
Have a nice day

Thanks for the pull request.
Sorry it took so long to review.
I’ve been blocked on some changes to packaging (#678), and those were important to get in because they opened the door to other features I cared about (#744).
I am closing this for roughly the same reasons as https://github.com/facebookincubator/create-react-app/pull/499#issuecomment-250731901. And I’m sorry I didn’t do a good job of communicating it early. Wasted effort is very frustrating so I apologize for that.
In short, I have moved the Webpack message cleanup into a helper in our utilities package. At this point I’d rather avoid an extra opinionated dependency for users after ejecting. There are some things in the API that I would rather avoid as well, such as dynamic “method injection”. This feels like an over-abstraction for such a simple use case as logging output, and I don’t see the need for it at this moment.
Again, I’m sorry for wasting your time.


Account deletion function

There is no function for the users to delete their own account.
I would like a simple function that would allow users to delete their own account like:
Supabase.auth.deleteAccount(
email<EMAIL_ADDRESS>password: 123456
)
Alternative:
Maybe delete the user's row from the 'users' table then delete the account from 'auth.users' table manually? But this would be slow and you would have to manually search for accounts that don't have a row in 'users' table

Deleting users requires the service_role key. This is also true for deleting your own account. The method to delete users in dart already exists, but you probably want to delete a user from an edge function to not expose your service_role key.

So I should make an Edge Function that would allow users to delete their own account?

Yeah you just have to ensure via the jwt and so on  that they can only delete their own account.

I am a beginner and I don't really understand backend stuff. Could you explain how to use that please? I would appreciate if you could write the edge function code


Create new repo for Ambari plugin

As a developer, I'd like to create a separate repo for SCDF-Yarn's Ambari plugin, so they're separated and maintained independently from the core project.

I propose repo names spring-cloud-dataflow-rpm and spring-cloud-dataflow-ambari-rpm. If we some day want to build debian packages, we need separate repo/build because artifactory plugin from jfrog cannot upload to multiple repos during a build. yum and apt repos would really be separate repos in artifactory.

@markpollack: ^^ - thoughts, please?

Do we need spring-cloud-dataflow-rpm? I would assume that it would only be
used for Ambari installs.
-Thomas
On Wed, Feb 24, 2016 at 12:30 PM, Sabby Anandan<EMAIL_ADDRESS>wrote:

@markpollack https://github.com/markpollack: ^^ - thoughts, please?
—
Reply to this email directly or view it on GitHub
https://github.com/spring-cloud/spring-cloud-dataflow-admin-yarn/issues/69#issuecomment-188367205
.

we still need to build that rpm!

if comment was related why we don't build both rpm's in a same project, blame artifactory plugin for that. we need separate repos.

ok, get it now


Embedding in a theme causes weird issues.

First of all, thanks for all the efforts you've put into this work. I'm really grateful as a developer.
Kindly check the error. This is happening when I'm embedding it as part of the theme. Seems like there is a PATH issues.

Can you enable wp_debug, or just simple view-source your page and see error message that perhaps showing up?

WP_Debug is enabled. Kindly see the source in the highlighted path. As you can see, the path is obviously wrong. Something wrong with kirky_url or something.

Have you following this https://github.com/aristath/kirki/wiki/Embedding-in-a-theme to adding below code on your functions.php?
include_once( dirname( __FILE__ ) . '/includes/kirki/kirki.php' );

i have same issue before but it because i have wrong include path, the above code was the right one

Yes, of course. Does it need to be in 'includes' directory?

Mm i don;t think so, since i use "inc" too.  I found a patch on my old theme, maybe you can use it too. I called it after including kirki.php
function kirki_update_url( $config ) {

    $config['url_path'] = get_stylesheet_directory_uri() . '/inc/kirki/';
    return $config;

}
add_filter( 'kirki/config', 'kirki_update_url' );

@codehaiku can you please make sure you're using the latest master branch? There was an issue with the path, but I believe it has been fixed in https://github.com/aristath/kirki/commit/7309b942db051e011bbfd5b77082cd03abad632a about a month ago...

Does it need to be in 'includes' directory?

Nope, it can be anywhere as long as it's inside a theme

@codehaiku any news on this one? Can you please verify that you're using a fresh copy of Kirki with the latest commits in the master branch and not a previous version?

@aristath I've download the masterball zip again and tried embedding it on my theme and it seems to be working great now :). Will try to find new issues.
Thank you so much for your help guys! Really appreciate it.

Thanks for checking!
I'm closing this ticket.

Hey Aristath,
Sorry for re-commenting on this! But the latest version still has issues for me. I'm using Windows 10 + Wampserver + PHP 5.3, and embedding it in a theme. The urls are coming out wrong, and after dumping the results, it's because the slashes aren't the same. In Kirki_init class file you have this line:
$relative_url = str_replace( Kirki_Toolkit::clean_file_path( get_template_directory() ), '', dirname( dirname( __FILE__ ) ) );
And just dumping  Kirki_Toolkit::clean_file_path( get_template_directory() )
Gives me:
string 'C:\wamp\www\wp-6\wp-content\themes\wp-6\inc\kirki'
And dumping dirname( dirname( __FILE__ ) ) gives:
string 'C:/wamp/www/wp-6/wp-content/themes/wp-6'
So the str_replace() isn't working as intended due to the slashes. Do you have any insight into why this is happening?
Thanks!


ci: Integrate CI with pre-commit checks.

What's changed and what's your intention?
integrate CI with pre-commit checks
Please explain IN DETAIL what the changes are in this PR and why they are needed:
Checklist

[x]  I have written the necessary rustdoc comments.
[x]  I have added the necessary unit tests and integration tests.
[x]  This PR does not require documentation updates.

Refer to a related PR or issue link (optional)
no related

cc @socutes


milestone... making llm aware of entire code base

Perhaps by using the git repository information, it would be great for the llm to have awareness or knowledge of the entire code base, to know about custom imports, functions in other files, utility code files, etc.
I know this is far fetched, so not really an issue but more of a dream :)

We can refer to the implementation plan of Aider's repo map.

It would be a big feature, for sure!

it would be game changing. this is the feature no one has but everyone wants

my guess is that this would only works with claude or models that support 1M+ tokens

just wanted to throw this out there
https://github.com/Doriandarko/claude-engineer

Started work on repo-map.nvim

from #456 too track open buffer as an option.

bump! also very interested in this feature.
I do love the idea of defaulting to open buffers. though would be nice to have /drop and /add file features like aider.


Polars Dataframe Agent Needed

Knowing that Pandas and spark cannot be compared to the speed of Polars, please can you create a Polars Dataframe Agent? It is 15x faster than Pandas.

I also agree that a Polars agent would be helpful and probably not too much work since the syntax is so similar to Pandas.


Fix Base64 decoding issues

Encodings.collapse_adjacent_encodings breaks Base64 decoding.  Handle decoding individually instead of trying to concatenate multiple Base64 encodings.  The collapsing may work fine with Quoted-Printable, but will fail miserably based on the Base64 standard.

Removing the branch from master and instead branched off from 2.6 stable


 For now it is true by default, but this may change, or we can add package preference to set it manually.
Closes #260

glad to see this feature implemented.

I urgently need this feature in one of my recent research. Hope this feature could be in the master branch soon.

Yeah, there are some problems with CI in RasterDataSources.jl that keep making things fail. Im trying to fix, hopefully tonight.

Awesome. Thank for your help.

@kongdd see how this goes in CI. I'm pretty busy currently so it might not be tonight unfortunately.
You can also just check out this branch manually if you need it. Like ] add Rasters#lazy

Got it. Thank u. I will have a try.

Codecov Report

Merging #261 (84472e4) into master (0094907) will decrease coverage by 0.07%.
The diff coverage is 72.83%.

@@            Coverage Diff             @@
##           master     #261      +/-   ##
==========================================
- Coverage   85.34%   85.27%   -0.08%
==========================================
  Files          36       37       +1
  Lines        2593     2628      +35
==========================================
+ Hits         2213     2241      +28
- Misses        380      387       +7

Impacted Files
Coverage Δ

src/sources/smap.jl
0.00% <0.00%> (ø)

src/openstack.jl
57.14% <57.14%> (ø)

src/sources/ncdatasets.jl
86.66% <83.33%> (-0.20%)
:arrow_down:

src/array.jl
92.70% <100.00%> (+0.31%)
:arrow_up:

src/filestack.jl
93.75% <100.00%> (+0.89%)
:arrow_up:

src/read.jl
90.90% <100.00%> (-0.40%)
:arrow_down:

src/sources/gdal.jl
91.40% <100.00%> (+0.03%)
:arrow_up:

src/sources/grd.jl
96.55% <100.00%> (+1.81%)
:arrow_up:

src/stack.jl
88.54% <100.00%> (+1.04%)
:arrow_up:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Checkbox UI issue

Hi, I found that checkbox doesn't look good

The checkbox has been removed in 0.7.0. Please update and re-check.


moby: allow using overlay2 (Ubuntu-only)

Signed-off-by: Akihiro Suda<EMAIL_ADDRESS>

@AkihiroSuda  I will have to switch back to vfs for other OS, right? Is there any plan to auto-detect it

It should be autodetected but haven't tested


Syslog Alerter

What happened to the syslog alerter? I see at one point it may have been merged but no longer appears to be an option or note in documentation?
Has anyone been able to successfully using command and logger to send to a remote syslog server?

Command alerter with logger works fine here, but I needed to spoof the hostname in the syslog header. So I have been using pysyslogclient for a long time now, works like a charm.

Command alerter with logger works fine here, but I needed to spoof the hostname in the syslog header. So I have been using pysyslogclient for a long time now, works like a charm.

Can you give me some steps to use this? I am trying to use ElastAlert2's "command" alert module to send log to a remote syslog server.
here are the config rules I tried.
command: ["/usr/bin/logger", "-n", "my_remote_server_ip", "-t", "elastalert"]
pipe_match_json: true


Potential Issues in CT Definition [CT]

Few items to be checked considered. Numbers refer to Column A in the attached spreadsheet.

54: Is description right here? I think it is ok but just have a check
57: Not sure the Has Value List column entry is correct
97: Description is the only attribute and is optional (first with all the other description fields). But we have no required definition of the rule. Add another field? Change the name to "definition" or "rule"? Similar to 135 below
135: Description is the only attribute and is optional (first with all the other description fields). But we have no required definition of the population. Add another field? Change the name to "definition" or "population"? Similar to 97 above

USDM_CT_Required.xlsx

54: We recommend leaving 'description' attribute as is but more attributes will need to be added in future (name, label, or fields from M11). Propose slight update to definition.
57: We recommend associating this valid value set description with the 'name' attribute and not the 'description' attribute
97: We think that there is potential for more attributes to be added to this class (names, ids, categories, etc.) however we need example data to understand what is needed IRL.
135: We think that there is potential for more attributes to be added to this class (names, ids, categories, etc.) however we need example data to understand what is needed IRL.

@EMuhlbradt @czwickl Let me have a ponder, second look given your comments. Not our main worry at the moment

@EMuhlbradt @czwickl @BSnoeijerCD
54: Agreed, we will be adding more attributes here a la IDMP, driven by M11. Revisit then.
57: We need to discuss this one :)
97: Have a look at the SDTM TE domain and the TESTRL and TEENRL variables. Also TV domain and TVSTRL and TVENRL. Currently we are holding the rule that equate to these variables within description. I would content that we might have 'better' attributes

name: HEALTHY_EXIT
description: The rule for leaving the healthy element
label: Healthy Exit Rule
rule: Subject must be male and suffering from man flu (and thus dying and in need of constant care and attention).
You could name rule "definition". My concern is that our new generic definition of the "description" attribute is not suitable for the actual specification of the rule, it is a description of the rule, not the actual rule.
135: Similar to 97 but this time the specification of the actual population rather than a narrative description.

Just to add, I see "description" and a useful, free text description (as we say, narrative) of an item, not its definition. Description need not be filled in, the definition must be. Just want the use to be totally consistent across all classes for name, label, description.

For item 57 above: please expand on your thoughts. Do you agree with our proposal?
For item 97 above: based on the example data provided we would like to propose adding name and label attributes, keep description attribute, AND add a text attribute to hold the actual rule.  We think the use of 'text' here is similar conceptually to the text attribute for SyntaxTemplate and NarrativeContent classes.
For item 135: In this instance we feel that a 'description' field would be enough to describe/characterize the analysis population. At best we think a name attribute may need to be added. If you are thinking that additional information about the analysis population is needed (e.g., rationale/justification for analyzing that population) this would not be appropriate for a description attribute. It may require its own attribute. Otherwise we can't see how the 'description' field could hold anything more/different than the actual text describing the analysis population.

@EMuhlbradt @daveih @czwickl
Can we have a final agreement on the following?
No 54: as you agreed upon above leave as is for now. It is not in the scope of this ticket.
No 57: The description should not have a valid value list as Dave indicates above. The codes attribute does this already and refers to external dictionaries. We don't want to make our own codelists for indications within CDISC (as far as I understood, that huge effort is beyond our scope). The description is just a narrative that might be used in text as a human readable representable form of the official codes that are linked to the indication.
No 97: Add name, label and text attributes as Erin indicates above.
No 135:  Analysis populations can be ITT, PP, SAFETY etc. Example: Name="ITT population", Description="intent to treat population", Label="ITT", Text="All subjects who entered the study and were eligible to start study drug intake". So, as Dave indicates above: adding name, label and text attributes to the AnalysisPopulation class is of value. Therefore, I believe we should add it.

For item number 57 above, the team agrees to remove the value set pointer from the Indication.description attribute and also agreed that the value set pointer should not be added to the Indication.name attribute. However a separate question came up as to whether the Indication class needs a name or label attribute AT ALL given that a 'decode' may be inherited from the code class.
So the question is, should we keep the name and label attributes on the Indication class?

@EMuhlbradt @BSnoeijerCD @czwickl
Item 57, I think we are going a little off the rails here, and I say this in the nicest possible way :)
The problem is the CT spreadsheet:

Note the definition for "codes" and "description". Both are speciffied as coded. They are not. "codes" is zero, one or more codes references to, probably, external CT. "description" is our new description, plain text, optional
This is Indication from end of Phase 2, justb a set of coded values and a description.

This is what we have now, description field renamed and name and label added. But these are not coded fields, the "codes" attribute has all the coded CT reference info,
So
name: 'IND1'
description: 'Diabetes type 1 and 2'
label: 'Diabletes'
codes:

SNOMED code Diabletes type 1,
SNOMED code for 'Diabetes type 2',
XYZ code for Diabetes type 1
.... as many as you want

Thank you @daveih. That is in alignment with what we discussed yesterday.
@EMuhlbradt @czwickl  Final decision on changes:

remove has valid value list = Y from indication.description
add name, label and text attributes to transitionRule class
add name, label and text attributes to analysisPopulation class


21 Hyundai Elantra Hybrid can error: check connections

Booting up with both release2-staging and master-ci branch to access the 21 Elantra support I get Can error: check connections. Not able to get past that to run openpilot.
Device/Version information:

Device: comma two
Dongle ID: d73f21a646ca211b
Route: d73f21a646ca211b|2021-06-08--15-34-04
Version: 0.8.5 release2-staging, 0.8.5 master-ci
Car make/model: 2021 Hyundai Elantra Hybrid Limited

The Elantra Hybrid isn't supported so that's likely the cause

Chris is correct that the Elantra Hybrid isn't supported. We'd be happy to help get your car supported and working if you open a PR, but this isn't an issue as new car support comes from the community. Check out our community discord if you need help.


Add support for JSON export format

Nested and repeated fields in BigQuery are not supported in CSV https://cloud.google.com/bigquery/docs/loading-data#loading_denormalized_nested_and_repeated_data

Now supported


Cabot over SSL (HTTPS)

How to configure that? Is it documented in some non-obvious place?

There's a commented out bit in the setup_dependencies.sh script which will do:
https://github.com/arachnys/cabot/blob/f5f201ca925556cba9204308825af3c1b85b6f9a/bin/setup_dependencies.sh#L159
HTH - please close if so

Notes to self/others reading this:
setup_dependencies.sh script is run only once, when installing Cabot, so nginx configuration is not being overwritten by Cabot reconfiguration (redeploy). Therefore its easiest to add HTTPS support by just editing nginx config on the running Cabot machine.
Anyway its resolved for me, thank you @dbuxton . :)


Different concurrency token, same model across providers

While working on optimistic concurrency support in Npgsql, I found myself wondering about EFCore's same-model-across-providers story. Defining a concurrency token for SqlServer typically requires something like:
modelBuilder.Entity<MyEntity>(b => b.Property(e => e.Version).IsRowVersion());

PostgreSQL doesn't support rowversions (or auto-updating columns in general), but has an automatic system column called xmin which changes every time a row is updated. So optimistic concurrency can be configured as follows:
modelBuilder.Entity<MyEntity>(b =>
{
    b.Property<uint>("xmin")
        .HasColumnType("xid")
        .ValueGeneratedOnAddOrUpdate()
        .IsConcurrencyToken();
});

One important point is that the xmin property isn't present at all in SqlServer, so the above model code would cause things to break there. Similarly, SqlServer's Version column shouldn't get created when using Npgsql (although it's less problematic if it does, as long as it's not used). EFCore already has provider-specific model operation such as ForSqlServerToTable, but these seem to be valid only for provider-specific annotations, where things like IsConcurrencyToken are present on the property itself.
I guess this is a general question that goes beyond concurrency tokens, for all cases where differences need to exist within the same model across providers.

(Currently working on EF Core support in our designer, so I ran into this particular issue as well) ForSqlServerToTable feels like a strange thing, it's so specific, it makes it harder to e.g. generate mapping files. Looking at it, it feels it's actually coming from the fact there's just one modelbuilder metadata store across all DbContext instances, which is of course odd: one should have 1 DbContext class per database type and thus also 1 modelbuilder metadata store per database type.
What if for a database type A fields are mapped differently than for database type B? It's now impossible to define this. Classic mistake, with IMHO deep consequences, especially when the mapping features grow further and you e.g. want to specify type specific features per field per database type.

We support having simple differences within the same model (column names, underlying data types, etc.) but for anything that structurally changes the model (i.e. different properties included, different keys, etc.) you need to have two different models. OnModelCreating supports this, as it will get re-run if you use the same content with a different provider (i.e. the provider is part of the cache key for the model). This means you  could write something like...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    if(Database.GetDbConnection() is SqlConnection)
    {
        modelBuilder.Entity<MyEntity>()
            .Property(e => e.Version)
            .IsRowVersion();
    }
    else
    {
        modelBuilder.Entity<MyEntity>()
            .Ignore(b => b.Version);

        modelBuilder.Entity<MyEntity>()
            .Property<uint>("xmin")
            .HasColumnType("xid")
            .ValueGeneratedOnAddOrUpdate()
            .IsConcurrencyToken();
    }
}

To add to what @rowanmiller said, the Npgsql provider could also interpret having property.IsConcurrencyToken and property.ValueGenerated == ValueGenerated.OnAddOrUpdate set on a uint property to mean that the mapping should be to an "xid" property. This would then allow this:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    if(Database.GetDbConnection() is SqlConnection)
    {
        modelBuilder.Entity<MyEntity>()
            .Property(e => e.Version)
            .IsRowVersion();
    }
    else
    {
        modelBuilder.Entity<MyEntity>()
            .Ignore(b => b.Version);

        modelBuilder.Entity<MyEntity>()
            .Property<uint>("xmin")
            .IsRowVersion();
    }
}

This is equivalent to what the SQL Server type mapper does when it sees these facets set on a byte[] property.

Thanks for the answers! I definitely wasn't aware EFCore supported different models based on providers, that's a pretty good answer. I do wonder how this would interact with migrations though...! It may be a good idea to add some documentation on this.
@ajcvickers that would have been great, except that the generate-on-update behavior is a very specific feature of the xmin system column in PostgreSQL. In other words, you can't create some arbitrary column with type xid and have it generate on update (like you can with byte[] on SQL Server) - you can only do this with the magical, built-in xmin column, which exists exactly once in each and every table.
It's not the end of the world - I plan to add an extension method that would allow users to specify things at the entity level:
modelBuilder.Entity<Chassis>().UseXminAsConcurrencyToken();

@rowanmiller

We support having simple differences within the same model (column names, underlying data types, etc.) but for anything that structurally changes the model (i.e. different properties included, different keys, etc.) you need to have two different models. OnModelCreating supports this, as it will get re-run if you use the same content with a different provider (i.e. the provider is part of the cache key for the model)

Ok, so what if I have 1 model csproj and per database a DbContext class and a class which builds the mappings using the ModelBuilder. Is it then also separated at runtime? (so say I have a model mapped to Northwind in SQL Server and PostgreSQL: I then get 3 csproj projects: 1 with the entity classes, 1 with the SQL Server specific code, namely a DbContext class and a class calling methodbuilder methods for SQL Server, and a csproj with the PostgreSQL specific code, namely a DbContext class and a class calling methodbuilder methods for PostgreSQL.
As that's a different scenario than what you describe, namely I don't have 1 DbContext class but one for each DB supported in the app. It's important, because if the scenario I describe isn't supported but the one you describe (so 1 DbContext which controls the mappings for all databases) I have to write different template code for the code generator than if the situation I describe is supported as well. Thanks.

@ajcvickers I just understood your comment better - your suggestion is to enable IsRowVersion() to have the same effect in Npgsql as in SQL Server. This has some appeal, but you would still only be able to use it on xmin for it to have any effect (and xmin cannot exist anywhere but on PostgreSQL). So you end up having per-database settings anyway...

@roji Yes, it would still be per-datatabae model, primarily because SQL Server requires a byte array while Npgsql requires a uint. I think what you suggest is fine.

Note, it seems that we currently don't automatically build one model per provider-see issue #6804.

Never mind--I forgot how it works. :-) You should be getting one model per provider like previously asserted. :-)

@FransBouma if your tool generates separate derived DbContext types for each provider that should be fine as well.

@divega It does that indeed. This is to be able to swap at runtime between databases. Thanks!


Radio settings

Adds support for radiogroup-settings. See #202 for details.
Resolves #202
But needs to wait for https://github.com/modxcms/revolution/pull/16404 to be accepted.

Sneak-Preview:

This is cool. As far as that core fix goes, do we have to implement some kind of version check to prevent radiogroups from being used on <3.0.4?

Probably a good idea! And also we should do the same for the 2.x branch, when https://github.com/modxcms/revolution/pull/16467 is accepted.
That version-check would need to go into this if-clause:
https://github.com/modmore/ClientConfig/blob/bd22b11d523d59b682259a05c5cc3798f986c5d2/assets/components/clientconfig/js/mgr/sections/home.js#L133
Correct?
Do you know, if we have the MODX-version information there available?


LayoutReader, missing words in the output sequence

Model I am using LayoutReader:
When I use layoutReader, almost always, some part of the input sequence is missing from the output. I visualized an example here:

The red words were included in the input sequence but were not part of the output. The program still computes a BLEU score and finishes without errors. Is this behaviour normal? why does this happen?
Thanks.

Thanks for your question and visualization!
There might be two reasons for the missing words:

The maximum sequence length (e.g., 512) is smaller than the document length.
As mentioned in https://github.com/microsoft/unilm/issues/583, LayoutReader might generate repeated words. When there are some repeating words, there should be missing words.

In addition to re-training the model, some post-processing methods might be helpful for this issue. If the document is very long, you could try splitting it into several parts and process each part with LayoutReader at a time. Otherwise, you could remove duplicated predictions and insert the missed indices according to OCR predictions in post-processing.


activate/deactivate button disappeared on chess.com and lichess issue

the button to activate/deactivate the bot just disappeared from chess.com new interface design (not the old one) and lichess discovered a way to detect the script, after some moves everything freeze up and the account and the IP that u are using is banned.

Fixed in version 0.5.11 (https://github.com/recoders/chessbot/releases/tag/v0.5.11)


⚠ Processors has degraded performance

In 3811db7, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 47 ms

Resolved: Processors performance has improved in 3d0cd34.


Graphical glitches in no_go_area with transpararent colour

Two or three lines form around the no_go_area and vary with the virtual_wall_width parameter :
this is normal?

  - type: 'custom:valetudo-map-card'
    entity: sensor.xiaomi_map
    map_scale: 1.7
    icon_scale: 1
    rotate: 0
    path_color: black
    virtual_wall_color: red
    virtual_wall_width: 5
    no_go_area_color: rgba(255, 0, 0, 0.2)
    crop:
      top: 100
      bottom: 100
      left: 100
      right: 70
    dock_color: Orange
    vacuum_color: purple
    min_height: 0

Originally posted by @rmickael62 in https://github.com/TheLastProject/lovelace-valetudo-map-card/issues/18#issuecomment-546480870

Fixed in 7bcb2a9281489671e7b9c82dcccc25de01cc9d6e.


Modify test describes to match file paths

#12

@ovidiubute Thank you for reviewing my PR.
Updated the test describes.


fixes #67

Fixed issue with cards not properly displaying the information that the user provided.
On submission , the new card properly shows the card Title and card Content that was inputted by user.
The changes made can be see here at my fork:
https://inglorious-ratbastard.github.io/noter-js/

pl resolve the merge conflicts

I believe all is in order now. Can it merge?


handle case where getPharer() returns null.

@clue to sum up: you want me to fix getPharer to throw a Exception instead of returning null right?

@staabm yeah, unless we can come up with any better solution? :)


error connecting ssl

Hello trying out your app. But cannot connect.
when i enter my dnsname for example
somedomain.ddns.net:8085
then check "use HTTPS" (and remove the :443 added to the above)
then submit, i briefly get :
javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException: tr.. (i do not see the rest)
Then i am back to the "Lets get things set up" menu.
When i access using a browser, i can access connect using ssl all right.
I expect the error is about trust, as i created my own certificate authority, intermediate ca and server certs. But again from a browser all is good the subject name is fine, so in the browser i just need to accepts "unknown issuer" and then connect. I GUESS (;-) all needed is a dialogue "are you sure you want to trust this certificate" Y/N.

Hi there. Indeed the issue is the fact that you use a self signed certificate, something I have not implemented support for unfortunately.
Is there any particular reason why you don't use a valid certificate?

Alternatively, you can always import your CA to the Android trust store which would also solve the problem. That's probably the best option if you can't use a valid trusted certificate.

Hello, I have the same issue. My CA is in Android user trusted credentials and Habitat throws a handshake exception. I think this is because Nougat+ application do not trust user CAs by default. See here: https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html. If you could add a network-security-config in the next version to allow user CAs by default, it would be greatly appreciated.


Hitman 2 Silent Assassin

Hello
I followed your guide https://github.com/elishacloud/dxwrapper/wiki/Hitman-2-Silent-Assassin
Problem is that I don´t see any NPC in game...the 47 included.

Try to limit in-game framerate.

This could be because you have an Intel integrated graphics card.  If that is the case you can try forcing the game to use the Nvidia or AMD video card from the graphics control panel.
See example:

I have only integrated Intel graphics card

It works fine with my integrated card.  However, many integrated cards don't support all DirectX features.  There is not much debug logs on d3d8to9 and I would have to see which features don't work to see if this could be resolved.


⚠ Bofrost.lu has degraded performance

In cebb2e7, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1918 ms

Resolved: Bofrost.lu performance has improved in 729e785 after 6 minutes.


[DOCS] UPDATE README

Issue Description
There are a lot of grammatical errors in the README.
Additional Context
No response
Screenshots or Examples (if applicable)
No response
Proposed Solution (optional)
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

Hi @abhisar-yadav. Can you do a screenshot of these errors?

Any updates @abhisar-yadav?

Kindly review my PR

Kindly review my PR @CBID2

Done


zUnit Runner Options should be managed as build properties

The zUnit runner options should be managed as build properties and allow file level overwrites.
https://github.com/IBM/dbb-zappbuild/blob/02d949f6b098b5e03f74c51c11f9a543fac05568/languages/ZunitConfig.groovy#L62

Release via zAppBuild 2.3.0 #176


async client session

Hi, thanks, that's very interesting.
I'd like to know if you've ever had Unclosed client session errors. It's the second time I use mcts functions with open-webui, and each time I have these errors after I receive the results. Outside of mcts function, I have no issues, with websearch and ollama working very well. Is there something I could be missing?
I know that could be a question for open-webui, but I see it as very specific to mcts functions, and so your experience could be super valuable to me, compared to the general answers I could get on the forum. I'll head there in case you can't help me.
Basically, I now the async session must be closed or reused, but not opened again and again, which of course happens in tree search.
(snip)
open-webui[1971609]: teadily releasing research papers on its AI work for years. With Ferret-UI, the company seems to be looking at how AI can help with smartphone navigation:'}, {'title': 'Towards artificial general intelligence via a multimodal foundation ...', 'url': 'https://www.nature.com/articles/s41467-022-30761-2', 'content': 'Artificial intelligence approaches inspired by human cognitive function have usually single learned ability. The authors propose a multimodal foundation model that demonstrates the cross-domain learning and adaptation for broad range of downstream cognitive tasks.'}] ,
open-webui[1971609]: INFO  [open_webui.apps.ollama.main] url: http://ollama.internal:9031
open-webui[1971609]: ERROR [asyncio] Unclosed client session
open-webui[1971609]: client_session: <aiohttp.client.ClientSession object at 0x7fc498197910>
open-webui[1971609]: ERROR [asyncio] Unclosed connector
open-webui[1971609]: connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x7fc4904da660>, 422102.234)]']
open-webui[1971609]: connector: <aiohttp.connector.TCPConnector object at 0x7fc491e76050>
open-webui[1971609]: INFO  [open_webui.apps.ollama.main] url: http://ollama.internal:9031
open-webui[1971609]: INFO  [open_webui.apps.ollama.main] url: http://ollama.internal:9031
nas open-webui[1971609]: INFO  [open_webui.apps.ollama.main] url: http://ollama.internal:9031
open-webui[1971609]: ERROR [asyncio] Unclosed client session
open-webui[1971609]: client_session: <aiohttp.client.ClientSession object at 0x7fc4979a8610>
open-webui[1971609]: INFO:     <IP_ADDRESS>:43114 - "POST /api/v1/chats/2c312bef-ce93-43f0-8c6c-fa885427f3f5 HTTP/1.0" 200 OK
open-webui[1971609]: INFO:     <IP_ADDRESS>:43128 - "GET /api/v1/chats/?page=1 HTTP/1.0" 200 OK
open-webui[1971609]: INFO:     <IP_ADDRESS>:43132 - "POST /api/chat/completed HTTP/1.1" 200 OK

Would you have any clue?
Thanks in advance!

Hi ! yes im seeng that too, this morining when i saw your issue i got right on the problem,but i think is the ollama calls, wich are made by open webui logic, i tryed several fixes with no avail, maby the better option es refactor and ask for a olla url n valves an use the native calls, it would also fix the issue with context over the openAi api, also that set your context in another modelfile to use this, i forgot to mention on the readme. i will try an update it to fix it so i can really be sacallable

Thank you!


Support longrunning operations

Some methods in Google APIs are in a pattern of longrunning operations (LRO). In this pattern, the proto defines to return a google.longrunning.Operation object, and Operations service takes care of the status of operations (see https://github.com/googleapis/googleapis/blob/master/google/longrunning/operations.proto).
Within the current code base, the code generator for NodeJS will generate a method which invokes the callback with an instance of Operation, which isn't quite useful. The goal is to allow the following style:
api.longRunningMethod(request, function(err, response, metadata) {
  // err is set when something goes wrong.
  // response is the final result, not an Operation.
  // metadata is the field in Operation object.
});

Or in the Promise style:
api.longRunningMethod(request).then(function(response) {
  // response is the final result.
});

To achieve this, we'll need the following changes:

[ ] have the GAPIC generator result for Operations service to GAX, so that each of the operations are nicely retryable.
[ ] introduce LongRunningController (or whatever its name is), which controls the status of an Operation by using gRPC method.
[ ] fix the code generator to use the new LongRunningController so that the users don't have to care about the intermediate status of the controller.

Note that we need to be careful about the file dependency -- Node.JS prohibits file-level circular dependencies.

It seems that what I'm thinking was quite different from what google-cloud-node is doing, and we need to change the design a bit.  I'd like to invite @jmdobry @stephenplusplus @callmehiphop @landrito for the discussion.
Current GCN design
Returns an operation object asynchronously, which implements some features.
speech.asyncRecognize(request, function(err, operation, resp) {
  if (err) {
    console.error(err);
    return;
  }
  // resp is the API response, i.e. longrunning.Operation object.
  operation.on('complete', function(result) {
    // result is asyncRecognizeResult
    // doThingsWith(result)
  });

  // metadata can be fetched through a method?
  operation.getMetadata(function(err, metadata) { ... });
});

What I was thinking
Returns a promise with the final results, metadata, and raw response. By default underlying layer does the polling. If specified, it can return an intermediate data.
speech.asyncRecognize(request, function(err, result, metadata, rawResponse) {
  if (err) {
    console.error(err);
    return;
  }
  // result is asyncRecognizeResult
  // metadata
  // rawResponse is last item of longrunning.Operation
});

speech.asyncRecognize(request, {longrunning: false}, function(err, result, metadata, rawResponse) {
  if (err) {
    console.error(err);
    return;
  }
  // result is null if rawResponse does not have the final result.
  // metadata holds the metadata in the rawResponse
});

Option 2
Considering the design of GCN, but I'm feeling like returning operation through callback does not look ideal. Option 2 is more like doing event emitter:
var op = speech.asyncRecognize(request)
  .on('error', function(err) { console.error(err); })
  .on('complete', function(result) { /* doThingsWith(results) */ })
  .on('metadata', function(metadata) { /* invoked on every polling -- doesn't look intuitive? */ });
// op has methods like delete, cancel, etc.

This is how google-cloud-node handles Long Running Operations (a solution we settled on after much discussion). We believe this is the simplest solution that gives the user the greatest control over their handling of Long Running Operations:
// callback, user wants to control the operation
speech.asyncRecognize(config, function (err, operation, apiResponse) {
  // do something with the operation
  // e.g. cancel it, poll it, push it onto some other queue, etc.
});

// promise, user wants to control the operation
speech.asyncRecognize(config)
  .then(([operation, apiResponse]) => {
    // do something with the operation
    // e.g. cancel it, poll it, push it onto some other queue, etc.
  });

// callback, user just wants the final result
speech.asyncRecognize(config, function (err, operation, apiResponse) {
  operation
    // Adding a listener for the "complete" event starts polling for the
    // completion of the LRO
    .on('complete', function (result) {
      // "result" is the final result of the operation
    });
});

// promise, user just wants the final result
speech.asyncRecognize(config)
  .then(([operation, apiResponse]) => {
    // Operation#promise starts polling for the completion of the LRO
    return operation.promise();
  })
  .then(([result]) => {
    // "result" is the final result of the operation
  });

The Operation class provides a number of methods for interacting with the LRO.
We have two implementations of Operation so far:

HTTP-based: packages/common/src/operation.js
gRPC-based (handwritten): packages/common/src/grpc-operation.js

A third implementation may be on its way:

gRPC-based (uses the Gax lro.js file): packages/functions/src/operation.js

@jmdobry just a heads up that Operation has been refactored and is now a base class that GrpcOperation extends. You should be able to invoke or util.inherits either from the new Functions class.

We chatted internally, and probably it's better to follow what GCN is doing. I liked the "option 2" above, but it turned out not so great.
I still have a few questions about some details.
== handling of metadata
Operation.metadata is google.protobuf.Any and I don't see any parsing its result on grpc-operation.js or speech/src/index.js file. Should we supply the decoding on somewhere?
== polling metadata and obtain the result
I've got noticed that metadata for LRO holds some intermediate data. In the case of speech APi, it holds 'progress' or something. This means that, some users want to poll the metadata and updating their UI (like progressbar) based on the metadata -- and then receiving the final result when everything is done.
Let me clarify how we can write the code for patterns like this.
An idea is to getting the final result on complete event and doing itself:
speech.asyncRecognize(...).then(function([operation]) {
  operation.on('complete', function(result) {
    // the final result.
  });
  function metadataCallback(err, metadata) {
    // update metadata.
    if (!operation.done) {  // does that exist?
      operation.getMetadata(metadataCallback);
    }
  }
  operation.getMetadata(metadataCallback);
});

However, this involves automatic polling and manual polling coexists.
Another idea is passing the (parsed) results and metadata as additional parameters for get()
speech.asyncRecognize(...).then(function([operation]) {
  function callback(err, response, metadata, result) {
    // update UI with metadata
    if (result) {
      // do things with the final result
    } else {
      operation.get(callback);
    }
  }
  operation.get(callback);
});

Or anything else?

Another idea is to modifying the response itself, because anyways Any iself is not quite useful in any cases. This is something like
speech.asyncRecognize(...).then(function([operation]) {
  function (callback(err, response) {
    // response.metadata is not Any, but the parsed data.
    if (response.done) {
      // response.result.response is not Any, but the parsed data.
    } else {
      operation.get(callback);
    }
  }
  operation.get(callback);
});

Exponential backoff for polling
We actually introduced exponential backoff for the automatic polling, instead of static polling in GCN is doing. We are thinking to allow customization for that, that would come as longrunning optional parameter like:
var backoff = gax.createBackoffSettings(...);
speech.asyncRecognize(request, {longrunning: backoff}).then(function([operation]) {
  // "backoff" is the polling strategy, in case the user wants to customize the polling strategy.
  // if not specified, operation will use the defualt polling.
  return operation.promise();
}).then(function([result]) { ... });

Does this look okay?

Operation#getMetadata is makes an api request, correct? If instead of making an api request it returned the last polled metadata it would reduce total number of api requests.
ie:
speech.asyncRecognize(...).then(function([operation]) {
  operation.on('complete', function(result) {
    // the final result.
  });
  function metadataCallback() {
    doSomethingWith(operation.metadata) // uses last polled operation metadata
    if (!operation.done) {  // last polled operation status
      setTimeout(metadataCallback, 500);
    }
  }
  metadataCallback(operation)
});

minor correction:

We actually introduced exponential backoff for the automatic polling

I meant we introduce that on other languages already (i.e. Java, Python, Ruby, etc)

Java doesn't have it yet :-P https://github.com/googleapis/gax-java/issues/146

Regarding the polled metadata, I'm feeling like that would be done by the event emitters.
Like, by adding 'response' event which is invoked on every polling.
operation.on('response', function(apiResponse) {
  // called everytime a new response is fetched through polling.
  // do something with operation.metadata?  or apiResponse.metadata?
}).on('complete', function(result) {
  // final result.
});

@garrettjonesgoogle oh, okay.

How about a progress event during an automatically-triggered poll, before the operation has finished (for GCN, we'd put that here). We would probably want some logic to not emit a progress event if the object hasn't changed since the last time.
speech.asyncRecognize(..., function(err, operation) {
  // auto-polling doesn't begin until after the next lines execute
  operation
    .on('error', function(err) {})
    .on('progress', function(metadata) {})
    .on('complete', function(result) {})
})

Operation#getMetadata is makes an api request, correct? If instead of making an api request it returned the last polled metadata it would reduce total number of api requests.

In GCN, getMetadata() is used throughout the API, which defines what the current state of an object is. Each time the user calls getMetadata(), we cache the response on the object (in this case, operation.metadata). That way, if the user knows nothing has changed upstream, they can trust the cached object. I don't think we should deviate from getMetadata() sounding/acting like a remote call.
I might be overlooking something, but I wonder if allowing customizable retry strategies for this type of request is a micro-optimization the user would ignore. Maybe just an option that specifies the delay between poll events would answer most use cases.

+1 on the 'progress' event.
Comments about getMetadata make sense. One thing about getMetadata though, I find the method name getMetadata to be a bit confusing since in grpc-operation it is returning a google.longrunning.Operation message which contains in itself a metadata field.

it's done.


Add sudo to openssl command to get around permissions issue

The following errors are happening during openssl CA certificate creation.
null_resource.anthos_deploy_cluster[0] (remote-exec): null_resource.anthos_deploy_cluster (remote-exec): Can't load /home/ubuntu/.rnd into RNG
null_resource.anthos_deploy_cluster[0] (remote-exec): null_resource.anthos_deploy_cluster (remote-exec):<PHONE_NUMBER>67296:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/ubuntu/.rnd

There are some openssl issues and it looks like this is a permissions issues according to: https://github.com/openssl/openssl/issues/7754
I think updating the following line From:
https://github.com/packet-labs/google-anthos/blob/40af0e953984c6a735b3e0bcf9c39e36f7af6176/anthos/cluster/finish_cluster.sh#L22
To:
sudo openssl \

Will solve the issue.

I'm unsure this is causing any issues. The gateway object and the ingressgateway-wildcard-cacerts is getting created correctly.


zarf package create . -o oci://

Description
Create zarf package create . -o oci://... --oci-concurrency=10.
Related Issue
Relates to https://github.com/defenseunicorns/zarf/issues/1763
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Other (security config, docs update, etc)

Checklist before merging

[ ] Test, docs, adr added or updated as needed
[ ] Contributor Guide Steps followed

merging into 1763 as this PR branch became too much of a behavior change to merit double reviewing


Fix for ground items changes

Makes plugin work again.
Somewhat of a band-aid fix, but does properly mimic prior settings for both "all" and "takeable" for new ground items settings.

Fixes #21

can you do this by copy-pasting relevant changes from https://github.com/runelite/runelite/commit/e22d9374ea6b3d591cd2f57a89177a687c7f7bd3?

@geheur changed it! Didn't realize just how much was straight from ground items haha

pls push i need my got dang rainbow mouse trails!!!!!
much love and many thanks


try using quarto listings

This PR uses the refactored (WIP) generation_documentation_qmd component (viash-io/viash_tools#6). It uses quarto listings instead of generating the index page ourselves.

Included in recent commits on the main branch


End user member engagement email

End users were removed from the initial phase of emails as they receive different benefits and programs with membership. The goal is to create an end user focused quarterly email as well slated for Q2. @KimMcMahon and @oicheryl and I have a call in early March to hash out what programs we want to feature, develop the content, and will work with @dheerajkottali to build out the DE and email in SFMC once the programs are finalized.

[ ] Waiting on field creation to track Case Studies and Company Profile Submissions - Jira ticket here: https://jira.linuxfoundation.org/browse/PG-1053

[ ] Draft of End User version is here in progress: https://docs.google.com/document/d/1XDseW6PR3YN2AeYOVfUpUFf4wQ8sa2BUtxKNQPdLcts/edit#

@dheerajkottali SEe the End User engagement matrix tab for all the fields we'll need to pull from to populate the DE: https://docs.google.com/spreadsheets/d/1U881l6aWpKAqmm5Q3ErRHhH2RLrT4iTbM50hbhIhYjc/edit#gid=872238905

email and journey were delivered successfully for Q2.


raidboss: improve Sidewise Spark callouts

The current Sidewise Spark callouts are difficult to use. We get
multiple callouts which each have multiple steps. This includes
collecting all the actors and combining them into one giant "N => W => S
=> E" style callout. This is extremely difficult to follow, especially
since it is easy to get lost in which cleave is going next.
Instead, replace the combined callout with one where we call the next
safe spot each time the AOE from a clone goes off. This approach does
end up with multiple calls in quick succession, but should be easier to
handle.
Keep the initial starting callout which shows where the first two
cleaves will hit, but prefix it with "Start" to help clarify its
meaning.
Signed-off-by: Jacob Keller<EMAIL_ADDRESS>

This worked ok in my practice, but I'm not entirely sure about it. I really struggled with seeing a callout that was 5 directions, since it is extremely easy to lose track of where to go. This worked ok for me, but I wasn't sure what others would think, since the actual callouts for when to go are relatively delayed, because you don't get told to go to the next spot until the moment the current clone expires. This could lead to being to slow to react and move to a good spot.

This worked ok in my practice, but I'm not entirely sure about it. I really struggled with seeing a callout that was 5 directions, since it is extremely easy to lose track of where to go. This worked ok for me, but I wasn't sure what others would think, since the actual callouts for when to go are relatively delayed, because you don't get told to go to the next spot until the moment the current clone expires. This could lead to being to slow to react and move to a good spot.

as a option in the settings, would it in thoary be possable to let people select group 1 or group 2 for the callouts?

It could probably be an option. I also considered making it call out all remaining directions so it would sort of count down the callout.
I'm also perfectly fine carrying this on my own fork if no one else likes it.

as a option in the settings, would it in thoary be possable to let people select group 1 or group 2 for the callouts?

I might be completely forgetting, so apologies in advance - but is there a G1/G2 component to R/M4 normal?  IIRC, Sidewise Spark is just 5 directional cleaves, so I'm not immediately recalling what the light party/group aspect here would be.
More generally about the PR: Full disclosure that I haven't tested this in game or looked at the timing, so this is based on  recollections from stale memory.  I do think the combined 5-direction infoText call out has some utility (perhaps not for everyone, but at least some), since it both gives a continual on-screen reminder of the movement and allows potential intercard optimization and reduced movement -- for example, if I see "E -> N -> E -> N -> something else", I personally will be going NE to post up and cast for a while.  So while I can definitely see value in something additive here, I don't necessarily think it makes sense to remove what's already there.
As far as what could be additive:  In a lot of older content, cactbot sort of follows the unwritten (maybe written? I should re-read the docs) rule of an infoText alert that displays a full mechanic chain, with periodic alertText warnings for each step of the mechanic.  (SoSEx Quintuple Cast, and the left/right cleaves in P12Sp1 immediately come to mind).  I think that's the approach you were going for here (assuming you make this a separate trigger, rather than replacing the existing one).  The downside for this fight, though, is  that the cleaves happen so quickly in sequence that alertTexts have to have short durations (I think you've got it at 2s right now) to avoid stacking or displaying stale info, and that doesn't give a lot of reaction time or ability to process the info.
TLDR: I think there's good initial direction here.  I'd suggest separating this into a new trigger as opposed to replacing the existing one, and if it would be useful, I'm happy to give this a run in-game and see how it feels or if I can come up with any other ideas for potentially consolidating the alerts.

There is no party component on normal mode, correct. Each player resolves it individually.
I think I agree with "keep the current functionality, add this new trigger as additional functionality and not as replacement". I too prefer to just see the entire sequence, but I do agree that that doesn't work for everyone, so individually timed calls make sense to have alongside. The comparison with Seat of Sacrifice is apt.

there seem to be sevral mechanics in m4s where breacking it out by party, atleast as a option, would make the callouts cleaner. chain lighting in p2 is a clear example of that.

there seem to be sevral mechanics in m4s where breacking it out by party, atleast as a option, would make the callouts cleaner. chain lighting in p2 is a clear example of that.

This PR pertains to M4 Normal, not M4S.
Regarding Chain Lightning (assuming you are referring to the Raining Swords mechanic), the triggers already determine the side of the arena based on your light party and call the corresponding safe spots in order for just that side. If you think there's a mechanic that could use different callouts for G1/G2, could you open an new feature request here and give a little more detail on what mechanics you believe a G1/G2 option would be useful for, and what you would like the triggers to convey for each group?

I will update this tomorrow. I have some ideas for how to integrate with the existing callout. I agree keeping both may be helpful but I'll try to figure out a good way.
One way I thought of was having the full set of what's left be updated every time one finishes? So rather than only showing you what to do next it goes down one at a time but shows the remaining set nicely.
I also noticed this is currently blocking a callout for a half room before she starts spawning clones, I think. I'll investigate that. I'll also try to refactor my other PRs to use multiple triggers as suggested instead of using all in the same one.

I did some more refactoring, and now the callout for the clones goes something like this as the clones appear or hit:
W
W => N
W => N => E
W => N =? E => S
N => E => S
E => S => W // another clone or the boss started here
S => W
W
These callouts are something like 2-3 seconds apart, with the actual hits starting when the list begins reducing.
This seems useful to me, but I haven't tested it live yet. I suspect the durations are wonky and need to be tuned. I also suspect not everyone will like this, so perhaps we can come to some compromise on what makes sense here.

I've been using this for a few weeks, and I like it, but I'm not sure how others would feel about this.

I've been using this for a few weeks, and I like it, but I'm not sure how others would feel about this.

Sorry for the delay in reviewing - I had assumed since the PR is marked as draft that you were still working on it.  I'll give this a run tomorrow and see how it feels.

I've been using this for a few weeks, and I like it, but I'm not sure how others would feel about this.

Sorry it took me so long to get back to this!  I've run it a couple times to get a feel for the timing/noise level of these changes.  I think there's probably a lot of room here for personal preference, but imho, I found this to run a little on the noisy side.  The infoText alerts started stacking up on top of one another fairly quickly, and it took me a bit to figure out which I was supposed to pay attention to.  And when running with tts enabled, it was a jumble of overlapping directional calls; without text alerts, I would have had no idea what cactbot was instructing me to do & when.
Compare, e.g.,:

with:

This definitely seems like a prime use case for what valarnin proposed earlier with using a Generator to create and adjust dynamic text, but until we get around to implementing that, I think what we have now (an initial call with the first two, and then a long-duration with the full set) will probably be better for most players.
If you wanted to, I think you could add this as a config option people could enable if they want more sequenced directions -- but in that case, I'd suggest the output each time should be limited to the immediate direction and the one after (e.g. E => N), and it should disable the existing default triggers, so only 4 alerts would be generated (e.g. dir1 => dir2  ... dir4 => dir5`).  (And I'd definitely suggest testing this with TTS to make sure the timing won't overlap on the calls).

I think what I may try to do is have it collapse directions, since the majority of pulls I've seen end up just having a single final safe corner.
I agree this is quite noisy as it is now.

Compare, e.g.,:
with:

My primary motivation for this PR is the fact that in these images, we call "E => S => W => N => W" at a point when east has already completed, and south is almost completed, making us do a callout that implies "you should go east and south" when infact, the directions really mean "you are about to need to go west".

Would a version that only does two callouts, but which removes any that have already completed by the point we call be acceptable?
I'm also considering an option which can tell if the entire sequence can condense, such as if it was
"N => W => N => W => N" which could just be condensed to "NW and stay"

I'm working on implementing this as an option at least to start.

I updated this PR to be a configuration option, and to add collapsing logic. I think this version should be less noisy, though I didn't yet work on de-noising the sequence mode fully.

Thanks again for putting this together!  One general comment - I think combining two cleaves into an intercard direction is a good simplification, but I wonder whether we should add something like '(x2)' to the end of the callout to make clear that the direction applies for two hits, as opposed to just that intercard being safe for a single hit.
I did notice a couple things while testing too that I wanted to flag for you:

In either configuration option, cactbot is outputting intercardinal directions for the first two clone cleaves (which are solo) -- previously it was just 'N' or 'S'.  In either config option, I think we should probably continue to output 'N' or 'S' for these, since there's no east/west component.

In collected mode for the 5-hit cleaves, the trigger is no longer outputting the first two directions as a collected string (e.g. E => S), but instead as a combined intercard (e.g. SE).  I think the combined intercard makes sense for sequence mode, but for collected mode, I think we should retain the existing output, as folks have come to expect that -- and having a combined intercard makes it a little more work to parse the follow-up 5-hit sequence, especially as the intercard dir will always have 'N'/'S' as the first letter, but the first cleave is always E/W).

In sequence mode, I think there may be an issue with the trigger firing multiple times or at the wrong times?  From one pull, here's the different outputs from both modes:

Collected:

Sequence:

In sequence mode when it's a stay pattern, I think there's an extraneous output.  From one pull where all cleaves were N & W:

I haven't looked at it closely, but I'm guessing that this is because the third & fourth cleave are combined into SE, and only when the fifth cleave is processed is the Stay output provided.  We could wait for the 5th cleave to see if it's the same before providing an output for 3&4, but if that will cause a problem with reaction time, I think there's an alternate approach:

If the safe spot for 5 is not the same as the safe spot for 3 & 4, do an alertText with just the safe cardinal direction (no need for an intercard component for this one).
If the safe spot for 5 is the same as the safe spot for 3 & 4, do an infoText that just says 'stay'.  I think that would accomplish the same thing but help avoid some of the directional clutter.  Thoughts?

I'll take a look. Its not supposed to output intercard spot unless the
whole sequence is safe in the one intercard.
On Sat, Sep 28, 2024, 4:12 PM Wexx @.***> wrote:

@.**** commented on this pull request.
comments above
—
Reply to this email directly, view it on GitHub
https://github.com/OverlayPlugin/cactbot/pull/354#pullrequestreview-2335490537,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGVRXZO4YGLWFIQJHYDLDTZY4ZWJAVCNFSM6AAAAABMRV3NHWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGMZVGQ4TANJTG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

Thanks again for putting this together! One general comment - I think combining two cleaves into an intercard direction is a good simplification, but I wonder whether we should add something like '(x2)' to the end of the callout to make clear that the direction applies for two hits, as opposed to just that intercard being safe for a single hit.

It should only be combining when actually printing the whole chain, and only if everything so far is a single intercard. For sequence mode, this doesn't work quite right, as you saw above.

I did notice a couple things while testing too that I wanted to flag for you:
1. In either configuration option, cactbot is outputting intercardinal directions for the first two clone cleaves (which are solo) -- previously it was just 'N' or 'S'.  In either config option, I think we should probably continue to output 'N' or 'S' for these, since there's no east/west component.

2. In `collected` mode for the 5-hit cleaves, the trigger is no longer outputting the first two directions as a collected string (e.g. `E => S`), but instead as a combined intercard (e.g. `SE`).  I think the combined intercard makes sense for `sequence` mode, but for `collected` mode, I think we should retain the existing output, as folks have come to expect that -- and having a combined intercard makes it a little more work to parse the follow-up 5-hit sequence, especially as the intercard dir will always have 'N'/'S' as the first letter, but the first cleave is always E/W).

3. In `sequence` mode, I think there may be an issue with the trigger firing multiple times or at the wrong times?  From one pull, here's the different outputs from both modes:

Collected:
Sequence:
4. In `sequence` mode when it's a stay pattern, I think there's an extraneous output.  From one pull where all cleaves were N & W:
   ![image](https://private-user-images.githubusercontent.com/86693821/371811276-f60336f5-bd01-4656-9070-4df68ff7a4b1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjc2NTQ5NDEsIm5iZiI6MTcyNzY1NDY0MSwicGF0aCI6Ii84NjY5MzgyMS8zNzE4MTEyNzYtZjYwMzM2ZjUtYmQwMS00NjU2LTkwNzAtNGRmNjhmZjdhNGIxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTMwVDAwMDQwMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJhNzAyNDUwOTVkMzUzYTE2N2IxNDFhYzQwMTAyOWFiYjc3MWJlZmVmN2Q5NmY5NDEwZWI3ZDQyNTFhNTZkMmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.KS04pvD9Vkc3EIjFA9y58DwyVEALL8caUfI872EJSbw)

The "extra" input is because of this flow:
It sees S => W => N and logs this
The S cleave hits, so it sees W => N and collapses this to NW
The next collect happens and it sees W => N => W and collapses this to NW and logs it again.
The final hit appears and thats when we do the "NW => STAY" logic.

I haven't looked at it closely, but I'm guessing that this is because the third & fourth cleave are combined into SE, and only when the fifth cleave is processed is the Stay output provided. We could wait for the 5th cleave to see if it's the same before providing an output for 3&4, but if that will cause a problem with reaction time, I think there's an alternate approach:
* If the safe spot for 5 **is not** the same as the safe spot for 3 & 4, do an `alertText` with just the safe cardinal direction (no need for an intercard component for this one).

* If the safe spot for 5 **is** the same as the safe spot for 3 & 4, do an `infoText` that just says 'stay'.  I think that would accomplish the same thing but help avoid some of the directional clutter.  Thoughts?

I think something like this works, but I'll have to refactor how it actually decides this. I'll look into it.
I'm thinking something along the lines of checking at each hit, and if the safe spot changes, do an alert, and if it stays the same do an info with stay.
We can keep the collapsing in collect mode only for the final hit, and only collapse if the whole chain does.

Ok this version seems to be ok with my simulated tests. For the pattern:
E => N => W => N => W, we first see the E =>N and collaps it to a "NE" callout. Then at the first hit we see N => W => N, collapse it to NW, and see that its different from the previous safe spot, so we call NW x3.
Then, when the final W hit from the boss shows up, we notice that its the same as the last NW hit, so we just avoid any more callouts.
I think this does most of what you want.
I opted to not call numbers for the first intercard collection, because this was more confusing than not. This would have shown you:
NE x2
NW x3
which is confusing because it might imply the wrong number of safe hits for the NW spot, as you might think "its going to hit NE twice, then NW 3x" but in reality, the north hit from the NE was also part of the NW hits from the NW x3.

I opted to not call numbers for the first intercard collection, because this was more confusing than not. This would have shown you:
NE x2 NW x3
which is confusing because it might imply the wrong number of safe hits for the NW spot, as you might think "its going to hit NE twice, then NW 3x" but in reality, the north hit from the NE was also part of the NW hits from the NW x3.

Sorry, I'm still a little confused.  In that pattern, wouldn't E => N collapse to "NE x2" and then W => N => W collapse to "NW x3"  Not sure I'm groking why the 2nd call (N) would be part of "NW x3".  Maybe to help me understand, could you give a few examples of sequences and how the trigger will call them?

I opted to not call numbers for the first intercard collection, because this was more confusing than not. This would have shown you:
NE x2 NW x3
which is confusing because it might imply the wrong number of safe hits for the NW spot, as you might think "its going to hit NE twice, then NW 3x" but in reality, the north hit from the NE was also part of the NW hits from the NW x3.

Sorry, I'm still a little confused.  In that pattern, wouldn't E => N collapse to "NE x2" and then W => N => W collapse to "NW x3"  Not sure I'm groking why the 2nd call (N) would be part of "NW x3".  Maybe to help me understand, could you give a few examples of sequences and how the trigger will call them?

We save the full set of calls. We collapse only when reporting.
It first collects E > W, and logs this as NE x2
Then it collects a few more and we have E > N > w > N.
Then the first cleave hits and removes east so we have N > W > N which logs as NW x3, because we log after every hit in sequence mode.
After this log we get one final collect of the last hit, which is W, so we have N > W > N > W, but the new logic decects this is the same same spot so output is elided.

We save the full set of calls. We collapse only when reporting.
It first collects E > W, and logs this as NE x2
Then it collects a few more and we have E > N > w > N.
Then the first cleave hits and removes east so we have N > W > N which logs as NW x3, because we log after every hit in sequence mode.
After this log we get one final collect of the last hit, which is W, so we have N > W > N > W, but the new logic decects this is the same same spot so output is elided.

I think I understand, but the issue I'm seeing is that we're calling 'NE x2' (which implies that NE should be safe for two cleaves), but then consolidating the second safe spot (N in this example) into the 'NW x3' follow-up call -- which isn't correct, since the 'N' safe spot was already used as the 2nd part of the 'NE x2'.  In other words, if we're doing a first 'x2' call, it should be the safe spot for the first two cleaves, and the followup 'x3' call (whether Stay or otherwise) should cover the final three cleaves.  Does that make sense?

We save the full set of calls. We collapse only when reporting.
It first collects E > W, and logs this as NE x2
Then it collects a few more and we have E > N > w > N.
Then the first cleave hits and removes east so we have N > W > N which logs as NW x3, because we log after every hit in sequence mode.
After this log we get one final collect of the last hit, which is W, so we have N > W > N > W, but the new logic decects this is the same same spot so output is elided.

I think I understand, but the issue I'm seeing is that we're calling 'NE x2' (which implies that NE should be safe for two cleaves), but then consolidating the second safe spot (N in this example) into the 'NW x3' follow-up call -- which isn't correct, since the 'N' safe spot was already used as the 2nd part of the 'NE x2'.  In other words, if we're doing a first 'x2' call, it should be the safe spot for the first two cleaves, and the followup 'x3' call (whether Stay or otherwise) should cover the final three cleaves.  Does that make sense?

I opted to just not collapse the first calls and only collapse when we are calling out the final one. Coding it to manage when it should or shouldn't collapse is a bit too difficult to figure out

I've been poking at this a bit in the emulator, sometimes it does a nice job of condensing the calls, and sometimes it just blows up into a confusing mess.  For example, this set of cleaves

turns into

which is just an overload of information when they are coming every 2s.

I've been poking at this a bit in the emulator, sometimes it does a nice job of condensing the calls, and sometimes it just blows up into a confusing mess.  For example, this set of cleaves

turns into

which is just an overload of information when they are coming every 2s.

One thing I could do is just keep the default behavior of collecting but remove any already hit calls when making the final call.
I think that's the biggest thing that confused me with the combined callout: remembering where you are in the callout order.

One thing I could do is just keep the default behavior of collecting but remove any already hit calls when making the final call.
I think that's the biggest thing that confused me with the combined callout: remembering where you are in the callout order.

Do you need to remove at all?  We know it's a fixed number of cleaves (5), and they get pushed into the array in order; if they aren't removed, you can access each cleave directly, combine certain ones, etc.  I think then it would only becomes a matter of validating array length (and returning a call at the correct length), and using a combination of delays/durations to make the timing feel good in-game...

One thing I could do is just keep the default behavior of collecting but remove any already hit calls when making the final call.
I think that's the biggest thing that confused me with the combined callout: remembering where you are in the callout order.

Do you need to remove at all? We know it's a fixed number of cleaves (5), and they get pushed into the array in order; if they aren't removed, you can access each cleave directly, combine certain ones, etc. I think then it would only becomes a matter of validating array length (and returning a call at the correct length), and using a combination of delays/durations to make the timing feel good in-game...

My main point is that the order goes something like this:

collect first clone hit
collect second clone hit AND call the first two safe spots
collect third clone hit
collect 4th clone hit
first clone hit is resolved
collect boss hit AND call all 5 spots.

But at step 6, we are calling all 5 even though the first one has already hit.
My issue with this is that the final set of callouts may say something like "E => N => W => S => W"
but the east safe spot is already resolved, and in fact we need to be west soon. As far as I know they always alternate either N/S or E/W at each call. (it's never going to be N => S, for example, at least not in my experience)
At least for me, I then have to grasp and remember that something already hit, so calling out all 5 led to confusing issues where I'd end up on a bad spot thinking I still had time.
There's only something like a 1 second between the first hit and the boss collecting, so using the "sequence" mode is bad because it leads to the large number of calls.
Personally, I like the sound effect of when things hit, so that I know "ok I need to move to the next spot", but it ends up leaving a lot of clutter on the display and does not work well with TTS.
I don't think we should be making a callout for data that is already irrelevant. We could delay making the final 3 callouts until the first 2 have hit? The problem then is that you don't get a callout for the next (3rd) safe spot until its almost ready to be used.. But otherwise we are ultimately always going to repeat some information. Its only a delay of about 1 second... but you already only have ~2 seconds between each hit anyways.

I'm leaning towards dropping the sequence strategy, and just keeping the collapsing bits, and making sure the final callout does not include any hits that already finished.
How does that sound?

I attempted to extract just the collapsing and simplification into https://github.com/OverlayPlugin/cactbot/pull/471

I think the version I posted without a sequence strategy is preferable to this.


Verify code coverage of ls() on Travis

DON'T MERGE
This is to verify if #795 needs fix or not.
As described here, let's see if there are console.log() messages get printed out on Travis.
If our assumption is correct, we should see
[795] Follow symlink
[795] Follow existed symlink of directory
[795] Follow symlink

on travis log.

Codecov Report

Merging #837 into master will decrease coverage by 0.15%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #837      +/-   ##
==========================================
- Coverage   95.49%   95.34%   -0.16%
==========================================
  Files          34       34
  Lines        1266     1268       +2
==========================================
  Hits         1209     1209
- Misses         57       59       +2

Impacted Files
Coverage Δ

src/ls.js
87.75% <0%> (-3.74%)
: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 9035b27...44d86cd. Read the comment docs.

This is only for verification so close it since we got the logs we need.


FEAT: Add power calculation

Added methods to compute power by nets or by layers after SIwave DCIR analysis

I'm investigating this.


support for the pretrained weights in Detectron

Hi, thanks for this great repo.
I wonder if you have any plan to support the use of the pretrained weights provided in Detectron Model_ZOO

Hi,
We already support pre-trained weights from Detectron,  see for example the caffe2 folder in configs.
Let me know of you have more questions


Pin notify version to 5.0.0-pre.2 in bevy_asset

Objective

Looks like about an hour ago a new version of notify 5.0 pre-release (5.0.0-pre.11) was pushed to crates.io which breaks the build.

Solution

Pin notify version to 5.0.0-pre.2

sorry I missed that you opened it first, it has been done on #2528 for main branch and #2529 on a new branch to fix released version 0.5


Bug/ Footer page portfolio link is not working.

Describe the bug
When we presss on Footer page portfolio link its showing empty page.
To Reproduce
Steps to reproduce the behavior:

Go to 'https://uni-collab.vercel.app/'
Scroll down to 'Footer section'
3.Click on portfolio link
4.See the error

Screenshots

**Desktop (please complete the foll
owing information):**

OS: Windows
Browser [chrome]

@balimpuramvikasgoud Issue assigned to you


Verify torrent validity in tests

[x] reuse functionality from #78
[x] bencode canonical

Fixed by #169.


espflash: init at 2.1.0

Description of changes

Add espflash:

crates.io: https://crates.io/crates/espflash
Repository: https://github.com/esp-rs/espflash/tree/v2.1.0

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.


Assign default role to new users being created

Describe your changes :

When a new user is created, the default role is assigned to the user automatically by the backend.
See #2460
This is a stacked PR that builds on top of #2631

Type of change :

[ ] Bug fix
[x] Improvement
[ ] New feature
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation

Frontend Preview (Screenshots) :
For frontend related change, please link screenshots of your changes preview! Optional for backend related changes.

Checklist:

[x] I have read the CONTRIBUTING document.
[x] I have performed a self-review of my own.
[x] I have tagged my reviewers below.
[x] I have commented on my code, particularly in hard-to-understand areas.
[x] My changes generate no new warnings.
[x] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

Reviewers

Backend: @sureshms @harshach

Closing this PR without merging --- moving changes into PR https://github.com/open-metadata/OpenMetadata/pull/2631


small wording inconsistencies

Describe the bug
This is a minor bug I found while adding translations.
Inconsistent spelling for some words inside the package and translations.
To Reproduce
Steps to reproduce the behavior:

Check the msgids inside the base volto.po file

Expected behavior
A clear and consistent use of terms used in the UI.
Screenshots
url - URL: msgid "Existing alternative urls for this item" - msgid "External URL"
Add-on, Add-On, Addon : msgid "Add-on Configuration" - msgid "Add-Ons" - msgid "Addon could not be upgraded"
also colis used instead of column (Insert col before): https://github.com/plone/volto/blob/master/src/components/manage/Blocks/Table/Edit.jsx#L108

To be consistent with Plone Documentation spellings, I would suggest the following.

URL is an acronym and should be capitalized.
Add-on or add-on and their plurals, using correct hyphenation.
column (avoid abbreviations and shortened words, such as "info" for "information")


Data Science with Python : Sentiment Analysis #419

Description 📜
Made a video presentation.
Fixes #419

Type of change 📝

[x] Video (Animations, screen-recordings, presentations and regular explanatory films are all possibilties etc)

Domain of Contribution 📊

[x] Datascience with #Python

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

@prathimacode-hub , Can you please evaluate my pr mam.

@prathimacode-hub , thank you mam


Syntax error in checkplotserver source code

When I run checkplotserver I get the following error:

$ checkplotserver
Traceback (most recent call last):
File "/nfs/phs3/ar0/S/PROJ/jwallace/venv/bin/checkplotserver", line 11, in
load_entry_point('astrobase', 'console_scripts', 'checkplotserver')()
File "/nfs/phs3/ar0/S/PROJ/jwallace/venv/lib/python2.7/site-packages/pkg_resources/init.py", line 572, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/nfs/phs3/ar0/S/PROJ/jwallace/venv/lib/python2.7/site-packages/pkg_resources/init.py", line 2755, in load_entry_point
return ep.load()
File "/nfs/phs3/ar0/S/PROJ/jwallace/venv/lib/python2.7/site-packages/pkg_resources/init.py", line 2408, in load
return self.resolve()
File "/nfs/phs3/ar0/S/PROJ/jwallace/venv/lib/python2.7/site-packages/pkg_resources/init.py", line 2414, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/home/jwallace/astrobase_waqas/astrobase/astrobase/cpserver/checkplotserver.py", line 58, in
from . import checkplotserver_handlers as cphandlers
File "/home/jwallace/astrobase_waqas/astrobase/astrobase/cpserver/checkplotserver_handlers.py", line 2179
**lctoolkwargs,
^
SyntaxError: invalid syntax

I deleted the trailing comma in my local copy of the repo but there's something I'm not setting up or compiling properly because it still appears in the error message.

Sorry, this appears to be another Python 2 related bug. Will investigate...

No worries, it's good to get these bugs fixed. I think I can probably work around this. Should have something soon.

It turns out it was the trailing commas after all! Apparently trailing commas in a function call in py2 is illegal but not in py3 (at least not in py 3.6). Weird.
git pull origin master and b070554a8aaf4b33f2c1e3b1b128eed47ed28fb9 should hopefully make it work for you (I got it working with examples of your checkplot pkls under py2).


Selection Box includes entire row

#179 - fixed the selection box to represent the logic, rather than fixing the logic to match the selection box


Ajax status not turning off if any ejs had exception

You should catch, decrease and rethrow.

Well, it makes no sence in before #67, espesually we need A+ promises. Cause you cant retrow exception to function without ambiguity.


A potential memory issues

Describe what's wrong

Found at https://github.com/ClickHouse/ClickHouse/pull/58831
How to reproduce
Error message and/or stacktrace

Additional context

I have seen this fix, but this file change is tooooooooooo many.