Zwei oder mehrere Ladevorgänge zusammenführen - collate user selected seperate charging events()

If charging events are interrrupted (by any means), it would be nice to be able to select - let's say three charging events - and collate them to a single charging event on the charging event screen. The "energie charged" and cost, duration to be summed up and the averages to be recalculated accordingly, just as if it was one uninterrupted charging event.
Maybe just during runtime only, while keeping the separate charging events in the db.

I don't think simple to due and is more of a home assistant request than kia_uvo.  Closing as not planned.


ConsumeClaim accessing external system

I recently did add a note to the example, that inside the ConumeClaim there should be no goroutine, see:

https://github.com/Shopify/sarama/pull/1334/files

From this community @varun06 and @dim did approve the note.
However I was wondering what's best to access a 3rd party system (e.g. HTTP server) with messages consumed in the Claim.
What's best solution to do that?
Imagine, I have one single consumer that consume 100 partitions of one topic, this translates into 100 go-routines (one per topic partion)
Now, what will happen if the communication to the external system is taking LONG time (E.g. a few seconds), and when there is huge amount of messages on the topic.
What's the best to submit received messages (or their payload) to a external system ?

Now, what will happen if the communication to the external system is taking LONG time (E.g. a few seconds), and when there is huge amount of messages on the topic.

You can init a batch at the start of ConsumeClaim, accumulate some messages and send them to the HTTP service as a batch.
If you need to send your messages 1-by-1 and your HTTP service cannot cope with the flood of messages (i.e. you produce quicker than you can consume), you can add more partitions, but you probably also need to rethink your architecture.


Autocomplete dialog closes after pressing Enter

If the user enters some search text and immediately pushes Enter, the autocomplete dialog closes prematurely.
This can be seen on the test page http://oferh.github.io/ng2-completer/#/native when working with "Custom data provider".
I've tried intercepting the click event and doing something with it, but not sure how to prevent the close happening in the first place.

fwiw I think that is expected on an html input, basically submit on enter.
You may try to intercept the enter on keydown as explained here https://stackoverflow.com/questions/7060750/detect-the-enter-key-in-a-text-input-field

@pflopez thanks for the advice! I managed to detect the enter button, but how would I intercept and stop it affecting ng2-completer after the keypress?

@landworth event.preventDefault / event.stopPropagation ?

@pflopez thanks for your reply. This is exactly what I tried, however it doesn't seem to work properly.
When I bind to the keyup event in the HTML using (keyup)="checkForEnter($event)", I find the function 'checkForEnter' is triggered, but the enter button has already been handled by ng2-autocompleter, which makes the autocomplete dropdown disappear anyway.
This makes me think I would need to branch the ng2-autocompleter code and add the two event.* commands into the 'public onKeyup(event: any)' function in this file: https://github.com/oferh/ng2-completer/blob/master/src/components/completer-cmp.ts, before this.keyup.emit(event); is triggered.
Am I missing something obvious here?!
Thanks again


V3 Beta drops support for tvOS?

I saw that the podspec of the new v3 versions does not contain the tvOS platform anymore.
https://github.com/mrousavy/react-native-mmkv/blob/8b5e9d009c0e7da47d5bf4f3705b01f570f09c26/package/react-native-mmkv.podspec#L17
Is this intended, as this would break my current Expo TVOS app. :D

hans stop talking bullshit
tvOS did work, I think this is a mistake - can you make a PR to add it again and verify that this works? thanks! :)

😂

@Duell10111 can you add a PR to make tvOS work again?


采用qlora，使用的是Qwen-7b-chat，本地数据集，出现这样的报错。我之前用lora的方式是OK的。

The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/train_file//opensource/swift-main/examples/pytorch/llm/llm_sft.py", line 2, in
import custom
File "/train_file/xx/opensource/swift-main/examples/pytorch/llm/custom.py", line 8, in
from swift.llm import (ConversationsPreprocessor,QueryPreprocessor, LoRATM, Template,TemplateType,
File "/train_file/xxx/opensource/swift-main/swift/llm/init.py", line 2, in
from .infer import llm_infer
File "/train_file/xx/opensource/swift-main/swift/llm/infer.py", line 6, in
from modelscope import BitsAndBytesConfig, GenerationConfig
File "", line 1075, in _handle_fromlist
File "/opt/conda/lib/python3.10/site-packages/modelscope/utils/import_utils.py", line 422, in getattr
module = self._get_module(self._class_to_module[name])
File "/opt/conda/lib/python3.10/site-packages/modelscope/utils/import_utils.py", line 441, in _get_module
raise RuntimeError(
RuntimeError: Failed to import modelscope.utils.hf_util because of the following error (look up to see its traceback):
Failed to import transformers.modeling_utils because of the following error (look up to see its traceback):
Failed to import transformers.generation.utils because of the following error (look up to see its traceback):
    CUDA Setup failed despite GPU being available. Please run the following command to get more information:

    python -m bitsandbytes

    Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them
    to your LD_LIBRARY_PATH. If you suspect a bug, please take the information from python -m bitsandbytes
    and open an issue at: https://github.com/TimDettmers/bitsandbytes/issues

看起来是您的机器不支持bitsandbytes. 你试试 qwen-7b-chat-int4. 使用的是auto_gptq量化.


CI Cleanup

Removed Makefile
removed unused tasks in tasks.py
removed cruft

I have added a suggestive warning to the makefile


Make requests thenable, all promises cancellable

Closes #15
This will definitely require a major version bump.
Not only is .then() replacing the need for .promise(), it always returns a cancellable promise so we no longer need a cancellable option.
One caveat here is that you need to call .then() at least once to gain access to all of Bluebird's promise methods. Note that you can call .then() with no arguments to achieve this, e.g.:
request.get('http://localhost')
  .then()
  .finally(function() { ... });

Whereas this won't work:
request.get('http://localhost')
  .finally(function() { ... }); // error, Request.prototype has no method 'finally'

What does everyone think? cc @bergus @jxm262

LGTM

Should I reintroduce .promise() so you don't have to call .then() with no arguments? If I saw code like this without knowing the details of this library, I would assume that the author doesn't understand Bluebird and I could safely remove the .then() call.
request.get('...')
  .then()
  .finally(function() { ... })

I think that makes sense. I agree with @bergus's comment that adding more of Bluebird's API on to the request prototype doesn't make sense as it blends the two libraries in weird potentially inconsistent/surprising ways.
I'd suggest .promise() is the main interface and .then() is a bit of sugar for the most common use case. I think that'll create the fewest surprises for users.

Cool, sounds good. I'll try to update my PR tonight.

Done. All requests now have both .promise() and .then() methods, and both return cancellable promises. How does this look?

Personally, I think it makes more sense to refer to .then() as the main interface, and .promise() for more advanced usage.

LGTM :-) Glad that I could help with my knowledge to improve your API, but I don't think I'll need to become a maintainer.

:+1:   This looks good to me.


Physical memory limits appear when the grouping sets operator is processing

Describe the bug
When the grouping sets operator is processing, the data will be multiplied, which will cause memory overflow. However, we observed that spark does not have this problem under the same resources. We also found that NSE does not spill to disk when processing the columnarExpand operator, while spark will spill to disk when processing the Expand operator.The following figure is an error report：

The following figure shows our verification results:

To Reproduce
our sql are as follows:
select sum(id),name,age from test_test_col3  group by  GROUPING SETS( (name), (name,age), (age), () );

Hi @ziyangRen
Indeed , the HashAgg impl in Gazelle does not support spill yet.
-yuan


set Konnectivity cipher suites

Similar to https://github.com/openshift/hypershift/pull/3618 and https://github.com/openshift/hypershift/pull/3855 let's use KAS TLS Security profile to determine cipher suites for Konnectivity server for Hypershift release 4.12.
The following ciphers considered as insecure so removed from "old" profile:
https://ciphersuite.info/cs/TLS_RSA_WITH_AES_128_CBC_SHA256/
https://ciphersuite.info/cs/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256/
https://ciphersuite.info/cs/TLS_RSA_WITH_3DES_EDE_CBC_SHA/
https://ciphersuite.info/cs/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256/
https://ciphersuite.info/cs/TLS_RSA_WITH_AES_128_CBC_SHA/
https://ciphersuite.info/cs/TLS_RSA_WITH_AES_256_CBC_SHA256/
https://ciphersuite.info/cs/TLS_RSA_WITH_AES_128_GCM_SHA256/
https://ciphersuite.info/cs/TLS_RSA_WITH_AES_256_GCM_SHA384/
Konnectivity validates ciphers here:
https://github.com/kubernetes-sigs/apiserver-network-proxy/pull/282/files#diff-a1ffb52e88506b4737c752182fb157473a2575e8e7bb356ed709d2316141a3cdR56

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/ok-to-test

/lgtm
/approve

/jira cherry-pick OCPBUGS-41515

/jira refresh


TermGroup has broken props propagation (and plugins)

Plugins (like hyperpower) use 2 functions in combination: mapTermsState to select data from state and getTermProps to pass them down to Term component (which can be decorated).
But since TermGroup component appears, chain is broken.
3 possible solutions:

Let plugins implement getTermProps AND getTermGroupProps to pass data from state to Term. But it must be documented and explained very well.
Pass automatically all Terms props to TermGroup components like

const props = getTermGroupProps(uid, this.props, {
            ...this.props
            termGroup,
            terms: this.terms,
          });

Add a mapTermPropsand a Term container

The second solution don't need plugins update, but maybe the third could be very useful.

What about take container logic from TermGroup component, create a container and bind a mapTermGroupState for plugin enhancement ?
TermGroup is the only component which bind to State (and without using plugin logic)


RL experiments

I can only see the code for the regression/classification experiments. What about the code for the RL experiments?

The code is here :
https://github.com/cbfinn/maml_rl


specify root folder

Awesome... seems like the tests are failing because there is no rootPathSuffix given.
Just make a little if for the rootPathSuffix  in the transformRelativeToRootPath.
Then the tests should pass.
Then for the new feature we should add a new test in the Plugin-Test.
It's more or less copy&paste... we just have to specify a babelrc in the test...

Okay wait... just fixed it was no big deal.. i merge this and update it by myself :)

Ok, i merged your changes and fixed the tests / added new tests :)
You're awesome... thanks.
Now i'm updating the npm package \o/

I see, thanks


Set null slug when source is empty

In my app, i have a slug generation dynamically and my source field can be blank.
Moreover, I set the unique option to true, so, after every insert with a empty field, I had slugs like

'-1'
'-2'
'-3'
....

I have not done phpunit tests because I prefer to let a professional do it !

Makes sense to me.  In fact, I'd almost suggest that this be the default behaviour.  Can you think of a reason you'd want to have -1, -2, etc. as your slugs?
(Also see the line comment I made in the diffs for a quick suggestion on improving your MR.)

Hi guy,
Yes, you're right, I can move this test to line 71.
I do this today (after my big deploy :computer: )
Personnaly, I can't say if the default behavior like '-1', '-2' is excepted by developers. It's for this reason I had a parameters, to keep the original behavior but override it in cases.

Hi guy,
Yes, you're right, I can move this test to line 71.
I do this today (after my big deploy :computer: )
Personnaly, I can't say if the default behavior like '-1', '-2' is excepted by developers. It's for this reason I had a parameters, to keep the original behavior but override it in cases.

I set slug null in first time before all others tests.
If you want to keep this behavior, no problem.
But if you want to set this the default behavior, tell me, I can set this ;)

I set slug null in first time before all others tests.
If you want to keep this behavior, no problem.
But if you want to set this the default behavior, tell me, I can set this ;)

Yeah, let's make this the default behaviour.  I can't think of a use-case where the source string for a slug would be null and yet you'd still want a slug like -1 to be generated.
Worst case is that user's can overload the generateSlug() method in the trait.
Thanks!

Hi Colin,
I've removed my super param and set null when the source was empty.
Do you need any change in PHPUnit tests ?

Merged .. thanks!  I added a unit test to check that it works:
    public function testEmptySourceGeneratesEmptySlug()
    {
        $post = new Post(['title' => 'My Test Post']);
        $post->setSlugConfig([
          'build_from' => 'subtitle'
        ]);

        $post->save();
        $this->assertEquals($post->slug, null);
    }


Question in regards to testing sequence generated by Compile.

Hello everyone,
I am using restler to test CRUD calls to a resource. Was able to compile without issue and when I run using 'Test' I see that it runs but there are a few failures. When I look at the logs, I see the following sequence:

POST -> so it generates a new post and puts a new item which will be used for the tests that come after. So here I get an id for the newly generated object (newObjectId).
GET -> So now the next test is the GET call with the previously generated id. This works as expected, no problems here.
GET -> Now it does a GET call without the id and I do get a response back with all the ids for this resource. However, in the grammar.py file that was generated, it can't find the id because an array of objects are passed back from this call. Then I get the error message "Error: all of the expected dynamic objects were not present in the response".

However the that was created in this case is in the response, just that the generated piece of code is not looking through the array to find the object.
Generated code:
def parse_apiv1RandomObjectspost(data, **kwargs):
    """ Automatically generated response parser """
    # Declare response variables
    temp_7262 = None

    if 'headers' in kwargs:
        headers = kwargs['headers']

    # Parse body if needed
    if data:

        try:
            data = json.loads(data)
        except Exception as error:
            raise ResponseParsingException("Exception parsing response, data was not valid json: {}".format(error))
        pass

    # Try to extract each dynamic object

        try:
            temp_7262 = str(data["id"])

        except Exception as error:
            # This is not an error, since some properties are not always returned
            pass

    # If no dynamic objects were extracted, throw.
    if not (temp_7262):
        raise ResponseParsingException("Error: all of the expected dynamic objects were not present in the response.")

    # Set dynamic variables
    if temp_7262:
        dependencies.set_variable("_api_v1_Tenants__tenantId__AuthorizationCodeClients_post_id", temp_7262)

I can modify the code to parse the array however there are two problems.

the id that was generated is not passed into this piece of code
it somehow doesn't feel right that I would need to modify this code

To me it seems like I am missing a configuration. So I am wondering if I am missing a config somewhere? I poured over all the documentation and nothing obvious is standing out. Or is there something that I had not considered.
Thanks for taking the time to read through this. Let me know if something is not clear or if more information is needed.

Hello @henryhom,
Would you be able to provide a sample OpenAPI spec corresponding to the issue you are seeing, or share more of the grammar?
For the scenario you have described, I do not understand how the parser error could be issued.
I would expect RESTler to generate a parser only for the 'POST', not for the "'GET' without the ID".  The parser generated above was for a POST response (from the name), so I would only expect it to be invoked after the POST, and not throw the error assuming the POST always returns a single object.
The scenario you are describing sounds very similar to the Swagger spec for the demo_server application in the repo here.  If I modify the /blog/posts POST to return an array, the parser generated does parse out the id from the first array item.
Thanks,
Marina

I have included a zip file with the following:

OpenApi Spec (modified)
dict file
annotations file
config file
example file
a network output from a test run
summary file for test

All these files have been modified to reflect a more generic spec and output. Let me know if anything else is needed.
Another note, it was not the POST call that was returning the array, it was the GET call without a specific ID that was being called which returned an array of objects. The code above gets called, however, the piece of code assumes it to be an object instead of an array of objects. I see the following errors in the network log (also included): Error: all of the expected dynamic objects were not present in the response.
Please let me know if more information is needed or if something is unclear.
public.zip

Hello @henryhom,
Thank you very much for sharing this repro.  In this case, the problem (a bug in RESTler) was a bit subtle and had to be diagnosed through the network logs.  Instead of getting the resource from the POST request, RESTler thinks that it needs to get it from the GET request, and it uses the wrong GET request that returns an array.
As a workaround, could you please add the following property to the engine settings at the top level:
"wait_for_async_resource_creation" : false

This should cause the response of the POST to be used instead of the GET.  Please let me know if this has resolved the issue.
Thanks,
Marina

Hello @marina-p,
I just tried setting that in the engine_settings file. It doesn't do the 'GET' anymore, however, It is still not using the information from the POST call. I still see this error message in the network log:
2022-03-22 10:20:27.754: 'Error: all of the expected dynamic objects were not present in the response.'
When the POST call completes, it is successful, however, the response does not seem to be passed on to the grammar file so we wind up with the error message above.

@henryhom Ok, thanks for trying this out.  There is no other workaround I can think of, so I will update this issue when the original problem is fixed.  If you still have the logs, could you please attach the full network.testing log where the above is printed?

@marina-p Here is the full network log from a test run. Let me know if anything else is needed
network.testing.public.39012.1.txt
This log has been modified from the original to scrub the values that were used.


Service Registry Integration

This issue is to capture the work and discussion for creating the service registry integration.  Currently we have identified

Refactor the current Kafka Managed Services API to a new package namespace (.kas)
Add the SRS Open APIs (.srs)
Update ManagedServicesRequest to handle both Managed Kafkas and Service Registry
Create ServiceRegistryConnection custom resource
Annotate ServiceRegistryConnection with Service Binding annotations

This isue is blocking https://github.com/redhat-developer/app-services-cli/issues/661

FYI
Quarkus has frist class support and even very well written guide and example app:
https://quarkus.io/blog/kafka-avro


Path issue while compiling the script

Any idea what is might be?

Hello !
I've got exactly the same issue ... I tried with both relative path and absolute path ...
I don't know what to do more ....

same issue i got

any solution ?? in my project even ccp folder also not getting generated

Try to make sure that the path where the .so get created is the same of the script. If not, adjust accordingly.

I run into the same problem after compile dlib.
The problem is in this line.
@Luca96 change the working directory when compiling dlib but he forgets to undo it after the compiled finish.
To quick fix, you can comment this line Compile-Dlib  and re-run the setup.ps1 again to copy the lib to Android Studio Project.

Hi @kim-ninh , thank you very much for the suggestion.
Could you check if the following code solves the issue (replace this code-block):
# Dlib library path:
$DLIB_PATH = 'dlib'

function Compile-Dlib {
    $CWD = Get-Location
    Set-Location $DLIB_PATH
    Make-Dir 'build'

    Write-Host '=> Compiling Dlib...'
    sleep 0.5

    ForEach ($abi in $ABIs) {
        Write-Host
        Write-Host "=> Compiling Dlib for ABI: '$abi'..."
        sleep 0.5

        Make-Dir "build\$abi"
        Set-Location "build\$abi"

        $cmakeArguments = @(
                "-DBUILD_SHARED_LIBS=1",
                "-DANDROID_NDK=$NDK",
                "-DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN",
                "-GNinja",
                "-DCMAKE_BUILD_TYPE=Release",
                "-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions",
                "-DCMAKE_C_FLAGS=-O3",
                "-DANDROID_ABI=$abi",
                "-DANDROID_PLATFORM=android-$MIN_SDK",
                "-DANDROID_TOOLCHAIN=clang",
                "-DANDROID_STL=c++_shared",
                "-DANDROID_CPP_FEATURES=rtti exceptions",
                "-DCMAKE_PREFIX_PATH=..\..\",
                "..\..\"
        )

        $stripArguments = @(
                "--strip-unneeded",
                "dlib/libdlib.so"
        )

        & $AndroidCmake $cmakeArguments
        sleep 0.5

        Write-Host "=> Generating the 'dlib/libdlib.so' for ABI: '$abi'..."
        & $AndroidCmake --build .
        sleep 0.5

        Write-Host "=> Stripping libdlib.so for ABI: '$abi'to reduce space..."
        & $STRIPPERS[$abi] $stripArguments
        sleep 0.5

        Write-Host '=> done.'
        Set-Location $CWD
        sleep 0.5
    }
}

Thanks in advance

Hi @kim-ninh , thank you very much for the suggestion.
Could you check if the following code solves the issue (replace this code-block):
# Dlib library path:
$DLIB_PATH = 'dlib'

function Compile-Dlib {
    $CWD = Get-Location
    Set-Location $DLIB_PATH
    Make-Dir 'build'

    Write-Host '=> Compiling Dlib...'
    sleep 0.5

    ForEach ($abi in $ABIs) {
        Write-Host
        Write-Host "=> Compiling Dlib for ABI: '$abi'..."
        sleep 0.5

        Make-Dir "build\$abi"
        Set-Location "build\$abi"

        $cmakeArguments = @(
                "-DBUILD_SHARED_LIBS=1",
                "-DANDROID_NDK=$NDK",
                "-DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN",
                "-GNinja",
                "-DCMAKE_BUILD_TYPE=Release",
                "-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions",
                "-DCMAKE_C_FLAGS=-O3",
                "-DANDROID_ABI=$abi",
                "-DANDROID_PLATFORM=android-$MIN_SDK",
                "-DANDROID_TOOLCHAIN=clang",
                "-DANDROID_STL=c++_shared",
                "-DANDROID_CPP_FEATURES=rtti exceptions",
                "-DCMAKE_PREFIX_PATH=..\..\",
                "..\..\"
        )

        $stripArguments = @(
                "--strip-unneeded",
                "dlib/libdlib.so"
        )

        & $AndroidCmake $cmakeArguments
        sleep 0.5

        Write-Host "=> Generating the 'dlib/libdlib.so' for ABI: '$abi'..."
        & $AndroidCmake --build .
        sleep 0.5

        Write-Host "=> Stripping libdlib.so for ABI: '$abi'to reduce space..."
        & $STRIPPERS[$abi] $stripArguments
        sleep 0.5

        Write-Host '=> done.'
        Set-Location $CWD
        sleep 0.5
    }
}

Thanks in advance

Sound great 👌


Add ClockIt API to Documents & Productivity

[ ] My submission is formatted according to the guidelines in the contributing guide
[ ] My addition is ordered alphabetically
[ ] My submission has a useful description
[ ] The description does not have more than 100 characters
[ ] The description does not end with punctuation
[ ] Each table column is padded with one space on either side
[ ] I have searched the repository for any relevant issues or pull requests
[ ] Any category I am creating has the minimum requirement of 3 items
[ ] All changes have been [squashed][squash-link] into a single commit

Hi @clockitapp
Thanks for your contribution ;)
We have some problems with Public APIs, so we won't be able to review/add this improvement right now.
Read this issue for more information, please: https://github.com/public-apis/public-apis/issues/3104


Chapter 4 Solr - Site cant be reached

Hey there - I ran the playbook, everything is loaded and looks ok, but I cant bring up solr in Chrome.
I tried <IP_ADDRESS>:8983/solr and a few other URL's but I get ERR_CONNECTION_REFUSED
I am able to access the a site in the browser for a simple Nginx application that I wrote with Ansible so I think everything is setup correctly but solr is not working for me.
Any help is appreciated

In my case Solr was only listening on the loopback interface and thus could not be reached from the outside. I added a task that edits /etc/default/solr.in.sh to the playbook (see voegelas/ansible-for-devops@08fc9946ec002fd6f8df2c2c8c1e7e741d5510be).
    - name: Accept connections on all network interfaces.
      lineinfile:
        dest: "/etc/default/solr.in.sh"
        regexp: "^#SOLR_JETTY_HOST="
        line: 'SOLR_JETTY_HOST="<IP_ADDRESS>"'
        state: present

You can investigate such problems by entering the virtual machine with vagrant ssh and running sudo ss -tnlp, for example.


Update docker configuration

We currently have this outdated Docker wiki describing how to dockerize postgrest. I think what we want are two distinct configurations:

Dev/test mode. This is a single container for running tests on CI as well as for local development for anyone who wants to develop that way.

built on top of https://hub.docker.com/r/fpco/stack-build/
add postgresql 9.5

Deployment mode. This is a few containers put together with docker-compose

Include a docker-compose configuration to tie the following things together
A small container just for postgrest, based off something like busybox. Would take parameters for the database to use etc. No other services installed there.

have the container download pre-built binary from project release page based on version parameter

A container for postgresql, https://hub.docker.com/_/postgres/ and a persistent data volume

or an external_link to Amazon RDS

A container for nginx, https://hub.docker.com/_/nginx/ with supplied config

enforce SSL-only
rewrite /table/:id to /table?id=eq.:id + prefer plurality header
safeguards for using DELETE or PATCH against entire (unfiltered) tables
disguised server identification header
prevent DoS uploads with client_max_body_size

The fancy nginx config items aren't required for the initial solution. But we probably want those three containers to be composed for production.

I tend to minimise differences between dev/test and deployment mode.
At the moment and for dev/test purpose I'm using something that looks like the configuration 2).
A Dockerfile to build a small container just for postgrest, based on ubuntu 14.04 (any distro will do). I'm sure we can use other disto. The image is built by downloading pre-built binary from project release page based on version parameter.
FROM ubuntu:14.04
MAINTAINER Mickael Bouchaud<EMAIL_ADDRESS>
ENV POSTGREST_VERSION <IP_ADDRESS>
ENV POSTGREST_DBHOST host
ENV POSTGREST_DBPORT 5432
ENV POSTGREST_DBNAME database
ENV POSTGREST_DBUSER user
ENV POSTGREST_DBPASS password

RUN apt-get update
RUN apt-get install -y tar xz-utils wget libpq-dev
RUN apt-get update

RUN wget http://github.com/begriffs/postgrest/releases/download/v${POSTGREST_VERSION}/postgrest-${POSTGREST_VERSION}-ubuntu.tar.xz
RUN tar --xz -xvf postgrest-${POSTGREST_VERSION}-ubuntu.tar.xz
RUN mv postgrest /usr/local/bin/postgrest

CMD postgrest postgres://${POSTGREST_DBUSER}:${POSTGREST_DBPASS}@${POSTGREST_DBHOST}:${POSTGREST_DBPORT}/${POSTGREST_DBNAME} \
              --port 3000 \
              --anonymous postgres \
              --schema public

EXPOSE 3000

RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

and a docker-compose.yml for Postgrest and Postgres
stgrest:
  image: boumi/postgrest
  ports:
    - "3000:3000"
  environment:
    POSTGREST_VERSION: <IP_ADDRESS>
    POSTGREST_DBHOST: postgres
    POSTGREST_DBPORT: 5432
    POSTGREST_DBNAME: app_db
    POSTGREST_DBUSER: app_user
    POSTGREST_DBPASS: password
  links:
    - postgres:postgres

postgres:
  image: postgres
  ports:
    - "5432:5432"
  environment:
    POSTGRES_DB: app_db
    POSTGRES_USER: app_user
    POSTGRES_PASSWORD: password

With these two files a docker build and docker compose up are only requiered to get up and running.

KoRiGan: Any reason why you build the PostgREST Dockerfile separately?

KoRiGan: Any reason why you build your PostgREST container separately? I just keep the Dockerfile in the same repository and use docker-compose build to handle any changes in either the PostgREST or PostgreSQL Dockerfiles.
api:
  build: ./postgrest/
  ports:
    - 3000:3000
  links:
    - db
  restart: always
db:
  build: ./postgresql/
  environment:
    POSTGRES_PASSWORD: foobar
  ports:
  - 5432:5432

Source (no Nginx container specified): https://github.com/danielxvu/docker-postgrest-with-postgresql

@danielxvu  no reason really. Your solution looks great

have the container download pre-built binary from project release page based on version parameter

When would this download occur? Would the container download the binary upon startup, or would it download it as part of building the image? If it's downloaded during the container start time, if someone deploys a fleet of identical postgrest containers for load balancing the work will be massively duplicated. Additionally, starting up containers is usually presumed to not involve large-download IO to install things, that's usually reserved for build time.
The disadvantage to downloading during the image building process is that the version isn't in the client's control, so we'd need to provide a separate Docker image for each version. This can be made easier by having a single base image that uses an ONBUILD command that downloads the binary based on a version variable and having one derived image per version that just sets the version variable.

Just to clarify, with a docker image for each postgrest version, the example docker-compose.yml above would look like this for the postgrest service:
stgrest:
  image: boumi/postgrest:<IP_ADDRESS>
  ports:
    - "3000:3000"
  environment:
    POSTGREST_DBHOST: postgres
    POSTGREST_DBPORT: 5432
    POSTGREST_DBNAME: app_db
    POSTGREST_DBUSER: app_user
    POSTGREST_DBPASS: password
  links:
    - postgres:postgres

Whoo hoo, I think this is now solved!


Report:  Wifi Outages Require SimpleAQ Device Reset

One of our users keeps having her wifi go out, and when it does the SimpleAQ device needs to be reset.
We should test by switching wifi off and on a few times and see if we can duplicate the issue.

So, I noticed something odd.  I correctly set up a brand new SimpleAQ device and found that, in fact, on reboot not only did it not connect to the service but it's never even trying.
Commit 218bc0d461560da3a9aaa3d9266253332181a2c0 is investigating.

I have duplicated the issue at 218bc0d.  That did not fix it.  The device is currently sitting, plugged in, stalled in my basement.
I  need to connect a monitor to this device to debug.

Ok, I managed to catch this stall in action and connect to the stalled device.  A few hints.
Apparently, this happened after a reboot.  dnsmasq service failed to start, but is showing active (running) when I run systemctl status dnsmasq.service.  The final log message, shortly after data stopped reporting, was "failed to access  /run/dnsmasq/resolv.conf: no such file or directory".  The device never recovered and the config network is not up.
Examining the SimpleAQ service, it reports its last data packet and shows active (running), though no log messages have been reported since the final data packet.  It is apparently stalled somehow and not reporting any logs.
The very final log message was publishing SEN5X data, and happened here.  GPS had no fix at this time.
I tried sudo service simpleaq restart to see if that resolves the issue.  It was not immediately able to connect to my local wifi, but is at least trying to do the right thing.  I will report back with my findings after I let it run for a while.

Having run overnight, the unit did not reconnect to my local wifi.  I'm going to try sudo service dnsmasq restart.

Ok, I checked the SimpleAQ service logs and it is indeed trying to bring the wifi back up.
I should manually try that command and see what happens, or what the result is.

I stopped the SimpleAQ service entirely and instead ran the command SimpleAQ uses to bring up wifi:
sudo systemctl start<EMAIL_ADDRESS>It appears to have started without issue.  Likewise, it brought down the hostap network.
However, curl www.google.com still complains that we can't resolve the host.
nmcli indicates that NetworkManager is not running (this might be correct,)
iwconfig indicates that we are indeed connected to the wifi.  However, oddly, I only see an ipv6 address listed here and not an ipv4 address like the other machines on my home wifi.
I wondered if it was just DNS and tried both curl and ping with <IP_ADDRESS> (www.slashdot.org) and got "network is unreachable".

I checked the router:

Compare this to the results of ifconfig / iwconfig:

It looks like the MAC address for wlan0 matches the IP address #2.  My suspicion is that <IP_ADDRESS> is my other, correctly functioning, outdoor SimpleAQ unit and that in fact the router doesn't even believe the device to be connected.

For @bensonk, dnsmasq logs.  Nothing too interesting.  I think the file not found error is a red herring.

sudo service wpa_supplicant@wlan0 status sure makes it look like I'm connected to my wifi, though.  60:38:e0:90:5f:21 is correct for my wifi router.

sudo arp -a gives no output.

I feel like my current hypothesis is that while you're connected at the physical layer, and the data-link layer, you're not connected at the network layer (i.e. don't have an IP address).
That would indicate that there was some problem getting a dhcp lease. I think the fact that you're using dnsmasq as the dhcp client further supports this theory, because I bet it's dhcp client featureset is somewhat less tested than, say, dhcpcd. And also less tested than its DNS serving capability.
So, I guess for me the next step would be to try restarting dnsmasq, since it's the dhcp client, and see if it gets a lease. Also maybe set up a packet capture on your network (ideally at the point that serves DHCP) to see if you can see what DHCP packets it sends (or doesn't).

That makes sense.  I checked sudo service dnsmasq status and found that it was crashed and couldn't bind <IP_ADDRESS>.  I found this comment and tried removing bind-interfaces from dnsmasq.conf.  That did allow me to restart dnsmasq.
I am able to sudo service wpa_supplicant@ap0 start and see the configuration network as expected, but I am not able to connect when I run sudo service wpa_supplicant@wlan0 start.
So, I managed to get dnsmasq running but I'm not sure it effectively changed anything.

I found this issue which is pretty much exactly what's happening to us, right down to wpa_cli -i wlan0 status.  Their solution was to restart dhcpd.
In our case, restarting dnsmasq doesn't solve our problem.  But that's to be expected:  We don't use dnsmasq on wlan0.
Instead, we use systemd-networkd for wlan0.
The question is then:  how do I restart systemd-networkd's DHCP service?

sudo systemctl restart systemd-resolved did not fix the problem.
One possibility would be that we could use wpa_cli -i wlan0 status to search for the case where we're connected but can't get an IP and just reboot the system wholesale as a workaround.

sudo networkctl forcerenew wlan0 also did not fix the problem.

sudo service systemd-networkd restart followed by sudo service wpa_supplicant@wlan0 restart did clear the issue.
It's noteworthy that it was important to remove the bind-interfaces line from dnsmasq.conf.
I need to figure out the best way to script this, but this should fix the rare issue.

Ok, https://github.com/simpleairquality/SimpleAQ-Device/commit/10d99b947f0d97236496a0388beac314c693dbbb should make this type of error recoverable.

I will update this after I've tested the image.

Ok, got the device flashed and testing.  A couple of comments.

After first boot, I didn't notice the wifi config network come up.  I went over and logged into the device, ran a couple of service status commands, didn't see any issues, came back and there it was.  It's possible I didn't notice it on the list.
It configures and reports data fine.

I'm going to let it run for a few days and try periodically blocking it from wifi to see if I can reproduce a failure.

Ok, I put the firmware in another device and indeed it looks like this time the config network came up.  I must have missed it.  I'm going to start this onw running too to see if any issue reproduces.

I was going to set up the second device and noticed that the other one has disconnected from my wifi and its configuration network came up.  It must be a weak connection in that spot.  I'll wait and see if it reconnects before setting up the second device.

Ok, the original device did indeed come back up.

Both devices still going strong.

Still good.  I'm going to intentionally put one in a Faraday bag for a while, then take it out and see if it comes back up.

Well, it turns out this wifi/RFID blocking bag doesn't work at all.

I believe this may be fixed by https://github.com/simpleairquality/SimpleAQ-Device/commit/10d99b947f0d97236496a0388beac314c693dbbb -- there is some issue with systemd-networkd that causes it to fail if you keep bringing interfaces up and down.  We have worked around it by rebooting it when we bring an interface up.


Blazor Hosting Models topic SEO updates

Follow-up discussion for SEO updates after https://github.com/dotnet/AspNetCore.Docs/pull/24878 and https://github.com/dotnet/AspNetCore.Docs/pull/24920. All of the updates are live in the doc set now at ...
https://docs.microsoft.com/aspnet/core/blazor/hosting-models
cc: @v-mepa

should I use blazor server or blazor wasm

... and similar wording: sometimes with "versus"/"vs" instead of "or" and sometimes with "webassembly" instead of "wasm" in the search string.
The primary expression is placing the page 3rd (at Google). We'd like to eventually reach First Place 🥇.
https://www.google.com/search?q=should+i+use+blazor+server+or+blazor+wasm

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 542f38c4-1502-f739-372a-80c86c377491
Version Independent ID: 72c2a844-ffb2-4799-2c7a-a7a73d3b6833
Content: ASP.NET Core Blazor hosting models
Content Source: aspnetcore/blazor/hosting-models.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

I went through the article and the very first thing we must update is the page title. I looked at the page titles of the other 2 sites which are ranking 1 & 2 on SERP  for  ‘should i use blazor server or blazor wasm’:
Rank 1 Website: RoundTheCode
Page Title: Blazor Server vs. Blazor WebAssembly: Four Ways In Which They Differ
Rank 2 Website: Programmingwithwolfgang
Page Title: Blazor Server vs. Blazor WebAssembly | Programming With Wolfgang
Rank 3 Website: Microsoft Docs
Page Title: ASP.NET Core Blazor hosting models | Microsoft Docs
Though Google is creating its own page title based on the relevancy and content of the page now, I will still highly recommend updating the page title which definitely helps in ranking higher on SERP. . Here is an article on how starting August 2021 Google generates web page title  which definitely helps in ranking higher on SERP.

You mean something like this? ...

ASP.NET Core Blazor Server and Blazor WebAssembly hosting models

After conducting competitor analysis it is clear that top-ranking websites have used more words & images in explaining and showcasing “why” & ”how” should I use blazor server vs/or blazor webassembly with a secondary focus on “what” blazor server or/vs blazor webassembly is.
And our content primarily focuses on “what” blazor server or/vs blazor webassembly is with secondary focus on “why & how” ‘should I use blazor server or blazor webassembly’. And that's why Hosting page  is ranking top for keywords like 'Blazor server', Blazor Webassembly/wasm' and others.
Looking at the other top-ranking content their prime focus is on giving a detailed explanation on the difference between 'Blazor Server vs. Blazor WebAssembly' related to features, pros & cons and others which is more relevant to search engines & users for the given query ‘should I use blazor server or blazor webassembly’. Adding more content or creating a separate page for the below section will help improve our rankings.

Adding more content or creating a separate page for the below section will help improve our rankings.

It was an item on the initial discussion ... bullet point 5 under Notes on https://github.com/dotnet/AspNetCore.Docs/pull/24878. I think it's a good idea.
I'm going to be 🏃 for the next five days on another set of tasks, so I plan to return to this mid to late next week. I'll seek to write a compare-and-contrast paragraph on each feature listed in the table. I think we should leave the table as a useful summary.

Sounds good.
I agree with your point on leaving the table as a useful summary.


gltf code for model not compatible with custom marker

Describe the bug
[UPDATED: I have been grappling with getting my custom 3D models and custom markers to work together, and having the models appear and appearl undistorted seems to be a recurring issue with my code] My gltf files are being referenced correctly on the markers, but they are glimpsing in and out of the camera view
To Reproduce

Download model from Sketchfab as gtlf
upload the gtlf and bin file onto Github site (they are in the same folder)
Use Raw url from gtlf file and paste it into code (below)
Test with custom marker
Distorted content

This is the code I am utilizing:
<<script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.5/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
    <<a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
      <a-gltf-model src="https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/spore_2_attempt_1/scene.gltf"></a-gltf-model>
      <a-marker preset='custom' type='pattern'  url='https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/Markers/MarkerS1240.patt' ></a-marker-camera>
      <a-entity scale="0.01 0.01 0.01">
      <a-camera-static/>
    </a-scene>
</body>

This is the marker I am using
Expected behavior
I expect to see a 3D model appear above the custom marker without any distortion.
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: iPhone7
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
I hope that I am simply incorrectly writing the scaling aspect of the code and I have looked for other solutions to these glitches, but have yet to find a solution for my code.
Where is the error coming from?
Please let me know if there is additional information I need to provide to help find a solution. Any guidance/direction on what I should look into and change is greatly appreciated.

2 things:

Try and use this method instead. https://aframe.io/docs/0.9.0/components/gltf-model.html#sidebar
By that I mean try and use the following code:
`

`

Try and upgrade aframe from 0.8.0 -> 0.9.0

I can't get the URL in the screenshot to show any model, not even a flickering model.
I'm not sure if this is just how you typed your snippet, but there are several general HTML errors:
<<script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.5/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
    <<a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
      <a-gltf-model src="https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/spore_2_attempt_1/scene.gltf"></a-gltf-model>
      <a-marker preset='custom' type='pattern'  url='https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/Markers/MarkerS1240.patt' ></a-marker-camera>
      <a-entity scale="0.01 0.01 0.01">
      <a-camera-static/>
    </a-scene>
</body>

First of all there's the <<. That fixed, plus cleaned up a bit:
<script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.5/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
    <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
      <a-gltf-model src="https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/spore_2_attempt_1/scene.gltf">
      </a-gltf-model>
      <a-marker preset='custom' type='pattern' url='https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/Markers/MarkerS1240.patt'>
      </a-marker-camera>
      <a-entity scale="0.01 0.01 0.01">
      <a-camera-static/>
    </a-scene>
</body>

The gltf model that you are attaching to the marker needs to be inside of the <a-marker> element:
<script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.5/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
    <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
      <a-marker preset='custom' type='pattern' url='https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/Markers/MarkerS1240.patt'>
        <a-gltf-model src="https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/spore_2_attempt_1/scene.gltf">
        </a-gltf-model>
      </a-marker-camera>
      <a-entity scale="0.01 0.01 0.01">
      <a-camera-static/>
    </a-scene>
</body>

You open with <a-marker> and close with </a-marker-camera>. I'm sure most browsers are correcting this specific one, but could cause other problems.
<script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.5/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
    <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
      <a-marker preset='custom' type='pattern' url='https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/Markers/MarkerS1240.patt'>
        <a-gltf-model src="https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/spore_2_attempt_1/scene.gltf">
        </a-gltf-model>
      </a-marker>
      <a-entity scale="0.01 0.01 0.01">
      <a-camera-static/>
    </a-scene>
</body>

It then looks like you tried to scale things, and opened a new <a-entity> with a scale component. But that shouldn't just go anywhere, and where it is right now, it ends up applying to the camera and breaking it, which is why I wasn't seeing anything at all!
The correct way is to actually use the scale component directly on the <a-gltf-model> element:
<script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.5/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
    <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
      <a-marker preset='custom' type='pattern' url='https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/Markers/MarkerS1240.patt'>
        <a-gltf-model src="https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/spore_2_attempt_1/scene.gltf">
        </a-gltf-model>
      </a-marker>
      <a-camera-static/>
    </a-scene>
</body>

And finally, updated to use the latest versions of aframe (0.9.0) and AR.js (1.6.2). Note that with the latest versions the camera should be defined with <a-entity camera></a-entity> and not <a-camera-static/> or else the position of the object will be wrong.
<script src="https://aframe.io/releases/0.9.0/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.6.2/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
    <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
      <a-marker preset='custom' type='pattern' url='https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/Markers/MarkerS1240.patt'>
        <a-gltf-model src="https://raw.githubusercontent.com/TumblinDwnAgain/TumblinDwnAgain.github.io/master/spore_2_attempt_1/scene.gltf">
        </a-gltf-model>
      </a-marker>
      <a-entity camera></a-entity>
    </a-scene>
</body>

Here's a glitch of the above that you can try out with your marker:
Page: https://protective-gull.glitch.me
Code: https://glitch.com/edit/#!/protective-gull
Hope this is helpful :)

great @andreyrd !


Attain the mighty SLSA Level 4, and then, with a wink and a nod, usher in the era of Level 'Infinity' - where security transcends limitations and laughs in the face of mortal bounds!

Slap on the SLSA Level badge to proclaim that this project's dedication to security is as trustworthy as a superhero's cape - safety, security, trust...with a dash of panache!"

Oh, the fickle fate of nocode! Alas, I've forgotten to sign my commit, but worry not, for even the most seasoned coder sometimes overlooks the autograph of authentication.


Refactor tox.ini

You can optimize tox.ini by using new config format:

http://tox.readthedocs.org/en/latest/config-v2.html#example-generating-and-selecting-variants
for example:
envlist = {py26,py27,py32,py33,py34}-django{1.4,1.5,1.6,1.7}

So you can delete all your other entires and make the file short and simple.

You are testing against django1.7c but not already released django1.7.

This can be closed as it was done in 1a24a2ab9ab6311e0acb64707695feaab18c82c3.


Suggestion: Add a config option for larger file sizes?

Awesome mod, love the ocncept and the animations.
It's a very very well made concept, congratulations!
It seems there isn't a config file (for server either).
Could there be a configuration file and include a size limit for the schematic files?
For now it seems it's capped at ~200kb.
So that server owners can change and set a file size limit?
Thanks again, awesome work.

Hi Wissi,
that can be done for certain.
With all the stuff coming in 0.1.0 a proper config file will in fact be inevitable. =]
Thanks for your feedback, it's much appreciated!

Hi again. Create 0.1 released yesterday.
Remember that in 1.14 the config files are inside your world folders.
Have fun with your massive structures!


Add ability to override variables from a separate repo for deployment customization

Goal is to avoid forking/rebasing model of managing the deployment

Thanks for opening this issue @Adam-D-Lewis. This is a priority for a client deployment since we want to avoid the forking model for deployments with clients. Going to brainstorm on this issue.

Some additional thoughts.  We should define which features this solution should allow users to be able to customize.  I've listed some possible ones below.
Possible features of solution

can exclude any task if desired
can can insert custom tasks
can change which environments are installed

1 could perhaps be done with by including variables for each task (or perhaps group of tasks) which if set prevent the task from running.  This feels a little clunky but could work.
2 could be done with include tasks and when e.g.
 - name: Run custom tasks
   include_tasks: "{{ custom_tasks_path }}"
   when: custom_tasks_path is defined

Users could insert custom tasks at the end of the playbook.
3 feels pretty straight forward by just making the environment directory an ansible variable
Alternatively, 1 & 2 could be done perhaps more elegantly and flexibly by using the Python API directly, but it would likely require more effort, and the python API is not officially supported for external use.

closed by https://github.com/Quansight/qhub-hpc/pull/95


RE Village + Winters DLC

No Village BaseGame Installed (but owned)
When starting with new / own or default Profile from Manager to Steam (all on default (NoHook and Compatibility)) Steam Download says Content is encrypted?

Downloading games while GreenLuma is active doesn't work properly, not an issue of the manager regardless.


Fluentd chart upgrade

Chart to upgrade
Fluentd chart upgrade to support the azure plugins - https://github.com/bitnami/charts/commit/bd96e1813718bb0bbe9c83929c2b8a1dfbe298f5
Reason for upgrade

[ ] Security patching
[X] Upgrade to allow new features
[ ] Upgrade to prevent future issues
[X] Other - Write the reason below

Additional context
What Chart should be upgraded?
upstream/fluentd chart
Why should this Chart be upgraded?

[ ] We need to perform a security upgrade.
[ ] We need it for a new feature: which feature (link to blocked issue).
[x] We need to keep up to prevent future issues.
[ ] Other: Write the reason here

Acceptance criteria

I checked the migration of the new Chart:

[ ] I upgraded a Chart and determined that no migration steps are needed.
[ ] I upgraded a Chart and added migration steps.

[ ] I tested the functionality provided by the new Chart (e.g., Auth flow, Grafana dashboards, etc.)

Acceptance criteria

I checked the migration of the new chart version:

[ ] The upgrade does not require migration steps
[ ] The upgrade requires migration steps

I tested the functionality of the new chart version:

[ ] The upgrade does not change current functionality
[ ] The upgrade changes current functionality

We decided we will use the upstream feature to be able to install the gems and fluentd charts to be upgraded.
As discussed with some SM's, would be nice if this is done from non-focus-azure group, as this feature not necessary has to be tested for azure, but other smooth operations has to be necessary tested for smooth operations of fluentd which makes more sense to be upgraded by non-focus-azure members as a part of sprint and we focus on azure task.
Would be nice if taken this tasks in next sprint as a part of chart upgrades every quarter process.

Do we want to upgrade to latest version, not only version that includes azure plugin?
Azure plugin is patch v5.11.0, while latest version is v5.17.2.

Do we want to upgrade to latest version, not only version that includes azure plugin? Azure plugin is patch v5.11.0, while latest version is v5.17.2.

At the time of implementation, Latest version will be installed

If this task is supposed to implemented via Azure focus group - Apps integrations would need to be completed first - https://github.com/elastisys/mse-internal-docs/issues/181


I want to draw line with image pattern.

How are you?
I am going to draw line with image pattern.
How can I do for this?
Could you guide me how can I do?
Thank you.

Sorry, I'm not sure what you mean. Can you try to explain please?

Thank you for your answer.
When draw line, you used this at 163 lines of SwiftyDraw.swift file
override open func draw(_ rect: CGRect) {
    super.draw(rect)

    guard let context: CGContext = UIGraphicsGetCurrentContext() else { return }

    for item in drawItems {
        context.setLineCap(.round)
        context.setLineJoin(.round)
        context.setLineWidth(item.brush.width)
        context.setBlendMode(item.brush.blendMode.cgBlendMode)
        context.setAlpha(item.brush.opacity)

        if (item.isFillPath)
        {
            context.setFillColor(item.brush.color.uiColor.cgColor)
            context.addPath(item.path)
            context.fillPath()
        }
        else {
            context.setStrokeColor(item.brush.color.uiColor.cgColor)
            context.addPath(item.path)
            context.strokePath()
        }
    }
}

Then it will draw line.
But I want to line using some image pattern.
I didn't find any solution yet.
So I need your help.
Thank you.

draw line with image pattern.

Have you found a solution to this demand?


JSONDecodeError with HuggingFace dataset viewer

Dataset viewer issue for 'pubmed_neg'
Link: https://huggingface.co/datasets/IGESML/pubmed_neg
I am getting the error:
Status code:   400
Exception:     JSONDecodeError
Message:       Expecting property name enclosed in double quotes: line 61 column 2 (char 1202)
I have checked all files - I am not using single quotes anywhere. Not sure what is causing this issue.
Am I the one who added this dataset ? Yes

Hi ! I think the issue comes from the dataset_infos.json file: it has the "flat" field twice.
Can you try deleting this file and regenerating it please ?

Thanks! That fixed that, but now I am getting:
Server Error
Status code:   400
Exception:     KeyError
Message:       'feature'
I checked the dataset_infos.json and pubmed_neg.py script, I don't use 'feature' anywhere as a key. Is the dataset viewer expecting that I do?

It seems that the feature key is missing from some feature type definition in your dataset_infos.json:
			"tokens": {
				"dtype": "list",
				"id": null,
				"_type": "Sequence"
			},
			"tags": {
				"dtype": "list",
				"id": null,
				"_type": "Sequence"
			}

They should be
			"tokens": {
				"dtype": "list",
				"id": null,
				"_type": "Sequence"
                                 "feature": {"dtype": "string", "id": null, "_type": "Value"}
			},
			"tags": {
				"dtype": "list",
				"id": null,
				"_type": "Sequence",
                                 "feature": {"num_classes": 5, "names": ["-", "S", "H", "N", "C"], "names_file": null, "id": null, "_type": "ClassLabel"}
			}

Note that you can generate the dataset_infos.json automatically to avoid mistakes:
datasets-cli test ./path/to/dataset --save_infos


Tests are randomly failing

Prerequisites

[X] I have written a descriptive issue title
[X] I have searched existing issues to ensure the bug has not already been reported

Fastify version
4.0.0
Plugin version
2.0.1
Node.js version
18, 20, 21
Operating system
Linux
Operating system version (i.e. 20.04, 11.3, 10)

Description
When running npm test sometimes tests fail with a timeout, but it is not repeatable on demand.  The error has happened on Linux, Windows, and MacOS.
Steps to Reproduce
npm run test
https://github.com/fastify/fastify-swagger-ui/actions/runs/6776721797/job/18418830040
https://github.com/fastify/fastify-swagger-ui/actions/runs/7216288278/job/19662243321
# Subtest: test/integration.test.js
    # Subtest: fastify will response swagger csp
        1..1
        ok 1 - should be equivalent
    ok 1 - fastify will response swagger csp # time=591.307ms

    1..1
    # time=597.533ms
not ok 4 - test/integration.test.js # time=597.533ms
  ---
  env: {}
  file: test/integration.test.js
  timeout: 30000
  command: /opt/hostedtoolcache/node/18.19.0/x64/bin/node
  args:
    - test/integration.test.js
  stdio:
    - 0
    - pipe
    - 2
  cwd: /home/runner/work/fastify-swagger-ui/fastify-swagger-ui
  exitCode: null
  signal: SIGTERM
  ...

not ok 4 - test/integration.test.js # time=675.262ms
  ---
  env: {}
  file: test/integration.test.js
  timeout: 30000
  command: C:\hostedtoolcache\windows\node\21.1.0\x64\node.exe
  args:
    - test/integration.test.js
  stdio:
    - 0
    - pipe
    - 2
  cwd: D:\a\fastify-swagger-ui\fastify-swagger-ui
  exitCode: null
  signal: SIGTERM
  ...

 FAIL  test/route.test.js 89 OK 344.544ms
  command: /Users/user/.nvm/versions/node/v20.8.0/bin/node
  args:
    - test/route.test.js
  exitCode: null
  signal: SIGTERM

 FAIL  TAP
 ✖ test/route.test.js

  test: TAP
  env: {}
  file: test/route.test.js
  timeout: 30000
  command: /Users/user/.nvm/versions/node/v20.8.0/bin/node
  args:
    - test/route.test.js
  stdio:
    - 0
    - pipe
    - 2
  cwd: /Users/user/git/open/fastify-swagger-ui
  exitCode: null
  signal: SIGTERM

Expected Behavior
No response

Thanks for reporting! Would you like to send a Pull Request to address this issue?

I did some digging, and wasn't able to find an answer right off the bat.  I'll try some more digging.


Make tests zombie proof

This change is

PR is added to the queue for testing as 1. task. (ae83d78)

Test 124853546 (ae83d78) build started.

Test (Success) 124853546 build is completed (ae83d78)
See https://github.com/ThaliTester/TestResults/tree/124853546ae83d78_Make_tests_zombie_proof_jareksl/ for the logs

Test 124853546ae83d78(ae83d78) has failed
See https://github.com/ThaliTester/TestResults/tree/124853546ae83d78_Make_tests_zombie_proof_jareksl/ for the fail logs

PR is added to the queue for testing as 1. task. (fd55b4f)

Test 124853546 (fd55b4f) build started.

PR is added to the queue for testing as 2. task. (6a7ea21)

Test (Success) 124853546 build is completed (fd55b4f)
See https://github.com/ThaliTester/TestResults/tree/124853546fd55b4f_Make_tests_zombie_proof_jareksl/ for the logs

Test 124853546 (6a7ea21) build started.

Test 124853546fd55b4f(fd55b4f) has failed
See https://github.com/ThaliTester/TestResults/tree/124853546fd55b4f_Make_tests_zombie_proof_jareksl/ for the fail logs

Test (Fail) 124853546 build is completed (6a7ea21)
See https://github.com/ThaliTester/TestResults/tree/1248535466a7ea21_Make_tests_zombie_proof_jareksl/ for the logs

PR is added to the queue for testing as 1. task. (0c4faef)

Test 124853546 (0c4faef) build started.

Test (Success) 124853546 build is completed (0c4faef)
See https://github.com/ThaliTester/TestResults/tree/1248535460c4faef_Make_tests_zombie_proof_jareksl/ for the logs

Test<PHONE_NUMBER>c4faef(0c4faef) has failed
See https://github.com/ThaliTester/TestResults/tree/1248535460c4faef_Make_tests_zombie_proof_jareksl/ for the fail logs

PR is added to the queue for testing as 1. task. (9caf7c1)

Test 124853546 (9caf7c1) build started.

Test (Success) 124853546 build is completed (9caf7c1)
See https://github.com/ThaliTester/TestResults/tree/1248535469caf7c1_Make_tests_zombie_proof_jareksl/ for the logs

Test<PHONE_NUMBER>caf7c1(9caf7c1) has failed
See https://github.com/ThaliTester/TestResults/tree/1248535469caf7c1_Make_tests_zombie_proof_jareksl/ for the fail logs

PR is added to the queue for testing as 1. task. (90c4480)

Test 124853546 (90c4480) build started.

Test (Fail) 124853546 build is completed (90c4480)
See https://github.com/ThaliTester/TestResults/tree/12485354690c4480_Make_tests_zombie_proof_jareksl/ for the logs

PR is added to the queue for testing as 1. task. (9e1dfdc)

Test 124853546 (9e1dfdc) build started.

Test (Fail) 124853546 build is completed (9e1dfdc)
See https://github.com/ThaliTester/TestResults/tree/1248535469e1dfdc_Make_tests_zombie_proof_jareksl/ for the logs

PR is added to the queue for testing as 1. task. (6fd0a8a)

Test 124853546 (6fd0a8a) build started.

Test (Fail) 124853546 build is completed (6fd0a8a)
See https://github.com/ThaliTester/TestResults/tree/1248535466fd0a8a_Make_tests_zombie_proof_jareksl/ for the logs

PR is added to the queue for testing as 1. task. (a997e0f)

Test 124853546 (a997e0f) build started.

Test (Success) 124853546 build is completed (a997e0f)
See https://github.com/ThaliTester/TestResults/tree/124853546a997e0f_Make_tests_zombie_proof_jareksl/ for the logs

Test 124853546a997e0f(a997e0f) has failed
See https://github.com/ThaliTester/TestResults/tree/124853546a997e0f_Make_tests_zombie_proof_jareksl/ for the fail logs

PR is added to the queue for testing as 1. task. (a27b779)

Test 124853546 (a27b779) build started.

Test (Fail) 124853546 build is completed (a27b779)
See https://github.com/ThaliTester/TestResults/tree/124853546a27b779_Make_tests_zombie_proof_jareksl/ for the logs

PR is added to the queue for testing as 1. task. (d515f1e)

Test (Fail) 124853546 build is completed (d515f1e)
See https://github.com/ThaliTester/TestResults/tree/124853546d515f1e_Make_tests_zombie_proof_jareksl/ for the logs

PR is added to the queue for testing as 1. task. (8480830)

Test 124853546 (8480830) build started.

Test (Success) 124853546 build is completed (8480830)
See https://github.com/ThaliTester/TestResults/tree/1248535468480830_Make_tests_zombie_proof_jareksl/ for the logs

Test<PHONE_NUMBER>480830(8480830) has failed
See https://github.com/ThaliTester/TestResults/tree/1248535468480830_Make_tests_zombie_proof_jareksl/ for the fail logs


Mongo-based security blackbox tests are failing due to missing redis

https://jenkins.edgexfoundry.org/view/blackbox-testing/job/blackbox-testing-security-centos7-blackbox-4c-2g-master/481/consoleText
------- scheduler ------
level=INFO ts=2020-02-27T12:35:40.079082701Z app=edgex-support-scheduler source=bootstrap.go:133 msg="Loaded configuration from http://edgex-core-consul:8500"
level=INFO ts=2020-02-27T12:35:40.079206721Z app=edgex-support-scheduler source=registry.go:49 msg="Using Registry from http://edgex-core-consul:8500"
level=INFO ts=2020-02-27T12:35:40.081921534Z app=edgex-support-scheduler source=config.go:138 msg="Writeable configuration has been updated from the Configuration Provider"
level=INFO ts=2020-02-27T12:35:40.170914438Z app=edgex-support-scheduler source=database.go:144 msg="Database connected"
level=INFO ts=2020-02-27T12:35:40.171794573Z app=edgex-support-scheduler source=loader.go:38 msg="loading intervals, interval actions ..."
level=ERROR ts=2020-02-27T12:35:40.186210316Z app=edgex-support-scheduler source=init.go:63 msg="Failed to load schedules and events Could not dial Redis: dial tcp: lookup edgex-redis on <IP_ADDRESS>:53: no such host"
level=INFO ts=2020-02-27T12:35:40.186310411Z app=edgex-support-scheduler source=client.go:98 msg="context cancelled, dismiss the token renewal process"
level=INFO ts=2020-02-27T12:35:40.186327339Z app=edgex-support-scheduler source=database.go:158 msg="Database disconnected"
level=INFO ts=2020-02-27T12:35:40.186962752Z app=edgex-support-scheduler source=bootstrap.go:160 msg="Un-Registering service from the Registry"

This regression appears to be caused by the following PR:
https://github.com/edgexfoundry/edgex-go/commit/85e5bf6adee0c00ba03e0958022f91895438b52d

cc @andresrinivasan

Apologies. Thought I had decoupled this. Will follow-up.

We opened a corresponding issue on developer-scripts
https://github.com/edgexfoundry/developer-scripts/issues/228

Testing now but the code suggests this was resolved with PR #395.

We will see.  In the above mentioned PR, cmd/core-command/res/docker/configuration.toml hard-codes the Redis host and the Redis database type.  There doesn't appear to be an obvious way to override.

Alright. Then we're a little hosed as I was so focused on the scripts I didn't even think about the TOML files. We should have a call to figure out a path forward.

cc @tingyuz
As all the other TOML files have already been converted, it seems the logical course of action would be go to all-in with security-enabled Redis.
Perhaps there is a way for blackbox testing to run a special container inject configuration into Consul to switch to mongodb, overriding the static TOML definition.

@andresrinivasan,
@lenny-intel Suggests that you can set the following environment variable (Databases_Primary_Type) to specific sections on TOML, for example:
Databases_Primary_Type: redisdb

@bnevis-i we made some investigation today, and notice the environment variable override has been implemented in go-mod-bootstrap.  We also looked into the code, and didn't see the general environment variable override logic.
https://github.com/edgexfoundry/go-mod-bootstrap/blob/master/bootstrap/bootstrap.go#L114-L148
https://github.com/edgexfoundry/go-mod-bootstrap/blob/master/bootstrap/config/environment.go
@lenny-intel could you please help confirm my statement is correct?  If yes, may we open a PR in go-mod-bootstrap to add the environment variable override works for the database related configuration?

@cloudxxx8 , go-mod-bootstrap doesn't contain the environment override code, yet. Currently that code resides in config seed here:
https://github.com/edgexfoundry/edgex-go/blob/master/internal/seed/config/environment.go#L56
This is why the override must be in the global section or placed on config-seed  in the compose file.

Thanks, @lenny-intel
This issue can be fixed by
https://github.com/edgexfoundry/developer-scripts/pull/232

This is why the override must be in the global section or placed on config-seed in the compose file.

Make that "This is why the override must be in the global section AND REFERENCED by config-seed in the compose file or specified in config-seed environment block directly".  Added similar advice to PR.

Closing this ticket.  Blackbox test are healthy and passing with 1289 passes and 1 failures.


Let Expr cache expressions

Part of #112.
Also fixes InspectorWindow to not (possibly) modify types when UI calls type checker correctly.

This is without the UI stuff.

Would you like to have this merged into master, demo or neither?

I think master is fine, as this is just a preparation for UI fixes.
The slight improvement of the inspector window is not that important for the demo either.

Seems to work, will merge into master. Thanks! :+1:


following password reset link results in argument type error

App\Providers\FortifyUIServiceProvider::App\Providers{closure}(): Argument #1 ($request) must be of type App\Providers\Request, Illuminate\Http\Request given
        Fortify::resetPasswordView(function (Request $request) {
            return view('auth.reset-password', ['request' => $request]);
        });

PHP 8.3.8
Laravel 11.2.0
"zacksmash/fortify-ui": "^2.0"

@aaftre Thanks for this! This is fixed in v2.0.1

fixed by adding use Illuminate\Http\Request not sure if its in the install documentation or i missed it.

@aaftre Thanks for this! This is fixed in v2.0.1

great! thank you!


descriptive errmsg when hostpath dne

What type of PR is this?
type::feature
What this PR does / why we need it:
Shows a more descriptive error message when a user chooses a host path that does not exist.  It is needed so our users/vendors can easily understand what they are doing wrong.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Attached screenshots show the two separate views a user might see this.  One is updating  storage and one creating storage.
Does this PR introduce a user-facing change?
     Display descriptive error when provided host path does not exist.

Does this PR require documentation?

NON

E

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Car Unrecognized (2021 Acura RDX)

I have a 2021 Acura RDX and comma 2. It has worked fine for about the past 6 months. Got in my car yesterday and I keep getting 'Car Unrecognized' dash cam mode only. I have verified all connections, done multiple resets and reinstall, and tried new ethernet cable. Any ideas?
Dongle ID 33eeca16eca2cee4

Issue fixed. It was the usb c cable. I assumed since it had power it never even occurred to me that the usb c was the issue.


Moving non-solution aware flows to solutions

Hi,
There seems to be a mistake in the second paragraph of this article.
You can add non-solution aware flows to solutions, I do it sometimes, unless we are missing each other somehow?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 005137dc-f411-ccf5-0c65-714802dda860
Version Independent ID: 89bfebce-e8c8-15ed-d385-6e5bfe0fdaf0
Content: Overview of solution-aware flows - Power Automate
Content Source: articles/overview-solution-flows.md
Service: flow
GitHub Login: @MSFTMan
Microsoft Alias: deonhe

@ChrisGarty can you please have a look. LMK if we need to update the topic so I can close this one out. Thanks!

@prsi-msft Can you please make a recommendation?

@tinaschrepfer Thanks for reporting this issue. We've updated the docs. You'll see the updated doc within the next 12 hours.


Record whether a generator is a theorem or proof

When creating a generator, we should record what type of generator it is: cell, theorem or proof.
The main use for this is #590 so we can disable the framed/oriented and directed/invertible toggles for theorems and proofs.
Another use could be a better naming scheme for theorems and proofs. Right now, when you press 'Theorem' it adds a theorem cell called "Theorem n" and a proof cell called "Proof n + 1", and then the next generators will be called "Cell n + 2". It would be nice to have separate counters for cells and theorems/proofs, which this would enable.

I'm not sure I agree with this one. If the user goes in and starts modifying the Theorem, Proof cells that are constructed by the Theorem operation, their interpretation changes, and that's something the user will be aware of. Constraining certain cells in the way you are proposing complicates the UI and potentially confuses users. I prefer to keep things as they are.

Hmm maybe you're right, this might be unnecessarily restrictive.
If we make the proof cell invertible, you won't be able to then make it directed anyway so that's fine.

For theorem cells, maybe it's fine to allow users to make a theorem cell invertible. You could interpret the inverse as an algebraic generator.

I am closing this as we agreed it's not really necessary and potentially too restrictive.


Let glog log only to console

I mention in another thread, but I would like to better understand how to let glog log only to console.
In my use case, the application runs in a docker container in a kubernetes cluster. The cluster has its logging service that monitors the console output of the process and make it available via grafana. So it seems natural to skip the file logging and go on the console (also nice when developing...).
How can this be done?

From the code, I have found
  FLAGS_logtostdout = true;

is that the way? Will it be worth adding this to the docs?

I think everything is worth adding to the docs, documentation never have "enough" information


Make sure that overwriting feedback works with non tpu-/fp- feedback

Currently, this line assumes that the feedback will always be either tpu- or fp-. This could possibly fail if another feedback is given e.g. tp-
Related: #182

Works now, happened to fix this with another change


Added BoltAI as a desktop UI for Ollama

Overview
BoltAI supports Ollama natively. It automatically synchronize with Ollama model lists, and allows users to use advanced features such as AI Command and AI Inline.

I'm just a random third party but..... I was not able to find anything about BoltAI using ollama?
https://boltai.com/resources/getting-started/installation
Project seems super cool so i was curious what the features were but everything seems to be openai related vs local ai related?

Sorry for the confusion. I'm working on a new documentation site and some help guides are still lacking.
To use Ollama, you can go to Settings > Models and click (+) button, then choose Ollama
It should automatically fetch the model list and you can start using it right away.
You can read more here
https://boltai.com/docs/guides/how-to-set-up-a-custom-openai-compatible-server-in-boltai

In the hopes of offloading some of the PR time for the devs here, another active discord member and I are making an "awesome ollama" list, I took the liberty of adding this project as well! (it will not affect the PR here, just letting you know)
https://github.com/endo9000/Awesome-Ollama?tab=readme-ov-file#web--desktop-uis

Hi @jmorganca and @pdevine, any chance you can take a look at this PR. I opened it quite a while ago. Do I need to add more information?

Hello @mchiang0610, any chance you can take a look at this PR? Thanks :D


Check if icon has desired size when saving

Check if icon has desired size when saving 360

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


Enforce additional HTTP security options

https://observatory.mozilla.org/analyze/wakapi.dev

X-XSS-Protection header is deprecated. Apart from that, we actually need most of the CSP options as they are (e.g. unsafe-inline for scripts and styles, etc.). Technically we could find ways around this and get an A rating. But I think it's not worth the effort, especially since Wakapi is not an interactive platform where an unknown audience of users can post stuff, etc.


Notes on how Mass Traffic Simulation works

Hi folks,
The Mass Traffic plugin (i.e. the vehicles in the City Sample/Matrix Awakens demo) has a lot going on - vehicle simulation, damage, drivers, trailers, etc.
I went through the vehicle simulation and took some notes. This might be out of scope of this repo, so feel free to close it. However, I wanted to post it here in the event it helps anyone else out.
In the notes below, I explain the processors executed in order by each of the three simulation level of details (instanced static mesh, low resolution actor, high resolution actor).
Findings
Overall, the movement simulation is tightly coupled to the ZoneGraph. Vehicles choose which lane they should head towards based off of downstream traffic density. Vehicles don't have a destination in mind, however, the act of them evenly distributing traffic density gives the appearance that they do.
ZoneGraph has an A* pathfinding wrapper. It would be easier to retrofit the existing Mass Traffic vehicles implementation to intentionally pathfind to a location than it would be to have the vehicle go in a straight line towards a random location not on a ZoneGraph.
ISMC Actor

The ISMC simulation determines what lane it should be on in UMassTrafficLaneChangingProcessor. It then calculates its speed and its current progress in the lane in UMassTrafficVehicleControlProcessor. It then calculates the transform based off the current lane progress in UMassTrafficInterpolationProcessor. It finally updates the ISMC's position in UMassTrafficVehicleUpdateCustomVisualizationProcessor.

UMassTrafficLaneChangingProcessor::StartNewLaneChangesEntityQuery_Conditional, UpdateLaneChangesEntityQuery_Conditional
Has ReadWrite access on these fragments:

FMassTrafficInterpolationFragment
FMassTrafficVehicleControlFragment
FMassTrafficVehicleLightsFragment
FMassZoneGraphLaneLocationFragment
FMassTrafficVehicleLaneChangeFragment
FMassTrafficObstacleAvoidanceFragment

StartNewLaneChangeEntityQuery_Conditional finds what the next lane should be based off of downstream density. Updates FMassTrafficVehicleLaneChangeFragment.
FMassTrafficVehicleLaneChangeFragment calls FMassTrafficVehicleLaneChangeFragment::UpdateLaneChange. I think this is used to determine if the changing of lanes has finished.
UMassTrafficVehicleControlProcessor::SimpleVehicleControlEntityQuery_Conditional
Has ReadWrite access on these fragments:

FLaneLocationFragment
FMassZoneGraphLaneLocationFragment

Determines what speed the vehicle should be going and stores it in FMassTrafficVehicleControlFragment.Speed. It also calculates the new lane progress and updates FMassZoneGraphLaneLocationFragment.DistanceAlongLane!
UMassTrafficChooseNextLaneProcessor::EntityQuery_Conditional
Has ReadWrite access on these fragments:

FMassTrafficVehicleControlFragment
FMassTrafficVehicleLightsFragment
FMassTrafficNextVehicleFragment

This may keep the lane previously chosen by UMassTrafficLaneChangingProcessor::StartNewLaneChangesEntityQuery_Conditional. It will change if the upcoming intersection becomes closed. It does this by changing FMassTrafficVehicleControlFragment.ChooseNextLanePreference and FMassTrafficVehicleControlFragment.NextLane.
UMassTrafficInterpolationProcessor::EntityQueryNonOffLOD_Conditional
Has ReadWrite access on these fragments:

FMassTrafficInterpolationFragment: It has ReadWrite access on this but doesn't appear to modify it.
FTransformFragment

Based off of the calculations from UMassTrafficVehicleControlProcessor::SimpleVehicleControlEntityQuery_Conditional, it uses this to get the new position & rotation of the ISMC. Calculates the current position along the lane given the data found in FMassZoneGraphLaneLocationFragment. This doesn't appear to calculate the next position, but just interpolates given off of already done movement calculations.
UMassTrafficUpdateVelocityProcessor::EntityQuery_Conditional
Has ReadWrite access on these fragments:

FMassVelocityFragment
FMassTrafficAngularVelocityFragment

Updates FMassVelocityFragment from the Speed found in FMassTrafficVehicleControlFragment.
VelocityFragment.Value = TransformFragment.GetTransform().GetRotation().GetForwardVector() * VehicleControlFragment.Speed;

AngularVelocityFragment.AngularVelocity = Chaos::FRotation3::CalculateAngularVelocity(RepresentationFragment.PrevTransform.GetRotation(), TransformFragment.GetTransform().GetRotation(), SimulationVariableTickFragment.DeltaTime);

UMassTrafficVehicleUpdateCustomVisualizationProcessor::EntityQuery
Updates the ISMC position via AddBatchedTransform.
ISMInfo[RepresentationFragment.StaticMeshDescIndex].AddBatchedTransform(GetTypeHash(Entity), TransformFragment.GetTransform(), RepresentationFragment.PrevTransform, RepresentationLODFragment.LODSignificance);

UMassTrafficUpdateDistanceToNearestObstacleProcessor::EntityQuery_Conditional
Has ReadWrite access on these fragments:

FMassTrafficNextVehicleFragment
FMassTrafficVehicleLaneChangeFragment
FMassTrafficObstacleAvoidanceFragment

Calculates the distance to the next vehicle or obstacles
High Resolution Actor

The High Resolution Actor determines what lane it should be on in UMassTrafficLaneChangingProcessor. It then calculates PID values for throttle, brake, and steering in UMassTrafficVehicleControlProcessor. It calculates a simple physics sim in the event of switching to a lower LOD in UMassTrafficVehiclePhysicsProcessor - however, this won't be used if it stays in the high resolution actor. The PID values calculated earlier and then sent to the high resolution actor in UMassTrafficActorVehiclePhysicsProcessor. Finally, the FTransformFragment is synced with the high resolution actor in UMassTrafficPostPhysicsUpdateTrafficVehiclesProcessor.

UMassTrafficLaneChangingProcessor::StartNewLaneChangesEntityQuery_Conditional, UpdateLaneChangesEntityQuery_Conditional
No change from ISMC.
UMassTrafficVehicleControlProcessor::PIDVehicleControlEntityQuery_Conditional
Has ReadWrite access on these fragments:

FMassTrafficPIDVehicleControlFragment
FMassTrafficVehicleControlFragment
FMassTrafficVehicleLightsFragment
FMassZoneGraphLaneLocationFragment
FMassTrafficLaneOffsetFragment
FMassTrafficPIDControlInterpolationFragment
FMassTrafficNextVehicleFragment
FMassTrafficVehicleLaneChangeFragment

Sets throttle, brake, and steering values on FMassTrafficPIDVehicleControlFragment.
UMassTrafficVehiclePhysicsProcessor::SimplePhysicsVehiclesQuery
This is done regardless if it is the high or low resolution actor. If it is the high resolution actor, it is discarded.
// Note: Simple vehicle physics is always run for both high & low viewer LOD vehicles. Most of the time
//		 this simple simulation is discarded / ignored by the high LOD physics actor which does its
//		 own simulation. However, when a high LOD drops back to medium LOD on a frame, this simulation
//		 will have been done to ensure the spawned medium LOD will have been advanced forward.

Has ReadWrite access on these fragments:

FMassTrafficVehicleControlFragment
FMassTrafficVehiclePhysicsFragment
FMassVelocityFragment
FMassTrafficAngularVelocityFragment
FTransformFragment
FMassZoneGraphLaneLocationFragment
FMassTrafficInterpolationFragment

Runs a lite physics simulation of the vehicle suspension and drive forces and stores them in FMassTrafficVehiclePhysicsFragment.
UMassTrafficChooseNextLaneProcessor::EntityQuery_Conditional
No change from ISMC.
UMassTrafficActorVehiclePhysicsProcessor::ChaosPhysicsVehiclesQuery
Has ReadWrite access on these fragments:

FMassActorFragment: This doesn't seem to be modified in any way.

This applies the PID values from FMassTrafficPIDVehicleControlFragment that were calculated back in UMassTrafficVehicleControlProcessor::PIDVehicleControlEntityQuery_Conditional to the vehicle actor via an interface function IMassTrafficVehicleControlInterface::Execute_SetVehicleInputs. The actor is responsible for mapping these values to the VMC.
UMassTrafficVehicleUpdateCustomVisualizationProcessor::EntityQuery
Doesn't do much besides sending some custom packed data to the actor's primitive components. I am guessing this is for lights?
UMassTrafficPostPhysicsUpdateTrafficVehiclesProcessor::PIDControlTrafficVehicleQuery
Has ReadWrite access on these fragments:

FMassActorFragment
FMassTrafficNextVehicleFragment
FMassTrafficVehicleDamageFragment
FMassTrafficVehicleLaneChangeFragment
FMassTrafficVehicleControlFragment
FMassTrafficVehicleLightsFragment
FTransformFragment
FMassZoneGraphLaneLocationFragment
FMassTrafficAngularVelocityFragment
FMassRepresentationFragment
FMassVelocityFragment

Syncs FTransformFragment to match with chaos vehicle actor. Applies linear velocity from FMassVelocityFragment and angular velocity from FMassTrafficAngularVelocityFragment to the root component.
Updates FMassZoneGraphLaneLocationFragment.DistanceAlongLane from actor location.
UMassTrafficUpdateDistanceToNearestObstacleProcessor::EntityQuery_Conditional
No change from ISMC.
Low Resolution Actor

The Low Resolution Actor determines what lane it should be on in UMassTrafficLaneChangingProcessor. It then calculates PID values for throttle, brake, and steering in UMassTrafficVehicleControlProcessor. It then calculates a simple physics sim in UMassTrafficVehiclePhysicsProcessor which will later be synced to the vehicle and wheels in UMassTrafficVehicleUpdateCustomVisualizationProcessor.  Finally, the FTransformFragment is synced with the low resolution actor in UMassTrafficPostPhysicsUpdateTrafficVehiclesProcessor.

UMassTrafficLaneChangingProcessor::StartNewLaneChangesEntityQuery_Conditional, UpdateLaneChangesEntityQuery_Conditional
No change from ISMC.
UMassTrafficVehicleControlProcessor::PIDVehicleControlEntityQuery_Conditional
No change from High Resolution Actor.
UMassTrafficVehiclePhysicsProcessor::SimplePhysicsVehiclesQuery
No change from High Resolution Actor.
UMassTrafficChooseNextLaneProcessor::EntityQuery_Conditional
No change from ISMC.
UMassTrafficActorVehiclePhysicsProcessor::ChaosPhysicsVehiclesQuery
No change from High Resolution Actor.
UMassTrafficVehicleUpdateCustomVisualizationProcessor::EntityQuery
This is where the magic happens for the low resolution actor. It sets the actor's transform from the FTransformFragment, and it communicates with the UMassTrafficVehicleComponent to set the transform and angular velocities of the wheels.
UMassTrafficPostPhysicsUpdateTrafficVehiclesProcessor::PIDControlTrafficVehicleQuery
No change from High Resolution Actor.
UMassTrafficUpdateDistanceToNearestObstacleProcessor::EntityQuery_Conditional
No change from ISMC.

This is so much it merits its own repo/blog or something! Seems like a waste to bury it in here.


Crash on uv_loop_close after freeing watcher handle

I'm seeing crashes in uv_loop_close when closing a loop that's had all its watchers stopped. This happens when the memory allocated for the watcher handle is released before the loop is closed.
Here is a slightly contrived example to illustrate the problem:
static void timer_callback(uv_timer_t * handle) {
    uv_timer_stop(handle);
}

void test() {
    uv_loop_t loop;
    uv_loop_init(&loop);

    uv_timer_t * timer = (uv_timer_t*)malloc(sizeof(uv_timer_t));
    uv_timer_init(&loop, timer);
    uv_timer_start(timer, timer_callback, 0, 1000);
    uv_run(&loop, UV_RUN_DEFAULT);
    free(timer);

    uv_loop_close(&loop);  /* crash occurs here */
}

It seems that uv_timer_stop is not enough to remove the watcher from the loop's internal list of watchers. Is this an error, or am I just using the API incorrectly?

Is this an error, or am I just using the API incorrectly?

User error. :-)  You should not free the timer until you have either uv_close'd it and the close callback has been called, or the event loop has been shut down with uv_loop_close().

Ah, thanks. I knew there must be something. I didn't realize uv_close applied to timers too.  Now I know!  Thanks.


refactor: apply only margin top to menu list item

A more accurate way to set margin for menu list items to avoid unnecessary margin on last item.

Not against, but comparing before/after it does not seem to make any visual difference? not sure why
Comparing

https://infima.dev/demo/
https://deploy-preview-130--infima.netlify.app/demo/

There seems to be some kind of margin collapsing because applying margin-bottom: 0.25rem; or margin-bottom: 0; does not change anything to me, but margin-bottom: 0.5rem; does change something

The difference will be visible in "real" sidebar, for example on Docusaurus:

Before
After


Added workaround support for wikipedia specific sections

Like this:

What I did?

Added a request to wikipedia parse API to parse sections of the given page, and look at the section ID given in the URL by developer.
If section ID is found, then make another request to parse html/text for that certain section.

That's so cool, pulled and thank you Dev! 🎉  (Apologies for my late pull!)
You're now credited in the credits now, with demo of Binary Addition:

Huge thanks again! ^_^

That's so cool, pulled and thank you Dev! 🎉 (Apologies for my late pull!)
You're now credited in the credits now, with demo of Binary Addition:

Huge thanks again! ^_^

Thank you so much! I really appreciate the credit and I'm glad I could help with the demo.


Altered order of dimensions when calculating drought_code

xclim version: 0.25.0
Python version: 3.7.6
Operating System: LinuxMint 20.1

Description
I calculated the index 'drought_code' using xclim.indices.drought_code or xclim.indicators.atmos.drought_code. The behaviour is the same with either function.
When visualizing the DataArray that contains the calculated climate indices, I realized that the order of dimensions in the resulting DataArray ('latitude', 'longitude', 'time') was different than the order of dimensions in the input DataArrays (temperature and precipitation) ('time', 'latitude', 'longitude').
In addition of keeping dimensions in the same order, I think that it is more convenient for subsequent analyses to let 'time' be the first dimension. I used 34 climate indices, but only noted this behaviour with 'drought_code'.
What I Did
I shared a .py file, along with 3 input NetCDF files and a .geojson file to help PCDO investigate this problem. The path of these directory on the server was communicated by email.
Until there is a fix for this (if this is a bug), I adjust the order of dimensions of the Dataset containing climate indices using the function xarray.transpose.
What I Received
There is no error message. The easiest way is to use the provided test .py code to reproduce the problem and to explore the DataArray containing the climate indices in debug mode.

Copying my comment from the other issue :
The use of xr.apply_ufunc along time (internally for all forest weather indices) does change the axis order by sending 'time' to the last place. We made the decision to follow xarray and not rely on dimension order.
DataArrays have named dimensions, and thus no need to have a specific order. This is also motivated by the fact that transpose actions are not free when using dask, they add complexity to the compute tree.
But I could be convinced otherwise.

@aulemahal : Thanks for the explanation. I tried to locate information about conventions regarding the order of dimensions. According to:
CF conventions:

The CF convention places no rigid restrictions on the order of dimensions, however we encourage data producers to make the extra effort to stay within the COARDS standard order.
Then, I looked for information about
COARDS convention and found the following sentence:
The recommended ordering of dimensions in the file is time, lev (if necessary), lat, lon.
Does it apply to the type of analyses that we are doing?

Oh! I didn't know of this recommendation in the CF conventions.
Doing this would need us to parse the dimension names (we currently only consider "time"), as so to reorder them.
What do @Zeitsperre and @huard think?

@aulemahal @Zeitsperre @huard ...
With expressions such as "encourage" and "no rigid restrictions", the final decision seems to be up to us.
My main concern is related to the order of dimensions being different between the computed DataArray (of climate indices) and the scenario DataArray (used to calculate indices). I think it's confusing from a user's perspective. Not everybody would know this (there was at least one person who was not aware until 10 minutes ago), and the "drought_code" index seems to behave differently than the other indices with respect to the order of dimensions.

I'm not too hot for the forced reordering if there is performance penalty. If there is no penalty, I agree sticking to the convention is best.

Woups forgot about this issue.
As far as I have experienced it, there is a (small) performance penalty on large datasets using dask because of the addition of a task (on each chunk) and xclim stuff already suffers from generating an enormous amount of dask tasks. I'll thus suggest we don't do anything.