How to not show parsing error or show customized error message?

I am using MathJax for showing equations on my webpage. Using the below config script. But in case of syntax error, I Don't wanna show the exception instead it should show the Jax as it is. Gone through about formatError in here https://docs.mathjax.org/en/latest/options/input/tex.html but How to use it? tried a couple of methods but it does not help.
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    showMathMenu: false,
    extensions: ["tex2jax.js"],
    messageStyle: "none",
    showProcessingMessages : false,
    jax: ["input/TeX", "output/SVG"],
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
      processEscapes: true,
      preview: "none",

    },
    processEnvironments: true,
  });
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js"></script>

also find it here : https://stackoverflow.com/questions/70891686/how-to-not-show-parsing-error-in-mathjax

You probably want to use the noUndefined and noErrors extensions.  The first will cause undefined macros to show as a red version of the macro name, but will typeset the rest of the expression.  For example x + \3 would appear as

rather than the undefined control sequence message that you are seeing above.
The second causes any other type of error to just display the original TeX code rather than the error message.  So \frac{a}{b with a missing close brace would just display as \frac{a}{b rather than the error message.
To do this, you would add
TeX: {
  extensions: ['noErrors.js', 'noUndefined.js']
},

to your configuration.  See the documentation for noUndefined and noErrors for more details.

It works! Thank you!
@dpvc


Float waveform PVs are displayed to the wrong precision

We have been testing pvws/dbwr with an EPICS waveform PV of type FLOAT, e.g.
record(waveform, "TEST:ARR0")
{
    field(NELM,"10")
    field(FTVL, "FLOAT")
}

This PV is displayed as expected in Phoebus, i.e.

However when the same BOB file is displayed in dbwr, the array values are given to a much higher precision which is misleading, i.e.

I have checked the pvws response and confirmed that this misleading array is what is sent back to the client therefore I think the issue lies in pvws. Note that we do not see this issue when using a waveform PV of type DOUBLE.
pvws tries to handle a FloatArray in the same way as it does for a DoubleArray however this doesn't seem to work. I think the problem is coming from the inherent way that floats are stored meaning that the value can change from the original (i.e.. the 'float precision issue'). I have found a way around this which minimizes the impact on the rest of the code. This includes converting the float to a string and then parsing as a double.
I have forked and created a branch with this fix - please see: https://github.com/ornl-epics/pvws/compare/main...rjwills28:pvws:float_waveform_fix. I have created a new method to handle floats based on handleDoubles, which handles the float values differently (see line 264+265 in above branch).

The example seems beyond the point. Your waveform record doesn't configure any display precision.
The widgets with default, pre -1 also don't configure anything.
So the widget may display the value any way it pleases.
Converting the float to a string and then parsing as a double seems like a hack to work around something that's undefined.
If you want to display floats with two digits, configure PREC=2 on the record. The PVWS then needs to send the number with display metadata that has precision=2, but the values are simply the "Float.toString" representation, since we do want to send the actual data, and the precision is a display hint.
Then make the widget use the precision to format the numbers.

I have configured the float record to have PREC=3, e.g.
record(waveform, "TEST:ARR0")
{
    field(NELM,"10")
    field(PREC, 3)
    field(FTVL, "FLOAT")
}

The results are similar, even if I change the precision in the widget from -1 to 3 to dictate the precision. See example below:
caput
caput -a TEST:ARR0 10 2.346 3.45
Phoebus

DBWR

So is the issue actually with DBWR and that it is not yet using the precision specified in the widget (or the PREC field in the case precision is -1) to configure the display? I still think that the information sent from PVWS is misleading as it doesn't represent the actual data and if I were to set the precision of the widget to a higher number I would start to see those spurious numbers instead of 0s.

Thanks for updating PVWS and DBWR to better handle the various array data types!

.. precision.. to 8 .. spurious values ..  same result in Phoebus.
.. feature of floating point numbers that cannot be represented correctly.

Exactly. Check the basics of floating point numbers, like https://en.wikipedia.org/wiki/Single-precision_floating-point_format:
"All integers with 7 or fewer decimal digits.. can be converted exactly into an IEEE 754 single-precision floating-point value."
In other words, you can at most have 7 significant digits for a float.
See this Java example that shows how trying to add two numbers gives a slightly wrong result as we exceed 7 digits overall:
        // There is a "float" data type, because that's what was used to store
        // floating point numbers way back, but it's not very accurate.
        float f1 = 99999.8f;
        float f2 = 99999.65f;
        // This should compute to 199999.45, but will print .44
        System.out.println(f1 + f2);
        if (f1 + f2  ==  199999.45f)
            System.out.println("What are you talking about, looks good to me?!");
        else
            System.out.println("Houston, we really do have a problem...");

That's why almost all floating point math is now done in double, with maybe two exceptions:
Some embedded system that has no floating point unit, so float or even a fixed-point integer is much faster,
and array transfers. For the latter, you transfer float arrays when they're "good enough" and of course smaller = faster. When then using that data to compute stuff, you likely do that in double.


XGBoost Evaluator Project Implementation

Hello! This is our implementation of the XGBoost Evaluator project, which was recently approved by the Google Team. Your input and feedback is much appreciated!

Could you review the diffs in this PR?  There are many things that are unrelated to your project.


revert(deis_output): Can't disable DISABLE_DEIS_OUTPUT"

Reverts deis/fluentd#65

im not entirely sure why this pr fails the build but need to get this merged so i can unblock ci


Fix scroll to symbol's documentation

Fix: https://github.com/godotengine/godot/issues/100087

Same fix as https://github.com/godotengine/godot/pull/90035 but for a different code path.
A doc page goes through this code path the first time it opens but depending on the device it will execute too early so the correct offsets weren't calculated yet.

Works on my end, thanks

Same fix as #90035 but for a different code path.

Seems like this was changed further in #96449.
CC @Maran23 @KoBeWi @kitbdev

I also start to wonder if this might be related to the refresh rate of the screen as suggested in the issue. I have a 240 Hz screen and never got this issue after my fix again

I use a 120hz one. I get it every time I use search in dev6

Seems like this was changed further in #96449.

From what I debugged, https://github.com/godotengine/godot/pull/90035 didn't fix the issue because the offsets were already calculated in that code path. Having it or reverting it didn't have any effect.
This PR affects another code path when the documentation is loaded and processed for the first time. When scroll_to_paragraph is called, the offsets aren't calculated yet.

My fix removed code that was calling the whole help logic twice, so it fixed a problem, but the scrolling is still not stable (enough). For now, I wonder if simply calling call_deferred() is enough here, doing the scrolling at the end of the frame.
EDIT: What is weird is that the finished signal is called, then the vscroll might get hidden, then queue_redraw is called. I wonder, if we rather want to emit the finished signal after the redraw instead (Or at least after _validate_line_caches is called, which seems to be done right after).

Yes, the main issue is that RichTextLabel.finished is emitted before the offsets are calculated in _validate_line_caches which happens in NOTIFICATION_DRAW.
https://github.com/godotengine/godot/blob/a372214a4a047ccf63d23c4406337b30e55ff60b/scene/gui/rich_text_label.cpp#L1899-L1902
I think it makes sense since these calculations are dependent on theme changes and only relevant when drawing. So connecting to the draw signal which happens after NOTIFICATION_DRAW  sounds like the best fix here.

Note that AFAIK, the RichTextLabel for the editor help updates on a thread, so there might be race conditions. CC @bruvzg

@passivestar Does CTRL+Left Click works for you?

yeah it does

Thanks!


stronger typing to help with #2406.

See #2406. This doesn't fix issue, but makes types more strongly typed to help reduce the window.
Avoid mutable fields.

✅ No public API change.

✅ No public API change.


Replace react-virtualized with react-window and any related libraries

As explained here, react-window is a better (lighter and faster) alternative.
Depending on our current usage of react-virtualized, we might also need some of react-window's related libraries.

Nice job, @katherineyli! 💯


Raster Sampling Crashes when Raster contains Missing data

This issue was imported from CodePlex
JonathanAB wrote 2010-12-03 at 16:26
I'm trying to apply a colourscheme to a raster. The program crashes here:
DotSpatial.Symbology.dll!DotSpatial.Symbology.DesktopRasterExt.GetRandomValues(DotSpatial.Data.IRaster raster = {DotSpatial.Data.Raster}, int sampleSize = 10000) Line 953 + 0x1a bytes C#

with a 'Throw key Not Found exception' in MSCorlib
The reason seems to be as follows:
There are 30720 data points in the raster but only 29000 or so contain data (I'm doing marine data modelling so there are coasts /islands etc. that are blank).
When the reservoir is built up it skips missing values so it is about 29000 points long.
However the code for sampling from the data uses an index drawn from a random number between 0 and Count (where count is the full 30720 data points), consequently it can sometimes read sample points from beyond the end of the dictionary.
Jonathan Beecham
JonathanAB wrote 2010-12-20 at 15:30
I can fix this by using the length of the reservoir for count, however I wouldn't be able to commit it back. At the moment this bug is causing my application to crash
Shade1974 wrote 2010-12-20 at 22:19
If you request to be a developer, I can set you up so that you can commit the fix Jonathan. We don't want your app to crash =).
Ted

Not actual.


Include "detail" param in Swagger for GET operation

Codecov Report

Merging #1420 (6c96dfb) into main (43dff8f) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main    #1420   +/-   ##
=======================================
  Coverage   99.99%   99.99%
=======================================
  Files         321      321
  Lines       23065    23065
=======================================
  Hits        23063    23063
  Misses          1        1
  Partials        1        1

Files
Coverage Δ

internal/apiserver/route_get_op_by_id.go
100.00% <100.00%> (ø)


TypeScript errors caused by generics in Object signatures

This appears to be a TypeScript bug (documented in Microsoft/TypeScript/issues/27215), so this is currently a tracking issue.
A number of TypeScript errors are caused by using generic types in Object signatures. This is most prevalent in the format stack. Here's an example error:
src/ol/format/GPX.js:54:7 - error TS2322: Type '{ [x: string]: T; }' is not assignable to type '{ [x: string]: { [x: string]: (arg0: Element, arg1: any[]) => any; }; }'.
  Index signatures are incompatible.
    Type 'T' is not assignable to type '{ [x: string]: (arg0: Element, arg1: any[]) => any; }'.

54 const GPX_PARSERS = makeStructureNS(
         ~~~~~~~~~~~

The generic type should be Object<string, Parser>, but TypeScript doesn't seem to resolve that.

New issue for tracking: https://github.com/microsoft/TypeScript/issues/26883
Currently in the TS backlog.

#9999 worked around these issues by adding // @ts-ignore to places affected by that TypeScript issue. We should revisit this when that issue is fixed.


examples/audio: no sound plays when a PS5 controller is connected

Ebitengine Version
edc3c829fb699ae08a935115aa3b4917ffb2887c (2.4)
Operating System

[X] Windows
[ ] macOS
[ ] Linux
[ ] FreeBSD
[ ] OpenBSD
[ ] Android
[ ] iOS
[ ] Nintendo Switch
[ ] Xbox
[ ] Web Browsers

Go Version (go version)
go1.19.4
What steps will reproduce the problem?

Run examples/audio
Connect a PS5 controller

What is the expected result?
A BGM continues to play
What happens instead?
A BGM cannot be heard
Anything else you feel useful to add?
Apparently a PS5 controller is recognized as an audio device.

                                ..,   hajimehoshi@HAJIMEHOSHI112E
                    ....,,:;+ccllll   ---------------------------
      ...,,+:;  cllllllllllllllllll   OS: Windows 10 Pro x86_64
,cclllllllllll  lllllllllllllllllll   Host: Parallels Software International Inc. Parallels Virtual Platform
llllllllllllll  lllllllllllllllllll   Kernel: 10.0.19044
llllllllllllll  lllllllllllllllllll   Uptime: 23 hours, 1 min
llllllllllllll  lllllllllllllllllll   Packages: 9 (scoop)
llllllllllllll  lllllllllllllllllll   Shell: bash 5.2.12
llllllllllllll  lllllllllllllllllll   Resolution: 3360x2100
                                      DE: Aero
llllllllllllll  lllllllllllllllllll   WM: Explorer
llllllllllllll  lllllllllllllllllll   WM Theme: aero
llllllllllllll  lllllllllllllllllll   Terminal: Windows Terminal
llllllllllllll  lllllllllllllllllll   CPU: Intel i7-1068NG7 (2) @ 2.310GHz
llllllllllllll  lllllllllllllllllll   GPU: Caption
`'ccllllllllll  lllllllllllllllllll   GPU: Parallels Display Adapter (WDDM)
       `' \*::  :ccllllllllllllllll   GPU
                       ````''*::cll   Memory: 5352MiB / 8169MiB
                                 ``

doesn't the ps5 controller have a speaker in it? it's probably windows being weird and reporting it as an output device.

Yes, a PS5 controller is a speaker.

This issue doesn't happen when not selecting the controller as a speaker explicitly. So there is a way to avoid this issue.

On second thought, I'm not sure this is fixable.

So, it sounds like a user's responsibility which speaker is used. The user can avoid selecting the controller explicitly.
At least, the latest Oto fixed a crash issue by connecting a PS5 controller (this is mysterious but this happens w/ a Steam game).
Let's mark this issue 'won't fix'.


[RESOLVED] Unavailable by ICMP ping

Problem started at 21:13:14 on 2023.04.08
Problem name: Unavailable by ICMP ping
Host: MF-FG
Severity: High
Operational data: Down (0)
Original problem ID: 5491
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23130&eventid=5491

Problem has been resolved in 4m 0s at 21:17:14 on 2023.04.08
Problem name: Unavailable by ICMP ping
Host: MF-FG
Severity: High
Original problem ID: 5491


Make a reusable map component and standardize all options

Currently, we have multiple implementations of the map and markers.
We need to make one component that we use all over the place

module fields configurator
module fields editor
module fields viewer
geometry page blocks base/configurator


Remove HCC

depends on PR #147
Contains tidy issues which need resolving.

Merge conflicts ((

@shurale-nkn Could you please take care of this PR?

Superseded by #759


Rename/clarify terminology

Lots of colloquial terms

drop pin
-pan to point
full_width
expanded
hide_other_controls

How might we make these (and other) terms clearer?

I changed some of these in v1

dropPin is changed to markers - for no reason other than to match the terminology Leaflet uses.
hide_other_controls is removed. The more I think about it, the more I think this isn't the purview of the library to force that particular UX opinion on users, especially since it's a blunt force solution: we don't know exactly what we're hiding, only that other controls (from Leaflet or other libraries) might exist and they should all go away, dammit. I think what we ought to do is recognize that whoever is responsible for integrating the plugin needs to make their own decisions (and write their own code) about what controls are visible and what's not, and when to do it.

Options still using the same terminology:

full_width is renamed fullWidth to correspond with Leaflet standards on using camelCase names, but the words are still the same
expanded is unchanged so far


Update OWNERS and move google groups to its own dir

/assign @jlewi @james-jwu @rmgogogo

/lgtm

/lgtm
/approve

CLA failed because I used github suggestion feature

@rmgogogo Can you help me lgtm?

/lgtm
/approve


Add UA for mysql and postgresql

Description
Resolves https://github.com/Azure/azure-sdk-for-java/issues/30351.
All SDK 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.

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

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

API change check
API changes are not detected in this pull request.


Flags for Open Targets and User Requested should be set at publication level, not study

In the curation app, the Study Details tab includes several check boxes for curator use, screen shot:
Conceptually speaking, "User Requested" and "Open Targets" are properties of the Publication and not of the Study - there is no instance where this flag would be set differently for different studies of a publication. They should be set on the publication view.  This feature is important for curator workflow when multi-study datasets are submitted via the deposition app.
UAT criteria

Curator accesses publication view for a given publication.
Curator is presented with the option to set flags for "User Requested" and "Open Targets" for the publication.
Once the flags are set, every study in the publication should be flagged accordingly.

Note: The change in status at publication level can happen at any time (before, while and after the studies are created).

@tudorgroza
The first (and maybe second) time I clicked the "change status" button for Open Targets for this publication http://snoopy.ebi.ac.uk:9680/gwas/curation/publication/33020668, I think the status did change to "true", but since then it does not change (nor for other publications, nor for the "User requested" one)
Clicking the button did not seem to have any impact on the existing flag on the study tab, but I can't verify this.: http://snoopy.ebi.ac.uk:9680/gwas/curation/studies/63073214

Ok - I'll look into it. The status should have an impact on the existing flag in the study tab ...

@ljwh2 - I've fixed this and tested on that publication. I need to fix the button though ... you should be able to press twice on it ... i.e., 'double-click'. Other than that - the functionality is there.

I have tested the functionality and clicked on buttons multiple times. It worked ok for me. @tudorgroza @ljwh2

Works fine for me now too @tudorgroza

Thank you! Will consider this done and plan it for release on Thu.


decksite/smoke_test.py::DecksiteSmokeTest::test_api_no_trailing_slashes is disabled and should be fixed

I fixed this and did some radical surgery to our routes. See the test for details.


Revert 14566

Revert #14566 which was prematurely merged without working in o1js

!ci-build-me

!ci-build-me


Refining post model/form

Closes #52, #53

I think this should be good to go

Looks good to me.

Uncommented out 'visibleTo' stuff. It is required, just needs to be a different type of input, maybe a multiselect.


Try to make LGTM happy again

The build for LGTM was failing on master, and there was a new alert.  This should fix it hopefully.

Codecov Report

Merging #54 into master will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #54   +/-   ##
=======================================
  Coverage   95.14%   95.14%
=======================================
  Files          48       48
  Lines        4845     4845
=======================================
  Hits         4610     4610
  Misses        235      235

Impacted Files
Coverage Δ

src/helpme.h
97.46% <100.00%> (ø)

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 99ccd97...6c06868. Read the comment docs.


Add BitNet

Created BitNet implementation by copying the transformer code and replacing nn.Linear with fused bit linear. Added a "bit" version for the attention module to pair with the BitNet.

@DustinWang1 Hello, thanks for this PR.
What's the diffs between SeptNet and BitNet?

Ah I did not mean to add SeptNet into this pull request. Is there any way for you to pull from "init changes"
on your side?

@DustinWang1 Feel free to add new commits to delete undesired parts. I will squash them before merging :-)

Also It would better to use isort to rearrange imported modules in your new commits

@DustinWang1 Another minor reminder, we have updated the attn layer and Xfmr++ impls recently, primarily on Cache update and param inits. Please ensure your code aligns with these latest changes.

Thanks for letting me know about isort. There are so many nice utilities out there :0. I've rearranged the imports and synced my changes with the cache update and param inits.

@DustinWang1 Thank you for your quick fix. Could you check out my latest comments again.

Are talking about the failed check? I'm currently fixing the style errors on my side, but keep in mind that I haven't changed many of the files that flake8 is citing, they were alr in the main repo. There is one error where S is not defined: "fla\ops\generalized_delta_rule\iplr\naive.py:43:9: F821 undefined name 'S'". I'm not sure how this part of the code works, could you take a look?

I replaced rms_norm_linear with a wrapper of the layer_norm_linear_quant_fn in modules/fused_bitlinear. For the swiglu function, I added an alternate version in modules/activations.py that uses a functional form of BitLinear. The function, bit_linear, is also just a wrapper for layer_norm_linear_quant_fn with rms_norm set to true. Let me know if this fixes the issue.


Images missing max-width property

Hello!
I've stumbled upon the very same issue as the https://github.com/dim0627/hugo_theme_beg/issues/19:

The text won't wrap as well.
Also code example is not scrollable by itself but makes whole page scrollable:

Code of this example:
``` json
{
    "shell":true,
    "cmd": ["rsync -az '$file' server.example.org:~ && ssh server.example.org 'chmod +x ./$file_name; ./$file_name'"],
}
```

Here is my blog source  to replicate problems.

Issue should be fixed with latest release.


Polls via surveys

@projectmushroom Please review
Polls via Survey Springster:
Homepage direct form:

Results page and results with percentage setting:


Bl anderson/dns backup requests

This is clearly in WIP shape, and tbh, I'm not convinced this is worth the noise but I posted it for discussion just in case anybody really likes the idea.
We already kind of get this behavior through timeouts and having multiple entries in the DnsServerAddressStream, which could just be duplicate entries afaict. It's not adaptive to typical query duration and doesn't provide a way to throttle retries but that is probably fine.

I talked briefly with @normanmaurer about this and we agreed that it adds a good amount of complexity to an already complex part of our system. For now I'm going to close this and I'm not convinced the juice is worth the squeeze.


Allowed user to enter multiple task names with the same description and tags

Good work! Perhaps you could update the UG to reflect the new capabilities?

sure!


Changed refs from master to main

Changed refs from master to main as main is the default branch and the documentation was outdated when referring to master.

Learn Build status updates of commit 1ebf46a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

task-reference/download-pipeline-artifact-v2.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 87ddb78:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

task-reference/download-pipeline-artifact-v2.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@iampoul Thank you for your PR. The part of the article that you edited is auto-generated from the source code for the task, which is here: "defaultValue": "refs/heads/master",
https://github.com/microsoft/azure-pipelines-tasks/blob/bbf3a829f0a254622cbe146a5eb0d5a2986cc566/Tasks/DownloadPipelineArtifactV2/task.json#L100
This is also the value that is displayed in the task assistant as the default when adding this task to a pipeline.
If I accept your PR it will change back the next time the automation for the task documentation runs.
To change this value, please submit a PR or GH issue there, and then it will automatically be reflected in the documentation here.
Thank you.


EfficientDet INT8 Quantization

Hi @PINTO0309,
Did you manage to fully quantize the EfficientDet models? I saw there are some quantized models in your zoo: https://github.com/PINTO0309/PINTO_model_zoo/tree/master/18_EfficientDet/03_integer_quantization, but they look more like only weight quantized, right?
I think you didn't add:
 converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
to limit the operators to be INT8?
I tried myself to fully quantize EfficientDet, and I failed with TF1.15.0, TF2.2.0 and TF2.3.0.
If you've managed to quantize the model, could you give me some enlightenment on this?
Thank you!

If you've managed to quantize the model, could you give me some enlightenment on this?

I have already successfully quantized it. However, there appears to be a problem with TFLiteConverter. The Dequantize OP does not appear to generate correctly, so using the generative model causes an error when inferring. I have published an issue in the official Tensorflow repository.
[TFLite] Two consecutive Dequantize OPs are generated in the structure of the model after integer quantization #41308

Thank you for your reply, it seems you didn't constraint all the operators to be INT8, so it's not a fully quantized model?
I got problems when I add the line:
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
this limit the converter to only use INT8 operators.
But due to unsupported INT8 operators such as DIV, ReduceMax, NonMaxSuppression V5, I failed to convert a fully quantized INT8 mode.

I tried to convert PyToch's model to saved_model. Can I try it?
https://twitter.com/PINTO03091/status/1322867230103597056?s=20

I noticed the issue of the tflite converter has been solved. The quantized model is still not present and not stated in readme table to support tpu. Is there another issue? have you tried to fully quantized efficientdet to run it on coral?

The full INT8 quantization was successful, but it seems to abort when compiled with edgetpu_compiler. This model intentionally removes the Post-Process. I'll have to ask support to find out the cause.

Repository of citations
https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch.git

EfficientDet D0 Full Integer Quantization .tflite
https://drive.google.com/file/d/1blXmW5FMuKJCbv7h6g5uzS-628FAfZ40/view?usp=sharing

edgetpu_compiler Abort

Graph

I have posted an issue. https://github.com/google-coral/edgetpu/issues/279

Hi @PINTO0309 , I've noticed you've added an edgetpu optimized efficientDet-d0. Did you managed to compile with edgetpu_compiler?

I think it can be compiled by lowering the resolution. For example, 512x512 -> 256x256 or 128x128

Hi thanks for the reply :1st_place_medal:. I acctually need a higher resolution, do you know something about an input limitation on edgetpu?

@yosefyehoshua

do you know something about an input limitation on edgetpu?

I don't know the compiler specifications because they are not publicly available.

how would you convert the tflite model ops to int8?

I'm not sure how to answer this, but just use TFLiteConverter.
Alternatively, you can use a tool I created to make the conversion somewhat easier without any technical knowledge.
https://github.com/PINTO0309/openvino2tensorflow

https://user-images.githubusercontent.com/33194443/103293964-38679780-4a34-11eb-8eaa-0cb2bf88a179.mp4


Still can't play Netflix movies

Error Code M7121-1331
Pardon the interruption
This title is not available to watch instantly. Please try another title.
-1044
To Reproduce
Steps to reproduce the behavior:

Go to Netflix.com
Trying to play some movie
And getting this error

Expected behavior
I expected some movie to play normally
Screenshots

Laptop:

OS: [Windows Ultimate SP1 x64]
Supermium 124.0.6367.245

Additional context
No more issues, only this for now

Modified browsers like this one do not have signed DRM, so many copyrighted sites will not display properly, only amazon prime video works for me but with limited video quality.

Modified browsers like this one do not have signed DRM, so many copyrighted sites will not display properly, only amazon prime video works for me but with limited video quality.

I didn't know about this, thanks. :(

A Widevine VMP signature is required for Chromium browsers to playback certain pieces of Widevine-protected content (not all protected content needs it, like Bell TV/Media streams in Canada, but most do). It is stored in ".sig" files included with the product (for example, Google Chrome has chrome.dll.sig and chrome.exe.sig).
We could load signatures from other products, but that might pose issues as Supermium itself does not have a signature, and it would likely require Supermium to close its source to get one.

@Dachoni03 as @win32ss Explained, Widevine will work in Chromium browsers with it enabled, however some sites require VMP. Sites that notably work fine are Hulu and Pluto. Sites that don't work are Apple Music and Netflix. A more in depth explanation of how this works and why VMP doesn't work in Supermium/Chromium/Thorium/UnGoogled Chromium (and why it is cost prohibitive to make it work), can be found in this writeup I did in my FAQ (number 2), after many people asked this same question > https://github.com/Alex313031/thorium-legacy/blob/main/docs/FAQ.md#2
Basically, unless someone wants to give one of us small Chromium fork developers many thousand bucks, Widevine will be limited and there is nothing anyone can do. Such is the ways of DRM (Digital Rights Management).

A Widevine VMP signature is required for Chromium browsers to playback certain pieces of Widevine-protected content...

We could load signatures from other products, but that might pose issues as Supermium itself does not have a signature, and it would likely require Supermium to close its source to get one.

Do not think so as certain FOSS browsers like Brave or Firefox have somehow Widevine VMP in it without requiring to close the source code but they might have slightly altered code which let's them get the signature. The only limiting factor is cost to implement a VMP signature.

Sites that don't work are Apple Music and Netflix.

... Add Spotify to that list :disappointed: (has anyone also tried Tidal? ) ...

This is after using CastLab's VMP and Widevine enabled Electron fork for two of my projects.
They are officially endorsed by Widevine.org and offer a free signing service after signing up with them,
with them delegating on your behalf. It only works with their Electron binaries.
Trying to spoof credentials, or use it to sign chrome.exe or thorium.exe doesn't work.

... with their free VMP-signing service; but should work if you've got $$ to throw at them :stuck_out_tongue_winking_eye: :
https://github.com/win32ss/supermium/issues/127#issuecomment-1868304931
https://github.com/win32ss/supermium/issues/127#issuecomment-2007327733
https://castlabs.com/widevine-certification/

Custom Electron & Chromium signing
We’ll work with you to integrate the Widevine CDM into your own custom Chromium or Electron codebase. Once we review your app for compliance, you’ll gain access to our easy VMP signing service.
Contact us to get started

... and after an initial "contact" with them:

For custom Chromium-based browsers, we offer a paid certification service that is divided into two phases:

Code Audit: after the implementation of the Widevine CDM into the application, our team evaluates if it is 100% compliant with Widevine's requirements
VMP Signing Service: upon successful completion of step 1, access to our VMP Signing Service is provided

If they have further interest and would like to learn more about pricing, signing an NDA would be required.

Does anyone even know the magnitude of the cost required to access CastLabs' paid certification service?
Apart from the cost involved, the fact Sm/Th both support EoS'ed Windows OSes surely doesn't bode well with Google :rage: , the owners of WV CDM; even if their shipped WV binaries need at minimum Win7 SP1 (x86) to load and run...
While current (mainstream) Chromium-based browsers require Win10+, the current WV CDM (v.4.10.2710.0) has lower system requirements, i.e Win7 SP1+; this is done purely to accommodate FirefoxESR-115, which officially supports Win7 SP1 & Win8.1 (and their WS counterparts) until Sep 30th of this year :cry: ; expect minOS requirements of the WV DLL to change to Win10+ soon-ish after...

@matu6968 @MrDick004 Brave and Firefox both pay for this. That part of their code is closed source. For example, you can find references to the python script to VMP sign Brave in their repos, but the script itself is missing.
Contrary to popular belief, Brave and Firefox are not completely open source. If you build the source code yourself at the same commit as an official release, you will not get exactly the same result. API Keys for Google Sync, Brave Wallet, Location API, and in Firefox, for Firefox View, are all missing from their repos.
So, they are not using some magic way to get VMP, rather, the publicly released builds are 99% the public source code, but with a some API Keys and VMP added. The reason is that both cost money. API requires servers on their end to handle requests, and VMP costs.

I will have a bit of a bizarre idea maybe, but if I pay for a streaming service I have a right to be able to watch it, even without DRM, then in my opinion DRM is an extremely useless means of protecting movies, if one wanders around on github or the various forums there are also too many amateur tools or browser extensions that allow one to bypass DRM and download movies etc. There are tools that even bring modern things like DirectX 11 to Windows XP, to give an example, I am almost sure that in the future on github or elsewhere someone will find a ruse to finally be able to watch Netflix movies even without DRM.

R3dfox aka vyvfox and Floorp also have troubles, so every engine will have a problem even the new LadyBird

R3dfox aka vyvfox and Floorp also have troubles, so every engine will have a problem

... R3dfox isn't even built (by default) with any DRM (aka EME) support :wink: :
https://github.com/Eclipse-Community/r3dfox/blob/49a9d5ddf69d897a7cfbf411c5817f236c7e6813/mozconfigs/mozconfig-win#L68

Because DRM simply doesn't work, R3dfox had partial support for DRM, but it simply doesn't work, like here on supermium, it is possible with a little ingenuity to enable it but only at the L3 security level, which is now obsolete for many websites like netflix that require at least L1 protocol, this can only be achieved by purchasing the license from Widevine etc., In short, the browser manufacturer would have to purchase a certain license to make the DRM work, for free precisely perhaps it is possible to get only the L3 protocol, but with video quality limited to 480p for copyrighted content.
I have also tried copying the DRM files from the original Firefox 115 ESR but it does not work, the maximum protocol that is activated is always L3, to make higher protocols work for example you necessarily need an original purchased license.

Fork with L3 to SD quality: https://github.com/lunanakaya/luminafox/releases/tag/128.0.2-rc1 (I doubt works with L1 by hacking Google or purchased license).

Unfortunately, a valid signature file for both the executable and the main DLL (xul) are still required, as official Firefox and Waterfox binaries offer.
I was on the fence about this issue for some time, but it is apparent that with the use of VMP signing, streaming discriminates against browser users in ways that other forms of media do not and effectively discourages the use of legal methods of obtaining content. I will be looking into a measure to resolve this problem - I think it will require the use of both binaries and signatures from other products, so it could cost 150-200 MB and have to be supplied by the user as we don't have distribution rights for the binaries of other browsers.

I am having this issue as well and reading through the replies,

I think it will require the use of both binaries and signatures from other products, so it could cost 150-200 MB and have to be supplied by the user as we don't have distribution rights for the binaries of other browsers.

since the binaries have to be user provided, could we not just install google chrome and get the binaries from there? I'm guessing since both are chromium it could theoretically work?


refactor performance specs

I added a few things around the performance specs.

The data that was being printed for the performance specs was not the same as being used for the expect statements. Each benchmark was being run twice, once for the expect and once for the printed stats.

I added some info to the stats message. It now looks like:

Serialize to JSON string 1 with polymorphic has_many
Serializer             Records    Time       Speed Up
Fast serializer        1          0.16 ms
AMS serializer         1          1.05 ms    6.71x ✘
jsonapi-rb serializer  1          0.15 ms    0.94x ✘
jsonapi-serializers    1          0.08 ms    0.49x ✘

Serialize to JSON string 1000 with polymorphic has_many
Serializer             Records    Time       Speed Up
Fast serializer        1000       10.98 ms
AMS serializer         1000       324.36 ms  29.55x ✔
jsonapi-rb serializer  1000       42.87 ms   3.91x ✔
jsonapi-serializers    1000       22.89 ms   2.09x ✔

Speed factor comparison defaults to 1.

I renamed things from our_* to fast_jsonapi_* to be more explicit.
Pulled out metadata for serializers into a constant, makes it easier to add more comparisons.
Updated README with info on running/not running performance specs.

The stats are printed out way better now. Thank you.


Why Average Block Time and Active Validators are 0?

I run bdjuno start with no error.

Big dipper shows the right block height, but Average Block Time and Active Validators are 0

I checked table block, all datas were in it. And I checked table validator, all validators were in it.

But when I checked table validator_info it was empty!

I don't know why, I follow the doc and run bdjuno successfully.
Please help me. Thanks

Hi @llwinner would you let me know which branch you are running on? Thanks!

On the other hand, as I looked up the repository, it might be an expected condition? There are two possible places that would INSERT INTO validator:

in staking.HandleGenesis(...), it will save validators details to both validator and validator_info tables which will only be triggered upon genesis file parsed
in staking.HandleBlock(...), it will save validators details to validator and validator_status which will be done upon worker receiving new blocks

Did you run bdjuno parse genesis-file before starting or can you purge the database, run the genesis parse command and check if validators have been persister after the parsing? Thanks!

@zura35 Thanks for your reply, my bdjuno branch is chains/cosmos/mainnet
My cosmos version is 0.46.7

I used ignite to create an empty chain, there were no transactions
Before I started the database, I run bdjuno parse genesis-file. There were no outputs after I run bdjuno parse genesis-file.

Hi @llwinner I think this is expected to not be able to fetch any validators upon genesis file parsed
I have tried to initiate a new chain with ignite scaffold chain example, and  this is the genesis file created from the command:

Please see if this answer your question 🙏

@zura35 My genesis.json is the same

My empty chain has run for several days, block height was 18381, but still not get the validator data...

Hi @llwinner yes, the genesis file contains the details of you genesis block, as yours is the same as mine, this explains why you have empty validator_info from point 1 stated here
Going back to your original question where you see 0 active validators but a few rows in the validator table, you can actually look up the validator_status table to see if they are jailed 🙏

Hi, I have the same problem, none of the validators are jailed but they are not displayed. Average block time is also 0.

@llwinner FYI I have fixed it by updating the config.yml file with more modules:
...
    modules:
        - messages
        - auth
        - bank
        - consensus
        - feegrant
        - gov
        - mint
        - modules
        - pricefeed
        - staking
        - slashing
        - distribution
        - daily refetch
        - wasm
...

Now it's showing validators and average block time:


Password Reset Fails if User Must Change Password at Next Logon is Checked

Hello! Thanks for this utility, it rules.
We had an issue with the admin account not setting the password. It came down to If User Must Change Password at Next Logon is Checked the set-localuser -password bit fails. I fixed this previously using an ADSI call directly, and it seems to do the trick here. Something like this:
([adsi]"WinNT://$env:computername/$user,user").SetPassword($password)
set-localuser $user -AccountNeverExpires -PasswordNeverExpires $true
Thanks!

Hey @NickolajA  that is the thing i mentioned to you at MMS. I've put a pull request to add the functionality at the remediation script. Please have a look when you have the time.
Thanks


Solid: Unable to build app using generated library

Describe the bug
Unable to build an application using a using a generated solid library, as the vite.config.ts and project.json are written as an application config; not a library.
To Reproduce
npx create-nx-workspace --preset=apps solid-test
cd solid-test
npm i @nxext/solid
nx g @nxext/solid:application apps/app-web
nx g @nxext/solid:lib libs/lib-app-web
nx g @nxext/solid:component hello --project lib-app-web

import { Hello } from "@solid-test/lib-app-web"; in apps/app-web/src/App.tsx  and place it in the app layout.
Manually resolve #1061 #1161 and #1162
nx serve app-web
See the app runs,
nx build app-web
see the build fail

> nx run lib-app-web:build:production

vite v5.4.11 building for production...
✓ 0 modules transformed.
x Build failed in 8ms

 NX   Could not resolve entry module "libs/lib-app-web/index.html".

Pass --verbose to see the stacktrace.

Expected behavior
Build should work.
Additional context
Looking at what happens with the @nx/react generators for libraries, I believe there are a few things needing tweaking but most important of them is that the vite.config.ts and project.json should probably not have the build targets in it.
$ git diff
diff --git a/libs/lib-app-web/project.json b/libs/lib-app-web/project.json
index ed3173b..510b303 100644
--- a/libs/lib-app-web/project.json
+++ b/libs/lib-app-web/project.json
@@ -17,22 +17,6 @@
       "options": {
         "jestConfig": "libs/lib-app-web/jest.config.ts"
       }
-    },
-    "build": {
-      "executor": "@nx/vite:build",
-      "outputs": ["{options.outputPath}"],
-      "defaultConfiguration": "production",
-      "options": {
-        "outputPath": "dist/libs/lib-app-web"
-      },
-      "configurations": {
-        "development": {
-          "mode": "development"
-        },
-        "production": {
-          "mode": "production"
-        }
-      }
     }
   }
 }
diff --git a/libs/lib-app-web/vite.config.ts b/libs/lib-app-web/vite.config.ts
index bae39ff..5aed6e6 100644
--- a/libs/lib-app-web/vite.config.ts
+++ b/libs/lib-app-web/vite.config.ts
@@ -7,25 +7,9 @@ import { nxCopyAssetsPlugin } from<EMAIL_ADDRESS> export default defineConfig({
   root: __dirname,
   cacheDir: '../../node_modules/.vite/libs/lib-app-web',
-  server: {
-    port: 4200,
-    host: 'localhost',
-  },
-  preview: {
-    port: 4300,
-    host: 'localhost',
-  },
   plugins: [solidPlugin(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
   // Uncomment this if you are using workers.
   // worker: {
   //  plugins: [ nxViteTsPaths() ],
   // },
-  build: {
-    outDir: '../../dist/libs/lib-app-web',
-    emptyOutDir: true,
-    reportCompressedSize: true,
-    commonjsOptions: {
-      transformMixedEsModules: true,
-    },
-  },
 });

This is a bit closer to the generated vite.config for the react project; and this builds successfully. and nx run app-web:preview runs successfully
$ nx build app-web

> nx run app-web:build:production

vite v5.4.11 building for production...
✓ 11 modules transformed.
../../dist/apps/app-web/index.html                 0.60 kB │ gzip: 0.36 kB
../../dist/apps/app-web/assets/index-kNDHXHrP.css  0.71 kB │ gzip: 0.47 kB
../../dist/apps/app-web/assets/index-k5vfhgCj.js   9.53 kB │ gzip: 3.85 kB
✓ built in 274ms

———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

 NX   Successfully ran target build for project app-web (1s)

I suspect there may be other issues with the lint and test setup as well but I haven't looked much into those yet.
I'm concerned I'm now pushing into spam territory with the recent number of bugs on a similar set of entry points into the project so I will avoid opening any more issues related to "solid project generation".  I'm wondering if  #1061 #1161 #1162 and this one should be addressed in one PR since they're kind of all contributing blocks to the process of new project setup and build?

I did experiment with making vite library build as per https://vite.dev/guide/build.html#library-mode and while this does technically make the error go away; it now generates index.html and css/js files in the dist folder that aren't actually usable by anything.
I suspect this is why the react library doesn't configure it this way.
I do wonder how this will work with lazy imports and code splitting though. https://docs.solidjs.com/reference/component-apis/lazy I am not sure if this is something that the app vite will manage or if the library itself needs to be configured in some way to enable it. I'll play with it later and update here if I see any success.

Also I'm happy to look at making PRs for some of these issues I've raised, but I'm new to nx plugin dev so it might take some time for me to find the right templates and config functions to update.


Theme for WebStorm

I quite like how the aura-theme looks, but my favourite editor is WebStorm, could we have a port for Intellij products? Resources: https://www.jetbrains.com/help/webstorm/user-interface-themes.html https://www.jetbrains.com/help/webstorm/settings-colors-and-fonts.html

Agreed. I am also using JetBrains products and would love to see the theme among.

+1

+1

Hi @mp-alexchadwick , there's already a discussion about JetBrains IDE family, but we need help to make this happen. Unfortunately, I can't do this by myself right now. For this reason, I'm closing this issue, when someone flags the interest to make the port there, I'll convert that discussion to an issue. Thanks 💜


Move MEwave macros into ME wave folder

The Marine Energy - Wave macros were appearing for every technology. Move them to a folder in the macros folder so they only appear for MEwave.

Nice catch, I'm sure I meant to do that at some point but I must've forgotten about it.

I tested that just now and get this for ME Wave Report:

The ME Wave Compare cases gives the error:
Macro did not finish.
[679] referencing unassigned variable:baselineCase

So it looks like some modifications might be necessary to make them work with tidal.

You are right ME Wave Report does not work I must've misremembered.
On the ME Wave Compare Cases I am getting wave and tidal cases to work so long as I click simulate on each case at least once before running the macro.
I'm fine with just having the MEwave folder for now as that is the intended use for the macros. If there's any desire for further use it can be addressed in the patch. I'd say go ahead and merge.


Add support for arm32v7 (RPi)

Which version and edition of Flyway are you using?
latest-alpine
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
CLI from Docker
Which database are you using? (Type & version)
PostgreSQL
Which operating system are you using?
RPi OS
What did you do? (Please include the content causing the issue, any relevant configuration settings, the SQL statement(s) that failed (if any), and the command you ran)
Tried to run the container and got this:
standard_init_linux.go:211: exec user process caused "exec format error"

This normally happens when there is a discrepancy between the architecture of the executable and the target OS.
Would it be possible to make it available a container or an executable for ARM?

There is an open issue in our docker repo here, so this is on our radar
Closing this one as a duplicate


Update License

Fix license update in setup.py file.

The License has been updated to BSD License in the setup.py.


New Version

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/112757
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.2.2 -m "<description of version>" a6e9b7c18a99434d6be297ea70b26172cb91e262
git push origin v0.2.2


Get QA org ids from MetaCI

requires the MetaCI OrgMart PR to merge.
usage (for cumulus) is
cci service connect metaci
cci task run get_org_list -o repo_id 4 -o output_file qa_push.txt
cat qa_push.txt

Very barebones because I don't actually know what you need or want in your qa push flow, chris. but. here's a start!

Shouldn't this be in MetaCI CLI instead?

closing this, will re-open in metaci-cli


Plumbing In Model Creation

Summary
Plumbing in the ability to add new models
Description for the changelog
The new model button now works, though the back-end is not hooked up yet.
Other info
Back-end will be covered in other work

Converting to draft until I add e2e tests.  Creating a new model and using the edit page would likely make a great smoke test as well.

Codecov Report

Merging #287 (8a6fdf3) into v2-development (ee0698a) will decrease coverage by 2.90%.
The diff coverage is n/a.

:exclamation: Current head 8a6fdf3 differs from pull request most recent head b90f9d2. Consider uploading reports for the commit b90f9d2 to get more accurate results

@@                Coverage Diff                 @@
##           v2-development     #287      +/-   ##
==================================================
- Coverage           93.97%   91.07%   -2.91%
==================================================
  Files                  91       65      -26
  Lines                1278      840     -438
  Branches               72       72
==================================================
- Hits                 1201      765     -436
+ Misses                 76       74       -2
  Partials                1        1

Impacted Files
Coverage Δ

src/router/local.js
100.00% <0.00%> (ø)

src/views/ThreatModelSelect.vue
100.00% <0.00%> (ø)

src/store/actions/threatmodel.js
100.00% <0.00%> (ø)

src/store/modules/threatmodel.js
100.00% <0.00%> (ø)

src/controllers/auth.js

src/config/loggers.config.js

src/env/Github.js

src/env/ThreatDragon.js

src/env/Encryption.js

src/helpers/crypto.promise.js

... and 23 more

Continue to review full report at Codecov.

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


How to override checkServerIdentity for ssl connection?

I'm submitting a...

[x] Question

Current behavior
I can only connect to my google cloud psql instance with rejectUnauthorized: false.
Expected behavior
I can connect to my google cloud psql instance with rejectUnauthorized: true.
Minimal reproduction of the problem with instructions
Create a google cloud managed postgresql instance and switch on ssl/tls with the self signed CA. Then try to run migrations on the database from a remote system (like your local workstation).
What is the motivation / use case for changing the behavior?
Googles certificates are badly configured. They give you an ip to connect to, but the ip of the server is not in the list of altnames in the certificate the server provides. You will get this error message when attempting to connect with rejectUnauthorized: true:
[ERROR] Error: Hostname/IP doesn't match certificate's altnames: "IP: X.X.X.X is not in the cert's list: "

Now one could possibly work around this with implementing a custom checkServerIdentity function for the tls connection by node which should be more secure than just rejectUnauthorized: false. Alas db-migrate expects configuration via a database.json, not javacript so I cannot implement the checkServerIdentity function.
So now to the question: How to read the config for db-migrate from a javacript file?
 This flag should never be false because the check prevents a MITM-attack on the Server-to-Database-Connection!
For everyone else: Do not switch this check off. Not even in a development setting. Just use AWS as supposed above.

@olso If you read my OP carefully you can see that I considered and rejected the idea of doing what you suggest right from the beginning.

@Levino I know its wrong, but I'm using Heroku... https://help.heroku.com/MDM23G46/why-am-i-getting-an-error-when-i-upgrade-to-pg-8

Their guide is just wrong. They are crazy fools. Stop using them if they work in this poor level. This kind of advice should be illegal and punished hard.

Jesus, if I understand it right until recently node-postgres silently disabled cert checking and only enabled it now. I am flubberghasted! They write unbelievable bulls**t like this:

This means your connection attempt may fail if you are using a self-signed cert.
Of course this must fail because a self-signed cert is insecure ffs! Do not use self signed certs, ever!

No offense intended @olso but if you are confused here you should read up a bit about encryption and best practices for secure remote connections.

It's fine, I get the issue. I'm talking to Heroku support for more info.
Just found out that 😕 means confused, going to change my reaction

self signed is not a bad thing when it is intended to be a managed PKI which is quite a normal thing for databases in enterprises. of course those PKIs are mildly more secure than just a common people self signed cert, but is equally the same thing. I am agreeing that rejectUnauthorized is horribly bad idea except maybe for your local dev environment, but supplying a CA cert of the signing PKI is always the actual option. You @Levino could ask heroku if there is a CA cert that they can supply to you.

for reference, quick google gives this https://devcenter.heroku.com/articles/heroku-postgres-via-mtls, so they offer something in that regards.

Of course if you set up your own CA and install the root certificate on the client machine as trustworthy, you can secure your setup. But still you need to reject any unauthorized connection to the database. And managing your own CA securely is hard and cumbersome. I do not recommend it.

well managing the trust in the case of auth by cert in a database environment wouldn't be very healthy to be done by a public CA. it would be too slow, too cumbersome to validate new certs and in the end also too expensive and insecure. public CAs are the way to go in general for the validity of user facing certificates of all kinds. System services have different requirements and you certainly don't want anyone else to be able to sign your auth certificates for your services other than you. So you need a PKI infrastructure at that point. And you never install those root CAs on the machine, as they're single purpose and are supplied to such systems (as in this case a database) directly as a configuration param.
and no providing a CA yourself is nothing else than "self-signed". In fact self-signed means you generate a CA adhoc to sign the cert with.
managing your own CA is a piece of cake, everyone can do it. Securing it, is a different tier, but also not essentially hard. In the end it is as secure as the password for the root account is if it is really strong. If the user who has access to it gets compromised, the whole system is compromised. This can be circumvented with zero trust topologies, however rarely implemented, not even by big hairy monkey companies.

I get your point. But even with all that you still want "unauthorized" connection attempts to be refused.

I use amazons RDS now. All is working fine, no need for client certificates, which is even better, I find.

I'm just starting to use db-migrate and I'm interested to know how you connect it to an AWS RDS instance safely - is your database public?

Hey @mattbbc that's an oldy here.
First of all I feel a little ashamed of the strong and harsh language I used here. I would like to apologize to all people whose feelings I might have hurt, for example @olso . I am sorry. That was unnecessary. I have changed a bit since then (at least I hope so). I thought about deleting some of the comments but will leave them for transparency reasons.
On your question: Maybe I exposed the database to the internet, I do not remember. I think you can limit the IP range take is allowed to connect to it. But if you use TLS and a strong password, the database is safe. Maybe it could be ddoses, but that is it. Another possibility is a server in the same VPN as the database which exposes an ssh server with cert only authentication (not password). You then can tunnel the connection through this server to your database via ssh. That is what I would recommend today.

This is one of the top results in duckduckgo for connecting to a GCP Cloud SQL postgres w/self signed certs. After spending a day bashing my head against the wall like @levino did, I can say the only solution right now is to not verify the self signed cert at all via setting the rejectUnauthorized to false when using GCP Cloud SQL postgres with a private IP. The node-postgres package that most of the postgres packages are using does not support the verify-ca ssl mode which would assert the CA but not fail on the CN not matching.
https://github.com/brianc/node-postgres/issues/2934#issuecomment-1948967853


I know that you're aware about the second version being more buggy, but...

Couldn't you have just released it later, when it's more polished? Version 1 is way more polished than version 2, especially with the jump animations deleted which I did.
I think it'd be better to have version 1 (with the jumping animations deleted) as the main download and version 2 as testing.

Sorry for the late reply
I don't have much knowledge of Java and Fabric API, so completely rewriting the mod was a bit of a challenge for me. Nevertheless, when I made it, it had a lot of bugs, but I decided to put it on GitHub anyway so I could fix the bugs in future releases
But time went on and I stopped playing Minecraft, got into other things, so this repository is no longer maintained. Maybe someday I'll continue development, but I don't have the effort and motivation to do so now
I also updated the README.md that says to use v1.0 instead for anyone who randomly finds this and wants to play with it, so I can close the issue, I guess?


Fixed issue 160 so that it only applies one limit per request.

Fixes #160
Changes proposed in this pull request:

Adds the ability to only apply one limit per request.
Also adds the variable breakOnMatch that can be set to enable to disable this change, as a default the change is be disabled.

Hi @andrew-holman thanks for your contribution, may I ask you to add this new property to the README file? :)

Let me know if you think I need to make any more changes.

Just let me know if there is anything I can do to help the review process along.

Hi @andrew-holman sorry for this long delay, I just merged it and will release a new version later today.

Okay, thanks so much! I'm currently using the 1.7.x branch, will that be updated with this change as well?

If you have spare time to do that would be great!


"Currently do not support resetting a reader while in the middle of iteration."

I have this piece of code:
batch_size = 8
with converter_train.make_torch_dataloader(transform_spec=transform, batch_size=batch_size, num_epochs=1) as dataloader_train, \
  converter_test.make_torch_dataloader(transform_spec=transform, batch_size=batch_size, num_epochs=1) as dataloader_test:
      trainer.fit(
        model,
        dataloader_train,
        dataloader_test,
      )

when it gets to the validation bit, it throws the previously mentioned
Currently do not support resetting a reader while in the middle of iteration.

I am using PyTorch Lightning
The stack looks like this:
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<command-128477> in <module>
     65         model,
     66         dataloader_train,
---> 67         dataloader_test,
     68       )

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/pytorch_lightning/trainer/states.py in wrapped_fn(self, *args, **kwargs)
     46             if entering is not None:
     47                 self.state = entering
---> 48             result = fn(self, *args, **kwargs)
     49
     50             # The INTERRUPTED state can be set inside the run function. To indicate that run was interrupted

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in fit(self, model, train_dataloader, val_dataloaders, datamodule)
   1071             self.accelerator_backend = GPUBackend(self)
   1072             model = self.accelerator_backend.setup(model)
-> 1073             results = self.accelerator_backend.train(model)
   1074
   1075         elif self.use_tpu:

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/pytorch_lightning/accelerators/gpu_backend.py in train(self, model)
     49
     50     def train(self, model):
---> 51         results = self.trainer.run_pretrain_routine(model)
     52         return results
     53

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in run_pretrain_routine(self, model)
   1237
   1238         # CORE TRAINING LOOP
-> 1239         self.train()
   1240
   1241     def _run_sanity_check(self, ref_model, model):

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/pytorch_lightning/trainer/training_loop.py in train(self)
    392                 # RUN TNG EPOCH
    393                 # -----------------
--> 394                 self.run_training_epoch()
    395
    396                 if self.max_steps and self.max_steps <= self.global_step:

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/pytorch_lightning/trainer/training_loop.py in run_training_epoch(self)
    514             should_check_val = self.should_check_val(batch_idx, is_last_batch)
    515             if should_check_val:
--> 516                 self.run_evaluation(test_mode=False)
    517
    518             # -----------------------------------------

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/pytorch_lightning/trainer/evaluation_loop.py in run_evaluation(self, test_mode)
    580
    581         # run evaluation (val_step + val_step_end + val_epoch_end)
--> 582         eval_results = self._evaluate(self.model, dataloaders, max_batches, test_mode)
    583
    584         # log the final eval loop metrics

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/pytorch_lightning/trainer/evaluation_loop.py in _evaluate(self, model, dataloaders, max_batches, test_mode)
    303             dl_max_batches = max_batches[dataloader_idx]
    304
--> 305             for batch_idx, batch in enumerate(dataloader):
    306                 if batch is None:
    307                     continue

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/petastorm/pytorch.py in __iter__(self)
    113             raise RuntimeError(_PARALLEL_ITER_ERROR)
    114         if self._in_iter is not None:
--> 115             self.reader.reset()
    116             logger.warning('Start a new pass of Petastorm DataLoader, reset underlying Petastorm reader to position 0.')
    117         self._in_iter = True

/local_disk0/.ephemeral_nfs/envs/pythonEnv-af2dcbc2-ffc2-4df8-b9aa-f92890c53c30/lib/python3.7/site-packages/petastorm/reader.py in reset(self)
    456             # drop these in-flight samples? Or just ignore it? What would happen if we have two concurrent ventilators
    457             # that are emitting load requests at the same time?
--> 458             raise NotImplementedError('Currently do not support resetting a reader while in the middle of iteration. '
    459                                       'You can call reset only after all samples were consumed.')
    460         self.last_row_consumed = False

NotImplementedError: Currently do not support resetting a reader while in the middle of iteration. You can call reset only after all samples were consumed.

Lightning trainer config:
trainer = Trainer(
  max_epochs=50,
  gpus=1,
  logger=logger,
  check_val_every_n_epoch=5,
  progress_bar_refresh_rate=250,
)

Is there something that I am doing wrong?

The error indicates that we were trying to reset() a reader before the number of epochs specified during its creation was consumed. It's hard to say what went wrong without seeing how do you create the reader/dataloader. Can you please post that code?
Also, please post the version of pytorch_lightning that you use.

petastorm[torch]  (0.9.5)
pytorch-lightning==0.9.0

Creation code (a bit simplified)
indexed_dataset = some_data \
  .zipWithUniqueId()

def is_validation(x):
  return (x[1] % 100) >= 80

def not_(f):
  def step(x):
    return not f(x)
  return step

validation_dataset = indexed_dataset \
  .filter(is_validation) \
  .map(lambda x: x[0])

training_dataset = indexed_dataset \
  .filter(not_(is_validation)) \
  .map(lambda x: x[0])

def rdd_to_df(rdd):
  rdd = rdd.map(lambda x: Row(**(x)))
  return spark.createDataFrame(rdd)

training_dataset_rdd = training_dataset.map(vectorize).map(create_pytorch_dict_with_numpy_bytes)
validation_dataset_rdd = validation_dataset.map(vectorize).map(create_pytorch_dict_with_numpy_bytes)

converter_train = make_spark_converter(rdd_to_df(training_dataset_rdd))
converter_test = make_spark_converter(rdd_to_df(validation_dataset_rdd))

For now, I've loaded the validation dataset into memory and used the regular DataLoader and it seems to work fine.
But I've also noticed a strange behavior just recently - if I start training from "scratch", the process will train as it is supposed to - it will go from epoch 1 to 50. However, if I reuse the same session run and run the pipeline without modifications, it will run just the last epoch and terminate.
@selitvin do you have any ideas why that could happen? :)
Thanks

Hmm, I am not sure. I am not familiar with pytorch-lighting and how they interact with DataLoader.

I am facing the same issue using a custom petastorm.Dataloader (actually I only provide a custom collate function, not changing the Dataloader at all) and feeding it to pytorch-lightning Trainer. @tadas-subonis were you able to fix it or we shall rely on the default Dataloader if using pytorch-lightning? By chance, did you experiment with PyTorch to see if in that case, it works as expected?

Is there any progress on this?

Is there any progress on this?

I had to switch to plain PyTorch, was not able to do it using Pytorch Lightning,

Also getting this issue. At first I was using "limit_train_batches" in my Pytorch Lightning trainer, but I removed it and still ended up with this error. PTL runs two validation steps at the beginning of the model, then returns to the validation dataloader when it finishes a training epoch. I assume, upon beginning the full validation run, it resets the val dataloader. If this is what's happening, it sounds like Pytorch Lightning is not supported. If so, that should be made clear somewhere.
Unfortunately, I cannot copy my stack trace due to some VPN things, but the error occurs at line 116 in petastorm/pytorch.py and then line 490 at petastorm/reader.py

I solved this w/ num_sanity_val_steps=0 in my PytorchLightning Trainer! Seems like my intuition above was correct, and after turning the sanity check off, the val set doesnt need be reset, and no errors occur.
Nice!

As an alternative fix to this, there's a relatively simple workaround that involves subclassing the Petastorm DataLoader, such that instead of being initialized with a Reader object, it is initialized with a zero-argument function which returns a Reader, so that the loader can re-create its reader if needs be. A possible implementation of this is given below:
import logging
from petastorm.pytorch import _PARALLEL_ITER_ERROR, DataLoader, decimal_friendly_collate

logger = logging.getLogger(__name__)

class SafeResetLoader(DataLoader):
    """
    A data loader adaptor for ``torch.utils.data.DataLoader``.
    This class iterates and returns items from the Reader in batches.
    Behaves the same as the Petastorm dataloader, except it takes a function which generates a reader,
    so that it can reset itself at any time.
    This loader can be used as an iterator and will terminate when the reader used in the construction of the class
    runs out of samples.
    """

    def __init__(self, reader_fn, batch_size=1, collate_fn=decimal_friendly_collate,
                 shuffling_queue_capacity=0):
        """
        Initializes a data loader object, with a default collate.
        Number of epochs is defined by the configuration of the reader argument.
        An optional shuffling queue is created if shuffling_queue_capacity is greater than 0. No samples will be
        returned to a user by the ``DataLoader`` until the queue is full. After that, batches of `batch_size`
        will be created by uniformly sampling the shuffling queue. Once no more samples are available from the data
        reader, the shuffling queue is allowed to be consumed till no further samples are available.
        Note that the last returned batch could have less then ``batch_size`` samples.
        NOTE: ``make_batch_reader`` has it's own ``shuffle_row_groups`` argument. It randomizes order in
        which parquet row-groups are loaded and has no effect on the order of rows within each row-group. To achieve
        row-level shuffling you should set shuffling_queue_capacity to a non zero value.
        :param reader: petastorm Reader instance
        :param batch_size: the number of items to return per batch; factored into the len() of this reader
        :param collate_fn: an optional callable to merge a list of samples to form a mini-batch.
        :param shuffling_queue_capacity: Queue capacity is passed to the underlying :class:`tf.RandomShuffleQueue`
          instance. If set to 0, no shuffling will be done.
        """
        super().__init__(reader_fn(),batch_size=batch_size,collate_fn=collate_fn,
            shuffling_queue_capacity=shuffling_queue_capacity)
        self._reader_fn = reader_fn

    def __iter__(self):
        if self._error is not None:
            raise RuntimeError('Cannot start a new iteration because last time iteration failed with error {err}.'
                               .format(err=repr(self._error)))
        if self._in_iter is not None and self._in_iter == True:  # noqa: E712
            raise RuntimeError(_PARALLEL_ITER_ERROR)
        if self._in_iter is not None:
            try:
                self.reader.reset()
            except NotImplementedError:
                # Called reset in the middle of an iteration.
                self.reader.stop()
                self.reader.join()
                self.reader = self._reader_fn()
            logger.warning('Start a new pass of Petastorm DataLoader, reset underlying Petastorm reader to position 0.')
        self._in_iter = True

        try:
            for batch in self._iter_impl():
                yield batch
        except Exception as e:
            self._error = e
            logger.error('Iteration on Petastorm DataLoader raise error: %s', repr(e))
            raise
        finally:
            self._in_iter = False

    def terminate(self):
        self.reader.stop()
        self.reader.join()

This loader can then be called in the following manner:
import functools

make_reader_fn = functools.partial(partial(make_reader, ...))
loader = SafeResetLoader(make_reader_fn, collate_fn=..., batch_size=...)

Is there any progress on this issue? Its a pretty big gap if petastorm isn't compatible with pytorch lightning.

@elbamos : I am not actively maintaining petastorm any longer. I am not aware of any active contributors at this stage.


When xType is 'discrete' x coordinates are parsed as strings

Let's say I want to plot Bar Series in a discrete manner - bars are present only on given x coordinates. There is also one Line Series plotted over the last bar in the bar series.
It currently looks like this:

To avoid empty spaces at coordinates 5, 6, 7 - I set xType prop to ordinal on XYPlot. The problem in this case - the graph is not aware that coordinates of last line series are the same as on the last bar in the bar series.

Seems that x coordinates are parsed as strings when xType is ordinal - is this intentional?
Do you have any suggestions on how to go around this issue?

That's an interesting problem.
There are several ways to fix this. Indeed x coordinates are parsed as strings when xType is ordinal, this is intentional. There was an issue on a very similar topic this week, apologies for not replying sooner to your question as I first thought this was the same issue.
If you want to use a LineSeries to represent the "crack" effect, you're really going to need a linear x scale anyway. So I would do something like this.
For each of your bars, give an x value going from 0 to 4.
For the lineSeries, do what you did but with x values around 4 instead of around 8.
So, your xDomain is effectively [0, 4].
how to represent ticks as 1, 2, 3, 4, 8?
well, you can use tickFormat for that.
you can have your bar labels as say, a labels variable labels = ['1', '2', '3', '4', '8'];
Now your XAxis will have a tickFormat prop like so: <XAxis tickFormat={(d) => labels[d]} />
so it will be displayed using the labels you chose.
Does that help?

Marking as resolved, feel free to reopen if you feel differently!


[CP] Please merge 8d4d3a33adcf579babfc1f2fd628768d481ac96c into stable/beta/dev

commit(s) to merge: 8d4d3a33adcf579babfc1f2fd628768d481ac96c
merge instructions: Should merge without conflicts
reason: All builds are broken due to the tag being pointed to in the DEPS file having multiple hashes with that tag. CIPD does not support removing tags or uploads, so this commit pins to a working hash instead.
@athomas @whesse @franklinyow

We won't be able to reliably make builds on the release branches until this is merged in. For dev, we might pickup the change in tomorrow's release, anyway.

@dcharkes
Is there a original issue? Need more information on why all build is broken

removing merge-to-dev

So both beta, and stable has this problem?

Yes, this is an infrastructure issue that wasn't introduced by a commit. This is rather different from other cherry-picks.

Let's hold on this one since this is an infrastructure issue, and has no user impact.

Ok, the cleanup mentioned in the linked issue worked, today's dev release built without problems. Most likely, we won't need this CP.


Wedding Decoration, Planning & Destination Wedding

myweddingmyday2 reported this on 2023-08-23T04:59:57Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=24102
Description
Let us plan and decorate your wedding in the way you want - Myweddingmyday.com is a best wedding planner in india that gives you dress & decor ideas, paint & planning ideas and lot more. Lets connect.
https://www.myweddingmyday.com/

SPAM


Draft: tmt/steps/init.py: add typing

Hi, I would like to ask help with these mypy errors:
tmt/steps/__init__.py:13: error: Cannot find implementation or library stub for module named "tmt.steps.remote"
tmt/steps/__init__.py:13: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
tmt/steps/__init__.py:151: error: Value of type variable "AnyStr" of "sub" cannot be "Optional[str]"
tmt/steps/__init__.py:324: error: "PluginIndex" has no attribute "_methods"
tmt/steps/__init__.py:452: error: "Plugin" has no attribute "__name__"
tmt/steps/__init__.py:454: error: "Plugin" not callable
tmt/steps/__init__.py:641: error: Untyped decorator makes function "reboot" untyped
tmt/steps/__init__.py:642: error: Untyped decorator makes function "reboot" untyped
tmt/steps/__init__.py:643: error: Untyped decorator makes function "reboot" untyped
tmt/steps/__init__.py:646: error: Untyped decorator makes function "reboot" untyped
tmt/steps/__init__.py:689: error: Untyped decorator makes function "login" untyped
tmt/steps/__init__.py:690: error: Untyped decorator makes function "login" untyped
tmt/steps/__init__.py:691: error: Untyped decorator makes function "login" untyped
tmt/steps/__init__.py:694: error: Untyped decorator makes function "login" untyped
tmt/steps/__init__.py:698: error: Untyped decorator makes function "login" untyped

tmt/steps/__init__.py:13: is expected, but how can I suppress the error meanwhile?
tmt/steps/__init__.py:151: is a mystery to me.
tmt/steps/__init__.py:324: I suppose that PluginIndex receive Plugin class in cls argument, but mypy don't think so
tmt/steps/__init__.py:452: I suppose method.class_ is a Plugin object and Plugin indeed has no __name__. @psss should I use method.class_.data['name'] instead?
tmt/steps/__init__.py:454: And again, looking at previous code I supposemethod.class_is aPluginobject, but the line expectsmethod.class_` to be a reference to a class and tries to initialize it. Any thoughts?
Untyped decorator makes function... Is click untyped? If it is typed, how can I add types there?

Hi, I would like to ask for help with these mypy errors:
tmt/steps/__init__.py:13: error: Cannot find implementation or library stub for module named "tmt.steps.remote"
tmt/steps/__init__.py:13: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
tmt/steps/__init__.py:151: error: Value of type variable "AnyStr" of "sub" cannot be "Optional[str]"
tmt/steps/__init__.py:324: error: "PluginIndex" has no attribute "_methods"
tmt/steps/__init__.py:452: error: "Plugin" has no attribute "__name__"
tmt/steps/__init__.py:454: error: "Plugin" not callable
tmt/steps/__init__.py:641: error: Untyped decorator makes function "reboot" untyped
tmt/steps/__init__.py:642: error: Untyped decorator makes function "reboot" untyped
tmt/steps/__init__.py:643: error: Untyped decorator makes function "reboot" untyped
tmt/steps/__init__.py:646: error: Untyped decorator makes function "reboot" untyped
tmt/steps/__init__.py:689: error: Untyped decorator makes function "login" untyped
tmt/steps/__init__.py:690: error: Untyped decorator makes function "login" untyped
tmt/steps/__init__.py:691: error: Untyped decorator makes function "login" untyped
tmt/steps/__init__.py:694: error: Untyped decorator makes function "login" untyped
tmt/steps/__init__.py:698: error: Untyped decorator makes function "login" untyped

tmt/steps/__init__.py:13: is expected, but how can I suppress the error meanwhile?

Is it expected? I don't see any tmt.steps.remote package, I'd say mypy is right here.

tmt/steps/__init__.py:151: is a mystery to me.

I believe mypy is trying to tell you one of the arguments given to re.sub does not match expected types. In this case, I think it's the cls.__doc__ which can be None. re.sub(pattern, None) is not allowed. assert cls.__doc__ should help.

tmt/steps/__init__.py:324: I suppose that PluginIndex receive Plugin class in cls argument, but mypy don't think so

Try forcing the type of cls, Type['Plugin']. I suppose it is needed because mypy cannot infere it itself. PluginIndex.__init__ is indeed given class as the first argument, I guess mypy is misleadd by __init__ and its first parameter supposed being self.

tmt/steps/__init__.py:452: I suppose method.class_ is a Plugin object and Plugin indeed has no __name__. @psss should I use method.class_.data['name'] instead?

IIUIC, method.class_ is a class, therefore it should have __name__ attribute. But first, I believe Method.class_ has wrong type, Plugin - that would mean the value would be an instance of Plugin class, but if it's supposed to be a Plugin class itself (or a subclass of Plugin), then the annotation needs to say Type['Plugin'].

tmt/steps/__init__.py:454: And again, looking at previous code I supposemethod.class_is aPluginobject, but the line expectsmethod.class_` to be a reference to a class and tries to initialize it. Any thoughts?

This is expected, see my comment above: Method.class_ is annotated as Plugin, i.e. "instance of either class Plugin or one of its subclasses", but that's incorrect, since it's expected to be a class itself, which means "dereferencing" one level up with Type['Plugin']. With this annotation, the value is supposed to be "either class Plugin or one of its subclasses" - no "instance", but class itself.

Untyped decorator makes function... Is click untyped? If it is typed, how can I add types there?

Looks like missing stubs. Click gained annotations in version 8, IIRC, can you try installing types-click package and try again? mypy often offers to do so, and there's install_types = True in mypy.ini to allow it to pull types-* stubs as needed.

@happz thank you for your help. I resolved all issues. I think I found two bugs in the code which I described above

/packit test

/packit test

/packit test


Fix Network-interface of the Xilinx UltraScale port

Description
While integrating the FTP-server from the Demo Ip Protocols to an application for the Cortex-R5 processor of the Xilinx Zynq UltraScale MPSoC, I noticed that the FTP-server was not working reliably when Jumbo Frames were being used. However this was not the case when Jumbo Frames were deactivated in my Network adapter, as this would function as expected.
After some investigation and enabling the FreeRTOS_printf-messages, I was getting the error message:
xCheckSizeFields: location 4

There I checked the said location and observed, that uxBufferLength was not having the expected value of the IP-packet, that was sent by the FTP-client.
            /* Check if the complete IP-header plus protocol data have been transferred: */
            usLength = pxIPPacket->xIPHeader.usLength;
            usLength = FreeRTOS_ntohs( usLength );

            if( uxBufferLength < ( size_t ) ( ipSIZE_OF_ETH_HEADER + ( size_t ) usLength ) )
            {
                DEBUG_SET_TRACE_VARIABLE( xLocation, 4 );
                break;
            }

After some more debugging, I find out the underlying issue was in the Network-interface of the Xilinx UltraScale port. There,
when receiving Jumbo Frames the wrong mask (XEMACPS_RXBUF_LEN_MASK) from the Xilinx Ethernet MAC driver would be used to retrieve the size of the data of the received packet.
By setting the right mask (XEMACPS_RXBUF_LEN_JUMBO_MASK) for Jumbo Frames, the issues that I had were all resolved and the above error message would not show up any more.
Test Steps
After the fix, I tested the port a bit more thoroughly, in our application with real hardware, and did not find any related issues. I also tried it, with different sizes of Jumbo Frames and also without them.  To verify that the data length of the IP-packet in the port was being set correctly, I was also always checking it in the debugger or by printing it.
Related Issue
None
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for this fix. Looks great.


Remove project groups and solar projects

What's new in this PR?
Commented out all references to projectGroup and solarProject
How to Review
Related PRs
Next steps
Screenshots

Design Status
CC: @dfangshuo

Deleted DashboardCard1, since it was an empty component. General dashboard looks like this now.

Looks great y'all! I merged in Andi's dashboard branch locally and then pushed the merge commit! I'm gonna go ahead and merge to master.


Add check labels

Currently, only entity labels are added to the Alerta event's attributes.
With this change, both entity and check labels are added to the attributes.
If entity and check have the same label, the check label will be appended to the entity label with a forward slash separator.
Labels with names that contain periods or dollar signs are omitted because these characters are not allowed in Alerta attribute names.

Closing due to inactivity. If you believe this issue has been closed prematurely please provide more information to help progress the issue. If you do not know what is expected you can ask on Gitter chat.

The way the code is written currently, if there are any labels associated with a check, they will not make it into the Alerta event.
With this change, the Alerta "Attributes" are populated with check and/or entity labels.

Can you rebase with master? That should fix the tests.

:+1:


Option for lighter logging

This is a Feature Proposal
Description
Would it be possible to have an option to make the logging lighter on the lambda-powertools-logger?
Currently, every single call to Log.method  logs out awsRegion, functionName etc. We would like to be able to log this data only on the first log of a function (usually the event data) and then turn it off for the rest. This would make it much easier to parse our logs.
If this is something the team is open to, I'd be happy to make the PR.

It would also be helpful if we were able to log strings, e.g. screenshot below (truncated)

When we view our logs in our logging service we now have to expand each object only to find a simple string that is decorated with a tonne of extra data

@theburningmonk any opinion on this?