Not using averages calculated from the data for visualizations...yet?

@olafveerman, I put the comment here instead of the data format area - seemed more fitting? Let me know if you/anyone feels it would go better elsewhere after checking it out.
Why not using averages calc'ed from data right now could be a good idea:
I think, in the short term, we may want to stay away from generating averages (e.g. weekly, monthly, daily-unless the raw data is shared that way, etc.)  from data aggregated to OpenAQ. It seems like it would be a ton simpler for us at this stage. And I think it puts us in tricky waters to do correctly or even completely transparently, given a) it's a bit out of our scope to properly perform QA/QC, b) we aren't always clear on some of the whole time average/reporting interval thing from the sources themselves, c) would have to come up with other criteria to begin to do this (e.g. for a given time interval, do we need 70% of data reporting? 80%? 50%?), and d) as @olafveerman, some of this meta data, even if we have it captured, is hard-coded in and could change over time.
For that reason, perhaps we just stick to visualizing the data as it is. I think as others do use the data besides us and publish it in peer-reviewed forums, etc., we can see what people converge upon for good practices with this kind of data aggregated in this manner. Or we can eventually decide to come up with a way to do this ourselves. But perhaps not worry about it now, at this stage.
The cons to this:
I personally think that averages of our data over varying time intervals will be some of the most important and interesting stuff that comes out of our platform. It sounded like several users though that too?
What not using averages at this time could mean for capturing the historical data on a map
I know for the map, the idea is to show data historically, and averages are one way to do that. And obviously my video idea of showing a timelapse of how data changes over time also wasn't really feasible.
But what about just letting click a specific time to show? Just making up a way to do that for the sake of illustration (and in no way implying this is a particularly good way to do this), but imagine a calendar and a clock icon that let you pick a date and time. So maybe I click through different dates at the same time every day, and I see, by eye, how the map changes. Or I do the converse, and stay at the same date, but click through the different hours of the day on a single day.
Thoughts about staying away from long-term averaging for now?
And/or thoughts about how to still capture historical data on the map and not doing the weekly, monthly, x-ly averaging?
cc: @olafveerman @ascalamogna @danielfdsilva @jflasher

I like the idea of not doing the averages right now, think it frees up some time to think about some of the other items. I think it'll also simplify the frontend a bit. I think being able to pick a certain point in time for the map would be great too. For the API, we currently do a date range, so there'd be a little code weirdness to get the value at one particular time, but it could be done, if that's what we wanted to go with.

Yes, same here. It will allow us to focus on other elements in the re-design.

Awesome, sounds good and thanks!


Added 5 questions related to Computer Science (4 algorithms related and 1 general)

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)

Closes #XXXXX

Changes include:

4 questions related to data structures and algorithm
1 general question

I have implemented the requested changes except one (I have added a comment for this). Please review.
And sorry for the silly mistakes.


Whfhri 606 1100

PR Requirements:

[ ] The code must be reviewed by at least one Maintainer
[ ] JIRA Ticket: https://jira.wh-sdlc.watson-health.ibm.com/browse/JIRA_TICKET_HERE
[ ] 90 % test code coverage
[ ] README updates

Issue with Merge


How to Implement only ReLU without using convolutions (1d)

I wanted to implement only the ReLU activation without using operations like convolution. For example, lets say, I want to add two conv1d outputs and then apply ReLU. It raises the error "Activations cannot be used with passthrough layers". As an alternative method, can I use Identity 1D conv with ReLU?

Yes, activations can be used when convolutions are used. There are some corner cases of element wise + convolution that are unsupported but the tool should tell you whether it's expected to work.

@rotx-maxim So, does that mean I can't use the ReLU activations without the convolutions?
Also, is the below implementation of onlyReLU class correct?
`class FusedReLUonly(Conv1d):
"""
ReLU Activation Function
"""
def init(self, *args, **kwargs):
super().init(*args,kernel_size=1, activation='ReLU', **kwargs)
# Initialize weights to 1
self.op.weight.data.fill_(1.0)
    # Make weights non-trainable
    for param in self.op.parameters():
        param.requires_grad = False`

The idea is the identity convolution will have kernel size 1, pass the input to output without any change, and then apply ReLU activation. Here the convolution weights should be equal to 1 and should not update the weights during training.

Hi @rotx-maxim, I think I got it to work.
`class FusedReLUonly(Conv1d):
def init(self,in_channels, *args, **kwargs):
super().init(in_channels,*args, activation='ReLU', **kwargs)
# Initialize weights to 0
nn.init.zeros_(self.op.weight)
# set identity kernel
self.op.weight.data[:, :, 0] = torch.eye(in_channels, in_channels)
    # Make weights non-trainable
    for param in self.op.parameters():
        param.requires_grad = False
    print(self.op.weight.requires_grad)`

Hello,
The approach you proposed works well for model training until Quantization Aware Training starts. As the layer weights will be quantized in that mode, the 1s in your model will be replaced by 0.9921875(=127/128)s as all the 8-bit values {-128, -127, -126, …, 126, 127} in the hardware corresponds to floating point numbers [-128.0/128, -127.0/128.0, -126.0/128.0, 126.0/128.0, 127.0/128.0]. So you may observe slightly different results than having a ReLU activation layer.
For your case, it is better to use a regular nn.ReLU layers when you need ReLU activation without a conv layer. However, you need to add an extra layer to the model checkpoint at the model synthesis step. The 'add_fake_passthrough.py' utility does this operation and there is an example usage here.  This utility adds  an 'identity layer' after the specified layer of a model checkpoint. So, you will have the exact ReLU layer at the quantized model…
Note that, you have to add the fake passthrough layers to the yaml file of the model, which will be used to synthesize the model for the hardware, and add ReLU as the activation of that layer ('activate: ReLU').

Hi @ermanok,
I appreciate your quick response. I understand the use of a fake passthrough to use ReLU. My setup is that I am using MAX78002 and the model I am training is 1d model for time series classification. When I train with the above ReLU class, although my training AUC is good my evaluation result is poor performance. I think the main reason is the use of self.quantize in evaluation. When I remove it the evaluation result in performance similar to the training. Is the self.quantize important for ReLU class?

self.quantize is required if you want to evaluate your quantized model, which you can have it using the quantize.py utility in the synthesis repo. The model checkpoint you obtained after model training still has floating point weights even the QAT has initiated. Are you sure that you are evaluating the quantized model?

Thanks for the clarification. Yes I am evaluating the quantized model. I am a bit concerned and trying understand where the issue for getting almost zero values as output for evaluation. As I understand, quantization is the process of converting floating point weights from a checkpoint file into fixed-point weights. The ReLU function does not have weights, so can you help me understand why quantization is needed?

Just to be safe. In that mode, the quantization function rounds the numbers as in the hardware so it is guaranteed to have a matched output with the hardware even you have a non integer output before that layer...

Hi @ermanok, Thanks for the help.
I have a different question.  Is it possible that the evaluation performance metrics differ from the on-chip performance metrics? That is, can the model output from evaluation be different from the model output value taken from the inference on the chip for the same input?

They should be exactly same, but if you run the evaluation on GPU, it sometimes produces slightly different outputs. These minor might cause rounding errors at some layers and these rounding errors accumulate until the last layer of the network. For some cases, the accumulated errors may cause different decisions at the output. But when the evaluation is run on CPU, the outputs of the model evaluation and hardware inference should be exactly same..

Thanks for the quick reply.
Below is the evaluation output, when I print the model output values (2 class classification). I have 32 output bits set in the last layer.
==> Sample 8 output softmax: [0.56183845 0.43816155] output: [-0.01205444 -0.26068115] target: 0
==> Sample 9 output softmax: [0.6063965  0.39360353] output: [ 0.0803833  -0.35180664] target: 0
==> Sample 10 output softmax: [0.5462692 0.4537308] output: [-0.01034546 -0.19595337] target: 0
==> Sample 11 output softmax: [0.666334   0.33366603] output: [ 0.14724731 -0.5444031 ] target: 0
==> Sample 12 output softmax: [0.53087497 0.469125  ] output: [ 0.03030396 -0.09335327] target: 0
==> Sample 13 output softmax: [0.38312188 0.61687815] output: [-0.19671631  0.27960205] target: 1

I have changed the sample.py code to print above values and save all the test samples.
import numpy as np

def softmax(x):
    """
    Compute softmax values for each sets of scores in x.
    Implemented by Lochana
    Arguments:
    x -- A numpy array of shape (n,) containing the raw scores

    Returns:
    A numpy array of same shape as x containing the softmax values
    """
    exp_scores = np.exp(x - np.max(x, axis=1, keepdims=True))  # Subtracting the maximum value for numerical stability
    return exp_scores / np.sum(exp_scores, axis=1, keepdims=True)

def generate(
        index,
        inputs,
        targets,  # pylint: disable=unused-argument
        outputs,  # pylint: disable=unused-argument
        dataset_name,
        search=False,  # pylint: disable=unused-argument
):
    """
    Save the element `index` from the `inputs` batch to a file named "sample_`dataset_name`.npy".
    If `search`, then check `outputs` against `targets` until a match is found.
    """
    if index >= len(inputs):
        raise ValueError('--generate-sample index is larger than the data batch size')

    sample_name = 'sample_' + dataset_name.lower()

    # FIXME: Implement search
    found  = False
    if search:
        for i in range(len(inputs)):
            output_softmax = softmax(outputs.cpu().numpy())
            print(f'==> Sample {i} output softmax: {output_softmax[i]} output: {outputs.cpu().numpy()[i]} target: {targets[i]}')
            if found:
                continue
            if ((targets[i]==1) and (output_softmax[i][1]>=0.5)):
                index = i
                print(f'==> Saving sample at index {index} to {sample_name}.npy')
                found = True

    print(f'==> Saving sample at index {index} to {sample_name}.npy')
    x = inputs[index].cpu().numpy().astype('int64')
    x = np.clip(x, -128, 127)
    np.save(sample_name, x, allow_pickle=False, fix_imports=False)

    # print('==> Savings all test samples to testdata_samples folder')
    # for i in range(len(inputs)):
    #     x = inputs[i].cpu().numpy().astype('int64')
    #     x = np.clip(x, -128, 127)
    #     np.save(f'testdata_samples/all_/{sample_name}_'+str(i)+f'_target_{targets[i]}', x, allow_pickle=False, fix_imports=False)

    return False

So when I give the saved sample test files to the chip, should the output from the chip be the same as the output values above (before softmax) but in q17.14 format?

Yes, that is the expected output at the hardware...


OOM leaving VS sitting overnight

F5
Connected to team server
Left VS idling for the night
OOM in the morning

Growing by 1MB per ~10 seconds.

We constantly getting
>	Microsoft.R.Wpf.dll!Microsoft.R.Wpf.Controls.Watermark.OnTextBoxHintChanged(System.Windows.DependencyObject obj, System.Windows.DependencyPropertyChangedEventArgs args) Line 35	C#
 	WindowsBase.dll!System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e)	Unknown
 	PresentationFramework.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e)	Unknown
 	PresentationFramework.dll!System.Windows.Controls.TextBox.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e)	Unknown
 	WindowsBase.dll!System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs args)	Unknown
 	WindowsBase.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex entryIndex, System.Windows.DependencyProperty dp, System.Windows.PropertyMetadata metadata, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, bool coerceWithDeferredReference, bool coerceWithCurrentValue, System.Windows.OperationType operationType)	Unknown
 	PresentationFramework.dll!System.Windows.StyleHelper.ApplyTemplatedParentValue(System.Windows.DependencyObject container, MS.Internal.FrameworkObject child, int childIndex, ref MS.Utility.FrugalStructList<System.Windows.ChildRecord> childRecordFromChildIndex, System.Windows.DependencyProperty dp, System.Windows.FrameworkElementFactory templateRoot)	Unknown
 	PresentationFramework.dll!System.Windows.StyleHelper.InvalidatePropertiesOnTemplateNode(System.Windows.DependencyObject container, MS.Internal.FrameworkObject child, int childIndex, ref MS.Utility.FrugalStructList<System.Windows.ChildRecord> childRecordFromChildIndex, bool isDetach, System.Windows.FrameworkElementFactory templateRoot)	Unknown

so we call EnsureAdorner which calls GetAdornerContent and that always returns null so we go ahead and create new TextBlock

Are there any specific repro steps required?

        private void OnBrokerStateChanged(HostLoad hostLoad) {
            Interlocked.Exchange(ref _hostLoad, hostLoad);
            var args = new BrokerStateChangedEventArgs(hostLoad != null, hostLoad ?? new HostLoad());
            Task.Run(() => BrokerStateChanged?.Invoke(this, args)).DoNotWait();
        }

broadcasts hold load data as 'broker state changed' which causes connection manager to update its UI every time load indicator updates.

This needs different event

Maybe split this event into 2?

One that is raised every 2 minutes and the other one that is raised only when connection is changed?

Yep

Ok, I'll take care of it.

I am almost done.


LUCENE-9909: add checksums of included files for some jflex generation tasks. Fix a task ordering issue with spotless.

This piggybacks TLD update too. And sadly, it's very complex gradle code. Again - I don't know of any way to simplify it and make it correct at the same time.


added functionality to open authorization url in browser

Hi,
I was wondering if you are interested in adding a feature that automatically opens the QR code in user's default browser, so that they don't need to copy/paste in the URL.
Thanks for the package.

Cool, it's useful for users write a terminal program with this package. @miyuchina Can you edit those examples with the new function as well?

Should be working now!

@miyuchina Thanks. What you have done will make it easier and convenient for users.


VictoryBar renders weird values on y, when given [0,0,0,0] to data.

The Problem
When I put data with these values [0,0,0,0] into the VictoryBar, I get weird values on Y axe  you can see that on the picture.

Reproduction
						<VictoryChart> 							<VictoryBar  							data={[0,0,0,0]} 							/> 						</VictoryChart>
same with
						<VictoryChart> 							<VictoryBar  							data={[0,0,0,0]} 							y={() => 0} 							/> 						</VictoryChart>
react-native-svg: ^6.3.1 victory-native": ^0.18.1
Feature Requests
I would like to remove 0 in the Y axe.
So Y would had these values [5,10,15,20].

@linux-wizzard When all of your data is the same, Victory will create a two point domain by padding your single value with a very small number. That's why you're seeing such weird values. You can get around this by adding your own domain prop to VictoryChart


Stuttering on AndroidTV during magasinet

Stuttering in the beginning of magasinet (song performance) Since the panel discussion has started with Kåre and Trond, it hasn't stuttered. But started stuttering again during aksjon panel.
https://github.com/bcc-code/bcc-media-platform/assets/88234679/cbf0c457-daae-406d-b779-fdb4cbf81487
https://github.com/bcc-code/bcc-media-platform/assets/88234679/5696963b-fd3b-4d55-b177-94a47879c4c8

AndroidTV model of user:
65P7GT

@andreasgangso


Zoom with the mouse scroll button always activate when "selection" is enabled

Description

Steps to Reproduce

Create a column chart.
Enable the "selection" option (options -> chart -> selection -> enabled = true).
Disable the "zoom" option (options -> chart -> zoom -> enabled = false AND chart -> toolbar -> tools -> disable all tools related to the zoom).

Expected Behavior
Users should be able to select a range in the column bar, but not zooming the chart.
Actual Behavior
Users can  select a range in the column bar (which is correct), but they also can zooming the chart with the mouse scroll button.
Now, I am using the version 2.52 of the library, in which the zooming with the mouse scroll button is not implemented.
Screenshots

After using the mouse scroll button inside the chart, the second image should not be zoomed.

Reproduction Link

JAVASCRIPT CODE
var options = {
    chart: {
        type: "bar",
        toolbar: {
            show: true,
            tools: {
                download: true,
                selection: true,
                zoom: false,
                zoomin: false,
                zoomout: false,
                pan: false,
                reset: false,
                customIcons: []
            }
        },
        selection: {
            enabled: true,
            type: 'x',
            xaxis: {
                min: 0,
                max: 100,
            }
        },
        zoom: {
            enabled: false
        }
    },
    series: [{
        name: "count",
        data: [
            [0, 50],
            [1, 48],
            [10, 99],
            [50, 75],
            [100, 87]
        ]
    }],
    xaxix: {
        type: 'numeric'
    },
};
var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();

CSS CODE
#chart {
  max-width: 650px;
  margin: 35px auto;
}

HTML CODE
<div id="chart">
</div>

Please provide the require reproduction codepen link. Code snippets do not count.

https://codepen.io/antoniolopezmc/pen/yLmYGoV
Here is the fork  :)

Hi all, same behavior was observed on my side, I had to downgrade the version
(Thank you for taking the time to make this issue 😊)


Add bech32 support + on-screen visualization

We would like to add support for bech32 addresses + on screen visualization.
This will require the following changes. We can plan for that in this issue.

[x] Include Bech32 support
[ ] Ledger API (available to gaia-cli / voyager )

support to show on-screen the public key for a certain HD path
support to show on-screen the bech32 address for a certain HD path

[ ] Adjust corresponding clients

ledger-cosmos-go
ledger-cosmos-js

Optional:

Menu options?:

This requires a convenient way to navigate account/index, etc. It might be confusing and not easy to manage with just two buttons.
public key and address
scroll along the HD index?

Open questions
The following is an initial list of open questions that we need to address in order to finalize the spec:

HRP (Human readable part) handling

Is the HRP stored in the device or passed in every call?
Does the app has a default HRP="cosmos"?
How should we deal with different coins sharing the same HD path branches?
We assume that pub keys are HRP+"pub", etc.. the postfixes follow the SDK standard.

Looking forward to your comments!

@fedekunze do you have some additional feedback on this?

The CLI/REST-side functionality shouldn't be a problem.
Can we make sure this works across networks? I guess setting the HRP every call would be one way to do that - but I wonder if that weakens security somewhat, if an application were to masquerade with another network's HRP. Storing the HRP on the device and allowing it to be set (perhaps with PIN entry) might be better in that aspect. I guess another question is whether we expect users to use the same Cosmos app for several Cosmos networks, or install one app instance per network.

Yes, that was something we discussed with @jackzampolin.
When a ledger app is published, the first X items in the HD path are fixed and restricted by a ledger certificate/signature.
Cosmos networks are not indicated in the HD path, so the cosmos app with access to 44'/118'/.... can sign any cosmos network.
With respect to HRP. We could pass on calls but it is important to keep in mind that:

network X, hrp: 'netx'   path 44'/118'/0'/0/0
network Y, hrp: 'nety'   path 44'/118'/0'/0/0

will share the same public/private keys but their bech32 addresses will look different.

We largely expect that keys will be portable between Cosmos networks. It's possibly that other chains will keep the same HRPs.
I'm trying to think if changing the HRP is a viable mechanism for an attack. My sense is that the HRP is not an attack surface and it would simplify things for app developers if the app accepts any HRP sent by an app.

We probably need to have an API that enables send 2 HRPs. 1 for addresses and 1 for public keys.

I was thought we could use a base HRP and others are created by concatenating: HRP+"pub", etc.

I guess that's a safe assumption.
https://github.com/cosmos/cosmos-sdk/blob/develop/docs/spec/addresses/bech32.md

As discussed in Slack, only addresses will be shown in the user app.

The first round is ready.

The latest version of the Cosmos User app support the feature
Libraries has been updated
We need to coordinate with @fedekunze the Voyager integration
I have opened an issue for the gaiacli integration (https://github.com/cosmos/cosmos-sdk/issues/3658)

Update:

Ledger has received the PR for v1.1.0 https://github.com/LedgerHQ/ledger-app-cosmos/pull/3
Hopefully this will get published in their app store in the March release
Integration into gaiacli has been merged https://github.com/cosmos/cosmos-sdk/pull/3670
JS library is ready https://github.com/ZondaX/ledger-cosmos-js/pull/9
Voyager integration is pending https://github.com/cosmos/voyager/issues/2130

I would advise closing this issue if others agree

Agreed (I don't have permissions to close it) - thanks @jleni.


Make v3 default

Currently users needs to enable V3 to use it.

We want to make the enable v3 support as default.
Related to https://github.com/asyncapi/studio/issues/641

Can I work on this @Amzani ?

@Shurtu-gal sure please take it :)

Yeah totally. That was done as a temporary thing meanwhile we released v3. It should be completely removed.

Okay, I will remove it.

Removed it in this
cc: @fmvilas @Amzani @KhudaDad414


Add Fulfilled and Rejected promise implementations

Based on the idea from php-http/httplug#98.
One major change: Promise now handles \Exception instead of HttplugException.
Reasoning: avoiding circular dependency, moving towards the PSR which will definitely not use our exception interfaces.

@joelwurtz do you think this will have any bad effect?

Merging this and tagging a PATCH release so we can actually use it. I don't think it could cause any problem.


fix cpu usage on linux

slow down loop in subscription thread

it needs a follow up  fix for the case of a re-connection is done within the thread sleep (100ms).

i changed the strategy to solve the issue by moving the midi connection close() call into the unsubscribe functions, and dropping the creation of threads.
please tell me if you would prefer a pr with a smaller diff.

Thanks @crop2000. I'll need to study your updated solution. Looks interesting (your use of Rust is more advanced than mine!).
I pushed a point release not long ago based on your previous iteration, but looking forward to studying your updated version.


Allow discovery version ^0.6

This will allow a PR on Guzzle5 adapter to build.
Related to: https://github.com/php-http/guzzle5-adapter/pull/13

We have to wait for a little with this, we have to check whether it is working with other packages as well.

Thanks for the PR, I forgot about it and just updated the repo directly. :cry:

No worries. I'm happy it is updated. =)


⚠ GitHub has degraded performance

In b6b8274, GitHub (https://www.githubstatus.com/api/v2/status.json) experienced degraded performance:

HTTP code: 200
Response time: 351 ms

Resolved: GitHub performance has improved in 2fd34fc.


When updating package, please download first and then removing

Due to the China Great Firewall affect internet speed, Github download speed is slow ( <50k/s is very common ), and downloads failure often happens. So this cause a problem, when I want to update all outdated packages vcpkg upgrade --no-dry-run, vcpkg will remove all outdated packages first and then download the newest packages from GitHub, but if the download failure, this upgrade process will be terminated, and I must install all removed packages one by one.

Well, I have a personal mirror, please see https://zhuanlan.zhihu.com/p/383683670.

and then download the newest packages from GitHub, but if the download failure, this upgrade process will be terminated,

The upgrade command is broken for me too (I have a 100 MBit/s line in Norway). Before a vcpkg upgrade --no-dry-run, I had
63 packages. After that broken upgrade a vcpkg list shows only 49 packages installed.
PS.  Why do we have to specify --no-dry-run? This hints on a --dry-run option was specified somehow. I did not.

and then download the newest packages from GitHub, but if the download failure, this upgrade process will be terminated,

The upgrade command is broken for me too (I have a 100 MBit/s line in Norway). Before a vcpkg upgrade --no-dry-run, I had
63 packages. After that broken upgrade a vcpkg list shows only 49 packages installed.
PS. Why do we have to specify --no-dry-run? This hints on a --dry-run option was specified somehow. I did not.

For this part issue, we already have the same one.

Duplicated to https://github.com/microsoft/vcpkg/issues/4360 https://github.com/microsoft/vcpkg/discussions/17922


UnpackTuple VPack

Scope & Purpose
Updated VPack 3rdParty folder. unpackTuple in arangodb now uses unpackTuple from velocypack.

[x] :hankey: Bugfix (requires CHANGELOG entry)
[ ] :pizza: New feature (requires CHANGELOG entry, feature documentation and release notes)
[ ] :fire: Performance improvement
[ ] :hammer: Refactoring/simplification
[ ] :book: CHANGELOG entry made

Backports:

[x] No backports required
[ ] Backports required for: (Please specify versions and link PRs)

Related Information
(Please reference tickets / specification / other PRs etc)

[ ] Docs PR:
[ ] Enterprise PR:
[ ] GitHub issue / Jira ticket number:
[ ] Design document:

Testing & Verification
(Please pick either of the following options)

[ ] This change is a trivial rework / code cleanup without any test coverage.
[ ] The behavior in this PR was manually tested
[x] This change is already covered by existing tests, such as Graph tests for Weighted Traversals.
[ ] This PR adds tests that were used to verify all changes:

[ ] Added new C++ Unit tests
[ ] Added new integration tests (e.g. in shell_server / shell_server_aql)
[ ] Added new resilience tests (only if the feature is impacted by failovers)

[x] There are tests in an external testing repository:
[ ] I ensured this code runs with ASan / TSan or other static verification tools

Link to Jenkins PR run:
Documentation

All new features should be accompanied by corresponding documentation.
Bugs and features should furthermore be documented in the CHANGELOG so that
support, end users, and other developers have a concise overview.

[ ] Added entry to Release Notes
[ ] Added a new section in the Manual
[ ] Added a new section in the HTTP API
[ ] Added Swagger examples for the HTTP API
[ ] Updated license information in LICENSES-OTHER-COMPONENTS.md for 3rd party libraries

External contributors / CLA Note
Please note that for legal reasons we require you to sign the Contributor Agreement
before we can accept your pull requests.

http://jenkins.arangodb.biz:8080/job/arangodb-matrix-pr/13504/

http://jenkins.arangodb.biz:8080/job/arangodb-matrix-pr/13504/

http://<IP_ADDRESS>:8080/job/arangodb-matrix-pr/13507/

http://<IP_ADDRESS>:8080/job/arangodb-matrix-pr/13507/

http://<IP_ADDRESS>:8080/job/arangodb-matrix-pr/13510/

http://<IP_ADDRESS>:8080/job/arangodb-matrix-pr/13510/

Tests blue

Tests blue


run it on Linux

Hi, I would really like to try this out.
could you please give us more info how to make it run ?
I would like to run it on a Linux environment if that's possible.
Best,
Albion

I added the instructions for building and running to the readme file. Please note that this project has only been tested on the example fbx file in the data folder.

Thanks a lot.
I am not able to add the variable of GLM_INCLUDE_DIR, not my strongest point to install programs !
CMake Error at CMakeLists.txt:31 (MESSAGE):
Please point the environment variable GLM_INCLUDE_DIR to the root directory
of your GLM installation.

There is a writeup here on setting up the environment.


Reimplement codegen in arr.ai

Test with ./test-arrai. It will build the following tests: deps, dbendpoints, downstream, simple, simplegrpc. It will then diff the output against the output generated by the current version of the code generator.
The other scenarios in testdata aren't yet tested because setting them in the build system was more fiddly. This is pending work.

@gkanz

Amazing, much more readable than the Sysl version

Absolutely! with very minimal effort I have been able to fix issues and add new files in a matter of hours. Very happy to switch dcx/bff to this!

* Required `brew install colordiff`. :-)
* Required `rm -r codegen/arrai/tests/*` before anything would happen as makefile tests presence of dirs (they are in the git repo so "nothing to be done").

Good points, however test-arrai is just an interim tool for my own use until I pull the pin on the Sysl transforms.


many2many assoc. table has other fields

Your Question
Hi! I am trying to insert in many2many associations, but it fails due to NOT NULL error, e.g.:
type Car struct {
	ID        uint      `gorm:"primary_key" json:"id"`
	CreatedAt time.Time `gorm:"index" json:"created_at"`
	UpdatedAt time.Time `gorm:"index" json:"updated_at"`
        Passengers []Passenger `gorm:"many2many:car_passengers"`
}

type Passenger struct {
	ID        uint      `gorm:"primary_key" json:"id"`
	CreatedAt time.Time `gorm:"index" json:"created_at"`
	UpdatedAt time.Time `gorm:"index" json:"updated_at"`
}

Obviously there are tables for cars & passagers, plus relation table of car_passengers containing:
id NOT NULL, PRIMARY, AI
car_id NOT NULL
passenger_id NOT NULL
created_at NOT NULL
updated_at NOT NULL

the problem I have - once I try to save with FullSaveAssociations: true, I get SQL error on car_passengers entry of having fields created_at & updated_at not nullable. Thus - how can I tell gorm to set these values?
The document you expected this should be explained
It should have been explained in associations https://gorm.io/docs/associations.html
Expected answer
I want to know how to set created_at & updated_at values so when saving it doesn't fail

Figured it out. Closing.

How did you do this?

@jinzhu Any best practices on this issue please? 请问关于这个问题有什么最佳实践吗？


A bit more help

Hi @rcarmo
I really like the idea of this Makefile that simplifies the build of a multi architecture docker image, and I have the perfect candidate. sonos2mqtt should be perfectly capable to be runned on some arm device. The base image however node:lts-alpine is already multi architecture, would that make any difference in building this app for multiple architectures?
If I would understand the process i would be willing to create some more documentation about this process.

It shouldn’t be a problem, and should even simplify the bits where I explicitly tag the images with the target architecture - I do that out of habit from the pre-manifest days and also because I sometimes want to have extra architectures on the side, and it’s entirely optional.
What bits do you need help with? We can use this issue to discuss that.

I have no clue where to start. Probably need the following information:

Base image: node:lts-alpine = multi architecture
Working docker file: Dockerfile

And what I need to do is create the correct makefile (and optionally schedule it on some azure pipeline).
But I don't really understand what's happening in the makefile. What's that qemu I'm seeing everywhere.
To my understanding this is what get executed for each arch

make qemu
make wrap-$(ARCH)
make build-$(ARCH)
make push-$(ARCH)

And then make manifest to publish

Hello there,
What the qemu step does is register QEMU on the current system to allow ARM binaries to be run inside an Intel host. This is because most public CI services only have x64 workers.
The wrap step builds a temporary container with the base image and a static qemu binary inside it, which acts as a base container for the build step. The added file is only a few megabytes (and can be removed later, although I don't bother), but is required for the ARM binaries to work inside the build step.
The rest should be straightforward, although I do use make recursively to set a few environment variables (it's easier to maintain than adding a bunch of external 5-line shell scripts).
Hope this helps (and Happy 2020!)


update firefox-beta to 50.0b5;  add more languages.

If there’s a checkbox you can’t complete for any reason, that's okay, just explain in detail why you weren’t able to do so.
After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

How to verify download of specific language of the cask?

How to verify download of specific language of the cask?

That's not possible at the moment. For now you'll either have to comment out all other languages or re-download everything.
https://github.com/Homebrew/brew/pull/1264

Actually, brew cask fetch should also verify the download, for example you can run:
brew cask fetch firefox-beta --language=it

@yurikoles Is there anything left todo here?

Thank you for the contribution. It needed some fixes, so they were made in 683083ae89f0ead219d5e841fc50a83780da632a. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.


i4 - Configure Codecov

#4

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@02cfd93). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             master     #7   +/-   ##
=======================================
  Coverage          ?   100%
=======================================
  Files             ?      1
  Lines             ?      3
  Branches          ?      0
=======================================
  Hits              ?      3
  Misses            ?      0
  Partials          ?      0

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 02cfd93...ce4f9ea. Read the comment docs.


Consider throwing a more specific exception than the generalized GrpcException for sidecar app errors

Describe the feature
Currently sidecars application errors manifest as GrpcExceptions in apps. This should probably be wrapped as a general DaprException type to allow future more specific exceptions (e.g. DaprWorkflowException etc) to be thrown without breaking binary compatibility. Genuine Grpc protocol/comms errors should remain as GrpcException.
Release Note

RELEASE NOTE: ADD new dotnet DaprException as the base exception type to communicate exceptional conditions in the DAPR sidecar.

Especially as we're looking to move Workflow to stable, I think it makes sense to start this work scoped just to Workflow in the client and revisit with other gRPC connections over time as able.
We've already got a common DaprException we can use for this, so no need to introduce another.


When doing a failed waterdrop the gravestone disappeared

I died with the options that allow the gravestones to break off and when I went to my death location the gravestone wasn't there, I think that where should be an ubituary where your inventory would be saved just before you die and a button to make the gravestone respawn. Thanks for reading and for making this awesome mod!

Could you provide some more info on what happened when you died? Did you see the gravestone appear then it was gone when you got back?
Some kind of inventory backup feature is probably a good idea, in case there are more issues.

The gravestone appeared and then it was replaced by the water, the
coordinates of where the grave should have been were correct but it was
missing. Thaks for your work.
El mar, 20 ago 2024, 0:10, Pneumono_ @.***> escribió:

Could you provide some more info on what happened when you died? Did you
see the gravestone appear then it was gone when you got back?
Some kind of inventory backup feature is probably a good idea, in case
there are more issues.
—
Reply to this email directly, view it on GitHub
https://github.com/PneumonoIsNotAvailable/Gravestones/issues/21#issuecomment-2297549259,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQG4R4QCUEA4ZYQNEKYMTJTZSJUNLAVCNFSM6AAAAABMYPDR3WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJXGU2DSMRVHE
.
You are receiving this because you authored the thread.Message ID:
@.***>


Message sent from one radio to another can not be displayed/seen anywhere in the webportal or the serial port

connected ESPRI board with the radio B
sent a msg from radio A to radio B. I can confirm the msg has been received from the radio B screen
there is no way for me to see the received msg anywhere in the esp32 serial port or the web portal
I am not using ESP32 Lolin Lite, instead I am using an ESP32 Wrover,  but by following the same pins connections in the WIKI
not sure if it will help to locate the root reason, when I tried :
curl -d '{"content":"Hello!"}' http://<IP_ADDRESS>/api/uvk5_message
it shows me:
{
"response":     "Invalid JSON received"
}

https://github.com/kamilsss655/ESPRI/assets/2108092/8d421f27-74af-4b8a-bd59-c32eeafe31ac
here is a video that tries to demonstrate the issue I have

Yea the K5 messaging is a bit of a hidden/unfinished feature. At the moment it only supports my K5 firmware version v.21.4 .
This has to do with the ESPRI serial baud rate which is currently hardcoded 115200 to match the v.21.4 of the K5 firmware.
You might be able to make it work with other K5 firmwares by compiling custom version of ESPRI with a different baud rate.

In the future this would be resolved by the https://github.com/kamilsss655/ESPRI/issues/2 where serial baud rate would be configurable from the web client.

@kamilsss655 thanks, just to confirm that the ESPRI currently does not support 'forward' received message to the esp32 board, that in turn can pass the msg to a PC? like what you draw on the diagram below? Ultimately, I am trying to use a radio to turn on/off things via esp32/pc. Any suggestion if it is not supported currently, or is it on the future road map pls? Thanks

@kamilsss655 if I am not wrong, I think somehow I have an impression that the ESPRI enbles ESP32 to display incoming msg to the web pannel. Is this correct, happy to become a patreon and get the firmware 21.4 if what I am after is supported. Can you confirm pls?

The received message currently shows up in the web panel in the notifications page and in serial monitor output of the ESP, so it is displayed, but it is more like a debug form and not a commercial user experience.

@kamilsss655 so you think v21.4 will provide a better user experience in term of presenting the msg?

No, the v21.4 will allow you to receive a message from K5 on ESPRI.
You can also try this without v21.4 by connecting USB serial dongle to ESPRI (RX-TX, TX-RX, GND) and sending text from a PC via serial dongle to ESPRI (use 115200 baud).

ok, just become one of your patreon! I will give the 21.4 a go

@kamilsss655 installed 21.4, I can see the message in the serial monitor now! but the API still does not work, see screenshot below pls:

@kamilsss655 was the way I invoked API correct?

Interesting, might be that your curl on Windows is sending something else. I was able to send message with:
curl -d '{"content":"hello this is just a test ok ok ok"}' http://ESP_IP/api/uvk5_message

on Linux.
Maybe use some other client i.e. Postman to send request.

@kamilsss655 I was able to do that in the linux, postman in windows does not work by the way. I thought the curl -d '{"content":"hello this is just a test ok ok ok"}' http://ESP_IP/api/uvk5_message will send a msg to another radio, but apparently apart being able to see it in the serial port, the msg does not go out to another radio, am I right? what is the use cases for this API feature pls? thanks! good work by the way!

I thought the curl -d '{"content":"hello this is just a test ok ok ok"}' http://ESP_IP/api/uvk5_message will send a msg to another radio

It does send the message (you should see K5 red led as PTT indication), but sometimes it might require you to send the request couple of times. This is known issue with K5 serial handling which sometimes drops incoming serial data.

tried more than a few times, but the msg was not able to send the msg to another radio

@kamilsss655 I am sending the msg from curl, as you can see, the msg was presented correctly in the serial port, but the msg was not sent out. Anything else I can try pls?

Looks like K5 is not receiving the serial command. Not sure why. You might want to try using USB serial dongle (one used for programming K5) and sending:
SMS: message content\n


task: validate import alias via importas

Enable importas to force consistent import alias

one comment about the meta/v1 import that refers to quite a bunch of changes.

@s-urbaniak RFAL


How to  change SharpShell Icon Overlay handler name to contain space in registry to take priority over Dropbox and other programs?

Hi All , @nicolas-raoul , @dwmkerr , @hmemcpy , @overengineered
I want to change Sharpshell Icon over handler name so, my handlers will take precedence over other handlers. I noted that Dropbox and Google Drive use space in their handler names so, they take precedence over my sharpshell handlers but i can't add space to my sharpshell handler names as c# compiler doesn't allow space in class names; also, i added the attribute DisplayName but nothing happened.
[ComVisible(true)]
[DisplayName("       Test")]
public class SyncedIconOverlayHandler : SharpIconOverlayHandler
{
...

}

Same issue here

I have a changed version here:
https://github.com/kkguo/sharpshell/blob/5ccc277f6d1dd4bb04e86a30dc4015b4088fdad2/SharpShell/SharpShell/SharpIconOverlayHandler/SharpIconOverlayHandler.cs
I didn't request pull, because this is not a comprehensive solution, but it does work.


relax thiserror semver patch number constraint

Relax semver constraint in thiserror patch number so that it can mingle better with crates that want to use it.

In most cases it is desirable. and the dependency bot is still going to spam you about the patch version update :)


create a miri-pass test that allows us to run miri for arbitrary targets

compiletest doesn't give us this kind of pass, so I created one...
now I can miri-run windows-tests on linux:
running tests for target x86_64-pc-windows-gnu
test [miri-pass] tests/run-pass/loops.rs
test [miri-pass] tests/run-pass/arrays.rs

The test suite automatically checks for installed targets and runs miri on them.
Also I hope the travis changes now actually break the CI if the tests fail.
I needed compiletest 2.0 for compiletest::procsrv::dylib_env_var()

Travis failed:

thread 'compile_test' panicked at 'need to specify RUST_SYSROOT env var or use rustup or multirust', ../src/libcore/option.rs:699

out of some reason travis still doesn't fail when travis-cargo test fails...

now it works as it should.

Thanks a ton for figuring all that stuff out!


Add language name and version properties for PMD task

Fixes #21519
Context
Currently it is not possible to run the PMD task on code that uses java preview features. The PMD task will not fail, but will also not run the rules on those classes. The following error is displayed:  Error during type resolution of field '{redacted}' in class {redacted} due to: java.lang.UnsupportedClassVersionError: Preview features are not enabled for {redacted} (class file version 61.65535). Try running with '--enable-preview'.
Contributor Checklist

[x] Review Contribution Guidelines
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[x] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[x] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[x] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[x] Provide unit tests (under <subproject>/src/test) to verify logic
[x] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[x] Ensure that tests pass sanity check: ./gradlew sanityCheck
[x] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

Open questions
For PMD to correctly parse java files 2 things should be configured:

The first thing is that the version passed to PMD should contain the -preview suffix (e.g. 17-preview).

This PR allows us to configure PMD to use a specific version.

The second thing is that the jvm argument --enable-preview should be present in the worker that runs PMD.

Previously we could add the argument to the org.gradle.jvmargs property and it would work, but with the addition of the worker api from #21429 jvm arguments are no longer passed through to the PMD task.

This PR currently only fixes the first issue. The second issue is blocking and without it this fix does not work.

Can I get some feedback on the provided solution? This PR is still blocked by the issue described in the "Open questions" paragraph.

@ljacomet I updated the PR using your remarks.
Some questions:

I conditionally add the --enable-preview jvm argument when a preview version is specified. I tested this manually and it works. The next step would be writing a test for it, but I don't find a clear way to assert the forkOptions of the worker executor. I could enable debug logging in a test and assert that --enable-preview is present in the logs (it is logged in debug mode).

Is there a better/easier way to assert/verify the forkOptions that are used?

I looked for a way to test your initial question of "What happens when you specify languageName and languageVersion but PMD encounters a different file extension?"

I tried to use another languageName in the tests, but it looks like only the java language is available. The reason for this is presumably that only the pmd-java dependency is present.

@DavidOpDeBeeck Sorry for the late reply.
If you're still interested in this, can you please rebase to the latest master and resolve the conflicts?
Regarding your questions:

Is there a better/easier way to assert/verify the forkOptions that are used?

Unfortunately, no. However, I don't think you need to go the debug logging way. I think an integration test covering the case when you do need --enable-preview (and it would fail without it) is enough to test that forking options are passed.

I tried to use another languageName in the tests, but it looks like only the java language is available.

A-ha. Indeed, our docs and code implies that only Java is supported. I'd suggest reducing the scope of the PR, so only the languageVersion is configurable and leaving the language support question aside (so it's always java, explicitly). Does it make sense?

This pull request has been closed due to inactivity. If you intend to work on this pull request, please ask the team to reopen the PR.


Bugfix when compiling VMEC2000 for ubuntu systems

Hello,
I had issues compiling the latest release of VMEC2000.
line 19 of SHARE/make_ubuntu.inc should be as follows:
LIBS    = -L/usr/lib -lblas -llapack -lscalapack-openmpi
maybe I somehow cloned the wrong version, but the one I have was missing -lscalapack-openmpi

@emgreen3 It would be helpful if you stated what branch you're on.  I'm looking at the source now and in make_ubuntu.inc line 19 is   LIBS    = -L/usr/lib -lblas -llapack -lscalapack-openmpi.

I believe that I am on the master branch.   Its the one I got from cloning the repository from this link:  https://github.com/PrincetonUniversity/STELLOPT
and when I try git status I get:
Your branch is up to date with 'origin/master'.

@emgreen3 Hi, the default main branch is develop. The master branch is outdated. You can switch to develop and try again.

I'm guessing this issue si fixed now.


MAINTAINER: remove senior maintainer role

Signed-off-by: Calvin Weng<EMAIL_ADDRESS>
What is changed and how it works?
Remove the Senior Maintainer role as it has not been defined in the governance.
What's Changed:
Related changes
https://github.com/tikv/community/pull/19
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Side effects

Performance regression

Consumes more CPU
Consumes more MEM

Breaking backward compatibility

Release note

/run-test

/rebuild


struct.error: unpack_from requires a buffer of at least 4 bytes for unpacking 4 bytes at offset 0 (actual buffer size is 0)

1. System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 20.04
TensorFlow installation (pip package or built from source): pip package
TensorFlow library (version, if pip package or github SHA, if built from source): v2.9

2. Code & Description
While converting a diffusion model with TFLiteConverter, it fails because the size of the model is bigger than 2gb
reproducer gist
I wonder if it's an inevitable issue like memory size, so that I need to modify the model(e.g. quantize in advance) to convert it. Or is there any option-like things that can allow this larger model size.
Any suggestions would be appreciated.
3. Failure after conversion
Conversion fails
5. (optional) Any other info / logs
Error log
2022-12-27 14:50:46.618014: E tensorflow/compiler/mlir/lite/flatbuffer_export.cc:2015] Model size is bigger than 2gb
WARNING:absl:Buffer deduplication procedure will be skipped when flatbuffer library is not properly loaded
Traceback (most recent call last):
  File "text2image.py", line 84, in <module>
    generator.convert()
  File "/home/minkyukim/projects/stable-diffusion-tensorflow/stable_diffusion_tf/stable_diffusion.py", line 74, in convert
    tflite_model = converter.convert()
  File "/home/minkyukim/projects/stable-diffusion-tensorflow/venv/lib/python3.8/site-packages/tensorflow/lite/python/lite.py", line 929, in wrapper
    return self._convert_and_export_metrics(convert_func, *args, **kwargs)
  File "/home/minkyukim/projects/stable-diffusion-tensorflow/venv/lib/python3.8/site-packages/tensorflow/lite/python/lite.py", line 914, in _convert_and_export_metrics
    model_object = flatbuffer_utils.convert_bytearray_to_object(result)
  File "/home/minkyukim/projects/stable-diffusion-tensorflow/venv/lib/python3.8/site-packages/tensorflow/lite/tools/flatbuffer_utils.py", line 37, in convert_bytearray_to_object
    model_object = schema_fb.Model.GetRootAsModel(model_bytearray, 0)
  File "/home/minkyukim/projects/stable-diffusion-tensorflow/venv/lib/python3.8/site-packages/tensorflow/lite/python/schema_py_generated.py", line 5667, in GetRootAsModel
    n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
  File "/home/minkyukim/projects/stable-diffusion-tensorflow/venv/lib/python3.8/site-packages/flatbuffers/encode.py", line 26, in Get
    return packer_type.unpack_from(memoryview_type(buf), head)[0]
struct.error: unpack_from requires a buffer of at least 4 bytes for unpacking 4 bytes at offset 0 (actual buffer size is 0)

SavedModel size before conversion
(venv) $ du -sh *
4.0K    assets
18M     saved_model.pb
3.3G    variables

@mohantym
I was able to reproduce the issue on Colab using TF v2.11. Please find the gist here for reference.
Thank you!

Hi @kkimmk !
Thanks for sharing your observation on your Stable diffusion model.
I could not replicate the exact error in  2.11 but a segmentation crash instead.
Thank you!

Hi,
Thank you for opening this issue. Since this issue has been open for a long time, the code/debug information for this issue may not be relevant with the current state of the code base.
The TFLite team is constantly improving the framework by fixing bugs and adding new features. We suggest you try the latest TensorFlow version with the latest compatible hardware configuration which could potentially resolve the issue. If you are still facing the issue, please create a new GitHub issue with your latest findings, with all the debugging information which could help us investigate.
Please follow the release notes to stay up to date with the latest developments which are happening in the TFLite space.


RealSense Viewer stops working with D405 after 10 seconds

Hi all,
The RealSense Viewer (v 2.50.0) displays full color 3D imagery from the D405 for about 10 seconds, before flickering out.  If I turn off post-processing, I can see the non-color depth map in 3D.  If I close and restart the viewer, all is well again for 10 seconds.  Any thoughts?
Thanks.
Camera: D405
Firmware: <IP_ADDRESS>
OS: Win 10 Pro Build 19044

Hi @ashenkin  If you are using the 3D point cloud mode of the RealSense Viewer and the point cloud flickers and disappears after about 10 seconds, it is typically caused by the Viewer's two GLSL options ('Rendering' and 'Processing') being enabled in its settings interface.  If they are disabled in the settings then the problem usually disappears immediately.  Instructions for disabling GLSL can be found at https://github.com/IntelRealSense/librealsense/issues/8110#issuecomment-754705023

Hi @ashenkin  Do you require further assistance with this case, please? Thanks!

All set - thank you!
On 5/21/2022 12:24 AM, MartyG-RealSense wrote:

Hi @ashenkin https://github.com/ashenkin Do you require further
assistance with this case, please? Thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/10512#issuecomment-1133554658,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMIZ4N2DEQGLSYKRZV5BPLVLCFRLANCNFSM5V5ZTBXQ.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks very much @ashenkin for the update!   As you do not require further assistance, I will close this case.  Thanks again!


Incorrect error message on the "Categories" page while entering short Categories name.

Date Time
12-15-2020 12:54
Priority
Low
Environment:
OS: [Windows 10]
Browser [Chrome Version 86.0.4240.198 (Official Build) (64-bit) ]
Reproducible: always
Build found: 20201214.5
Pre-conditions

Move to https://eventsexpress-test.azurewebsites.net/
Authorize as an admin

Steps to Reproduce
Steps to reproduce the behavior:

Go to the 'Categories' page.
Click on a blue “plus-circle" icon on the top of the page with categories.
Enter less than 2 characters in the input field labeled "Name".
Click on the 'apply' icon.

Test data
'A'
Expected result
The error message appeared: "Category confirmation is too short (minimum is 2 characters)" is placed below the “Name” input field and had the red color.
Actual result
The incorrect error message appeared: {"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":"One or more validation errors occurred.","status":400,"traceId":"|373dfa09-4844d12e189d4c13.","errors":{"Name":["Name length exceeded the recommended length of 20 characters!"]}}  is placed under the input field and had the red color.
User story and test case links
User story: #174 As an admin, I want to change the existing category name to update the data.
Test case: #269 Verify that the user as an admin role is able to add the new category name to the list of existing categories.
Labels to be added
"Bug"
Priority: Low
Severity: Minor
Type: UI
Screenshots
If applicable, add screenshots to help explain your problem.

Confirmation test: pass
Status: 'Verified'
Test case: #269 Verify that the user as an admin role is able to add the new category name to the list of existing categories.


Update outdated link to the doc in readme

Description
The link provided in a couple of readmes does not get resolved - https://microsoft.github.io/promptflow/how-to-guides/deploy-and-export-a-flow.html#export-a-flow
Updating to the correct link - https://microsoft.github.io/promptflow/how-to-guides/deploy-a-flow/deploy-using-docker.html
All Promptflow Contribution checklist:

[x] The pull request does not introduce [breaking changes].
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: suggested workflow.

General Guidelines and Best Practices

[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.

Thanks @anastasia-linzbach for conribute this change. I will merge this PR.


labels validation does not show valid format when not valid

Feature Request
Desired behaviour
When adding labels, if the format of the label is incorrect, we do not display the format for correct entries like other places on the site (like with registering workflows (source control repos)).
See https://discuss.dockstore.org/t/labels-interface-and-format-rules/3230
voted on/originates from @jmonlong
┆Issue is synchronized with this Jira Story
┆Issue Type: Story
┆Fix Versions: Dockstore 1.8
┆Sprint: Seabright Sprint 24 Yacht
┆Issue Number: DOCK-1036

Seems unrelated. Appears to be a major problem of modifying anything.

Also seeing Could not convert Dockstore entry to Elasticsearch object when publishing or unpublishing

Unrelated but error on label saving does not indicate anything to the user.


Close #70: Add support for ConnectionPropertyNames.CONNECTION_TIMEOUT

To overcome being blocked (#70) I implemented support for timeout. I do not know if this is the right thing to do, but it allows invokations to timeout, what we used to have with galvan. In the case of M&M we always use connection timeouts and invokation timeout so in this case, by timeouting, we are able to see the exception reported by junit plus the connection that times out in the tearDown method because the passive failed to become active.

This isn't the correct interpretation of this constant.  It is specifically related to connection creation (which doesn't apply to passthrough).
I suspect that your actual problem is elsewhere or should be resolved in another way.

In this case, based on the description of the issue, can you tell me how to avoid being blocked and thus consequently how to avoid junit not being able to report the stack trace ?
The issue is that the passive fails becoming active (it fais in the promotToActive() method). So the exception is thrown by "stripeControle.terminateActive()", then Junit catches the exception and trigger the tearDown methods. Before our sample entity is closed, it sends a notification (so invoke with a message). With Galvan, this invocation would times out because there's no server behind.
So I want to mimic de fact that with Galvan, if no active takes over, then, if we send a message through a client entity, the invocation will times out.

Actually, this normally wouldn't timeout, since the timeout only applies to the initial connection.  Reconnecting is expected to allow a wait forever (it is essentially equivalent to an NFS mount D-state), unless I incorrectly understand where in the stack this exists (seems to be only used during initial client creation).
There are either 2 ways this can go:

resolve it using a call to IAsynchronousServerCrasher and then build some mechanism to re-send
decide that this is a limitation of passthrough and just see if we have any opportunity to be noisier about the case, when it happens

We put a workaround in our junit tearDown method. We execute all or calls through a runnable passed to this method:
  private void interruptVoltron(Runnable runnable) {
    CountDownLatch closed = new CountDownLatch(1);
    Thread thread = new Thread(() -> {
      try {
        runnable.run();
      } catch (RuntimeException e) {
        Throwable t = e.getCause();
        while (t != null && !(t instanceof InterruptedException)) {
          t = t.getCause();
        }
        if (t == null) {
          throw e;
        }
      }
      closed.countDown();
    });
    thread.start();
    try {
      if (!closed.await(2, TimeUnit.SECONDS)) {
        thread.interrupt();
      }
    } catch (InterruptedException e) {
      Thread.currentThread().interrupt();
    }
  }


Allow editing email templates as part of theme

I would suggest allowing email templates to be overwritten directly in the theme, so that it's easier for developers to integrate their themes with Shopify's built-in notifications.  Currently it's extremely tedious to develop and test customizations to the transactional email templates.

I would contact Shopify support to properly log this because themekit has nothing to do with how themes actually work. It is just a client for the themes API. Going through support will add to our resources of this request and get that information to the correct people


Nondeterministic build failures in Tex('The horse does not eat cucumber salad.')

Description of bug / unexpected behavior

As I've been figuring out the test coverage toolset for Manim, I've done quite a lot of automated builds on a copied (not forked) repository (https://github.com/MrMallIronmaker/manim-cov/). For some reason, occasionally one of the Ubuntu builds fails while I've been playing around with coverage settings. Whether it's 3.7, 3.8, or 3.9 is apparently random.
All of them fail in the Tex doctest.
Expected behavior
It should pass the test.
How to reproduce the issue

Code for reproducing the problem
In theory the problematic code is here:
```py
Tex('The horse does not eat cucumber salad.')
```
However, I've not been able to replicate this issue

Additional media files

Build output
Run poetry run pytest --cov-append --doctest-modules manim
  poetry run pytest --cov-append --doctest-modules manim
  shell: /usr/bin/bash -e {0}
  env:
    POETRY_VIRTUALENVS_CREATE: false
    pythonLocation: /opt/hostedtoolcache/Python/3.8.8/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.8.8/x64/lib
Skipping virtualenv creation, as specified in config file.
============================= test session starts ==============================
platform linux -- Python 3.8.8, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
rootdir: /home/runner/work/manim-cov/manim-cov, configfile: pyproject.toml
plugins: cov-2.11.1
collected 30 items

manim/_config/__init__.py .                                              [  3%]
manim/_config/utils.py ..
## Logs
Terminal output

PASTE HERE OR PROVIDE LINK TO https://pastebin.com/ OR SIMILAR

## System specifications

System Details

- OS (with version, e.g Windows 10 v2004 or macOS 10.15 (Catalina)):
- RAM:
- Python version (`python/py/python3 --version`):
- Installed modules (provide output from `pip list`):

PASTE HERE

LaTeX details

+ LaTeX distribution (e.g. TeX Live 2020):
+ Installed LaTeX packages:

FFMPEG

Output of `ffmpeg -version`:

PASTE HERE

## Additional comments

                              [ 10%]
manim/animation/animation.py .                                           [ 13%]
manim/mobject/geometry.py .........                                      [ 43%]
manim/mobject/mobject.py ......                                          [ 63%]
manim/mobject/svg/tex_mobject.py ..F                                     [ 73%]
manim/mobject/svg/text_mobject.py ...                                    [ 83%]
manim/mobject/types/vectorized_mobject.py ....                           [ 96%]
manim/utils/color.py .                                                   [100%]

=================================== FAILURES ===================================
_________________ [doctest] manim.mobject.svg.tex_mobject.Tex __________________
491 A string compiled with LaTeX in normal mode.
492
493     Tests
494     -----
495
496     Check whether writing a LaTeX string works::
497
498         >>> Tex('The horse does not eat cucumber salad.')
UNEXPECTED EXCEPTION: IndexError('list index out of range')
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/doctest.py", line 1336, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest manim.mobject.svg.tex_mobject.Tex[0]>", line 1, in <module>
  File "/home/runner/work/manim-cov/manim-cov/manim/mobject/svg/tex_mobject.py", line 506, in __init__
    MathTex.__init__(
  File "/home/runner/work/manim-cov/manim-cov/manim/mobject/svg/tex_mobject.py", line 392, in __init__
    self.break_up_by_substrings()
  File "/home/runner/work/manim-cov/manim-cov/manim/mobject/svg/tex_mobject.py", line 434, in break_up_by_substrings
    sub_tex_mob.move_to(self.submobjects[last_submob_index], RIGHT)
IndexError: list index out of range
/home/runner/work/manim-cov/manim-cov/manim/mobject/svg/tex_mobject.py:498: UnexpectedException
----------------------------- Captured stdout call -----------------------------
                    INFO     Writing "The horse does not  tex_file_writing.py:81
                             eat cucumber salad." to medi
                             a/Tex/3ecc83aec1683253.tex
------------------------------ Captured log call -------------------------------
INFO     manim:tex_file_writing.py:81 Writing "The horse does not eat cucumber salad." to media/Tex/3ecc83aec1683253.tex
=============================== warnings summary ===============================
manim/mobject/mobject.py::manim.mobject.mobject.Mobject.set
  <doctest manim.mobject.mobject.Mobject.set[1]>:1: DeprecationWarning: This method is not guaranteed to stay around. Please prefer setting the attribute normally or with Mobject.set().

manim/mobject/mobject.py::manim.mobject.mobject.Mobject.set
  <doctest manim.mobject.mobject.Mobject.set[2]>:1: DeprecationWarning: This method is not guaranteed to stay around. Please prefer getting the attribute normally.

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-84, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-104, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-101, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-111, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-114, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-115, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-100, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-110, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-116, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-97, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-99, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-117, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-109, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-98, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-108, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-46, which is not recognized
    warnings.warn(warning_text)

-- Docs: https://docs.pytest.org/en/stable/warnings.html

----------- coverage: platform linux, python 3.8.8-final-0 -----------
Coverage XML written to file coverage.xml

=========================== short test summary info ============================
FAILED manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
================== 1 failed, 29 passed, 18 warnings in 6.56s ===================
Error: Process completed with exit code 1.

with these warning
manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-84, which is not recognized
    warnings.warn(warning_text)

manim/mobject/svg/tex_mobject.py::manim.mobject.svg.tex_mobject.Tex
  /home/runner/work/manim-cov/manim-cov/manim/mobject/svg/svg_mobject.py:261: UserWarning: media/Tex/3ecc83aec1683253.svg contains a reference to id #g0-104, which is not recognized
    warnings.warn(warning_text)

the problem is LaTeX installation, is it on CI?

It's on CI, yeah. Github Actions - I copied over the regular manim ci system.
Thanks for the tip!

I think dvisvgm? Don't know though. Also, why it isn't failing here?

Good q. That does make me pause. It only fails 1/6 - 1/8 of the time (per ubuntu run), so maybe it hasn't been a problem yet? I haven't looked through the build indicators to see if any of them have the same issue but if this is still a mystery as we get closer to merging #1071 then I'll dig deeper.
The other possibilities are that it is something specific to my manim-cov repo because I copied it without forking, or specific to my changes, or it may have its roots in some recent change to the manim codebase. Seeing if there are errors on other branches here helps me narrow it down... Or sometimes it's just like MikTex out of the blue.
Another thing I want to try is modifying the code to dump the SVG file to the log when it breaks to see what it looks like and if it's an SVG parsing error on manim's end... The fact it's random is weird though.

I encountered this in our CI on #1075

Now also when merging into master: https://github.com/ManimCommunity/manim/runs/2050314745?check_suite_focus=true
As of right now, it is completely unclear to me why this would fail. It looks like the error that occurs when the cm-super LaTeX package is not installed (and it would be curious to see whether changing the test to Tex("...", tex_template=TexTemplateLibrary.simple) would change anything) -- but as far as I can tell, cm-super should be included with the other system packages that are installed.
It worries me a little that this occurs randomly.

Ok, so the problem appears to be upstream of each of these things... I copied based on e3359a5, so if it's manim-based problem, its origin is there or earlier.
I've not been able to replicate the bug on my local machine with the simple code I gave.
Are the hashed filenames different? I always see the 3ecc83... filename with the error, but it may be different normally? And the .tex files determine the hash, right? It may narrow down where in the pipeline the problem lies...
The warnings text is a warning I wrote, given off by https://github.com/ManimCommunity/manim/blob/0de873c803bc4b9ab73615d3ebf4c95f8ecba9b3/manim/mobject/svg/svg_mobject.py#L261 - in short, the  svg element defines a lot of objects (e.g., the path to write "e") and then the svg body has  tags to insert those definitions into the document so it doesn't have to repeat itself.
In short, each warning is saying that it couldn't find the defined letter (84=T, 104=h, 101=e, etc...) and I think the index error is indexing the svgmobject at zero, but can't because there are no valid vmobject children.
The cause that feels simplest to me is that there is some strangeness in creating the SVG, but it's still a valid SVG file and should be read normally, but the SVG parser is fragile and so couldn't parse it correctly.
But that is still a pretty weird situation.

Something also strange is the warning in #1149 is the same way. The only difference is it happens in installs too.

The only difference is it happens locally.

Does this happen locally? Can you give me your OS configuration?

I run windows 10 pro

I run windows 10 pro

And latex configuration on how you installed it and these command output
latex --version
dvisvgm --version
xelatex --version


Faucet endpoint should return 429 status code when interval has not expired

Currently, when a user requests funds from the faucet before their interval has expired, the API returns a 500 response.
This is not useful to the user - it would be more proper for the API to return a 429 response. The response should have the timestamp at which the user can once again use the faucet successfully in a header - x-game7-faucet-available-at or something like that.

Hi @zomglings please can I be assigned this issue


Little speed up in file identification

Codecov Report

Merging #1055 (55b0419) into master (f5e9079) will increase coverage by 0.05%.
The diff coverage is n/a.

:exclamation: Current head 55b0419 differs from pull request most recent head 4a63315. Consider uploading reports for the commit 4a63315 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##           master    #1055      +/-   ##
==========================================
+ Coverage   76.83%   76.88%   +0.05%
==========================================
  Files         134      134
  Lines       12946    12946
==========================================
+ Hits         9947     9954       +7
+ Misses       2999     2992       -7

Impacted Files
Coverage Δ

assemblyline/filestore/transport/local.py
91.93% <0.00%> (+1.61%)
:arrow_up:

assemblyline/odm/randomizer.py
95.25% <0.00%> (+1.72%)
:arrow_up:

assemblyline/datasource/alert.py
92.30% <0.00%> (+3.84%)
:arrow_up:

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


Add ${PACKAGE_NAME}_LICENSE variable

Try to find one of the files: LICENSE, LICENSE.txt, COPYING, ... from the unpacked archive and if found install it to <root-id>/licenses/${PACKAGE_NAME} directory and set ${PACKAGE_NAME}_LICENSE variable so user can use it in his project, like:
install(FILES "${${PACKAGE_NAME}_LICENSE}" ".")

If we were to define these variables, where would the definition for each package go?

@aadityakalsi I'm not sure I understand what you mean. Feature designed so Hunter find file and set *_LICENSE variable and user use *_LICENSE variable. For example:

Boost has LICENSE.txt
OpenSSL has COPYING

=>

Hunter copy Boost LICENSE.txt to <root-id>/licenses/Boost/LICENSE.txt and set Boost_LICENSE variable to location of this file
Same for OpenSSL but OpenSSL_LICENSE=<root-id>/licenses/OpenSSL/COPYING

@ruslo Sorry,I should've been clearer. I was trying to ask how to implement this and where should this definition of the variable be, i.e. the physical design.

i.e. the physical design

@aadityakalsi Let me think...
hunter_download.cmake
Some theory:

HUNTER_INSTALL_PREFIX is the final location of installed package (<root-id>/Install)
HUNTER_PACKAGE_INSTALL_PREFIX is the temporary install location for cacheable packages (<root-id>/Build/<package>/Install - will be removed after successful build) or same as HUNTER_INSTALL_PREFIX for non-cacheable packages

So I guess next changes here:

Introduce new variable HUNTER_PACKAGE_LICENSE_FILE which is equal to ${HUNTER_PACKAGE_INSTALL_PREFIX}/licenses/${HUNTER_PACKAGE_NAME}/LICENSE. This variable will be used by build scheme as a copy-to destination of license file
New variable license_var = ${HUNTER_PACKAGE_NAME}_LICENSE
Set license_var to ${HUNTER_INSTALL_PREFIX}/licenses/${HUNTER_PACKAGE_NAME}/LICENSE to PARENT_SCOPE (near the set(${root_name} "${${root_name}}" PARENT_SCOPE) I guess). This variable is for user, i.e. linked to the final destination.

hunter_copy_license_file
Since license-copy logic will be applied to several schemes I guess we need to add extra cmake module with function hunter_copy_license_file which should accept two arguments: source_dir and license_dst. This function works quite simple: just check one of the LICENSE, LICENSE.txt, COPYING etc. file exists in source_dir directory and if found copy it to license_dst.
build schemes
Add hunter_copy_license_file("@HUNTER_PACKAGE_SOURCE_DIR@" "@HUNTER_PACKAGE_LICENSE_FILE@"). For boost you only need to add this code to url_sha1_boost.cmake since this scheme will be called before building other components. Feel free to add this code to only schemes you need. I guess we can update/test this iteratively.
examples
Update code of examples (one example for one scheme) to test this feature works:
if(NOT EXISTS "${Boost_LICENSE}")
  message(FATAL_ERROR "License not found: ${Boost_LICENSE}")
endif()

One issue with this design is that including or excluding LICENSE file is a property of the Scheme and not the package. This breaks down if different packages using the same scheme want to make different choices for whether to include or exclude the LICENSE.
I believe the LICENSE should be made available for all packages if found. Whether the user wants to install or package the LICENSE for package X or Y is up to him, but Hunter supports each.
Does that sound reasonable?

Another issue:
I have this working in a prototype, but it errors because ${HUNTER_INSTALL_PREFIX}/licenses/${HUNTER_PACKAGE_NAME}/LICENSE is different when building vs. post-install,
Post-install, ${HUNTER_INSTALL_PREFIX} is the installation dir not build installation. What is a good way to solve this?

One issue with this design is that including or excluding LICENSE file is a property of the Scheme and not the package

I see no problems here for now. This is a job for hunter_copy_license_file function. Can you share scenario when it doesn't work (?)

This breaks down if different packages using the same scheme

One package use LICENSE, other LICENSE.txt. Function will copy the file that exists.

want to make different choices for whether to include or exclude the LICENSE

If LICENSE file exists we will copy it to <root-id>/licences/<package> user don't have to use it if it don't need this file. Still see no problems.

Whether the user wants to install or package the LICENSE for package X or Y is up to him, but Hunter supports each.

Yes

but it errors because ${HUNTER_INSTALL_PREFIX}/licenses/${HUNTER_PACKAGE_NAME}/LICENSE is different when building vs. post-install

See the difference between HUNTER_PACKAGE_INSTALL_PREFIX and HUNTER_INSTALL_PREFIX in the message above.
@aadityakalsi Sorry if I'm missing something it's always look easy in mind but on practice there can be some flaws.

@ruslo I will be adding a pull request to show some code. That pull request is not for acceptance. It is just for discussion.

I will be adding a pull request to show some code. That pull request is not for acceptance. It is just for discussion.

@aadityakalsi Okay, thanks

Fixed by: https://github.com/ruslo/hunter/pull/249


ENH: [feature requests] adding basic angle statistics and modular operation functions

Is your feature request related to a problem? Please describe.
NumPy and SciPy has many useful functions about angle like:

Numpy's Trigonometric functions: https://numpy.org/doc/1.18/reference/routines.math.html#trigonometric-functions
Scipy's scipy.spatial.transform.Rotation
https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.transform.Rotation.html
scipy.stats.circmean
scipy.stats.circvar
scipy.stats.circstd

However, I think there are some basic functions are still missing.
For example, basic angle statistics (diff, mean, std) and modular operation functions making angles between [-pi, pi) or  [0, 2pi).
I think these functions are very useful for many science and engineering field especially in robotics, control, etc.
So, I think it would be great if SciPy has some additional basic angle functions.
What do you guys think this idea?
Describe the solution you'd like
Adding new simple functions like below:
Angle modulo operation function: scipy.stats.circmod
https://github.com/AtsushiSakai/scipy/commit/3b0a0f59c28a03358b4740e6c2caa4fd73cd8c96
Angle difference calculation function
https://github.com/AtsushiSakai/scipy/commit/47a5a3aabe4e7a25eb94d897efa22c557e108942
Updated 2023/06

Thanks @AtsushiSakai. I think I like this idea - the functions are relatively simple, but if you're working with angles it's still a little fiddly to get this kind of thing exactly right. The question is where it would go. spatial.transform?

Thanks @rgommers for your comments. I'm happy to hear your positive comment. I think we have some options:

under spatial :  I think it is straightforward and easy to find and use these functions. But under spatial becomes messy a little.
under spatial.tranform : It is ok, but I am not sure these functions should be categorized as "transform" functions. I think these functions are more general ones.
under new submodule spatial.angles or something: I think it looks neat, but I don't know other functions will be added in the submodule in the future.

I think it works with any of the options.

I am in favour of this proposal.
I propose a spatial.spherical module. These types of functions generalize to n-spheres, and there is a demand for spherical statistics. See e.g. #12041.
I recently started working on a spatial.spherical module. It is still very preliminary, but this is a list of functions I am implementing:
def sphere_volume(d, radius=1):                # convenience function for d-sphere volume
def sphere_area(d, radius=1):                  # convenience function for d-sphere area
def sample_uniform(n, d, radius=1, seed=None): # convenience function for uniform sampling on the d-sphere
def spherical_areas(triangles):                # calculates the area of a spherical d-simplex
def polar(triangles):                          # calculates the polar simplex of a spherical d-simplex (https://en.wikipedia.org/wiki/Spherical_trigonometry#Polar_triangles)

Most of these are already implemented as private functions in SphericalVoronoi, but it would be useful to split them off and expose them as public functions. This would perhaps also be a good place for spherical-euclidean coordinate transformations (#7943, https://github.com/numpy/numpy/issues/5228).
I think angle_mean and angle_std would be a good fit for such a module, albeit named as spherical_mean and spherical_std or somesuch. I don't think angle_mod and angle_diff generalize to higher dimensions, but that doesn't prohibit their inclusion.

Note that there are different types of mean. The angle_mean implemented here is called the "chordal L2 mean". Most users are probably expecting the "geodesic L2" mean; for a set of angles where wrapping is not a issue, this is just the mean of the angles. An example showing the difference:
>>> x = [1, 2, 100]
>>> angle_mean(x, degree=True)
29.60189817412989
>>> np.mean(x)
34.333333333333336

The geodesic L1 mean is also useful - for the above input it is just the median. These are sometimes called the "circular mean" and "circular median". The implementation requires correctly accounting for wrapping, but is still straightforward. I suggest we add a parameter which specifies which type of mean to calculate.
The angle_std function implemented here uses inconsistent metrics. The mean is calculated as the chordal L2 mean, but the residuals are geodesic distances. The standard deviation can be calculated for all the means described here, but the metrics need to be consistent. Here I also suggest adding a parameter which specifies the type of mean.
One of my favourite articles describing metrics, means, and standard deviations is "Rotation Averaging"
It describes 3D rotations but the principles can be applied here too.

FYI: We have circmean, circvar and circstd in stats: https://docs.scipy.org/doc/scipy/reference/stats.html#circular-statistical-functions

Hi. @pmla Thank you for your comments.

I propose a spatial.spherical module.

I'm not familiar with n-spheres. But if there is consensus to create a new sub-module spatial.spherical, I agree that and agree adding my simple functions into it.

Note that there are different types of mean.

I didn't realize that. Maybe we should add a parameter which specifies which type of mean to calculate. That would be useful.

The angle_std function implemented here uses inconsistent metrics
You are right. My function is wrong.

@WarrenWeckesser Thank you for letting me know that. Honestly, I didn't know the function. I think my function should use it.

How is this update functions? (maybe docstring should be updated):
Angle mean calculation function
def angle_mean(x, method="chordal_l2", degree=False):
    """
    Calculate mean of angles.

    Parameters
    ----------
    x : array_like
        Array of angles. This array is flattened for the calculation.
    method : string, optional
        The mean calculation method.
    degree : bool, optional
        If True, then the given angles are assumed to be in degrees.
        Default is False.

    Returns
    -------
    ret : float
        the mean of angles

    Examples
    --------
    >>> angle_mean([0.0, 1.0, 2.0, 4.0, 5.0])
    0.04643020836284735

    >>> angle_mean([0.0, 90.0, -90.0], degree=True)
    0.0

    """
    x = np.asarray(x).flatten()
    if degree:
        x = np.deg2rad(x)

    if method == "chordal_l2":
        mean_angle = circmean(x)
    elif method == "geodesic_l2":
        mean_angle = np.mean(x)
    elif method == "geodesic_l1":
        mean_angle = np.median(x)
    else:
        raise ValueError('Unknown method %s' % method)

    if degree:
        mean_angle = np.rad2deg(mean_angle)
    return mean_angle

Angle standard deviation calculation function
def angle_std(x, method="chordal_l2", degree=False):
    """
    Calculate standard deviations of angles.

    Parameters
    ----------
    x : float or array_like
        Array of angles. This array is flattened for the calculation.
    method : string, optional
        The standard deviation calculation method.
    degree : bool, optional
        If True, then the given angles are assumed to be in degrees.
        Default is False.

    Returns
    -------
    ret : float
        the standard deviation of angles

    Examples
    --------
    >>> angle_std([-170.0, 170.0, 175], degree=True)
    8.51008453539001

    >>> angle_std([-170.0, 170], degree=True)
    10.025560248464663

    >>> angle_std(-1.0)
    -0.0

    """
    x = np.asarray(x).flatten()
    if degree:
        x = np.deg2rad(x)

    if method == "chordal_l2":
        std_angle = circstd(x)
    elif method == "geodesic_l2":
        std_angle = np.std(x)
    else:
        raise ValueError('Unknown method %s' % method)

    if degree:
        std_angle = np.rad2deg(std_angle)
    return std_angle

But if there is consensus to create a new sub-module spatial.spherical, I agree that and agree adding my simple functions into it.

At the moment this module exists mostly in my mind :)  I will have to send a message to the dev-list to gather opinions on suitability first. Would it not be better to extend the methods in stats though, rather than having similar functions in two different modules?

You are right. My function is wrong.

Looking into the stats methods, there is some ongoing discussion about the methods already implemented. See #10096 and #5747. The standard deviation and variance do not obey the usual relations such as var == std**2.
In the angle_mean function:
    if method == "chordal_l2":
        mean_angle = circmean(x)
    elif method == "geodesic_l2":
        mean_angle = np.mean(x)
    elif method == "geodesic_l1":
        mean_angle = np.median(x)
    else:
        raise ValueError('Unknown method %s' % method)

The "geodesic_l2" and "geodesic_l1" methods need to account for wrapping. See the discussion of a circular median method in #6644.
In the angle_std function:
    elif method == "geodesic_l2":
        std_angle = np.std(x)

This calculates a mean which lies in the circle interior rather than on the circle itself. This will underestimate the true standard deviation.
It is a bit cumbersome to review code in an issue rather than a PR. Shall we wait for a consensus on the suitability of these methods for SciPy before making a PR?

Shall we wait for a consensus on the suitability of these methods for SciPy before making a PR?

OK, I got it.

The discussion appears to be dead. @AtsushiSakai: perhaps a message to the mailing list would get a better response.

I would also be very interested if this could be done for high dimensional coordinate systems, esp. spherical <-> cartesian for systems with dimension larger than 3.

I revisited this feature request after a long time and still believe that scipy should have functions for angle modulation and diff calculation.
Upon reevaluating where these functions should go, I thought it would be nice to add functions called circmod and circdiff to the stats module, with APIs consistent with stats' circmean, circstd, and circvar.
Here is an example implementation.

scipy.stats.circmod

https://github.com/AtsushiSakai/scipy/commit/3b0a0f59c28a03358b4740e6c2caa4fd73cd8c96

scipy.stats.circdiff

https://github.com/AtsushiSakai/scipy/commit/47a5a3aabe4e7a25eb94d897efa22c557e108942
The main question is whether these functions should be categorized as statistical functions to be included in the stats module.
Does anyone have any opinions? If I can get some positive feedback, I would like to seek opinions on the mailing list.

One difference is that circmean and friends are reduction operations. There are some elementwise functions in stats, like transforms, but most are elementwise because they compute a (scalar) statistic from a sample. Have you considered special convenience functions?

@mdhaber Thank you so much for your great comment. To be honest, I didn't know the convenience functions of the special modules.(If I had known about these functions earlier, it would have saved me a lot of time...)
I totally agree the stats module should focus on reduction operations and the special convenience functions is the best place for these circmod and circdiff functions!!.
And the functions in stats and the functions in stats can be referenced each other in the docstrings if needed.
Actually, my PoC implementations are using [_circfuncs_commons] in stats module,(https://github.com/scipy/scipy/blob/62e2879b34f6fc167375f3e37a0e1fc727cc88dd/scipy/stats/_morestats.py#L4309)
but, I can create a simpler common function for circmod and circdiff instead of it.


Merge master into Cadence 1.0 branch

@turbolent does this branch interrupt https://github.com/onflow/flixkit-go/pull/55 ?

LOL, we opened a PR for the same thing literally at the same time.
This one is already passing so #55 isn't needed


banChatSenderChat

Hey!
The banChatSenderChat method does not work. I specify the parameters correctly, I even tried it stupidly, the user can still send a message from the channels, also some error occurs on this method, but I cannot see it.
Example:
$target = $ctx->getMessage()->getChat()->getId();
$senderChat = $ctx->getMessage()->getSenderChat()->getId();
$ctx->banChatSenderChat($target,$senderChat);

Hi, if the method call fails, you should see an error message on the console. Otherwise it means the call was successful.
Can you try making the call through a browser and check the result?
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/banChatSenderChat?chat_id=<CHAT_ID>&sender_chat_id=<SENDER_CHAT_ID>
Thanks


Fix dismiss random event bug

Fixes https://github.com/DapperMickie/odablock-sounds/issues/1

Now checks the widget id for the dismiss option, if you click the dismiss button of the rune pouch, it won't make the sound.


Shortcuts also work in rich text editors

Configuration:

Web browser and its version: Chrome latest
Operating system and its version: Win10
PDF.js version: there is no version number in viewer.js :(
Is an extension: Yes. I've added an rich text editor to make annotations to the PDF

Steps to reproduce the problem:

Adding RTE to viewer.html
Pressing 'r', 'k', 'p', 'j', 'n' or any other shortcut without Shift or Control in RTE.

What is the expected behavior?
The pressed key should be only inserted in to the RTE.
What went wrong?
The shortcut will be also performed in pdf.js (rotating page while pressing 'r' ...).
So far this is the correct behaviour. But there is already code for exeptions starting in line 7823 in viewer.js. I.e. for input, textarea and select fields. But this won't work with div based rich text editors.
Would it make sense to check also "Element.attributes.contenteditable" so that the shortcuts won't get handled if the focus is in an editable element?

Would it make sense to check also "Element.attributes.contenteditable" so that the shortcuts won't get handled if the focus is in an editable element?

We do something similar at https://github.com/mozilla/pdf.js/blob/master/web/viewer.js#L2016 -- extend it to recognize other custom elements.

Add || curElement.isContentEditable to the block that yury referenced.

Will this option be included in the next pdf.js release? This will be useful for any element having contenteditable not to be affected by those shortcuts

Adding the bold line below in pdf.js fixed the issue with textAngular key events.
Thanks Rob.
...
var curElement = document.activeElement || document.querySelector(':focus');

if(curElement.isContentEditable) return;

var curElementTagName = curElement && curElement.tagName.toUpperCase();
if (curElementTagName === 'INPUT' || curElementTagName === 'TEXTAREA' || curElementTagName === 'SELECT') {
if (evt.keyCode !== 27) {
return;
}
}
....

Rather than leaving this open indefinitely, I'd suggest doing one of two things here:

Preferably closing the issue as WONTFIX, since this doesn't affect the default viewer as such (but rather only a custom implementation of it).
Given the simplicity of the suggestion in https://github.com/mozilla/pdf.js/issues/7156#issuecomment-206357229, accept a patch to fix this (probably qualifies for the 5-good-beginner-bug label).

Sure, please do!