Litter-Robot 4 Additional Features

Hello again!
Making this issue as I just did a very quick poke of my LR4 through burp suite + iOS device and your library (but not with a good enough understanding of the codebase and the previous LR3 to make a pull request that would be very good) So feel free to immediately close this issue as you see fit since it's not really an issue. (Also most of the questions posed below are rhetorical, more for your reference if you don't already know the answer) I hope this can be of some help!
Retrieve cat weight
Implementing something like the following can get the cats last weight:
    @property
    def last_pet_weight(self) -> float:
        """Return the last recorded pet weight in pounds."""
        return self._data.get("catWeight", 0)

I don't actually pick up my new cat until a couple weeks, so this is a plant pot. The LR4 scale seems decently accurate, as when placed on a food scale it also measured at 3.8 pounds. On a very brief look through the app settings it does not seem like there's options to change what unit of weight is being used, perhaps its regional, or it's just always pounds?
Anyway, here's the raw requests that you already have implemented, but just an example of it and the response for completeness:
Request
POST /graphql HTTP/2
Host: lr4.iothings.site
Accept: */*
Content-Type: application/json
Authorization: Bearer REDACTED_BEARERTOKEN
Content-Length: 1863
X-Amz-Date: 20220806T171512Z
Accept-Language: en-US,en;q=0.9
User-Agent: amplify-flutter/0.5.1 amplify-iOS/1.23.0 iOS/15.4 en_US
Accept-Encoding: gzip, deflate

{"query":"    query getLitterRobot4BySerial($serial: String!) {\n      getLitterRobot4BySerial(serial: $serial) {\n        name\n        serial\n        unitId\n        unitPowerType\n        unitPowerStatus\n        robotStatus\n        unitTimezone\n        unitPowerStatus\n        odometerCleanCycles\n        DFINumberOfCycles\n        isOnboarded\n        isProvisioned\n        sessionId\n        lastSeen\n        setupDateTime\n        weightSensor\n        cleanCycleWaitTime\n        isKeypadLockout\n        nightLightBrightness\n        nightLightMode\n        litterLevel\n        DFILevelPercent\n        globeMotorFaultStatus\n        catWeight\n        isBonnetRemoved\n        isDFIFull\n        isOnline\n        espFirmware\n        picFirmwareVersion\n        laserBoardFirmwareVersion\n        isFirmwareUpdateTriggered\n        sleepStatus\n        catDetect\n        robotCycleState\n        robotCycleStatus\n        weekdaySleepModeEnabled {\n            Sunday {\n                sleepTime\n                wakeTime\n                isEnabled\n            }\n            Monday {\n                sleepTime\n                wakeTime\n                isEnabled\n            }\n            Tuesday {\n                sleepTime\n                wakeTime\n                isEnabled\n            }\n            Wednesday {\n                sleepTime\n                wakeTime\n                isEnabled\n            }\n            Thursday {\n                sleepTime\n                wakeTime\n                isEnabled\n            }\n            Friday {\n                sleepTime\n                wakeTime\n                isEnabled\n            }\n            Saturday {\n                sleepTime\n                wakeTime\n                isEnabled\n            }\n        }\n      }\n    }\n  ","variables":{"serial":"REDACTED_SERIAL"}}

Response
HTTP/2 200 OK
Content-Type: application/json;charset=UTF-8
Vary: Accept-Encoding
Date: Sat, 06 Aug 2022 17:25:39 GMT
X-Amzn-Requestid: X
X-Amzn-Appsync-Tokensconsumed: 1
X-Amzn-Trace-Id: Root=X
X-Cache: Miss from cloudfront
Via: 1.1 844f1d5f6c5723bfa87f9a3a73f6fd58.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: BOS50-C1
X-Amz-Cf-Id: X

{
    "data": {
        "getLitterRobot4BySerial": {
            "name": "Litter Robot 4",
            "serial": "REDACTED_SERIAL",
            "unitId": "REDACTED_UNITID",
            "unitPowerType": "AC",
            "unitPowerStatus": "ON",
            "robotStatus": "ROBOT_CAT_DETECT",
            "unitTimezone": "America/New_York",
            "odometerCleanCycles": 3,
            "DFINumberOfCycles": 3,
            "isOnboarded": true,
            "isProvisioned": true,
            "sessionId": "REDACTED_SESSIONID",
            "lastSeen": "2022-08-06T16:29:59.084Z",
            "setupDateTime": "2022-08-06T16:26:45.172Z",
            "weightSensor": 0.9,
            "cleanCycleWaitTime": 7,
            "isKeypadLockout": false,
            "nightLightBrightness": 255,
            "nightLightMode": "AUTO",
            "litterLevel": 500,
            "DFILevelPercent": 0,
            "globeMotorFaultStatus": "FAULT_CLEAR",
            "catWeight": 3.8,
            "isBonnetRemoved": false,
            "isDFIFull": false,
            "isOnline": true,
            "espFirmware": "1.1.50",
            "picFirmwareVersion": "10512.2560.2.51",
            "laserBoardFirmwareVersion": "<IP_ADDRESS>",
            "isFirmwareUpdateTriggered": false,
            "sleepStatus": "WAKE",
            "catDetect": "CAT_DETECT_SCALE_CLEAR",
            "robotCycleState": "CYCLE_STATE_WAIT_ON",
            "robotCycleStatus": "CYCLE_IDLE",
            "weekdaySleepModeEnabled": {
                "Sunday": {
                    "sleepTime": 0,
                    "wakeTime": 0,
                    "isEnabled": false
                },
                "Monday": {
                    "sleepTime": 0,
                    "wakeTime": 0,
                    "isEnabled": false
                },
                "Tuesday": {
                    "sleepTime": 0,
                    "wakeTime": 0,
                    "isEnabled": false
                },
                "Wednesday": {
                    "sleepTime": 0,
                    "wakeTime": 0,
                    "isEnabled": false
                },
                "Thursday": {
                    "sleepTime": 0,
                    "wakeTime": 0,
                    "isEnabled": false
                },
                "Friday": {
                    "sleepTime": 0,
                    "wakeTime": 0,
                    "isEnabled": false
                },
                "Saturday": {
                    "sleepTime": 0,
                    "wakeTime": 0,
                    "isEnabled": false
                }
            }
        }
    }
}

Retrieve Activity Listing
This one I was unsure since I am not familiar with how the LR3 responses format the activity listing. A very half "implementation" to get the activity data could start out to look something like this, which you may already be aware:
    async def _retrieve_activity(self) -> None:
        """Retrieves activity history listing from the API"""
        data = await self._post(
            json={
                "query": f"""
                    query GetLR4($serial: String!) {{
                        getLitterRobot4Activity(serial: $serial) {{
                        value
                        timestamp
                        measure
                        actionValue
                        }}
                    }}
                    """,
                "variables": {"serial": self.serial},
            },
        )
        assert isinstance(data, dict)

Like before here are the raw requests and responses:
Request
POST /graphql HTTP/2
Host: lr4.iothings.site
Accept: */*
Content-Type: application/json
Authorization: Bearer REDACTED_BEARERTOKEN
Content-Length: 283
X-Amz-Date: 20220806T172309Z
Accept-Language: en-US,en;q=0.9
User-Agent: amplify-flutter/0.5.1 amplify-iOS/1.23.0 iOS/15.4 en_US
Accept-Encoding: gzip, deflate

{"query":"    query GetLR4($serial: String!, $consumer: String) {\n      getLitterRobot4Activity(serial: $serial, consumer: $consumer) {\n        value\n        timestamp\n        measure\n        actionValue\n      }\n    }\n  ","variables":{"serial":"REDACTED_SERIAL","consumer":"app"}}

Response
HTTP/2 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 708
Date: Sat, 06 Aug 2022 18:20:46 GMT
X-Amzn-Requestid: X
X-Amzn-Appsync-Tokensconsumed: 1
X-Cache: Miss from cloudfront
Via: 1.1 980d2a1c9c4f90ad69118c6357f92882.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: X
X-Amz-Cf-Id: X

{
    "data": {
        "getLitterRobot4Activity": [
            {
                "value": "robotCycleStatusIdle",
                "timestamp": "2022-08-06 17:31:59.000000000",
                "measure": "action",
                "actionValue": ""
            },
            {
                "value": "robotCycleStatusDump",
                "timestamp": "2022-08-06 17:30:06.000000000",
                "measure": "action",
                "actionValue": ""
            },
            {
                "value": "catWeight",
                "timestamp": "2022-08-06 17:23:08.000000000",
                "measure": "action",
                "actionValue": "3.8"
            },
            {
                "value": "robotStatusCatDetect",
                "timestamp": "2022-08-06 17:21:51.000000000",
                "measure": "action",
                "actionValue": ""
            },
            {
                "value": "robotCycleStatusIdle",
                "timestamp": "2022-08-06 16:30:27.000000000",
                "measure": "action",
                "actionValue": ""
            },
            {
                "value": "robotCycleStatusDump",
                "timestamp": "2022-08-06 16:28:34.000000000",
                "measure": "action",
                "actionValue": ""
            }
        ]
    }
}

Interestingly, using the python function above to retrieve the activity listing returned much more data ( I did not investigate very much into the cause of this, probably something with the GQL query I copy pasted without fully understanding it :upside_down_face: ):

Litter Level
Didn't do basically anything into this section, and again unsure if the LR3 had this capability. But if not this may be a fun one to have included at some point, especially in the HA integration! But when it's completely empty it shows the litterLevel value as 500, and in the app it's at the lowest level. After placing the plant pot inside and then removing it, the litterLevel did appear to change to 497, however the app still reports the litter level at its lowest (granted it's a not meant to be an super accurate bar chart since it's animated slightly). Note that I don't have actual litter yet so apologies I can't accurately test this. The plant pot was an attempt to but the LR4 thought it was a cat which I guess is more accurate :smile:

Thanks for the super detailed information from this. I've never used nor heard of burp suite before, so I may have to check that out. Instead, I had installed mitmproxy on a rpi3 and intercepted the requests that way, but it's always good to know other options.

Retrieve cat weight
Implementing something like the following can get the cats last weight:
    @property
    def last_pet_weight(self) -> float:
        """Return the last recorded pet weight in pounds."""
        return self._data.get("catWeight", 0)

I had already added the cat weight property locally, but not committed it yet (got sidetracked with work and other projects). But last_pet_weight is a better name for it anyway since it more closely matches the app. ^_^

Retrieve Activity Listing

The GraphQL query supporting this retrieval has a limit field that can be used to decrease the amount of responses that come back. There's a lot of information here to unpack and decide how to interpret as far as activity history. And since the HA integration doesn't use it right now, I opted to not implement it right away and figured I'd get back to it later.

Litter Level

This one I would like to get added, but I'm still trying to correlate the data returned and the representation of it in the app. Hopefully with more debug information in the future, we can grasp what it all means.

These should all now be implemented with 2022.9.4. Thanks for this!


Update BrowserSync Plugin

Our PR has been merged:
https://github.com/terminalpixel/docpad-plugin-browsersync/pull/4#event-310564734

oh sweet!


Support for crispy forms with custom layouts

In our project we use django-crispy-forms and define the form layout in the form's __init__.
For the example in this repo it could look as follows (using the Bootstrap 5 template pack) to align the two fields next to each other in one row:
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Column, Row

def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.form_tag = False

        self.helper.layout = Layout(
            Row(
                Column('make'),
                Column('model'),
            ),
        )

If I want to now make the model field only appear when a make is selected by adding include=lambda form: form['make'].value() to the model field, crispy forms fails because initially the model field is not part of the form ("Could not resolve form field 'model'.").
I don't think it's a bug but I am wondering if there is a way to support this. I suspect it would require additional logic to create the form layout on the go.

Sorry for the slow reply on this. I don't use django-crispy-forms myself so I don't know much about it, but from looking at the example I think you're right - you'd need to introspect which fields are present in your __init__ and change your layout accordingly.

Hi! I use both crispy and this package. I don’t (currently) change the layout, but what I have done is set the Model field to be hidden if the Make is blank. Not sure if that’s a suitable workaround

You could change the DynamicFormMixin code to the following:
  ...
                else:
                    self.fields[name].widget = forms.HiddenInput()

Hiding a field is better, as it still includes it in the form, and CrispyForms or the validation won't complain.
Even better would be additionally removing the  "required" attribute.

This is even more complicated, as hiding the field does a good job when just using django-forms-dynamic. But when you are using e.g. HTMX to dynamically change field querysets in the frontend together with crispy forms, it gets messy, as crispy forms adds a wrapper div which contains the label. And hiding just the e.g. input field does not hide the label.
Hiding there must be done by adding a display:none to the wrapper div's class. Which would be easier by "d-none" when using Bootstrap.
Any ideas?

I managed to solve the problem by reloading the whole form using HTMX, and hx-includeing all parameters. This works almost perfect. I put the hx-include="[name=field1],[name=field2],..." at the form tag, as it is inherited. So I can reload the whole crispy form without modifications using a GET request. You just need to make sure that the  GET parameters are placed into the fields again, I am using a simple mixin here:
class PrepopulateFormViewMixin:
    """Prepopulates the form with values from GET parameters."""
    def get_initial(self):
        initial = super().get_initial()
        initial.update(clean_dict(self.request.GET.dict()))
        return initial


Fix patch version to 0, update to V3.25

fixes #243

With the fixed 0, we could make a merge commit again - I guess?

Yes, but I would not keep that version there. That version should only be there for an actual release. Before/after the release, the height should be somewhere, so like 3.25.0-build.{height}. Otherwise there's no way to tell builds apart.

Basically, the process for a release is:

Change the version to a stable one like 3.25.0.
Build in CI, verify, etc. Release.
Update version to 3.26.0.build.{height}

Otherwise there's no way to tell builds apart.

I normally use git tags for that. Or Fody.Stamp

The problem with git tags are that they can be modified. Tags can be deleted, modified, etc.

Alternatively, just let the third digit represent the build and you release when ready. So the released version is 3.25.2123. I don't see the issue with that, and if you look at version numbers for other products, like Visual Studio, it's similar. The build/patch are always incrementing, they're never "4.0.0" releases.

I don't see the issue with that

It's not semver and I find it confusing.

they're never "4.0.0" releases.

Well it's 2017.4 etc.

The problem with git tags are that they can be modified. Tags can be deleted, modified, etc.

true, but why do we need this proof? nuget.org is already proving that there is only one 3.25 version.
Maybe I'm missing something, but  3.25.2123 won't give any security gains.

2017.4 isn't the version. If anything it's VS 2017 15.4, and that's a marketing name. The actual version on the files is for 15.4.4 is 15.0.27004.2009.
It's not about proof, it's about build reproducibility. I think there's generally value in having stable, reproducible builds. Checkout the same commit and it'll always give you the same build.
Having 3.25.2123 isn't about security, it's about reproducibility. If I checkout the commit that came from, I'll always get that version.

If you run the powershell, you'll see all of the values:
 $vers = & $env:UserProfile\.nuget\packages\nerdbank.gitversioning\2.0.41\tools\Get-Version.ps1
   Preview    update-nuget-client  PS> $vers

CloudBuildNumber                : 6.0.1+g150d8e2e7e
CloudBuildNumberEnabled         : True
BuildMetadataWithCommitId       : {g150d8e2e7e}
AssemblyVersion                 : <IP_ADDRESS>
AssemblyFileVersion             : <IP_ADDRESS>49
AssemblyInformationalVersion    : 6.0.1+g150d8e2e7e
PublicRelease                   : False
PrereleaseVersion               :
SimpleVersion                   : 6.0.1
BuildNumber                     : 1
MajorMinorVersion               : 6.0
GitCommitId                     : 150d8e2e7ee77c8ccb19112290df3ee7c01f3eeb
GitCommitIdShort                : 150d8e2e7e
VersionHeight                   : 1
VersionHeightOffset             : 0
Version                         : <IP_ADDRESS>49
CloudBuildVersionVarsEnabled    : True
CloudBuildVersionVars           : {[GitAssemblyInformationalVersion, 6.0.1+g150d8e2e7e], [GitBuildVersion, <IP_ADDRESS>49],
                                  [GitBuildVersionSimple, 6.0.1]}
BuildMetadata                   : {}
BuildMetadataFragment           : +g150d8e2e7e
NuGetPackageVersion             : 6.0.1-g150d8e2e7e
NpmPackageVersion               : 6.0.1-g150d8e2e7e
SemVer1                         : 6.0.1-g150d8e2e7e
SemVer2                         : 6.0.1-g150d8e2e7e
SemVer1NumericIdentifierPadding : 4

You can see that some things have three parts, others have four, etc. Others, like the AssemblyVersion, by default, stay at major minor but with four parts.

2017.4 isn't the version. If anything it's VS 2017 15.4, and that's a marketing name. The actual version on the files is for 15.4.4 is 15.0.27004.2009.

Good one 2017 15.4 indeed.

You can see that some things have three parts, others have four, etc. Others, like the AssemblyVersion, by default, stay at major minor but with four parts.

I agree that 3-4 parts are nice, but it should not be in the package version (on nuget or chocolatey) IMO.

anyway,
if we set  "buildNumberOffset": -1,, then we have the best of both worlds? (semver, reproducable builds, clear versioning)

That's fine. I don't really want to get hung up on the details :) Versions to me are about conveying intent.

superseded by  #254


Sort parameters in docstring and __init__ of Layer

References and relevant issues
As requested here https://github.com/napari/napari/pull/6736#issuecomment-2016708282 I started to implementing units in Layer itself. This is a small cleanup before the main PR
Description
Sort keyword only arguments of Layer class and reorder doc string to be in the same order. To increase readability and simplify maintenance (easier validate if docstring is present)

Any chance we can add an actual check (in another PR) for whether the docstring has all the kwargs that are in the signature?

yes


Make a "dcos config" error message more explicit

This gives context to make the error more clear.
Without this change, one can get the following output :
$ dcos config set coree.ssl_verify true
'coree' is not a dcos command.


Object lists package

This is the object list package without a front end. This pull request contains the connection and configuration of the SQL database with some basic first functions to communicate with the database.
Things to discuss
Some topics still need some discussion.
1. The name of the package and database
I need some help naming the package and database. This is mainly because I do not know the scope of the database. The package is the connector to the database with some helper functions to communicate with the database.
Is this database only going to contain object lists? Then object-lists is probably a good name. If the scope of the database grows, the name needs to be corrected. The same goes for the database in PlanetScale; this is likely the same or similar name to this package. For now, the name is research-app within the colonial-collections organization. Should it be called object-lists or user-input? I need more information about the scope to decide on the naming.
2. Database branches and migrations
For now, we have chosen to use a free PlanetScale database until we have decided on the location (AWS?). Because there is a significant change in the database is going to be move, I wanted to keep the migrations simple but good enough. Also, the free version of PlanetScale is limited to one database with two branches. If we go for a paid plan, we could create a branch per preview environment. But for now, I created one main branch for production and one development branch for preview and development.
Creating a pull request with file changes to the migrations folder will trigger a migration to the development database. Merging the pull request will trigger a database merge from development to production. The GitHub action is based on an official PlanetScale blog post.
4. Rollbacks
To keep things simple for this temporary database, I suggest manual rollbacks. If the development database needs a rollback, we could make a new branch from production and use the new branch. For production, there are two options. After the merge, there is a button in PlanetScale to undo the merge. This button is only visible for 30 minutes, so if we notice within 30 minutes a rollback is necessary, we could push the button and let PlanetScale figure it out. After 30 minutes, we need to write a new migration. Because we do not have a complex database for now, I think this is good enough but something to consider when choosing the final database location.
3. Testing
I have been thinking about testing this package. In a drizzle discussion, the advice is not to write unit tests but rather focus on the right and few integration tests. I have written some cypress tests for the front-end. But this is not part of this pull request. I moved the front-end to a separate pull request because there was still some discussion about the user interface. So, those tests are also not in this pull request.

I have moved the migration to a separate script instead of using drizzle-kit push:mysql. Because an unsuccessful run of drizzle-kit is still resolved in a successful turbo task and a successful GitHub action. I want an unsuccessful GitHub action if the migrations fail!


Bug in calling NLU Service

I ran the code but it gave error - responsejson is not subscriptable.
I updated the last line of function analyze_using_NLU(text_content) which resolved the issue
Existing Line:
return response
Updated Line:
return response.get_result()
def analyze_using_NLU(text_content):
'''
Call Watson Natural Language Understanding service to obtain analysis results.
'''
response = natural_language_understanding.analyze(
text= text_content,
features=Features(
entities=EntitiesOptions(),
relations=RelationsOptions(),
keywords= KeywordsOptions())
)
return response.get_result()

Hi @sumitdua10
I have updated the Notebook. There are some changes with the latest version of the Watson Developer Cloud. So instead of !pip install --upgrade watson-developer-cloud change to !pip install watson-developer-cloud==1.5. It should work :)


Cant load body for saved object. Only headers are loaded

Your description here
Expected outcome
What should happen?
Actual outcome
What happened?
Versions
App: 10.0.3
Platform: 5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
Steps to reproduce

After update i've tried to load saved request and body didnt appear

Hi,
I can't reproduce the problem.
Is that body edited in "raw" editor? Sometimes there's an issue with code mirror where you have to click on the editor for the content to show up. Is that the case?

Hi, Sorry! It turns that data is in textarea but didnt show up until i clicked on it first time. Now its ok :)

That's actually a problem with the app. It should handle this issue properly.
I just fixed it. Release it's on its way.


Formatting cleanups and a few categorizations

Formatting changes:

Neatened header formatting (adding space after headers, setting top level headers where necessary)
Neatened list formatting (standardized bullet point style within documents, standardized spacing in lists, adding spacing around lists)
Neatened URLs (remove <s, clean up bare URLs)
Removed trailing newlines or spaces

Organization changes:

created "Identity Systems" header in list-projects doc (was a bullet point but looked intended to be a header)
moved several "to be categorized" items under the correct header

Categorization changes:

Moved vmware-samples/containers-with-sboms to Mapping the Domain under list of e2e projects
Moved awesome-sbom to Mapping the Domain as another collated source of information - let me know if that's not the ideal location, but seemed best for overarching analysis
Moved cyclonedx-cli to "Scanning and Analysis" section of project list doc
Removed the Michael Lieberman repo from the "To be categorized" section - it's in Mapping the Domain

Updated link for this project as it's no longer in their personal repo

Updated link for gitBOM

Happy to make changes as needed, lmk!

This looks great! Thanks, Lee!


start.sh bug

Describe the bug
Hello, I have found an issue with the .env variables and the start.sh "sed" filter in a variable.
The problem is that when you modify the variable "Death_Penalty" once you have started a docker, its getting wrong values because it is only filtering a-zA-Z values and adding it, so its ignoring the default "1" value and adding on top of it.
For example, I change this var to in my .env:
DEATH_PENALTY=Item
It does add in the generated .ini file "Item1".
The filter of the script must be changed to filter numerics also so it doesnt overlap
So in this scope in line 242 we need to change it:
if [ -n "${DEATH_PENALTY}" ]; then
echo "DEATH_PENALTY=$DEATH_PENALTY"
sed -E -i "s/DeathPenalty=[a-zA-Z]*/DeathPenalty=$DEATH_PENALTY/" /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
fi
I think it should work as [a-zA-Z0-9]
Thanks in advance!

The problem is that when you modify the variable "Death_Penalty" once you have started a docker, its getting wrong values because it is only filtering a-zA-Z values and adding it, so its ignoring the default "1" value and adding on top of it.

I'm not sure why you have a default value of 1, it's default is All in the INI file.

@AaronAgg I do not have any number in my DeathPenalty setting, and that should not happen. This might still be a bug from the 0.18.0 version.
Please make sure you are on the latest version (0.21.0):

docker compose down --rmi all
docker compose up -d

If that does not work, please remove the PalWorldSettings.ini and restart the container.
Please reopen this issue if the issue persists


Create mvp1-template8-service-provider-semmed.json

adding mvp1 template for bte/service provider semmed ingest - based treats predictions

Note that this template is essentially identical to the one defined by tmkp to generate treats predictions from treats or studied or applied to treat edges found in TMKP. (the only difference is the attribute constraint in the tmkp defined template, which I think will be removed).  These templates are identical because the cqs spec does not provide a way define a primary source filter (which is the differentia we need here - semmeddb vs tmkp).
Consider implications of this, and what if anything we need to do to address any issues arising.
I think for now we can just remove the attribute constraint for the tmkp template, and collapse the two templates (template 8 and 10) into one.  as defined, this template should generate all desired treats predictions from both semmed and tmkp content.
But longer term, we should write into the cqs spec a way to constrain/filter based on primary source - as KP / ARA level allow lists are often not sufficient to do this.

@mbrush I agree with your comment. In the short term this should replicate results as they were prior to the treats refactor. In the longer term, we likely will want to differentiate based on primary source as you mentioned.

To clarify, the only reason the allowlist parameter is insufficient is because both templates point to infores:service-provider-trapi. Is that correct? If so, then perhaps the better solution is for infores:service-provider-trapi to expose more granular TRAPI endpoints? FWIW, Multiomics EHR Risk Provider encountered similar issues (see #1).


new embed: add support for dropdown with multiple samples

a solution is implemented here: https://github.com/dart-lang/site-www/pull/1805


Where to change section name color

Hi,
This is really a awesome CV template, I really like this one.
I am not very familiar with .cls and I spent a lot of time looking for the code defining the color of the first three characters of a section name. But I still cannot find it. Would you mind to specify that?
Thnaks.

I have found it....
Thanks anyway.

thank you for your interest on my Awesome-CV!
Good luck!
Sorry for my late reply


Added docs for Download Artifacts from S3/GCS

Harness Developer Pull Request
Added the docs for Download Artifacts from S3/GCS.
What Type of PR is This?

[ ] Issue
[X] Feature
[ ] Maintenance/Chore

House Keeping

[X] Tested Locally

[X] Optional Screenshot.

Refer below image for Download Artifacts from S3:-

Refer below image for Download Artifacts from GCS:-

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65ca2a45796107f4634c76fd--harness-developer.netlify.app

@shiv-am0 Thanks for this contribution. I have moved these files in another PR. In order to avoid merge conflicts, I will transfer your changes to that PR and then close this PR.

Combined with another PR to avoid merge conflicts.


package.json mentions non existing files

package.json mentions non existing files. It looks like "menu" is there instead of "webapp"
  "module": "dist/react-telegram-menu.esm.js",
  "size-limit": [
    {
      "path": "dist/react-telegram-menu.cjs.production.min.js",
      "limit": "10 KB"
    },
    {
      "path": "dist/react-telegram-menu.esm.js",
      "limit": "10 KB"
    }
  ],

Hi, you're right.
It was made by mistake.
I've pushed a commit to fix that.


Postprocessing was skipped due to some error (C#)

Describe the bug
When setting a post processor C# script I get the following error:

Postprocessing was skipped due to some error.
Script error (Class name not equal filename? Or not inherited from Node?). -> Postprocessing skipped

However if you check the Zip you can see that the class name and file name are the same and it inherits from node, has the correct method name, and the correct parameters.
To Reproduce

Create new project
Add this plugin
Add basic Tiled map
Add post processor in import settings
Reimport

Expected behavior
Post processor runs? :D
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Windows
Version: 10
Godot Version: v4.0.stable.mono.official [92bee43ad]
Tiled Version: 1.10.0

Examle map (zipped)
This includes the map, tileset, and my post processor file
MapReproduce.zip

Restarting / building the project didn't work but attaching the debugger did indeed fix it, that's a very interesting bug :D well solved for now I suppose :)


python3 Support

python2 is EOL Jan 1, 2020.
I am going to see what is involved in updating git-fat but even if I can't it is good to have an issue open to track progress

Is this project dead?  I hope not.  I like the simplicity of the model compared to other large file support systems.

Is this project dead?  I hope not.  I like the simplicity of the model compared to other large file support systems.

I haven't had the motivation to go back and fix the few things.
I developed an alternative with a few more features but I lost steam. I've considered parring it down and releasing it. It's basically like git-fat but uses fewer command chains and does more logic in Python. And the biggest thing is that it lets you keep data on the server only. And support rclone
Are you interested? I haven't found the time to do it but it shouldn't be to hard to get to early beta.

I haven't had the motivation to go back and fix the few things.
I developed an alternative with a few more features but I lost steam. I've considered parring it down and releasing it. It's basically like git-fat but uses fewer command chains and does more logic in Python. And the biggest thing is that it lets you keep data on the server only. And support rclone
Are you interested? I haven't found the time to do it but it shouldn't be to hard to get to early beta.

I'm certainly curious.  I just found this:
https://github.com/ciena-blueplanet/git-fat
but it also appears to be defunct :(

I'm certainly curious.  I just found this:
https://github.com/ciena-blueplanet/git-fat
but it also appears to be defunct :(

Hi, sorry to be unresponsive. The simple state is that this project's test suite isn't sufficient for me to be able to quickly review PRs and I'm stretched super thin these days. I'm not using git-fat in any current projects and I feel it's more important to ensure that all former users continue to be supported without surprises than to deliver new features. Yes, Python-3 support is super overdue, and I'd definitely have finished if I were using git-fat.
The best case scenario in my opinion would be for someone else to take over maintainership. Second best would be to solicit contributions that improve testing.

@jedbrown Thank you for creating git-fat.  I strongly believe it has a place.
You say the test suite is insufficient.  I'd love to help, but would need some mentoring.  You've already approved #95 which apparently improves the test suite.  What's holding it back from being merged?

Can someone take over this project? Python3 support is urgently needed. I don't know enough python to take over. Otherwise I would have. Git-fat is the simplest way to large files with git.

I had pull request #95 but didn't finish. I kind of lost steam and it didn't feel worth it.
I also started my own project that was heavily inspired by git-fat but worked with rclone. It was pretty much down but I decided to abandon it since there were some edge cases I didn't want to deal with and it was large and complex.
I started a simpler one but also gave up.
The issue is, there is a lot of complexity and keeping up with the latest APIs. Plus, I kept finding that my use case didn't match others.
My Suggestion
I think the best answer is to use git-lfs with a custom transfer agent to git the best of both worlds. You get the support, documentation, etc of git-lfs with the custom storage of git-fat.
And there are a few options including an alpha/beta one I wrote!

lfs-folderstore: Store data in a folder (probably a shared one). This is what inspired me to write one, Also used a lot
lfsrclone. This is my tool but it is beta at best. I use it and it works. And rclone is perfect for this. You can access things via SFTP so you could use it where you used to use rsync. And there is no benefit to rsync anyway since files don't change
git-lfs-rsync-agent: Also seems abandoned but may still work if you are dead-set on rsync.
git-lfs-swift-transfer-agent: Abandoned but in python so I found it useful!

Thank you for your reply. When I tested last time, none of these plugin supported simple ssh. the 'rsync-agent' is simply flawed. It uses tmp directory to transfer the file completely ignoring the $TMPDIR variable. This breaks our server which has small tmp size.  Which one has ssh support and a replacement for git-fat?

Has anyone tried using 2to3 to support python3?


Collecting literature for literature review

Immediate/lazy Scholar search:

[x] When in Doubt... Cooperation in a Noisy Prisoner's Dilemma
[x] Evolving Behaviors in the Iterated Prisoner's Dilemma
[x]
Finite Rationality and Interpersonal Complexity in Repeated Games
[x]
The Optimal Level of Generosity in a Selfish, Uncertain Environment
[x] Discounting and Reciprocity in an Iterated Prisoner's Dilemma
[x] Expecting Continued Play in Prisoner's Dilemma Games
[x]
Evolution, neural networks, games, and intelligence
[x] Agent-Based Simulation in the Study of Social Dilemmas
[ ] Twenty Years on: The Evolution of Cooperation Revisited
[ ] Repeated games, finite automata, and complexity
[ ] Cooperation in the Prisoner's Dilemma

Papers about tournaments with access to source code:

Robust Cooperation in the Prisoner's Dilemma: Program Equilibrium via Provability Logic
Blog post: Prisoner's Dilemma (with visible source code) Tournament

[ ] [A paper about simulating evolutionary games with Python](http://jasss.soc.surrey.ac.uk/11/3/8/8.pdf

[x] Models of cooperation based on the Prisoner’s Dilemma and the Snowdrift game

[x] Rational Cooperation in the Finitely Repeated Prisoners’ Dilemma

[x] Cooperation in the Prisoner's Dilemma with Anonymous Random Matching

This author (a friend) has a bunch of papers on reproducible research:
http://arxiv.org/a/crick_t_1.html

[ ] http://www.ncbi.nlm.nih.gov/pubmed/8022193

[ ] https://books.google.co.uk/books?hl=en&lr=&id=ddc9AAAAIAAJ&oi=fnd&pg=PA1&dq=the+evolution+of+strategies+in+the+iterated+prisoner's+dilemma&ots=0wetMwzHU2&sig=fo6Xrjbpjlt09QRPrn1wSRqtzHM#v=onepage&q=the evolution of strategies in the iterated prisoner's dilemma&f=false

Some papers Marc sent my way:

[x] Adaptive Dynamics of Extortion and Compliance
[x] The Art of War: Beyond Memory-one Strategies in Population Games

https://github.com/Axelrod-Python/Axelrod/issues/387


Fix layout

Tables are all uneven and annoying. Find a way to fix this.

Doesn't look as though Github flavoured markdown supports table formatting?
https://help.github.com/articles/organizing-information-with-tables/

Yeah, I've been pondering how to solve this as it doesn't let you do much :/


Make the code readable

[ ] Figure out HOW to do that
[ ] Add my modifications into the code
[ ] (Optional) Have fun

Done


[BUG] Container SIGTERM does nothing on Docker Hub images

Describe the bug
Sending the Docker container a SIGTERM fails to stop OpenSearch. This makes shutdown from compose extraordinarily slow as it now waits for the timeout to send a kill signal to the search server.
#13851 related, but I reproduced this issue on 2.11 as well
Related component
Cluster Manager
To Reproduce
$ docker run -d --ulimit nofile=65536:65536 --rm -e 'discovery.type=single-node' -e 'OPENSEARCH_INITIAL_ADMIN_PASSWORD=Hunter2!IsInsecure' opensearchproject/opensearch:2.14.0
69e99a4309fe9f1cbd7a8591c5b82361a5f234ae5dd18adb8e778e50e33f1d5f
$ sleep 5
$ docker kill --signal=SIGTERM 69e99a4309fe9f1cbd7a8591c5b82361a5f234ae5dd18adb8e778e50e33f1d5f
69e99a4309fe9f1cbd7a8591c5b82361a5f234ae5dd18adb8e778e50e33f1d5f
$ sleep 5
$ docker ps
CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS          PORTS                                    NAMES
69e99a4309fe   opensearchproject/opensearch:2.14.0   "./opensearch-docker…"   25 seconds ago   Up 24 seconds   9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp   serene_chebyshev

Expected behavior
OpenSearch should shut down after receiving a SIGTERM.
Additional Details
No response

might be a duplicate of https://github.com/opensearch-project/OpenSearch/issues/13851
It does seem to work in v1

Was fixed by https://github.com/opensearch-project/opensearch-build/pull/4694 in the 2.15 release.


Routing topic 3.0 updates

Fixes #9552
Fixes #14291
Internal Review Topic

Should we work on #13245 with this update, or leave it for another time (or place given that it really is in an SPA topic)? I'm very 🏃🏃😅 busy. If it can wait, let's leave that open and we'll get to it later.
I didn't see Announcement issues. Anything new for 3.0 for routing?
New 3.0 sample app.
Whole-topic versioning.
In 3.0 content, I kept the Differences from earlier versions of routing section but removed some other 'this is new' language elsewhere.

WRT new for 3.0, I was only able to quickly piece together this for the release notes topic from the blog post (which is probably not exactly right) ...

Endpoint Routing, which allows frameworks (for example, MVC) to work well with middleware, is enhanced:

The order of middleware and endpoints is configurable in the request processing pipeline of Startup.Configure.
Endpoints and middleware compose well with other ASP.NET Core-based technologies, such as Health Checks.
Endpoints can implement a policy, such as CORS or authorization, in both middleware and MVC.
Filters and attributes can be placed on methods in controllers.

Give me a blurb or troubleshoot that, and I'll get it in here.
On the implement a policy bit, I can cross-link. I think that work is done/shown in auth and Health Checks topics. Not sure about the filters and attributes on methods tho ... I'll need to look :eyes:.

@rynowak please review or suggest a reviewer
@mkArtakMSFT

It's hard for me to get a sense of what this doc is going to look like when someone reads the 3.0 version.

Internal Review Topic

I think that should be ...
https://review.docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-3.0&branch=pr-en-us-14334

@Rick-Anderson Ignore the build warning ... that was fixed ages ago on another PR.


opt Reduce jvm heap memory consumed by profiles of BrokerLoadJo…

…b (#31985)

it may cause FE OOM when there are a lot of broker load jobs if the profile is enabled

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


We don't need to run ruby 2.0 in travis.

It only matters on Windows and so it gets run in
appveyor

:+1:

:+1:


AsioDriver.ReleaseComAsioDriver() causes application to crash

I am trying to use to the "Generic Low Latency ASIO Driver", which is created by Steinberg and comes with their DAW software Cubase. This driver allows to use your internal sound card with ASIO. I create an instance of the AsioDriver class to get some info (like the current sample rate, ...). At the end I call the method ReleaseComAsioDriver(), but this causes the application to crash. I can't catch an error with a try-statement, the application just quits ...
This only happens with this Asio Driver, other drivers (from external sound cards) works perfectly.
EDIT: It seems this driver is a 64bit driver. If I run the application in 32bit, the method GetASIODriverNames() doesn't return this Asio Driver.

Not sure why that method would cause the problem. Possibly something that's been called beforehand has failed. Perhaps you can debug and see if the call to DisposeBuffers (in AsioDriverExt.ReleaseDriver) throws an exception (it currently silently swallows exceptions)

So I'm running this code now, only with the ReleaseDriver in AsioDriverExt. This code doesn't throw any exception. The values from the capabilities class seems correct.
I tried using this driver with the NAudio Demo application to simply playback a WAV file. This also failed, but didn't result in an app crash. Play back just didn't start, with no error message. I don't have any clue what could cause this.
Dim driv As AsioDriver = AsioDriver.GetAsioDriverByName(driverName)
                Try
                    Dim extDriv As AsioDriverExt = New AsioDriverExt(driv)
                    Dim cap As AsioDriverCapability = extDriv.Capabilities
                    With cap
                        _inputLatency = .InputLatency
                        _outputLatency = .OutputLatency
                        _HWInputChannelsCount = .NbInputChannels
                        For i As Integer = 0 To .NbInputChannels - 1
                            _HWInputChannels.Add(.InputChannelInfos(i).name)
                            _InputChannels.Add(.InputChannelInfos(i).name)
                        Next
                        _HWOutputChannelsCount = .NbOutputChannels
                        For i As Integer = 0 To .NbOutputChannels - 1
                            _HWOutputChannels.Add(.OutputChannelInfos(i).name)
                            _OutputChannels.Add(.OutputChannelInfos(i).name)
                        Next

                        _HWSampleRate = .SampleRate
                        _HWBufferCapacity = .BufferPreferredSize
                    End With
                    extDriv.ReleaseDriver()

                    initiated = True
                    _state = AudioCoreDeviceState.Connected
                Catch ex As Exception
                    _state = AudioCoreDeviceState.NotConnected
                    RaiseEvent StateChanged(Me, EventArgs.Empty)
                End Try

Do you have any other ASIO devices you can try on? Maybe there is an issue just with this particular ASIO driver.

I tried with 3 other ASIO devices (all external sound bords). No problems here. It seems this only occurs when using this particular driver.
I used a program from Adobe with this driver (just to check if the Steinberg company didn't prevent other software from using this driver), and this program could communicate with this driver.
So no clue what is happening here ...


"Kyber can not handle your amount, please reduce amount" error

The error "Kyber can not handle your amount, please reduce amount" sometimes appear when source amount is 0 or no action is made.
Config: Win 10 - 64 bit, Google chrome, Firefox.
Wallet: all.

Fixed


[BUG]: [QA | Localization (some words are missing in Malayalam]

Describe the bug
Some words need to be localized in Malayalam, still showing in English in Case Filing page
To Reproduce
Steps to reproduce the behavior:

Go to File a Case
Click on File a Case
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

hi @devarajd94 i have added some new strings in loacalisation doc in commons and hearings, and in Cases some malayalam text is still missing
https://docs.google.com/spreadsheets/d/1Cbf1w77Khc8Z_U0QSRF9xy0EZ17YdzICQCcpfUkyK_4/edit?gid=790431664#gid=790431664
cc : @Ramu-kandimalla @rajeshcherukumalli

Hi, issue is resolved


Allow private XYZ URLs when using an external WMS basemap on the editor

A public WMS endpoint might expose internal (private) XYZ URLs. Those URLs are not accesible from the CDN, but the user's browser can see them. It'll be nice if there could be a way to prevent those URLs from going through the CDN, much like in the use case described on #3882
You can see an example of this by trying to use this WMS endpoint:
http://api.maps.vic.gov.au/vicmapapi-mercator/map-wm/wms

@javisantana please take a look, it comes from a big lead we have in australia

umh, maybe checking a 403 will do the work but we are assuming too much I think

if we want to stay on the safe side, i think we could simply add a checkbox to the WMS basemap import form, so that it's the user who decides if she wants to skip the CDN.

that would expose implementation details to the user. I don't think this is going to work, our proxy server needs to contact the origin WMS server and it's ourside the client network so I don't see this working except the proxy is inside user netowkr

Another option would be just parsing the URL, looking for private IPs as per RFC 1918, i.e.:

<IP_ADDRESS> - <IP_ADDRESS>  (10/8 prefix)
<IP_ADDRESS> - <IP_ADDRESS>  (172.16/12 prefix)
<IP_ADDRESS> - <IP_ADDRESS> (192.168/16 prefix)

For URLs with FQDN, we would get the hostname, try to resolve it and, if resolving fails, bypass the proxy too.
Does this option look any better?

I don't think it will work, it's not a matter of not using CDN, if we skip the CDN the proxy still needs to connect to that network and it will be unreachable. THe only solution would be to do what you propose + having an internal wms proxy.
We can't bypass the proxy since WMS servers does not have CORS enabled

There has been no activity on this issue for more several months. We are closing it. If you think this still needs to be addressed please open a new issue.


fix: Clamp storage volumes to be within min & max volume ranges.

This accounts for small floating point rounding errors and tolerances from LP results. In some cases the resulting volume will be a rounding error above or below the bounds.
This also replicates behaviour from v1.

I've updated this slightly to panic if the volume is too far out of range.


Continuously processing

Hello, I’ve followed each step: downloading the HTML from Kindle, installing the extension, and clicking on the .html file I want to upload. However, when the script-running animation starts, nothing happens. It continues indefinitely without uploading my highlights or creating any page. Your assistance would be greatly appreciated as your extension is extremely useful to me. Have a great day! - Saidelo

Voici :)
Influence et manipulation : L'art de la persuasion - Bloc-notes.html.zip

Hi there. Same for me, "Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'textContent')" at Array.filter in the console log

Thanks for the response, this bug has prio 1 and will be fixed in the next days - if you can also upload your file it would be perfect, thanks!


Question: How to use (external) transformer-based embeddings?

Hi,
your idea of "concise concepts" sounds really intriguing! However, I would like to use transformer-based embeddings - as far as I can see it from the source code, you rely on (word, vector) tuples in a large list like for instance in GloVe or Word2Vec models, right?
So, how could one implement this using HuggingFace models like spacy-transformer's tok2vec interface, maybe? Should I use the texts to be tagged for pretraining (i.e. "fine-tuning") a HF transformer model and then create this list by tokenizing all words (maybe getting rid of fill words or the like before) from the texts? Afterwards I'd have the same setting as with the current models, I guess.
Or maybe I am completely off the right track :-)

I have to add that extended pretraining might not be necessary if there is no specific vocabulary needed for NER.
I also have to add that this list of tuples (word, vector) needs processing all "sentences" from the input texts (the ones used for tagging with NER) with the transformer (like BERT) so that one can use the token embeddings as vectors.

It makes sense to me, but does it make sense to anyone else? :)

And again, after looking more closely at the underlying code, a "drop-in" replacement with for instance transformer-based embeddings (i.e. vectors) seems to be easiest by transforming those to/wrapping with a gensim.KeyedVector format!?
It would be of great help if the documentation for custom embedding models would state this (i.e. "use KeyedVector") because neither from the text nor the example it's apparent that you do not need a ready-made gensim model!

Hi @repodiac, sorry for the late reply. I have been a bit busy during the past week. I guess that you could process all texts to obtain mean/max- pooled embeddings for each one of the word you might want to pick-up on based on the previous context you might have found them in, but this introduces significant overhead(having to embed a set of texts as knowledge base for the KeyedVector set).

And again, after looking more closely at the underlying code, a "drop-in" replacement with for instance transformer-based embeddings (i.e. vectors) seems to be easiest by transforming those to/wrapping with a gensim.KeyedVector format!?
How do you propose to do this? By default transforms use don't use complete words.


updated some intros

Please instruct how to merge these into the CSV so I can keep editing.

For each tab of the spreadsheet (BFDR, VRCL, or VRDR), do 'save as' .csv file and put it in the input/mapping folder (same location where the excel sheet lives). You should already see files in that folder called BFDR_Profile_Intros.csv and VRCL_Profile_Intros.csv, so you'd essentially be replacing those when you save your updated csv files.


test_mh_reporter

analyze: bnb-btc, binance, 2024-02-02, 2024-02-07

analyze: bnb-btc, binance, 2024-02-02, 2024-02-07

analyze: bnb-btc, binance, 2024-02-02, 2024-02-07

date: '2024-02-02 — 2024-02-06'
entities: 'Binance, BNB, BTC'
title: 'Analyzing Market Behavior and Anomalies in BNB/BTC Trading on Binance'
Summary

A comprehensive analysis of the BNB/BTC trading pair on Binance from February 2 to February 6, 2024, reveals significant insights into market behavior and potential anomalies.
Volume and Price Stability: Despite fluctuations in trading volume, the price of BNB relative to BTC remained remarkably stable, with minimal volatility observed throughout the period.
Transaction Size and Buy/Sell Ratio: The average transaction size and buy/sell ratio exhibited variations, suggesting shifts in trading strategies or participant behavior over the analyzed period.
Adherence to Benford's Law: The trading data's conformity to Benford's Law varied, indicating potential anomalies in trade distributions that warrant further investigation.
Volume-Volatility Correlation: The correlation between trading volume and market volatility was inconsistent, with periods of high correlation interspersed with times of divergence.
Market Manipulation Indicators: Certain metrics, such as the unusually high buy/sell ratio at specific hours, raise questions about potential market manipulation tactics, including wash trading.

Detailed Analysis
Volume and Price Stability
Throughout the analyzed period, the BNB/BTC trading pair on Binance showed a remarkable price stability, with the volume-weighted average price (VWAP) consistently hovering around 0.0071 BTC. This stability occurred despite significant variations in trading volume, suggesting a balanced market condition with equal buying and selling pressures.
Transaction Size and Buy/Sell Ratio
The average transaction size fluctuated, indicating changes in trader behavior or market participation. Notably, periods of increased average transaction size were often accompanied by shifts in the buy/sell ratio, suggesting that larger traders might be influencing market dynamics.
Adherence to Benford's Law
The conformity of the first-digit distribution of trade sizes to Benford's Law varied throughout the period, with certain hours showing significant deviations. These deviations could indicate anomalous trading patterns, potentially pointing to artificial trading activities or market manipulation.
Volume-Volatility Correlation
The correlation between trading volume and market volatility showed inconsistency, with the volume-volatility correlation (VV Correlation) metric fluctuating significantly. This suggests that the relationship between trade volume and price movements was not constant, possibly due to external market influences or strategic trading behaviors.
Potential Market Manipulation
Certain metrics, such as the high buy/sell ratio observed during the final hours of the analyzed period, raise concerns about potential market manipulation tactics. These include wash trading, where artificially high trading volumes are created to influence market perception and price movements.
Conclusion
The analysis of the BNB/BTC trading pair on Binance from February 2 to February 6, 2024, reveals a complex market dynamic with signs of potential anomalies and manipulation tactics. While the market showed remarkable price stability, the variations in transaction size, buy/sell ratio, and adherence to Benford's Law suggest that further investigation is warranted to ensure market integrity.
{{< figure src="volume_hist.png" alt="bnb-btc volume dist" caption="Volume distribution" loading="lazy" >}}
{{< figure src="crypto_metrics.png" alt="bnb-btc market metrics" caption="Market behavior metrics" loading="lazy" >}}
{{< figure src="benford_law.png" alt="bnb-btc Benford's Law analysis" caption="Benford's Law conformity" loading="lazy" >}}
{{< figure src="vv_correlation.png" alt="bnb-btc volume-volatility correlation" caption="Volume-volatility correlation" loading="lazy" >}}


R31. Automatically assign a valuator depending on the category

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Mock up

Does this issue could impact on users private data?
Acceptance criteria

[x] As a role valuator assign in one (or more) category, I'm automatically assign as a valuator in proposals which has the category I'm assign

Technical specifications
See https://github.com/openpoke/decidim-module-reporting-proposals/issues/26
Implementation

[x] https://github.com/openpoke/decidim-module-reporting-proposals/pull/30

Testing
See #40
Additional context

closed by https://github.com/openpoke/decidim-module-reporting-proposals/pull/30


Destructor missing for templated class (like smart pointer)

Input C/C++ Header
template<class T>
class Pointer {
 private:
  T* data;
  char xx;
  char yy;
 public:
  Pointer(T* data);
  ~Pointer();

  int method();

  T& operator*();
  T* operator->();
};

class A {
 public:
  int b, c, d;
  Pointer x;
};

Pointer MakeA();

Bindgen Invocation
$ bindgen test_bind.hpp -o src/bindings.rs -- -x c++ -std=c++11

Actual Results
#[repr(C)]
#[derive(Debug)]
pub struct Pointer<T> {
    pub data: *mut T,
    pub xx: ::std::os::raw::c_char,
    pub yy: ::std::os::raw::c_char,
    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
}
#[repr(C)]
#[derive(Debug)]
pub struct A {
    pub b: ::std::os::raw::c_int,
    pub c: ::std::os::raw::c_int,
    pub d: ::std::os::raw::c_int,
    pub x: Pointer,
}
#[test]
fn bindgen_test_layout_A() {
    assert_eq!(::std::mem::size_of::() , 32usize , concat ! (
               "Size of: " , stringify ! ( A ) ));
    assert_eq! (::std::mem::align_of::() , 8usize , concat ! (
                "Alignment of " , stringify ! ( A ) ));
    assert_eq! (unsafe { & ( * ( 0 as * const A ) ) . b as * const _ as usize
                } , 0usize , concat ! (
                "Alignment of field: " , stringify ! ( A ) , "::" , stringify
                ! ( b ) ));
    assert_eq! (unsafe { & ( * ( 0 as * const A ) ) . c as * const _ as usize
                } , 4usize , concat ! (
                "Alignment of field: " , stringify ! ( A ) , "::" , stringify
                ! ( c ) ));
    assert_eq! (unsafe { & ( * ( 0 as * const A ) ) . d as * const _ as usize
                } , 8usize , concat ! (
                "Alignment of field: " , stringify ! ( A ) , "::" , stringify
                ! ( d ) ));
    assert_eq! (unsafe { & ( * ( 0 as * const A ) ) . x as * const _ as usize
                } , 16usize , concat ! (
                "Alignment of field: " , stringify ! ( A ) , "::" , stringify
                ! ( x ) ));
}
extern "C" {
    #[link_name = "_Z5MakeAv"]
    pub fn MakeA() -> Pointer;
}
#[test]
fn __bindgen_test_layout_Pointer_open0_A_close0_instantiation() {
    assert_eq!(::std::mem::size_of::<Pointer>() , 16usize , concat ! (
               "Size of template specialization: " , stringify ! ( Pointer
               ) ));
    assert_eq!(::std::mem::align_of::<Pointer>() , 8usize , concat ! (
               "Alignment of template specialization: " , stringify ! (
               Pointer ) ));
}
#[test]
fn __bindgen_test_layout_Pointer_open0_A_close0_instantiation_1() {
    assert_eq!(::std::mem::size_of::<Pointer>() , 16usize , concat ! (
               "Size of template specialization: " , stringify ! ( Pointer
               ) ));
    assert_eq!(::std::mem::align_of::<Pointer>() , 8usize , concat ! (
               "Alignment of template specialization: " , stringify ! (
               Pointer ) ));
}

Expected Results
Destructor for Pointer is missing.
Same behaviour happens with ordinary c++ shared_ptr.

Thanks for the bug report! This is, unfortunately, expected for two reasons:

The destructor is inline (I was inspired to start an FAQ to explain this: https://github.com/rust-lang-nursery/rust-bindgen/pull/1020)

We don't know what monomorphizations of the function exist (or will exist!) and we aren't a C++ compiler, so we can't generate new monomorphizations. We do have #492 open to generate bindings to explicitly instantiated templates.

I'm going to close this issue, since I think #492 covers all the actionable bits.


[New game]: Whack a mole game

🎮 Game Request
IN this game a mole will come out of the pipes and if you click on it then your points will increase
But also a plant will come so if you click on the plant then game will over .
Point down the features

In this game their will be nine pipes out of which a mole will come and user have to click on the mole before it disappear.
To increase the difficulty a plant also come from holes and if user click on the plant then game will over.In this game their will be nine pipes out of which a mole will come and user have to click on the mole before it disappear.
To increase the difficulty a plant also come from holes and if user click on the plant then game will over.
Every correct click on the mole will increase your point by 10.

Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

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

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


Different thresholds per status?

(GitHub doesn't allow transfer of issues across orgs so I manually copy-n-pasted this issue from: https://github.com/mozilla/remote-settings-uptake-health/issues/18)
Currently we only define the error threshold percent globally or per source.
But in some situations we may want to have different thresholds per status.
For example, we could consider that 5% of network errors is acceptable, whereas 2% of signature errors is too high.

Not applicable anymore


Sample-level reconstruction datasets

The reconstruction tab expected sample-level datasets instead of replicate-level ones. This needs to be clear in the documentation and also in the app.

Related: Guidance needs to be provided in documentation about the use of dummy variables for error where samples have only 1 replicate and error is not reported

Added x2 https://github.com/Tripati-Lab/BayClump/commit/80b81d62cff05fbdaa793c0022df795ab755cf24 Feel free to include additional details if necessary!


TextField show error "SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length" when typing space

I am getting this error after updating to 1.17.0 version. The text field used to work fine before. Whenever I type space it types extra space then unable to delete the text.
my code:
class SearchScreen extends StatefulWidget {
  @override
  _SearchScreenState createState() => _SearchScreenState();
}

class _SearchScreenState extends State<SearchScreen> {
  TextEditingController _searchController = TextEditingController();

  @override
  void dispose() {
    _searchController.dispose();
    super.dispose();
  }

  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider(
      create: (_) => SearchProvider(),
      child: Builder(builder: (context) {
        SearchProvider searchProv = Provider.of<SearchProvider>(context);
        return Scaffold(
          drawer: KiraDrawer(),
          appBar: AppBar(
            title: Form(
              key: _formKey,
              child: TextField(
                enableSuggestions: false,
                controller: _searchController,
                style: tajwal.copyWith(
                  color: Colors.white,
                  fontSize: 14,
                ),
                decoration: InputDecoration(
                    border: InputBorder.none,
                    hintText: 'أدخل للبحث',
                    hintStyle: TextStyle(color: Colors.white)),
                onChanged: (String value) {
                  print(value.length);
                  searchProv.fetchResults(newSearch: true, query: value);
                },
              ),
            ),
            actions: <Widget>[

            ],
          ),
          body: Container(),
        );
      }),
    );
  }

[  +30 ms] W/IInputConnectionWrapper(24634): getExtractedText on inactive InputConnection
[   +1 ms] W/IInputConnectionWrapper(24634): getTextBeforeCursor on inactive InputConnection
[  +34 ms] W/IInputConnectionWrapper(24634): getExtractedText on inactive InputConnection
[  +27 ms] W/IInputConnectionWrapper(24634): getTextBeforeCursor on inactive InputConnection
[  +31 ms] W/IInputConnectionWrapper(24634): getExtractedText on inactive InputConnection
[  +55 ms] W/IInputConnectionWrapper(24634): getTextBeforeCursor on inactive InputConnection
[ +121 ms] E/SpannableStringBuilder(24634): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
[   +7 ms] E/SpannableStringBuilder(24634): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
[  +20 ms] E/SpannableStringBuilder(24634): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
[   +1 ms] E/SpannableStringBuilder(24634): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
[+8628 ms] E/SpannableStringBuilder(24634): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
[ +112 ms] E/SpannableStringBuilder(24634): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.17.0, on Microsoft Windows [Version 10.0.18362.778], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Android Studio (version 3.5)
[√] VS Code (version 1.44.2)
[√] Connected device (1 available)

• No issues found!

duplicate of #9471

@TahaTesser - in this case the developer is't just concerned about the warning messages. The stated problem was:

Hi @Aljabri-Salman
So sorry, i missed your typing line
Here i reproduced your issue
Urdu (RTL) when tying space
I/flutter (27577): 0
I/flutter (27577): 1
I/flutter (27577): 2
I/flutter (27577): 3
I/flutter (27577): 5

English (LTR) when tying space
I/flutter (27577): 1
I/flutter (27577): 2
I/flutter (27577): 3
I/flutter (27577): 4
I/flutter (27577): 5

Code Sample
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  TextEditingController _searchController = TextEditingController();

  @override
  void dispose() {
    _searchController.dispose();
    super.dispose();
  }

  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Form(
          key: _formKey,
          child: TextField(
            enableSuggestions: false,
            controller: _searchController,
            decoration: InputDecoration(
                border: InputBorder.none,
                hintText: 'أدخل للبحث',
                hintStyle: TextStyle(color: Colors.white)),
            onChanged: (String value) {
              print(value.length);
              // searchProv.fetchResults(newSearch: true, query: value);
            },
          ),
        ),
        actions: <Widget>[],
      ),
      body: Container(),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel master, 1.19.0-2.0.pre.214, on Mac OS X 10.15.5 19F96, locale en-GB)
    • Flutter version 1.19.0-2.0.pre.214 at /Users/tahatesser/Code/flutter_master
    • Framework revision 1d395c5e18 (24 hours ago), 2020-05-31 07:41:50 -0700
    • Engine revision 923687f0e7
    • Dart version 2.9.0 (build 2.9.0-11.0.dev 6489a0c68d)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.45.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.11.0

[✓] Connected device (4 available)
    • SM M305F   • 32003c30dc19668f • android-arm64  • Android 10 (API 29)
    • macOS      • macOS            • darwin-x64     • Mac OS X 10.15.5 19F96
    • Web Server • web-server       • web-javascript • Flutter Tools
    • Chrome     • chrome           • web-javascript • Google Chrome 83.0.4103.61

• No issues found!

Thank you! @HansMuller

@TahaTesser  Thanks for the reply. I just test it without it the localization and it works fine. It seems the issue appear when I type English while the localization is Arabic (rtl) which my app is currently using.
I/flutter (21913): 0
I/flutter (21913): o
I/flutter (21913): 1
I/flutter (21913): on
I/flutter (21913): 2
I/flutter (21913): one
I/flutter (21913): 3
I/flutter (21913): one
I/flutter (21913): 5
E/SpannableStringBuilder(21913): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
E/SpannableStringBuilder(21913): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
I/flutter (21913): one p
I/flutter (21913): 6

Code with localization
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: [
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
          ],
          supportedLocales: [
            Locale('ar', 'AE'),
            Locale('en', 'EN'),
          ],
          locale: Locale('ar', 'AE'),
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  TextEditingController _searchController = TextEditingController();

  @override
  void dispose() {
    _searchController.dispose();
    super.dispose();
  }

  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Form(
          key: _formKey,
          child: TextField(
            enableSuggestions: false,
            controller: _searchController,
            decoration: InputDecoration(
                border: InputBorder.none,
                hintText: 'أدخل للبحث',
                hintStyle: TextStyle(color: Colors.white)),
            onChanged: (String value) {
              print(value);
              print(value.length);
              // searchProv.fetchResults(newSearch: true, query: value);
            },
          ),
        ),
        actions: <Widget>[],
      ),
      body: Container(),
    );
  }
}

flutter doctor -v

[√] Flutter (Channel stable, v1.17.2, on Microsoft Windows [Version 10.0.18362.836], locale en-US)
    • Flutter version 1.17.2 at C:\Users\sajj7\flutter
    • Framework revision 5f21edf8b6 (4 days ago), 2020-05-28 12:44:12 -0700
    • Engine revision b851c71829
    • Dart version 2.8.3

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\sajj7\AppData\Local\Android\sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] VS Code (version 1.45.1)
    • VS Code at C:\Users\sajj7\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.10.2

[√] Connected device (1 available)
    • INE LX2 • JUC7N18717002322 • android-arm64 • Android 9 (API 28)

• No issues found!

 pubspec.yaml
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  flutter_cupertino_localizations: ^1.0.1

@Aljabri-Salman Can you still reproduce this on master?  I tried your code on a few different devices and couldn't get the error message:
iPhoneXS simulator iOS 14
flutter: a
flutter: 1
flutter: ab
flutter: 2
flutter: abc
flutter: 3
flutter: abc
flutter: 5
flutter: abc d
flutter: 6

Pixel 3a emulator API 30
I/flutter (14243): a
I/flutter (14243): 1
I/flutter (14243): ab
I/flutter (14243): 2
I/flutter (14243): abc
I/flutter (14243): 3
I/flutter (14243): abc
I/flutter (14243): 5
I/flutter (14243): abc d
I/flutter (14243): 6

Physical Pixel2XL on Android 10
I/flutter ( 7655): a
I/flutter ( 7655): 1
I/flutter ( 7655): ab
I/flutter ( 7655): 2
I/flutter ( 7655): abc
I/flutter ( 7655): 3
I/flutter ( 7655): abc
I/flutter ( 7655): 5
I/flutter ( 7655): abc d
I/flutter ( 7655): 6

@justinmc I haven't test it on master yet, though I will. However, the main problem is the regression for me and not the error message. as you can see once you type space after "abc" the number of characters jumped to 5 from 3. It should be 4.

Ah got it!  I see that it's actually entering an LRM character in addition to a space.  That could be what was causing that error as well...

@GaryQian It seems that, in an RTL input with LTR characters in it, we insert an LRM character when the user types a space.  Could you explain why we do that if you know?  Our code seems deliberate and consistent about that, but the behavior above with an invisible character with every space seems wrong.
https://github.com/flutter/flutter/blob/06d0cd514e40e7aadd6ef820c30ffc39db7db233/packages/flutter/lib/src/widgets/editable_text.dart#L2616

This was part of a change to move handling of trailing whitespace handling out of the text shaping library as performing it at the layout level resulted in ignoring unicode spec and doing totally off-spec behavior. This technique allows spaces to appear at the end instead of being truncated.
I recently landed changes to fix the inability to backspace, if you try it on master/dev, I believe the inability to backspace is resolved.

Just tested it on master. The issue is still appearing.
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, 1.20.0-3.0.pre.77, on Microsoft Windows [Version 10.0.18362.900], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.4.0)
[√] Android Studio (version 3.5)
[√] VS Code (version 1.46.1)
[√] Connected device (5 available)

• No issues found!

I/flutter (21302): a
I/flutter (21302): 1
I/flutter (21302): ab
I/flutter (21302): 2
I/flutter (21302): abc
I/flutter (21302): 3
E/SpannableStringBuilder(21302): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
E/SpannableStringBuilder(21302): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
I/flutter (21302): abc
I/flutter (21302): 5
I/flutter (21302): abc d
I/flutter (21302): 6

This issue is causing so much problems for me. When users search in the TextField no results show due to the wrong number of characters (space).

@Aljabri-Salman Are you still seeing the backspace bug as well?  It seems to work for me if I'm doing it right:

One option for searching is to programmatically remove the LRM character 0x200E from the search query before submitting.  @GaryQian Is the intended behavior that users will have to remove LRM characters like this?

@justinmc the backspace seems to work fine in the master branch. but the extra character still. Could you tell me how to remove the LRM. How to remove using unicode?

Here you go, let me know if this doesn't make sense: https://dartpad.dartlang.org/769702188834e465be686d044f0591eb
If this is all good otherwise and working as intended, maybe we can update the docs to make people aware that the LRM characters will show up when LTR text is input in an RTL field.

Thanks a lot, that solved my problem.

Great!  This issue is WAI then.  I opened a quick PR to improve the docs around this to hopefully help other people with this problem. https://github.com/flutter/flutter/pull/61104

this issue have not been resolved to me yet. any help


Allow blacklisting of wireless interfaces

I added code to allow a specific wireless interface to be blacklisted. This is useful when running the RPi ZeroW in headless mode and setting up DroneBridge - otherwise, the internal card is set to monitor mode and you lose connection to the Pi.
I also refactored the code to make use of the same mechanism for the Wifi Hotspot, and to ensure that GROUND config is not used when setting up the AIR side as this can get confusing.

Looks good. Thanks for sharing 👍


⚠ Bofrost.lu has degraded performance

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

HTTP code: 200
Response time: 1475 ms

Resolved: Bofrost.lu performance has improved in 1cc24ba after 10 minutes.


⚠ Avatar API Endpoint has degraded performance

In 2f7a4dc, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 1863 ms

Resolved: Avatar API Endpoint performance has improved in 145d101 after 9 minutes.


Lane connector points disappear

Hey everyone,
first of all thx for keeping this mod allive!
I played arround 30 hours with it and then the bug appeared.
Basicly the counterpoints (see in pics) of the lane connectors only appear when I klick on a vissible point. I can set the p up, the lane will be fixe but after let it go the point dissapears once again so I can't set it.
I think the first time I encountered the bug there were no textures on two of the the "Three-lane roundabout road" mod  segments (one pictured as blue, the other was invisible; have no screenshots) so chances are thats the fault.
As I said, for about 30h everthing went nice and easy but out of nowhere both of my safegames are hit with it.
The Mods I had installed:

pre installed "cheats"
Tree brush
https://steamcommunity.com/sharedfiles/filedetails/?id=406723376&searchtext=tree+brush
Three-lane roundabout road
https://steamcommunity.com/sharedfiles/filedetails/?id=1719918737&searchtext=three-lane+roundabout
Small three Lane Roundabout
https://steamcommunity.com/sharedfiles/filedetails/?id=427484223&searchtext=three-lane+roundabout
Three lane one way
https://steamcommunity.com/sharedfiles/filedetails/?id=1265034299&searchtext=three+lanes+one+way
Improved Public Transport 2
https://steamcommunity.com/sharedfiles/filedetails/?id=928128676&searchtext=Improved+Public+transport+2
Automatic Bulldoze v2
https://steamcommunity.com/sharedfiles/filedetails/?id=639486063&searchtext=automatic+bulldoze

The steps I took since:

Tested with other savegames at different locations, road types
Reinstalled the game without unsubscribing mods
Reinstalled the game with un- and resubscribing all mods
Reinstalled the game with only TM:PE 10.18 (tried .19, too) subscribed, the pre installed ones  inactive and a new savegame.

The system runs with Win10 pro 64 on a Z270 i5 7600k, a gtx1080ti, 16Gb ramm and with the latest drivers (if that plays a role).

I'll hope to answer any upcoming questions,
greets

I am not sure if I understand everything but I don't see any bug on your screenshots.
When you want to connect two lanes you have to click on available source connector then select target connector, but just after selecting source connector you should see only valid available targets to which you can connect selected lane and nothing more.
It's feature, not a bug if you meant that. 😉

@krzychu124 The lane connector lines are missing for customised routes. For example in the last screenshot you can see a partial line from the orange circle. The route is set up, but the line is not showing.
@0livander Are you using a multiplayer mod (what's the user names appearing top-left corner of the screen)? Also, can you share your savegame and log file so we can investigate further.

ooh, I thought he just clicked source connector and then made screenshot (in state when he has to choose target)
In this can, as you said we need a savegame
The usernames - isn't it in-game discord overlay?

@krzychu124 Sorry it was a bit unprecise, @aubergine10 is right.
To better show it i'd have made this pics right away.
Where can I get the savegame from?
And yes the Icon in the top corner is just discord.

Details of how to get save game and log file are linked from this page: https://github.com/krzychu124/Cities-Skylines-Traffic-Manager-President-Edition/wiki/Report-a-Bug

Here is the safegame: https://steamcommunity.com/sharedfiles/filedetails/?id=1739780961
The Log:
output_log.txt

Looking at the additional screenshots you posted, it looks like it's working properly.

When you have no lane selected, all the input lanes have circles (no output lane circles).
When you select an input lane, other input lane circles are hidden, and the output lane circles appear.
When you deselect an input lane, it returns to the state 1 above.

@aubergine10 Yeay I see why I thought its a bug ... the circles weren't disappearing in my game in the first place. Now they do so it works propperly but looks different.
Thanks guys!!


Progress macro does nothing if Juno is not loaded

julia> using Juno, MacroTools

julia> @expand @progress for i = 1:10 sleep(1) end
:(for i = 1:10 # REPL[3], line 1:
        sleep(1)
    end)

I don't know when this changed, but this should lower to code that does the right thing when Juno is loaded (presumably the lower level progress API should work and just be a no-op). Otherwise, @progress cannot be used inside packages.

That changed in https://github.com/JunoLab/Juno.jl/pull/95.
We'd need to change this to something like
function _progress(name, ex)
  quote
    if isactive()
      Atom.Progress._progress($name, $(esc(ex)))
    else
      $(esc(ex))
    end
  end
end

but I'm not sure how to pass $(esc(ex)) as an expression to Atom.Progress._progress.

I think you want
function _progress(name, ex)
  quote
    if isactive()
      $(Atom.Progress._progress(name, ex))
    else
      $(esc(ex))
    end
  end
end

That's problematic because of
julia> @progress for i = 1:10 sleep(1) end
ERROR: UndefVarError: Atom not defined

when Atom isn't loaded as well...

Is there are particular reason for the macro expansion to be in Atom though? It seems like it's just lowering straight to the API defined in Juno anyway, right?

IIRC that's to avoid having Juno.jl depend on MacroTools (used here).

"Fixed" with https://github.com/JunoLab/Juno.jl/commit/40dc6765e9bb1e3e73af12d42cc88f2e5e9e08bd.

Actually fixed in latest Juno.jl/Atom.jl release.


Unable to launch Triton Server with hps backend using latest HugeCTR and hugectr_backend repos

Description
I'm unable to install and run the Triton server using the HPS backend.
Triton Information
Triton v23.06
To Reproduce
Steps to reproduce the behavior.
I'm following steps (1) and (2) here (https://github.com/triton-inference-server/hugectr_backend) under the Build the HPS Backend from Scratch section. I follow all the steps exactly.
I'm doing all the steps in a container built from this image (https://github.com/NVIDIA-Merlin/Merlin/blob/main/docker/dockerfile.ctr).
After trying to launch Triton using tritonserver --model-repository=/opt/hugectr_testing/data/test_dask/output/model_inference --backend-config=hps,ps=/opt/hugectr_testing/data/test_dask/output/model_inference/ps.json, I get the following:
I1120 07:09:59.322961 19420 pinned_memory_manager.cc:240] Pinned memory pool is created at '0x7f4fd6000000' with size 268435456
I1120 07:09:59.323460 19420 cuda_memory_manager.cc:105] CUDA memory pool is created on device 0 with size 67108864
I1120 07:09:59.333655 19420 model_lifecycle.cc:462] loading: criteo:1
I1120 07:09:59.333798 19420 model_lifecycle.cc:462] loading: criteo_nvt:1
I1120 07:09:59.370486 19420 hps.cc:62] TRITONBACKEND_Initialize: hps
I1120 07:09:59.370512 19420 hps.cc:69] Triton TRITONBACKEND API version: 1.13
I1120 07:09:59.370519 19420 hps.cc:73] 'hps' TRITONBACKEND API version: 1.15
I1120 07:09:59.370536 19420 hps.cc:150] TRITONBACKEND_Backend Finalize: HPSBackend
E1120 07:09:59.370572 19420 model_lifecycle.cc:626] failed to load 'criteo' version 1: Unsupported: Triton backend API version does not support this backend
I1120 07:09:59.370602 19420 model_lifecycle.cc:753] failed to load 'criteo'
I1120 07:09:59.521670 19436 pb_stub.cc:255]  Failed to initialize Python stub for auto-complete: ModuleNotFoundError: No module named 'hugectr'

At:
  /opt/hugectr_testing/data/test_dask/output/model_inference/criteo_nvt/1/model.py(1): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(883): exec_module
  <frozen importlib._bootstrap>(703): _load_unlocked
  <frozen importlib._bootstrap>(1006): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1027): _find_and_load

E1120 07:09:59.529317 19420 model_lifecycle.cc:626] failed to load 'criteo_nvt' version 1: Internal: ModuleNotFoundError: No module named 'hugectr'

At:
  /opt/hugectr_testing/data/test_dask/output/model_inference/criteo_nvt/1/model.py(1): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(883): exec_module
  <frozen importlib._bootstrap>(703): _load_unlocked
  <frozen importlib._bootstrap>(1006): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1027): _find_and_load

I1120 07:09:59.529369 19420 model_lifecycle.cc:753] failed to load 'criteo_nvt'
E1120 07:09:59.529473 19420 model_repository_manager.cc:562] Invalid argument: ensemble 'criteo_ens' depends on 'criteo' which has no loaded version. Model 'criteo' loading failed with error: version 1 is at UNAVAILABLE state: Unsupported: Triton backend API version does not support this backend;
I1120 07:09:59.529552 19420 server.cc:603]
+------------------+------+
| Repository Agent | Path |
+------------------+------+
+------------------+------+

I1120 07:09:59.529642 19420 server.cc:630]
+---------+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Backend | Path                                                  | Config                                                                                |
+---------+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
| python  | /opt/tritonserver/backends/python/libtriton_python.so | {"cmdline":{"auto-complete-config":"true","backend-directory":"/opt/tritonserver/backends","min-compute-capability":"6.000000","default-max-batch-size":"4"}} |
+---------+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+

I1120 07:09:59.529735 19420 server.cc:673]
+------------+---------+-------------------------------------------------------------------------------------------------+
| Model      | Version | Status                                                                                |
+------------+---------+-------------------------------------------------------------------------------------------------+
| criteo     | 1       | UNAVAILABLE: Unsupported: Triton backend API version does not support this backend              |
| criteo_nvt | 1       | UNAVAILABLE: Internal: ModuleNotFoundError: No module named 'hugectr'                           |
|            |         |                                                                                |
|            |         | At:                                                                                |
|            |         |   /opt/hugectr_testing/data/test_dask/output/model_inference/criteo_nvt/1/model.py(1): <module> |
|            |         |   <frozen importlib._bootstrap>(241): _call_with_frames_removed                                 |
|            |         |   <frozen importlib._bootstrap_external>(883): exec_module                                      |
|            |         |   <frozen importlib._bootstrap>(703): _load_unlocked                                            |
|            |         |   <frozen importlib._bootstrap>(1006): _find_and_load_unlocked                                  |
|            |         |   <frozen importlib._bootstrap>(1027): _find_and_load                                           |
+------------+---------+-------------------------------------------------------------------------------------------------+

I1120 07:09:59.575939 19420 metrics.cc:808] Collecting metrics for GPU 0: Tesla V100-SXM2-16GB
I1120 07:09:59.576319 19420 metrics.cc:701] Collecting CPU metrics
I1120 07:09:59.576525 19420 tritonserver.cc:2385]
+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Option                           | Value                                                                                |
+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| server_id                        | triton                                                                                |
| server_version                   | 2.35.0                                                                                |
| server_extensions                | classification sequence model_repository model_repository(unload_dependents) schedule_policy model_configuration system_shared_memory cuda_shared_memory binary_tensor_data parameters statistics trace loggin |
|                                  | g                                                                                |
| model_repository_path[0]         | /opt/hugectr_testing/data/test_dask/output/model_inference                                                                                |
| model_control_mode               | MODE_NONE                                                                                |
| strict_model_config              | 0                                                                                |
| rate_limit                       | OFF                                                                                |
| pinned_memory_pool_byte_size     | 268435456                                                                                |
| cuda_memory_pool_byte_size{0}    | 67108864                                                                                |
| min_supported_compute_capability | 6.0                                                                                |
| strict_readiness                 | 1                                                                                |
| exit_timeout                     | 30                                                                                |
| cache_enabled                    | 0                                                                                |
+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

I1120 07:09:59.576581 19420 server.cc:304] Waiting for in-flight requests to complete.
I1120 07:09:59.576592 19420 server.cc:320] Timeout 30: Found 0 model versions that have in-flight inferences
I1120 07:09:59.576617 19420 server.cc:335] All models are stopped, unloading models
I1120 07:09:59.576634 19420 server.cc:342] Timeout 30: Found 0 live models and 0 in-flight non-inference requests
error: creating server: Internal - failed to load all models

I trained my model using this example notebook: https://github.com/NVIDIA-Merlin/Merlin/blob/main/examples/scaling-criteo/03-Training-with-HugeCTR.ipynb
However, this notebook came out before the HugeCTR backend was merged with the HPS backend. As a result, I needed to manually a line in my config.pbtxt  to go from the hugectr to hps backend => backend: "hugectr" to backend: "hps".
Expected behavior
First, when building the inference version, I expect hugectr's Python module to be installed, but it isn't. This is weird because when I turn off the -DENABLE_INFERENCE=ON and install, import hugectr works.
Second, I expect the Triton server to start and accept requests.

@sezhiyanhari According to the reply in https://github.com/NVIDIA-Merlin/HugeCTR/issues/431 , the HugeCTR Triton Backend implementation has been completely removed from the current repo , so you may have misunderstood that it is not that the HugeCTR backend has been merged into the HPS backend, but that the HugeCTR Triton backend has been completely deprecated, that is  the model trained through native HugeCTR(https://github.com/NVIDIA-Merlin/Merlin/blob/main/examples/scaling-criteo/03-Training-with-HugeCTR.ipynb) no longer supports deployment in the Triton Server and we will delete the examples about HugeCTR model deployment in Merlin repo. Sorry again for the confusion.
So if you still need to use the HugeCTR backend to deploy the native HugeCTR model, you can only use the NGC image before 22.08. If you need to compile HugeCTR backend  from scratch, please note that the Trtion REPO_TAG release version(-DTRITON_COMMON_REPO_TAG=<rxx.yy>  -DTRITON_CORE_REPO_TAG=<rxx.yy> -DTRITON_BACKEND_REPO_TAG=<rxx.yy>) cannot exceed the Triton release version,  otherwise there will be an error that Triton backend API version does not support this backend
In addition, you can also directly use TF or Pytorch training models to deploy on the Triton server through the HPS plug-ins:
HPS plugin for TensorFlow
HPS plugin for TensorRT
HPS plugin for Torch

@yingcanw got it, thank you for the explanation!
Do you know how I can rework this example (https://github.com/NVIDIA-Merlin/Merlin/blob/main/examples/scaling-criteo/03-Training-with-HugeCTR.ipynb) so it's compatible for inference with the HPS backend?
I'm specifically trying to train the Criteo TB model.