Walking through "while" loop body

Hi,
In code below:
module m;
  bit clk, a, b;
  property a_imp_b;
    @(posedge clk) a |-> b);
  endproperty
  //----------------------//
  initial begin
    begin : bef
      ib_asrt: assert property(a_imp_b);
    end : bef
    while (int i=0; i < 10; i++) begin
      wh_asrt: assert property(a_imp_b);
    end
    ia_asrt: assert property(a_imp_b);
  end
endmodule

I wanted to flag "wh_asrt" as it is a potential issue across tools. However, when I look at the LoopStatement object, I don't understand how to get hold of its "body".
Below is what I tried:
def chk_COMPAT_SVA_NO_CONC_IN_FE (lv_cu_scope):
  if (lv_cu_scope.kind.name == 'ModuleDeclaration'):
    for lv_mod_mem_i in lv_cu_scope.members:
      if (lv_mod_mem_i.kind.name == 'InitialBlock'):
        for lv_init_items_i in lv_mod_mem_i.statement.items:
          if (lv_init_items_i.kind.name == 'LoopStatement'):
            print (lv_init_items_i)
            # I want to get to the "BODY" of this while loop

Another attempt I made (unsuccessful) was, once a SequentialBlockStatement was reached, its parent would indicate that I am inside a while-loop. Referring to SV code above, this way I should be able to segregate "ib_asrt" vs. "wh_asrt", but both pointed me to back to InitialBlock. I would have guessed that parent of wh_asrt statement would be the LoopStatement.
Thanks
Srini

Sorry, missed this issue back when it was opened. If you haven't figured it out yet, the loop statements all have a body member that should point to the thing you're looking for (probably a BlockStatement which itself has a pointer to the block symbol).

Going to close this -- feel free if you have additional questions.


Cannot run with Junit 5

Bug reports
Wiremock continuously returns a NotAuthorisedException when running on JUnit Jupiter 5.5.1.

[ ] Using version 2.24.1 of Wiremock
[ ] Using the stack builder library within Junit tests to execute stubbed endpoints
[ ] This test will return the same error every time

stubFor(get(urlEqualTo("/some/thing"))
                .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello world!")));

[ ] Using maven 3.6.1
[ ] Here is a summary of the error given back to me by Maven

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.33 s <<< FAILURE! - in com.outreach.tests.helper.GetJWTTokenTest
[ERROR] invokeEndpoint  Time elapsed: 0.567 s  <<< ERROR!
com.github.tomakehurst.wiremock.security.NotAuthorisedException
        at com.outreach.tests.helper.GetJWTTokenTest.invokeEndpoint(GetJWTTokenTest.java:65)

[INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR]   GetJWTTokenTest.invokeEndpoint:65 » NotAuthorised
[INFO]
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  11.361 s
[INFO] Finished at: 2019-08-19T12:42:06-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.0:test (default-test) on project test-utilities: There are test failures.
[ERROR]
[ERROR] Please refer to C:\Users\Pat\Documents\repos\Outreach-Test-Helper\test-utilities\target\surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Feature requests
Can we add support for Junit 5 in order to use the Wiremock library within Uni tests.

Please can you post the code and config to reproduce this.
This is unlikely to be related to JUnit - it looks more like a port number problem to me.

Code:
    @Test
    public void invokeEndpoint() throws Exception {
        String endpoint = "/bin/api/outreach/v2/login";

        stubFor(post(urlPathEqualTo(endpoint))
            .willReturn(aResponse()
            .withStatus(200)
            .withHeader("Content-Type", "application/json")
            .withBody("{\"jwt\": \"my_token\"}")));

        assertEquals("my_token", new TestableImpl().validInvocation());
    }

Config:
    @Rule
    public WireMockRule wireMockRule = new WireMockRule(options().port(8081));

OK, I think the problem is that @Rule doesn't work with Jupiter.
You need to do one of the following:

Use JUnit Vintage
Use this: https://github.com/lanwen/wiremock-junit5
Start and stop WireMockServer in your before and after methods

@tomakehurst sounds good I will test it out if it works I will submit a PR to the Read Me in order to inform others of this scenario.
Cheers.

👍

This issue can be closed → #684


Malformed URL crashes the app

Describe the Bug

If a malformed path is opened, the app crashes.
Steps to Reproduce

Go to https://integreat.app/lkmuenchen/ru/прибытие-и-жизнь-в-германии/мобильность/�
The app crashes

Expected Behavior

The app to not crash and show an error.
Actual Behavior

The app crashing.
Additional Information

The following "url" already crashes before the app is even reached.
https://integreat.app/lkmuenchen/ru/прибытие-и-жизнь-в-германии/мобильность/�%...
Sentry Issue: INTEGREAT-APP-51H

@steffenkleinle I'm not sure if I understand this issue correctly. Opening the URL fails but that makes sense because it's cut off, so the formatting is broken.

Yes, it is not a valid link and wrongly cut off from a valid one. And while I don't expect the app to correctly resolve the url (impossible), I definitely think that the app should not just crash nevertheless.
Instead, the app should be error resistant and show an error and/or just ignore the wrong path and open the dashboard or the closest page.

Is the linked Sentry issue the correct one? Because I don't see any connection between the Sentry issue and this one.

Seems like I linked the wrong issue and can't find the right one anymore, but shouldn't matter as it is easily reproducible.

Ah, I understand now, thanks for the explanation. I don't think we can do much about this error from our end since, as you pointed out, the error happens before the app even loads. This would have to be handled by the CMS. I guess we could ask the CMS team to forward to an error page for URLs that are poorly formatted?

Ah, I understand now, thanks for the explanation :)
I don't think we can do much about this error from our end since, as you pointed out, the error happens before the app even loads. This would have to be handled by the CMS. I guess we could ask the CMS team to forward to an error page for URLs that are poorly formatted?

I think this is only the case for the second URL (i.e. this one). For the first one it is the app that crashes.

I think the underlying issue here is that our URLs are extremely long, especially any that are not in Latin letters. I'm inclined to discuss at the next conference if we want to change something about that. What do you think?

I think the underlying issue here is that our URLs are extremely long, especially any that are not in Latin letters. I'm inclined to discuss at the next conference if we want to change something about that. What do you think?

I am confident that that is not the reason. If you use a correct URL that is longer, the app does not crash. I created a small fix in #2941 that should fix this (i.e. the first URL) problem. I wouldn't put any more time into this to also fix the second URL on the server side.

Well, yes, but the reason that URLs get cut off is because they are very long and so they are shortened by some apps when pasted. Or do you see other reasons for why someone would be trying to open a URL that is cut off partway through?

Well, yes, but the reason that URLs get cut off is because they are very long and so they are shortened by some apps when pasted. Or do you see other reasons for why someone would be trying to open a URL that is cut off partway through?

Ohh, now I got it, thanks for explaining an being patient here :pray: I was just focusing on the symptoms I guess, not on the original problem :D
Jep, that should probably be fixed as well, perhaps with a maximum slug length in the CMS? Proably we have to investigate reasonable maximum lengths and how encoding and things work there though. Can you open an issue for that perhaps?

Done :) https://github.com/digitalfabrik/integreat-cms/issues/3119


cleanup: move pkg/tool/cache to pkg/util/cache

Signed-off-by: saintube<EMAIL_ADDRESS>Ⅰ. Describe what this PR does

Move pkg/tool/cache dir to pkg/util/cache.
Ⅱ. Does this pull request fix one issue?

discussed in https://github.com/koordinator-sh/koordinator/pull/844#discussion_r1040364235
Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/cc @zwzhang0107 @jasonliu747 @FillZpp

/approve

/milestone v1.1


Weird issue about requiring params

Module version: 6.0.0
Puppet version: 4.8.2
OS and version: CentOS 7

Bug description
Currently trying to upgrade from 5.x to 6.4.2. I keep hjitting these odd errors of need values for params?

I for the life of me can not figure out what might be causing these errors?  My config looks something like this to try and assuage errors. Ideally Id not have options that I don't need...

Any ideas would be much appreciated!

It was due to an incompatible version of puppet and ElasticSearch!


Or maybe this example will help you?


Get-DbaSqlService, SSRS 2017, No ComputerManagement Namespace

Bug Report

General Troubleshooting steps

[x] Verified running the latest release of dbatools?
[x] Verified errors are not related to permissions?
[x] Can duplicate in new/clean PowerShell session (clean = powershell -NoProfile)?

Version Information

Operating System (Name|Version): Windows Server 2012 R2, Windows Server 2016
PowerShell Version: 5.1.14409.1005
SQL Server (Edition|Version): SSRS 2017 Enterprise, October 2017 release

Steps to Reproduce

[ ] Attach any screenshots (if possible/allowed)
[ ] Attach logs generated by dbatools (Get-DbatoolsLog)
[x] Attach output from PowerShell console (if possible/allowed)

"WARNING: [Get-DbaSqlService][15:08:35] No ComputerManagement Namespace on [servername]. Please note that this function is available from SQL 2005 up."
Feature Request
If possible, would like to be able to successfully use Get-DbaSqlService against a target which has only SSRS 2017 installed (no other SQL Server components installed).
Problem to solve
Get-DbaSqlService doesn't currently work against a target which hosts only stand-alone SSRS 2017.
Additional information
Perhaps the needed WMI provider or namespace is not created when SSRS 2017 is installed stand-alone on a server on which no other SQL Server components have been installed?

This is because SQL Server Configuration Manager can not be used to manage SSRS 2017+. When you install it there is a new namespace added ReportServer.

Whomever is up to the task will need to update the command(s) to look for this namespace, still considering the version (right now we just have 14 but it will go up):
However @potatoqualitee we are going to need to determine what DLLs need to be added to support this now. I'm not positive but it may be these DLL files:

Or all the the different language files:

Or there is potential to get files from ReportingServicesTools ? Where I figured out what the right classname was to use in above screenshots

I believe a potential fix is to add an entry for SQLServerReportingServices to this line in Get-DbaService:
if ($service.ServiceName -in ("MSSQLSERVER", "SQLSERVERAGENT", "ReportServer", "MSSQLServerOLAPService"))
Because the ServiceName changed for SSRS 2017 (and maybe SSRS 2016 too, unconfirmed).

Actually, Start/Stop services already work with Win32_Service, so that's cool. Only the first question is relevant.


Uploading Fuchsia Debug symbols is slow on LUCI

This is to make the recipe faster.

attempting a fix at https://flutter-review.googlesource.com/c/recipes/+/14480

Went down from 17 mins to 4.5 mins.
cc: @zanderso

Nice! Thanks, @iskakaushik!


error opening associated file date/time collumn

In GitLab by @jc-hunink on Jul 2, 2019, 10:22
when opening a associated timeseries txt file a default column name of "time" is expected while this column can have different names.
    if itype == 1:
        time_column = df.columns[0]
        len_date = len(df[time_column].iloc[0])
        if len_date == 14:
            df[time_column] = pd.to_datetime(df[time_column], format="%Y%m%d%H%M%S")
        elif len_date == 8:
            df[time_column] = pd.to_datetime(df[time_column], format="%Y%m%d")
        else:
            raise ValueError(
                f"{path.name}: datetime format must be yyyymmddhhmmss or yyyymmdd"
            )
return df

In GitLab by @Huite on Jul 6, 2019, 01:02
Fixed by 000b64dbe2cef767984fa55080ba43fe218425ab

In GitLab by @Huite on Jul 6, 2019, 01:02
closed


fix(go): re-add Compilation struct and associated methods

These were deleted from kindex.go in https://github.com/kythe/kythe/pull/5348, but are still in use in google3

It looks like the go test tests fail

Oops, missed a few go imports.


Instantiate parent in Page->translatedLanguages()

Fixes #2163.

A similar fix is probably needed for Flex Pages.

@OleVik There's a small issue there; parent isn't the correct one as it comes from the current language, not from the same language as the page.

@mahagr I added a check for a translated version of the parent, in the same language as the current Page, and set the parent's route to reflect that. I also updated the returned route to include the language-prefix, otherwise all languages return the same route.

It still won't work as you can change slug from the parent based on the language. So the URL is basically going to be wrong: /en/dogs/intro -> /fi/koirat/esittely. With your change, the resulting URL would be: /fi/dogs/esittely which is still wrong.
The only way to get it right, is to go up on a tree and initialize all the translated parent pages and get route from them.

That's derived from aliases, right? Wouldn't the router then apply /fi/koirat/esittely if /fi/dogs/intro was requested? I'm trying to avoid recursion upwards, assigning new routes along the way, if possible - to not impact performance as much.

I think the best thing though, would be to get the rawRoute() instead of trying trying to build translated parent route (it won't work with your code). If you use rawRoute(), it will never be translated (it uses folders in the filesystem to name the route) and that route is always added to the router and known to work.
The issue with your approach is that it'll not build the nested route right way causing 404 in many cases as the route cannot be found.

No, it won't work like that as Grav currently keeps record only from the current translation. This means that all the other slugs are coming from the wrong language.

What associates /en/dogs/intro with /fi/koirat/esittely though? Seemingly the slug, per Multi-Language Routing. I probably need to expand my test-case, I initially just needed a fix for $this->grav['page']->translatedLanguages(true) - which just returns empty values right now.

Each language, no matter the language specific slugs, are associated by Lang and raw route.

But do they then belong to different folders, or does the Page FrontMatter just declare the translation? I haven't really had need to use multi-language that much in Grav before, so my test-cases were always rather simple.


Demonstrate RunEngine integration using the "RE worker"

Build a model and views that work with the "RunEngine worker" in https://github.com/bluesky/bluesky-queueserver. Note that this will not involve the HTTP server. It will just launch a RE worker and/or (re)connect to an existing one.
This is something that @JulReinhardt is working on for her STXM application. It would be good to have a shared implementation here for others to import and build on or use as a reference of best practice.

On today's Pilot call, we planned to target two use cases for this initially:

@JulReinhardt's work with David Shapiro's Qt GUI
@prjemian's user's GUI

On today's Pilot call, we planned to target two use cases for this initially:

@JulReinhardt's work with David Shapiro's Qt GUI
@prjemian's user's GUI


Support DEF Used This Operating Cycle in Table A-1

Support DEF Used This Operating Cycle in Table A-1
DEF Used This Operating Cycle in Table A-1 is needed for 2024 MY engines

Add a category of 2 SPs to Table A-1 for Diesel Exhaust Fluid Used This Operating Cycle

SPN
Name
PGN
Broadcast or Upon Request?
Fail if SPN is Not Supported in DM24
Warn/info if SPN is Not Supported in DM24
Warn/info if More Than 1 SPN is Supported
Action if Two or More ECUs Respond
Action if SPN Provided by Non-OBD Module
Action if SPN Provided but Not Included in DM24
Warn if Value Implausible

12748 (24)
Aftertreatment Diesel Exhaust Fluid Used This Operating Cycle
Tbs
Tbs
At Least One
Yes
info
Fail
Fail
Warn
NA

NEW4 (24)
Aft. 1 Def. Doser 1, Diesel Exhaust Fluid Used This Operating Cycle
New
Tbs
At Least One
Info
Fail
Fail
Info
NA
NA

Add New SPs from SAE J1939DA for Test 6.1.26 and 6.2.17 plausibility checks.

SPs 5963 and 5964 define lifetime totals and not operating cycle totals and are not relevant.

This need was not included in the Sept 15, 2021 Table A-1
https://github.com/Equipment-and-Tool-Institute/j1939-84/issues/1065
https://github.com/Equipment-and-Tool-Institute/j1939-84/files/7171010/J1939-84-Table-A-1-MY24.15Sept2021.docx

Only one SP appears to be needed.
12748 (24) | DEF Used This Operating Cycle CI | 64488 | UR | Yes CI | N/A | N/A | Fail | Fail | Fail | N/A | N/A

J1939-84-Table-A-1-MY24-13May2022.docx
Closed in favor of #1094


Android Support

Hello,
Is there a supported version for Android use? I tryed dozer in Android but I have the following error:
 java.lang.IllegalArgumentException: http://apache.org/xml/features/validation/schema
 at org.apache.harmony.xml.parsers.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:86)
at org.dozer.loader.xml.XMLParserFactory.createDocumentBuilderFactory(XMLParserFactory.java:56)
at org.dozer.loader.xml.XMLParserFactory.createParser(XMLParserFactory.java:35)
at org.dozer.loader.xml.MappingStreamReader.<init>(MappingStreamReader.java:43)
at org.dozer.loader.xml.MappingFileReader.<init>(MappingFileReader.java:44)
at org.dozer.DozerBeanMapper.loadFromFiles(DozerBeanMapper.java:219)
at org.dozer.DozerBeanMapper.loadCustomMappings(DozerBeanMapper.java:209)
at org.dozer.DozerBeanMapper.initMappings(DozerBeanMapper.java:315)
at org.dozer.DozerBeanMapper.getMappingProcessor(DozerBeanMapper.java:192)
at org.dozer.DozerBeanMapper.map(DozerBeanMapper.java:120)

I think it's a XML configuration file problem.

Hi, am facing the same problem
Could you add Android support ?

Hi,
Unfortunatly not. I could do the mapping by hand because it was a small project but it can become difficult for bigger ones.
I think that it should not take too many time to write a little mapper yourself using reflexion.

@damien-raemy / @laoyur ; Android support is not a simple task. If someone wants to do the work, happy for PRs to be raised, but for now, closing issue.


Fix Label Description Typo in Field Docs

Change all occurrences of "An human" to "A human" in content/docs/fields

As a human, I can confirm this is more readable :)


stdlib: be more DLL friendly on Windows

What's in this pull request?

Resolved bug number: (SR-)

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

When the standard library is built dynamically on COFF targets, the public
interfaces must be decorated in order to generate a proper DLL which can be
confused by the dependent libraries.  When the exported interface is used, it
must be indirectly addressed.  This can be done manually in code or the MS
extension of __declspec(dllimport) may be used to indicate to the compiler
that this symbol be addressed indirectly.  This permits building more pieces of
the standard library dynamically on Windows.

@swift-ci please test

CC @gribozavr

@swift-ci please test

@swift-ci Please test Linux platform

@gribozavr post-holiday ping.

@gribozavr I even filed a SR, and referenced that in the FIXME.

@swift-ci Please test

Thank you, the PR LGTM.  Let's merge it when the CI is green.


[7238, 7239] - Adds pen to deploy workflow

Adds pen testing ENV to the deploy workflow
switches from OTP to DSI for sign-in

 New API ITHC Pre-requisites

probably need to add pen here too https://github.com/DFE-Digital/register-trainee-teachers/blob/main/.github/actions/deploy/action.yml#L128

 PEN Test env: Enable DSI


Art: Lisk Witch character ('Ann')

Description: Extremely weird and shy girl, some people think she might be mute but that’s not true. Doesn’t think much about her appearance and wears the same thing for years. She mostly has a single iconic design of some sort of old fashioned torn robe, with an ethereal fantasy nature to it.
Color: Green
Face

Body/clothes

The level of tattering on the robes doesn't matter, but we should make it flowing and flag it as VRM "hair". That might also need colliders.
Weapon
The scissors are important here because they are supposed to go on the back like wings.

I saw this and thought it was a good alt/work clothing (if we go with duals). I don't think we should make this first but it might help factor some things in:

Finally figured out what this style of dress/clothing is called - Mori Kei.
Was trying to figure that out for longer than I'd care to admit while looking for refs, the keyword may be useful later.

Awesome, thanks for finding that!

Yeah, it's such a freaking cool aesthetic, I was hyped when I found it.
Alright, uploading some work here; this is the bash I came up with for an initial shot at the witch concept.

Just want to confirm we're set on the above concept. I'm confident #1382 is nearing completion and I can start running this in parallel while changes need to be reviewed in that issue.

+1 on the greenlight request, I can do the lines and color flats for the posed character shot, as well as ortho's once it's locked in

Can we de-puff the outer jacket/get rid of it?
I think this is supposed to be a bit of a stealth character, and although she is fine to be fluffy and covered up, the jacket feels like it would be bad for stealth.
She should be somewhat graceful and flowing, rather than clogging the hallway :P.
The ribbons are a great idea but IMO should flow behind rather than getting in the way at the front.
The rest seems correct so far.

Can definitely de-puff or replace the outer jacket, should be easy. Same with the ribbons, I'll just move them both to behind. Will have a V2 posted soon

Here's a second pass at the Witch!

Slimmed up the overall silhouette, made it more 'arrowlike' so she will look stealthy/sleeker
Kept the ribbons, but moved to back and adjusted silhouettes of them
changed the jacket completely, went for something that feels more graceful and flowing, has a bit of JP influence too.

I think it works, we can start to model. 👍
The book interesting, very anachronistic. If someone would have a book it would be her. Frankly I think all of the wearables make sense.

I like the modern arrowlike part here too:

It's overall a great interpretation. 👏

Stylesheet for Ann, keeping consistent with other character sheets:

Modelling orthos are coming asap.
Also, we will probably need/want to make a sheet for the design of the book and bag that she is wearing; didn't do it right now because I'm not sure if the props are relevant enough to be high-priority work. Can circle back around on them and make model sheets when needed, though.
Didn't bother with the scissors since they are already done; just let me know if you want them included in this image and I can add them in pretty quickly.

Looks good to model.
I think the books could just be wearable like Scillia’s hat, but they do look good with the character.

Ann pureref: https://cdn.discordapp.com/attachments/641036402829819914/875787805014515722/ann.pur

Orthos done:

I have started the book and pack, but since they will be modelled separately as accessories anyway, I didn't include them in this sheet to keep things clean/readable. I also get the vibe that they are lower priority, so I'll move on to Hya first and then loop back as needed.
The foot armor is fairly high-density detail, depending on the art direction it could be simplified if needed.

I'll be moving onto this one next if we're happy with the above, since #1390 appears to be unconfirmed / not ready for modelling yet.

The foot armor is fairly high-density detail, depending on the art direction it could be simplified if needed.

The base meshes themselves will be low detail with material/tex work doing the heavy lifting on any potential details 👍

Do you need/want the orthos for the book and pack, or do you want to just design as you go? I have orthos started, but got shifted to other projects in the meantime.
If you do end up needing them, I think it'd just take an hour or so to finish them off, so I could fit them in this week or at the beginning of next; whatever's easiest for you.

Hair's temp for now - started high res sculpt on top of this for detail as well, but it's blocked out and fit

Didn't post progress - wrestled with this outfit- high poly sculpt for details, UVs done, mat work first pass more or less done:

Head is pretty much placeholder, but the hair looks pretty on similar to what we're looking for

Color only orthos

With scissor weapon:

I love the eyes, it's looking really good!
Needs a color pass/some tweaks the clothes and hair color. Let's do with dark/blue hue on the hair. Red is dominant but it's a taken color (June) so we should make the theme green. The robes I interpret as more silky/victorian, rather than celtic/warm in winter.

Also, it's mostly an artifact of the colors, but the leathery texture of the hands makes it look a little bit unnerving to me, like very huge/infected hands :P

It might be better to just have the sleeves be uniform and instead put details into the silk pattern.

By the way, I couldn't find this model in the GDrive. I assumed it would have been in New Concepts.

It's not fully rigged / ready to pose yet, didn't want to cause confusion by uploading it unfinished.

Made a quick rigging pass (will need to be properly done, these kinds of outfits take a bit of work to get them done cleanly), as well as a quick file cleanup. It should be enough to pose in a scene, but it's not game-ready.

Redone material pass:

Also a much more green leaning one

@GaladWarder would love if you could post your thoughts regarding color etc here since i'm pretty sieve-brained at the moment.
I'll take another pass at colors / roughness tomorrow!

More color passes based on the idea of desaturating the main area of the outfit. Tried a different material pattern as well.

Styled up the hair a little to match the concept a bit more, but make it a little less uniform. Rigged, very few bones in it as well.

Sick work!
The left ones look the cleanest to me. I like the bottom left the best, I just don't know if when posed it would look like massive hands instead of sleeves. Probably not.

It's probably also worth changing the hue of the scarf (especially the tail) to make it more distinct from the skirt.
The hair is very nice.
Re: the eyes, would it read cleaner with some sort of line or pattern work? The color is nice but it feels just slightly flat. Don't read too much into these, I'm sure something else would look better:

For scarf, blue/blackish or even more violet scarf would work. IMO this is pretty good, but could be more vibrant with a more violet, which tends to go well with greens.

Gonna do a push on face / body tex tomorrow, these were just temporary 👍 It'll be a big difference on the eyes especially

Updated colors! Left is diffuse only, right is with studio hdri

Updated the skin textures and done eyes. Hair texture is a little different as it was a bit flat before, just darkened the roots up slightly.

Love the updated skin textures and eyes! We'll like have to do more debugging for VRM, but otherwise this looks done to me 💯.

Heads up, for this one I think it might draw better without the belt. There's nothing wrong with it, especially in 3d, but I'm not sure its presence strengthens the shape language when converted to 2d; it might just be an extra thing that is hard to draw from different angles.

vs

Removed the belt and fixed up textures. This was unexpectedly a PITA to rebake and fix.

This looks amazing, the mats are great!
If the bake procedure is down, can we try with the belt enabled? I think my hunch was wrong, and in 2D art tests the belt turned out to work well, with a slightly tweaked design (thin + different amulet).

Should be able to fit it in without issue.  I'll keep it separate from the rest of the outfit to avoid any problems. I'll assume that the cracked / altas-ish design is what we're going for in terms of the buckle?

I think it's supposed to be weird lisk fangs, but the zigzags tie to the bitemark. Just vaguely that shape.

Updated on drive, added in new belt.

The modeling on that medallion is really pretty, like a perfect match to the art. 🤯
I thought the belt could be a thin plane mesh but this looks great.
I don’t think there is anything left on the design side, just the technical work of visemes/rigging/vrm.

v1 VRM is in the Drive!
https://drive.google.com/drive/folders/1mP5Y3mqxJrpka8tiy_yyl6sf-_0qQDrf


This plugin slows down Homebridge

Describe The Bug:
Plugin slows down Homebridge, moved it to an own Homebridge instance, still getting the following error messages:
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Active' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Target Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Relative Humidity Humidifier Threshold' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info.
To Reproduce:
Install it, hook it up with your Levoit account, connect with your humidifier and simply wait for the errors to emerge.
Expected behavior:
No slow-downs, no error messages
Logs:
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Active' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Target Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Relative Humidity Humidifier Threshold' was slow to respond! See https://git.io/JtMGR for more info.
[12/6/2021, 12:19:36 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info.

Plugin Config:
        {
            "name": "Levoit Humidifiers",
            "email": "mymailaddress",
            "password": "mypassword",
            "platform": "LevoitHumidifiers"
        }

Screenshots:
all said above
Environment:

Plugin Version:
Homebridge Version: 1.3.8
Node.js Version: v16.13.1
NPM Version: <v8.1.2
Operating System: Docker on Synology, but error the same in Ubuntu VM and current Raspbian

So far, I'm not experiencing this issue in my Homebridge logs (things seem fine!) so I'm wondering what the difference is. I'm running a slightly older version of Node, but I wouldn't think that would cause warnings like you're seeing. I only have one device (a Classic 300S), for what it's worth.

Plugin version: 1.2.5
Homebridge version: 1.3.8
Node.js version: v14.18.1
NPM version: 6.14.15
Operating system: Ubuntu 20.04.3 LTS (on a Raspberry Pi)

[12/8/2021, 12:00:12 AM] [Levoit Humidifiers] Discovering devices...
[12/8/2021, 12:00:14 AM] [Levoit Humidifiers] Adding new accessory: Humidifier

I'm also not seeing this.

Usually i have all my homebridge stuff running on a Raspi3b, but i have now moved the Levoit plugin to a separate homebridge in a docker container on my Synology (kinda like a "step"-child bridge :D). My main homebridge is running fine now and the dedicated levoit homebridge still reports a buttload of these errors but everything is running well. So i can absolutely live with that and i am eternally grateful for the plugin, i just thought i mention it.

Its still producing this errors, now on a complete standalone homebridge installation:
[12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Active' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Target Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Relative Humidity Humidifier Threshold' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Active' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Target Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Relative Humidity Humidifier Threshold' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:01:43 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 4:21:51 PM] [TadoPlatform] Hornauer Straße Schlafzimmer Heater: State: 3 [12/14/2021, 8:47:48 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Active' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 8:47:48 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 8:47:48 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Target Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 8:47:48 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 8:47:48 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Relative Humidity Humidifier Threshold' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 8:47:48 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 9:01:25 PM] [TadoPlatform] Hornauer Straße Badezimmer Heater: State: 0 [12/14/2021, 9:32:18 PM] [TadoPlatform] Hornauer Straße Badezimmer Heater: State: 3 [12/14/2021, 9:32:18 PM] [TadoPlatform] Hornauer Straße Badezimmer Heater: Temperature: 19.5 [12/14/2021, 10:00:06 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Active' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 10:00:06 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 10:00:06 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Target Humidifier-Dehumidifier State' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 10:00:06 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 10:00:06 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Relative Humidity Humidifier Threshold' was slow to respond! See https://git.io/JtMGR for more info. [12/14/2021, 10:00:06 PM] [homebridge-levoit-humidifiers] This plugin slows down Homebridge. The read handler for the characteristic 'Current Relative Humidity' was slow to respond! See https://git.io/JtMGR for more info.

@spoer78 what does the wifi signal strength look like at the Humidifier? You can check it from the VeSync app > Humidifier > Settings

one has -40 dBm and the other -59 dBm

What's your internet speed and latency? My thought is that the calls to VeSync are taking a while to get back to homebridge and that's why you're seeing these errors.
Without seeing this myself, I'm not sure how to troubleshoot to be honest. I'd say if you're not seeing any performance issues, maybe it's best to ignore the logs.

280mbit down, 45mbit up.
I am absolutely a master in ignoring stuff, so this should not be a problem at all :)

I'll close this, but if we get more reports of it, we can re-open it.


Kitchen tests with cookbooks using vault_secret are non-trivial

It would be nice to be able to do kitchen testing on cookbooks using vault_secret.  Should we support a databag fallback (similar to chef-vault) for kitchen testing?

n.b. I'm happy to take on this work, but wanted to at least test the waters for an approach that would be accepted/useful

Also, I apologize for the edits.. I should drink more coffee before opening issues ☕

I've been throwing around the idea of exposing a stub property which would be a Hash that would be returned for the secret's data (an early exit). It would have to exposed as an attribute though to make it easy to use. While this probably wouldn't return the correct values, and may cause issues during the run, in some cases it would suffice.
A better solution would be for everyone to write their own wrapper for Test Kitchen so that retrieve the vault_secret resource can go out & get the correct Vault values. But writing something generic that would suit everyone would be tough, as it would require us to make certain assumptions about the Vault setup.
I welcome any PRs :)

This is what we do at work.
    node.run_state[destination] = FakeData.new(node['addthis-vault-client']['fake'][destination])
    updated_by_last_action(true)
    return
  end

Then I set this in test kitchen:
      my-vault-client:
        fake:
          'secret/mycoolapp/mysql':
            password: blahblah

Closing due to inactivity.
If this is still an issue please reopen or open another issue. Alternatively drop by the #sous-chefs channel on the Chef Community Slack and we'll be happy to help!
Thanks,
Sous-Chefs


Update README.md

Related Issue

#67

Proposed Changes

Change 1
Chnage 2

Additional Info

Any additional information or context

Checklist

[ ] ✅ My code follows the code style of this project.
[ ] 📝 My change requires a change to the documentation.
[ ] 🎀 I have updated the documentation accordingly.
[x] 👀 I have read the CONTRIBUTING document.
[ ] ✨ I have added tests to cover my changes.
[x] 🚩 All new and existing tests passed.
[x] 🌟 ed the repo

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Output Screenshots

Screenshot #1
Screenshot #2

Title goes here
Title goes here

Image goes here
Image goes here

@all-contributors please add @Lakhankumawat  code ,

@all-contributors please add @Lakhankumawat  code ,

@all-contributors please add @Lakhankumawat  code,

@all-contributors please add @Lakhankumawat  code, projectManagement ,review


[Traffic Manager] Adding new Realtime User Metrics (RUM) preview feature.

[Traffic Manager] Adding new Realtime User Metrics (RUM) preview feature.
This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[x] If applicable, the PR references the bug/issue that it fixes.
[x] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[x] My spec meets the review criteria:

[x] The spec conforms to the Swagger 2.0 specification.
[x] The spec follows the guidelines described in the Swagger checklist document.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

@allencal,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@allencal - Looks good after incorporating the changes we discussed over IM. I think this key is not a secret and so should be fine to be returned in the response of GET/PUT. Please correct me if I am wrong on this. ARM signs off assuming the key is not a secret.

@allencal
Please check the warning here: https://travis-ci.org/Azure/azure-rest-api-specs/jobs/269723978#L677 This seems simple enough to be fixed. Can you please fix it?
Also, the errors at https://travis-ci.org/Azure/azure-rest-api-specs/jobs/269723979 and https://travis-ci.org/Azure/azure-rest-api-specs/jobs/269723980 must be fixed for approval.
Please fix them and update the PR

@allencal The errors are still not fixed. https://travis-ci.org/Azure/azure-rest-api-specs/jobs/269808463

Fixed, new commit created.
Thanks,
Allen
From: Sarangan Rajamanickam<EMAIL_ADDRESS>Sent: Wednesday, August 30, 2017 4:01 PM
To: Azure/azure-rest-api-specs<EMAIL_ADDRESS>Cc: Allen Callaway<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Azure/azure-rest-api-specs] [Traffic Manager] Adding new Realtime User Metrics (RUM) preview feature. (#1599)
@allencalhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fallencal&data=02|01|allencal%40microsoft.com|34b8e04d5ca548cf80f808d4effaf503|72f988bf86f141af91ab2d7cd011db47|1|0|636397308509662630&sdata=MpkIx7Qrhl553ly1KUPFGctRuMASd1J5YDH%2BrBWoMoo%3D&reserved=0 The errors are still not fixed. https://travis-ci.org/Azure/azure-rest-api-specs/jobs/269808463https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-ci.org%2FAzure%2Fazure-rest-api-specs%2Fjobs%2F269808463&data=02|01|allencal%40microsoft.com|34b8e04d5ca548cf80f808d4effaf503|72f988bf86f141af91ab2d7cd011db47|1|0|636397308509662630&sdata=RhQNIc6NQzN%2BfM5zp9gOZ3GY7RnG0WNUleixR2hrizY%3D&reserved=0
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-rest-api-specs%2Fpull%2F1599%23issuecomment-326142715&data=02|01|allencal%40microsoft.com|34b8e04d5ca548cf80f808d4effaf503|72f988bf86f141af91ab2d7cd011db47|1|0|636397308509662630&sdata=fOqsfrtNaHQZMf7v2SncjVb4P6NuqwvZgyynrtPqumQ%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAd9wNff6wOdmoQh3Imc08WDy2SGoF45qks5sdemggaJpZM4PFQuV&data=02|01|allencal%40microsoft.com|34b8e04d5ca548cf80f808d4effaf503|72f988bf86f141af91ab2d7cd011db47|1|0|636397308509662630&sdata=zlGrYy3qYJlKj486LJgr5Tu4D3nUnbxAqaMNeVAGDhs%3D&reserved=0.

Debugging what the incompatible error is.  Will update the PR soon

There are 2 errors. One is related to Ruby. This is a known issue. Also, one related to python. I am suspecting this is due to latest changes in autorest and not related to swagger. I am approving this PR for merge and unblock the user

No modification for AutorestCI/azure-sdk-for-node


Ctrl+C doesn't work on Windows 10 using Miniconda

process hangs forever

Does windows even implement Ctrl+c ?
If so feel to PR a fix
But I'd rather recommend using Linux, possibly through wsl


Fix/style glitch

This patch fixes

missing style from blue buttons
missing text from all buttons
intellisense showing an empty list

Notes:
Let me know if the way I fixed the change from this.children to this.prop.children is OK. I could not figure out how the children property was assigned formerly (I assumed through Desmos code from stepping through the code), so I just took the shotcut and added children as a component property of the appropriate components as type any.
I have tested only on Chrome. I will test later on Firefox.

From a quick test on Firefox seems everything is fine there too.

Oh one more thing I forgot to mention. When fixing the classes, I tried to regenerate the file _overrides.less because it also contained some dcg-btn-primary, but I could not so against the warning there about not editing manually I just edited manually.

Manual edit is fine in this case, though I'll likely run an automated generation afterwards to refresh the rest of the styles.


adds cookie based ssr persistant themes

For
#1058
#1057

The new /system/theme page. will be used for designing and testing themes.


Automatic creation of RDS backup instance should be optional

When running xtbackup against an RDS instance, it should be possible to tell xtbackup not to fire up another RDS instance. (It isn't clear from existing documentation if this is possible - and a quick glance of the code suggests this isn't the case).

xtbackup contains two mysql drivers:

mysql - connects to MySQL server and creates backup for it
mysqlAmazonRds - does exactly the same as mysql, but uses RDS snapshots to create consistent in-time backups

so if you don't want to create temporary RDS instance from snapshot you should simply use the mysql driver.


Fix memory leak in GltfReader.cpp

pImage isn't being freed after being copied. This fixes that leak: We're running into out of memory crashes without it :grimacing:

Oh wow, thanks for noticing this one!

This definitely deserves a mention in CHANGES.md. Can someone please add it? Also it would be slightly better to use stbi_image_free instead of free (even though they're equivalent).

whoops sorry for miss this, I will update it right away


Further development

It seems as if this module is abandoned. I understand that developers move on to other projects. I also abandoned projects as my interests changed.
This module has a user base, as you can see in the pull requests. It's sad if they wouldn't get merged.
@bbecquet: Do you think you could move the project to the Leaflet organization and also grant them rights to the npm package? Then others could take over further development  ...
Thanks for your module! It's very useful!

I would recommend to anyone blocked by the lack of progress on this module to look at an alternative. I had a very easy time implementing 'leaflet-ant-path' and the corresponding 'react-leaflet-ant-path'.  It is updated for latest leaflet and accomplishes the same affect for me that this module (implying motion/direction).  I appreciate the year or two I was able to use this module, but this doesn't play nicely with latest leaflet and definitely doesn't play nicely with react-leaflet.
https://rubenspgcavalcante.github.io/leaflet-ant-path/

@bbecquet Pleeease hand over this project to someone interested!


Unable to parse file Assets/Mirror/Runtime/Transport/Telepathy/Telepathy.dll.meta: [Parser Failure at line 30: Expect ':' between key and value within mapping]

After upgrading to last asset store version 16.1.1 I got this error (also easch time I clean the library folder) :
Unable to parse file Assets/Mirror/Runtime/Transport/Telepathy/Telepathy.dll.meta: [Parser Failure at line 30: Expect ':' between key and value within mapping]
0x00007FF633309E8C (Unity) StackWalker::GetCurrentCallstack
0x00007FF63330DE41 (Unity) StackWalker::ShowCallstack
0x00007FF631A06225 (Unity) GetStacktrace
0x00007FF633F8947E (Unity) DebugStringToFile
0x00007FF6319DBF2B (Unity) YAMLRead::InitParser
0x00007FF6319D8194 (Unity) YAMLRead::YAMLRead
0x00007FF6310DD563 (Unity) AssetImporter::ReadImportSettings
0x00007FF6310D5517 (Unity) AssetImporter::ApplyImportSettings
0x00007FF631BF5955 (Unity) FindOrProduceImporter
0x00007FF631BFCA0D (Unity) ImportToObjects
0x00007FF631BFC4EE (Unity) ImportAsset
0x00007FF631BFC18B (Unity) AssetImportWorker::Import
0x00007FF631BE2097 (Unity) AssetImportManager::ImportInProcess
0x00007FF631BE12AD (Unity) AssetImportManager::Import
0x00007FF631B7BD28 (Unity) ImportAndPostprocessOutOfDateAssets
0x00007FF631B83B6B (Unity) RefreshInternalV2
0x00007FF631B867E6 (Unity) StopAssetImportingV2
0x00007FF631B7DC16 (Unity) InitialScriptRefreshV2
0x00007FF6310B6192 (Unity) Application::InitializeProject
0x00007FF631A35904 (Unity) WinMain
0x00007FF634A27792 (Unity) __scrt_common_main_seh
0x00007FFC7A587BD4 (KERNEL32) BaseThreadInitThunk
0x00007FFC7C3ECE51 (ntdll) RtlUserThreadStart

use latest telepathy, it doesnt come in a dll anymore


Add registration

Depends on #27

[ ] this should be optional and possible to disable using an env,
[ ] remember to send confirmation emails after registration,
[ ] make email confirmation requirement optional using env,
[ ] figure out how to localise the email message.

I think the simplest thing to do would be to just move the email sending part to the gateway. That way we wouldn't need to mess around with passing weird urls, localisation settings and so on...


Fix spelling

defeault -> default

It's a doubling. #161 covers this.

This has been solved in another PR, but thanks so much for your input!


CPP: Improvements to LeapYear.qll

Several fixes to reduce false positives and duplicate results in the new LeapYear queries.  I've also moved some tests, and autoformatted a library file - so this pull request will be easiest to review one commit at a time.

Differences: https://jenkins.internal.semmle.com/job/Changes/job/CPP-Differences/395/

(differences LGTM, though it's fairly likely some of the remaining results are also false positives for different reasons)


One test fails when I run make check

http://sprunge.us/QHRU
That's the full paste, I and my friend use the CRUX Linux distro, the paste is the output of compiling the libuv package I made real quick. (http://sprunge.us/daGM in case you're interested.)
CRUX uses glibc v2.19 ATM (in case that matters).
From the paste we can get the following:
[%  71|+ 178|-   0|T   0|S   0]: spawn_setuid_fails
`spawn_setuid_fails` failed: exit code 6
Output from process `spawn_setuid_fails`:
Assertion failed in test/test-spawn.c on line 1092: r == UV_EPERM
=============================================================

[%  71|+ 178|-   1|T   0|S   0]: spawn_setgid_fails
`spawn_setgid_fails` failed: exit code 6
Output from process `spawn_setgid_fails`:
Assertion failed in test/test-spawn.c on line 1123: r == UV_EPERM

Is this a problem? Is this test not implemented yet? For the record I'm compiling libuv as a dependency for NeoVim, which I was able to successfully compile and I haven't run across any problems with it, yet.
If you need any more information feel free to ask. :)
Also please feel free to change the title to something that is more descriptive. I didn't make it very descriptive because I'm not sure what to name it. :/

I am the other person, I tested this in docker so i had a clean environment. https://registry.hub.docker.com/u/romster/crux-base/

I think this a false positive. What that test does is setuid to root and then try to execute a  subprocess. What user are you running your tests with?

@saghul I'm running it with a normal user, not root. The user does have sudo access though.
I imagine it's the same with a friend but from his log it seems like he's running into an error way earlier.

Hum. No idea... can you print the value or 'r'?

@saghul How do you mean? sorry

The 2 failing tests have an assert checking if "r" is UV_EPERM, can you print it before the assert so we see what result you got?
Assertion failed in test/test-spawn.c on line 1092: r == UV_EPERM
Assertion failed in test/test-spawn.c on line 1123: r == UV_EPERM

Actually I just did:
git clone https://github.com/libuv/libuv/
cd libuv/
sh autogen.sh
./configure
make
make check

And all the tests passed. Which leads me to believe that the error happens because of this line in my Pkgfile:
	./configure --prefix=/usr \
		--libexecdir=/usr/lib \
		--mandir=/usr/man

Are some of those lines redundant?

Modified Pkgfile to only have a plain ./configure and see if the tests pass...

Ah interesting. Running it with just a plain ./configure makes 4 tests fail.
However, because of good practices when compiling the package using pkgmk I usually use fakeroot pkgmk, again because of good practices. That causes errors.
If I run it without fakeroot the tests pass without any problems.
Perhaps libuv has a problem with compiling as root? Or it could be because the test acts with root access even though fakeroot doesn't give it any access, it just makes it think it's root.
Worth checking out I guess...

I ran a couple other tests with and without fakeroot and yes it seems what's causing the problem is fakeroot.
Still, would you like the values of  r?

Perhaps libuv has a problem with compiling as root? Or it could be because the test acts with root access even though fakeroot doesn't give it any access, it just makes it think it's root.
Worth checking out I guess...

It's probably this. Doing setuid should fail in that test, but fakeroot probably makes it succeed, as you said.

Should I close this? My friend gets different errors, BTW.


remove arm/v7 platforms

What?
remove attempt to add arm/v7 platform
Why?
Causes build to fail
Testing/Proof
Explain, when applicable, how were these changes tested
Open Source Reminder
Please remember that this repository is open source. Be careful to avoid including any sensitive information in your changes or your comments. If you need to discuss something sensitive, please do so through a private channel.

coverage: 100.0%. remained the same when pulling a64b8df7f3498c4ce13aae3eee2e4551ef6417b7 on remove-armv7-platform into c561a90172ef017eb0b9a401d962c171e563e387 on main.


How to Get Aligned Face？

After landmark is obtained, how to get aligned faces suitable for face recognition?

Hi,
This likely depends on the face recognition method and what type of normalization it requires.
The most common method is to transform the image with an affine or similarity transform that will align the landmarks with some template.
Marek

Thank you for your reply. How can I use meanFaceShape. npz for affine transformation?

If you want to align the image you have with the mean face shape you can do it using the CropResizeRotate in the ImageServer.py file. The shape you want to align to will have to be passed as initShape.

Hi,你有找到较好的人脸校正方法吗？ @bleakie


DP-1230 Configurable eager completion

NB: this is synchronous with https://github.com/JetBrains/datapad/pull/32, please merge both or neither.
Always eager completion fails a test from jetpad-experimental which I missed. This request makes eager/non-eager completion a subject of configuration so that old (non-eager) behavior is the default.

Looks good to me.

As I see here, previously BaseProjectionalSynchronizer supplied 'true' for eager completion and now it supplies 'false' by default. I need some comments on this.
And, I'd like to mark the default value for myEagerCompletion literally, I mean to set 'false' value to field, not rely on java defaults.

@katepol 1) discussed, explained; 2) okay.


Turn on/off action is no longer supported

Hi @Fleker , I've been using the python sdk implementation on a RPi, but suddenly, it has stopped to work with turn on/off action (turning LEDs on RPi GPIO and printing on console).
Has the implementation changed? The last time that I teste, in last december, my setup was ok. Since last week I'm trying to get this working again, and no success. Every time that I say: turn on or turn off  the SDK says that this command it's not supported, even declaring the device with the seven basic traits.
INFO:root:Transcript of user request: "hi Google turn on". INFO:root:Playing assistant response. INFO:root:Finished playing assistant response. Press Enter to send a new request... INFO:root:Recording audio request. INFO:root:Transcript of user request: "ok". INFO:root:Transcript of user request: "OK Google". INFO:root:Transcript of user request: "Okay Goo". INFO:root:Transcript of user request: "OK Google". INFO:root:Transcript of user request: "OK Google". INFO:root:Transcript of user request: "OK Google  turn". INFO:root:Transcript of user request: "OK Google  turn the". INFO:root:Transcript of user request: "OK Google  turn the light". INFO:root:Transcript of user request: "OK Google  turn the lights". INFO:root:Transcript of user request: "OK Google turn  the lights on". INFO:root:Transcript of user request: "OK Google turn the  lights on". INFO:root:End of audio request detected. INFO:root:Stopping recording. INFO:root:Transcript of user request: "OK Google turn the lights on". INFO:root:Playing assistant response. INFO:root:Finished playing assistant response. Press Enter to send a new request... INFO:root:Recording audio request. INFO:root:Transcript of user request: "hey". INFO:root:Transcript of user request: "hey goo". INFO:root:Transcript of user request: "hey Google". INFO:root:Transcript of user request: "hey Google turn". INFO:root:Transcript of user request: "hey Google turn off". INFO:root:Transcript of user request: "hey  Google turn off". INFO:root:Transcript of user request: "hey Google  turn off". INFO:root:Transcript of user request: "hey Google turn  off". INFO:root:Transcript of user request: "hey Google turn off". INFO:root:End of audio request detected. INFO:root:Stopping recording. INFO:root:Transcript of user request: "hey Google turn off". INFO:root:Playing assistant response.

@eron93br  here i'm able to activate an external device with turn on/off command. may be the problem is  yours account

anybody with the same issue using the python sdk on RPi?

Same problem here with RPi 4. I follow this instruction. But "Turn on/off" command doesn't work. I get the replay "Sorry, power control is not yet supported".

@Fleker  is this related to a new grpc version?

Is it working for you already?
I have another problem:
(env) pi@raspberrypi:~/assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc $ python pushtotalk.py Traceback (most recent call last):   File "pushtotalk.py", line 423, in <module>     device_handler = device_helpers.DeviceRequestHandler(device_id) NameError: name 'device_id' is not defined
but when I add the device_id = 'id' line to pushtotalk.py, no error occurs, but nothing else happens.
Can someone help me?

Same problem here with RPi 4. I follow this instruction. But "Turn on/off" command doesn't work. I get the replay "Sorry, power control is not yet supported".

I have the same issue. When i get to this step and when i say "Turn on", google assistant replies with "Sorry, power control is not yet supported".
my device is a raspberry pi 3 and it was setup according to the instructions (as of yesterday) from,
https://developers.google.com/assistant/sdk/guides/service/python/embed/install-sample
below is what I see in my terminal window,

I have the on/ off trait added to the model as instructed in the step before this ("Register Traits").
The project ID, model ID and the device ID are correct.

@Fleker - can you please help me with this?
Thank you!

@Fleker
Ok, i figured this out.
Just skip this step. Looks like there's something going on with the Turn On/ off command. I moved to Register custom traits, deployed the new action package and added a new handler to handle the custom trait. Everything seems to work fine now.

Hi @Fleker;
Same problem around here.
From https://console.actions.google.com/ register my project, then I have;
projectid, project name, model id, device id (obtained by executing sample)
It seems as I read out there that not only do you have to register the model, but also the device, with a sentence similar to this ..
googlesamples-assistant-devicetool --project-id uplifted-name -.... register-device --client-type SERVICE --model uplifted-name-28 --- aiyourself-productname --device b423764-b44747-nv7737. .....
but I keep getting the same message from the wizard;
sorry, power control is not yet supported
Please, is this very frustrating, can you help us?
Thank you

Hi kishanW;
How are you? I'm not a technician, is it possible that you can guide me on how you made it work for you?
What does it consist of?...
I moved to Register custom traits, deployed the new action package and added a new handler to handle the custom trait. Everything seems to work fine now.
Of all the above, what is necessary to do from the actions.google and what from pushtalk.py?
Can you help me?
Thank you very much!
Max.

@maximiliano2018 - sorry, I just saw the message. Basically, this is what I did,

Make the necessary updates to the action.json file and push it out using the script

used the command below
./gactions update --action_package actions.json --project project_id

open up pushtotalk.py file and added a new handler method to handle the new incoming device execution command

this new handler method name MUST match the name that is mentioned in the actions.json file.
the example provided is using the command name com.example.commands.BlinkLight. If you open up pushtotalk.py, you should see a handler with this name.
follow the same pattern and create your own handler method.

after this, i have my custom handler executes my code.

log the incoming message
execute another piece of code

Hi kishanW;
Excellent, I will follow these recommendations and return to the post to share the result.
Thank you very much for taking the time to answer me.
Greetings!
Max

@kishanW Hello, can you tell me where is the action.json file???

@kishanW Hello, can you tell me where is the action.json file??? Thanks!

@Tatuck I'm sorry, I just saw your comment. This is what i followed to create and then upload the actions.json file.
Good luck!

@kishanW Hello, can you tell me where is the action.json file??? Thanks!

@Tatuck I'm sorry, I just saw your comment. This is what i followed to create and then upload the actions.json file.
Good luck!

So I have to create a actions.json to make it possible to for example, saying: turn on, and it should print something in console? Thanks

@kishanW Hello, can you tell me where is the action.json file??? Thanks!

@Tatuck I'm sorry, I just saw your comment. This is what i followed to create and then upload the actions.json file.
Good luck!

So I have to create a actions.json to make it possible to for example, saying: turn on, and it should print something in console? Thanks

Whoops, I forgot to give you the url. This guides you thru creating the actions.json and updating the python handler

https://developers.google.com/assistant/sdk/guides/service/python/extend/custom-actions

@Tatuck - did you get it to work?


Rename fill_missing_bounds() to add_missing_bounds()

Description

Closes #156
Update coords/coords refs to axis/axes in bounds.py

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] My changes generate no new warnings
[ ] Any dependent changes have been merged and published in downstream modules

If applicable:

[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass with my changes (locally and CI/CD build)
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have noted that this is a breaking change for a major release (fix or feature that would cause existing functionality to not work as expected)

Codecov Report

Merging #157 (932188e) into main (0ced64d) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main      #157   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            7         7
  Lines          346       346
=========================================
  Hits           346       346

Impacted Files
Coverage Δ

xcdat/bounds.py
100.00% <100.00%> (ø)

xcdat/dataset.py
100.00% <100.00%> (ø)

xcdat/xcdat.py
100.00% <100.00%> (ø)

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 0ced64d...932188e. Read the comment docs.


Missing proto files from grpc and proto modules

After being split out from google-cloud-java, the maven config to include proto files as resources in jars was lots.
I've opened a PR https://github.com/googleapis/java-shared-config/pull/21 to add the new shared config, once that is merged and released we can bump here and be fixed.

/cc @chingor13

Great spot, thanks!

This should be fixed with the shared-config updates.


Roll back the anti-bridge.

CC: https://github.com/mybearworld/roarer/issues/4#issue-2370952259

I do not see this feature as needless nor arbitrary, as the Discord bridge is used often and is thereby actively stopping Meower from improving — as an example of this, it's often used for its post searching mechanism, instead of Meower's built in mechanism being used and improved.
Additionally, Roarer does not do anything that could not realistically be done by a human to achieve this — it simply automates an action that any user could do by hand.

If people want to use Discord, they should use Discord then.  The Discord bridge is an awful experience anyways. 😕.
P.D.: Your own ToS says it! "Nobody likes lawsuits"!

Tnix is modifying bridge to stop this roarer bug


Support for Paper servers.

Support for Paper servers allowing you to edit Inventory and Enderchest.

Yes, I also really need a plugin version of this mods, which will make item editing easier


Repo sync for protected CLA branch

The pull request is created from main637759011394058334 to main to fix git push error for protected CLA branch

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


What determines the username when using exec sh

Maybe not the right place to ask but I'm pulling my hair out on this and hope you can help me with it.
On my main desktop I'm using the wodby/drupal-php:7.0 image and when calling docker-compose exec php sh I'll get into the container as root. From what I read everywhere, this is supposed to be the default.
However, on two other hosts with the same setup (?), when executing shell into the same container, I always become the www-data user instead of root.
What drives that decision? Is it configured in the image, in the container, or is it some other configuration?

Default user has been switched to www-data in https://github.com/wodby/php/releases/tag/3.0.0.
So

wodby/drupal-php <= 3.x versions, default user root
wodby/drupal-php >= 3.x versions, default user www-data

Isn't that the setting for the processes like php-fpm which get launched during build? I'm looking for the user account which is used when connecting to the container with exec sh. In fact, I could do it manually with docker-compose exec --user root php sh but I was wondering where docker gets the default from. Is that really from this change? And if so, is there a way I can overwrite that locally?

I'd like to know this too


Optimizing vectorized distances

Hi! I’m Jakub, @lilyminium’s partner. She suggested that I look at your implementation of vectorized distances and see if I can improve it.
Scalar baseline
I used your scalar distance code as a baseline:
void calculate_distances1(
    const float* coords1,
    const float* coords2,
    const float* box,
    float* out,
    size_t n
) {
    for (size_t i = 0; i < n; ++i) {
        float dist = 0.0;
        for (size_t j = 0; j < 3; ++j) {
            float r = coords1[3 * i + j] - coords2[3 * i + j];
            float b = box[j];
            float adj = roundf(r / b);
            r -= adj * b;
            dist += r * r;
        }
        out[i] = sqrtf(dist);
    }
}

10 million iterations on n = 4096 took 9m 38.5s on my machine.
Looking at the disassembly, I noticed that Clang attempted to auto-vectorize the loop:
...
vmovups (%r12,%r15), %ymm0
vmovups 32(%r12,%r15), %ymm1
vmovups 64(%r12,%r15), %ymm2
vsubps  64(%r13,%r15), %ymm2, %ymm2
vmovaps %ymm2, 64(%rsp)         ## 32-byte Spill
vsubps  32(%r13,%r15), %ymm1, %ymm1
vmovaps %ymm1, 192(%rsp)        ## 32-byte Spill
vsubps  (%r13,%r15), %ymm0, %ymm0
vmovaps %ymm0, 384(%rsp)        ## 32-byte Spill
vblendps    $146, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]
...

With auto-vectorization turned off, the loop took 11m 26.9s instead.
Still, Clang’s vectorization is not very good. Firstly, it spends a lot of time swizzling data around the vectors. Secondly, Clang is unable to vectorize roundf so it makes multiple function calls at every iteration:
...
callq   _roundf
vmovaps 128(%rsp), %xmm1        ## 16-byte Reload
vinsertps   $16, %xmm0, %xmm1, %xmm0 ## xmm0 = xmm1[0],xmm0[0],xmm1[2,3]
vmovaps %xmm0, 128(%rsp)        ## 16-byte Spill
vpermilpd   $1, (%rsp), %xmm0 ## 16-byte Folded Reload
                                    ## xmm0 = mem[1,0]
callq   _roundf
vmovaps 128(%rsp), %xmm1        ## 16-byte Reload
vinsertps   $32, %xmm0, %xmm1, %xmm0 ## xmm0 = xmm1[0,1],xmm0[0],xmm1[3]
vmovaps %xmm0, 128(%rsp)        ## 16-byte Spill
vpermilps   $231, (%rsp), %xmm0 ## 16-byte Folded Reload
                                    ## xmm0 = mem[3,1,2,3]
callq   _roundf
...

nearbyintf
Clang’s inability to vectorize roundf is a feature, not a bug. roundf, by the standard, always rounds away from zero, whereas the vroundps instruction rounds to even. A compiler will only auto-vectorize when it can guarantee that it won’t change the result.
We can change roundf to nearbyintf:
float dist = 0.0f;
for (size_t j = 0; j < 3; ++j) {
    float r = coords1[3 * i + j] - coords2[3 * i + j];
    float b = box[j];
    float adj = nearbyintf(r / b);
    r -= adj * b;
    dist += r * r;
}
out[i] = sqrtf(dist);

This lets Clang inline and vectorize:
...
vsubps  %ymm13, %ymm10, %ymm10
vmulps  %ymm10, %ymm10, %ymm10
vroundps    $12, %ymm12, %ymm12
vaddps  %ymm5, %ymm11, %ymm11
vmulps  %ymm2, %ymm12, %ymm12
...

This loop takes 36.4s, a 16× speedup!
Fused multiply-add
We can do better still. AVX2 has a fused multiply-add (FMA) instruction which turns expressions of the form a + b × c into a single step. This is roughly twice as fast as two separate operations. The result is also more accurate, since we’re rounding once instead of twice. Unfortunately, more accurate implies different, so the optimizer can’t use FMA without our permission. math.h provides a fma function that we can use:
for (size_t i = 0; i < n; ++i) {
    float dist;
    for (size_t j = 0; j < 3; ++j) {
        float r = coords1[3 * i + j] - coords2[3 * i + j];
        float b = box[j];
        float adj = nearbyintf(r / b);
        r = fmaf(-adj, b, r);
        dist = j == 0 ? r * r : fmaf(r, r, dist);
    }
    out[i] = sqrtf(dist);
}

The function with FMA takes 29.7s, so it’s 1.2× faster.
On periodic boundaries
Applying periodic boundaries with float adj = nearbyintf(r / b); r = fmaf(-adj, b, r) is problematic.
Firstly, it is slow. In the best case (where we’ve precomputed 1/b) it has a latency of 16 cycles (on Skylake; for comparison square root has a latency of 12 cycles) and it dispatches 4 μops to the floating point execution units.
Secondly, it has accuracy issues that lead to unexpected results for perfectly valid inputs. In particular, for values of r that are big enough, the integer nearest to r / b is not representable as a single-precision floating-point number. This means that I can construct an input that yields a distance much bigger than √(box_x² + box_y² + box_z²), which is clearly wrong. We can solve this problem with remainderf, but it has the same performance issues as roundf: the benchmark takes 17m 17.1s to run, 35× slower than our current best.
If you support positions that are arbitrary floats, you have two choices:

Slow calculations.
Absurd results for some valid inputs.

Given that, I suggest requiring that all positions are either in the range 0 ≤ x < box_x or in -box_x/2 ≤ x ≤ box_x/2. With this condition on the input, we can accurately apply the periodic boundary with
float r = coords1[3 * i + j] - coords2[3 * i + j];
float b = box[j];
r = fabsf(r);
r = fminf(r, b - r);

This is also faster, with a latency of 9 (or 7-8 with ✨t r i c k s✨) and 3 μops. It runs in 28.9s, a 1.03× improvement (the speedup is slightly bigger when using intrinsics).
It’s worth noting that these computational shortcuts improve the speed of scalar code as well as vector code. When we compile the below function (with auto-vectorization disabled by the pragma), it runs in 2m 9.4s, a 5× speedup on the scalar starting point.
void calculate_distances5_nonvector(
    const float* restrict coords1,
    const float* restrict coords2,
    const float* restrict box,
    float* restrict out,
    size_t n
) {
#pragma clang loop vectorize(disable)
    for (size_t i = 0; i < n; ++i) {
        float dist;
        for (size_t j = 0; j < 3; ++j) {
            float r = coords1[3 * i + j] - coords2[3 * i + j];
            float b = box[j];
            r = fabsf(r);
            r = fminf(r, b - r);
            dist = j == 0 ? r * r : fmaf(r, r, dist);
        }
        out[i] = sqrtf(dist);
    }
}

Intrinsics
We appear to have pushed the limits of (at least Clang’s) auto-vectorization. I implemented this computation with AVX2 intrinsics:
__m256 mm256_abs_ps(__m256 a) {
    __m256 abs_mask = _mm256_set1_ps(-0.0f);
    return _mm256_andnot_ps(abs_mask, a);
}

__m256 mm256_min_nnve_ps(__m256 a, __m256 b) {
    return _mm256_castsi256_ps(_mm256_min_epu32(_mm256_castps_si256(a), _mm256_castps_si256(b)));
}

typedef struct {
    __m256 a;
    __m256 b;
    __m256 c;
} m256_3;

m256_3 mm256_transpose_8x3_ps(__m256 a, __m256 b, __m256 c) {
    /* a = x0y0z0x1y1z1x2y2 */
    /* b = z2x3y3z3x4y4z4x5 */
    /* c = y6z6x7y7z7x8y8z8 */

    __m256 m1 = _mm256_blend_ps(a, b, 0xf0);
    __m256 m2 = _mm256_permute2f128_ps(a, c, 0x21);
    __m256 m3 = _mm256_blend_ps(b, c, 0xf0);
    /* m1 = x0y0z0x1x4y4z4x5 */
    /* m2 = y1z1x2y2y5z5x6y6 */
    /* m3 = z2x3y3z3z6x7y7z7 */

    __m256 t1 = _mm256_shuffle_ps(m2, m3, _MM_SHUFFLE(2,1,3,2));
    __m256 t2 = _mm256_shuffle_ps(m1, m2, _MM_SHUFFLE(1,0,2,1));
    /* t1 = x2y2x3y3x6y6x7y7 */
    /* t2 = y0z0y1z1y4z4y5z5 */

    __m256 x = _mm256_shuffle_ps(m1, t1, _MM_SHUFFLE(2,0,3,0));
    __m256 y = _mm256_shuffle_ps(t2, t1, _MM_SHUFFLE(3,1,2,0));
    __m256 z = _mm256_shuffle_ps(t2, m3, _MM_SHUFFLE(3,0,3,1));
    /* x = x0x1x2x3x4x5x6x7 */
    /* y = y0y1y2y3y4y5y6y7 */
    /* z = z0z1z2z3z4z5z6z7 */

    m256_3 res = {x, y, z};
    return res;
}

void calculate_distances_vectorized(
    const float * restrict arr1 __attribute__((align_value(32))),
    const float * restrict arr2 __attribute__((align_value(32))),
    const float * restrict box,
    float * restrict out __attribute__((align_value(32))),
    size_t n
) {
    const __m256 * restrict arr1_256 __attribute__((align_value(32))) = (const __m256 *) arr1;
    const __m256 * restrict arr2_256 __attribute__((align_value(32))) = (const __m256 *) arr2;
    __m256 * restrict out_256 __attribute__((align_value(32))) = (__m256 *) out;

    __m256 boxv = {box[0], box[1], box[2], NAN, box[1], box[2], box[0], NAN};
    __m256 box1 = _mm256_permute_ps(boxv, _MM_SHUFFLE(0,2,1,0));
    __m256 box2 = _mm256_permute_ps(boxv, _MM_SHUFFLE(2,1,0,2));
    __m256 box3 = _mm256_permute_ps(boxv, _MM_SHUFFLE(1,0,2,1));

    n >>= 3;
#pragma unroll 2  // Any more and Clang will spill registers
    for (size_t i = 0; i < n; ++i) {
        size_t j = i * 3;

        __m256 m11 = arr1_256[j];
        __m256 m12 = arr1_256[j+1];
        __m256 m13 = arr1_256[j+2];
        __m256 m21 = arr2_256[j];
        __m256 m22 = arr2_256[j+1];
        __m256 m23 = arr2_256[j+2];

        __m256 diffm1 = m11 - m21;
        __m256 diffm2 = m12 - m22;
        __m256 diffm3 = m13 - m23;

        diffm1 = mm256_abs_ps(diffm1);
        diffm2 = mm256_abs_ps(diffm2);
        diffm3 = mm256_abs_ps(diffm3);

        diffm1 = mm256_min_nnve_ps(diffm1, box1 - diffm1);
        diffm2 = mm256_min_nnve_ps(diffm2, box2 - diffm2);
        diffm3 = mm256_min_nnve_ps(diffm3, box3 - diffm3);

        m256_3 transpose_res = mm256_transpose_8x3_ps(diffm1, diffm2, diffm3);
        __m256 x_diff = transpose_res.a;
        __m256 y_diff = transpose_res.b;
        __m256 z_diff = transpose_res.c;

        __m256 dist_sq = x_diff * x_diff;
        dist_sq = _mm256_fmadd_ps(y_diff, y_diff, dist_sq);
        dist_sq = _mm256_fmadd_ps(z_diff, z_diff, dist_sq);

        __m256 dist = _mm256_sqrt_ps(dist_sq);
        out_256[i] = dist;
    }
}

This runs in 17.5s, a 1.7× speedup over the best auto-vectorized version. There are six things to note here:

I do most of the math before shuffling, so the out-of-order execution engine can compensate for random delays in memory access.
There is no absolute value instruction, so mm256_abs_ps implements it by zeroing the sign bit.
mm256_min_nnve_ps compares non-negative floats quickly. Non-negative floats maintain their order when interpreted as 32-bit integers. This instruction has 1 cycle latency (+1 cycle penalty for moving the register between domains), whereas floating point comparison has 4 cycles’ latency.
mm256_transpose_8x3_ps has to shuffle data between 128-bit lanes and then perform a 4×3 transpose within each lane. It’s more efficient than Intel’s method because blends are way cheaper than inserts.
Many of the usual operators are defined on __m256. For example, * and - are the same as (and nicer than) _mm_mul_ps and _mm_sub_ps.
I’m using 256-bit vectors. There’s little reason not to use them on machines that support them. All the operations have the same cost for 128-bit and 256-bit vectors. The only extra cost is that the transpose has a few more instructions. Indeed, I tried a 128-bit version of the same code and it ran for 29.7s, 1.7× longer.

Assembly?
I was curious how far I could push this so I hand-wrote a distance function in assembly. It ran in 16.5s, which is a small improvement from code that is a lot less maintainable…
For comparison, I wrote a small function reads integers from two arrays, adds them, and writes them to memory:
asm volatile ("xor %%eax, %%eax \n"
              "sum_arrs_loop: \n"
              "    vmovdqa    (%2,%%rax), %%ymm0 \n"
              "    vmovdqa    (%3,%%rax), %%ymm1 \n"
              "    vpaddb    32(%2,%%rax), %%ymm0, %%ymm0 \n"
              "    vpaddb    32(%3,%%rax), %%ymm1, %%ymm1 \n"
              "    vpaddb    64(%2,%%rax), %%ymm0, %%ymm0 \n"
              "    vpaddb    64(%3,%%rax), %%ymm1, %%ymm1 \n"
              "    vpaddb    %%ymm0, %%ymm1, %%ymm0 \n"
              "    vmovdqa    %%ymm0, (%0) \n"
              "    addq    $32, %0 \n"
              "    addq    $96, %%rax \n"
              "    decq    %1 \n"
              "    jne    sum_arrs_loop\n"
             : "+r" (out), "+r" (n)
             : "r" (arr2), "r" (arr1)
             : "ymm0", "ymm1", "rax", "memory");

This measures the cost of just accessing the positions and writing the results—we can’t hope to do better than this. It runs in 10.8s, which is only 1.5× faster than my assembly distance calculation (and 1.6× faster than the version using intrinsics).
Memory boundedness
All the above benchmarks were run for 10 million iterations on 4096 pairs. The arrays’ small size means that they fit in the L2 cache, so the CPU does not have to read from the main memory. If instead we run 1000 iterations on 40 960 000 pairs, we find that the starting code takes 9m 47.7s, the best auto-vectorized version takes 1m 26.4s, the intrinsics version runs for 1m 17.6s, and the memory access baseline is 1m 11.5s. We can see that for large inputs, we are memory-bounded and this will not get any faster 🤷♂.
Tables
10 000 000 iterations × 4 096 pairs

Version
Time
× faster than baseline
× slower than intrinsics

Baseline (non-autovectorized)
11m 26.9s
0.8
39.2

Baseline
9m 38.5s
1
33.0

^ + nearbyint
36.4s
15.9
2.1

^ + FMA
29.7s
19.5
1.7

^ + faster boundary
29.0s
20.0
1.7

Intrinsics (128-bit)
29.7s
19.5
1.7

Intrinsics (256-bit)
17.5s
33.0
1

Assembly
16.5s
35.1
0.9

(Memory access)
10.8s
53.4
0.6

1 000 iterations × 40 960 000 pairs

Version
Time
× faster than baseline
× slower than intrinsics

Baseline (non-autovectorized)
11m 34.3s
0.8
8.9

Baseline
9m 47.7s
1
7.6

^ + nearbyint
1m 21.5s
7.2
1.0

^ + FMA
1m 26.2s
6.8
1.1

^ + faster boundary
1m 27.3s
6.7
1.1

Intrinsics (128-bit)
1m 19.2s
7.4
1.0

Intrinsics (256-bit)
1m 17.6s
7.6
1

Assembly
1m 17.2s
7.6
1.0

(Memory access)
1m 11.5s
8.2
0.9

Proposal
Here are actionable items I think would speed things up:

Assume that all inputs are between 0 and box (or between -box/2 and box/2) and use the method I described to apply the periodic condition boundary.
Use fused multiply-add on platforms that support it.
Use 256-bit vectors on platforms that support them.

Please let me know if this is helpful. I’m happy to make a PR with these changes.

hey @nbgl this is super helpful, I'll try and answer things in order...

the function call I'm more worried/interested about is the sqrt call, I've never seen a compiler produce vsqrtps, so all the preamble is mostly to arrive at a nice vectorised sqrt call

I've also not had time to look at reciprocal sqrt/newton raphson hacks yet..

can you show a godbolt example of what you're getting, the closest I can get is this:

https://godbolt.org/z/1oGhdh
I need to go over that slowly, but I think it's producing vsqrtps with clang and icc, but not gcc : /

I've not looked at avx2 yet, but yeah there'll hopefully be another 2x (ish) when we flick that on.

I don't think we can assume that positions are bounded.  I'm mostly thinking of post simulation analysis, some MD engines give you "wrapped" coordinates and others don't.  (Similarly I don't think we can ask for aligned buffers)

I think the interesting thing from here is I didn't realise round was what was causing the compiler to fail at vectorising the entire loop.  If we can find some C that gcc produces sqrtps for then a lot of this repo can be deleted...

Hey @nbgl, amazing and amazingly detailed work. Thanks very much!
I'll try and address point by point

FMA seems like a cheap easy speedup and we should use it wherever possible.
I wonder if the transform to 0 ≤ x < box_x or in -box_x/2 ≤ x ≤ box_x/2 to allow a more rapid PBC calculation is worth the tradeoff. Something to investigate and I will raise an issue.
In general however you can't assume that the coordinates fall inside the box (I wish).
Does restrict add much? Also something to investigate.
Seems like we should use the maximum SIMD width available, I will write some CMake to detect what is available.

Please please join us on our quest for speed!
We are still working on how to structure the library as a whole, but in the meantime any and all performance improvements are welcome.
👍

@richardjgowers The trick to getting GCC to auto-vectorise the loop is to use size_t (instead of unsigned int) for the buffer size and loop counters. I think it’s because unsigned int is guaranteed by the standard to wrap around on overflow and GCC does not want to deal with that (e.g. in the expression 3 * i + j). It also needs -fno-math-errno, which is already turned on by -ffast-math. This example works in GCC, Clang, and ICC.

Great work and good to know.
Now to go back and change every loop I have ever written...

@nbgl ok that's really cool getting all the compilers to emit vsqrtps.
So reading through your tables, I think we're more interested in the case where things aren't in cache.. so it seems like everything hits the same performance after the nearby int hack.  So I think while playing with intrinsics was fun, I don't think we really need to any more..

@richardjgowers
I disagree, I think there are lots of situations where you'll be trying to compute a cacheable thin but long set of distances (eg 4 096 x 10 000 000 iterations) where SIMD (esp 256) performs better.
If we are trying to squeeze everything out we possibly can I think we should cover cacheable sizes and make them as fast as possible?

@hmacdope Are you talking about pipelined workloads? You can’t pull data into the cache faster than your memory bandwidth. When the distance function is used in a longer computation, we can split the input into small chunks and pipeline, which keeps everything in the cache. Unfortunately, this is a lot more complex. You would need some sort of lazy evaluation thing where you build a computation graph like in TensorFlow.
Auto-vectorization is much faster to implement and easier maintain than intrinsics. I think it makes sense to avoid intrinsics unless you can identify a specific need.
That said, it’s important to remember that this distance computation is very heavy on memory bandwidth and light on computation. Other workloads will benefit a lot more from manual optimization.
For example, distance calculations involve inverse trigonometric functions. My atan implementation (#26) alone is (by my rough estimate) ~4× more expensive than a distance computation.
Similarly, if you’re producing an n × m matrix of distances from two arrays (size n and m) of positions, the computation is no longer memory read-bound because every position from the first array is reused m times. It will either be CPU-bound or memory write-bound, and manual tuning may be required to make sure that it is the latter. Also, compilers are not usually very smart about ensuring locality of reference, so some work may be needed to cache the input arrays effectively (that said, Polly looks interesting, but it’s LLVM-only and I haven’t tried it).

@nbgl yeah I agree that distance is mostly memory bound rather than flops, and you're more likely to find meat on the bone in the trig stuff.  One thing to note is that the Idx case (where we're taking certain coordinates from a larger array) is probably a more realistic use case for us, (and maybe the handrolled loads there are beneficial).


Bug: queue rescheduler does not always work correctly

Describe the bug
Not working queue rescheduler functionality as expected.
Log link:
Error message:
2024-06-04 14:19:01.456
[2024-06-04 10:19:01,456] INFO [logger.logger:verify_users_queue:577] [class.DatabaseClient] Database: rescheduled message 106: 2024-06-07 06:40:43.819387 -> 2024-06-01 20:54:19.069356
2024-06-04 14:19:01.443
[2024-06-04 10:19:01,443] INFO [logger.logger:verify_users_queue:577] [class.DatabaseClient] Database: rescheduled message 105: 2024-06-06 23:43:43.819387 -> 2024-06-02 20:54:19.062696
2024-06-04 14:19:01.440
[2024-06-04 10:19:01,440] INFO [logger.logger:verify_users_queue:577] [class.DatabaseClient] Database: rescheduled message 104: 2024-06-05 23:43:43.819387 -> 2024-06-03 05:45:19.054883
2024-06-04 14:19:01.436
[2024-06-04 10:19:01,436] INFO [logger.logger:verify_users_queue:577] [class.DatabaseClient] Database: rescheduled message 103: 2024-06-05 14:52:43.819387 -> 2024-06-04 20:34:23.757182
2024-06-04 14:19:01.431
[2024-06-04 10:19:01,430] INFO [logger.logger:verify_users_queue:577] [class.DatabaseClient] Database: rescheduled message 114: 2024-06-04 00:03:39.106276 -> 2024-06-04 10:19:01.424917
2024-06-04 14:19:01.424
[2024-06-04 10:19:01,424] WARNING [logger.logger:verify_users_queue:544] [class.DatabaseClient] Database: rescheduling messages in the queue for user 123456789
2024-06-04 14:19:01.424
[2024-06-04 10:19:01,423] WARNING [logger.logger:verify_users_queue:537] [class.DatabaseClient] Database: found a message in the queue that was not processed in time for user 123456789

Additional context
Information about where the bug is happening:
The verify_users_queue() method in Database module doesn't always work as expected https://github.com/obervinov/pyinstabot-downloader/blob/v2.1.5/src/modules/database.py#L506-L578.
As you can see in the log above, records with scheduled processing times a few days in the future have been rescheduled for the current day with a shift of one minute between them.
Possible correction
If you have a possible solution to the bug, please describe it.
The expected behaviour is that a shift of a few days between scheduled times should persist when the queue is rescheduled.
Screenshots
https://drive.proton.me/urls/M2KPYDY798#VjLwmxCGmvfC
Check list after fixing the bug

[ ] The mechanism for updating the processing time of messages in the queue works as expected

The automatic queue verification mechanism has been removed.
Instead of this method, added functionality to update the queue processing time via a message to the bot.


Add methods to enable and disable Airplane Mode on Android

This is already achievable by $.native.tap(), but is a bit, lengthy, and device-dependent.
We'd like to have a more high-level API (like we already have for Wi-Fi, Cellular, and Dark Mode).
We want to get from this:
void main() {
  patrolTest(
    'toggles location',
    nativeAutomation: true,
    ($) async {
      await $.native.openQuickSettings();
      await $.native.tap(const Selector(text: 'Airplane Mode'));
      await $.native.tap(const Selector(text: 'Airplane Mode'));
      await $.native.pressBack();
    },
  );
}

to this:
void main() {
  patrolTest(
    'toggles location',
    nativeAutomation: true,
    ($) async {
      await $.native.enableAirplaneMode();
      await $.native.disableAirplaneMode();
    },
  );
}

Siblings of this issue

#282
#283
#326

Implemented in https://github.com/leancodepl/patrol/pull/2254


Chickens can't breed

Issue Description:
Chickens don't do anything when i click on them with seeds.
I don't know if it's from this mod or not.
Steps to reproduce (important):

i don't really know
...

What happens:
I click with seeds on (breedable) chickens, nothing happens.
What you expected to happen:
I click with seeds on (breedable) chickens, they breed.

Affected Versions (Do not use "latest"):

Chickens: 6.0.4
Minecraft: 1.12.2
Forge: <IP_ADDRESS>47
(Addons/etc.:
MoreChickens: 3.1.0
Roost: 2.0.10
Hatchery 2.2.2)

Ok so wats the fix I can't breed my modded chickens have hatchery roost chickens and more chickens and the won't breed with the rooster either


Fix flaky tests for ExpirableModule and Metrics

Resolve #313
Description:
Instead of using real Module that can act weirdly, we create fake Modules.
Checklist:
You should check all boxes before the PR is ready. If a box does not apply, check it to acknowledge it.

[x] ISSUE NUMBER. You linked the issue number (Ex: Resolve #XXX).
[x] PRE-COMMIT. You ran pre-commit on all commits, or else, you
ran pre-commit run --all-files at the end.
[x] USER CHANGES. The changes are added to CHANGELOG.md and the documentation, if they impact
our users.
[x] DEV CHANGES.

Update the documentation if this PR changes how to develop/launch on the app.
Update the README files and our wiki for any big design decisions, if relevant.
Add unit tests, docstrings, typing and comments for complex sections.

Thank you @Dref360!!


Only retry until a Deadline occurs

This should fix issue #1858

So, the idea of this PR is making the deadline a logical one, correct?
Can we make it clear in the document somewhere that this is the case?

I'm going to close this in favor of more focused changes.


Remove iOS 7 support

There is a great deal of cleanup that can naturally occur by dropping iOS 7 support from the project.  There aren't even any projects utilizing iOS 7, so it is a no-brainer :)

completed


add the -b and -c flags to the options

The run instructions mention them, but it's a good idea to make the options listing complete by explicitly adding the -b and -c flags as well.

good looks, will be adding this soon

I've updated the Readme to include the two options (HTML is no longer required now as well per user feedback). If you have addition feedback let us know.

nice!


[Enhancement] Report tablet version after publish version task finish

What type of PR is this：

[ ] bug
[ ] feature
[x] enhancement
[ ] refactor
[ ] others

Fixes https://github.com/StarRocks/starrocks/issues/6391
Problem Summary(Required) ：
Currently, BE's publish_version task only reports whether it is successful or not but does not contain which version the replica has and which versions are missing. This will limit FE's ability to publish txn or schedule clone tasks.
For example, if a replica has version 1 2 4 5, and publish_version 3 succeeds, the version should grow to 5, and txns waiting for version 4, 5 to be published can proceed.
This PR also does a major refactor to the PublishVersionTask execution-related code.

daily regression: http://<IP_ADDRESS>:8090/view/regression/job/starrocks_pr_regression/286/

run starrocks_fe_unittest

[FE PR Coverage check]
:heart_eyes: pass : 0 / 0 (0%)


Feature request: Generate config from git history

I would want to parse scopes from git history and write them to config. Is this possible?

It is possible. Basically loop over all parsed commits and detect supported features to create the confit file.

This would be a great tool to have. However, config should has sensible defaults which works for most people. I am closing this for now as it is not priority at the moment.