How to train with negative samples of my training set?

❓ Questions and Help
Hello,
My data have only two classes first is background = 0 and object = 1.
While training I it necessary for me to present to the net negative samples i.e images without an object, just background. In this case I don't have segmentation contour. How do I add those images to the training?
I use COCO-style annotations for the images, saved in json format.
Thanks in advance.

I think thishttps://github.com/facebookresearch/maskrcnn-benchmark/issues/144 can help you.

@wjp0408  Not so much, issue 144 handle with negative samples  simply by filtering them and not including in training at all.
I do not want to exclude them but use them while training.

Hi
One image should contain two things: a positive element and a negative element.
This is always the case for detection, except if your bounding boxes are of the full size of the image, in which case you might be looking for object classification, and not object detection?

@fmassa  Thanks for the answer.
If I understand right "One image should contain two things: a positive element and a negative element."
is true for evaluating the net not for training.
I'll elaborate a little bit more on what I aim to do.
For example I want to train Mask-rcnn to detect and segment giraffes. So I provide 1000 sample of images and masks of giraffes. But I have also 10 image that look like the animal [for example blanket with giraffes pattern] and I want to include them in my training process but obviously masks of those images will be blank.
Thus I want to be able to add images without segmentation mask.
Thanks

I see, thanks for the explanation!
It is possible to support your use-case, but you'll need to adapt a few things in the code for that.
The first issue you'll see is this one: https://github.com/facebookresearch/maskrcnn-benchmark/issues/31
You can make the Matcher return a tensor of size N, but you'll afterwards probably face a few other issues down the road that will need to be addressed.
Let me know if you get stuck in a particular problem.  It might be interesting to see, once the code is working, what it would take to make it work, so that we might potentially send a PR to add support for this in the codebase.

Thanks I'll check it.

I have the same objective of being able to train on negative examples (images where there is nothing to detect).
My goal is both one of learning from negative data (the fact that there is nothing should at least help train the RPN) and calibration (most of my images have nothing, so training only on positive data tends to lead to overconfident predictions).
Would be great if this was supported, although I can see how it would make many things harder (e.g: sampling, dimensions, etc.)

I'd be willing to support this use-case, so if you have troubles getting the code to work for those images just let me know and I'd help you with that so that we could have a PR for it. There might be a few tricky things to tune though.

I have the same objective of being able to train on negative examples (images where there is nothing to detect).

I have the same question.

@LU4E I still have the same answer as before :-)

@Iwontbecreative it would be a very nice addition!
Could you briefly summarize what were the things that you did that made it work nicely?

This is probably not the right form and not directly tested on the new codebase but should be the main changes I did.
`
diff --git a/maskrcnn_benchmark/modeling/matcher.py b/maskrcnn_benchmark/modeling/matcher.py
index 35ec5f1..074734c 100644
--- a/maskrcnn_benchmark/modeling/matcher.py
+++ b/maskrcnn_benchmark/modeling/matcher.py
@@ -53,9 +53,9 @@ class Matcher(object):
if match_quality_matrix.numel() == 0:
# empty targets or proposals not supported during training
if match_quality_matrix.shape[0] == 0:

           raise ValueError(

               "No ground-truth boxes available for one of the images "

               "during training")

           length = match_quality_matrix.shape[-1]

           device = match_quality_matrix.device

           return torch.ones(length, dtype=torch.int64, device=device) * (-1)
       else:
           raise ValueError(
               "No proposal boxes available for one of the images "

diff --git a/maskrcnn_benchmark/modeling/roi_heads/box_head/loss.py b/maskrcnn_benchmark/modeling/roi_heads/box_head/loss.py
index 2c21f6c..bed4bbc 100644
--- a/maskrcnn_benchmark/modeling/roi_heads/box_head/loss.py
+++ b/maskrcnn_benchmark/modeling/roi_heads/box_head/loss.py
@@ -38,7 +38,11 @@ class FastRCNNLossComputation(object):
# NB: need to clamp the indices because we can have a single
# GT in the image, and matched_idxs can be -2, which goes
# out of bounds

   matched_targets = target[matched_idxs.clamp(min=0)]

   if target.bbox.shape[0]:

       matched_targets = target[matched_idxs.clamp(min=0)]

   else:

       target.add_field ("labels", matched_idxs.clamp(min=1, max=1))

       matched_targets = target
   matched_targets.add_field("matched_idxs", matched_idxs)
   return matched_targets

@@ -63,9 +67,13 @@ class FastRCNNLossComputation(object):
labels_per_image[ignore_inds] = -1  # -1 is ignored by sampler
         # compute regression targets

       regression_targets_per_image = self.box_coder.encode(

           matched_targets.bbox, proposals_per_image.bbox

       )

       if not matched_targets.bbox.shape[0]:

           zeros = torch.zeros_like(labels_per_image, dtype=torch.float)

           regression_targets_per_image = torch.stack((zeros, zeros, zeros, zeros), dim=1)

       else:

           regression_targets_per_image = self.box_coder.encode(

               matched_targets.bbox, proposals_per_image.bbox

           )

       labels.append(labels_per_image)
       regression_targets.append(regression_targets_per_image)

diff --git a/maskrcnn_benchmark/modeling/rpn/loss.py b/maskrcnn_benchmark/modeling/rpn/loss.py
index 0847231..a3dae25 100644
--- a/maskrcnn_benchmark/modeling/rpn/loss.py
+++ b/maskrcnn_benchmark/modeling/rpn/loss.py
@@ -43,7 +43,10 @@ class RPNLossComputation(object):
# NB: need to clamp the indices because we can have a single
# GT in the image, and matched_idxs can be -2, which goes
# out of bounds

   matched_targets = target[matched_idxs.clamp(min=0)]

   if matched_idxs.clamp(min=0).sum() > 0:

       matched_targets = target[matched_idxs.clamp(min=0)]

   else:

       matched_targets = target
   matched_targets.add_field("matched_idxs", matched_idxs)
   return matched_targets

@@ -55,6 +58,7 @@ class RPNLossComputation(object):
anchors_per_image, targets_per_image
)

       matched_idxs = matched_targets.get_field("matched_idxs")
       labels_per_image = matched_idxs >= 0
       labels_per_image = labels_per_image.to(dtype=torch.float32)

@@ -66,9 +70,13 @@ class RPNLossComputation(object):
labels_per_image[inds_to_discard] = -1
         # compute regression targets

       regression_targets_per_image = self.box_coder.encode(

           matched_targets.bbox, anchors_per_image.bbox

       )

       if not matched_targets.bbox.shape[0]:

           zeros = torch.zeros_like(labels_per_image)

           regression_targets_per_image = torch.stack((zeros, zeros, zeros, zeros), dim=1)

       else:

           regression_targets_per_image = self.box_coder.encode(

               matched_targets.bbox, anchors_per_image.bbox

           )

       labels.append(labels_per_image)
       regression_targets.append(regression_targets_per_image)

@@ -95,6 +103,8 @@ class RPNLossComputation(object):
     sampled_inds = torch.cat([sampled_pos_inds, sampled_neg_inds], dim=0)

   objectness_flattened = []
   box_regression_flattened = []
   # for each feature level, permute the outputs to make them be in the

`

On my own dataset it seemed to have helped, but we have ~100 times as much unlabelled data (and it comes from a slightly different distribution, with our evaluation not being mainly about bounding box prediction).
I have not done any experiment on COCO sadly, sorry. Could be a configuration flag maybe?

Hi @fmassa, @Iwontbecreative,
based on this comment and @jgbos's success, it seems that submitting a PR of this patch would be quite useful.
@AdanMora, could you help making a unit test for this patch?

@botcs I agree, if someone could send a PR with unit tests I'll be more than happy to merge it!

@botcs @fmassa Excellent, I'll take a look and try to get some unit test.

@botcs @fmassa Excellent, I'll take a look and try to get some unit test.

could you also add the metric mAP for the negative samples when testing?

@qq237942920 nyeh. Sounds like a simple task but I have a hunch that you cannot compute mAP for negative samples. I mean, you iterate over different IoUs Precision and Recall values when evaluating AP for a single class. What you could do is to compute F1 or Prec/Rec with the following classification:
[Positive: has prediction][TruePostive: has annotaion and has prediction]...
(or one extremely ugly trick could be annotating the background as an object category, and make a Dataset with this approach, but I have never said this)

@qq237942920 nyeh. Sounds like a simple task but I have a hunch that you cannot compute mAP for negative samples. I mean, you iterate over different IoUs Precision and Recall values when evaluating AP for a single class. What you could do is to compute F1 or Prec/Rec with the following classification:
[Positive: has prediction][TruePostive: has annotaion and has prediction]...
(or one extremely ugly trick could be annotating the background as an object category, and make a Dataset with this approach, but I have never said this)

Thank you for your patient reply! Maybe I didn't express myself well in the last comment. Computing the mAP for the negative samples is mean that when my dataset both have positive and negative samples, will the coco_eval eval the mAP including fp on the negative samples(no gt in the img)?

@Iwontbecreative
the code matched_idxs.clamp(min=0).sum() > 0 in maskrcnn_benchmark/modeling/roi_heads/box_head/loss.py is not correct, when there are only one fg, matched_idxs.clamp(min=0).sum() equal to zero, cause the matched target idx is 0.

how to assign category_id for negative samples images, is it should be 0?

@Iwontbecreative @fmassa Can you write detailed process about how to train model on negative samples ? Thanks!

@cltdevelop all the information that I know about I've already written here, but if @Iwontbecreative has time and wants to send a PR adding a more detailed information, I'd be happy to merge it

@fmassa @Iwontbecreative I have prepared a synthetic DebugDataset which I use for unit tests. It just puts random number of white boxes on a black plane. It could be also used, as is, for sanity check of your implementation.

@tpys
You are right!!

@Iwontbecreative
the code matched_idxs.clamp(min=0).sum() > 0 in maskrcnn_benchmark/modeling/roi_heads/box_head/loss.py is not correct, when there are only one fg, matched_idxs.clamp(min=0).sum() equal to zero, cause the matched target idx is 0.

it should be something like this:
if len(target):
       matched_targets = target[matched_idxs.clamp(min=0)]
else:
       matched_targets = target

Has anyone run into troubles with the fix above using the latest master?  I'm getting an error that a number of the proposals provided to the mask head now have zero width or height which causes the code to crash on this line
https://github.com/facebookresearch/maskrcnn-benchmark/blob/eb4d3352be7e968b96260c8999a331e8431da95f/maskrcnn_benchmark/modeling/roi_heads/mask_head/loss.py#L37
Where a divide by zero error happens on this line
https://github.com/facebookresearch/maskrcnn-benchmark/blob/eb4d3352be7e968b96260c8999a331e8431da95f/maskrcnn_benchmark/structures/segmentation_mask.py#L277

Thank you for the details!
In the most recent state of the code, is it sufficient to initialize the BBox list with 0s and set the label to 0?
For example, in maskrcnn-benchmark/maskrcnn_benchmark/data/datasets/coco.py adding the following check:
    def __getitem__(self, idx):
        img, anno = super(COCODataset, self).__getitem__(idx)

        if not anno:
            boxes = [[0, 0, 0, 0]]
            boxes = torch.as_tensor(boxes).reshape(-1, 4)  # guard against no boxes
            target = BoxList(boxes, img.size, mode="xywh").convert("xyxy")
            target.add_field("labels",torch.tensor([0]))
        else:
            # filter crowd annotations
            # TODO might be better to add an extra field
            anno = [obj for obj in anno if obj["iscrowd"] == 0]

            boxes = [obj["bbox"] for obj in anno]
            boxes = torch.as_tensor(boxes).reshape(-1, 4)  # guard against no boxes
            target = BoxList(boxes, img.size, mode="xywh").convert("xyxy")

            classes = [obj["category_id"] for obj in anno]
            classes = [self.json_category_id_to_contiguous_id[c] for c in classes]
            classes = torch.tensor(classes)
            target.add_field("labels", classes)

        target = target.clip_to_image(remove_empty=False)

        if self._transforms is not None:
            img, target = self._transforms(img, target)

        return img, target, idx

For @Igal20 question I think for a class of just 1-object and 0-background in terms of binary segmentation, using a no groundtruth(mask) or segmentation contour in few training samples will simply affect the accuracy of your training since semantic segmentation is performed pixelwise and considering your target. If you have nothing of positive pixels in your target then during backpropogation the weights of the learned features will be reversed back to non learned weights. (i.e. for example if you have equal amount of positive targets(ground truth with segmentation contours) and negative targets(ground truth with no segmentation targets) the features learned during the positve targets will be reversed back if you feed in also the negative targets in each backprop). So may be in classification it is actually needed but in segmentation the only way is to avoid it.


Crypto natives pt 1 cost params: ed25519 and hash

Description
Adds the cost params logic for natives used in ed25519.move and hash.move
Test Plan

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

LGTM, thanks @oxade

Thanks for swift turnaround. Will put out PRs for the others shortly.


OSRA-406 OSRA-407 AdminUsers index

https://osraav.atlassian.net/browse/OSRA-406
https://osraav.atlassian.net/browse/OSRA-407
Under HQ namespace, create AdminUsersController with #index action and index.html.erb, with accompanying specs.
Bonus: Create OSRA favicon :)

Shouldn't you add the hq_admin_users_path to the nav button in hq_controller.rb at this stage?

Nice for the favicon. Great coding!

:shipit:

:100:


Submitting Screencast version 1.0.3.yaml

[o] Have you signed the Contributor License Agreement?
[o] Have you checked that there aren't other open pull requests for the same manifest update/change?

[o] Does your manifest conform to the 1.0 schema?

Microsoft Reviewers: Open in CodeFlow

@msftbot merge please


Will Portainer support Docker 1.13 in future releases ？

Hi, When Using portainer, I found that when docker version is 1.13, volume API returns lack of 'CreatedAt' parameters. At line 51 of the volumes.go, "volume["CreatedAt"] == nil" returns wrong.Which results in "Failure to retrieve volumes" on the page.
Question:
Will Portainer support Docker 1.13 in future releases ？
Best wishes

We only support current and two prior versions.. so if you run an old version of docker, run an older version of Portainer.


extraction does not preserve the original timestamps

Describe the bug
Using extract utility on talkback..gz and looking at fusion/logs/server/* - timestamps on the files are of current extraction date/time instead of original create/mod timestamp.
If I do "tar xvfz talkback.gz" then it's showing expected timestamps on those log files
To Reproduce

What type of file was attempted
What command was issued
What was the output / outcome

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS:

Additional context
Add any other context about the problem here.

Updated extraction for tar and zip, can be found in version 1.1.0 here
Tested possibilities for gzip, bzip2, and rar, however, they did not work and so have not included them in this release.


Build Haskell with customized proj file instead of vcxproj file

Use vcxproj file compile Haskell codes lead to a hard dependency to Visual C++ which is not available on other platform now. I suggest to use a customized proj file instead to eliminate this unnecessary dependency.
Related PR #633

I didn't know the impact to developer. Dropped vcxproj, the developer cannot list the Haskell files in Visual Studio. If I use csproj, they can list them but without "Virtual Folder" function.

It's fine if the .hs files don't show up in Visual Studio when using the cs.sln.

Fixed in commit 0822d27.


[stable/dmarc2logstash] upgrade image to prevent crashloop on bad dmarc report; upgrade filebeat

What this PR does / why we need it: Upgrades the primary pod image to the latest dmarc2logstash image which prevents the pod from crashing when a DMARC report contains missing elements. Also upgrades filebeat to a newer version.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:

/lgtm


Please merge #ab66a38 into dev channel

commit(s) to merge: ab66a38
merge instructions: clean merge or patch CL
reason: fixes bug in constant evaluation that will surface once constant-update-2018 is enabled by default.
More details at #36562
/cc @dgrove @kevmoo @mit-mit @whesse @athomas

2.2.1-dev.4.2 is tagged and building now.


Add example query for ATP section of WDEG NP page

The Review network protection events in the Windows Defender ATP Security Center section would benefit from having an actual example query.
MiscEvents
| where ActionType in ('ExploitGuardNetworkProtectionAudited','ExploitGuardNetworkProtectionBlocked')

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

ID: 89a3e05b-445d-30b2-bdcf-5479a3c9713c
Version Independent ID: 49c3c29a-f816-778c-f92c-f6ca0311a2aa
Content: Use network protection to help prevent connections to bad sites
Content Source: windows/security/threat-protection/windows-defender-exploit-guard/network-protection-exploit-guard.md
Product: w10
Technology: windows
GitHub Login: @andreabichsel
Microsoft Alias: v-anbic

@officedocsbot assign @e0i

Hello, @iadgovuser1
The issue, along with the similar issue #3618 is under investigation and you will be notified with any changes on the way.
Thank you for providing feedback.

@e0i Created PR https://github.com/MicrosoftDocs/windows-itpro-docs/pull/4353

@iadgovuser1
With the help of your feedback, the issue has been reviewed and an update to the documentation has been published. Thanks for your feedback.

@officedocsbot close


chore: update SHA for mathlib#18268, #18771, RelIso/Basic

algebra.group.ulift: this is a change that was already backported in leanprover-community/mathlib#18268 to match mathlib4, only the SHA needs to be updated.

set_theory.cardinal.basic: the changes from leanprover-community/mathlib#18771 were already forward-ported in #3343, but the sha was not updated. Here I've also inlined all bys and generally tidied up the formatting.

order.rel_iso.basic (leanprover-community/mathlib#18699, leanprover-community/mathlib#18758) is now fully forward-ported too.

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

bors d+
I've edited the PR description, but this otherwise looks good. Is there a reason you've marked in WIP?

I've edited the PR description, but this otherwise looks good. Is there a reason you've marked in WIP?

I didn't want someone else to bors merge this before I could include the Order.RelIso.Basic forwardport.

bors merge


Debating about benchmarking tool

Hi,
I want to open a discussion about the benchmarking tool.
This tool is actually internal. The purpose of this discussion is not to say that actual tool is bad, but how it could be better :stuck_out_tongue:
There is plenty of tools for benchmark / HTTP load test :

https://github.com/JoeDog/siege
JMeter / ab, from Apache
https://github.com/rakyll/hey, from Google
http://curl-loader.sourceforge.net/
https://github.com/gatling/gatling
https://github.com/sdogruyol/cryload
...

I think this tool COULD give us more flexibility if is a separate project (espacially cryload :heart: since it is in crystal).
What do you think ?
Regards,

I like using wrk personally as it gives a lot of statistical information (it's what I used in my statistics tested thread).


Add supports for RN 0.71

Starting from version 0.71, react native is not shipping the android folder (read more).
This library depends on the android folder to build correctly, so this PR adds support for 0.71 and above and it's not backward compatible with older versions. ⚠ This is a breaking change.
Changes:

Uses RN core as prefabs on Android
Uses new buildscript

Tried it on android RN 0.71, did not wort, started receiving errors of different classes are defined multiple times. Tried cleaning and rebuilding project which did not help, after removing clusterer from deps, everything went back to normal

I can confirm that this fix still has some issues on my end as well. Though it's a good starting point. Currently this lib is blocking the upgrade for me.

@focux @teeserted @JiriHoffmann I made a PR in @focux 's fork that makes it work more consistently for me. Can you guys test/validate this?
https://github.com/focux/react-native-clusterer/pull/1

@JoniVR Thanks to your work my android version is now building and clustering seems to work. (RN 71.1)

Merged. Thanks for the contributions!


Using Instructor as a wrapper blocks the API from sending response.usage.total_tokens

[x] This is an actually a bug report.
[ ] I am not getting good LLM Results
[ ] I have tried asking for help in the community on discord or discussions and have not received a response.
[ ] I have tried searching the documentation and have not found an answer.

What Model are you using?

[ ] gpt-3.5-turbo
[ ] gpt-4-turbo
[x] gpt-4
[ ] Other (please specify)

Describe the bug
I'm using Instructor as a wrapper for my OpenAPI. Due to costs, I want to get the  response.usage.total_tokens returned by the OpenAPI to use for billing purposes. I am unable to due to the wrapper blocking it.
To Reproduce
Steps to reproduce the behavior, including code snippets of the model and the input data and openai response.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.

https://jxnl.github.io/instructor/concepts/raw_response/
import instructor

from openai import OpenAI
from pydantic import BaseModel

client = instructor.patch(OpenAI())

class UserExtract(BaseModel):
    name: str
    age: int

user: UserExtract = client.chat.completions.create(
    model="gpt-3.5-turbo",
    response_model=UserExtract,
    messages=[
        {"role": "user", "content": "Extract jason is 25 years old"},
    ],
)

print(user._raw_response)
"""
ChatCompletion(
    id='chatcmpl-8pOAsSOIHAmngMBBki3BLN3p552L0',
    choices=[
        Choice(
            finish_reason='stop',
            index=0,
            logprobs=None,
            message=ChatCompletionMessage(
                content=None,
                role='assistant',
                function_call=FunctionCall(
                    arguments='{\n  "name": "Jason",\n  "age": 25\n}',
                    name='UserExtract',
                ),
                tool_calls=None,
            ),
        )
    ],
    created=1707258346,
    model='gpt-3.5-turbo-0613',
    object='chat.completion',
    system_fingerprint=None,
    usage=CompletionUsage(completion_tokens=16, prompt_tokens=73, total_tokens=89),
)
"""


Sync SocketsHttpConnectionContext code to the latest version

Sync SocketsHttpConnectionContext code to the latest version, add HttpRequestMessage param to SocketsHttpConnectionContext.

I'm very sorry for not taking a look at this earlier, it looks like the notification slipped through cracks and I never saw this PR.
This is internal fork, for best results I recommend sending your PR to the original repo.


ci: increase delay before checking iOS simulator

Description: Increases the sleep before attempting to cat iOS logs in CI to 5 minutes. We're still occasionally trying too early, resulting in flakiness.
Risk Level: Low
Testing: CI
Signed-off-by: Mike Schore<EMAIL_ADDRESS>

Are the cases where this fails actually too early or is it possible the tests are flaking for a different reason? Five minutes seems like a very long time to wait for a log to print

Whenever I've seen it, it looks like the grep simply happened too early.

It will generally pass the next time, for one thing.

I like that idea - definitely seems worth exploring.


count and handle failed logins

Feature-request
Description
To avoid brute-force-attacks against a user-account, there should be a counter for failed login-tries. After 3 failed login-tries there should be a forced wait time, which can be configured via config-file. Only after this timespan there should be login-try possible again. This should prevent brute-force attacks against a user-account.

moved to https://github.com/kitsudaiki/Hanami-AI/issues/48


Remove now-default enableAssertInitializer from analysis config

As discussed in email: This is now on-by-default in Dart, so no reason to include this in our set of language options.

The Dart SDK configured in bin/internal/dart-sdk.version is at version 1.25.0-dev.11.0 and enableAssertInitializer is not the default here.

Yeah, looks like we need a Dart roll. @munificient how recent an SDK do we need?

According to the dates in dart-lang/sdk#30977 the first sdk version where enableAssertInitializer is the default should be 2.0.0-dev.4.0 or 2.0.0-dev.5.0.

Looks like we have rolled the Dart SDK inside engine, but still need to roll up the Dart SDK inside flutter/flutter.

This PR is blocked on https://github.com/flutter/flutter/pull/13180 landing first.

The VM change was committed in https://github.com/dart-lang/sdk/commit/fa57f54572bb006b4a7e8f9b946285f5498721df which look like it's in 2.0.0-dev.4.

I'm going to close this for now, as the Dart roll will take some time. Tracking this in https://github.com/flutter/flutter/issues/13213 so we don't forget.


Process DiscardingFlowOp correctly in FastDatapath send()

The nil FlowOp check in collectFlowOps was not addressed with the
introduction of DiscardingFlowOp.  This meant that DiscardingFlowOps
produced in the router core would get handled by fastdp as if they were
foreign FlowOps, preventing flow creation and so leading to unwarranted
ODP misses.
To fix this, collectFlowOps cannot simply eliminate FlowOps for which
Discards() is true, because it's true for odpFlowKeyFlowOp.  So the
Discards() case has to be handled in FastDatapath send().

Fixes #2003.

LGTM, but I think we may prefer to create a 1.4 patch release.

LGTM, but I think we may prefer to create a 1.4 patch release.

If I tried to follow the formalities, I'd probably forget something important and embarrass myself, so I'll leave that part to your team. This PR is just a way to present the fix.

Thanks; I'll do the merge


Laika Preview: No cache headers

Hi,
I was wondering if it is possible to tell Laika's preview to use no caching so that the browser always fetches your changes.
The issue is that if the browser's cache your site during development, and you forget to clear you browser's cache, then you won't see your changes you have made reflected in the page, and you might mistake that for something you did incorrectly, when actually it's just the browser cache.
I use http-server for similar but unrelated purposes, and what I'm looking for is something like it's http-server -c-1 behaviour:

Set cache time (in seconds) for cache-control max-age header, e.g. -c10 for 10 seconds. To disable caching, use -c-1.

The preview server actually does add those headers here: https://github.com/typelevel/Laika/blob/main/preview/src/main/scala/laika/preview/internal/RouteBuilder.scala#L64 and when I run the server myself and check the headers of the response, they are present. Can you double-check in the browser that the headers are indeed missing for you?

Hi @jenshalm,
Ah. I confess I did not investigate further it before writing up the issue, apologies. What happened was that I got two different pages in two different browsers, one I'd been working in and the other a fresh session, and I jumped to the conclusion that it was the headers.
Looking at the code, I can see you've gone with the no-store header, which according to this MDN page, suggests that it should do the trick (there is literally an example of this):
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#use_cases
...so I don't know what happened. I'll close the issue, and re-open if it occurs again, but will include steps to re-produce.
Thanks for you time!


O11Y-2370: adjusted Github Action Workflow

Which problem is this PR solving?
It is often very useful to be aware of code coverage at the time one is introducing changes.  We should leverage the Github action that will take the coverage report and comment on the pull request.

Security Insights
No security relevant content was detected by automated scans.
Action Items

Review PR for security impact; comment "security review required" if needed or unsure
Verify aviary.yaml coverage of security relevant code

Questions or Comments? Reach out on Slack: #support-infosec.

Public API Changes
No changes to the public API found for commit b200f12e76078f01b70030314d935f4b87d2171b
Showing results for b200f12e76078f01b70030314d935f4b87d2171b

Powered by semver-audit-service. Please report any problems by filing an issue.
Reported by the dart semver audit client 2.2.2
Browse public API.

FYI @blakeroberts-wk , generated files are now ignored


decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>] exception when parsing IDCW payout transaction

Thanks for your script. It is very useful. I am trying to build some automation on top of this to analyze my MF investments.
Got this exception when parsing the amount of an IDCW payout transaction. Let me know if I can collect any more debug info to help. I will also see if I can debug further.
Versions used
casparser==0.4.6
python 3.8.3
Traceback
File "C:\Sathish\python\mf_statement_parser\venv2\lib\site-packages\casparser\parsers_init_.py", line 35, in read_cas_pdf
processed_data = process_cas_text("\u2029".join(partial_cas_data.lines))
File "C:\Sathish\python\mf_statement_parser\venv2\lib\site-packages\casparser\process_init_.py", line 28, in process_cas_text
return process_detailed_text(text)
File "C:\Sathish\python\mf_statement_parser\venv2\lib\site-packages\casparser\process\cas_detailed.py", line 167, in process_detailed_text
amt = Decimal(m.group(3).replace(",", "_").replace("(", "-"))
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Screenshot of the transaction causing the issue
I ran in debug mode and noticed that it fails when attempting to parse the following transaction in pdf

pyCharm debug screenshot

Some more debug info
I got into the console on the debugger and found that we have a "." in the m.group(3) instead of probably the "amount" number?
m.group(3)
'.'
m.group(3).replace(",", "_").replace("(", "-")
'.'
amt = Decimal(m.group(3).replace(",", "_").replace("(", "-"))
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.5\plugins\python-ce\helpers\pydev_pydevd_bundle\pydevd_exec2.py", line 1, in Exec
def Exec(exp, global_vars, local_vars=None):
File "", line 1, in
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

To add, I did not face this issue with an old CAS report which I generated in 2020. It is failing only with the latest report that I generated today.

Some more debug info. I get into the console on the debugger and found that we have a "." in the m.group(3) instead of probably the "amount" number?
m.group(3)
'.'
m.group(3).replace(",", "_").replace("(", "-")
'.'
amt = Decimal(m.group(3).replace(",", "_").replace("(", "-"))
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.5\plugins\python-ce\helpers\pydev_pydevd_bundle\pydevd_exec2.py", line 1, in Exec
def Exec(exp, global_vars, local_vars=None):
File "", line 1, in
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

Can you please let me know the value of the following variables just before the crash?
print([line, m.groups()])

Looks like some issue with while parsing multi-line descriptions..

line
'12-Mar-2021\t\tIDCW Payout @ Rs.4.50000000 per unit  (TDS :453.13, TDS Rate:\t\t.\t\t50%)\t\t5,588.54'
m.groups()
('12-Mar-2021', '***IDCW Payout @ Rs.4.50000000 per unit  (TDS :453.13, TDS Rate:', '.', None, None, None)

Looks like the 7.50% is not a single word in the pdf. shall fix this today.

Thank you for the quick responses!

Can you please test the code using 0.4.7 alpha 2 version?
pip install casparser==0.4.7a2

I tested it and it worked fine. I am now able to parse my statement. Thanks a lot.

Nice! Many thanks for testing.
fixed in https://github.com/codereverser/casparser/commit/0663b5417fb7b6dc9bbe74763dd68047b82b6d25


Rendering stop when the window closed

Describe the bug
Rendering stop when the window closed.
this issue in 11.0.8
To Reproduce
Steps to reproduce the behavior:

open a window A
open a window B
close window B
window A rendering stop

Expected behavior
window A rendering.
Screenshots
11.0.8
https://github.com/AvaloniaUI/Avalonia/assets/26276037/386caae4-ec6a-47ef-82ec-fe99db294e1a
11.0.7
https://github.com/AvaloniaUI/Avalonia/assets/26276037/e3a5fa2c-46e9-4b76-a5d2-3e0b8163a707
Environment

OS: Windows
Avalonia-Version: 11.0.8

Additional context
no issue in 11.0.7

Can you check Avalonia logs?

Can you check Avalonia logs?

where is Avalonia logs?

main thread over?

If main thread is over, then first window should be closed as well, as process is ended.
Do you have a minimal project to reproduce this issue?

I try write a minimal project now.

Here, i found it

After setting the IClassicDesktopStyleApplicationLifetime.MainWindow, it works well


hotdoc: init at 0.12.2

Motivation for this change
Fix https://github.com/NixOS/nixpkgs/issues/98762 .
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"
[x] 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)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg eval

I addressed the latest reviews, but maybe let's not merge it yet? Until we are sure it builds gst's docs right. TBH I don't know if I'll find the time for this in the upcoming weeks.

@doronbehar friendly ping

I don't see a need for this package if we don't use it to build gst's docs, especially not maintainig it. The work here can be used by someone else if they find a need for it.


Graph context: add tsc-mixed strategy

This PR adds a new graph context strategy tsc-mixed that uses the TypeScript compiler (aka. tsc) directly to provide symbol and type information. The benefit of using tsc is that we get full access to typed syntax trees and symbol table, giving us fine-grained control over what symbols to include in the context and how to render the signatures. In comparison, with LSP, we are limited to a small number of endpoints that don't always give us the data we need (or at least not in a performant API).
Marked as draft since it's currently a super basic approach.
Test plan
See added agent tests.

This PR is finally ready for review! I spent most of the time getting the testing infrastructure in place so the diff has several non-graph related changes:

New TestWorkspace class to abstract away code in index.test.ts because I didn't want to add graph context tests to index.test.ts (it's already too big).
New bash scripts to simplify dealing with git conflicts and managing HTTP recordings.
Improved organization of authorization parameters (token + server endpoint). This logic was spread all over the place in index.test.ts and I wasted quite a lot of time debugging issues related to these tokens.
SymbolFormatter unit test suite that runs quickly and offline. I didn't want to rely on agent integration tests to iterate on the rendering of TSC symbols.
graph-context.test.ts integration test suite that is a small file that's independent of index.test.ts. I'd like new features to use the same pattern instead of adding more and more tests to index.test.ts

The Windows test failures are legitimate, tsc-retriever seems to be returning empty results. I will look into this on Monday.

Thank you so much for the review @philipp-spiess ! I will address tomorrow. I spent all of today getting the tests working in Windows. It was surprisingly difficult to debug, primarily due to a bug in our custom implementation of node:path dirname() function. Either way, here's a lovely screenshot of the new context working in Windows :D


update schema

update nll_loss schema

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


What is the latest development of this project? What's the problem?

Maybe we can discuss the difficulties with the current project~

Thank you, Nliver. We discussed rebuilding the system on Feishu, and the latest process will be discussed at the Kaiyuanshe infrastructure group's regular meeting.
I'll push the code to GitHub soon.

The ktoken version 3 have pushed to the main branch.
It contains:

onchain: an ERC20 token with transfer function disabled (finished)
backend: a fastify server to read and transfer tokens in the backend (essential function finished)
frontend: I wrote a Vue template, but we may use Reactor later, which remains unfinished.

We will discuss progress during the Kaiyuanshe infrastructure group's weekly meeting on Sundays at 20:00 (UTC+8) in Chinese. You are welcome to join us if you are interested in this project.
Thank you. I will close this issue.


Passing more context to setTitle + get apply action to set a title

The point of this PR is to

pass patch card context to setTitle gpt
to trigger setTitle via clicking of the "Apply" rather than waiting for roundtrip event to trigger it

A way to test this is to have a list of commands sent and the last one you "apply" is the one which names the room

I'm not sure if this is a result of this PR https://cardstack.sentry.io/issues/5348088638/?environment=development&project=4506860646170624&query=is%3Aunresolved&referrer=issue-stream&statsPeriod=14d&stream_index=1

I think moving the initalRoomSync so high means that we'll be running that a huge number of times on historical messages

Two thoughts, one is that we don't need to wait for a user to click apply, we know we've sent one so we could use that. That saves trying to get the full room on every apply.
It may also be good to include the attached cards in the data sent.

I think moving the initalRoomSync so high means that we'll be running that a huge number of times on historical messages

Ahh good point

Two thoughts, one is that we don't need to wait for a user to click apply, we know we've sent one so we could use that. That saves trying to get the full room on every apply.

I recall thru our discussion we'd want to capture the response from a function call. To me it made sense that we didn't just look for the args that was sent back by open ai but the command that the user agrees on. Is it worth while capturing another client listener to look out for reaction events? That way we can move the history down as before.

It may also be good to include the attached cards in the data sent.

Yeap yeap. Overlooked this

Two thoughts, one is that we don't need to wait for a user to click apply, we know we've sent one so we could use that. That saves trying to get the full room on every apply.

I recall thru our discussion we'd want to capture the response from a function call. To me it made sense that we didn't just look for the args that was sent back by open ai but the command that the user agrees on. Is it worth while capturing another client listener to look out for reaction events? That way we can move the history down as before and call it sparingly in our new listener

Yeah that could make sense, I've not really explored what you can register. Sounds good.
I was thinking about performance but tbh we should probably add some LRU cache of recently accessed room histories (not in scope here) as that would solve both what I'm thinking about here and lessen the load on the matrix server for all other comments too.

User message
Applying patchCard with the payload {"type":"patch","id":"http://localhost:4201/drafts/Author/1","patch":{"attributes":{"firstName":"Justin"}},"eventId":"$3GuObu_9xs2N1GVJpTD8Cy5cIsioJXUBzbmGD5X7H7c"}. The patch being made is applied to the following Full card data: {"type":"card","id":"http://localhost:4201/drafts/Author/1","attributes":{"firstName":"Alice","lastName":"Enwunder","photo":null,"body":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.","description":null,"thumbnailURL":null},"meta":{"adoptsFrom":{"module":"../author","name":"Author"}}}

Applying patchCard with the payload {"type":"patch","id":"http://localhost:4201/drafts/BlogPost/1","patch":{"attributes":{},"relationships":{"authorBio":{"links":{"self":null}}}},"eventId":"$3dtQs1llW6E-d57uozELvt735xSTeZ_sCNEcso_EF4E"}. The patch being made is applied to the following Full card data: {"type":"card","id":"http://localhost:4201/drafts/BlogPost/1","attributes":{"title":"Mad As a Hatter","slug":"mad-as-a-hatter","body":"## Where it all begins\\n\\nThis is a story of a man named [Brady](https://eightiesforbrady.com), who was bringing up three very lovely girls under the rule of the Queen of Hearts.","description":null,"thumbnailURL":null},"relationships":{"authorBio":{"links":{"self":"../Author/1"},"data":{"type":"card","id":"http://localhost:4201/drafts/Author/1"}}},"meta":{"adoptsFrom":{"module":"../blog-post","name":"BlogPost"}}}

Two thoughts, one is that we don't need to wait for a user to click apply, we know we've sent one so we could use that. That saves trying to get the full room on every apply.

I recall thru our discussion we'd want to capture the response from a function call. To me it made sense that we didn't just look for the args that was sent back by open ai but the command that the user agrees on. Is it worth while capturing another client listener to look out for reaction events? That way we can move the history down as before and call it sparingly in our new listener

Yeah that could make sense, I've not really explored what you can register. Sounds good.
I was thinking about performance but tbh we should probably add some LRU cache of recently accessed room histories (not in scope here) as that would solve both what I'm thinking about here and lessen the load on the matrix server for all other comments too.

Looks like we can separate the listeners if we want to perform different handles. Just call client.on(Room.Timeline. Listeners run in the order they're defined. I think this is the preferred pattern. We don't need to put everything into Room.Timeline.
I think theres an opportunity to listen to the syncing event too which would be ideal in another PR


Error when building with master

Compiler message:
file:///Users/michal/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_plugin_pdf_viewer-1.0.6/lib/src/page.dart:33:26: Error: The argument type 'Null Function(dynamic, dynamic)' can't be assigned to the parameter type 'ImageStreamListener'.

'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/michal/Development/flutter/packages/flutter/lib/src/painting/image_stream.dart').
Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
resolver.addListener((imgInfo, alreadyPainted) {

Same issue here.

Same issue.

Same issue.

After checking the plugin source code and flutter source, I found that the ImageStream.addListener() interface is changed and cause this issue.
Basically you have to change the below dart file,
flutter_plugin_pdf_viewer/lib/src/page.dart line 30~36 to :
  _repaint() {     provider = FileImage(File(widget.imgPath));     final resolver = provider.resolve(createLocalImageConfiguration(context));     resolver.addListener(ImageStreamListener((imgInfo, alreadyPainted) {       if (!alreadyPainted) setState(() {});     }));   }
This would solve the issue. However, if your flutter version is >= 1.59, then you will meet another issue https://github.com/flutter/engine/commit/2c9e37c which crash your app when you open a PDF file. (To call Java MethodChannel code to be exact).
The reason is this plugin creates a thread to handle each Channel Method Call (It is currently OK to do that in flutter stable channel v1.5.4, but changed in master/dev branch).
As for now, my workaround is to do the Channel Method Call in main thread, by remove the thread creation. (As commented in the below code in android/src/main/java/pt.tribeiro.flutter_plugin_pdf_viewer/FlutterPluginPdfViewerPlugin.java)
    @Override     public void onMethodCall(final MethodCall call, final Result result) {      //   Thread thread = new Thread(new Runnable() {     //        @Override       //      public void run() {                 switch (call.method) {                     case "getNumberOfPages":                         result.success(getNumberOfPages((String) call.argument("filePath")));                         break;                     case "getPage":                         result.success(getPage((String) call.argument("filePath"), (int) call.argument("pageNumber")));                         break;                     default:                         result.notImplemented();                         break;                 }       //      }       //  });       //  thread.start();     }
This would make your App 'runnable' again, but then since the PDF file handling is running on the main thread instead of async, you could probably notice lagging if you are opening large PDF file with many pages.

@tamhiupanTam yes, i found this code return null.
in flutter_plugin_pdf_viewer/lib/src/page.dart file, i comment this code, but when open pdf file , the app is crash,  The reason is because the UI is updated in the child thread
//final resolver = provider.resolve(createLocalImageConfiguration(context));
//resolver.addListener(ImageStreamListener((imgInfo, alreadyPainted) {
//    if (!alreadyPainted) setState(() {});
//}));

@mofada
You should not comment these line of code as it has already resolved the original issue. Update below file :
flutter_plugin_pdf_viewer/lib/src/page.dart line 30~36 to :
        provider = FileImage(File(widget.imgPath));
    final resolver = provider.resolve(createLocalImageConfiguration(context));
    resolver.addListener(ImageStreamListener((imgInfo, alreadyPainted) {
      if (!alreadyPainted) setState(() {});
    }));
  }

For the second issue you might have encountered for flutter version is >= 1.59,
you would probably hit the below error:
E/AndroidRuntime( 5859): java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread. Current thread: Sqflite
E/AndroidRuntime( 5859): 	at io.flutter.embedding.engine.FlutterJNI.ensureRunningOnMainThread(FlutterJNI.java:794)
E/AndroidRuntime( 5859): 	at io.flutter.embedding.engine.FlutterJNI.invokePlatformMessageResponseCallback(FlutterJNI.java:727)
E/AndroidRuntime( 5859): 	at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:140)
E/AndroidRuntime( 5859): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:225)
E/AndroidRuntime( 5859): 	at android.os.Handler.handleCallback(Handler.java:873)
E/AndroidRuntime( 5859): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/Androiduntime( 5859): 	at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime( 5859): 	at android.os.HandlerThread.run(HandlerThread.java:65)

Below is a better solution for this, (Better than my original proposal which is to run everything on UI thread).
The idea is to run the java code in background thread, but return the final result using UI thread.
Update android/src/main/java/pt.tribeiro.flutter_plugin_pdf_viewer/FlutterPluginPdfViewerPlugin.java

Add a few imports

import android.os.HandlerThread;
import android.os.Process;
import android.os.Handler;

Add a few local properties

    private HandlerThread handlerThread;
    private Handler backgroundHandler;
    private final Object pluginLocker = new Object();

Update public void onMethodCall(final MethodCall call, final Result result)
(For just POC sake, I just use the most strict forward way to fix it without refactoring)

@Override
    public void onMethodCall(final MethodCall call, final Result result) {
        synchronized(pluginLocker){
            if (backgroundHandler == null) {
                handlerThread = new HandlerThread("flutterPdfViewer", Process.THREAD_PRIORITY_BACKGROUND);
                handlerThread.start();
                backgroundHandler = new Handler(handlerThread.getLooper());
            }
        }
        final Handler mainThreadHandler = new Handler();
        backgroundHandler.post(
                new Runnable() {
                    @Override
                    public void run() {
                        switch (call.method) {
                            case "getNumberOfPages":
                                final String numResult = getNumberOfPages((String) call.argument("filePath"));
                                mainThreadHandler.post(new Runnable(){
                                    @Override
                                    public void run() {
                                        result.success(numResult);
                                    }
                                });
                                break;
                            case "getPage":
                                final String pageResult = getPage((String) call.argument("filePath"), (int) call.argument("pageNumber"));
                                mainThreadHandler.post(new Runnable(){
                                    @Override
                                    public void run() {
                                        result.success(pageResult);
                                    }
                                });
                                break;
                            default:
                                result.notImplemented();
                                break;
                        }
                    }
                }
        );
    }

I'm still getting the same error, although I must be doing something wrong. Can the owner of this either merge this change in, or @tamhiupanTam can you please creating a branch of this that we can add in to get it working properly for everyone?

@EricPreventa
As requested, I have created a fork of this repository and push the changes, you may try to change the dependency to below:
  flutter_plugin_pdf_viewer:
    git:
      url: git://github.com/tamhiupanTam/flutter_plugin_pdf_viewer

I have only tested it with android emulator with below flutter version
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, v1.8.1-pre.44, on Microsoft Windows [Version 10.0.17134.829], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Chrome - develop for the web
[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
[√] Android Studio (version 3.4)
[√] Connected device (3 available)

Let me know if it works for you.  :)

@tamhiupanTam  It's working. I had to change from:

url: git://github.com/tamhiupanTam/flutter_plugin_pdf_viewer

to

url: https://github.com/tamhiupanTam/flutter_plugin_pdf_viewer

Guys, can you also upgrade path_provider dependency ? I am using flutter_map which requires higher version:
Because every version of flutter_plugin_pdf_viewer from git depends on path_provider ^0.5.0 and flutter_map ^0.5.6 depends on path_provider ^1.1.0, flutter_plugin_pdf_viewer from git is incompatible with flutter_map ^0.5.6.

and then next Because every version of flutter_plugin_pdf_viewer from git depends on flutter_cache_manager ^0.3.2 and cached_network_image >=1.0.0 depends on flutter_cache_manager ^1.0.0, flutter_plugin_pdf_viewer from git is incompatible with cached_network_image >=1.0.0.

Can you fix pubspec.yaml ?

Agree with @MichalMisiaszek, unless something will break, dependencies should be updated to be using the latest ones. path_provider is using a very old version for instance.
Thanks @tamhiupanTam for fixing that as well. Huge help. I'll be testing it on the iOS side shortly.

I had to force:
  path_provider: ^1.1.0
  flutter_cache_manager: ^1.0.0```

And it compiled with master

It'll be awesome of @CrossPT could merge these changes and update the versioning of it so that others can absorb this fantastic updates. Likewise with pushing it to pub.dev so it's easy to add in the pubspec.yaml

@MichalMisiaszek how exactly did you force it? Did you just list the dependencies in your pubspec or do something else to actually "force it"?

Updated answer above.

@MichalMisiaszek how exactly did you force it? Did you just list the dependencies in your pubspec or do something else to actually "force it"?

It'll be awesome of @CrossPT could merge these changes and update the versioning of it so that others can absorb this fantastic updates. Likewise with pushing it to pub.dev so it's easy to add in the pubspec.yaml

Sorry, had some personal issues. I'll update ASAP the plugin.


Blog images are broken due to Notion S3 expiring links

Is there any plans for this feature how it could be implemented?


feat: retry connect to meta until meta online

What's changed and what's your intention?
As title. This PR fixes #3065, but we still need to implement gRPC health check protocol mentioned in #41.
Please explain IN DETAIL what the changes are in this PR and why they are needed:

Summarize your change (mandatory)
How does this PR work? Need a brief introduction for the changed logic (optional)
Describe clearly one logical change and avoid lazy messages (optional)
Describe any limitations of the current code (optional)
Add the 'user-facing changes' label if your PR contains changes that are visible to users (optional)

Checklist

[x] I have written necessary docs and comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)
Resolve #3065 #295

I remembered that we have retry logic in Frontend/CN when connect to meta?

Nope, only the legacy Frontend does. 😂 Currently, FE/CN will panic when meta is not online.

LGTM. BTW, I remember the purpose of moving these RPC interfaces into a separate crate is to implement a generic retry strategy for them. Any further idea on this? 🤣

Not really. 🤣 Well I'm not sure about this. NTFS.


qBittorrent: ensure checksum gets captured

Without the parens around \w+ in the regex, the checksum value doesn't actually get captured for the variable. This fix should correct generation of the qBittorrent package.
Fixes #307

@coldacid thank you for your contribution!


Error while building Dockerfile

[13/13] Completed 'SymRuntime'
/workspace/CoFuzz/third_party/vaidya-walk/code /workspace/CoFuzz/third_party/concolic/qsym /workspace/CoFuzz/third_party/concolic /workspace/CoFuzz/third_party/z3/build /workspace/CoFuzz/third_party/z3 /workspace/CoFuzz /workspace/CoFuzz/fuzzer /workspace/CoFuzz
Traceback (most recent call last):
  File "setup.py", line 8, in <module>
    import numpy
ModuleNotFoundError: No module named 'numpy'
cp: cannot stat 'pwalk.py': No such file or directory

So RUN python3 -m pip install numpy before helps

Also need scikit-learn z3 six tqdm modules to run cofuzz.py


record scaling history

[#119505611]

add histroyDB interface to save and retrieve scaling history
REST API to get scaling history
Store scaling history when there is scaling action
other refactoring

committed the changes based on your comments.  pls review.

Merged


Please advice: Single PaDES-url for multi-signature scenario?

We are in the process of implementing a multi-signature scenario for direct flow, where each document needs to get signed by two parties. When first signer completes the signing process, we will provide her with a copy of the signed document using the pades-URL we obtain from Posten signering.
Our question is: will the second signing operation make the first pades-URL obsolete, or may the first pades-URL be used to obtain a copy of the signed document at any time in the future regardless of whether or not more signatures have been added?

You should use the last PAdES-URL to get the signed document and it is valid for 40 days, or forever if you have activated long-term validation.

Closing this issue due to no activity.


Topic/toml v4

This fixes up almost all of the tests, and gives newline tables and underscores in numbers, so it also makes it compatible with TOML v4 as far as I can tell.

All tests now work.

Sorry, I've been not paying enough attention -- my bad. I'll look into this shortly.

Merged it in, I'll update the CHANGELOG and bump the version of the package (you have broken/improved the API a little). Not sure if I will push to Hackage already, I want to meditate a bit on the changes you've made to the Types first (maybe we can discuss). Thanks!


Get chart SQL with API

Is there any way to get SQL chart based on through the API?
If no - would be great and helpful to have it

@supermarin1 can you explain in more detail what you want to do? Do you want a rendered chart via an API, or the SQL that's used to retrieve the data for the cart?

I'm interested in SQL that's used to retrieve the data for the chart

Hope this can help you.

Thanks for the help @maltoze ! Closing for now as this is really a question, not a bug, and can be better addressed in Discussions.

created https://github.com/apache/superset/discussions/14134


Potential Project Partnership

Hi, your work stands out to me. I have an interesting idea I'd like to share. Can we talk?
Telegram: @vereckel1
Discord: vereckel
WhatsApp: +44 7341 822373

This is not an appropriate forum for such inquiries.


SA0102 error for async local function

Similar to #109, a syntax error is shown for an async local function.
Example:
private async Task SomeMethod()
{
   async Task Wait()
   {
      await Task.Delay(1000);
   }

   await Wait();
}

Duplicate of  #151


Collection Gallery Image low quality

What happened?
The collection image is low res and looks bad

https://kodadot.xyz/ahk/collection/110
and other collections too. I am on a retina mac and to my knowledge to be sharp the image would need a 2x height = 1120px for a displayed height of 560px
@preschian
Please reproduce in steps
see above
Expected Behavior
sharp images
What browsers are you seeing the problem on?
Chrome, Firefox, Safari
At which address did you encounter bug?
kodadot.xyz
Are you logged in?
Yes
Which wallet you are using?
PolkadotJS
Screenshots
see above
Relevant log output
No response
Payment link for reward
https://kodadot.xyz/ksm/transfer/?target=DT7kRjGFvRKxGSx5CPUCA1pazj6gzJ6Db11xmkX4yYSNK7m
Code of Conduct

[X] I agree to follow this project's Code of Conduct

For me its still low quality: https://kodadot.xyz/ahk/collection/115

can you merge to main?

can you merge to main?

It has already been merged to main but it looks like issue is still present.
Original image should be:

https://ipfs.io/ipfs/QmQVyZs6MkriKwujNKVEZYoDP25RqpvU41EzE9mABxdNJD (ipfs/QmQVyZs6MkriKwujNKVEZYoDP25RqpvU41EzE9mABxdNJD)
https://image.w.kodadot.xyz/ipfs/QmQVyZs6MkriKwujNKVEZYoDP25RqpvU41EzE9mABxdNJD?original=true

Nvm i've deployed image worker on prod and it's fixed.


[#14] Add deps.edn support with prep-lib and kaocha tests

Fixes #14 .

Codecov Report
Base: 94.52% // Head: 94.57% // Increases project coverage by +0.05% :tada:

Coverage data is based on head (f00a9c9) compared to base (bd2cee1).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #17      +/-   ##
==========================================
+ Coverage   94.52%   94.57%   +0.05%
==========================================
  Files           8        8
  Lines         584      590       +6
  Branches       12       12
==========================================
+ Hits          552      558       +6
  Misses         20       20
  Partials       12       12

Impacted Files
Coverage Δ

src/clojure/dialog/format/pretty.clj
100.00% <100.00%> (ø)

src/clojure/dialog/format/simple.clj
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

when using the library from git, you will need to prep it:
I am using it in a dev alias so for me it's
clj -X:deps prep :aliases '[:dev]'


Fallback to ctime when mtime is not available

as can be the case with the nix store, when checking if command file was updated. I know ctime is the inode change time of the file, not its "creation" time, but the birth time is not standard nor available via zstat, so ctime is the best alternative we have. Also, the nix store should create a new subdirectory with new files for a new package version.
Fixes #1

[x] I've followed Zim's code style guidelines.

@antoineco this is what I've come up with when thinking further about #1.
An alternative would be opening an issue with nix, as them letting a file mtime be 1 is odd.

That would work on macOS. Have you verified that ctime was set correctly on Linux?.

It was the other way around, the output of the stat command I shared in #1 was from a Linux machine.
On macOS the ctime is also set correctly for files in the Nix store:
% stat -x /nix/store/bvg8w1yxnph29yrv2qdjqi7fj39jyld5-direnv-2.35.0/bin/direnv
  File: "/nix/store/bvg8w1yxnph29yrv2qdjqi7fj39jyld5-direnv-2.35.0/bin/direnv"
  Size: 8667280      FileType: Regular File
  Mode: (0555/-r-xr-xr-x)         Uid: (    0/    root)  Gid: (30000/  nixbld)
Device: 1,13   Inode: 26393793    Links: 1
Access: Mon Dec 23 12:06:55 2024
Modify: Thu Jan  1 01:00:01 1970
Change: Sat Nov 16 15:16:12 2024
 Birth: Thu Jan  1 01:00:01 1970


Method play() could return a promise allowing to execute code on play end

Hello,
I know that we can $watch play progress, but it doesn't match my use case.
I have a very short mp3 sound.
Each time the user executes an action, the sound must be played.
Execution sequence can be really fast.
If user is fast enough he can execute his action 3 times in a row, triggering play() 3 times but hearing the sound only 2 times. I think it's because if we hit play() on a sound not yet over, the command is missed.
So, what if play() returned a promise that would be resolved at play end?

Hey Reda.
I'm not sure a promise makes sense here.
Would a method on the audioObject, say, .end(cb) work? It would sort of be like this:
var sound = ngAudio.load('mySound.mp3');
sound.play().end(()=>{console.log('this is the end of the sound')};

Hello,
A callback would be good to ;)

@danielstern Hi, How can I auto shuffle a songs list after each song finished? Thanks you...
I use .complete() method but got error Maximum call stack size exceeded
    vm.shuffle = () => {
      if (vm.audio) {
        vm.audio.pause();
        vm.audio.unbind()
      }
      vm.selectedMusic = sample(vm.musics);
      vm.audio = ngAudio.load(vm.selectedMusic.url);
      vm.audio.play();
      vm.audio.complete(vm.shuffle());
    };


Zoom level indicator/selector

Add a zoom level indicator/selector similar to the one in VS 2022.

It would be nice if you have provided a screenshot for us who don't own VS.
Did you take a look at my suggestion for customizable title bar (#146331)? I mentioned one solution with the nice zoom slider in the title bar.

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

It would be nice if you have provided a screenshot for us who don't own VS.
Did you take a look at my suggestion for customizable title bar (#146331)? I mentioned one solution with the nice zoom slider in the title bar.

I have voted for yor issue. Generally like many other applications VS has a combobox with a list of zoom levels. I would prefer that over a slider. It takes less space displays the exact value.

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Playing video from remote source

My final goal is to stream UE4 pixel streaming output (which uses WebRTC) directly into Unity using this wonderful library. I have figured out the signalling by investigating the client side javascript of the pixel streaming web server. The offer sdp from unity is this ->
o=-<PHONE_NUMBER>684278701 2 IN IP4 <IP_ADDRESS>
s=-
t=0 0
a=group:BUNDLE 0 1
a=msid-semantic: WMS
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
c=IN IP4 <IP_ADDRESS>
a=rtcp:9 IN IP4 <IP_ADDRESS>
a=ice-ufrag:GsFB
a=ice-pwd:YYdHkh1e5pwDBWOoPoUwyKZ3
a=ice-options:trickle
a=fingerprint:sha-256 DB:C0:BE:0E:56:C1:B0:A8:F2:99:2C:2E:CF:09:EC:32:EC:7E:F1:59:D2:34:D7:25:87:03:65:5C:CC:01:62:FC
a=setup:actpass
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=recvonly
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
c=IN IP4 <IP_ADDRESS>
a=rtcp:9 IN IP4 <IP_ADDRESS>
a=ice-ufrag:GsFB
a=ice-pwd:YYdHkh1e5pwDBWOoPoUwyKZ3
a=ice-options:trickle
a=fingerprint:sha-256 DB:C0:BE:0E:56:C1:B0:A8:F2:99:2C:2E:CF:09:EC:32:EC:7E:F1:59:D2:34:D7:25:87:03:65:5C:CC:01:62:FC
a=setup:actpass
a=mid:1
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:10 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 x-google-profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 multiplex/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 acn=VP9;x-google-profile-id=0
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=127
a=rtpmap:125 ulpfec/90000

But the pixel streaming server fails to send an answer, and shuts down the connection with the message Failed to set remote offer sdp: Failed to set remote video description send parameters..
The offer sdp from the browser (which seems to work and the pixel streaming server returns an answer promptly) is as follows :
o=-<PHONE_NUMBER>286021740 2 IN IP4 <IP_ADDRESS>
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=msid-semantic: WMS stream_id
m=audio 9 UDP/TLS/RTP/SAVPF 111 110
c=IN IP4 <IP_ADDRESS>
a=rtcp:9 IN IP4 <IP_ADDRESS>
a=ice-ufrag:QBL2
a=ice-pwd:69soRBZjafxCU+yBjux/ajin
a=ice-options:trickle
a=fingerprint:sha-256 7A:98:B6:98:5C:37:79:B7:87:E0:DD:51:48:4A:F1:44:0A:7C:1B:07:B8:1A:53:B2:62:83:0B:E5:1A:E7:59:8A
a=setup:active
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=sendonly
a=msid:stream_id audio_label
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:110 telephone-event/48000
a=ssrc:3696450137 cname:xiCSXrDBl38Agepp
a=ssrc:3696450137 msid:stream_id audio_label
a=ssrc:3696450137 mslabel:stream_id
a=ssrc:3696450137 label:audio_label
m=video 9 UDP/TLS/RTP/SAVPF 125 107 114 115 116
c=IN IP4 <IP_ADDRESS>
a=rtcp:9 IN IP4 <IP_ADDRESS>
a=ice-ufrag:QBL2
a=ice-pwd:69soRBZjafxCU+yBjux/ajin
a=ice-options:trickle
a=fingerprint:sha-256 7A:98:B6:98:5C:37:79:B7:87:E0:DD:51:48:4A:F1:44:0A:7C:1B:07:B8:1A:53:B2:62:83:0B:E5:1A:E7:59:8A
a=setup:active
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:12 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=sendonly
a=msid:stream_id video_label
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e033
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:114 red/90000
a=rtpmap:115 rtx/90000
a=fmtp:115 apt=114
a=rtpmap:116 ulpfec/90000
a=ssrc-group:FID<PHONE_NUMBER> 670277948
a=ssrc:3233574813 cname:xiCSXrDBl38Agepp
a=ssrc:3233574813 msid:stream_id video_label
a=ssrc:3233574813 mslabel:stream_id
a=ssrc:3233574813 label:video_label
a=ssrc:670277948 cname:xiCSXrDBl38Agepp
a=ssrc:670277948 msid:stream_id video_label
a=ssrc:670277948 mslabel:stream_id
a=ssrc:670277948 label:video_label
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 <IP_ADDRESS>
b=AS:30
a=ice-ufrag:QBL2
a=ice-pwd:69soRBZjafxCU+yBjux/ajin
a=ice-options:trickle
a=fingerprint:sha-256 7A:98:B6:98:5C:37:79:B7:87:E0:DD:51:48:4A:F1:44:0A:7C:1B:07:B8:1A:53:B2:62:83:0B:E5:1A:E7:59:8A
a=setup:active
a=mid:2
a=sctp-port:5000

What am I missing? I am quite stuck at what needs to be done. One of my wild guesses is that the unity side does not support the codec (h264) the ue4 side is sending? I am not sure. Setting PeerConnection.Peer.PreferredVideoCodec = "H264"; causes unity to say ArgumentException: Value does not fall within the expected range. when creating the offer.

Hi @gamedolphin
I am not familiar with "pixel streaming web server" of UE4 (do you have a link please, out of curiosity?)
Your first SDP offer doesn't list H.264 as a supported video codec, so it makes sense that you get an ArgumentException when trying to force it. I don't remember in detail how it works on Desktop nor why H.264 is not available from the Google software codec implementation, but I know the Media Foundation one provided by webrtc-uwp-sdk is only available for UWP, so can't be used in the Unity editor.
Now for the issue, my (wild) guess is also that there is no compatible codec between the two peers. To confirm that it would be interesting to see the actual answer message in the case where it works, to see what video codecs the server supports. If it supports only H.264 then that's why it doesn't work.

Hey! Thank you for the prompt reply. Will inserting a a=rtpmap:125 H264/90000 work? 😬 Anyway, for reference, UE4 Pixel Streaming is here - https://docs.unrealengine.com/en-US/Platforms/PixelStreaming/index.html

This is the answer for the browser when connecting using chrome -
v=0
o=-<PHONE_NUMBER>811065345 2 IN IP4 <IP_ADDRESS>
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=msid-semantic: WMS stream_id
m=audio 9 UDP/TLS/RTP/SAVPF 111 110
c=IN IP4 <IP_ADDRESS>
a=rtcp:9 IN IP4 <IP_ADDRESS>
a=ice-ufrag:TmiO
a=ice-pwd:8Pgt6p99jjFLhvFQk3KB09bw
a=ice-options:trickle
a=fingerprint:sha-256 D8:34:86:F2:C9:EF:B3:5A:DC:B4:36:3B:3B:F6:9D:A2:87:35:E8:06:93:EC:D5:94:E7:72:F3:97:B0:E4:CC:1F
a=setup:active
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=sendonly
a=msid:stream_id audio_label
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:110 telephone-event/48000
a=ssrc:1620706015 cname:gQpgtB6hMAKYBLaq
a=ssrc:1620706015 msid:stream_id audio_label
a=ssrc:1620706015 mslabel:stream_id
a=ssrc:1620706015 label:audio_label
m=video 9 UDP/TLS/RTP/SAVPF 125 107 114 115 116
c=IN IP4 <IP_ADDRESS>
a=rtcp:9 IN IP4 <IP_ADDRESS>
a=ice-ufrag:TmiO
a=ice-pwd:8Pgt6p99jjFLhvFQk3KB09bw
a=ice-options:trickle
a=fingerprint:sha-256 D8:34:86:F2:C9:EF:B3:5A:DC:B4:36:3B:3B:F6:9D:A2:87:35:E8:06:93:EC:D5:94:E7:72:F3:97:B0:E4:CC:1F
a=setup:active
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:12 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=sendonly
a=msid:stream_id video_label
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e033
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:114 red/90000
a=rtpmap:115 rtx/90000
a=fmtp:115 apt=114
a=rtpmap:116 ulpfec/90000
a=ssrc-group:FID 611003714 425136751
a=ssrc:611003714 cname:gQpgtB6hMAKYBLaq
a=ssrc:611003714 msid:stream_id video_label
a=ssrc:611003714 mslabel:stream_id
a=ssrc:611003714 label:video_label
a=ssrc:425136751 cname:gQpgtB6hMAKYBLaq
a=ssrc:425136751 msid:stream_id video_label
a=ssrc:425136751 mslabel:stream_id
a=ssrc:425136751 label:video_label
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 <IP_ADDRESS>
b=AS:30
a=ice-ufrag:TmiO
a=ice-pwd:8Pgt6p99jjFLhvFQk3KB09bw
a=ice-options:trickle
a=fingerprint:sha-256 D8:34:86:F2:C9:EF:B3:5A:DC:B4:36:3B:3B:F6:9D:A2:87:35:E8:06:93:EC:D5:94:E7:72:F3:97:B0:E4:CC:1F
a=setup:active
a=mid:2
a=sctp-port:5000

Minor update -> replacing a=rtpmap:98 VP9/90000 with a=rtpmap:98 H264/90000 along with the setting a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e033 seems to have convinced the remote client to finally send the video track and the webrtc connection state gets updated to connected. BUT OnTrack is not called in the unity editor. I have been digging into the c++ code to see what exactly triggers it.

Are you replacing in the answer only? If so then the peers won't be in sync because the offering side will not know about your change, which I assume you do after calling SetLocalDescription().
I am confused by your SDP messages. You pasted in your first message, second block an "offer from the browser", which implies the browser initiates the connection and the answer comes from the UE4 pixel server. Then in a later message you pasted the "answer for the browser"; is that the one coming from the UE4 server? Because they look suspiciously similar (only some password/fingerprint differ), and both list e.g. rtx/90000 which is also offered by Unity (see your first block), so this codec at least should be compatible with all peers and should be selected as fallback if H.264 or others are not supported by all peers.

Im sorry for the late reply. Yes "answer for browser" is the reply from the ue4 server. I've been exploring other options to transcode the stream to vp8/vp9, with not much luck.
Is there a way to replace the webrtc base plugin to use a custom compiled one with h264 support on the editor?

There are issues with that. H.264 supports on UWP comes from code in the WebRTC UWP project, and doesn't work with Desktop as is. Alternatively, Google has some H.264 software encoder, but it needs ffmepg I think, and is compiled out by default due to licensing limitations. So you would have to basically recompile everything from scratch, including the Google impementation, the WebRTC UWP project, and this project, and make somewhat significant changes to all of them. That sounds like a prohibitive amount of work, and we cannot offer any support for it nor guarantee it will even work. So the basic answer is no, there is no simple way to do that at the moment.
It seems the UE4 offer only contains H.264, so the two are just not compatible. You could have some implementation for UWP in Unity, which would work, but I don't see any simple path forward for the Unity Editor and other non-UWP platforms.


order artifacts generation

To ensure apps come up faster the order in which we provide artifacts to cluster does matter. So ordering the artifacts such that non-controllers are first in the list and controllers come up later.
Fixes #207

I tried running e2e tests with the binary built on this code, it ran the entire test suite in just 114 seconds where it used to take more than 250 seconds before

for some reason coveralls complains, even though no new code was added in this PR!

ping @kadel

You added new lines of the code that are not covered by any tests, so its OK for coveralls to complain

It looks like coveralls is counting also comment lines :-)


Update About field the in GitHub

Expected behavior
Add a Description and Website link in GitHub's about field
eg.

https://github.com/apple/swift-markdown

https://github.com/apple/swift-docc-plugin

Suggested change
Description:
swift-testing is a modern, open-source testing library for Swift with powerful and expressive capabilities.

Website:
https://swiftpackageindex.com/apple/swift-testing/main/documentation/testing

Current behavior
Empty about field. And people have to scroll to the bottom to find out the documentation page.

The change can't be made by PR because the metadata is on GitHub not the repository.
It can only be changed by the someone who has edit permission of the repo.

Thank you for pointing this out! I have added a description to the repository. We've decided to hold off on including a URL for now, but may revisit this later.

We've decided to hold off on including a URL for now, but may revisit this later.

I guess you may host swift-testing's official documentation elsewhere when it reaches 1.0 release and is landing into the toolchain release.(eg. apple.github.io / developer.apple.com or continue to use SwiftPackageIndex)
But since we still use SPI in README currently. I see no harm adding this link to GitHub about field.


Segmentation Fault after successful display of demo images

I added a plt.close('all') at the end and it closed properly.
Regards,

Has your problem been solved? I meet the same problem.


Fixed 186 postags that were too long

All instances were an extra hyphen in the 10th index. The extra hyphens were removed.

This looks good to me. @aniseferreira what do you think?

Yes, it does.
Thanks, Zach and Chris
Em ter., 7 de fev. de 2023 às 21:53, Zachary Fletcher <
@.***> escreveu:

This looks good to me. @aniseferreira https://github.com/aniseferreira
what do you think?
—
Reply to this email directly, view it on GitHub
https://github.com/perseids-publications/unesp-trees/pull/4#issuecomment-1421719261,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACXC3H6UBUU266STM6JR3ALWWLU6ZANCNFSM6AAAAAAUT6NTPM
.
You are receiving this because you were mentioned.Message ID:
@.***>


Hatch Rest Mini unable to be added

This used to work, one day it stopped.  Today is the day I decided to try to make it work again.  I removed the HACS integration, re-added it, and when I went to configure it, I'm getting "Config flow could not be loaded:  500 Internal Server Error Server got itself in trouble.
Help?

Resolved:  Updated Home Assistant and HACS integration.


Added feature to save sidebar open states

https://github.com/kaishuu0123/leavepad/commit/29c70c56c224aafa1de8ff5973802b3d4c8d2e69