Consider adding streaming support

It would be very helpful if text responses could be streamed rather than requiring a full await. This feature would be especially beneficial for chat applications. For instance:

In the case of OpenAI, passing stream=True in the configuration is sufficient.
For AWS, the converse_stream() function needs to be called instead.

While I'm not a professional developer, I’d like to propose a potential implementation, which builds on the previous issue I raised (#96 ):
#aisuite/providers/openai_provider.py
def response_stream_generator(self, response):
        with response as stream:
            for text in stream:
                yield text.choices[0].delta.content

def chat_completions_create(self, model, messages, **kwargs):
        response = # same

        if kwargs.get("stream", False):
            return self.response_stream_generator(response)
        return response

#aisuite/providers/aws_provider.py
def response_stream_generator(self, response):
        stream = response.get('stream')
        if stream:
            for event in stream:
                chunk = event.get('contentBlockDelta', None)
                if not chunk:
                    continue

                yield chunk.get('delta', {}).get('text', '')

def chat_completions_create(self, model, messages, **kwargs):
        # ... filled inference_config and additional_model_request_fields

        additional_model_request_fields.pop("stream", None)

        # Call the Bedrock ConverseStrean API.
        if kwargs.get("stream", False):
            response = self.client.converse_stream(
                modelId=model,  # baseModelId or provisionedModelArn
                messages=formatted_messages,
                system=system_message,
                inferenceConfig=inference_config,
                additionalModelRequestFields=additional_model_request_fields,
            )
            return self.response_stream_generator(response)

        response = self.client.converse(
            modelId=model,  # baseModelId or provisionedModelArn
            messages=formatted_messages,
            system=system_message,
            inferenceConfig=inference_config,
            additionalModelRequestFields=additional_model_request_fields,
        )
        return self.normalize_response(response)

See: https://github.com/viictorjimenezzz/aisuite
Thank you for considering this request!

@viictorjimenezzz I would like to work on this concept.


.buildkite: Switch CI jobs to using /dev/sgx_enclave devices

Because Intel will eventually roll-out SGX2, the new Buildkite agents with /dev/sgx_enclave execute jobs with queue=sgx1. The old Buildkite agents with /dev/isgx execute jobs with queue=intel-sgx. This PR switches SGX CI jobs to the new Buildkite agents and renames them.

Note that this has nothing to do with SGX1 vs. SGX2. It just has to do with the legacy out of tree SGX kernel driver, where /dev/isgx is the legacy OOT drive while /dev/sgx_enclave is the in-tree driver. So even SGX1 with the in-tree driver (e.g. a recent enough Linux kernel) will use /dev/sgx_enclave. The legacy driver should no longer be used anywhere in new installs.

Given this I would avoid using "sgx1" in configuration names.

Given this I would avoid using "sgx1" in configuration names.

Of course, both are SGX1. But eventually SGX2 will come and then we will need a new name for that (to distinguish which jobs require which version).
We just need a different queue name for a smooth transition from the old legacy driver to the new in-tree driver (without renaming hacks). What queue name would you suggest?

Also don't forget about the stable branch.


Old responseClass behaviour

I'm porting some services to Guzzle 5 from Guzzle 3. Most of our workflow is based on service descriptions. For the responses we used classes like that:
<?php

return array(
    'operations' => array(
        'abstract.base' => array(
            'responseClass' => '\\Test\\Foo\\Model\\BaseResponse',
            'responseType' => 'class',
        ),
    ),
);

And...
<?php

namespace Test\Foo\Model;

use Guzzle\Service\Command\ResponseClassInterface;
use Guzzle\Service\Command\OperationCommand;
use Guzzle\Service\Command\DefaultResponseParser;

class Response implements ResponseClassInterface
{
    public static function fromCommand(OperationCommand $command)
    {
        $parser = DefaultResponseParser::getInstance();
        $response = $parser->parse($command);

        // Custom logic on the constructor
        return new self($response);
    }

    // ...
}

Is this possible in Guzzle 5 yet or will it be anytime soon? If it's a missing feature, can I work on it or has it been discarded for a new way of doing that?

Hi ...
When calling an operation and stuffing the response into the model processor, in the end I get exactly the same data back as if I had just called ->json() on the response.
Granted, I can do some field manipulations and integrity checks, but still I'd want some sort of object to be the outcome of all this data mangling, not just an array. Also it makes requests factor 5-10 slower (on a rather weak Vagrant box). An example
$client = new Client();
$description = new Description([
    'baseUrl' => 'http://localhost/',
    'operations' => [
        'facets' => [
            'httpMethod' => 'GET',
            'uri' => 'fakeapi/facets.json',
            'responseModel' => 'Facets',
        ],
        'facet' => [
            'httpMethod' => 'GET',
            'uri' => 'fakeapi/facet.json',
            'responseModel' => 'Facet'
        ]
    ],
    'models' => [
        "Facet" => [
            "type" => "object",
            "name" => 'id',
            "properties" => [
                "id" => [
                    "location" => "json",
                    "type" => "int"
                ],
                "group_name" => [
                    "location" => "json",
                    "type" => "string"
                ],
                "value" => [
                    "location" => "json",
                    "type" => "string"
                ],
                "facet_id" => [
                    "location" => "json",
                    "type" => "int"
                ],
            ]
        ],
        'Facets' => [
            "type" => "array",
            "location" => "json",
            "items" => [
                "type" => "object",
                '$ref' => "Facet"
            ]
        ]
    ]
]);

$guzzle = new GuzzleClient($client, $description);

for ($i=0;$i<100;$i++) {

    $command = $guzzle->getCommand('facets');

    $start = microtime(true);
    $result = $guzzle->execute($command);

    echo count($result) . " Entries - It took " . sprintf("%5f", microtime(true) - $start) ;

    $start = microtime(true);
    $response = $client->get('http://localhost/fakeapi/facets.json');

    echo count($response->json()) . " Entries - It took " . sprintf("%5f", microtime(true) - $start);

    echo "

";
}

1827 Entries - It took 0.222741 1827 Entries - It took 0.065371
1827 Entries - It took 0.173396 1827 Entries - It took 0.014557
1827 Entries - It took 0.163864 1827 Entries - It took 0.013713
1827 Entries - It took 0.184869 1827 Entries - It took 0.017742
1827 Entries - It took 0.163357 1827 Entries - It took 0.019300
1827 Entries - It took 0.164553 1827 Entries - It took 0.014771
1827 Entries - It took 0.197607 1827 Entries - It took 0.022696
1827 Entries - It took 0.167302 1827 Entries - It took 0.016927
1827 Entries - It took 0.172167 1827 Entries - It took 0.014823
1827 Entries - It took 0.192780 1827 Entries - It took 0.018122
1827 Entries - It took 0.159458 1827 Entries - It took 0.015961
1827 Entries - It took 0.198884 1827 Entries - It took 0.018348
1827 Entries - It took 0.223172 1827 Entries - It took 0.019081
So perhaps I am missing something or it is just that this component is not really finished yet ;)
Bests
wirtsi

+1

https://github.com/ajanssen/CsaGuzzleBundle/blob/master/src/GuzzleHttp/Command/Guzzle/GuzzleClient.php
https://github.com/ajanssen/CsaGuzzleBundle/blob/master/src/GuzzleHttp/Command/Guzzle/Subscriber/ProcessResponse.php
got it working with my own solution, see PR for a symfony bundle: https://github.com/csarrazi/CsaGuzzleBundle/pull/31/files


azure-core-amqp.TestManagement.ManagementRequestResponseUnknownOperationName fails on Windows with error during management open

On Validate Win2022_Win32Api_release_curl_x86 here https://dev.azure.com/azure-sdk/public/_build/results?buildId=2978885&view=logs&j=98e09d1a-2dd9-54c0-d318-0eac30bf38a6&t=9de09327-270a-5760-30a2-161959e2b05a&l=14510
2023-08-04T19:40:39.5542928Z test 565
2023-08-04T19:40:39.5543432Z         Start 565: azure-core-amqp.TestManagement.ManagementRequestResponseUnknownOperationName
2023-08-04T19:40:39.5543726Z
2023-08-04T19:40:39.5544430Z 565: Test command: D:\a\_work\1\s\build\sdk\core\azure-core-amqp\test\ut\Release\azure-core-amqp-tests.exe "--gtest_filter=TestManagement.ManagementRequestResponseUnknownOperationName" "--gtest_also_run_disabled_tests"
2023-08-04T19:40:39.5545125Z 565: Working Directory: D:/a/_work/1/s/build/sdk/core/azure-core-amqp/test/ut
2023-08-04T19:40:39.5545515Z 565: Test timeout computed to be: 10000000
2023-08-04T19:40:39.5604161Z 565: Note: Google Test filter = TestManagement.ManagementRequestResponseUnknownOperationName
2023-08-04T19:40:39.5604761Z 565: [==========] Running 1 test from 1 test suite.
2023-08-04T19:40:39.5605493Z 565: [----------] Global test environment set-up.
2023-08-04T19:40:39.5606122Z 565: [----------] 1 test from TestManagement
2023-08-04T19:40:39.5606595Z 565: [ RUN      ] TestManagement.ManagementRequestResponseUnknownOperationName
2023-08-04T19:40:39.5641682Z 565:
2023-08-04T19:40:39.5642636Z 565: [  INFO ] D:\a\_work\1\s\sdk\core\azure-core-amqp\test\ut\session_tests.cpp(119):: Trying Test port: 5001
2023-08-04T19:40:39.5647098Z 565:
2023-08-04T19:40:39.5647772Z 565: [  INFO ] D:\a\_work\1\s\sdk\core\azure-core-amqp\test\ut\mock_amqp_server.hpp(183):: Wait 10 seconds for listener to start.
2023-08-04T19:40:39.5650613Z 565:
2023-08-04T19:40:39.5652199Z 565: [  INFO ] D:\a\_work\1\s\sdk\core\azure-core-amqp\test\ut\mock_amqp_server.hpp(139):: Start test listener on port 5001
2023-08-04T19:40:39.5654051Z 565:
2023-08-04T19:40:39.5654708Z 565: [  INFO ] D:\a\_work\1\s\sdk\core\azure-core-amqp\test\ut\mock_amqp_server.hpp(141):: listener started
2023-08-04T19:40:39.5655234Z 565:
2023-08-04T19:40:39.5655626Z 565:
2023-08-04T19:40:39.5656235Z 565: [  INFO ] D:\a\_work\1\s\sdk\core\azure-core-amqp\test\ut\mock_amqp_server.hpp(189):: Listener running.
2023-08-04T19:40:39.5657059Z 565: [  INFO ] D:\a\_work\1\s\sdk\core\azure-core-amqp\test\ut\mock_amqp_server.hpp(145):: Wait for connection on listener.[
2023-08-04T19:40:39.5657886Z 565: 2023-08-04T19:40:39.5651667Z] INFO  : Unknown port specified, assuming socket connection transport.
2023-08-04T19:40:39.5658597Z 565: [2023-08-04T19:40:39.5651962Z] DEBUG : Create socket transport for host localhost port: 5001
2023-08-04T19:40:39.5687589Z 565: [2023-08-04T19:40:39.5685641Z] DEBUG : File: D:\a\_work\1\s\build\_deps\vcpkg-src\buildtrees\azure-uamqp-c\src\c1d5924306-398845d0ed.clean\src\connection.c:150 Func: _send_header: -> Header (AMQP <IP_ADDRESS>)
2023-08-04T19:40:39.7076877Z 565: [2023-08-04T19:40:39.7073646Z] ERROR : Message Sender Changed State to 5 while management client is opening
2023-08-04T19:40:39.7079159Z 565: [2023-08-04T19:40:39.7074363Z] ERROR : Message Sender Changed State to 5 while management client is closing
2023-08-04T19:40:39.7080897Z 565: D:\a\_work\1\s\sdk\core\azure-core-amqp\test\ut\management_tests.cpp(412): error: Expected equality of these values:
2023-08-04T19:40:39.7082342Z 565:   openResult
2023-08-04T19:40:39.7084684Z 565:     Which is: 4-byte object <02-00 00-00>
2023-08-04T19:40:39.7085534Z 565:   ManagementOpenStatus::Ok
2023-08-04T19:40:39.7086752Z 565:     Which is: 4-byte object <01-00 00-00>
2023-08-04T19:40:39.7088466Z 565: [2023-08-04T19:40:39.7078689Z] ERROR : File: D:\a\_work\1\s\build\_deps\vcpkg-src\buildtrees\azure-uamqp-c\src\c1d5924306-398845d0ed.clean\src\connection.c:2048 Func: _connection_encode_frame: Connection not open
2023-08-04T19:40:39.7089821Z 565: [2023-08-04T19:40:39.7079176Z] ERROR : File: D:\a\_work\1\s\build\_deps\vcpkg-src\buildtrees\azure-c-shared-utility\src\10753faee5-044a82ff07.clean\adapters\socketio_win32.c:547 Func: _socketio_send: Failure: socket state is not opened.
2023-08-04T19:40:39.7091451Z 565: [2023-08-04T19:40:39.7079413Z] ERROR : File: D:\a\_work\1\s\build\_deps\vcpkg-src\buildtrees\azure-uamqp-c\src\c1d5924306-398845d0ed.clean\src\connection.c:268 Func: _on_bytes_encoded: Cannot send encoded bytes
2023-08-04T19:40:39.7092178Z 565: [2023-08-04T19:40:39.7079720Z] DEBUG : -> [CLOSE]* {}
2023-08-04T19:40:39.7105026Z 430/472 Test #565: azure-core-amqp.TestManagement.ManagementRequestResponseUnknownOperationName ......................***Failed    0.16 sec

This might be intermittent since all pipelines aren't failing:
https://github.com/Azure/azure-sdk-for-cpp/blob/35ee073d914e792d7b2abf846b8aea04b862b099/sdk/core/azure-core-amqp/test/ut/management_tests.cpp#L412

Likely fixed in #4914 .


usewiki2的vscode 扩展-开发进度

[ ] #30
[x] #2
[x] #3
[x] #5
[x] #17
[x] #18
[x] #15
[x] #4
[x] #23
[x] #24
[x] #19
[x] #26
[x] #27
[x] #22
[x] #9
[x] #20
[x] #28
[x] #8
[x] #13
[x] #6
[x] #12
[x] #10
[ ] #7
[ ] #21
[ ] #16
[ ] #25

https://rackar.github.io/vscode-ext-doccn/extension-guides/webview.html#webviews-api-基础

[ ] 将tw增删改的接口封装成一个库
[ ] usewiki2-web 项目

需要开启host，为了安全建议需要开启密码验证


please add dashboard api

I parse your demo chart app but I can't comprehend it. It compose of 23k lines of code(bundle.min.js) but full of shorthand variable(maybe you have no intention to share it). I'm kindly request for dashboard api like in your demo chart app.

https://github.com/rrag/react-stockcharts/issues/95


Fixing generatebundle ECR tests to work in prow/mocks

Signed-off-by: jonahjon<EMAIL_ADDRESS>Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@jonahjon can you a description of the tests being added? It will help with reviewing.

@a-cool-train Same tests as before, it's just adding Mocks to them instead of using real SDK calls.


Code sample in GAPIC API level is incorrect.

I found this issue when creating KMS API. The sample code in the API description comment section has the wrong return type for a page-streaming method.
Note: In the method-level, the sample code is correct for that method.

The code now picks a flattened method, so this is fixed.


[Azs.Backup.Admin] regenerate SDK according to updated spec

Description
Regenerate AZURESTACK BackupAdmin SDK according to spec change:
https://github.com/Azure/azure-rest-api-specs/pull/3225

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] Please add REST spec PR link to the SDK PR
[x] I have read the contribution guidelines.
[ ] The pull request does not introduce breaking changes.

General Guidelines

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[x] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code.
[x] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK.

@daozha The build failed, but it does not look like your changes are the cause.

@deathly809 Could you please let me know where you get the "build failed" information? All checks for this PR have passed and I guess build should be part of checks?

Will merge on CIs passing

Thanks!


What is the application version?

I am working on a Catalina 10.15.4.
When I tried to run this command:
docker build -f application/Dockerfile --build-arg JAR_FILE=application-*.jar -t ehrbaseorg/ehrbase:latest .
I replaced the application version with 0.13.0, as seen here:
docker build -f application/Dockerfile --build-arg JAR_FILE=application-0.13.0.jar -t ehrbaseorg/ehrbase:latest .
However, I got this result:
Sending build context to Docker daemon   30.4MB
Step 1/9 : FROM adoptopenjdk:11-jre-openj9
---> c0256f774b32
Step 2/9 : ARG JAR_FILE
---> Using cache
---> cc5639afc540
Step 3/9 : ENV AUTH_TYPE="BASIC"
---> Using cache
---><PHONE_NUMBER>05
Step 4/9 : ENV AUTH_USER="ehrbase-user"
---> Using cache
---> 21a056a1bdd1
Step 5/9 : ENV AUTH_PASSWORD="SuperSecretPassword"
---> Using cache
---> 0defeb1133d9
Step 6/9 : COPY application/target/${JAR_FILE} app.jar
COPY failed: stat /var/lib/docker/tmp/docker-builder234823719/application/target/application-0.13.0.jar: no such file or directory
Did I key in the wrong application version? Thank you!

Hey @glenda-wee ! It looks like you were just trying to build the docker image locally, without building the application jar itself beforehand. So that's the reason the jar couldn't be found.
The most convenient solution would be to just use our pre-build docker image. Have a look here in the readme and here on docker hub.
Feel free to ask more questions or tell us how it worked out for you :)
Also, if you specifically want to continue to build the image locally, have a look here in the readme.

Hi @jakesmolka ! Thanks for your quick reply, I have followed the instructions and it appears to be running on the Docker desktop.
However, upon running the build EHRbase (executing the command mvn package), I encountered this error:
I'm rather new to OpenEHR, can I get your advice on this? Thanks a ton! :)

You need to build without executing the tests, as they need an additional test database.
Try running mvn -DskipTests package.
However, I think it would be more convenient to move the jar building to docker as well. To keep the image size reasonable small, the building container and the container for the final jar file could be separated.

@glenda-wee I would recommend to not build EHRbase locally, if you just want to use it (compared to developing). So I wouldn't execute anything with maven or java directly.
There are some approaches to get an EHRbase docker setup running. But the basic architecture is, that you will need the the postgres database and the EHRbase image to run configured containers with them.
For instance, in the docker hub link from above it states the following two commands:
First, to start the database:
docker run --name ehrdb --network ehrbase-net -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e EHRBASE_USER=ehrbase -e EHRBASE_PASSWORD=ehrbase ehrbaseorg/ehrbase-postgres:latest
And second, to start EHRbase itself:
docker run --name ehrbase --network ehrbase-net -d -p 8080:8080 -e DB_URL=jdbc:postgresql://ehrdb:5432/ehrbase -e DB_USER=ehrbase -e DB_PASS=ehrbase -e SYSTEM_NAME=local.ehrbase.org ehrbaseorg/ehrbase:latest
Using those two should result in a running setup.
To verify that you could either peek into the docker logs or use a REST-tool like Postman or Insomia, to create a simple HTTP POST request pointing at http://localhost:8080/ehrbase/rest/openehr/v1/ehr. This should create an EHR.
From that point on you're in the realm of openEHR. Maybe have a look at our Getting Started page to learn more. If you're completely new to openEHR the concepts can be overwhelming. So if you stuck somewhere or just want to see a simple running example, ping us again. We are also in the process of extending our SDK documentation with a tutorial application, which I could give a sneak peak at.

Hi! I used the commands that you sent me and managed to get something up, but it showed a bad request:

May I know what the 'subject id' and 'subject namespace' parameters are? thank you!

You need to build without executing the tests, as they need an additional test database.
Try running mvn -DskipTests package.
However, I think it would be more convenient to move the jar building to docker as well. To keep the image size reasonable small, the building container and the container for the final jar file could be separated.

I tried this, but it resulted in the same error :(

I consider this issue as resolved. Please let me know if this is incorrect, then we can open again.


Proposing abbreviation for MariaDB

@BrianBlanchard - Could you review this proposed update to your article and enter #sign-off in a comment if it's approved for merge?
Thanks!
#label:"aq-pr-triaged"

@MicrosoftDocs/cloud-architecture-content-team-pr-reviewers - Please review the proposed changes. If you want to move forward with the content, add a sign-off.
@MicrosoftDocs/public-repo-pr-review-team

#assign: @martinekuan
#unassign: @BrianBlanchard

#unassign: @BrianBlanchard

@SvenAelterman - Thank you so much for your feedback. So sorry for the delay. This is great input that we'll take into consideration.
I'm collecting a number of abbreviation suggestions from customers and going to create a separate PR to update them all at once. So, I'm going to close this PR without merging.
Thank you so much for feedback. It's greatly appreciated!


upgrade lz4 to r131

This fixes a number of bugs including a segfault crasher on GCC > 5.x (maybe > 4.9?) related to codegen on undefined behavior in LZ4_copy8/LZ4_copy4 which have since had their clever bits replaced by calls to memcpy.  The HC tests, which were failing, also now pass.
changelogs: https://github.com/Cyan4973/lz4/releases
The only oddity is that the test corpus doesn't compress as well and that test had to be updated.

👍  make sure to test this thing on staging first

+1. This fixes the segfault crashes on modern Linux releases like Alpine 3.4 and Ubuntu 15.10


examples: added trigger-phrase agent example

it's a bit slow. worth looking into

I think it is mainly due to the 0.5 sec timeout set for the VAD, and maybe partly due to the computation that needs to happen on every END_OF_SPEECH event. I am not sure the best way to address them though. Since the primary goal of this example is to show the users a way to use transcribed words to trigger the LLM, I didn't go down the path of ensuring minimum possible latency like VoiceAssistant does.

semantically this should probably be inside the voice_assistant examples directory

Even though technically this is a voice assistant, since we are not using the VoiceAssistant class, I feel like it would be confusing and counter intuitive to the users if we placed in that directory and hence resorted to a stand alone example directory. What do you think?

I think it is mainly due to the 0.5 sec timeout set for the VAD, and maybe partly due to the computation that needs to happen on every END_OF_SPEECH event.

in my testing i encountered closer to three or sometimes four seconds of silence before the response started playing. this doesn't need to be fully optimized as an example, but at this point it is hurting the effectiveness of the demo.
re: directory, disregard; did not notice this doesn't actually use VoicePipelineAgent.

STT transcriptions is now added ✅
VAD is removed, both due to issues with adding StreamAdapter to Deepgram and also hopefully to reduce latency
first_participant constraint removed

@s-hamdananwar this is how I was able to manage "multiple" participants in a single raise hand queue, check out the PR and let me know if this can help resolve the issue of still only listening to the first participant that joins the room.
PR


Use correct globalScope in on demand type checker

Fixes #922
Unsure if this needs to be put behind another FFlag, since the on demand type checker fflag currently exists

Needs a test and should be flagged still.

Thank you.


Categorize runway surfaces

Hello,
Would it be possible to catorgorize the surface type of runways instead of letting users write the same thing in different ways?
Example using a combobox?
Could be usefull thanks to your databse to let someone search for: "airports with grass runways".
These are the current values (at least in Europe):
CONC,Turf/Grass,SNO,Asphalt/Grass,Grass - Herbe -> Avion - ULM,Tarmac,Unpeved runway,Unpaved,Grooved ASP,Asphalt,CON,concrete blocks,Not paved,Snow,ASP,ASPH,GRASS CAUTION: ATC do NOT apply wake turbulence,separation!,GVL,HARD,Graded Hardcore,SAND, TIDAL,Grass/Asphalt Insert 1968X59 Feet,Concrete/Asphalt,CONCRETE + GRASS. MTOM 2t,UNPAVED,GRE,Grass/Graded Hardcore,Earth,ASPHALT,concrete,asphalt,sand,Gravel,TURF,Demo'd asphalt,Asfalt,asfalt,grass - herbe  (avion),paved,UNK,Gras,GRA,Dirt,Concrete,U,C,Hard,Grass,Turf,grass - herbe  (planeur),Grass/Snow,GRASS,PEM,Concrete/Grass,gras,Paved,G,grass,Grass - Herbe,Turf / Grass,CONCRETE,A
PAVED,Aspalt,UnPaved,ASHP,GRS...
I can see that somehow you manage to interpete them and to categorize them, example:

Grass ->  Surface unpaved (grass)
G ->  Surface unpaved (grass)

but we can't retrieve the finale result...
Possible?

The challenge in the past was pulling data from so many different sources, but I think this is something we can improve in the new year.
Note that there are many devils in the details: some runways are paved down a narrow strip in the centre with gravel around them, some are paved for part of their length but gravel/turf for the rest, etc., but I think it will be possible to come up with a taxonomy.


explanation improvement

in
https://github.com/Xilinx/Vitis-AI/tree/v2.5/model_zoo#model-directory-structure
please specify that the model structure, with all code, data, float, quantized ... etc content is in the .zip file.
The downloader.py downloads several model archives, but only the .zip has the code. All other archives (*.tar.gz) are for platform related compiled models.
thanks
Giovanni

Hi @giovanniguasti
Thank you for the advice.
Yes, easy of use is an important point and we are planning a more radical reorganization of model zoo to eliminate these issues.


Nested Stopped actions incorrectly render as non-disabled

Actually not a bug, stopped actions don't disable themselves.


towards book

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 93.333%

Totals

Change from base Build<PHONE_NUMBER>5:
0.0%

Covered Lines:
14

Relevant Lines:
15

💛  - Coveralls


An error occurs when using hugo server -w

E:\GitHub\zychai.github.io>hugo server -w
Watching for changes in C:\Users\hp\AppData\Local\hugo_cache\modules\filecache\modules\pkg\mod\github.com\hugo-toha\toha\v4@v4.5.0{archetypes,assets,content,data,i18n,layouts,package.hugo.json,package.json,static}
Watching for changes in E:\GitHub\zychai.github.io{archetypes,assets,content,data,node_modules,package.hugo.json,package.json,static}
Watching for config changes in E:\GitHub\zychai.github.io\hugo.yaml<EMAIL_ADDRESS>E:\GitHub\zychai.github.io\go.mod
Start building sites …
hugo v0.128.2-de36c1a95d28595d8243fd8b891665b069ed0850+extended windows/amd64 BuildDate=2024-07-04T08:13:25Z VendorInfo=gohugoio
ERROR error calling resources.GetRemote: Get "https://publish.twitter.com/oembed?dnt=false&url=https%3A%2F%2Ftwitter.com%2FSanDiegoZoo%2Fstatus%2F1453110110599868418": net/http: TLS handshake timeout
Built in 21783 ms
Error: error building site: logged 1 error(s)

Hi @zychai, sorry for the late response.
I cannot reproduce this problem. Can you share more details about it?
Thank you

I can't reproduce this problem either.

ERROR error calling resources.GetRemote: Get "https://publish.twitter.com/oembed?dnt=false&url=https%3A%2F%2Ftwitter.com%2FSanDiegoZoo%2Fstatus%2F1453110110599868418": net/http: TLS handshake timeout

Looks like access to twitter is blocked for your machine, therefore call to resources.GetRemote fails on your machine.

Why is twitter needed please?


fix typo

I think the abbreviation for Json Web Token is spelled wrong here.

Codecov Report

Merging #1 (7a9fb1b) into master (b3671f6) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master        #1   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines          154       154
=========================================
  Hits           154       154

Flag
Coverage Δ

unittests
100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8dad502...7a9fb1b. Read the comment docs.

 Thank you!


data from part event causes socket hang up error

The following code didn't work as expected when I tried to make file upload proxy on a node server:
await new Promise((resolve, reject) => {
    const form = new multiparty.Form();
    const formData = new FormData();

    // compose `formData` from `part` event
    form.on('part', part => {
        const fieldName = part.name;
        if (part.filename) {
            formData.append(fieldName, part, {
                filename: part.filename,
                contentType: part.headers['content-type'],
                knownLength: part.byteCount
            });
        } else {
            formData.append(fieldName, part);
        }
        part.resume();

        part.on('error', err => {
            part.resume();
        });
    });

    form.on('close', () => {
        const options = {
            method: 'POST',
            body: formData
        };

        // forward to another server
        fetch(`${FoodFileServer}${url}`, options).then(response => {
            if (response.status >= 200 && response.status < 300) {
                resolve(response.body);
            } else {
                reject(response.body);
            }
        }).catch(error => reject(error));
    });

    form.on('error', (error) => {
        reject(error);
    });

    form.parse(request);
});

The socket always got hung up when fetching from the remote server.
But things worked when I composed the formData from field and file events like this:
// compose `formData` from `file` and `field` events
form.on('file', (name, file) => {
    formData.append(name, fs.createReadStream(file.path));
});

form.on('field', (name, value) => {
    formData.append(name, value);
});

Sorry, maybe  I should move this issue to the multiparty repo.


:sparkles: add version filter "> < =" in cluster dashboard

Summary

Related issue(s)
https://issues.redhat.com/browse/ACM-11890

/cc @clyang82

/retest

/retest

/retest


Unable to run Letta v0.5

Describe the bug
I updated Letta to the latest version (I get the error below for all v0.5 however) and afterward received the error when running my code. I am now no longer able to run letta run or letta server. The issue persists if I follow the quickstart and install Letta in a completely new project.
Please describe your setup

Installed with pip install letta
Windows 11
Terminal

Screenshots

Could you please run:
rm -r ~/.letta
# export OPENAI_API_KEY=... or whatever other provider key
letta run

Looks like it works now, thanks!


Native DLL support in modules

Modules which wish to pinvoke native DLLs they bring with them have to extract them or otherwise load them from disk.  This is obviously not ideal and is likely to get us flagged more by AV.
REF: https://discord.com/channels/531175899588984842/599270434642460753/889574083560374354

Some ideas include having all native DLLs listed in the manifest for extraction to a central DLL cache dir with the extracted files being tracked by hash.

Somwhat related - .NETs AssemblyLoadContexts have methods that allow altering the loading behaviour of unmanaged DLLs (docs)
I think this would still require extracting to an intermediate location as above, but the implementation work could potentially be bundled into the same change


Add: Niederbayern TV Satellit

Channel Name
Niederbayern TV Satellit
Alternative Names (optional)
No response
Network (optional)
No response
Owners (optional)
No response
Country
DE
Subdivision (optional)
No response
City (optional)
Deggendorf
Broadcast Area
c/DE
Languages
deu
Categories (optional)
general
NSFW
FALSE
Launched (optional)
No response
Closed (optional)
No response
Replaced By (optional)
No response
Website (optional)
https://www.niederbayerntv.de/
Logo
https://www.lyngsat.com/logo/tv/nn/niederbayern-tv-de.png
Notes
No response

is Satellit part necessary here?

I'd say so: there are different feeds within the same network.


[JTC] conceptual issues

While implementing https://github.com/ros-controls/ros2_controllers/pull/696 I faced numerous issues that led me to dig deep into the implementation of JTC to understand why some "intuitive" or let say theoretical expectations I had for a JTC were not met. I did not want to create tons of separate issues as they are mostly linked together.
Disclaimer :
I might have some rusted theoretical knowledge in controllers, so please just point at my mistakes if any and close the issue if this is not an issue.
Problems
dt in update Controller

already fixed in https://github.com/ros-controls/ros2_controllers/pull/693

traj sampling

JTC update() called at the time_from_start of a single trajectory point will generate a desired output that matches the trajectory point.
However, in the tests evaluating reached state, since no further calls to update()  is done , the current read from hardware state (or state_msgs.feedback) that gets evaluated will ALWAYS be the last state read from hardware and so will always be the state before the last update call (even with mirrored cmd/state ifs) and so will never be the desired state when evaluated.
Current tests introduced allowed deltas to compensate for the situation and highly depend on how tiny the delay (dt) between 2 calls of update loop (in updateController) is, hence variability in CI. Currently the dt is as small as a few microseconds which is unrealistic to a real robot and is variable depending on CPU load.
I tried to remove the need for a clock and add larger dt and this really showed the problem see below with a dt = 50 ms, and the test of a trajectory with a point to be reached (and evaluated) at 250 ms.

Command interfaces are [position velocity] and state interfaces are [position velocity].

current pos 1.100000              -> call 1   at time 0+ (+ means some EPS due to where now is placed) for time range 0 to 0.05
current vel   0.000000              ->    current velocity not yet changed, this is normal
desired pos 1.100000              -> no desired position  yet  -> THIS seems wrong
desired vel  0.000000              -> same

current pos 1.100000              -> call 2   at time ~0.05+  for time range 0.05 to 0.1
current vel   0.000000
desired pos 1.090396              -> first desired movement !
desired vel  -0.356063             -> first desired velocity

current pos 1.090396              -> call 3  at time ~0.1+ for time range 0.1 to 0.15
current vel -0.356063               -> current vel (and pos) mirrored from previous desired at call 2
desired pos 1.067190
desired vel -0.544039

current pos 1.067190              -> call 4  at time ~0.15+ for time range 0.15 to 0.20
current vel  -0.544039             -> current vel (and pos) mirrored from previous desired at call 3
desired pos 1.038749
desired vel  -0.563885

current pos 1.038749            -> call 5   at time ~0.20+ for time range 0.20 to 0.25
current vel  -0.563885           -> current vel (and pos) mirrored from previous desired at call 4
desired pos 1.013536
desired vel  -0.415289
                                                 -> no next call as 0.20+ +dt > wait_time

 rolling-ctrl-ws/src/ros2_controllers/joint_trajectory_controller/test/test_trajectory_controller.cpp:1098: Failure
1: The difference between 1.0 and joint_pos_[0] is 0.013536343640363491, which exceeds COMMON_THRESHOLD,

one sees that the test is with the desired state, and not with the current state. Correct. My implementation of the dt and the clock.now() < end_time led to no call 6 at 0.25

With a call 6 at time 0.25 the joint_pos_[0] will be correct, and match 0.1

BUT only the previous state of call 5 will be read from hardware and does not match 1.0 awaited at the 0.250 time. So the JTC with a perfect robot did not manage to reach the position on time.

Calling update once more at the exact last point (call 6) lead to other issues probably due to hold position nullifying effort interfaces etc..., did not dig more yet)

The first update of the controller after it was activated does not generate any command, this is also weird.

The desired output at call 4 should be the point to be reached so that at the exact time_from_start, with an ideal robot (cmd/state ifs mirrored) the state is reached.

How to solve :
The test should work for any dt, and so I dug deeper and found that JTC in ros_controllers samples the trajectory spline for the desired command at time+period when the ROS 2 implementation samples at current time. This means in ROS 2 JTC the desired state is not a "planed-ahead" command but the command that should have occurred at the time of update (so too late already). I think this is theoretically wrong and leads to all sorts of checks that require allowed-deltas where the delta in a mirrored robot should be at most coming from float approximation errors.
I think the correct way is to sample at time T + period dt to always plan one step ahead. Early test showed good results but not yet fully tested with reduced allowed-delta, and maybe there other consequences of planning ahead.
Tolerance  checks

The current implementation of tolerance check in ROS 2 JTC reads current state, samples current expected state on the spline at time T and compares the error tracking between what is reality and what should be awaited at time T. This is correct. However JTC in ros_controllers is comparing current state with future state (at T + dt), and this seems wrong. This will always lead to a tracking or goal error what ever perfect robot (mirrored cmd/state ifs) there is.
If the above sampling time at T + dt is implemented in ROS 2 JTC, we end up in the same situation as in ROS JTC.

I suppose a solution is to do a mix of the 2 (ROS) worlds. sample at T for the tracking error, sample at T+dt for the desired state to send to the output (and compute the planned error to also generate a command in the PID adapters)
state_msg used to evaluate internal state of JTC

when trying to remove the clocks and use only a loop with T+dt in the tests, state_msgs started to get lost (not transmitted) due to too fast call to update, and publisher try_lock failing.
this leads to crashes (due to non protected state_msg access that could be null) and also state_msgs is not necessarily the last state (what ever the amount of wait and sping AFTER updateController because problem is in updateController
adding spin_some in the updateController, etc does not solve the problem, only very very tiny calls to updateController might permit to have luckily a state_msg close enough (because in so many calls to update one of the state_msg will go through) to the goals/expected values.
only one test (state_consistency test) really tests the state_msg has expected values, other test seem to use it to read the internal state/last state.
We have seen above the last state is already wrong due to sampling issue, but it also might not be the last state.

@destogl  suggested to used FRIEND_TEST to access the protected variables and evaluate the expected values with those.
Remains the case what to do with state consistency check. Denis suggested to use a try_lock and unlock to check if the publisher is ready for a next call to update, and then thread sleep in between. Might work (first trials look promising)
time from start of state_current

Why is time set to "almost" zero there  and not zero ?
indeed I think set__sec(0) does not reset the nanosecond part.

Conclusion
I think JTC and its tests can be improved, especially speed and stability of the tests in CI.
I know the code base well now, and did many trials, I am ready to create separate issues and corresponding PR once problems are confirmed and directions to go are known.

Sounds reasonable to me. Let's start with simple fixes, e.g., set_nsec and then move to the more complex ones.
Many this are much better to understand if you see it in the code and their consequence in the tests.

Okay for the set_nanosec and maybe for the getting rid of the state_msgs when possible in the tests.
The rest has more consequences I would prefer to get more control expert's feedback on (validate the theory)

Thanks to the detailed and verbose description.
I totally agree to state_msg and state_current issues.

The first update of the controller after it was activated does not generate any command, this is also weird.

You mean after activation of the controller? This is a known issue, see the start_with_holding parameter from #558. Currently, there won't be any output after the first trajectory is sent.
My thoughts about trajectory sampling:

For the tolerance checks you are right, one has to use the current time to evaluate it for sure.
For sampling the next desired values for the feedforward part, one might sample it at the next time instance. But I tend to say, one has to use the current time instance for calculating errors for feedback commands. I'll think again and discuss this with colleagues tomorrow.

@christophfroehlich  thanks for looking at my description.
I used the wrong term, I did not mean controller activated (because I did not look at the states and output at activation, I looked during update call (logging within update). So I mean after/during first update after the goal was already processed, so when there is a valid trajectory, but it generated no motion (See the example). I was expecting a desired state in the future, exactly like a time+dt would do.
for the sampling.
In theory, if the closed-loop PID was outside JTC (hopefully in the future), example with chaining with PID_Controller. The PID_controller will necessarily receive the current_state at time T as well from its state_ifs and the command from JTC on his command_ifs.
lets see the 2 possibles choices :

JTC sends desired at T+dt (JTC plans ahead). The following PID controller will receive a point to execute and reach at t+dt in the future an will then have an error with the current state. It can try to compensate for that tracking error overtime (a P cannot but a PI can reduce the tracking_error).
With a good PI, the error can be very small, so can a mirroring robot like in tests. (a PID controller that is perfect, will compensate for the error immediately and output exactly the desired state for the next value of state_ifs).
In the ideal case (mirror or well tuned PID) I expect the point in JTC to never have a tracking error, and this will be the case if we compare with spline at current time

JTC sends desired at T (like now). If that point is used for the internal PID error, or for sending it to an external PID, both PID will see a zero error in case of a perfect robot, meaning no motion for one time step. However, at the next iteration, since there was no plan ahead, and there was no error, the next iteration will see no motion occurred and hence create a tracking error. If the PID compensates perfectly for it, there will be again a zero error, hence generating no motion. and so on, oscillating between no error and an error.

So in the case of a perfect robot, I think one should plan ahead one step AND use that plan-ahead value to compute the PID error as if it was external.
A perfect robot should be able to reach the goal in time and have zero tracking error.

only one test (state_consistency test) really tests the state_msg has expected values, other test seem to use it to read the internal state/last state.

That is not true btw, waitAndCompareState uses the state_msg and is used throughout test_trajectory_controller.cpp

only one test (state_consistency test) really tests the state_msg has expected values, other test seem to use it to read the internal state/last state.

That is not true btw, waitAndCompareState uses the state_msg and is used throughout test_trajectory_controller.cpp

Hum. My point is not where it is currently used, but to what purpose it is used in the tests.
For me, the state_msg should be tested for its consistency, and there is a test for that, and all other tests, doing tests on the expected values of some internal values should be done on those internal values, state_msg is in fact just for the user, not for control.
Hence me thinking one could replace the state_msg with internal access (via FRIEND_TEST) for all but one test.

I did it partially already, just need more time that I don't have before tonight at best.

I'm sorry, I haven't read your statement properly. I agree :see_no_evil:

I discussed this with some colleagues today, and the common opinion is: it depends :laughing:

Using a time-discrete controller, you are already loosing the assumption of an "ideal robot"
Most important thing is that the measurements are taken at the same time. With different sensor types/modalities this is usually not the case. Typically you loose this where you use position encoders, where the velocity signal is a discrete difference quotient -> you are already half of a time stamp late.
If the tests (and hopefully the controller itself) are deterministic: One can test the goal at the correct time, no matter if it is time or time+dt
Shifting the desired trajectory should not introduce any instability to the system if applied correctly. It just starts earlier.
If the tolerances are harmed within one update interval, one has a different problem and should increase controller update rate.
Your statement, that a P controller cannot compensate a tracking error is not 100% correct if your system has integrating behavior, i.e., velocity command input and position feedback.

Summarized: It is a design decision, and both methods are fine for me if implemented consistently.

@christophfroehlich Thanks for the time investigating and discussing. You are right I over simplified the problem of tracking error and P/ PI to the academic typical example I remembered. I could have spared myself some ridicule by not talking about PID possibilities as it does not help my point.  I wanted mostly to say that a PID that can compensate for the tracking error will result in having a state_if = sampled point at the time of reading the state_if, so also a zero tracking error although it received a reference from sample at time+dt.
Your explanation of real life scenario is known to me, and there are delays everywhere. I think in real life there will be little consequences if dt is small indeed. I would like to focus on one of your remark that actually led me here.

If the tolerances are harmed within one update interval, one has a different problem and should increase controller update rate.

The whole problem is there. With sufficiently small deltas dt the CI will pass all the test. But dt had to be 1e-6 to pass the allowed_delta of 0.0011. I tried realistic dt, for instance 1e-3 and tests would fail.
Digging deeper with LARGER dt to see stuff happening without too long prints, I obviously uncovered that problem of "final desired point = target point" of the controller sent at final time and hence never reached in time, even in the ideal case.
Now I think that the design decision will lead to have to require unrealistic dt update to reach goals within allowed_deltas.
With a known design decision, the question is what is expected (tests), and one could change the tests to expect the "desired" state at time T, instead of expecting the current state to reach the final point.
This is where consistency is broken in the implementation of JTC + its tests.
I really hope to provide a PR with tests modified then (simpler than risking changing the design decision), and that pass with a realistic dt (but should also then work for non realistically large dt because all is perfect in the test.)

After your discussion here, I am just more convinced that we need T+dt. It was like this in ros_control and everybody were happy. Currently, we try to do work around something that complicates so many things. It is obvious that T+dt will simplify many things, and I am quite certain that some strange issues we are currently encountering with industrial robots may be caused by the current way of calculation.
It would be good to have a PR with "T+dt" implementation, so one can actually test this on HW.

Hi @gwalck :
I am facing a robot jerky problem when using JCT with Moveit in ROS2 Foxy. But, the problem did not appear in ROS1 Noetic. So, I also dug deeper in sample methods between ros_control and ros2_control. As you mentioned above, ros2_control  implementation samples at current time. So, I set the loop rate of ros2_control_node at frequency 1000hz  and print the sample time out like this:

When I tried to plan and excute with Moveit, the sample time was shown in my terminal.

It is clear that, although the trajectory carried out by spline is smooth, the different sample interpolation may cause a jerky robot. And, I am afraid that the rate limit in ros2_control_node will not work due to that the sample interpolation is longer than 1ms in my situation.
Do I miss something causing my jerky robot? Have you met the same problem like me?  If it possible, could you please show me  some solutions to handle this jerky problem?
platform: ubuntu 20.04
ROS Version: Foxy

@zengxuhe I think the problem I raised is not related to the fact that in your setup the call to update of the JTC seems not to respect the 1 ms call.  1 kHz for a control loop might require a low-latency kernel and some priority settings for the process running the controller manager to ensure it gets called regularly.

I've moved the comment from @zengxuhe  and the reaction by @gwalck to a new issue and deleted from here.


Update as11fixity.py

pseudo update and progress

Hi Anja,
Thanks for sending this. I'm finding the comments  a little difficult to follow as I keep having to scroll down to match the numbers to the pseudocode, so instead of:
 starting_dir = sys.argv[1]
 #2

it could be:
#2 Define path to starting folder
starting_dir = sys.argv[1]

It's also easier to read if the #comment is above the ode that it's describing, rather than below. You should be able to edit the code in your pull request on the github site itself, give us a shout if you need a hand.

Thanks :). Will amend and get back you.
Sent from my iPhone

On 17 May 2016, at 17:58, kieranjol<EMAIL_ADDRESS>wrote:
Hi Anja,
Thanks for sending this. I'm finding the comments a little difficult to follow as I keep having to scroll down to match the numbers to the pseudocode, so instead of:
starting_dir = sys.argv[1]
#2
it could be:
#2 Define path to starting folder
starting_dir = sys.argv[1]
It's also easier to read if the #comment is above the ode that it's describing, rather than below. You should be able to edit the code in your pull request on the github site itself, give us a shout if you need a hand.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

Awesome, and I should have acknowledged earlier that it was my idea to
comment all the code with the numbers, so I apologise for wasting your time
earlier!! My blood sugar was low or something ¯_(ツ)_/¯
On Tue, May 17, 2016 at 9:21 PM, AnjaMahler<EMAIL_ADDRESS>wrote:

Thanks :). Will amend and get back you.
Sent from my iPhone

On 17 May 2016, at 17:58, kieranjol<EMAIL_ADDRESS>wrote:
Hi Anja,
Thanks for sending this. I'm finding the comments a little difficult to
follow as I keep having to scroll down to match the numbers to the
pseudocode, so instead of:
starting_dir = sys.argv[1]
#2
it could be:
#2 Define path to starting folder
starting_dir = sys.argv[1]
It's also easier to read if the #comment is above the ode that it's
describing, rather than below. You should be able to edit the code in your
pull request on the github site itself, give us a shout if you need a hand.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/kieranjol/IFIscripts/pull/35#issuecomment-219841315

No no, my headache's fold or spider's spirit revenge ^^
Sent from my iPhone

On 17 May 2016, at 21:32, kieranjol<EMAIL_ADDRESS>wrote:
Awesome, and I should have acknowledged earlier that it was my idea to
comment all the code with the numbers, so I apologise for wasting your time
earlier!! My blood sugar was low or something ¯_(ツ)_/¯
On Tue, May 17, 2016 at 9:21 PM, AnjaMahler<EMAIL_ADDRESS>wrote:

Thanks :). Will amend and get back you.
Sent from my iPhone

On 17 May 2016, at 17:58, kieranjol<EMAIL_ADDRESS>wrote:
Hi Anja,
Thanks for sending this. I'm finding the comments a little difficult to
follow as I keep having to scroll down to match the numbers to the
pseudocode, so instead of:
starting_dir = sys.argv[1]
#2
it could be:
#2 Define path to starting folder
starting_dir = sys.argv[1]
It's also easier to read if the #comment is above the ode that it's
describing, rather than below. You should be able to edit the code in your
pull request on the github site itself, give us a shout if you need a hand.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/kieranjol/IFIscripts/pull/35#issuecomment-219841315

—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

that poor spider... Never knew you had it in you Anja, though obviously
Verena is to blame.
On Tue, May 17, 2016 at 9:52 PM, AnjaMahler<EMAIL_ADDRESS>wrote:

No no, my headache's fold or spider's spirit revenge ^^
Sent from my iPhone

On 17 May 2016, at 21:32, kieranjol<EMAIL_ADDRESS>wrote:
Awesome, and I should have acknowledged earlier that it was my idea to
comment all the code with the numbers, so I apologise for wasting your
time
earlier!! My blood sugar was low or something ¯_(ツ)_/¯
On Tue, May 17, 2016 at 9:21 PM, AnjaMahler<EMAIL_ADDRESS>wrote:

Thanks :). Will amend and get back you.
Sent from my iPhone

On 17 May 2016, at 17:58, kieranjol<EMAIL_ADDRESS>wrote:
Hi Anja,
Thanks for sending this. I'm finding the comments a little difficult
to
follow as I keep having to scroll down to match the numbers to the
pseudocode, so instead of:
starting_dir = sys.argv[1]
#2
it could be:
#2 Define path to starting folder
starting_dir = sys.argv[1]
It's also easier to read if the #comment is above the ode that it's
describing, rather than below. You should be able to edit the code in
your
pull request on the github site itself, give us a shout if you need a
hand.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
<
https://github.com/kieranjol/IFIscripts/pull/35#issuecomment-219841315>

—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/kieranjol/IFIscripts/pull/35#issuecomment-219850066

http://giphy.com/gifs/fire-with-kill-wvFrJa4aWKuvm

http://giphy.com/gifs/home-alone-tarantula-burglar-apw8IpnNDwUHC
On Wed, May 18, 2016 at 10:44 AM, ecodonohoe<EMAIL_ADDRESS>wrote:

http://giphy.com/gifs/fire-with-kill-wvFrJa4aWKuvm
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/kieranjol/IFIscripts/pull/35#issuecomment-219976963

😆 💪 👣 👠

HI Anja, looks like this can't be merged right now, possibly because it's an old fork, or there's some conflict with Eoin's recent Pull Request. We should find a way to add this tomorrow.

Hey, i'm closing this as it's now out of date


Tflite Models with Embedded Metadata & Label

Hi,
Just wondering how do you load a tflite model which has embedded Metadata and Label.
Does it work out of the box or do we need some special code to make it work?

Repo is seemingly no longer maintained - please upvote #221


chore(main): release 0.2.2

:robot: I have created a release beep boop
0.2.2 (2023-11-03)
Bug Fixes

target musl when building container image (951f5e3)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/FruitieX/add-bot-rs/releases/tag/v0.2.2 :sunflower:


Added plugin icon

Summary
Added plugin icon
Ticket Link
https://github.com/mattermost/mattermost-plugin-outlook-presence/issues/16

Nice :+1:


Improve DX of serverless situation

Serverless use is increasing due to its simplicity and elegance. Platforms like Vercel or Netlify make it extremely easy to deploy Lambda functions.
Developers usually use Lambda functions to connect with databases and third-party services when writing business logic.
The combination of the combo serverless and Prisma, make developers super productive and confident since they really can focus on the app, instead of dealing with servers and databases in "the old way".
Being said this, Prisma works in serverless mode. However, using Prisma with serverless can bring issues related to database connections at scale. Tools like PgBouncer or AWS RDS Proxy help mitigate this specific issue. But then developers need to use another tool to solve the new issue.
Due to this situation, sometimes developers refuse to use Prisma in serverless mode. They avoid having to deal with connection poolers and new setups. Instead, they choose Firebase, FaunaDB, Sanity, or any other headless CMS. What do they have in common? HTTP requests. No need to worry about database connections.
This could create a bad developer experience for some developers at scale, making them drop Prisma in favor of a datastore service or headless CMS.
That's why I strongly suggest that Prisma takes into account services like FaunaDB and similars. Prisma also could become the graphql-binding or the OneGraph of datastore services, just because people use them as databases.
I see 2 main targets for Prisma:

Databases (MySQL, PostgreSQL, MongoDB, etc)
Services (FaunaDB, Azure Cosmos DB, Firebase, Sanity, etc)

As I said in a tweet, Prisma should become the one database client to rule them all. Prisma should partnership with database and datastore service providers to create more and more connectors to give support (in the future) across languages (JS/TS, Go, etc).

✅ Universal database client
✅ Type-safe
✅ Auto-generated

@albertoperdomo Thoughts?

@albertoperdomo Thoughts?

Just an FYI, we wrote some new documentation on how to use Prisma in serverless environments: https://www.prisma.io/docs/guides/performance-and-optimization/connection-management#serverless-environments-faas
It doesn't solve the connection management issue, but offers workarounds.

Support for many of the connectors mentioned is tracked via their own issues: https://github.com/prisma/prisma/labels/topic%3A connector
General improvements for the situation on serverless is an overarching theme where many feature, improvements and bug fixes contribute to

I am closing this issue, as it is more effective to track individual problems in individual issues 👍


deleting selectively spectra in multiple spectra visualization session

If there is more than one 1D spectrum in the spectrum tab, how can I selectively delete only one of them? The trash can is to delete all spectra, but individual deletion seems impossible?

@nes-cgn
You can do it be make one of the spectrums active then press delete button, if you not make any of the spectrum activ the Display shows confirm dialog to delete before delete all spectrums.


Deleting a file which is not open should refresh the diagnostics

Expected behavior
Deleting a file which is not open should refresh the diagnostics.
Actual behavior
Deleting a file which is not open. Diagnostics will be shown even after the file is deleted.
Steps to reproduce

Create a file concept.cpt with contents

# concept
* step1

where step1 is unimplemented.
2. use the concept in spec file.
3.Now delete the concept.cpt file without opening it.

Closing this as an old issue. This may be fixed in the newer releases.
Will reopen if it still needs fixing.


NPD stuck on connection refused

Good day.
In one of the clusters, we had some problems with etcd, after restoring the work of etcd / api-server, the node-problem-detector failed to update its state and stuck in this state. Restart podov solved this problem.
Node-problem-detector can not reconnect to the api-server?
NPD version 0.6.3
Kubernetes version 1.11.6
Some logs:
I0513 17:05:16.868383       1 log_watchers.go:40] Use log watcher of plugin "kmsg"
I0513 17:05:16.868541       1 log_monitor.go:64] Finish parsing log monitor config file: {WatcherConfig:{Plugin:journald PluginConfig:
map[source:dockerd] LogPath:/var/log/journal Lookback:5m Delay:} BufferSize:10 Source:docker-monitor DefaultConditions:[] Rules:[{Type
:temporary Condition: Reason:CorruptDockerImage Pattern:Error trying v2 registry: failed to register layer: rename /var/lib/docker/ima
ge/(.+) /var/lib/docker/image/(.+): directory not empty.*}]}
I0513 17:05:16.868584       1 log_watchers.go:40] Use log watcher of plugin "journald"
I0513 17:05:16.869917       1 log_monitor.go:73] Start log monitor
I0513 17:05:16.870068       1 log_monitor.go:73] Start log monitor
I0513 17:05:16.870183       1 log_monitor.go:170] Initialize condition generated: [{Type:KernelDeadlock Status:False Transition:2019-0
5-13 17:05:16.870161013 +0000 UTC m=+0.061356012 Reason:KernelHasNoDeadlock Message:kernel has no deadlock} {Type:ReadonlyFilesystem S
tatus:False Transition:2019-05-13 17:05:16.87016128 +0000 UTC m=+0.061356200 Reason:FilesystemIsReadWrite Message:Filesystem is read-w
rite} {Type:OOMKilling Status:False Transition:2019-05-13 17:05:16.87016136 +0000 UTC m=+0.061356278 Reason:OOMKiller not active Messa
ge:OOMKiller not active} {Type:UnregisterNetDevice Status:False Transition:2019-05-13 17:05:16.870161437 +0000 UTC m=+0.061356357 Reas
on:NoUnregisterNetDevice Message:NoUnregisterNetDevice} {Type:KernelOops Status:False Transition:2019-05-13 17:05:16.870161513 +0000 U
TC m=+0.061356432 Reason:NoKernelOops Message:NoKernelOops}]
I0513 17:05:16.872985       1 log_watcher.go:80] Start watching journald
I0513 17:05:16.873042       1 problem_detector.go:73] Problem detector started
I0513 17:05:16.873152       1 log_monitor.go:170] Initialize condition generated: []
E0516 04:00:18.881028       1 manager.go:160] failed to update node conditions: client: etcd cluster is unavailable or misconfigured;
error #0: client: etcd member http://<IP_ADDRESS>:4001 has no leader
E0516 04:00:52.873143       1 manager.go:160] failed to update node conditions: Timeout: request did not complete within allowed durat
ion
E0516 04:01:52.875111       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:02:52.876858       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:06:52.885176       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:07:52.887435       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:08:26.187870       1 manager.go:160] failed to update node conditions: Unauthorized
E0516 04:08:26.546273       1 manager.go:160] failed to update node conditions: Unauthorized
E0516 04:21:51.877018       1 manager.go:160] failed to update node conditions: client: etcd cluster is unavailable or misconfigured;
error #0: client: etcd member http://<IP_ADDRESS>:4001 has no leader
E0516 04:22:25.873023       1 manager.go:160] failed to update node conditions: Timeout: request did not complete within allowed durat
ion
E0516 04:23:25.874769       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:24:25.877060       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:25:25.879151       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:26:25.880687       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:27:25.882314       1 manager.go:160] failed to update node conditions: the server was unable to return a response in the time
 allotted, but may still be processing the request (patch nodes productionnodes-vst6)
E0516 04:27:55.887203       1 manager.go:160] failed to update node conditions: Unauthorized
E0516 04:27:55.888334       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: dial tcp <IP_ADDRESS>:443: connect: connection refused
E0516 04:28:43.132609       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: unexpected EOF; some request body already written
E0516 04:28:43.137269       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: read tcp <IP_ADDRESS>:45290-><IP_ADDRESS>:443: read: connection reset by peer
E0516 04:29:22.999996       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: unexpected EOF; some request body already written
E0516 04:29:23.005725       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: read tcp <IP_ADDRESS>:46140-><IP_ADDRESS>:443: read: connection reset by peer
E0516 04:30:02.870129       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: unexpected EOF; some request body already written

Stuck on this:
E0516 04:34:47.871391       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: dial tcp <IP_ADDRESS>:443: connect: connection refused
E0516 04:34:58.871276       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: dial tcp <IP_ADDRESS>:443: connect: connection refused
E0516 04:35:09.871119       1 manager.go:160] failed to update node conditions: Patch https://<IP_ADDRESS>:443/api/v1/nodes/productionno
des-vst6/status: dial tcp <IP_ADDRESS>:443: connect: connection refused

Has the address of API server been changed after the fix of etcd/api-server?


Support expansion of %USERPROFILE% or even ~ and document paths taking / on Windows

Using the Windows-specific \ path separator in the config YAML results in error:
[error] Configuration file is corrupted. yaml-cpp: error at line 1211, column 33: unknown escape character: P

Using / instead solves this issue. However, the default help text or value only shows a Mac-specific example: /Users/trapni/Pictures/bg.png.
It would be nice if the expansion of %USERPROFILE% (to C:/Users/Whisperity) would be supported. Currently, using %USERPROFILE% in the configuration for the path results in [error] Background image not found: %USERPROFILE%/Pictures/....
Alternatively, it would be even better if the expansion of ~ to mean %USERPFORILE% and expand to the same location (i.e., C:\Users\Whisperity), just like Git Bash does it:
whisperity@WVM MINGW64 ~
$ pwd
/c/Users/Whisperity

would be even better, as, assuming the user sets up the same directory structure for resources on both platforms, could re-use the same configuration file cross-platform. I would definitely like not having to edit the config file on Windows just to fix the background image's path and then constantly see as if I have uncommitted changes to my, otherwise versioned, configuration.

Since ~ home directory expansion is already working, we decided on Discord, to implement environment variable substitution after 0.4.0 release.

What do you mean by "and document paths taking / on Windows" btw?

@whisperity what syntax of variable expansion do you have in mind? I'd try not to use %EnvName% syntax, because that's waaay to outdated. It's also easier to parse ${EnvName} instead, and users are probably used to see that syntax already anyways, regardless of the underlying operating system.
What do you think?

What do you mean by "and document paths taking / on Windows" btw?

@christianparpart Sorry I might have meant "file path". So we should support / in the paths for example to the background image. And also the expansion.
Wrt. ${VarName}... it would be great if it was consistent with Linux/Mac systems as well! Maybe we should just do $HOME or something, instead?


Sign in with Google feature

Related Issue

Info about the related issue

Closes: #[issue number that will be closed through this PR]
Describe the changes you've made
Give a clear description what modifications you have made
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Mention any unusual behaviour of your code (Write NA if not)
Any unusual behaviour of your code
Additional Info (optional)
Any additional information you want to give
Checklist:

[ ] My code follows the guidelines of this project.
[ ] I have performed a self-review of my own code.
[ ] I have commented my code, particularly whereever it was hard to understand.
[ ] My changes generate no new warnings.
[ ] Any dependent changes have been merged and published in downstream modules.

@ankitapuri try this PR

https://drive.google.com/file/d/16Sc0mEecT5mqkepgldOtZcLq8didYOQP/view?usp=sharing


Finish repository merge

From https://github.com/mitmproxy/mitmproxy/pull/937:

[x] Mark netlib and pathod repos as outdated.
[x] Migrate issues
[ ] Adjust release script
[ ] Figure out how to include LICENSE/CONTRIBUTING.md into source packages - maybe have one copy per repo again?
[ ] Figure out what to do with .dockerignore (mitmproxy)
[ ] Figure out what to do with .jsbeautifyrc (pathod)
[ ] Figure out what to do with old tags/branches - just discard them?
[ ] Fix pathod tests

@dweinstein, what do we need to do with .dockerignore? Just move it to the repo root? :-)

@cortesi, .jsbeautifyrc stays where it is?


file copy at end may be sub optimal

Hi,
it might be worth looking at
the way the file is copied.. i don't think using user space is the best way.
maybe a kernel file copy call ?
also
remove(src_path.c_str());
rename(tmp_dst_path.c_str(), dst_path.c_str());
really you should rename the dest, make sure it is OK
THEN delete the source....

kernel file copy call ? for example...

if final rename fails, you still have the file, just with a *.tmp extension. it's highly unlikely to happen and no data is lost

Why final file is created at /temp, can we have option to be created at final stage directly to destination dir?

See #688


Consider creating an organization for the project

I would like to see the community around the "One schema never breaking" grow and be adopted more widely. I think that will require more plugins and a community managed roadmap. I think it would be good as a first step to create an Organization for the project and regroup plugins there like the express one and apollo #27. Then they can be moved under the same prefix in npm.

I am also planning on contributing a few rewriter and probably on the rewrite needed to support #26

This is a great suggestion, it would certainly make things easier to manage as its own org. I just want to confirm with some coworkers that it's OK first. What would make sense as an org name? graphql-query-rewriter?

Good question, that seems like a good name

I just got the OK to move this to an org, we'll just have to say something like Sponsored by EF Hello in the bottom of the readme. I'll get this set up and moved over tomorrow, and add you as a collaborator

Super! Do you also want to create the npm organization? I want to start moving packages under a common name and publish the apollo integrations.

Apologies for the delay! The new org is set up. I registered the npm org as well but haven't done the swap yet.

any news @chanind ?

On the Github org front, that should be good to go. You should be added as a member, so if you want to make a repo for the apollo integration definitely feel free! On the npm org side, I made the org, but I can't figure out how to move the npm packages under the org without causing them to change their name on npm (graphql-query-rewriter -> @graphql-query-rewriter/graphql-query-rewriter, seems sort of redundant).

Right, we either call it @graphql-query-rewriter/core (or something similar) or stick with the current name. Maybe run it by the team to get some ideas. I will work on the apollo integration. I received an invite for the npm org but I cant seem to able to accept it.

Just resent the npm invite. True, @graphql-query-rewriter/core seems pretty reasonable. If we go that route, probably makes sense to rename this repo as well


Div by zero when doing cpCircleShapePointQuery()

If you query for shapes near point, and there is a circle at the exact same point, a division by zero occurs.
>>> where
#0  0x000000000045e003 in cpCircleShapePointQuery (circle=0xf54090, p=..., info=0x7fffffffd080) at /home/bram/src/Chipmunk2D/src/cpShape.c:306
#1  0x000000000045d7a5 in cpShapePointQuery (shape=0xf54090, p=..., info=0x7fffffffd080) at /home/bram/src/Chipmunk2D/src/cpShape.c:232
#2  0x0000000000464e35 in NearestPointQuery (context=0x7fffffffd320, shape=0xf54090, id=0, data=0x0) at /home/bram/src/Chipmunk2D/src/cpSpaceQuery.c:40
#3  0x0000000000468e2a in SubtreeQuery (subtree=0xf1dac0, obj=0x7fffffffd320, bb=..., func=0x464db6 <NearestPointQuery>, data=0x0) at /home/bram/src/Chipmunk2D/src/cpBBTree.c:357
#4  0x0000000000468e54 in SubtreeQuery (subtree=0xf1da80, obj=0x7fffffffd320, bb=..., func=0x464db6 <NearestPointQuery>, data=0x0) at /home/bram/src/Chipmunk2D/src/cpBBTree.c:359
#5  0x0000000000468e54 in SubtreeQuery (subtree=0xf1db80, obj=0x7fffffffd320, bb=..., func=0x464db6 <NearestPointQuery>, data=0x0) at /home/bram/src/Chipmunk2D/src/cpBBTree.c:359
#6  0x0000000000468e80 in SubtreeQuery (subtree=0xf1db00, obj=0x7fffffffd320, bb=..., func=0x464db6 <NearestPointQuery>, data=0x0) at /home/bram/src/Chipmunk2D/src/cpBBTree.c:360
#7  0x0000000000469ee0 in cpBBTreeQuery (tree=0xee7250, obj=0x7fffffffd320, bb=..., func=0x464db6 <NearestPointQuery>, data=0x0) at /home/bram/src/Chipmunk2D/src/cpBBTree.c:684
#8  0x0000000000464ca3 in cpSpatialIndexQuery (index=0xee7250, obj=0x7fffffffd320, bb=..., func=0x464db6 <NearestPointQuery>, data=0x0) at /home/bram/src/Chipmunk2D/include/chipmunk/cpSpatialIndex.h:210
#9  0x0000000000464fd3 in cpSpacePointQuery (space=0xee7010, point=..., maxDistance=0.80000001192092896, filter=..., func=0x40dec0 <queryfunc(cpShape*, cpVect, double, cpVect, void*)>, data=0x0) at /home/bram/src/Chipmunk2D/src/cpSpaceQuery.c:55

FIxed and merged.


Extension of the lambda-converters to support DataTemplateSelectors and ValidationRules

Hi Michael,
I recently found this library and thought it was an awesome idea. I started to use it in one of my hobby projects and it worked well.
The DataTemplateSelector and the ValidationRule classes have similar issues as the converters (IValueConverter and IMultiValueConverter), because there you need to create a whole class for just one function as well. Furthermore, they both have a weakly typed parameter. Additionally, it would be of benefit to get them into static context.
Hence, I extented your library so that it supports the creation of DataTemplateSelector and ValidationRule classes as well in the same style as the converters. I think the lambda-converters library would be more complete that way (even though the name only has "converters" in it), because the extended elements are similar constructs to the converters in the WPF world and if one can have lambda converters, than one would expect to do lambda template selectors and lambda rules as well.
Thus, please take a look into this pull request. It would be awesome if you accept it, if you like what I did.
Best regards
Dimitri
P.S.: For most of the cases the ValidationRule implementation should work. However, I discovered that there are two additional overloads of the Validate function, which have the additional parameters of the types BindingExpressionBase and BindingGroup, respectively. I think for completeness your library should support these overloads, too. Hence, I will think of a solution for this in near future.
If you don't want to pull because something specific is bothering you, then don't hestitate to tell me.

Sorry, it was my fault (to miss the PR notification). I'll address it ASAP.

Class design: why do you need the three-level hierarchy consisting only of internal types (Rule, Validator.Rule, Validator.Rule<I>) where only Validator.Rule<I> is used?
The same question is for the Selector, TemplateSelector.Selector, and TemplateSelector.Selector<I>.
My design consideration for the Converter types
The only purpose of the three-level hierarchy (Converter, ValueConverter.Converter, ValueConverter.Converter<I,O>) was to reduce the code duplication. The base abstract non-public types must derived more than once.

You are right. When I adopted your lambda converter pattern to the ValidationRules and the DataTemplateSelectors, I didn't realized that the intermediate class in the hierarchy only makes sense for the ValueConverters/MultiValueConverters.
I refactored that now and pushed on the branch of the pull request.
I have another request. After this pull request, may I prepare another pull request, where the .Net version is lowered to .Net4.5? This will allow a broader range of projects consuming the lambda converters package. Then I also would delete my custom package from nuget.
The lambda converters project as it is now is almost compatible completely compatible to .Net4.5. The only part, which would have to be removed are the Channel-Property of the Event-Attributes used in the EventSource class.

With the latest commit I further removed the abstract base class. Thus, now the Lambda ValidationRule and DataTemplateSelector backing classes directly derive from the ValidationRule and DataTemplateSelector classes. No class hierarchy anymore. :D

almost completely compatible to .Net4.5

You can target multiple frameworks in a single NuGet package, meaning you'd only have to remove code for users of the lower framework level. If you upgrade the project to the newer (CS2017) .csproj format, this is quite straightforward. You'd specify something like:
<TargetFrameworks>net45;net46</TargetFrameworks>

Then in code you can do something like this:
#if NET46
    // feature that requires .NET Framework 4.6
#endif

When you do dotnet pack on the command line, both versions are compiled and added to the .nupkg file.

Okay, thank you, @drewnoakes.
Should I do this in a separate pull request?
I learned a lot from this pull request. I now assume that usually one wouldn't prepare a PR on the master branch. Instead dedicate a new own branch.
Also one PR should probably be dedicated to one sole topic, which is as small as possible.
Hence, doing the .Net4.5 compatibility feels like it belongs to another separate PR.

Not my project -- I just thought it was cool and started watching it -- but yes, normally one PR per feature, and doing it on a branch is easier as you've learned.

@michael-damatov: Did my recent changes improve the quality of the pull request?

The use case for the lambda versions of the DataTemplateSelector and the ValidationRule is an analogous use case to the Lambda Converters. It is an alternative, convenient, strongly-typed, x:Static-referenceable way to implement these components. I hope my update to the README.md shows that more clearly.
When I started to use the Lambda Converters I thought "Hey, DataTemplateSelectors and ValidationRules are similiar to IValueConverters. So this lambda pattern should be applyable to them as well." And so I started to work on this pull request. Basically, I just copied your implementation and adjusted it to selectors and rules. It works well.
About the empty DataTemplate: Actually, I think it makes even more sense than returning null at this point, because the DataTemplateSelector is expected to return a DataTemplate. If the casting fails, then you cannot be sure that the current item is displayable by any DataTemplate with content. Hence, one strategy is just return an empty DataTemplate which would display nothing for the item.
Honestly, I am not sure when the "return null" error strategy would make sense. However, maybe some user would get an idea how to use this error strategy. Hence, I left it as an option for the users to decide.
Same argumentation goes for the error strategies of Lambda ValidationRules.

Thanks for your contribution.
Please take a look at my last comment regarding the UnableToCastToItemType method.
My next steps will be to release the package (I'll update the version number, ReSharper annotations, etc.)

It is a great experience to contribute with this first pull request of mine.
May I remind you about my suggestion to offer a .Net 4.5 version? I have projects where I would like to use the Lambda Converters which require .Net 4.5.
@drewnoakes made a nice suggestion to surround the .Net 4.6 specific code with #if ... #endif-instructions and add net45 to the target frameworks.
The only thing which has to be hidden for .Net 4.5 is the Channel-property of the Event-attributes used in the EventSource class:
[Event(
    7,
    Version = 0,
    Message = "The {0} is null, conversion result is a value according to the specified error strategy ({1}).",
    Level = EventLevel.Warning,
    Keywords = Keywords.Converters,
    Opcode = EventOpcode.Info
#if net46
    ,Channel = EventChannel.Operational
#endif
)]

If you accept, should it done in a separate pull request, because it is semantically different to the topic of this pull request?

I would suggest a separate pull request for the .NET 4.5 compatibility.

I agree.

Future pull requests should target the develop branch. Commits on the master branch should only be used for releases. Thanks.


Community operator CSV version 0.10.4 incorrectly references image version 0.10.3

Community operator CSV version 0.10.4 available here: https://github.com/operator-framework/community-operators/blob/c02020182eff538c944ff7e1cc4bc3ef38d752f6/community-operators/openshift-pipelines-operator/0.10.4/openshift-pipelines-operator.v0.10.4.clusterserviceversion.yaml#L368 incorrectly references image version 0.10.3.

I see version 0.10.5 has been published with a correctly-synced image version. Therefore, I will go ahead and close this issue.
Thanks!


home-assistant: remove unnecessary protobof version pin

Motivation for this change
When esphome is used with home-assistant the build will fail because of the protobuf version pin
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Sorry, I missed this. I pushed #97870 and #97874 respectively already.


AB#5534

Proposed changes

Related issues

Checklist

[x] I consider the submitted work as finished
[x] I tested the code for its functionality
[ ] I wrote test cases for the relevant uses case
[ ] I added/update the relevant documentation (either on github or on notion)
[ ] Where necessary I refactored code to improve the overall quality

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

Looks good on local build, @r-joyce please review and merge.

Waiting on @CyberDaedalus00 for the go ahead on the merge


Fix Crash with useContentChecksums

Description
Fix Crash with useContentChecksums.
References
May crash when cache with useContentChecksums if there's any symlink file.
Shouldn't include these symlink when calculate checksums.
Checklist

[x] I've added at least one test that validates that my change is working, if appropriate
[x] I've followed the code style of the rest of the project
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary

❤ Thanks for contributing to the 🏈 Rugby!

Fix #208

Thank you for your request!

@mlch911 Please, fix lint warning.
As I see, there is an redundant space before {.

Sorry, my fault.


Skip stackdriver vm test in istiodremote topology

Please provide a description of this PR:

@frankbu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
069f51da76871fcf4033bd46d1532b8d14620925
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-telemetry-istiodremote-tests_istio

/retest

Can we add a bit more context in the description about why it does not work?

@bianpengyuan I think the VM tests could be made to work, but currently the way the echo services are set up, it doesn't work quite right when there are multiple clusters. Rather than fixing the setup, we decided to not run any of the VM pilot or security tests in MC or external control plane. This test is already disabled for MC (RequireSingleCluster), but the extra check RequireLocalControlPlane is also needed to make sure there's also no external control plane cluster in the test topology.


Debug does not work on big projects (mixing js and typescript)

VSCode Version: 1.9.0
OS Version: Mac OS-X Sierra

The debug interface is unresponsive on a big project. With unresponsive I mean that it does not do anything at all: it does not throw any error, it is not able to generate any launch file, it does not start the debugging, it is unable to connect to an existing node debugger...
I'm afraid that this is related to the fact that I'm mixing some js modules with typescript modules. I'm using a monorepo structure, and I open the entire monorepo folder with vscode.

Root

.vscode
package.json (global)
src

jsmodule

package.json

jsmodule

package.json

tsmodule

.vscode
package.json
tsconfig.json

Before adding the typescript module everything was working fine, that's why I think that this is related to the fact that I have a typescript module inside the folder structure.
If there is any way of extracting any extra log information or traces I would love to provide them.
Regards
EDIT
I think I found the problem. Two things seems to be involved:

The existence of a .vscode folder under the typescript module subfolder
My old launch.json seems to be wrong

Well if you launch.json seems to be wrong then that is probably the cause of the issue.
If there is a debugging issue here please try to provide steps and share your launch.json
Having a .vscode folder underf some subfolder should not affect the behvaior of vscode
As far as I understand you have found and solved the issue thus closing this unless more data is provided

Dear @isidorn ,
Yes, I have solved the issue deleting my old file and generating a new one. Then, I copied some debug options back to the newly created launch.json and it still working. I'll continue adding configurations until I find the problematic one.
That said, I really think there should be some incompatibility between the latest version of VS code and the previous one, because that same file was working on 1.8.1.
Regards


Remove object from array

I want to remove an object at a given index from an array. I am using the following code to delete the last item:
// input: [{"key":"value"}]
duk_del_prop_index(ctx, -1, arrayLength - 1);
// output: [null]

But it actually resets it with null. I would expect that the index is removed and the array getting shorter by one item.

In Javascript array deletions don't affect .length.  For example:
$ node
> a = [1,2,3]
[ 1, 2, 3 ]
> delete a[2]
true
> a.length
3
> a
[ 1, 2,  ]

Shame on me. Now I remember why I am always using a custom remove method with Array.splice to achieve the effect...
Is there something similar I can do with the C-API?

Right now there are unfortunately no array bindings in the C API e.g. to do operations like slice().

Okay, thank you for your quick response! I will work around the issue for now :)

You're welcome :) Let's leave this issue open because array C API bindings are a clear area for improvement.

Wait, it resets the value to null?  Are you sure?  Because if so that would be a bug--delete (and therefore duk_del_prop_index()) should reset the property to undefined.

Yes, it deletes the property; which is different to setting to undefined:
duk> a = [1,2,3]
= 1,2,3
duk> delete a[0]; a[1] = undefined; a[2] = null
= null
duk> print(a[0])
undefined
= undefined
duk> print(a[1])
undefined
= undefined
duk> print(a[2])
null
= undefined
duk> print('0' in a, '1' in a, '2' in a)
false true true
= undefined

Oh, I knew that. I already know all about JS's idiosyncrasies regarding 'undefined. :)  I just wanted to make sure the property wasn't actually evaluating as null` after deletion because that would definitely be a bug.

I am also missing a duk_prop_insert_index(ctx, -2, 5); to insert a value at a index into an array.

As a workaround, you can do stuff like this by pushing the array onto the stack and then calling .splice on it yourself:
// let's assume the array is on top of the stack already...

duk_get_prop_string(ctx, -1, "splice");  // load arr.splice onto stack
duk_dup(ctx, -2);  // this
duk_push_int(ctx, 5);  // arg1: start
duk_push_int(ctx, 0);  // arg2: deleteCount
duk_push_int(ctx, 812);  // item1
duk_call_method(ctx, 3);  // nargs = 3
duk_pop(ctx);  // retval

Which will insert the value 812 at index 5 of the array.

Thank you!
I am curious on how big the performance impact is with workarounds like this to get missing functionality  into the C API. I would think, because the splice function is implemented in C, it is not too bad...

In theory the only performance hit compared to a native API would be the property lookup.  Duktape's implementation is very tight and the APIs that are exposed generally run the exact same code as when the same constructs are used from script.

Good to know!
And also thank you for your quick help and responses.

@ReneHollander The snippet @fatcerberus posted is pretty much the best approach now. In fact there isn't any faster mechanism internally right now for most operations. For example, for splice() there is the Duktape/C function providing Array.prototype.splice which would be called as a method (via the value stack) anyway.
One improvement would be to provide pushers for the built-in methods so that you didn't need to look them up using a string. This would be footprint neutral but a bit faster. It could also provide the "original" method in case the method had been replaced later.

A way to get the actual function Duktape implements would be nice, because when somebody modifies Array.prototype.splice it could, in my case at least, bring the whole application to a halt or at least cause some weird behavior.
Would it be a workaround for now, to save the function to the heap stash at startup and use it later when needed to overcome the issue or would the modification of the prototype also override the function in the heap stash? (Sounds weird, but you never know. I am still figuring out how Duktape does some of the things :D)

Equally one might in other cases want the overridden behavior - it's presumably overridden for a reason :)
Anyway, if you store a function reference to the heap stash, that won't get modified if Array.prototype is modified - it would work the same as the Ecmascript code:
    var origSplice = Array.prototype.splice;
    Array.prototype.splice = replacementSplice;

    // origSplice is still the original function

Thanks!
Btw: I don't want to open another issue, but I am currently developing a object oriented Java Binding for Duktape: https://github.com/ReneHollander/duktape-java
I try to hide as much of the stack operations behind Java Objects for easier use. Duktape objects and arrays can be accessed from Java like maps and lists. In the near future it should also be possible to call Java methods from javascript and vice versa.
Maybe you want it to add it to the list on the website.

Ok, will do!


Set limit for bucketPower on config with #cacheEntries

This PR fixes the potential bug of exceeding the limit for bucketPower and lockPower, by capping the bucketPower with kMaxBucketPower.
Fix: https://github.com/facebook/CacheLib/issues/125

@wenhaocs Could you also remove noexcept keyword for the function?

@wenhaocs Could you also remove noexcept keyword for the function?

Oh yeah, done! Generally, is there any check or process we can do locally, especially on mac?


<IP_ADDRESS>: Multiple video streams are missing in summary

When there are multiple video streams, their info is missing in the summary.
See this:

The sample video used in this: here.

Thanks for reporting JJKylee. I've uploaded a new release.


ADR - Modules' structure

@tbekas could you help with more precise ones then? I'll add tools module


Centos 7 CIS Benchmark Rules reduced config and version headers

This pull request will add the file with the CentOS 7 benchmarks IDs and add to the other definition files the version headers. This should complete the work of PR  #11.

@erikvarga I have edited the files as requested. But I see that in 15 benchmarks defined in generic_linux, 13 used by CentOS, the image scan look for files in folder /usr/share/google/security. For example, benchmark "strong-mac-algorithms-used". This looks like they should be used in cos only and not in a generic linux image. Should I fix them by copying them to the cos definition and removing the /usr/share/google/security part from the scan?

Hm, yeah, if the checks refer to COS-specific files then they should be under the COS checks. Can you copy them over to COS (add a "-cos" suffix to the IDs) and remove the COS specific paths from the ones left in generic_linux.textproto?

Hm, yeah, if the checks refer to COS-specific files then they should be under the COS checks. Can you copy them over to COS (add a "-cos" suffix to the IDs) and remove the COS specific paths from the ones left in generic_linux.textproto?

Done!


Ssl upgrade

Codecov Report

Merging #116 (8fe14df) into master (e88770e) will increase coverage by 0.01%.
The diff coverage is 9.17%.

@@            Coverage Diff             @@
##           master     #116      +/-   ##
==========================================
+ Coverage   29.88%   29.89%   +0.01%
==========================================
  Files          69       69
  Lines       14146    14194      +48
  Branches      220      223       +3
==========================================
+ Hits         4227     4244      +17
- Misses       9699     9727      +28
- Partials      220      223       +3

Impacted Files
Coverage Δ

src/clj/skylobby/fx/root.clj
5.55% <0.00%> (-0.07%)
:arrow_down:

src/clj/skylobby/fx/welcome.clj
61.45% <0.00%> (-0.48%)
:arrow_down:

src/clj/spring_lobby/client/handler/tei.clj
87.93% <0.00%> (ø)

src/clj/spring_lobby/client.clj
22.22% <2.40%> (-4.66%)
:arrow_down:

src/clj/spring_lobby.clj
11.49% <2.60%> (+0.09%)
:arrow_up:

src/clj/spring_lobby/client/message.clj
20.00% <7.69%> (-17.50%)
:arrow_down:

src/clj/spring_lobby/client/handler.clj
36.04% <42.85%> (-0.16%)
:arrow_down:

src/clj/skylobby/fx/battle.clj
59.30% <70.83%> (+1.34%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e88770e...8fe14df. Read the comment docs.


feat(helm): add initContainers

Hi,
your approach with this repo is a really good one and I want to use it by myself - so thank you for sharing it!
Because I want to make small changes how the certificates are treated I would need to add a initContainer.
Because of that it would be great to extend your Helm chart.
I also require a volume (separate PR #19).

Released in v0.3.5