Nginx Modul support

Would be nice to have the possibility to activate nginx modules.
For example:
http_geoip_module
Or
http_stub_status_module

Geoip is already planned to be added in #46. Any future modules might have to be included as part of docker custom builds, as in the non-x86_64 builds, nginx is built from source.

after a long night i have new infos :D
thoose modules are alred activ but it was quit hard to get it runnig.

you need to edit some files that are not mapped in /config of container but this isnt  big problem:

/etc/nginx/conf.d/status.conf (to enable the /nginx_status page)
/etc/nginx/nginx.conf (for geoip and i do some custom logging for more infos)
/etc/nginx/geoip (to dd the geoip files .. i tell more bout it in #46 )
i think it would be nice to symlink /etc/nginx/ to /config/nginx/config (or something like that)

when i mapped everthing i must add
access_log /config/log/nginx/accesscust.log custom;
for custom logging in every proxy host i have.
and as far as i understand it is a thing i cant put in advanced setting if i edit a proxy. or can i ?

i think i can made a tutorial or something like that for my problem. in main its used for get data from nginx .. and visualize it with grafana :)

To simplify a possible generic solution here, you want to be able to add your own configuration items to the main nginx block, not inside the server block?
Specific to the status page plugin, it might be possible to make that information available from within the applicaiton interface.

Yes..would be nice to be able to edit the nginx block as you told it :)
I think too yes. I get this working and it's nice to see what happens over nginx. The Only Stat im missing ist the bandwidth (up and down stream) but i don't think this is possible over ngix..but you can get this information over docker. But only for the container not for services/Proxys inside the container.
And yes..a interface in the container could be nice to..I'm using telegraf/influxdb/grafana for visualizing Infos from nginx and other services :)

Yeah I don't think you're going to get specific hostname traffic statistics without an logfile analyzer, ELK or prometheus etc. I've thought about having another docker image that accompanies this project to provide this, but I haven't had any time to look in to it.

whitelisting firewall to prevent XSL/SQL attacks, has a learning mode when you add a new service.
https://github.com/nbs-system/naxsi

I’ve tried to recreate this app (the base image) based on Nginx/1.15.12-Alpine and complied with OpenSSL 1.1.1c and the build is successful but I’m not sure how to get it to work with the final image...
Would love to harden the security of this container and make it easier to add new features/customize.

As a proof of concept, you can fork this repo, modify the Dockerfile to use your new base image, create a PR and my CI will create a working docker image for you to test.

I’m under the weather right now but I’ll give that a try. I use GitLab-CI and I’ve been able to build a few new images and they run but without web UI.
Lately the build fails once it gets to the ‘ADD dist        /app/dist’ step. Says the directory doesn’t exist.

You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@wuast94 - Could you post a short guide on how you got the status/geoip working?  I'm having a beast of a time with it.
Thanks!

@wuast94 - Could you post a short guide on how you got the status/geoip working? I'm having a beast of a time with it.
Thanks!

Here I have written how I get it working for me. Can you tell me how far you come and where your problems are?
https://github.com/jc21/nginx-proxy-manager/issues/78#issuecomment-465956712

@wuast94 Thanks for the reply.  I've managed to get the status page working, but I'm stuck on the GeoIP bit.
I've been trying to follow this guide:  https://medium.com/faun/total-nginx-monitoring-with-application-performance-and-a-bit-more-using-8fc6d731051b but when I add the geoip references to the nginx.conf file and run nginx -t I get the following:
 nginx: [emerg] unknown directive "geoip_country" in /etc/nginx/nginx.conf:42

What did you add to your nginx.conf file to get this working?  Thanks!

after a long night i have new infos :D
thoose modules are alred activ but it was quit hard to get it runnig.

you need to edit some files that are not mapped in /config of container but this isnt  big problem:

/etc/nginx/conf.d/status.conf (to enable the /nginx_status page)
/etc/nginx/nginx.conf (for geoip and i do some custom logging for more infos)
/etc/nginx/geoip (to dd the geoip files .. i tell more bout it in #46 )
i think it would be nice to symlink /etc/nginx/ to /config/nginx/config (or something like that)

when i mapped everthing i must add
access_log /config/log/nginx/accesscust.log custom;
for custom logging in every proxy host i have.
and as far as i understand it is a thing i cant put in advanced setting if i edit a proxy. or can i ?

i think i can made a tutorial or something like that for my problem. in main its used for get data from nginx .. and visualize it with grafana :)

Did you manage to put together a tutorial for this? I am also interested in extracting logs through telegraf for a TIG setup. I'm mostly interested in your custom logging solution for all the proxy hosts into a single file. Cheers!

@tuxmeister everything relevant is here and in #46
I'm not using this setup anymore..or more specific the geoip module. This was more becouse of traffic logging per sub domain wich isn't possible in the free or community version of nginx. Could be implemented in nginxproxymanager but I think that's a huge amount of work.


Transparent Background

Image background color is pink, its not getting transparent

can you provide the sample code and the images you used, for further investigation.

[image: Inline image 1]

image is not attached, I need following

code you wrote
output image you received

closing due to less info


Fixing grammatical and punctuation mistakes in the blog page [GSSoC'23]

There are many grammatical and punctuation mistakes in Topic 1 of blog page. Would like to fix them. Please assign this issue to me.
I am a GSSOC'23 contributor.

Could you please share screenshots of these errors @Anshul439

assigning u


Create compute-throttling-policies-and-limits.md

Added documentation for Compute throttling policies and limits

@viveksingla08
Microsoft authors and contributors need to make content contributions through the private repository so the content can be staged and validated by the current validation rules.
After you make your changes in the private repo, review the articles on staging, and fix any validation issues, you can add the sign-off comment to let PR reviewers know that the updates are ready to be merged.
Read about authors working in the public repo for more information.
If you need help getting set up to work in the private repo, see Get started contributing to the Microsoft Learn platform.
We'll close this PR. Thank you.


Remove VoyagerHelpers, mark all dependent tests as pending Alma.

Coverage decreased (-5.5%) to 76.528% when pulling fb4de99527a63e89372927e496f437af74a3e03b on alma into d2923fd010050b3acf04ce4de47e1727e9442bc4 on main.


Enable cypress test for windows and mac platform

Signed-off-by: Heemin Kim<EMAIL_ADDRESS>Description
Enable cypress test for windows and mac platform
Issues Resolved
https://github.com/opensearch-project/dashboards-maps/issues/55
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

I had to increase timeout values and reduce sample_geojson.json file so that cypress tests in windows to pass.
Below screenshot shows timeout when the cypress test adds sample_geojson.json file.

LGTM, thanks! I think main branch also need the change?

Yes. Will forward port it once it is approved.

Please forward port this change to the main branch.


Constant WP_POST_REVISIONS already defined

Non-fatal php warning is being created:
$ wp media krake --dry-run
PHP Notice:  Constant WP_POST_REVISIONS already defined in phar:///usr/local/wp-cli/wp-cli-0.19.0.phar/php/wp-cli.php(23) : eval()'d code on line 50
Let me know if I can supply further information for troubleshooting. Not sure what, if anything, is needed.

This command isn't using the WP_POST_REVISIONS constant, I'd assume you're setting it twice in your installation or once, but too late.

Interesting. I opened this since the warning was only showing up with this cli command. I’ll debug further, and update here if I find anything useful.
On Thu, Jun 25, 2015 at 5:32 AM, Till Krüss<EMAIL_ADDRESS>wrote:

This command isn't using the WP_POST_REVISIONS constant, I'd assume you're setting it twice in your installation or once, but too late.
Reply to this email directly or view it on GitHub:
https://github.com/tillkruss/wp-cli-kraken/issues/1#issuecomment-115089779


Added code for float eq list

Is working on #122 not preferable instead, as it solves the general problem instead of this specific one?


Converted to Polymer 2.0 (#7) :D

Hi there
I made this work with Polymer 2.0:

Changed emoji-rain.html to the new syntax
emoji-rain.html: Added setTimeout to the resize method (works somehow more reliably)
emoji-rain.html: "Speed" is now also an attribute/property
Updated iron-component-page to 3.0.1 (added analysis.json)
Not sure if necessary: I added polymer.json so it worked for me with polymer serve and polymer test

About this I am not sure:
I also changed the paths of the HTML-Imports, as for me, the bower_components directory is in the same folder as index.html and emoji-rain.html. I hope I didn't mess anything up for you. But I think it should be fine when you can make a git clone, run bower install and then polymer serve and it works, correct?
Also this is my first pull request ever, hope I didn't mess it up 😆

Thank you for your feedback and sorry for my lack of understanding - I should have gotten a lot more suspicious about changing all these paths in the first place.
Changes

Removed polymer.json
Removed service-worker.js
Revoked changes of paths in <imports>/<scripts>-Tags in all .html files
Removed a unnecessary console.log I added in emoji-rain.html
Removed the speed-attribute I added in emoji-rain.html (because I think I should refactor it a bit and add it inside another PR)
Fixed test/basic.html done(); problem

Super late, but yay! Thanks for the PR!


Terraform 0.14 upgrade

what

Upgrade to support Terraform 0.14 and bring up to current Cloud Posse standard

why

Support Terraform 0.14

Requires other modules to be released:
https://github.com/cloudposse/terraform-aws-elastic-beanstalk-environment/pull/153
https://github.com/cloudposse/terraform-aws-cicd/pull/72

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all


Flipped X and Y coordinates

Describe the bug
Adafruit FT6206 library after remapping coordinates to be flipped so 320 that the library thinks I am touching is actually 0 and 480 that the library thinks is actually 0 I am trying to find a way to remap those values on GUISlice but I couldn't find any way to do it
Device hardware

MCU: ESP32
Display with link: https://www.laskakit.cz/laskakit-espd-35-esp32-3-5-tft-ili9488-touch/
GUIslice config selected: esp-tftespi-default-ft6206.h

Checklist to try first
Most display/touch issues can be identified by working through the steps in the Configuring GUIslice guide.
Please confirm whether:

Display works correctly with standalone display driver library examples (eg. TFT_eSPI graphicstest, Adafruit graphicstest, etc.) without GUIslice: Display works with TFT_eSPI and GUISlice just fine
*Touch works correctly with standalone touch library examples without GUIslice:  Adafruit FT6206 library after remapping coordinates to be flipped so 320 that the library thinks I am touching is actually 0 and 480 that the library thinks is actually 0

Expected behavior
Option to flip X or Y coordinates
Initialization messages
Additional info

I had the same problem (only X-axis touch was flipped, using AdafruitGfx with ILI9341 and XPT2046) and solved it with this line at the end of my GUI initialization:
m_gui.nFlipX = !m_gui.nFlipX;


Error message "timeout"

I just installed the library in my Symfony2 project .
This is the function that I'm using in the project.
            $(document).pjax('a', '#content-wrap', {
                fragment: '#content-wrap',
                timeout: 3000
            }).on('pjax:send', function(){
                alert('success');
            }).on('pjax:error', function(e, xhr, err) {
                console.log('Something went wrong: ' + err);
                console.log(xhr);
            });;

When I click on a link, I get the alert with "success" and a few seconds later I get the error console:
Something went wrong: timeout

If i put timeout as 0, it works.

seems the url you are opening does not respond within 3000 mili-secs?

Like @staabm suggested, because you were using 3000ms as the timeout treshold and got the error with message "timeout", my initial guess would be that you actually got a… timeout error.

@bnd170 I was just going through the code, I think if timeout is set to 0, pjax doesn't check for a timeout. Not sure, have to check again.


Sim: Allow usage of Z Moves whenever the base move is disabled

Reverts 19bde75: "canZMove should not be set for disabled moves (#5384)".
Support using the Z Move when all the base moves are disabled.

See #2949 for a list of Z Move-related mechanics.

This prevents the battle from progressing if all your moves are disabled (from Taunt or whatever combination of effects) and you could have otherwise used Z-Power. Clicking Struggle at that point (whether or not you clicked Z-Power first) causes this:
[Invalid choice] Can't move: Your Chansey doesn't have a move 0
[Invalid choice] Can't make choices: You sent choices for 2 Pokémon, but this is a singles game!
[Invalid choice] Can't make choices: You sent choices for 3 Pokémon, but this is a singles game!
[Invalid choice] Can't make choices: You sent choices for 4 Pokémon, but this is a singles game!

etc.
What the game really does is if all your moves are disabled, clicking Fight skips straight to Struggle because you wouldn't have been allowed to click any of your moves, and can't access the Z-Power menu from there.

! So that's how it is

Updated accordingly. Please take a look, @Marty-D

That part looks good now, but there seems to be a regression somewhere.
Turn 5
Chansey used Disable!
The opposing Chansey's Sleep Talk was disabled!
The opposing Chansey used Disable!
Chansey's Disable was disabled!
Turn 6
The opposing Chansey can't use Sleep Talk!
Chansey can't use Disable!
Turn 6 was successfully clicking Z-Power -> Z-Sleep Talk and Z-Power -> Z-Disable, respectively.

Oh? Interesting...
So I am checking the instances of disabling, and assuming the following:

Attract can prevent Z Moves.
Dazzling / Queenly Majesty and Truant can prevent Z Moves.
Disable, Gravity, Heal Block, Imprison. Taunt, Throat Chop cannot prevent Z Moves.

That's a mix of move selection and move execution prevention though.
Attract and Truant happen before execution, while every other case you mentioned allows the Z-Move to be selected and executed, except Gravity only allows selection. Once executed, it may still be blocked by priority-blocking like Dazzling.

except Gravity only allows selection

That should be the case both for Z and regular moves, right? Then we should also remove the onDisableMove handler from Gravity.

except Gravity only allows selection

That should be the case both for Z and regular moves, right? Then we should also remove the onDisableMove handler from Gravity.

There are currently no Z-Move "moves" that have the Gravity flag. But even if there were and they were in your actual moveset they would be disabled, like Clangorous Soulblaze is disabled during Throat Chop or Extreme Evoboost is disabled during Taunt.

while every other case you mentioned allows the Z-Move to be selected and executed

like Clangorous Soulblaze is disabled during Throat Chop or Extreme Evoboost is disabled during Taunt.

Hm?

regular moves, right?

I am not sure you really answered my question. I mean, Fly should be selectable during Gravity, but fail on usage, right?
Anyway, I updated this to the best of my current understanding...

Taunt
should not prevent the target from using Z-Powered Status moves:

Is that test wrong?

while every other case you mentioned allows the Z-Move to be selected and executed

This was re: Z-Moves used from the Z-Power menu, not the regular move selection menu.
I believe this PR was good to go before your last change :(

Fly is not selectable during Gravity, no.

Reverted. So confusing!

Perfect, thanks! Catch me on PS if you want to clarify anything.

Thanks @Slayer95 and @Marty-D for fixing my mistake.

Struggle shouldn't have been shown. Looks like a client issue?

PS always displays the forced move button for forced moves, instead of automatically progressing the battle like the games do. Mostly for historical reasons, although I feel like giving users a button to press makes them feel better.


Webalert: API to get current alerts also in non-HTML form for processing

Originally by arwagner on 2012-11-21
Up to Invenio 1.0.2 it is not possible to retrieve alerts set by a user in non-html formatted form. However, in scenarios with automatic alert setup this is highly desirable, especially as one needs a bunch of parameters to remove (and thus regenerate) an automatically generated alert.
It is thus proposed to add an API function in webalert. This could look like this:

def get_alerts(uid, ln=CFG_SITE_LANG):
    """perform_list_alerts display the list of alerts for the connected user"""
    # set variables
    out = ""

    # query the database
    query = """ SELECT q.id, q.urlargs,
                       a.id_basket, b.name,
                       a.alert_name, a.frequency,a.notification,
                       DATE_FORMAT(a.date_creation,'%%Y-%%m-%%d %%H:%%i:%%s'),
                       DATE_FORMAT(a.date_lastrun,'%%Y-%%m-%%d %%H:%%i:%%s')
                FROM user_query_basket a LEFT JOIN query q ON a.id_query=q.id
                                         LEFT JOIN bskBASKET b ON a.id_basket=b.id
                WHERE a.id_user=%s
                ORDER BY a.alert_name ASC """
    res = run_sql(query, (uid,))
    return res

and just encapsules the necessary db query nicely.

Invenio 1.x is in feature freeze state. Please follow development of Invenio 3 packages.


Subaru: infotainment status intercept and rewrite

Description
Fixes the error message that pops on the Subaru infotainment screen when eyesight lateral is running in the background, and it gets disabled because of no steering wheel input.
Verification
Tested on my Subaru legacy 2022. Will need more testing on other platforms. Easiest way is probably to enable eyesight lateral while driving with openpilot, and make a bookmark whenever something changes on the infotainment screen.
These two PR’s are required first:
https://github.com/commaai/panda/pull/1333
https://github.com/commaai/opendbc/pull/809

NIce job! Merged the DBC updates and the panda side looks good, but we'll have to wait on merging that until this is ready to merge. @sshane can you test on our Outback and merge if it looks good?

There was an issue since “values” was no longer defined. I switched it to use the parameter value.
Also tested that “2” was “obstacle detected”. “1” also seemed to be “obstacle detected”

All the definitions match on our Outback!

All the definitions match on our Outback! Yep, 1 and 2 were both obstacle detected for this car as well

awesome. legacy and outback are the same platform though, so it might be good to get a community route or have someone test it

Changed the panda branch to a temporary one so tests would run. It looks like this infotainment message does not exist on non-GEN2 cars, so it should be safe to gate behind that and merge. @jnewb1 can you change to only GEN2?
FAILED test_models.py::TestCarModel_158_SUBARU_OUTBACK_2015_2017::test_car_interface - KeyError: 'INFOTAINMENT_STATUS'
FAILED test_models.py::TestCarModel_152_SUBARU_FORESTER_2017_2018::test_car_interface - KeyError: 'INFOTAINMENT_STATUS'
FAILED test_models.py::TestCarModel_151_SUBARU_ASCENT_LIMITED_2019::test_car_interface - AssertionError: 5799 != 0
FAILED test_models.py::TestCarModel_159_SUBARU_OUTBACK_2018_2019::test_car_interface - KeyError: 'INFOTAINMENT_STATUS'
FAILED test_models.py::TestCarModel_156_SUBARU_LEGACY_2015_2018::test_car_interface - KeyError: 'INFOTAINMENT_STATUS'
FAILED test_models.py::TestCarModel_154_SUBARU_IMPREZA_LIMITED_2019::test_car_interface - AssertionError: 10480 != 0

Changed the panda branch to a temporary one so tests would run. It looks like this infotainment message does not exist on a few platforms:
FAILED test_models.py::TestCarModel_151_SUBARU_ASCENT_LIMITED_2019::test_car_interface - AssertionError: 5799 != 0
FAILED test_models.py::TestCarModel_154_SUBARU_IMPREZA_LIMITED_2019::test_car_interface - AssertionError: 10480 != 0

@adeebshihadeh should we detect the presence of this message and set a carParams.flags?

Changed the panda branch to a temporary one so tests would run. It looks like this infotainment message does not exist on a few platforms:
FAILED test_models.py::TestCarModel_151_SUBARU_ASCENT_LIMITED_2019::test_car_interface - AssertionError: 5799 != 0
FAILED test_models.py::TestCarModel_154_SUBARU_IMPREZA_LIMITED_2019::test_car_interface - AssertionError: 10480 != 0

@adeebshihadeh should we detect the presence of this message and set carParams.flags since the message exists on only some global cars?
I actually found a Forester with the message and a Forester without the message. The one that has it is 2021 while the other is 2019 (both "global"), so this can even vary per platform. Let's merge as global gen 2 only for now, then detect this in a new PR. @jnewb1 you want to do that?
ffb24d475c36bab4|2023-04-12--16-20-59 f3b229479041308c|2023-04-12--17-06-26

Sure. So you mean add a panda safety flag for infotainment status, and add it to the panda once we verify this message has been sent at least once from the camera? Then overwrite it from then on?

@adeebshihadeh should we detect the presence of this message and set carParams.flags since the message exists on only some global cars?

Yes, and the panda side can just always block right?

I actually found a Forester with the message and a Forester without the message. The one that has it is 2021 while the other is 2019 (both "global"), so this can even vary per platform. Let's merge as global gen 2 only for now, then detect this in a new PR. @jnewb1 you want to do that?

Any reason to wait on this? I'd rather do them all now.

Times to seeing this CAN message from the first CAN message, looks reasonable:

Here are the cars where this message exists:
{'SUBARU FORESTER 2019': {True: 4071}, 'SUBARU OUTBACK 6TH GEN': {True: 2453, False: 1}, 'SUBARU IMPREZA LIMITED 2019': {False: 1694}, 'SUBARU ASCENT LIMITED 2019': {False: 2847, True: 50}, 'SUBARU IMPREZA SPORT 2020': {True: 1052}, 'SUBARU LEGACY 7TH GEN': {True: 5}, 'SUBARU OUTBACK 2018 - 2019': {False: 3}}

I tested the PR with 2018 Crosstrek (does not have the infotainment alert message) - everything works as expected
Route: 8de015561e1ea4a0|2023-04-16--17-12-54

There appears to be some bits that some cars set (and actively change), I'll figure out if they're important to forward.
Forester:

Outback:

So the static signal appeared to not change any visual UI elements, but the one that I've seen change can turn the lane lines blue on the dash. However from what I've seen, the stock system doesn't use this and only opts to show a green steering wheel.
No LKAS (stock system usually never shows this):
LKAS + lines visible:
LKAS + no lines visible:
LKAS active + lines visible:
Lines blue (changes signal at 2):
Lines blue + LKAS active:


Update installation

Add n_threads option to score.sh
Fix Makefile
Fix for Travis CI
Fix bug in pytorch==1.6.0
Remove unnecessary recipe

Codecov Report

Merging #232 (7418af4) into master (4174e3c) will decrease coverage by 0.09%.
The diff coverage is 52.38%.

@@            Coverage Diff             @@
##           master     #232      +/-   ##
==========================================
- Coverage   64.81%   64.72%   -0.10%
==========================================
  Files          83       82       -1
  Lines       10019    10010       -9
==========================================
- Hits         6494     6479      -15
- Misses       3525     3531       +6

Impacted Files
Coverage Δ

neural_sp/models/lm/lm_base.py
58.10% <0.00%> (ø)

neural_sp/models/seq2seq/decoders/transformer.py
69.42% <50.00%> (-0.33%)
:arrow_down:

neural_sp/models/seq2seq/encoders/transformer.py
74.86% <57.14%> (-0.36%)
:arrow_down:

neural_sp/models/modules/mocha.py
63.75% <100.00%> (ø)

neural_sp/models/seq2seq/decoders/ctc.py
47.18% <0.00%> (ø)

neural_sp/models/modules/__init__.py

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 4174e3c...7418af4. Read the comment docs.


INITIAL CONSTRUCTION

This issue is about the initial construction of the bot. I am trying to get the bot up to an initial standard, so that we can then welcome contributions.

This issue  has been resolved with this commit - https://github.com/Aahan-in-Space/Aahan-in-Space-discord-bot/commit/00fd1344d01746078623b6f4c9530bf52fc60e7a


Web-application for movie recommendation system

I have enhanced the existing movie recommendation model by utilizing the Cosine Similarity algorithm after vectorizing the movie data using the "Bag of Words" technique. Additionally, I integrated this improved model into a web application using Streamlit for a more interactive user experience.
I made a web app that helps you find movies you like. It gives suggestions based on your favorite actors, genres, cast, and crews. It's all about helping you discover great movies that match your taste!
I’m a contributor for GSSoC’24; please assign me this task so that I can make a pull request.

Hi @nidhivmehta its not right approach to raise PR and issue together, as this is the beginner repo I approved once. until issue is assigned don't work on any Pr or raise PR


Add weapon filtering

Add a config option to filter which weapons to show/not show the attack range for

01315305e329b4fb6390dae3d97b126c9094c3c7


Add animations and sounds

E.g. when click collect $ button, $$ appears or something with a 'kaching' sound

https://www.joshwcomeau.com/react/announcing-use-sound-react-hook/

Click on buy - kaching
Click on collect - sound
Bg music
When $ success collect manually (when toast is shown) - sound
When click any button - sound
When any purchase (hire, upgrade) - kaching

completed with
https://github.com/sov3333/0xVenture-Capitalist/commit/6d6188569aeac8462be933ef6fc1b5da1077be55
https://github.com/sov3333/0xVenture-Capitalist/commit/25a729480abff6852df54290cd1a98bf1cbe6ec8
https://github.com/sov3333/0xVenture-Capitalist/commit/100cda34ff488c02f5920f322be9e8aa937e4b69

added background music with
https://github.com/sov3333/0xVenture-Capitalist/commit/c7a486a65de2a25da4d1eb2cb240aa5b7d945571
https://github.com/sov3333/0xVenture-Capitalist/commit/9d59d16520b55621f0afa59ac4cf89137094645f
https://github.com/sov3333/0xVenture-Capitalist/commit/69ffd25b9438e6ba907297114a8e23ed7d02548e


Renaming table is not reflected on the generated INSERT statements

Reproduction steps:

Create a random table and populate it with some values
alter table <your_table> rename to <your_table>_bak;
Take from the Data view of the table, select a random value, right-click -> Generate SQL -> INSERT.
The resulting insert statement will target the table by its old name (e.g. <your_table> instead of <your_table>_bak).

Issue isn't reproducible.
Ticket closed


Updated Mangle and README

Modified Leet and Updated README.

@tylerp96
It looks like this would delete the Backdoor and Server classes along with all the other updates added over the past day.


chore: Change iceberg into workspace

This PR will change iceberg into workspace. I feel like it's better to split iceberg features into different crates so that we can work (and release) concurrently instead of waiting for the release of a whole iceberg.
For example, we can add iceberg rest api client first which could be generated from OpenAPI Specs and less related to iceberg core itself.

cc @Fokko, @JanKaul, @liurenjie1024 & @ZENOTME to take a look. Thanks.

The problem is the release process.

Can we release iceberg-rest-catalog-client seperately?
Is it a heavy work?

Need more input from @Fokko.

I think it's better to make it part of core crate?

Both LGTM. My motivation is to release it sooner, allowing us to involve more users and developers in our project.

Releasing takes some effort, but if everything is well automated, and there are folks around to test and validate the release, then it is a quick process. Even if it is not a lot of effort, it takes 3 days because everyone needs to be able to chime in and test the release. It would be great to set up a how-to-release guide, examples for Java and Python can be used for inspiration :)
What I think would be easiest, but correct me if I'm wrong here. Just release all the crates every time with the same version, so the versions of the crates don't diverge. WDYT?

Just release all the crates every time with the same version, so the versions of the crates don't diverge. WDYT?

I'm not sure about that. Maybe we can release iceberg-rest-catalog-client with 0.0.1 and iceberg with 0.2.0?
If we are going to release everything in the same version, it's better to put them in the same crate with diffent feature flag instead.

NOTE: feature flag in rust is similiar to pip install package[addon].

I'm definitely in favor of small crates compared to using features. From my perspective features can get really messy when there is a hierarchy of crates depending on each other (Crate A uses feature 1 of iceberg and crate B wants to use crate A without feature 1 and so on). Plus compile times should be much better.
There is one downside. You cannot implement traits for structs defined outside of your crate. So if you want to implement Datafusions TableProvider for example, you have to create a wrapper struct like so:
struct DatafusionTable(IcebergTable);

Reagrding the release cadence, I have no preference. We could release the small crates all with the same version number or release them separately.


Add best track forcing setup support for SCHISM model

Using best track forcing implementation in pyschism setup SCHISM model with nhc b-deck forcing

@zacharyburnett, when you have time can you please see if you see any red flags for merging these changes? Thanks

Thanks for reviewing. I think it makes things easier to reuse the relevant names/attributes as much as we can between different solvers setup.


Expose current areas sizes?

It would be nice to have some access to current area sizes. The use case I am trying to work on is the user drags the gutter to the desired position, then hides one area, and then wants to restore the area to the position it was when it was hidden.
It looks like all the info is in the split component, but it is not exposed.
Do you think something like that is worth implementing?

Hi, you can already do it using dragEnd event and memorize it to use it again later.


AAD policy 2.2 add recommendation to block risky service principals

💡 Summary
We received a recommendation to create a new AAD conditional access policy to block risky service principals (aka workload identities). CISA directed us to include a recommendation in the baseline but do not mandate this as an official policy because it requires an additional license above G5/E5.
Justification: This can help mitigate scenarios where hackers use AAD applications to access the tenant for nefarious purposes.
Implementation notes

[ ] Modify AAD section 2.2 High Risk Users SHALL be Blocked. Add a recommendation to create a conditional access policy that blocks Medium and High risk workload identities. Provide this MS link as a reference.

@schrolla Great question. CISA "I would consider adding it to security considerations on the policy about blocking High Risk as a non-normative note."
I personally consider this a very important policy because abusing service principals is a known common attack technique and it gives the adversary a chance to authenticate without password/MFA, but the constraint is the additional license, which most organizations may not have. Would love to hear your thoughts?

@adhilto asked the question, "Would this have the potential to lock-out our ScubaGear service principals?"
Yes, it could lock out any principal that is marked as risky based on the MS detection algorithm. See this link for details on the factors which contribute to "risk".  So if someone used a ScubaGear service principal (e.g. using stolen credentials) in an anomalous way, it could lock-out that principal. Keep in mind that when we say a "service principal", we are referring to an identity that is specific to a given tenant.

We discussed this topic at the stand-up. Specific feedback was provided by @adhilto and @buidav.
The consensus was that, if we were to add this as a new baseline policy, the policy would be a SHOULD. If this ScubaGear check does not pass, we would display a "Warning" (as we do for all SHOULD statements) and we would potentially display a message letting the user know that they do not have the required license. Of course the license message would only show up in the scenario that the tenant does not have the license.
This approach is consistent to how we handle other scenarios where the policy does not pass and the tenant is missing a license.
Question to CISA
@gdasher Are you comfortable just mentioning this feature as a sentence or two in the policy description? In other words, no new policy.

@gdasher Re-pinging on this. See most recent comments and the last question which was sparked by group discussion at the stand-up.

Here's a suggested policy description updated in case this ends up as the consensus for this issue:
2. High Risk Users
Azure AD Identity Protection uses various signals to detect the risk
level for each user and determine if an account has likely been
compromised. In addition to high risk users, high risk workload identies
may be mitigated by creating a conditional access policy that blocks medium
and high risk work load identities.
Follow these instructions to apply conditional access for workload identities.

@ssatyapal123 This looks good! Thank you.


fix(doc): fix README.md

Update node version

Thanks for your contribution! We've already downgraded some dependencies so v6 is supported again. Closing this.


Kicad: Full kicad8 PCB support

Feature Request
We fixed some pcb stuff for kicad8. Not sure how many more problems there are.
Keeping this here till we have more tests.
Code of Conduct

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

gr_text is different:
old
(gr_text "TEST123"
    (42.8 26.99)
    (layer "F.SilkS")
    (effects
        (font
            (size 5 5)
            (thickness 0.2)))
    (tstamp "44357"))

new
(gr_text "TEST123"
    (at 42.8 26.99 0)
    (layer "F.SilkS")
    (uuid "687a9e9f-fdb6-488c-82ea-fe43bba04ac1")
    (effects
        (font
            (size 5 5)
            (thickness 0.2)
        )
    )
)

Fixed in #201

Def fixed in #233


New placement - 'cover'

Feature description
I used Popper to create a highlight effect, using a div with border and pointer-events: none;.
I think this could be a cool feature of Popper (or an official modifier), as it is uses a lot internals.

These are the 4 original modifiers I used to implement the feature:
const popperModifiers = [
	ignorePopperSize,
	resizeToMatchReference,
	disableFlip,
	calcCoverCoordinates
];

// when calculating pop position, do not include popper-size
const ignorePopperSize: Modifier<string, {}> = {
	name: 'ignorePopperSize',
	enabled: true,
	phase: 'beforeRead',
	fn({ state }) {
		state.rects.popper = {
			...state.rects.popper,
			height: 0,
			width: 0,
		};
	},
}

export type ResizeToMatchReferenceOptions = {
	offset: [number, number];
};
const resizeToMatchReference: Modifier<string, ResizeToMatchReferenceOptions> = {
	name: 'resizeToMatchReference',
	enabled: true,
	phase: 'main',
	fn({ state, options }) {
		const { offset: [offsetX, offsetY] = [0, 0] } = options;
		const { width, height } = state.rects.reference;

		state.styles.popper = {
			...state.styles.popper,
			width: width + offsetX + 'px',
			height: height + offsetY + 'px',
		};
	},
};

const disableFlip = 	{
	name: 'flip',
	enabled: false,
};

// regular popper pops away from target, shift popper down to the target, + constants offest
const calcCoverCoordinates = {
	name: 'coverCoordinates',
	options: {
		// move box from above the target ('top-start')
		// to make sure border covers the target from the outside.
		offset: ({ reference }: any) => [BASE_OFFSET, BASE_OFFSET - reference.height],
	},
},

Offset
In hindsight, there are two of sizes consumers will like to control:

top/left shift (move the entire popper vertically or horizontally)
"padding" (increase/decrease size of the popper in each of the directions)

though, If I had to be compatible with the existing offset props, I'd go with
offset={[ ±aspectRatioPx, ±distanceFromCenterPx ]}

What do you think? I'm open for anything

That's so cool! Thanks for posting it. I think the best way to share this would be to publish your own npm package, there are some guidelines on our documentation: https://popper.js.org/docs/v2/modifiers/community-modifiers/


Issue with redirect from HTTPS to HTTP with WMSTile on Chrome

Hey,
I've been happily using your extension for a few months now. I've created a small app that allows to see weather observations overlaid on satellite and radar imagery here https://ekman.aquila.infn.it/weathermap-it/ (please note, this is not a production server). Unfortunately the radar stopped working since a few weeks and I cannot figure out why; the tiles are just not loading.
It seems that the problem is in the browser itself (Chrome) as the in the developer tools the requests to that WMS server are failing with 'too many redirects'.

The same application loads without problems in Safari.
An example application using the same WMS tile layer that works is here http://www.protezionecivile.gov.it/attivita-rischi/meteo-idro/attivita/previsione-prevenzione/centro-funzionale-centrale-rischio-meteo-idrogeologico/monitoraggio-sorveglianza/mappa-radar.
I'm wondering whether this has to do anything with the redirect from HTTPS (where my server is running) to HTTP (where the tiles are served). Or maybe with the missing request headers in my WMSTileLayer?
Again, this could be an issue related to the browser so I apologize if it doesn't have to do anything with dash-leaflet itself :)
BTW in the app that I develop you can see how to implement a slider to move around the time dimension of the WMS layer without having to use the dash timedimension plugin. You just have to define an array of datetime strings and then use the slider in a callback to update the url property of the WMS tile layer. Here is the source code, maybe it is useful to others ;)
https://github.com/guidocioni/world-weather-map/blob/6a66a05c59512f7a54cd7118fb2a421a68aba1c7/webapp_it.py#L178

Closing because I think this is related somehow to the browser

Closing because I think this is related somehow to the browser


urldate when only DOI is exported

Debug log ID
CTHI4PWF-refs-euc/6.7.133-6
What happened?
I have selected only to export the DOI when both DOI and url are available and it still contains the urldate when exported. I believe its the same issue as issue #869 that another use had a few years ago.

@retorquere
HFX3F3M8-euc/6.7.133-6

Sorry, the bot was on the fritz.


Population

It seems like there is a problem. Up to the  screen my population is 70 million. But at the buttom right statistic is 250 million.

Are you sure about the figures. In Vic2 sometimes pop menas number of POP's. Sometimes actual population. There are 4 real persons per POP. I.e. a figure of 70mil and 280mil would make seance.


Add Uint64 and Fd

Adds Uint64 (u64) and Fd (i32) to the Message enum.

Hey, thanks for the PR!
What do you think about Fd wrapping a RawFd instead of an i32?
It would be great to have the new types tested in tests/message_round_trip.rs, and the README.md can be updated to include the new types.

this was based off of my use of it, which involved a direct call to pipe()
but sure, I'll add all that later

Thanks again :)


Allow deleting a subset/config from a no-script dataset

Close #6810.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

This is ready for review, @huggingface/datasets.

I am adding a test...

@lhoestq I am getting an error in the test and I think it happens because the CI endpoint does not have the /preupload functionality:
huggingface_hub.utils._errors.RepositoryNotFoundError: 401 Client Error. (Request ID: Root=1-662a4de9-7134df595e29e4c073ac1298;332ff6e3-597a-4dfc-89df-4e9ac64215ad)

Repository Not Found for url: https://hub-ci.huggingface.co/api/datasets/__DUMMY_TRANSFORMERS_USER__/test-dataset-6c54e2-17140484441915/preupload/main?create_pr=1.
Please make sure you specified the correct `repo_id` and `repo_type`.
If you are trying to access a private or gated repo, make sure you are authenticated.
Invalid username or password.
Note: Creating a commit assumes that the repo already exists on the Huggingface Hub. Please use `create_repo` if it's not the case.

@lhoestq, finally, I implemented the test with a mock of the call to HfApi.create_commit.


spv server: Make sure race conditions are fixed

@shyba commented on Tue May 15 2018
Related to: https://github.com/lbryio/lbryum-server/pull/30
Requires: https://github.com/lbryio/lbrycrd/issues/130
Problem:
While doing large queries over electrum servers, a new block can be detected and processed. This causes race conditions where one query occurs at one height while others at another height, giving inconsistent results.
Changes:

lbrycrd RPC commands will return which height the query was made, so we can use that to either retry or inform the client
all local queries should be made against the disk, while processing new blocks occurs in memory. We need to ensure that behavior on our custom part of the protocol.

#1582 related to

This should no longer be an issue with the new SPV server, closing.


 I have noticed this issue right from the start but we had other issues to deal with first, but now the application is mostly ready for production we have to address performance related issues as well.
The issue is: video FPS. We have developed the application with sample videos (h264 mp4 files) of 25fps but they mostly played at 10 - 17 fps. I was hoping this was an mp4 file related issue, which doesn't really matter for us as our application needs to source from RTSP but with RTSP the performance hit is even bigger. Some streams (1920x1080 h264 streams) play at 7 or 8 frames per second... All the while the CPU and GPU usage is very low, around 20 to 25% CPU and GPU next to nothing.
To troubleshoot I've tried to narrow the problem down by removing most of our own application code. I've used Python line_profiler to see where the bottleneck is and in our own application it was the videoSource.Capture() method that took around 90 tot 120ms per call.
I've also tried to profile the video-viewer.py example which showed the same problem:
Timer unit: 1e-06 s

Total time: 48.5157 s
File: video-viewer-profiled.py
Function: main at line 29

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    29                                           @profile
    30                                           def main():
    31                                           	# parse command line
    32         1         10.0     10.0      0.0  	parser = argparse.ArgumentParser(description="View various types of video streams",
    33         1          8.0      8.0      0.0  									formatter_class=argparse.RawTextHelpFormatter,
    34         1       4078.0   4078.0      0.0  									epilog=jetson.utils.videoSource.Usage() + jetson.utils.videoOutput.Usage() + jetson.utils.logUsage())
    35
    36         1        235.0    235.0      0.0  	parser.add_argument("input_URI", type=str, help="URI of the input stream")
    37         1        211.0    211.0      0.0  	parser.add_argument("output_URI", type=str, default="", nargs='?', help="URI of the output stream")
    38
    39         1          3.0      3.0      0.0  	try:
    40         1       3416.0   3416.0      0.0  		opt = parser.parse_known_args()[0]
    41                                           	except:
    42                                           		print("")
    43                                           		parser.print_help()
    44                                           		sys.exit(0)
    45
    46                                           	# create video sources & outputs
    47         1    1609484.0 1609484.0      3.3  	input = jetson.utils.videoSource(opt.input_URI, argv=sys.argv)
    48         1      90103.0  90103.0      0.2  	output = jetson.utils.videoOutput(opt.output_URI, argv=sys.argv)
    49
    50                                           	# capture frames until user exits
    51       339       2380.0      7.0      0.0  	while output.IsStreaming():
    52<PHONE_NUMBER>4.0 131703.1     92.0  		image = input.Capture()
    53                                           		#print(image)
    54<PHONE_NUMBER>.0   6290.5      4.4  		output.Render(image)
    55       338      32276.0     95.5      0.1  		output.SetStatus("Video Viewer | {:d}x{:d} | {:.1f} FPS".format(image.width, image.height, output.GetFrameRate()))

You can see that with this video (an RTSP network stream with latency set to 500) the Capture() routine takes about 131ms on average... This equates to less than 8 frames per second video? This is very strange. The Xavier NX should be able to do multiple 25fps streams at once?

To be sure this isn't an RTSP/network related issue, here is the profile result of the exact same video-viewer.py script, but with an MP4 videofile from local filesystem (on m2 SSD):
Timer unit: 1e-06 s

Total time: 36.611 s
File: video-viewer-profiled.py
Function: main at line 29

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    29                                           @profile
    30                                           def main():
    31                                           	# parse command line
    32         1          9.0      9.0      0.0  	parser = argparse.ArgumentParser(description="View various types of video streams",
    33         1          5.0      5.0      0.0  									formatter_class=argparse.RawTextHelpFormatter,
    34         1       3979.0   3979.0      0.0  									epilog=jetson.utils.videoSource.Usage() + jetson.utils.videoOutput.Usage() + jetson.utils.logUsage())
    35
    36         1        220.0    220.0      0.0  	parser.add_argument("input_URI", type=str, help="URI of the input stream")
    37         1        269.0    269.0      0.0  	parser.add_argument("output_URI", type=str, default="", nargs='?', help="URI of the output stream")
    38
    39         1          3.0      3.0      0.0  	try:
    40         1       3036.0   3036.0      0.0  		opt = parser.parse_known_args()[0]
    41                                           	except:
    42                                           		print("")
    43                                           		parser.print_help()
    44                                           		sys.exit(0)
    45
    46                                           	# create video sources & outputs
    47         1     397717.0 397717.0      1.1  	input = jetson.utils.videoSource(opt.input_URI, argv=sys.argv)
    48         1      88798.0  88798.0      0.2  	output = jetson.utils.videoOutput(opt.output_URI, argv=sys.argv)
    49
    50                                           	# capture frames until user exits
    51       361       3230.0      8.9      0.0  	while output.IsStreaming():
    52<PHONE_NUMBER>3.0  94218.1     92.9  		image = input.Capture()
    53                                           		#print(image)
    54<PHONE_NUMBER>.0   5717.6      5.6  		output.Render(image)
    55       360      36947.0    102.6      0.1  		output.SetStatus("Video Viewer | {:d}x{:d} | {:.1f} FPS".format(image.width, image.height, output.GetFrameRate()))

It's a little faster but still a whopping 94ms per (blocking) call. This means the script runs at less than 11 frames/iterations per second which is unacceptable, really.
This is the full console output when running with a local mp4 file:
[gstreamer] initialized gstreamer, version <IP_ADDRESS>
[gstreamer] gstDecoder -- creating decoder for ../../../../TopSecretApplication/Samplevideos/real-obs-video.mp4
Opening in BLOCKING MODE
Opening in BLOCKING MODE
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
[gstreamer] gstDecoder -- discovered video resolution: 1920x1080  (framerate 30.000000 Hz)
[gstreamer] gstDecoder -- discovered video caps:  video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string)high, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
[gstreamer] gstDecoder -- pipeline string:
[gstreamer] filesrc location=../../../../Ninox/Samplevideos/real-obs-video.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! video/x-raw ! appsink name=mysink
[video]  created gstDecoder from file:///media/willem/SSD/Projects/jetson-inference/utils/python/examples/../../../../TopSecretApplication/Samplevideos/real-obs-video.mp4
------------------------------------------------
gstDecoder video options:
------------------------------------------------
  -- URI: file:///media/willem/SSD/Projects/jetson-inference/utils/python/examples/../../../../TopSecretApplication/Samplevideos/real-obs-video.mp4
     - protocol:  file
     - location:  ../../../../TopSecretApplication/Samplevideos/real-obs-video.mp4
     - extension: mp4
  -- deviceType: file
  -- ioType:     input
  -- codec:      h264
  -- width:      1920
  -- height:     1080
  -- frameRate:  30.000000
  -- bitRate:    0
  -- numBuffers: 4
  -- zeroCopy:   true
  -- flipMethod: none
  -- loop:       0
------------------------------------------------
[OpenGL] glDisplay -- X screen 0 resolution:  2560x1440
[OpenGL] glDisplay -- X window resolution:    2560x1440
[OpenGL] glDisplay -- display device initialized (2560x1440)
[video]  created glDisplay from display://0
------------------------------------------------
glDisplay video options:
------------------------------------------------
  -- URI: display://0
     - protocol:  display
     - location:  0
  -- deviceType: display
  -- ioType:     output
  -- codec:      raw
  -- width:      2560
  -- height:     1440
  -- frameRate:  0.000000
  -- bitRate:    0
  -- numBuffers: 4
  -- zeroCopy:   true
  -- flipMethod: none
  -- loop:       0
------------------------------------------------
[gstreamer] opening gstDecoder for streaming, transitioning pipeline to GST_STATE_PLAYING
[gstreamer] gstreamer changed state from NULL to READY ==> mysink
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1
[gstreamer] gstreamer changed state from NULL to READY ==> omxh264dec-omxh264dec0
[gstreamer] gstreamer changed state from NULL to READY ==> h264parse1
[gstreamer] gstreamer changed state from NULL to READY ==> queue0
[gstreamer] gstreamer changed state from NULL to READY ==> qtdemux1
[gstreamer] gstreamer changed state from NULL to READY ==> filesrc0
[gstreamer] gstreamer changed state from NULL to READY ==> pipeline0
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1
[gstreamer] gstreamer changed state from READY to PAUSED ==> omxh264dec-omxh264dec0
[gstreamer] gstreamer changed state from READY to PAUSED ==> h264parse1
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> queue0
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer stream status CREATE ==> sink
[gstreamer] gstreamer changed state from READY to PAUSED ==> qtdemux1
[gstreamer] gstreamer changed state from READY to PAUSED ==> filesrc0
[gstreamer] gstreamer stream status ENTER ==> sink

(python3:12700): GStreamer-CRITICAL **: 13:55:06.597: gst_caps_is_empty: assertion 'GST_IS_CAPS (caps)' failed

(python3:12700): GStreamer-CRITICAL **: 13:55:06.597: gst_caps_truncate: assertion 'GST_IS_CAPS (caps)' failed

(python3:12700): GStreamer-CRITICAL **: 13:55:06.597: gst_caps_fixate: assertion 'GST_IS_CAPS (caps)' failed

(python3:12700): GStreamer-CRITICAL **: 13:55:06.598: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed

(python3:12700): GStreamer-CRITICAL **: 13:55:06.598: gst_structure_get_string: assertion 'structure != NULL' failed

(python3:12700): GStreamer-CRITICAL **: 13:55:06.598: gst_mini_object_unref: assertion 'mini_object != NULL' failed
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
Allocating new output: 1920x1088 (x 11), ThumbnailMode = 0
OPENMAX: HandleNewStreamFormat: 3605: Send OMX_EventPortSettingsChanged: nFrameWidth = 1920, nFrameHeight = 1080
[gstreamer] gstreamer message stream-start ==> pipeline0
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer message duration-changed ==> h264parse1
[gstreamer] gstDecoder -- onPreroll()
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ /\ AVC", bitrate=(uint)2745140;
[gstreamer] gstreamer mysink taglist, encoder=(string)Lavf57.83.100, container-format=(string)"ISO\ MP4/M4A";
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(High\ Profile\)", bitrate=(uint)2745140;
[gstreamer] gstDecoder recieve caps:  video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)30/1
[gstreamer] gstDecoder -- recieved first frame, codec=h264 format=nv12 width=1920 height=1080 size=3110400
RingBuffer -- allocated 4 buffers (3110400 bytes each, 12441600 bytes total)
[gstreamer] gstreamer changed state from READY to PAUSED ==> mysink
[gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0
[gstreamer] gstreamer message async-done ==> pipeline0
[gstreamer] gstreamer message new-clock ==> pipeline0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysink
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> omxh264dec-omxh264dec0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> h264parse1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> qtdemux1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> filesrc0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0
RingBuffer -- allocated 4 buffers (6220800 bytes each, 24883200 bytes total)
[OpenGL] glDisplay -- set the window size to 1920x1080
[OpenGL] creating 1920x1080 texture (GL_RGB8 format, 6220800 bytes)
[cuda]   registered openGL texture for interop access (1920x1080, GL_RGB8, 6220800 bytes)

Hi @WillemvdKletersteeg, unfortunately without adding additional profiling to gstDecoder.cpp, it's unclear where the bottleneck is coming from.
What I will say, is when using CSI or V4L2 camera, I don't hear reports of such issue.  Also for optimized RTSP implementation, you may want to look at DeepStream SDK which is optimized for multi-sensor streaming.

I still don't understand this issue! when I ran the RTSP stream using gst-launch worked out well, and latency was almost 0! but the real prob is that when I ran detectnet the detection was so bad and the latency was about 6 seconds??
any idea?

Did you re-clone the repo and rebuild/reinstall from source?
Also run with --input-rtsp-latency=0

Thanks a lot, Dusty!
I have made it, but I went through some problems:
Firstly, it shows no lag at the beginning around 5 to 10 seconds, then its lag increases gradually.
Secondly, the detection is bad. it almost detects nothing.
a thing to note is that my own camera has a lag of a second, but when I run RTSP stream by the following command:
gst-launch-1.0 rtspsrc<EMAIL_ADDRESS>latency=0 ! decodebin max-size-time=30000000000 ! videoconvert ! autovideosink
it gives no latency at all

is there any way to keep using the webcam and sending its stream with the detection it makes to a host machine?

up to now,the latency issue still exist.
Build after NVMM is disabled
videoSource::Capture funt is long time...
Please tell me how to solve it.My device is<EMAIL_ADDRESS>@dusty-nv

is there any way to keep using the webcam and sending its stream with the detection it makes to a host machine?

Yes, you can use RTP/RTSP or WebRTC from browser:  https://github.com/dusty-nv/jetson-inference/blob/master/docs/webrtc-server.md

up to now,the latency issue still exist.
Build after NVMM is disabled
videoSource::Capture funt is long time...

What kind of camera or video source are you using?
If you clone/compile the latest master, it uses sync=false which may help.   Also you can set the timeout to capture if you need the function to not block.

up to now,the latency issue still exist.
Build after NVMM is disabled
videoSource::Capture funt is long time...

What kind of camera or video source are you using?
If you clone/compile the latest master, it uses sync=false which may help. Also you can set the timeout to capture if you need the function to not block.

I tried to modify the default video codec from omx to v4l2 in videosource, and found that the capture method no longer blocks for a long time, which is very strange. Why is this happening?（cloned from commit 363148fb3558ae58c1b9b21ee2446de2de3355ae）


Expo/TypeScript: apiKey required when calling Bugsnag.start()

According to the Basic Configuration section in the Expo Manual Setup doc, it is recommended to set the Bugsnag API key in app.json rather than when calling Bugsnag.start. However, the TypeScript definitions require apiKey when passing a configuration object to Bugsnag.start.
Here is the TypeScript error from my codebase:
Property 'apiKey' is missing in type '{ enabledReleaseStages: string[]; releaseStage: string; logger: null; onError: (event: Event) => false | undefined; }' but required in type 'Config'.

  node_modules/@bugsnag/core/types/common.d.ts:7:3
      apiKey: string
        ~~~~~~
    'apiKey' is declared here.

There is a trivial workaround: just use a type assertion when calling start:
Bugsnag.start({
    apiKey: undefined!,
    // ...
})

Hi @srmagura
Thanks for the report on this, it does look like a bug so we are looking in a fix.

We have now released a fix for this in v7.3.3.


MARS AGENT Recovery from another server Issue

I'm trying to perform a Volume Restore from another server to my local server that it's in Azure (VM in Azure).
Restore fails at : 280GB Transferred
RestoreSize : 2TB.

Firewall Turned off
Server Source: Windows 2012
Server Target: Windows 2019
Ports enabled: 80,443,6049 (But 6049 seems to be blocked form some reason)
No proxy
Last Version of MARS
I have performed other Restore Process from other servers but just this one is failing.

Error | Message |
  | D:\ | An error was encountered while performing an operation for NO_PARAM.
1)Retry this operation after the issue has been fixed.
2) If the error was due to insufficient resources, then it could be a transient failure and you should retry this operation after some time. (0x186FB)
Some Logs Found:
FATAL	--->System.ServiceModel.EndpointNotFoundException: Could not connect to net.tcp://localhost:6049/CBEngine. The connection attempt lasted for a time span of 00:00:02.0468942. TCP error code 10061: No connection could be made because the target machine actively refused it <IP_ADDRESS>:6049.  ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it <IP_ADDRESS>:6049
JWTTokenValidator.cs(53)				WARNING	Cached Token Expired | Params: {ErrorCode = IdTokenExpiredError}{ExpiryTimeWindow (ulong) = 0}
Line 28651: 0AB0	1EEC	08/04	13:18:58.567	79	AADTokenServiceHelper.cs(62)				WARNING	FMBlock: FM exception caught | Params: {OperationCode = ClientRequestAADToken}{OperationStartTime = 8/4/2019 1:18:58 PM}{FMExceptionDetail = FMException: [ErrorCode:CloudTrUnknownExceptionError, DetailedCode:0, Source:None, Message:]
Line 28653: 0AB0	1EEC	08/04	13:18:58.567	79	AADTokenServiceHelper.cs(62)				NORMAL	FMBlock: No retry policy specified | Params: {ErrorCode = CloudTrUnknownExceptionError}
Line 28655: 0AB0	1EEC	08/04	13:18:58.567	69	AccessConfigurationHelper.cs(660)				WARNING	AAD token request failed | Params: {MachineName = vmcazfs1.genint.com}{Thumbprint = 617fc378e7ab651e0159cec2c96c795d3476a930}|Backup Service Exception: FMException: [ErrorCode:CloudInternalError, DetailedCode:0, Source:None, Message:]
Line 28659: 0AB0	1EEC	08/04	13:18:58.567	69	AccessConfigurationHelper.cs(660)				WARNING	--->FMException: [ErrorCode:CloudTrUnknownExceptionError, DetailedCode:0, Source:None, Message:]
Line 28663: 0AB0	1EEC	08/04	13:18:58.567	69	AccessConfigurationHelper.cs(610)				WARNING	AAD JWT token error ignored until service call fails |Backup Service Exception: FMException: [ErrorCode:CloudInternalError, DetailedCode:0, Source:None, Message:]
Line 28666: 0AB0	1EEC	08/04	13:18:58.567	69	AccessConfigurationHelper.cs(610)				WARNING	--->FMException: [ErrorCode:CloudTrUnknownExceptionError, DetailedCode:0, Source:None, Message:]
Line 28671: 0AB0	1EEC	08/04	13:18:58.770	79	WcfClient.cs(998)				WARNING	Unable to make web service call | Params: {Exception:  = System.ServiceModel.FaultException1[Microsoft.Internal.CloudBackup.Common.FailureModeling.CloudServiceFault]: Internal Service Error (Fault Detail is equal to ErrorCode = IdRoleAccessDeniedError, DetailedErrorCode = 0, DetailedErrorSource = None/None, Message =  	Line 28671: 0AB0	1EEC	08/04	13:18:58.770	79	WcfClient.cs(998)				WARNING	Unable to make web service call | Params: {Exception:  = System.ServiceModel.FaultException1[Microsoft.Internal.CloudBackup.Common.FailureModeling.CloudServiceFault]: Internal Service Error (Fault Detail is equal to ErrorCode = IdRoleAccessDeniedError, DetailedErrorCode = 0, DetailedErrorSource = None/None, Message =
Line 28673: 0AB0	1EEC	08/04	13:18:58.770	79	WcfClient.cs(946)				WARNING	FMBlock: FM exception caught | Params: {OperationCode = WcfProxyCall}{OperationStartTime = 8/4/2019 1:18:58 PM}{FMExceptionDetail = FMException: [ErrorCode:IdRoleAccessDeniedError, DetailedCode:0, Source:Service/None/None, Message:]
Line 28676: 0AB0	1EEC	08/04	13:18:58.770	79	WcfClient.cs(694)				WARNING	FMBlock: FM exception caught | Params: {OperationCode = WcfProxyAsyncCall}{OperationStartTime = 8/4/2019 1:18:58 PM}{FMExceptionDetail = FMException: [ErrorCode:IdRoleAccessDeniedError, DetailedCode:0, Source:Service/None/None, Message:]

Line 2227: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
Line 2228: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.BufferedConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
Line 2229: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
Line 2230: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
Line 2231: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
Line 2232: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
Line 2233: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
Line 2248: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
Line 2251: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
Line 2252: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.BufferedConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
Line 2253: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
Line 2254: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
Line 2255: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
Line 2256: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
Line 2257: 1CE8	1D0C	08/05	06:44:09.156	83	GatewayProviderService.cs(323)				FATAL	   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)

@rvargas22
Thanks for the question! We are investigating and will update you shortly.

As an update I was checking at the logs I have found a bunch the following warnings:
It's says something related Backup but it restore process and the files seems to be supported they are normal files.
**WARNING	Failed: Hr: = [0x8000ffff] BackupRead failed on file(D:**Genesis_VAN\1Public\1Sales\1Broadcast\1BROUCHURES & MANUALS\Sony\Old\L O A N   AGREEMENT\MatrixLoan Oct 02.DOC)
Line 28: 0AB0	0974	08/04	13:16:29.206	18	mtffile.cpp(1372)	[0000000053582120]	1FCFF8B4-CCE2-42E6-8883-7AEB9A1C5CB6		WARNING	Failed: Hr: = [0x8000ffff] BackupRead failed on file(D:\Genesis_VAN\1Public\1Sales\1Broadcast\1BROUCHURES & MANUALS\Sony\Old\L O A N   AGREEMENT\Sony Loan Agreement Boilerplate\Loan Agreement Oct 02.DOC)
Line 56: 0AB0	0974	08/04	13:16:29.237	18	mtffile.cpp(1372)	[0000000053581B00]	1FCFF8B4-CCE2-42E6-8883-7AEB9A1C5CB6		WARNING	Failed: Hr: = [0x8000ffff] BackupRead failed on file(D:\Genesis_VAN\1Public\1Sales\1Broadcast\1BROUCHURES & MANUALS\Sony\Old\L O A N   AGREEMENT\MatrixLoan July 03 ChTV_files\editdata.mso)
Line 68: 0AB0	0974	08/04	13:16:29.237	18	mtffile.cpp(1372)	[0000000053581B00]	1FCFF8B4-CCE2-42E6-8883-7AEB9A1C5CB6		WARNING	Failed: Hr: = [0x8000ffff] **BackupRead failed on file(D:**Genesis_VAN\1Public\1Sales\1Broadcast\1BROUCHURES & MANUALS\Sony\Old\L O A N   AGREEMENT\MatrixLoan July 03 ChTV_files\filelist.xml)
Line 80: 0AB0	0974	08/04	13:16:29.253	18	mtffile.cpp(1372)	[00000000535814E0]	1FCFF8B4-CCE2-42E6-8883-7AEB9A1C5CB6		WARNING	Failed: Hr: = [0x8000ffff] BackupRead failed on file(D:\Genesis_VAN\1Public\1Sales\1Broadcast\1BROUCHURES & MANUALS\Sony\Old\L O A N   AGREEMENT\MatrixLoan July 03 ChTV_files\header.htm)
Line 92: 0AB0	0974	08/04	13:16:29.268	18	mtffile.cpp(1372)	[0000000053582120]	1FCFF8B4-CCE2-42E6-8883-7AEB9A1C5CB6		WARNING	Failed: Hr: = [0x8000ffff] BackupRead failed on file(D:\Genesis_VAN\1Public\1Sales\1Broadcast\1BROUCHURES & MANUALS\Sony\Old\L O A N   AGREEMENT\MatrixLoan July 03 ChTV_files\image001.png)
Line 104: 0AB0	0974	08/04	13:16:29.268	18	mtffile.cpp(1372)	[0000000053581B00]	1FCFF8B4-CCE2-42E6-8883-7AEB9A1C5CB6		WARNING	Failed: Hr: = [0x8000ffff] BackupRead failed on file(D:\Genesis_VAN\1Public\1Sales\1Broadcast\1BROUCHURES & MANUALS\Sony\Old\L O A N   AGREEMENT\MatrixLoan July 03 ChTV_files\image002.gif)
Line 116: 0AB0	0974	08/04	13:16:29.284	18	mtffile.cpp(1372)	[0000000053581B00]	1FCFF8B4-CCE2-42E6-8883-7AEB9A1C5CB6		WARNING	Failed: Hr: = [0x8000ffff] BackupRead failed on file(D:\Genesis_VAN\1Public\1Sales\1Broadcast\1BROUCHURES & MANUALS\Sony\Old\July16\dsrpd100a.pdf)

@rvargas22 Can you share me the document which you are referring too?
Try the suggestion mentioned in this MSDN link.

Also try to download the latest Azure Backup agent.
Check the size of backup, as the scratch folder drive should be at least 5% - 10% free of the size of backed up volume. If the scratch drive is low in free space, expand the scratch folder drive and let us know the status.
Example: If you wish to back up the 10 TB volume, the agent must be installed on a larger volume so that its scratch directory can create files at least 5% – 10% the size of the backed-up volume. So, for a 10 TB volume, you would require between 500 GB – 1TB of free space on the volume where the agent will create its scratch directory
If possible exclude the file “c:\Program Files\Microsoft Azure Recovery Services Agent\Scratch\SSBV\” from backup and let us know the status
I'd recommend posting your question in https://azure.microsoft.com/en-in/support/community/ forum since it's not directly related to the documentation. We'll follow up there.Since we have not heard back from you we will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly reopen the issue and continue the discussion.


Add a note that the SupplyParameterFromQueryAttribute only works on routing components

There is no information that the SupplyParameterFromQueryAttribute only works on routing components.
The only reference I found was in a GitHub issue on dotnet/aspnetcore that says "This is currently by design" (https://github.com/dotnet/aspnetcore/issues/36966#issuecomment-961864699).
It would be great if there was a highlighted note on the documentation pages to prevent desperation like I had.

https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/routing?view=aspnetcore-7.0#query-strings
https://learn.microsoft.com/en-us/dotnet/architecture/blazor-for-web-forms-developers/components#query-string-parameters

Per ChatGPT:
The SupplyParameterFromQueryAttribute is an ASP.NET Core attribute that can be applied to action method parameters to bind them to values from the query string.
While it is commonly used with routing components, it can also be used with other types of controllers such as ApiController or Controller.
The SupplyParameterFromQueryAttribute can be used to bind parameters from a query string to action method parameters, regardless of the controller type, as long as the action method has a parameter that matches the query string key.
For example, you can apply the SupplyParameterFromQueryAttribute to an action method parameter in a regular Controller like this:
public IActionResult Index([SupplyParameterFromQuery] string searchTerm)
{
    // ...
}

In this case, the searchTerm parameter will be bound to the value of the "searchTerm" key in the query string, regardless of whether the controller is a routing component or a regular Controller.

Hello @OnSive ... The content states (emphasis added) ...

Use the [SupplyParameterFromQuery] attribute with the [Parameter] attribute to specify that a component parameter of a routable component can come from the query string.

... so I think that is covered by the article.
btw -- Please use the This page feedback button and form at the bottom of the English-US topic. Use of the This page feedback form adds metadata to your GitHub issue that cross-links the topic and automatically pings the author.

Actually ... I agree this morning! ☕ is working, I guess! 😆 Let's make that point a bit clearer.
Thanks for the issue, @OnSive.

btw @OnSive ... The following NOTE was already there. You may have read past it when you accessed the section ...
> [!NOTE]
> Component parameters can only receive query parameter values in routable components with an [`@page`](xref:mvc/views/razor#page) directive.

... but I'm going to add to that NOTE with Steve's reasoning.

Thank you for your work!
I somehow completely over red the already existing hint multiple times.
Sorry for the extra effort.

No worries, @OnSive. I'm glad that you wrote in about this. I think the enhanced coverage with the reason that Steve provided will help devs understand why this was done. It might even head off a few product unit issues on their repo from devs wondering why this is the case. I think the additional remark to just use a normal param or create a custom param in this case will send devs down the happy path 😄 ........ so I'm glad you opened the issue. Thanks, again! 🎸


Text line height: change to percent values and implement auto value via GRT

Per spec:

Allows the author to set the line-height to a specific value. Accepts a percentage from -100% to +200%. Set to the value of “Auto” by default. In this case, the line-height adapts to the current font size based on Golden Ratio Typography rules.

Thus, two changes need to be done:

We currently use fractional value for line height. This should change to % values.
We need to default line height to auto and implement automatic auto rules according Golden Ratio Typography rules

These changes need to be for both the editor and the output.

/to @pbakaus @o-fernandez to confirm and prioritize.

Should cropping leading/trailing whitespace (in both modes % and auto) also belong here? https://docs.google.com/presentation/d/1ZiZWrmLiX40rt3n_1LMSGJxYWI-xsWFsS9bkzdbRIV8/edit?ts=5ec3ef17#slide=id.g7830109f71_0_105


Point preview to correct environments

We should improve resolveProductionUrl.js file. Currently all previews are done in prod. We should differentiate previews between preprod and prod

There is a reason for having it this way, so we need to have a proper discussion before moving on with this task. Extra environments and datasets will add cost and complexity.

Duplicate of #1409


Speakers tab

Huge PR this time, sorry. I didn't want to merge this one before you integrating the session's part and that's why the branch has become so huge. The main changes you'll see here are the next:

New tab for speakers
Speakers list. Network and local data sources for them. Moshi + OkHttp for network data source (wanted to try them) and Room for disk persistence.
Speaker detail.
Speakers search. Implemented easily thanks to Room and the support for FTS tables. A FTS table has been created for speakers and that's the way to perform the search.
Moved code to commons module.
Branch merge fixes. Some of the changes are related with fixes needed after merges with integration branch.

Awesome work as always. Will adapt some of my code to some nice patterns you are using!
The minor suggestions I've written can be discussed/changed later.


Bump plotters crate to 0.3.5 to fix errors

Hi! I've had some problems when tried to build your project:
error[E0557]: feature has been removed
  --> ...\.cargo\registry\src\index.crates.io-6f17d22bba15001f\pathfinder_simd-0.5.1\src\lib.rs:11:61
   |
11 | #![cfg_attr(pf_rustc_nightly, feature(link_llvm_intrinsics, platform_intrinsics))]
   |                                                             ^^^^^^^^^^^^^^^^^^^ feature has been removed
   |
   = note: SIMD intrinsics use the regular intrinsics ABI now

error[E0635]: unknown feature `stdsimd`
  --> ...\.cargo\registry\src\index.crates.io-6f17d22bba15001f\pathfinder_simd-0.5.1\src\lib.rs:12:49
   |
12 | #![cfg_attr(pf_rustc_nightly, feature(simd_ffi, stdsimd))]

It's solved by updating the plotters crate to the current version.
Hope you are around to merge. Cheers :)

Thanks! : )


[WIP] Emotion-based experiment for writing and composing component styles

This is a rough work in progress, especially the temporary module organization. The main modules of note are Lumi.Styles.Box, Lumi.Styles.Button, and the two components under Lumi.Components2. The components do almost nothing, and could maybe just be removed. "Box" is intended to be the simplest building block component (or just styles, in this case) to help make layout-related style composition more predictable.
Using Emotion allows us to replace both the global styles (using JSS, currently) and direct element styles (nearly impossible to override and can't influence children, making flexbox difficult, for example) with one styling abstraction with (slightly) more predictable precedence/override behavior. I say slightly because nested styles can still be difficult to reason about. For example, the secondary button hover style need to re-override the background color so the default colors don't take over on hover. At first glance it looks redundant. It might be possible to avoid this by constraining the default styles to only those which are not overridden and build a more explicit case statement for button kinds. That'd just be a convention though.
I also added a possible approach to theming using React's context mechanism and a few component type aliases, LumiComponent and LumiComponent'. The latter allows children. I've been using content instead of children because React sometimes unwraps the children array for some reason, breaking the types (probably a react-basic issue, but I'm not sure how to fix it besides this convention). Emotion also only works if the component being rendered accepts a className prop and attaches it to its root element (or passes it down if it doesn't render anything directly). These type aliases might help us remember those two issues with the API, but it's kind of gross. It's only an issue with actual ReactComponents, but that's the API Emotion works with. It's also an issue with the react-basic-hooks API because it's just types on top of regular React. The React.Basic API doesn't have this issue because the props are nested under a single field from React's perspective. That API doesn't work with Emotion though, because it hooks into the createElement function and React.Basic pre-applies it. Maybe we need a new API fixing both issues :sweat_smile:
Anyways, I'd like feedback on whether this feels like the right direction despite the rough edges or if we should rethink it.

I feel one important capability is missing from the API design here: being able to apply emotion css styles to LumiComponents.
Given that we already have to use element to turn ReactComponents into JSX, why not newtype LumiComponent so we can have a proper layer of abstraction over styled components? This way we could treat them the way we want from the outside. It could also help fix the problems you have described, since we could have better type-level tracking of what these components support, like specific styles, children, hooks, etc.
Also, I'm not sure if we should provide these complex styles (such as Styles.Button.button) in a module separate from the component's. This would make it harder for us to create and use these styles in the library and could encourage users to use the styles instead of the components.
I personally see these styles as building blocks for components' visuals, where components are styles + logic (including styling logic).

@arthurxavierx Forgot to address your main comment. Any ReactComponent { className :: String | props } can be re-styled using Emotion. You just import React.Basic.Emotion.element instead of React.Basic.element, which allows you to specify the css prop. This means any components using the LumiComponent aliases will support style extension.
I'm not sure how newtyping LumiComponent relates to hooks. Can you expand on that?

Oh, that's nice! Yeah, newtyping is not that much of a good idea actually, and I can't recall what I was thinking of when saying it related to hooks now :p

We've added Lumi.Components types and helpers for both creating and rendering components. The module defines a LumiComponent abstraction over ReactComponent which allows a component definition to carry around some default props. Looking at the example diffs, some cases are improved and others will need some work. Possibly these variants on the defaults could be expressed as defaults -> defaults functions and composed with the defaults -> props function, rather than just ignoring the main defaults object.

This looks good to me so far - I think this will help reduce a lot of noise in our code. One thing I noticed while I was playing with this locally is that in the slat example, Firefox seems to be selecting different fonts for different slats on the page:

It's using Ubuntu for the first set and Roboto for the second, even though both elements seem to be using the same font-family property. Roboto and Ubuntu are both installed on my machine, so I would expect both to be using Roboto (since it comes first in the font-family declaration). Perhaps this isn't worth worrying about though - it doesn't happen in Chrome and might just be a Firefox bug, or maybe my system fonts are messed up somehow.

Thanks for reviewing! That font issue is really odd.. I'll see if I can reproduce it.

I think this is ready to review and merge. I haven't figured out yet why the font in that example changes, but I don't think it's because of the slat component. I'll look at that some more later.


Fix that AntreaProxy could unintentionally delete conntrack entries in zone 0

This is a subsequent PR for #5112. As mentioned in #5112:

Due to the restriction of the go library 'netlink', there is no API to specify a
target zone. As a result, when deleting a stale conntrack entry with a
destination port (such as NodePort), not only will the conntrack entry whose
destination port is the port added by AntreaProxy be deleted, but also the
conntrack entry that is not added by AntreaProxy will be deleted. This behavior
is unexpected, as only the conntrack entries added by AntreaProxy should be
deleted.

This PR resolves the issue by integrating a CT zone filter, now available in
the latest Go library netlink. Leveraging this feature, AntreaProxy can
accurately delete stale UDP conntrack entries.

Some tests failed, can you check?

Some tests failed, can you check?

Sure. Besides, I was wondering if we could promote the feature gate CleanupStaleUDPSvcConntrack to Beta stage?

Some tests failed, can you check?

Sure. Besides, I was wondering if we could promote the feature gate CleanupStaleUDPSvcConntrack to Beta stage?

How about running it for a while in CI first? I want to ensure this doesn't cause unexpected behaviors, though it doesn't seem to. Promoting a feature shouldn't be in the same PR as a bugfix, the former needs to be more careful and the latter can potentially be backported (though not this case) while the former will never.

Some tests failed, can you check?

Sure. Besides, I was wondering if we could promote the feature gate CleanupStaleUDPSvcConntrack to Beta stage?

How about running it for a while in CI first? I want to ensure this doesn't cause unexpected behaviors, though it doesn't seem to. Promoting a feature shouldn't be in the same PR as a bugfix, the former needs to be more careful and the latter can potentially be backported (though not this case) while the former will never.

Got that. I have resolved the test failure of unit tests and integration tests, and I found that e2e test [E2e tests on a Kind cluster on Linux](https://github.com/antrea-io/antrea/actions/runs/8643534991/job/23700838340?pr=6193#logs) got a failure. I'm not sure if it is caused by the bump of netlink. I try to run this test several times to see that if the failed tests can be reproduced every time.

@tnqn  I found that failure of test E2e tests on a Kind cluster on Linux was caused by the test TestAntreaPolicy/TestGroupValidationWebhook/Case=CreateInvalidTier. The following is the output. I'm not sure if this is caused by the bump of netlink. Have we had such test failures before?
=== RUN   TestAntreaPolicy/TestGroupValidationWebhook/Case=CreateInvalidTier
I0411 08:28:10.128451   23360 k8s_util.go:758] Creating tier tier-prio-20
I0411 08:28:10.138881   23360 k8s_util.go:758] Creating tier another-tier-prio-20
E0411 08:28:10.146187   23360 antreapolicy_test.go:82] Tiers created with overlapping priorities
I0411 08:28:10.153528   23360 k8s_util.go:1175] Deleting test Namespace {x-essto3kz map[]}
I0411 08:28:16.164888   23360 framework.go:793] Deleting Namespace x-essto3kz took 6.011230475s
I0411 08:28:16.164939   23360 k8s_util.go:1175] Deleting test Namespace {y-essto3kz map[]}
I0411 08:28:22.173253   23360 framework.go:793] Deleting Namespace y-essto3kz took 6.008293191s
I0411 08:28:22.174063   23360 k8s_util.go:1175] Deleting test Namespace {z-essto3kz map[]}
I0411 08:28:28.184114   23360 framework.go:793] Deleting Namespace z-essto3kz took 6.009502881s
    antreapolicy_test.go:84: test failed: Tiers created with overlapping priorities

See L506-L516 in https://github.com/antrea-io/antrea/actions/runs/8643534991/job/23697191286?pr=6193 for more information.
Got the same failure at L505-515 in attempt 2 https://github.com/antrea-io/antrea/actions/runs/8643534991/job/23700838340?pr=6193
Got the same failure at L564-574 in attempt 4 https://github.com/antrea-io/antrea/actions/runs/8643534991/job/23715419360?pr=6193

/test-e2e

/test-e2e

/test-all

/test-all

/test-latest-all

/test-latest-all

/test-latest-e2e

/test-latest-all

/test-latest-e2e

/test-latest-e2e

/test-latest-conformance

/test-latest-conformance

@hongliangl Do we need to backport this PR? My PR #6321 rely on this and it cannot be backported without this PR.

You could back them together.

I meant multiple PRs could be backported together in a PR.


[FEATURE] Configuration to enforce case of commit title

Is your feature request related to a problem? Please describe.
The Conventional Commit FAQ doesn't have an opinion on the case of the commit title, other than "it's best to be consistent".
Describe the solution you'd like
It would be nice for cog verify and cog check to be able to enforce this recommended consistency. Ideally through a configuration option like commit_title_case = [lower|upper|title|any].
Describe alternatives you've considered
I've tried seeing if I can configure this using pre-commit, but it's pretty hard to force this only on the first line of the commit while being unable to use piping.
Additional context
None

Ugly (and likely brittle), but I managed to get a pre-commit hook working for this
  - repo: local
    hooks:
      - id: lower-case-commit-title
        name: lower case commit title
        stages: [commit-msg]
        entry: grep --basic-regexp --null-data --only-matching "^[a-z0-9!:() ]\+\n"
        language: system