subsystem: net tcp

support reuserport flag for tcp socket, improve performance and load balancing
reuserport flag in linux will make process accept and handle the connection better

Ah, you are right, I had that backwards (FreeBSD must be afterwards)

OS usually check the port in bind call。so i think we should call setsockopt before bind。And i find this document(https://www.freebsd.org/cgi/man.cgi?query=setsockopt&sektion=2&format=html) that also describe this。

I think it's a good resolution to resolve the issue of https://github.com/nodejs/node/issues/37343

I don't think using an environment variable is the libuv way to do this. I think a better option would be defining a specific uv_tcp_flags flag: UV_TCP_REUSEPORT that can be passed to uv_tcp_bind().

thanks for review, i ihave change the code. Looking forward to your review again。

I don't think using an environment variable is the libuv way to do this. I think a better option would be defining a specific uv_tcp_flags flag: UV_TCP_REUSEPORT that can be passed to uv_tcp_bind().

Thanks for review. I ihave change the code. Looking forward to your review again

I don't think using an environment variable is the libuv way to do this. I think a better option would be defining a specific uv_tcp_flags flag: UV_TCP_REUSEPORT that can be passed to uv_tcp_bind().

Thanks for review. I have change the code. Looking forward to your review again

I think it's a good resolution to resolve the issue of nodejs/node#37343

I have add this flags into my Node.js branch(branch add-reuseport of https://github.com/theanarkh/node). You can test the performance in Linux 3.9 and above.

Codewise, except some style nits I think it's good, but I've been thinking about it and I'm not sure we should add this option as the SO_REUSEPORT seems to be implemented differently across platforms. (see: https://stackoverflow.com/a/14388707). From what I understand this PR is focused in the Linux implementation which only seems to be implemented also on FreeBSD 12+ by using the SO_REUSEPORT_LB option. So I see two options:

Don't add this as you can accomplish the same by calling setsockopt() yourself before calling uv_tcp_bind().
Rename the option to UV_TCP_REUSEPORT_LB to be clearer what's the purpose of the flag and have it implemented only where supported (linux 3.9+, FreeBSD 12+).

My choice would be #1 but let's see what other @libuv/collaborators think.

Codewise, except some style nits I think it's good, but I've been thinking about it and I'm not sure we should add this option as the SO_REUSEPORT seems to be implemented differently across platforms. (see: https://stackoverflow.com/a/14388707). From what I understand this PR is focused in the Linux implementation which only seems to be implemented also on FreeBSD 12+ by using the SO_REUSEPORT_LB option. So I see two options:

Don't add this as you can accomplish the same by calling setsockopt() yourself before calling uv_tcp_bind().
Rename the option to UV_TCP_REUSEPORT_LB to be clearer what's the purpose of the flag and have it implemented only where supported (linux 3.9+, FreeBSD 12+).

My choice would be 1 but let's see what other @libuv/collaborators think.

Thanks for your advice, What I think is that Node.js Server runs under Linux in most cases, so supporting this flag allows Node.js to benefit from Linux. For systems that do not support this flag, I also added compatible code for Node.js(demo code: https://github.com/theanarkh/node/pull/1/files). Do you mean not to support this flag in Libuv, or do not modify the code in uv_tcp_bind? Nginx supports this flag already.

Do you mean not to support this flag in Libuv, or do not modify the code in uv_tcp_bind?

What I mean is that the consumer of libuv (nodejs in this case) could call setsockopt() directly only on specific platforms before calling uv_tcp_bind()

Do you mean not to support this flag in Libuv, or do not modify the code in uv_tcp_bind?

What I mean is that the consumer of libuv (nodejs in this case) could call setsockopt() directly only on specific platforms before calling uv_tcp_bind()

before uv_tcp_bind the socket have not been made(make in uv__tcp_bind). consumer make the socket？

Yeah, I forgot to add, use uv_tcp_init_ex() instead of uv_tcp_init() to create the socket

Yeah, I forgot to add, use uv_tcp_init_ex() instead of uv_tcp_init() to create the socket

I think it should be that the bottom layer supports certain features, and then the upper layer decides whether to enable it, rather than when the upper layer needs to use the feature, it needs to write similar repetitive code, which will increase the burden on the upper layer.

I understand, but the issue here is that it's not a feature that can be implemented cross-platform. BTW, as a reference here's an issue from some years ago about this very same topic: https://github.com/libuv/libuv/issues/1229#issuecomment-281064037. The solution it refers to is also using uv_tcp_init_ex().

I understand, but the issue here is that it's not a feature that can be implemented cross-platform. BTW, as a reference here's an issue from some years ago about this very same topic: #1229 (comment). The solution it refers to is also using uv_tcp_init_ex().

Thanks again, i get it, i try to support this in C++ and js of Node.js。

I'm going to close this. Please feel free to re-open in case you thing there's more to discuss. Thanks

I have read the source code of libuv, and found that the function of uv__set_reuse was called in  uv__udp_bind.  Does this make harmful for cross-platform envrionment?
https://github.com/libuv/libuv/blob/0f696da5f0328dde1f9cc0372692ce22f0d17100/src/unix/udp.c#L562-L566

@yunnysunny I'm not sure I understand your question. Can you elaborate?

@yunnysunny I'm not sure I understand your question. Can you elaborate?

@santigimeno said we should use uv_tcp_init_ex to set the option of SO_REUSEPORT instead of setting it in the function of uv__tcp_bind directly. But when use the option of SO_REUSEPORT, it sets it just in uv__udp_bind. I think we should use the same design to resolve the similar problems in our code.

SO_REUSEPORT is different between tcp and udp. For udp it means mutilcast which is supported in multiple platform. So  i think this is why the Libuv support it.

SO_REUSEPORT is different between tcp and udp. For udp it means mutilcast which is supported in multiple platform. So i think this is why the Libuv supports it.

SO_REUSEPORT is different between tcp and udp. For udp it means mutilcast which is supported in multiple platform. So i think this is why the Libuv supports it.
👌


Update package.nls.zh-tw.json

These strings have not translated in zh-tw.
For #

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[ ] Has a news entry file (remember to thank yourself!).
[x] Appropriate comments and documentation strings in the code.
[x] Has sufficient logging.
[x] Has telemetry for enhancements.
[x] Unit tests & system/integration tests are added/updated.
[x] Test plan is updated as appropriate.
[x] package-lock.json has been regenerated by running npm install (if dependencies have changed).

Codecov Report

Merging #7506 (0584304) into main (caba755) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##            main   #7506   +/-   ##
=====================================
  Coverage     64%     64%
=====================================
  Files        364     364
  Lines      22618   22618
  Branches    3446    3446
=====================================
  Hits       14670   14670
+ Misses      6730    6727    -3
- Partials    1218    1221    +3

Impacted Files
Coverage Δ

...lient/datascience/variablesView/notebookWatcher.ts
68% <0%> (-2%)
:arrow_down:

src/client/datascience/baseJupyterSession.ts
67% <0%> (-1%)
:arrow_down:

...lient/datascience/jupyter/kernels/cellExecution.ts
77% <0%> (-1%)
:arrow_down:

...tascience/jupyter/kernels/kernelCommandListener.ts
58% <0%> (+2%)
:arrow_up:


no need to prompt save unsaved changes when the string is empty

something user type in something and then they change their mind, they delete everything (the text), but when they wanna close the app, they still got the prompt when there's nothing actually to be saved

Duplicate: https://github.com/JasonStein/Notepads/issues/21

Owh I see,, sorry >.<


Create sandbox environment

Context
Create a sandbox environment for ITTMS (school-placements/track-and-pay)
Changes proposed in this pull request

Add terraform configuration for sandbox environment
Add environment variables for the sandbox environment
Update Makefile with the sandbox env
Add sandbox to the workflow

Guidance to review
https://track-and-pay-sandbox.teacherservices.cloud,
https://manage-school-placements-sandbox.teacherservices.cloud
Link to Trello card
https://trello.com/c/5Op8qKHP/1666-ittms-create-sandbox-environment
Things to check

[ ] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[ ] This code does not rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[ ] API release notes have been updated if necessary
[ ] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[ ] Required environment variables have been updated or added to the Azure KeyVault

 ITTMS: Create sandbox environment


[Feature] Add setting for choosing window padding size

When resizing windows, there is an automatic padding added around all edges that should be optional with setting.
A single setting is necessary
eg. set padding=0 to turn off
eg. set padding=5 for keeping as normal
This is the padding I'm seeing right now, where each window's padding adds to the width:

@qaptoR
This is a bug I have been ignoring.
It needs to be investigated.
Thanks.

Added
https://github.com/users/pit-ray/projects/2/views/6?pane=issue&itemId=24578942


set hostname to device-id

This is a draft and shouldnt land. I would like to get something more sensible than (none) as hostname, but that still allows to set hostname through mgmt apps or maybe through cmdline/config? Lets discuss. Also what name to guess in local XP?


room member payload cache bug

https://github.com/wechaty/puppet-service/blob/8109ede98a0315a49d0e3e3030d15fa282a95a74/src/client/puppet-service.ts#L1521-L1525
with this code, we add the raw payload under the key 'contactId' and set to roomMember cache, instead of the value of contactId. If we try to get:
console.log(this.._payloadStore.roomMember?.get(roomId)) // {"contactId":{"avatar":"...","id":"...","inviterId":"...","name":"","roomAlias":""}}

So we should change it to:
 await this._payloadStore.roomMember?.set(roomId, {
   ...cachedPayload,
   [contactId]: payload,
 })
 log.silly('PuppetService', 'roomMemberRawPayload(%s, %s) cache SET', roomId, contactId)

Good catch!
Please feel free to create a PR to fix it, thank you very much for figuring it out!

#203

Merged. Thank you very much for your contribution!


Update README.nd

Hi @destinyson7,
Even though we could not merge this one, we have plenty of available issues if you still want to celebrate Hacktoberfest with us :)
With Best Regards,
Elmer


all_sets

Hi,
I'm looking here as a replacement for the now defunct partitions.
Small thing first, in the docs it says
// Adding 'd', not joined to anything.
dsv.push('c'); // {'a', 'b'}, {'c'}

You are pushing c, not d.
But to the real question, is there a way to extract the sets, similar to the all_sets() in partitions?

Hi!
Thanks for your interest.
Good catch in the docs, I'll fix that.
Regarding your question about extracting sets, does this solve your use case? https://docs.rs/disjoint/latest/disjoint/struct.DisjointSet.html#method.sets

The typo in the docs is fixed with v0.7.0. Thanks for reporting!


 The game is about not missing the ball. And there is two paddles in left side and right side And they both control it so they wont miss the ball
How do you play your game?
 W and S to control the left side of the paddle and I, K the right side. It requires two people and both have to not miss the ball (Hit the Sprig Head back like ping pong).
Code
Check off the items that are true.

[v ] The game was made using the Sprig editor.
[ v] The game is placed in the in the /games directory.
[v ] The code is significantly different from all other games in the Sprig gallery (except for games labeled "demo").
[v ] The game runs without errors.
[ v] The name of the file/game contains only alphanumeric characters, -s, or _s.
[ v] The game name is not the same as the others from gallery

Image (If an image is used)

[ ] The image is in the /games/img directory.
[ ] The name of the image matches the name of your file.

Thanks for your PR!

Thank you for your submission! I have played the game, but encountered a bug: the ping-pong ball resets to the middle even if i hit it with the pallets. So unfortunately I can't approve it just yet, but please make sure to fix this bug and it will get re-reviews and your game will be approved.

Hey. It does work just infact that i can't really make it soo it would move smoothly but only by like tiles (if you get what i mean).
I can try to rebuild it, but i am afraid that the results would be the same.


[Q] Changing the image viewer?

Can the user set a custom image viewer? I suggested handlers, which would allow to get rid of the STB dependency and it'd be more Unixy to use external programs for the image functionality, but is there already another way?

The image viewer won't be compiled into Vgmi if the stb_image.h file is not found at compile time, so if you don't want the image viewer you can simply compile it without it.
To use an external image viewer, see the ":exec" command in #5.

Thank you for all this!


Recurring tasks should have not set next due date in the past

⚠ Please check that this feature request hasn't been suggested before.

[X] I searched previous Ideas in Discussions didn't find any similar feature requests.
[X] I searched previous Issues didn't find any similar feature requests.

🔖 Feature description
When you mark a recurring task that is due every day as completed, the next due/scheduled date is set to the day after the previous due/scheduled date.
This works great, except when you miss a few days. In this case, the due/scheduled date gets set in the past.
✔ Solution
In this case, it would make much more sense for the due/scheduled date to be set to the next day.
For weekly/monthly recurring tasks, it should be the next instance of the date.
❓ Alternatives
No response
📝 Additional Context
No response

Sure, this is already implemented.
If you would like the recurrence to skip any missed days, then you need to add when done to the recurrence.
This is documented at:
https://obsidian-tasks-group.github.io/obsidian-tasks/getting-started/recurring-tasks/#repeating-a-task-based-on-the-original-due-date-or-the-completion-date

Closing as no action needed.

I see! Thank you! Sorry for the false request! Should have looked in the documentation better.

I see! Thank you! Sorry for the false request! Should have looked in the documentation better.

Absolutely no apologies needed - it's easy to miss stuff in the docs, and I am always happy to answer suggestions and questions.
Thank you for a clear request!


Build errors

I keep getting the following build errors

Have you tried to uninstall and install the proxier package again? Can you check the project's target .NET framework

I am using 4.6.1. I think package Nanoid doesn't support 4.6? I also removed proxier but where do I add it again from?

@hashitha Proxier you can add it back using NuGet. If it still fails try targeting 4.7.1

Is the NuGet of the main library published? It's time to split each project into their own repository with their own demo. Worrying about dependencies people may not even care about is extremely inconvenient...

I don't have .net 4.7.1 only 4.6.2 I will try to download it and see if I can compile it tomorrow

@hashitha Could you try building branch package-splitting? I removed a ton of unnecessary references from the demo. Each project will have their own app in their respective repository.

@EdonGashi excellent I can build the demo on branch package-splitting now.

I'll close this out since this seems to be fixed on the package-splitting branch, and since the project will be splat into multiple repos this shouldn't happen anymore


fix: add missing async methods

Fixes #396
This PR provides the following async method implementations that are missing:
SpannerReadOnlyTransaction.ExecuteDbDataReaderWithRetryAsync
SpannerRetriableCommand.ExecuteDbDataReaderAsync
SpannerRetriableConnection.OpenAsync
SpannerRetriableConnection.CloseAsync
SpannerRetriableTransaction.ExecuteDbDataReaderWithRetryAsync

[x] Tests pass
[N/A] Appropriate changes to README are included in PR

@christ-salt-paymentsense Thanks for the contribution!


gRPCReporter can use nanosecond instead of millisecond

If the call time is less than one millisecond, I will not see the call time
like this

That is not a thing determined by go2sky. This is a SkyWalking ecosystem-level concept.
If a span is less than 1 ms, you should not use a span to measure its performance. That is pointless.
Setup a meaningful metric for it if you want some statistic.


Add UI theme helper and replace buttons with helper methods

Summary

Adds ThemesHelper module to DRY-up button styles
Encapsulates profile buttons logic into ProfilesHelper methods, including conditional logic based on the authenticated user
Replaces html with helpers

Ready to merge?


Add Indonesian localization.

Pull request checklist

[ y ] All tests pass. Demo project builds and runs.
[ y ] I have resolved any merge conflicts.
[ y ] I have followed the coding style, and reviewed the contributing guidelines

:muscle::sunglasses::facepunch:
What's in this pull request?
Inonesian localization. Translated by Paris Turnip (theomartin@hotmail.com).

Current coverage is 65.95%

Merging #1527 into develop will not affect coverage as of 49786ab

@@            develop   #1527   diff @@
=======================================
  Files            59      59
  Stmts          2109    2109
  Branches          0       0
  Methods
=======================================
  Hit            1391    1391
  Partial           0       0
  Missed          718     718

Review entire Coverage Diff as of 49786ab

Powered by Codecov. Updated on successful CI builds.

Thanks again @bejo ! :tada:


Add to useful links

https://mcmarketstats.miste.fr/globalStats/

Hello SirLich,
I am starting to contribute to open source projects and looking for issues which I can solve. This issue seems a good first start for me.
What I understand that https://mcmarketstats.miste.fr/globalStats/ should be added to the Knowledge/UsefulLinks section. I would like to work on this issue. Please let me know if that is alright and if yes, please assign this task to me.
Thank you for considering this.

Hi @badalsarkar we would love to have you on board!
In the future, feel free to just complete tasks without getting formally assigned. But sure, in this case I can assign it.
I suggest adding the link into the bottom section of links ("other useful links" I think).
If you have questions, you can contact me on the discord: https://discord.gg/XjV87YN


adding feature for js protection

is that possible to https://github.com/javascript-obfuscator/javascript-obfuscator for packing the js in side as the options?

For my part I used this within my package bundling, prior to the pkg call. I would say it's a good point to have two tools for two different purposes


Fix version switcher

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

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

Totals

Change from base Build<PHONE_NUMBER>1:
0.0%

Covered Lines:
764

Relevant Lines:
764

💛  - Coveralls


Fixes for designspace axes, and for UFO instances weight/width class

don't write axis map elements if all input == output
don't write conflicting mappings (the same input maps to different outputs); if these occur (either because "Axis Location" parameters point different masters to same user-space location, or different instances have the same user-space location), then use the last occurrence but also warn the user about the mapping been redefined (would it be better to raise? see #341)
Drop the legacy 250 value for default Thin, ExtraLight and UltraLight OS/2 weight classes. The latest Glyphs.app beta uses 100 and 200, so we do the same here.
when setting OS/2 weight/width of UFO instances in apply_instance_data, look up weight and width axes by their tag rather than the name (which may not always be "Weight" or "Width")

@belluzj i'm going to merge this as is for now. feel free to do any clean ups on top of it


Allow running integration tests with coverage locally

Allow running integration tests with coverage locally.
cd tests/docker
docker compose up --exit-code-from main

Agree that it is slow but the feedback loop for CI is much slower, I want to have the option to be able to run the tests I run on CI locally or at least the setup same environment so I can debug CI failures when they happen.


Open archive from local storage

Allow users to load local archives. ( file input )

Add a file input button to open archive.
Drag and drop support ?

This was added on the web app


ARROW-5098: [Website] Update how to install .deb by APT

The APT repository for 0.13.0 is unofficial because we don't use the
voted APT metadata. The voted APT metadata was broken.

@kou I'm trying to update the site, but a lot of file have changed with updated script tag integrity attribute. I suppose that's normal, but I'm asking before committing :)

Could you show the diff?
Or should we go to dev@?

@kszucs it could be caused by a gem version change, if you could open a JIRA or start an email thread about it we can take a closer look


React types are not working

use state types are not working

same issue, deno dont sees react types

@thisisjofrank Can you help with fixing example?

Also experiencing this (in both WebStorm and Cursor). I found that deleting the node_modules automatically generated by some of the tasks helps a little bit.
It still doesn't fix everything, but it at least helps get autocomplete working—despite still displaying the types as any.


Allow user to lock inputs to scan-sources

For scan-sources to be run repeatably and generate the same output, we need to be able to lock certain resources in time. This PR intends to implement 2, 3, and 4 below (--upstream already exists):

Upstream sources used:  Done with --upstream
Downstream distgit commits used: Done with --downstream
The brew/koji event: Done with --brew-event
Streams: Pullspec can be specified with --stream

Codecov Report

Merging #298 into master will decrease coverage by 0.09%.
The diff coverage is 30.90%.

@@            Coverage Diff             @@
##           master     #298      +/-   ##
==========================================
- Coverage   25.85%   25.76%   -0.10%
==========================================
  Files          31       31
  Lines        6849     6881      +32
  Branches     1368     1373       +5
==========================================
+ Hits         1771     1773       +2
- Misses       5018     5049      +31
+ Partials       60       59       -1

Impacted Files
Coverage Δ

doozerlib/cli/__main__.py
0.00% <0.00%> (ø)

doozerlib/metadata.py
25.54% <ø> (ø)

doozerlib/distgit.py
31.98% <11.11%> (-0.86%)
:arrow_down:

doozerlib/brew.py
39.84% <28.57%> (-0.33%)
:arrow_down:

doozerlib/runtime.py
27.68% <32.14%> (+0.13%)
:arrow_up:

doozerlib/image.py
13.20% <33.33%> (-0.07%)
:arrow_down:

doozerlib/cli/__init__.py
58.66% <100.00%> (+2.32%)
:arrow_up:

doozerlib/util.py
39.60% <0.00%> (-1.00%)
:arrow_down:

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 79b09da...71056a6. Read the comment docs.


mesa: 21.3.7 -> 21.3.8

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

@ofborg test tinywl sway

The CI tests did timeout but the VM tests do succeed, at least on x86_64-linux:
/nix/store/g8hy58n0mqx09a8snc2arq1zwcsy2nks-vm-test-run-tinywl
/nix/store/510bi2c8c0d6ijv7p9ickzlrvv36hlrl-vm-test-run-sway


Bug find

Searching now does not read NA as a value
Empty class fields return to "NA" value

Closes #174
Closes #161

Codecov Report

Merging #202 (180b8c5) into master (4852c01) will decrease coverage by 0.22%.
The diff coverage is 41.66%.

@@             Coverage Diff              @@
##             master     #202      +/-   ##
============================================
- Coverage     71.52%   71.29%   -0.23%
- Complexity      711      712       +1
============================================
  Files           114      114
  Lines          2325     2331       +6
  Branches        271      273       +2
============================================
- Hits           1663     1662       -1
- Misses          573      576       +3
- Partials         89       93       +4

Impacted Files
Coverage Δ

...in/java/seedu/address/logic/parser/ParserUtil.java
86.15% <0.00%> (-1.54%)
:arrow_down:

...n/java/seedu/address/model/student/ClassGroup.java
72.72% <33.33%> (-16.17%)
:arrow_down:

...c/main/java/seedu/address/model/student/Email.java
71.42% <33.33%> (-11.91%)
:arrow_down:

...c/main/java/seedu/address/model/student/Phone.java
71.42% <33.33%> (-11.91%)
:arrow_down:

.../address/logic/parser/ClassGroupCommandParser.java
100.00% <100.00%> (ø)

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


Expected running time for Remove Anything operation

I tried running the remove_anything command as mentioned in the README and it ended up taking 4m 30s to finish. I ran this on Colab without GPU. Is this the expected timeframe or am I doing something wrong?
Thanks

It's normal. The time depends on running device (GPU or CPU) and the size of the input image. Typically, it takes more time with CPU or large image sizes.


Test imagehash 'old_hex_to_hash' function

DO NOT MERGE
Like #2973 this is just fishing for information.
( We can't simply apply the 'old' hash function to everything, because then we can't add any new hashes.
So, we will need to either convert all existing hash keys, or use old+new methods selectively somehow. )

Looks like this is being obsoleted by #2989


Update address book on billing address save

Fixes #1532

Looks good to me, could you also add a note to the changelog for 1.2?

After looking more into this (need it myself actually), I think the address.num_orders isn't correct anymore. Since each order now increments two (or one and the same) address.num_order properties

continued: perhaps we need to store the number of times an address is used as a billing address and the number of times it is used as a shipping address?

@mvantellingen agreed. I'll make changes.

@mvantellingen ok done. Please take a look.

Looks good. Is it possible to a a property num_orders with a deprecation warning?

@mvantellingen yep, done.

Do you think this pull request can be merged in soon? It looks like the needs more work requirement has been fulfilled by @sasha0 now.

@digicase right, necessary changes were made accordingly to provided feedback, but let's ask @mvantellingen to review this.

Moved release notes to the upcoming release 1.3.

[Current coverage][cc-pull] is 80.84%

Merging [#1779][cc-pull] into [master][cc-base-branch] will increase coverage by 0.02%

@@             master      #1779   diff @@
==========================================
  Files           323        323
  Lines         15473      15485    +12
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          12505      12519    +14
+ Misses         2968       2966     -2
  Partials          0          0

Powered by Codecov. Last updated by [70eb5ee...21529f2][cc-compare]
[cc-base-branch]: https://codecov.io/gh/django-oscar/django-oscar/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/django-oscar/django-oscar/compare/70eb5ee9cda76ded22dbaaceeb77d747dd91301b...21529f23fb2652a2a1a87418695bb3852bf55488?src=pr
[cc-pull]: https://codecov.io/gh/django-oscar/django-oscar/pull/1779?src=pr

@digicase it's finally merged.


Add AWS sage maker

Map sage maker to azure toolset

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

ID: 30d02f16-9621-d204-4132-8ce8db79b0af
Version Independent ID: 65b4385b-79f0-d842-d4a1-5d013615f9b1
Content: Azure and AWS services compared - multicloud
Content Source: docs/aws-professional/services.md
Service: guidance
GitHub Login: @lbrader
Microsoft Alias: pnp

Hello @patpicos
Thank you for your feedback! We have assigned this issue to the author to investigate further and take the right course of action.


[REQUEST] Automatic layout for new windows

Hello,
I would like to know if it would be possible to add the possibility to new windows to respect the chosen layout and not to have to reload the layout with each new window.
In this way the new windows will be automatically integrated into the current layout.
Execute a command to load a layout then each new window will follow this layout.
This will allow many people to take advantage of all the available layouts without having to reload the desired layout each time.
Thanks

Well, this would involve listening to the new-window event (easy), and then
having the layout decide where the container should go (doable),
and then examining the current layout tree and figuring out a set of move up/down/left/right and 'change layout' arguments to turn the tree into the one the layout wants (hard), because i3 does not have a sensible scripting api .
Or it would involve creating the new layout, manipulating the hide/show window order in just the right way and
then doing a full 'apply layout' like we're doing right now. That's easier, but prone to have other windows change positions and might feel 'laggy'. (At least on my dual 4k system, applying a layout is like a three perceived seconds dance of windows :( ).
I suppose we could do the later by marking the windows on each focus change, then at least it would be clear where the old ones went...

Any update on this feature coming to the base script?

Any update on this feature coming to the base script?

Nothing planed, you're probably better of trying qtile.


Allow custom hits iterator

This is probably not what you had in mind for this as it alters the engine away from the Laravel scout builder abstract as well as exposing the engine within the search callback.
My reason for doing it this way is purely thinking about the API as to how I would like to be able to set different iterators on a search by search basis.
I would be interested to get your thoughts on how you see this working. This is really just to open a discussion more than anything.
An example of its use:
$model::search($query,
    function (Client $client, Search $body, ElasticSearchEngine $engine) use ($model, $field, $query) {
        $engine->useHitsIterator(HighlighterHitsIteratorAggregate::class);
        $highlight = new Highlight();
        $highlight->addField($field);
        $body->addHighlight($highlight);
        return $client->search(['index' => $model->searchableAs(), 'body' => $body->toArray()]);
    })->paginate(100);

I don't see a problem with introducing the new method in the engine,

A use example:
return $model::search($query,
    function (Client $client, ElasticSearchEngine $engine) use ($model, $query) {
        $engine->useHitsIterator(EloquentHitsIteratorAggregate::class);
        $body = $engine->getSearchBody(['fields' => ['name']]);
        $body->addHighlight((new Highlight())->addField('*'));
        return $client->search(['index' => $model->searchableAs(), 'body' => $body->toArray()]);
})->paginate(100);

I think it will be to open issue for custom hits iterator.
And don't mix up with pr for https://github.com/matchish/laravel-scout-elasticsearch/issues/86


bump dependencies

[x] bump dependencies
[x] upgrade Yarn@4
[x] bump node version >18
[x] add support for Mermaid in markdown viewer

@akphi do you mind adding a video of this feature
add support for [Mermaid](https://mermaid.js.org/) in markdown viewer
Thanks


When contextPath is "/", the UI page cannot open, but resources are actually accessible.

both swagger and swagger-ui  version 2.9.2.
used in a version 2.0.4 springboot  project
Swagger is normal when the value of context-path is more than "/", as follows
server:
  servlet:
    context-path: /blog-api

But, when the value is "/", the page cannot open.
server:
  servlet:
    context-path: /

I saw that the browser was loading resources incorrectly,
Although the resource loads all return 200, the number of resources loaded seems to have changed
when context-path is "/":

when context-path is "/blog-api"

It seems I sent it in the wrong place.😅


Feature/dawgpath 128

Fixed to merge to develop instead of main. Thanks, Diego!

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
395

Relevant Lines:
555

💛  - Coveralls


[apps/rand] Modifications to output file generation.

Two modifications to the code:

the size of the random output is now represented by a long, so much larger output can be generated.
the output chunk size is now changeable [it was 4096 by default] allowing for higher performance is some situations.

Do you have figures backing up the higher performance claim?  I'm asking because OpenSSL's DRBGs generate in lumps of the cipher/digest block size which is much less than 4096 (okay, this is not strictly true, the CTR DRBG has assembly that does several such blocks at once but it's not a large number).  There are overheads with the generate call but amortised over 4k, I would expect them to be the critical path.
This doesn't preclude other RNGs from becoming significantly more efficient for large sizes, I'm just not aware of any.
The change to a long argument for the output length is worthwhile.

I haven't had a look at how the underlying RNGs work, but I did notice performance improvements when using the -out option with a bigger chunk size. This could be attributed to other factors such as fewer write() syscalls and less tight loops and might not have anything to do with the performance of the underlying RNG itself.
I did some rudimentary syscall profiling via strace and the overall time spent in write() syscalls does decrease as we go to higher chunk sizes, at least on my Linux machine. The performance improvements might be very system dependent, but I feel this option can be useful in some cases.
One particular test yielded a ~7% time improvement between chunk sizes of 4096 bytes and 8MB when generating 64GB of random data.

I would not add a new buflen option when there is already a chunk option. Just increase the size of the buffer to something reasonable for where the performance difference is minimal when it would be larger and allocate it on the heap.
I think something like 128kB buffer would do.

This pull request is ready to merge

Merged to master after squashing the commits.
Thanks for the contribution.


Unable to detect client disconnection on server side streaming

Hi guys! Firstly, I want to thank you for this amazing library! The docs are good as well, but I've struggled to find a way to detect (on the server side) when the client connection drops.
I've spent a lot of time trying to figure out this comment that @LucioFranco left about this here #196, but I couldn't get it working. If someone that did this already could provide an example, that would be amazing!
I'm aware that gRPC streaming is not very popular yet, but I expect others to bump into this issue down the line, so it would be good to stick this into the docs somewhere. Happy to raise a PR for that if I can get some help getting it working myself 😢
Thank you!

@stefandanaita what were the issues you ran into with that solution?

Hi @LucioFranco! It might be due to my still growing 🦀 knowledge, but here's what I struggled with
Firstly, when trying to write my own Stream implementation, like you suggested below, I assumed you were referring to poll_next instead of poll_accept, however I couldn't figure out how to forward the call to the inner Receiver 🤔
pub struct MyStream(mpsc::Receiver<Result<Msg, Status>>);

// In here you just need to forward the `poll_accept` call
// to the inner `Reciever`.
impl Stream for MyStream {
    type Item = mpsc::Receiver<Result<Msg, Status>>; // I guess this is alright

    fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
        unimplemented!() // Not sure what this body should be
    }
}

impl Drop for MyStream {
    fn drop(&mut self) {
        println!("Stream dropped! Client disconnected!");
    }
}

Secondly, I'm not sure how to hook this custom stream to the gRPC Service implementation. The oneshot channel part should be easy once I figure out how to get that drop function called.
Would it be possible to extend the server side streaming example and include this scenario? 😄
Thank you!!

That is correct, for the receiver you can just forward the poll_next call to the Stream::poll_next on the receivers stream implementation. The drop method will be called when the stream ends.

Everything seems fine apart from the poll_next forwarding. I've tried this
impl Stream for MyStream {
    type Item = Result<VideoResponse, Status>;

    fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
        Stream::poll_next(self, cx)
    }
}

However, this gets me into an recursive infinite loop like the one here. Do you know how I could go around that? I couldn't find a way to forward a call to the underlying trait in Rust 🤔

@stefandanaita make sure that you are polling the inner stream not your struct.
struct MyStream {
  rx: mpsc::Receiver<...>,
}

impl Stream for MyStream {
    type Item = Result<VideoResponse, Status>;

    fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
        Pin::new(&mut self.rx).poll_next(cx)
    }
}

You can also use this to get around the need to pin https://docs.rs/futures/0.3.5/futures/stream/trait.StreamExt.html#method.poll_next_unpin

Hi Guys,
for what it's worth, I also ran into this requirement last week and was able to solve it in a similar way. The following code is how I got it working in my application (adapted a bit to use a oneshot channel instead of mpsc with custom message):
pub struct DropReceiver<T> {
    chan: oneshot::Sender<usize>,
    inner: mpsc::Receiver<T>,
}

impl<T> tokio::stream::Stream for DropReceiver<T> {
    type Item = T;

    fn poll_next(mut self: std::pin::Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<T>> {
        self.inner.poll_recv(cx)
    }
}

impl<T> Deref for DropReceiver<T> {
    type Target = mpsc::Receiver<T>;

    fn deref(&self) -> &Self::Target {
        &self.inner
    }
}

impl<T> Drop for DropReceiver<T> {
    fn drop(&mut self) {
        debug!("Receiver has been dropped");
        self.chan.send(1).await;
    }
}

// In the Service function:
let (tx, rx) = mpsc::channel(4); // Channel for the server-side streaming
let (oneshot_tx, oneshot_rx) = oneshot::channel();

let rx = DropReceiver {
    chan: oneshot_tx;
    inner: rx,
};

// Send the oneshot_rx somewhere else to detect the client dropping
Ok(Response::new(rx))

I'm not sure whether the Deref is actually necessary though. Still very new to Rust/Tonic.
Hope this helps with your problem @stefandanaita

I just now noticed that I'm forwarding the poll_next call to inner poll_recv instead of inner poll_next. I did this because without pinning the compiler throws the following error:
error[E0599]: no method named `poll_next` found for struct `tokio::sync::mpsc::bounded::Receiver<T>` in the current scope
  --> src/central.rs:42:20
   |
42 |         self.inner.poll_next(cx)
   |                    ^^^^^^^^^ help: there is an associated function with a similar name: `poll_recv`

So I just replaced the inner.poll_next() with inner.poll_recv() and it worked. But evidently this is not the proper way to do it. Pinning as @LucioFranco mentioned works and I can forward to inner.poll_recv(). The code for the impl Stream then becomes:
impl<T> tokio::stream::Stream for DropReceiver<T> {
    type Item = T;

    fn poll_next(mut self: std::pin::Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
        Pin::new(&mut self.inner).poll_next(cx)
    }
}

and I can confirm this works. But no idea what the difference is between this (with pinning) and the other one without pinning but forwarding to poll_recv()

poll_recv is likely a private fn we have within tokio that doesn't actually require pinning. Glad that worked!

Thanks @siebeclaes! I've managed to get it working with Lucio's suggestions 15 minutes ago! I'll steal the oneshot stuff from you though!
 If positive, I'll find the time to do it 😄
Thanks a lot to both of you!

@stefandanaita totally! I would love any help in what you think would make this a bit easier to discover :)

Going to close this, feel free to re-open if you have anymore questions.

Hi everyone, chipping on this as I need to get this to work, as a few more of you I am just getting started with rust/tokio/tonic...
My questions to @siebeclaes code: first you are using the oneshot in the Drop implementation as a future.. what oneshot are you using ? futures implementation ? or tokios ? also calling await in a non async block is usually forbidden, so it does not compile for me... If I remove it and try to use tokios oneshot it will of course drop the sender on send(), and this does not work as well since move of self inside a &mut self fuction is also forbidden...
As I can read from you post you where probably using the mpsc channel instead in reality...
I can clearly see that detecting the drop of the reciever in the log works, but I do not know how to successfully use the oneshot to fire the info back to the other async task... Also: what is the advantage of using a oneshot here instead of another channel ?
Can you explain a little more what is going on there and how you made it work finally ? I really would like to understand this construct a little more...

As for now I have solved the issue for myself by using tokio::sync::mpsc::unbounded_channel, as this allows me to do the send synchronously, and also does not consume itself.
I still would like to know your opinions and solutions to get some more ideas on how to deal with async / sync code mixtures like this, thanks

I tried to implement @siebeclaes code but it is throwing this error

error: cannot move out of self.chan which is behind a mutable reference
label: move occurs because self.chan has type tokio::sync::oneshot::Sender<usize>, which does not implement the Copy trait

Here is the code
use std::task::{Context, Poll};
use std::pin::Pin;

use tokio::sync::{mpsc, oneshot};
use futures::Stream;

pub struct DropReceiver<T> {
    chan: oneshot::Sender<usize>,
    inner: mpsc::Receiver<T>,
}

impl<T> Stream for DropReceiver<T> {
    type Item = T;

    fn poll_next(
        mut self: std::pin::Pin<&mut Self>,
        cx: &mut Context<'_>,
    ) -> Poll<Option<Self::Item>> {
        Pin::new(&mut self.inner).poll_recv(cx)
    }
}

impl<T> Drop for DropReceiver<T> {
    fn drop(&mut self) {
        println!("Receiver has been dropped");
        if let Err(_) = self.chan.send(1) {
            println!("the receiver dropped");
        }
    }
}


install problem

Hi, is it possible to provide environment related configuration tutorials in the readme? I tried experimenting with maptr's environment, but it produces a lot of file directory related bugs

After I fixed the bug, a new problem ensued


Fix plural form with singular for 1 only

The form nplurals=2; plural=(n != 1); was implemented like the nplurals=2; plural=(n <= 1); one. Fix according to the gettext doc:
https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/Plural-forms.html

thx


The last commit #68 does not check the storeType before changing hostip:port to name and causes exceptions to save key value pairs

As it mentioned in https://github.com/CentaurusInfra/regionless-storage-service/commit/79353ac1d48d829a889939294f3f547bddfc76fc#diff-a3d824da3c42420cd5cbb0a4a2c0e7b5bfddd819652788a0596d195dc6e31fa5R70
// returned items identifing backend stores by name, NOT by hostname:port - backend may be other than redis type
Redis backend use hostip:port while others might use name.
The commit does not add any check of backend store type before changing hostip:port(not hostname:port as it describe) to name, which causes the following exceptions when using redis backends

I also checked the config_test.go and found all the test cases have been changed to test DummyLatency datastores.

tried on 1 local redis + 1 remote (aws cloud) redis
local redis is listening on <IP_ADDRESS>:16378;
remote redis is at <IP_ADDRESS>:16380 (the ping latency around 12-13 ms)
used the commit 79353ac1d48d829a889939294f3f547bddfc76fc,
with following json.txt
diff --git a/cmd/http/config.json b/cmd/http/config.json
index 3ef0198..37feb47 100644
--- a/cmd/http/config.json
+++ b/cmd/http/config.json
@@ -3,36 +3,28 @@
     "BucketSize": 10,
     "ReplicaNum": {
         "//" : "The number of local replica from the ones whose latency is fewer than RemoteStoreLatencyThresholdInMilliSec",
-        "Local": 2,
+        "Local": 1,
         "//" : "The number of remote replica from the ones whose latency is more than or equals to RemoteStoreLatencyThresholdInMilliSec",
         "Remote": 1
     },
-    "StoreType": "mem",
+    "StoreType": "redis",
     "Concurrent": true,
-    "RemoteStoreLatencyThresholdInMilliSec": 100,
+    "RemoteStoreLatencyThresholdInMilliSec": 2,
     "Stores": [
         {
             "Region": "us-west-1",
             "AvailabilityZone": "us-west-1b",
             "Name": "store1",
             "Host": "<IP_ADDRESS>",
-            "Port": 6379,
+            "Port": 16378,
             "ArtificialLatencyInMs": 1
         },
-        {
-            "Region": "us-west-2",
-            "AvailabilityZone": "us-west-2a",
-            "Name": "store3",
-            "Host": "<IP_ADDRESS>",
-            "Port": 6379,
-            "ArtificialLatencyInMs": 40
-        },
         {
             "Region": "us-west-2",
             "AvailabilityZone": "us-west-2b",
             "Name": "store4",
-            "Host": "<IP_ADDRESS>",
-            "Port": 6380,
+            "Host": "<IP_ADDRESS>",
+            "Port": 16379,
             "ArtificialLatencyInMs": 100
         }
     ]

curl is able to work properly
$ curl -X POST http://<IP_ADDRESS>:8090/kv -d '{"key":"a","value":"third"}'
The key value pair (a,third) has been saved as revision 4 at store1,store4

$ curl http://<IP_ADDRESS>:8090/kv?key=a
The value is third with the revision 4

looked at redis by redis-cli, verified that both redis having data written., e.g.
// on remote redis
<IP_ADDRESS>:16379> keys *
1) "1"
2) "4"
3) "3"
<IP_ADDRESS>:16379> get 4
"third"

on local redis:
<IP_ADDRESS>:16378> get 4
"third"


Problem in Scrolling while my listViewVariant is in fragment

My ListViewVariants is in fragment and fragment is the part of Activity with 3 tab. In my activity i'm using collapsing toolbar. My tab with  listViewVariant, when i scroll my list to up it doesn't collapse and show the list improperly while on another tab i have recyclerview which is scrolling and collapsing correctly. Please help me in figuring this out.

Sadly I don't use and support this library anymore, as the class that replaced ListView is now RecyclerView.
I'm going to keep this open so that if others who still use it, see this - they might help.

its ok dear


Another brick in changing the API path for submission history, Part One

This PR changes these three API endpoints:
Collection query:
From old path GET api/history/{orgName}/submissions to new path GET api/waters/org/{orgName}/submissions
Report Drilldown queries:
From old path GET api/history/{orgName}/report/{reportID} to new path GET api/waters/report/{reportId}/history
From old path GET api/history/{orgName}/submissions/{actionID} to new path GET api/waters/report/{actionId}/history
User Facing Changes
From a user's perspective, this results in these user-facing improvements when using our lineage/history API features:

the removal of the need for the organization name in the URL when querying an individual report.  We can figure that out ourselves, and we can use the Okta claim to confirm you have rights to see it.
for simplicity search for actionId (renamed submissionId for external users) and reportId's use the same path, especially as both return the same object/resource (a submission history object)
The response to the Collection query above has been tweaked to match the fieldnames in the History API, to wit:
-- taskId has become submissionId
-- createdAt has become timestamp
-- sendingOrg has become sender

Example of that last change:
The OLD response to a Submission collection request:
    {
        "taskId": 29,
        "createdAt": "2022-03-23T21:29:14.860Z",
        "sendingOrg": "ignore",
        "httpStatus": 201,
        "id": "88785ed2-0375-4286-97f6-b649f107384b",
        "topic": "covid-19",
        "reportItemCount": 20,
        "warningCount": 0,
        "errorCount": 0
    },

Which has been changed to this NEW response (first 3 fieldnames have changed):
 {
       "submissionId": 29,
       "timestamp": "2022-03-23T21:29:14.860Z",
       "sender": "ignore",
       "httpStatus": 201,
       "id": "88785ed2-0375-4286-97f6-b649f107384b",
       "topic": "covid-19",
       "reportItemCount": 20,
       "warningCount": 0,
       "errorCount": 0
   },

I also made one significant useful internal change:   When running locally, if you submit anything resembling a slightly valid jwt as your "Authorization: Bearer 111.22.333" header, the code will now use Okta auth rather than just skipping it.   This makes it very easy to test locally now -- you can test locally simply by using your staging token.
Test Steps:
Best is to test this using the UI.  This tests both back and front ends and also tests the real okta auth.

Set up and run both RS backend and frontend.
Login and upload some data.
go to Sumissions and confirm the list works.
Drilldown into one Report, and confirm that works.
Assuming you are an Admin, switch to another Sender, and do the same thing.

Manual testing:
./prime login --env staging.
# If needed, put some `ignore` data in your local system:
./prime test --run end2end
cat ~/.prime/accesstoken.json | cut -d"," -f1 | cut -d":" -f2
Then grab that token string and paste it into these queries:

Changes

Include a comprehensive list of changes in this PR
(For web UI changes) Include screenshots/video of changes

Checklist
Testing

[X] Tested locally?
[X] Ran ./prime test or ./gradlew testSmoke against local Docker ReportStream container?
[I tried but it made a million changes so I got frightened and backed out!] (For Changes to /frontend-react/...) Ran npm run lint:write?
[X] Added tests?

Process

[N] Are there licensing issues with any new dependencies introduced?
[X] Includes a summary of what a code reviewer should test/verify?
[N] Updated the release notes?
[N/A] Database changes are submitted as a separate PR?
[Y] DevOps team has been notified if PR requires ops support?

Fixes

#4557 Partial fix.   This fixes the code, but not the openapi spec, which will be in a separate "Part Two" PR.

To Be Done

Write release notes.  (Waiting to combine with Carlo's PR)
Document need to clear browser cookies when testing ./prime login with different userids.
It isn't easy to notice/figure out an expired token error.  The code throws a Jwt Exception with no additional detail.
Write a smoke test that does token based auth on submissions   Here are the various dimensions that make up the test-space:   OktaAuthentication vs Testclaims;   Queries that include an Org vs Queris with no Org in them.;  Principal Level:    User, PrimeAdmin, Org Admin.

Specific Security-related subjects a reviewer should pay specific attention to
This PR refactors our Okta (human) authentication and authorization code used by Settings, TableLookup, and the History API.

Does this PR introduce new endpoints?  No, but it revises current ones.
Does this PR include changes in authentication and/or authorization of existing endpoints?  Yes
Does this change introduce new dependencies that need vetting? No
Does this change require changes to our infrastructure?  No
Does logging contain sensitive data? No
Does this PR include or remove any sensitive information itself?  *No

Pull reviewers stats
Stats for the last 30 days:

User
Total reviews
Median time to review
Total comments

MauriceReeves-usds
33
1h 54m
12

carlosfelix2
20
15h 31m
29

whytheplatypus
17
17h 49m
27

cwinters-usds
15
3h 35m
12

ahay-agile6
14
1h 48m
2

kevinhaube
13
50m
9

jorg3lopez
13
1h 20m
8

jimduff-usds
13
4h 29m
2

TomNUSDS
13
1h 1m
60

brick-green-agile6
11
2h 16m
7

jbiskie
10
27m
3

sethdarragile6
10
3h 26m
2

TurkeyFried
8
1h 32m
2

oslynn
8
37m
1

bgantick
6
1h 46m
5

clediggins-usds
5
23h 28m
0

meckila
4
5h 8m
14

rhood23699
4
1d 8h 20m
0

JosiahSiegel
3
24m
0

snesm
3
22h 43m
0

acoushawk
2
39m
0

jh765
2
10h 42m
4

jeremy-page
1
18h 23m
0

In the PR description, your manual testing seems to be missing steps.  Also, the Changes section is empty.

In the PR description, your manual testing seems to be missing steps. Also, the Changes section is empty.

fixed.


API Framework-Part II Creations of POJO classes , Add Test Layer and CoWIN API Test Cases

PR for CoWIN API Test Cases

getAllStates()
getAllDistricts()
getAllAppointmentByDistrict()
getAllAppointmentByPin()
getCertificate()

Added below Scope in PR :

Add Test Layer (src/test/java/com/rishabh/restframework/endpoints/EndPoint.java)
Creations of POJO classes

src/main/java/com/rishabh/restframework/responses/pojo/Districts.java
src/main/java/com/rishabh/restframework/responses/pojo/Sessions.java
src/main/java/com/rishabh/restframework/responses/pojo/States.java

[ ] To Create a TestDrivenFramework in API Automation Framework Part-III for GenericTestMethods. ETA ~05/27


macros are broken unless import is manually added

macros will cause 11ty to error in the console and not rebuild due to how 11ty handles nunjuck template inheritance which is slightly different than "vanilla" Nunjucks.
Ideally, there would be a global import so macros would only need to use a single import for all components that live under the components/ directory.
{% from 'macros/component.njk' import component %}

{{ component('blockquote', {
  text:'This is a blockquote using a macro',
  source: 'Issue #613'}) }}

This is only an attempt to keep everything in the spirit of Flightdeck, where Eleventy is at the helm with the least amount of friction for the developer experience.

https://github.com/11ty/eleventy/issues/613

https://github.com/11ty/eleventy/issues/613#issuecomment-999637109


Add more Foldable methods

Implement foldl, foldr', and foldMap specially. Also add
functions foldl, foldr', foldlWithKey, foldrWithKey',
and foldMapWithKey.
Closes #222

@Fuuzetsu, I'd appreciate a review.

I think I'd love to see some benchmarks added, that way it'd be very easy to quantify the impact of this change with before/after. Do you think you can do that?

 :-P. But I'm willing to give it a shot.

A blogpost has generated some interest in improving the Foldable instances here, specifically length.
Does this PR need more work before it can be merged? If so, could the uncontroversial parts be merged and released separately, so users can benefit from them?

Bump on this - @Fuuzetsu does this need more work?


Permission Denied

I get this error:

@Arianit94 can you describe the issue little more? I cannot regenerate the issue

@desyed hi
I cloned the code repository. Then I made the settings in the comment I left the link below. I get the same error as @Arianit94  above. What else needs to be set? Or is it a bug? https://github.com/desyed/likho/issues/10#issuecomment-2557560607

careful when visiting site, currently no ssl and leads to another site
which looks hacked
On Fri, Dec 20, 2024 at 2:14 PM Mustafa ERDOĞMUŞ @.***>
wrote:

@desyed https://github.com/desyed hi
I cloned the code repository. Then I made the settings in the comment I
left the link below. I get the same error as @Arianit94
https://github.com/Arianit94 above. What else needs to be set? Or is it
a bug? #10 (comment)
https://github.com/desyed/likho/issues/10#issuecomment-2557560607
image.png (view on web)
https://github.com/user-attachments/assets/a3a6c948-4c2f-4edd-ab84-8684c2941b4a
—
Reply to this email directly, view it on GitHub
https://github.com/desyed/likho/issues/9#issuecomment-2557580071, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AFCUGSGEJTTTJS2I3TYXTO32GRT77AVCNFSM6AAAAABT7WB562VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJXGU4DAMBXGE
.
You are receiving this because you were mentioned.Message ID:
@.***>


extra / bad link dir added for gtest

I am using older blt still with gtest 1.8 -- can anyone comment on if the newer gtest also has this issue?
[  0%] Building CXX object blt/thirdparty_builtin/googletest-release-1.8.0/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[  1%] Linking CXX shared library ../../../../lib/libgtest.dylib
ld: warning: directory not found for option '-L {CYRUS' PATH}/blt/thirdparty_builtin/googletest-release-1.8.0/googletest/src'
[  1%] Built target gtest

this does not happen with newer blt and newer gtest


[BUG] npm ERR! Unexpected end of JSON input while parsing near '...nbul":"^1.1.1","gulp-'

This is now just to let you know, cuz I can install now using an older version of yarn.
On trying to install shopware-pwa- canary
on catalina
using node 10.20.1 & npm
I get
npm ERR! Unexpected end of JSON input while parsing near '...nbul":"^1.1.1","gulp-'

hey @ivosanchez, is this problem still occurs when you're using npx @shopware-pwa/cli init?


⚠ Bofrost.es has degraded performance

In e1486dc, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1492 ms

Resolved: Bofrost.es performance has improved in 9c42e39 after 6 minutes.


fix reset value idx in bool rle decoder

Proposed changes

Fix value  idx in bool rle decoder
Iceberg table support datetimev2(3).  In the previous version, we converted hive timestamp to datetimev2(0) default.

Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

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

run buildall

run bulidall

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 33.53 seconds
stream load tsv:          447 seconds loaded<PHONE_NUMBER>9 Bytes, about 159 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          72 seconds loaded<PHONE_NUMBER> Bytes, about 14 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230401121435_clickbench_pr_123632.html


Feature: Next.js compatibility

In fact, after supporting webpack, there is a little work to do to let unplugin support nextjs.
Writing these glue codes is indeed tedious, So could we just make it in unplugin, I'm very happy to make PR for this.

/cc @pi0 do you think we should have this?

/cc @pi0 do you think we should have this?

Would be nice to have some thoughts from Next team (@leerob)

@hyf0 What exactly is needed to make a webpack plugin work with next? Aren't all webpack plugins nextjs compatible?

I think at this point, directly supporting meta-frameworks is out-of-scope of unplugin. We are focusing on build tools that have similar scopes.
For turbopack I think the problem is that it doesn't support a flexible enough plugin system that can fix the feature parity of unplugin. We will keep an eye on it but I think it might not happen very soon.


Is xRDLicenseConfiguration Available in Any Releases?

I'm not sure if I am asking this question correctly, but I hope someone will understand.
If I run this command to install version <IP_ADDRESS> of xRemoteDesktopSessionHost
install-module -name xRemoteDesktopSessionHost

I am able to add these resources in my configuration file:

xRDRemoteApp
xRDSessionCollection
xRDSessionCollectionConfiguration
xRDSessionDeployment

But xRDLicenseConfiguration is missing. How can I access xRDLicenseConfiguration?

Hi @mjcarrabine,
I just verified that xRDLicenseConfiguration is available in the latest release of xRemoteDesktopSessionHost, which is <IP_ADDRESS> at this moment. If you pull that version from the PSGallery you will be able to use the xRDLicenseConfiguration resource.

I'm considering this answer solved, let me know if you have any more questions @mjcarrabine.


Distributed Tracing: Add RequestChargeThreshold to CosmosThresholdOptions

Customers should be able to add a filter for traces based on the RU charge of a request. This option already exists in Java https://learn.microsoft.com/en-us/java/api/com.azure.cosmos.cosmosdiagnosticsthresholds?view=azure-java-stable

Is Payload size based filtering also a requirement?
Even if its not for consistency, how about include both?

Hi Kiran - I discussed it with Justine on Teams, the requirement here is mainly around monitoring for queries with high RU charges, but I suppose that anything that closes the gap w.r.t. Java SDK helps. (https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosDiagnosticsThresholds.java)

For a moment my heart skipped a beat thinking that https://github.com/Azure/azure-cosmos-dotnet-v3/issues/1763 was being addressed (I'd still love to be able to define a size or RU budget for queries in general, and ChangeFeedl requests in particular).
Having to pick between ultra conservative 100 docs or setting a huge limit and getting lumpy RU costs when the documents are not of uniform size is very unfortunate in terms of delivering consistent throughput without random large requests causing rate limiting when that's absolutely not the intent of the system.


Don't spew out 404 errors on _local/

Reduce tech support noise; the 404 errors are outputted to the log and are normal for when you do an initial start. This is interpreted as a bug but actually is not. To reduce confusion, should not have the errors spewed out.

Already fixed, was a duplicate of https://github.com/couchbase/couchbase-lite-java-core/issues/335


[Engsys] Suppress credscan reported issues for test constants

Remove leftover recordings of search-document. Their tests have been deleted already.
move secret constants into their own files so we can suppress the files instead of relying on unstable hashes.
add test constants files to suppression list.

@zfoster @EmmaZhu please look at the test only changes.

@kushagraThapar @simorenoh @simplynaveen20 @xinlian12 @moderakh please review cosmos test changes. thanks!


Survey

Send out survey for getting more insight about the packages our users want.

This would be nice, but I don't think it's a blocker. We can do a quick informal survey internally and see what requests come in once this is live.

I think this was a cool idea to write a blog post. But I see your point. This is one more thing to do and I would like to finally release the new version. So let's closet this.


Web console

At first glance it's look like working.
Changed MO files - CommandList.js :
changed column order in playerList , because table was messed up in utf8 terminals by "cool names" ; console.log changed to  Logger.print for consistance.
New files:
src/console-plus.js
src/console-plus.html
Specific terminal commands:
arrow Up/Dn         -> comands history for current session
arrow Left          -> clean input line
Esc or "logout"     -> terminal logout
default login/pass  ->  "admin" "pass"
address of server   ->  console-plus.html :: 24
port                ->  console-plus.js :: 135
run "node console-plus.js" with your favorite daemonizer, it will start MO.
Play the game as usually.
To open console go yourserver:1234 in browser.
run.sh should be removed - it's present by mistake

Ehhhhhhhhhhhhhhhh. Feels a lot more like just extra code, if we have the terminal this isn't that useful.

@MastaCoder  What terminal do you have when your server run as a daemon?
If you don't need web terminal you have just run MO the old way.
Console-plus doesn't change code of server, it's just extension. Wrapper.
@Tyler3D  Have you ever heard about VM box? It's address of virtual box, yes, on my pc. You are free to change it to whatever you need, just read my initial comment.

@Gimmo Thanks so much, it works great! However there are a few things here and there that I have found:

When running console-plus for the first time, It installs all of the modules that it needs, except for Websocket. It throws an error until you install it manually through npm.

It breaks the regular terminal, once you start the server using console-plus, you will be disconnected from the normal terminal, you cannot enter commands, you can't backspace, you can't do anything.  However the web console works fine. Is this supposed to happen? Are you only supposed to use the web terminal if you start the server with console-plus? I'm using Win10 to test by the way.

@Gimmo But, keeping localhost as default would me better. I don't have that IP. And I have 20 virtual machines.

@Megabyte918 On C9 you said your going to use another version. Can you give me a link?

@Megabyte918

I'll try to look this later, thank you .
It's supposed to be. May be some warnind message should be done.... Terminal should be inaccessible at all, but a part of functions (commands) can be reborn, if you need, by uncomment pipeline at line 144 console-plus.js . But I, rather, will try to block it completely on OS reasons - I don't like uncontrolled streams on daemon. Them should be strictly redirected to /dev/null .

I, personally, preferre to implement web-console into MO, as it, in current state, eats some more resources then I like.
Thank you for kind words.

Websocket module changed to ws. No additional dependences now.

@Gimmo Works perfectly 👍


Excessive warnings when using accessor function without query field specifier

From #53

@tmeasday @boxofrox
Only one a bit annoying issue with this is that i constantly get warnings in the console:
W20150807-13:23:45.353(2)? (STDERR) publish-counts: unused fields removed from cursor fields option. { _groupId: 0 }

Is there any chance to move that to some debug block which can be enabled be developer if needed?

Without a field specifier, the accessor function causes publish-count to fetch entire documents, instead of only those fields necessary to maintain a proper count.  The field specifier is recommended.
I take it the second solution from earlier didn't work with the field specifier [1]?  If it does, then you won't receive the warnings.
I'm more inclined to have the debug option be opt-out rather than opt-in in development.  Or if I can detect a production environment, disable the warning automatically.  I'll take a look.

Notes to self.

Use process.env.NODE_ENV to distinguish between development and production environments.
Add Counts.noWarnings() to disable all warnings in development.  For single developers only.  Not recommended  for development teams.
Add noWarn: true to the options parameter of Counts.publish() to disable warnings in development per publish.  Recommended for development teams.

@boxofrox
I tested that first solution again, it is working, but now i get both warnings
W20150812-11:59:15.770(2)? (STDERR) publish-counts: unused fields detected in cursor fields option { _groupId: 1, day: 1, user: 1 }
W20150812-11:59:15.775(2)? (STDERR) publish-counts: unused fields removed from cursor fields option. { _groupId: 0 }

I need to specify more fields because of the query, not just _groupId. Here's the code:

Meteor.publish('calculateTasksTime', function(from, to, user) {
  var tasks = Tasks.find({
    time: {$gt: 0},
    day: {
      $gte: moment(from).startOf('day').unix(),
      $lte: moment(to).endOf('day').unix()
    },
    user: user
  }, {
    fields: { _groupId: 1, time: 1, day: 1, user: 1}
  });

  Counts.publish(this, 'calculateTasksTime', tasks, {
    countFromField: 'time'
  });
});

Hope this is helpful to you.

@kristijanhusak wierd.
I think those two warnings are from separate Counts.publish calls, otherwise the second warning would remove day and user also.
The first warning is expected for the code you provided, and I'm glad to hear that it works.


[Q] How TSDuck handles bitrates with decimals?

Hi @lelegard ,
I ask for this because I don't know the answer: How TSDuck handles bitrates with decimals?
The bitrate is expressed as "bits per seconds", but using some modulations (for example with some DVB-T configurations) the bitrate is not an integer value. So when the bitrate is not a value that can be expressed with an integer... how we can handle it with TSDuck?
Please could you add some light on this point?
Thank you.

So when the bitrate is not a value that can be expressed with an integer... how we can handle it with TSDuck?

You cannot, unfortunately.
The initial choice to represent bitrates was integer values in bits/second. At the time, it was more than enough for the target use cases. It could have been different, for instance in db/s or cb/s (decibits/s or centibits/s). But this is not the case.
Technically it is possible to change this. But this would require a careful inspection of all individual lines of code across the whole project (376,830 lines as of today) to apply all modifications. I have no time for this and this won't probably happen any time soon. Not by me at least.
I can design a new BitRate class which would carefully encapsulate bitrate representation and computations (I should have probably done this in the first place). But someone else has to perform the overall modifications in the code base.

There is maybe a possibility. I have experimented a FixedPoint class which is carefully defined to mix with integer arithmetics. If the type ts::BitRate is redefined as a fixed-precision, this may work. But there are several steps:

Update BitRate type and make sure everything recompiles.
Make it does not break anything.
Explore code in case some integer types were used somewhere instead of BitRate

Using such a fixed-point type, the precision can be arbitrary decided for each type. How many decimal digits should be used for bitrates? 2 or 3 maybe?

Hi @lelegard ,
Great news!

Using such a fixed-point type, the precision can be arbitrary decided for each type. How many decimal digits should be used for bitrates? 2 or 3 maybe?

I don't know the correct precission required. However, I feel the max level should be around 10ns. As the PCR clock is running at 27Mhz, so we need more than 37ns of precission to circunvent any drift.
Anyway, regarding the new ts:BitRate type with fixed-precision we need to define where to use it. I feel it only requires to be at:

Plugins that use the PCR and/or DTS/PTS timestamps.
Input and Output plugins that use tuners or modulators.
The tsterinfo and similar tools.

I suggest to first target the tsterinfo tool to almost calculate the bitrates with correct subbits/s units. What you think?
And thank you for working to improve this.
Best regards.

we need more than 37ns of precission to circunvent any drift.

That is the maximum  value in b/s, here 27,027,027 b/s for 1 bit every 37 ns. I was asking for the minimum representable value in bits per second. Currently, we cannot be more precise than, for instance, 12,345 b/s. Do you need to represent 12,345.1 b/s, 12,345.01 b/s, 12,345.001 b/s, etc?

Yes, and for this reason a write "more than"... However, if we need 0.001 b/s of precission or only 0.01 b/s, I don't know it. My concern is only to support all DVB-T/T2 modulations.
Perhaps you can start updating the tsterinfo tool and check the maximum precission required. You agree?

Perhaps you can start updating the tsterinfo tool and check the maximum precission required. You agree?

We cannot start with one tool or plugin. They are just thin wrappers on top of the TSDuck library. The whole code is impacted. Everything is impacted whenever you change the type ts::BitRate from a plain integer to a fixed-point instantiation.
I will start with:
    typedef FixedPoint<int64_t, 2> BitRate;

That is to say a 64-bit integer with hundredth precision. I will check if it does not break too many things. The compilation phase may be tedious but rational. The debug / tuning phase, however, may become some black magic...
Then, adding one more decimal is just changing the 2 into a 3. The result of the test suite can be affected however.

Then, adding one more decimal is just changing the 2 into a 3. The result of the test suite can be affected however.

Testing with 2 decimal digits for bitrates is not good. Even a 64-bit integer type is not sufficient to absorb intermediate overflows in some calculations. Specifically, the plugin reduce is affected. To smoothen the removal of packets, it works on potentially large windows of packets. This created intermediate overflows and produced incorrect results. To cope with that, I implemented overflow detection in the plugin and automatically adapted the window size down to a value which was free of overflow. Fonctionally, it works. But the results are not good. Running the automated test suite demonstrates that the standard deviation between packets of the same PID is much worse than without fixed-point representation of bitrates (precisely because of the reduced window size).
Changing the number of decimals to 1 only in bitrates, the efficiency of the plugin reduce returns to the same value as before.
So, adding decimals to bitrate representations may improve the precision on some points but it also reduces it on others. Using emulated arithmetic on 128-bit integers is not an option for obvious performance reasons. Using floating point types for bitrates does not seem a good option to me for accuracy reasons.
Consequently, we cannot offer more than 1 decimal digit in bitrates, to be confirmed by further testing.

Hi @lelegard ,
And it's not possible to do this?

By default the bitrate uses 64bit integers with 1 decimal digit.
If the user enables it, it uses 128bit integers with 3 (or 4) decimal digits.

Then, by default the functionality will be the same as now, and only when it's required more precision it will be enabled with some performance penalty. In fact, if the bitrate representation has two parts (64bit with 1 decimal digit; and another 64bit with the second decimal and beyond) every filter can decide if it uses the rounded version (64bit only) or the full precision version (128bit).
What you think?

This is not possible.
First, the source code is written in some way using bitrate as 1) plain integer type (current version), 2) specific fixed-point class (being tested), 3) floating point type, 4) some extended 128-bit integer type or class. Moving from one implementation to another is a one-way trip which needs some work.
Second, based on a specific fixed-point class, the precision (1, 2, 3 digits, etc) is a template parameter and consequently a compile-time constant.
In both cases, you can't compile one binary and allow some command-line option to select the implementation you prefer.
The best I can propose is using a fixed-point type with the precision being 1 decimal digit by default (this seems the best balance so far) but being customizable with a compile-time macro, something like make BITRATE_PRECISION=2 for 2 decimal digits for instance.
But you must have a full consistent build of the entire TSDuck toolkit with the same precision. Mixing binaries with different bitrate precisions is a recipe for disaster.
Additionally, changing the bitrate precision will maybe improve some use cases but degrade others. The behaviour of some features can be seriously affected (as seen on the reduce plugin with 1 vs. 2 decimal digits on bitrates).
Specifically, the TSDuck test suite is calibrated for one configuration and will fail with any other. I have checked that setting 0 digits precision (but still a fixed-point class) exactly passes the test-suite that was established with the integer type. But, with any other precision, all tests must be reviewed. Using 1 or 2 digits, approximately 110 tests fail out of 1282. I have to check all failed tests one by one to determine whether this is the new normal result (for instance displaying bitrate 12,345,678 b/s instead of 12,345,679 b/s) or if the test is actually broken (for instance the reduce plugin with 2 digits).

As discussed above, I have updated the code base with the bitrate representation set to a fixed-point template class with one decimal digit. All tests were automatically checked. The only differences were a significant proportion of bitrate values which differed by 1 b/s (2 in rare cases). The difference is likely due to the increased precision in intermediate computations.
So, we are in a stable state now.
As mentioned above, an attempt to set 2 decimals did not change most results (and so the precision is not actually improved) but it broke some plugins (or reduced their efficiency) because of intermediate overflows.
For specific purposes, you may want to entirely recompile TSDuck with another bitrate precision. To use 2 decimal digits for instance:
$ make BITRATE_DECIMALS=2

But keep in mind that everything must be consistently recompiled with this new value.
To reject accidental mix of binaries (executables and shared libraries) which were built with distinct values, I have used the same trick as version checking (originally inspired by the way the glibc defines its ABI levels). The main TSDuck shared library exports a symbol which contains the bitrate decimals. All executables and plugin shared libraries import the same symbol.
See this:
$ nm libtsduck.so | grep TSDUCK_LIBRARY
0000000000faca74 R TSDUCK_LIBRARY_BITRATE_DECIMALS_1
0000000000faca78 R TSDUCK_LIBRARY_VERSION_3_26_2343
$
$ nm tsp | grep TSDUCK_LIBRARY
                 U TSDUCK_LIBRARY_BITRATE_DECIMALS_1
                 U TSDUCK_LIBRARY_VERSION_3_26_2343

So, if you recompile TSDuck with make BITRATE_DECIMALS=2, the new library will export TSDUCK_LIBRARY_BITRATE_DECIMALS_2 instead of _1. If you try to use that library from an "old" executable, that won't work because the executable will try to resolve  TSDUCK_LIBRARY_BITRATE_DECIMALS_1 which won't be there.

Hi @lelegard ,
Thank you for the explanation. Then it will possible to use at time without more complexities 1 decimal in the bitrate. And if we need more precision then recompile with two decimals. In this case, we can use two different binaries: stock and precisse-bitrate. Ok. However, regarding the different DVB-T/T2 modulations, what are the precisse bitrates?

Hi @lelegard ,
Don't worry about my previous request. The tool tsterinfo calculates this information. However, I'm worried about if it calculates the correct precise value, even if it's compiled with 1 decimal. If it not calculates the correct value with just 1 decimal, then can you incorporate the option to print the TSDUCK_LIBRARY_BITRATE_DECIMALS_X bitrate value plus the PRECISE value, both at the same time? Please.

Hi @lelegard ,
Checking the info in this page: https://dveo.com/broadcast/bit-rate-calculation-for-COFDM-modulation.shtml
the bitrate of the DVB-T modulation never be a non-fractional number. So, how professional equipment handle it?

Hi @lelegard ,
Regarding the precission of the bitrate, I've rethinked about it and I want to share with you my results:

Inside the TSDuck the only problem with the current support of bitrates with one decimal is when you want to broadcast the resulting transport stream with a modulator using a fractional bitrate.
This is only harmful for the PCR, as it will drift over time. And nothing else will be affected if the bitrate is very close to the modulation bitrate.
So we only need to compensate the drift of the PCR over time.

Is this assumption correct?

If yes, then I feel it will be sufficient to enhace the current pcradjust plugin with a new functionality.
This functionality can be called "compensate bitrate". And it will be based on the assumtion that every N packets a NULL packet will be inserted in the TS. This insertion will be done by the modulator hardware, so it's not present inside the TSDuck's output.
Then to handle this phantom NULL packet, it will be only necessary to adjust the computation of the PCR to adjust the drift every N packets.
And the computation of the N packets will be based on two new optional parameters: --compensate-target-numerator and --compensate-target-denominator. These two values represents the target bitrate expressed as a fractional number, that will be the precise value of the bitrate used in the modulation. Therefore, the calculus could be done based on the difference between the real bitrate (the one used internally by the toolkit, with one decimal) and the broadcast bitrate. And the result will be a X drift over the PCR every N packets.
So with these integer X and N values the plugin can adjust with full precission the PCR timestamps.
And to use this functionality we only need to use the most closer lower value of the bitrate, and compensate with the target (modulation) bitrate. As the modulator hardware will insert the required NULL packet.

What you think about this idea?

Hi @lelegard ,
Please, can you commet if the described enhancement of the pcradjust plugin has sense or not?

Hi @lelegard ,
In order to maintain the synchronization over large running times (similar to the TDT/TOT drift), can you provide a method to handle the drift over time of the fractional bitrates of DVB-T signals?

Hi @lelegard ,
Checking the last commits fixing errors with Dektec devices, I feel that professional equipments use fractions to represent bitrates. It's this assumption right?
If it's true, please try to add some support for native fractional bitrates in TSDuck. I know that you're promoting the TSDuck Toolbox as a testing tool. However, for homemode projects using non-professional equipment (for example with a cheap HiDes UT-100C modulator) your tool is a must have. And in such projects for a continous DVB-T transmission it's necessary that the clock base doesn't drift over time. So even in professional modulators the device can patch/adap/restamp PCR timestamps before the transmission, this is not true with cheap modulators. So in this case, as practically all DVB-T modulation modes use fractional bitrates, then some workaround it's necessary for a continous reliable streaming.
So for this particular scenario, you can provide any easy-and-simple solution?
Please, don't try to implement a complex solution. I only want to maintain a constant straming with the Hides modulator with correct PCR/PTS/DTS values after several days/weeks of run.
In any case, I reiterate: Thank you for this amazing tool!

please try to add some support for native fractional bitrates in TSDuck.

I tried and that failed...
Let me explain. I have implemented a generic template class named Fraction which implements the same operations as FixedPoint but maintains a pair of numerator and denominator all the way through. To limit the risk of overflows, the fraction is always reduced after any arithmetical operation (probably at the expense of performance). All unitary tests on Fraction pass and the class looks good.
The type BitRate is still implemented by default using a one-decimal fixed-point type but, using make BITRATE_FRACTION=1, you can recompile everything with BitRate being represented as a fraction of 64-bit integers.
When running the TSDuck test suite, there are zillions of errors. Basically, all bitrate values which are computed from many successive operations end up with incorrect values. There must be overflows at some point. Almost all the time.
So, using fractions is a good idea as long as they are limited to a few operations. But the experience seems to demonstrate that this is not applicable in the general case for bitrates. You have to choose between small inaccuracies with fixed-point values or potentially completely invalid values with fractions because of intermediate overflows.
In fact, maintaining the validity of fractions on the long run is not easy. The Dektec API (DTAPI) has recently introduced fractional bitrates (class Dtapi::DtFractionInt) for some specific operations, not long accumulations of computations. Even in that simple case, I found an overflow bug with a DVB-S2 rate. I reported it to Dektec and the bug was fixed (at least on those values) with the July 2021 release.
Feel free to play with make BITRATE_FRACTION=1 and try to implement a solution, maybe some expensive intermediate approximations in the reduction of fractions in case of detected overflow in each arithmetic operation.

I added overflow checking in all arithmetic operations on fractions and throw an exception in case of overflow (debug mode only for obvious performance reasons). Because of the nature of fraction arithmetics, additions with different denominators rapidly generate overflows, even on 64 bits integers. Not a single tsanalyze operation completes without an overflow exception. So, my conclusion is that using fractional integers on bitrates is not usable in practice.

I also added the possibility to use double floating-point to represent bitrates. The results seems good, maybe better than fixed-point, but less accurate than integer fractions (if they did not overflow in intermediate computations).
On a coding standpoint, the three possible representations have been grouped using templates under the common superclass AbstractNumber. All those types consistently define their arithmetic and a few common services. Thus, switching representation is simply a few #ifdef around typedef ... BitRate;. All the rest consistently compiles.
If you want to play with various representations, you can use any of these build commands:
make -j10 BITRATE_FRACTION=1 BINDIR_SUFFIX=-fraction-clang LLVM=1
make -j10 BITRATE_FRACTION=1 BINDIR_SUFFIX=-fraction
make -j10 BITRATE_FLOAT=1 BINDIR_SUFFIX=-float-clang LLVM=1
make -j10 BITRATE_FLOAT=1 BINDIR_SUFFIX=-float
make -j10 LLVM=1
make -j10
make -j10 DEBUG=1 BITRATE_FRACTION=1 BINDIR_SUFFIX=-fraction-clang LLVM=1
make -j10 DEBUG=1 BITRATE_FRACTION=1 BINDIR_SUFFIX=-fraction
make -j10 DEBUG=1 BITRATE_FLOAT=1 BINDIR_SUFFIX=-float-clang LLVM=1
make -j10 DEBUG=1 BITRATE_FLOAT=1 BINDIR_SUFFIX=-float
make -j10 DEBUG=1 LLVM=1
make -j10 DEBUG=1

I use them on Linux in a script to compile all possible representations of bitrates, release and debug, gcc and clang. Each build ends up in a distinct directory:
$ ls -1 tsduck/bin
debug-x86_64-vmubuntu
debug-x86_64-vmubuntu-clang
debug-x86_64-vmubuntu-float
debug-x86_64-vmubuntu-float-clang
debug-x86_64-vmubuntu-fraction
debug-x86_64-vmubuntu-fraction-clang
release-x86_64-vmubuntu
release-x86_64-vmubuntu-clang
release-x86_64-vmubuntu-float
release-x86_64-vmubuntu-float-clang
release-x86_64-vmubuntu-fraction
release-x86_64-vmubuntu-fraction-clang

Feel free to experiment.

Hi @lars18th
Finally, have a look at section 2.2 in the latest version of the user's guide. It documents 4 different implementations of bitrates  and how to rebuild with each of them.


Dark 2 Mode feedback

Deleted Icon (dustbin) isn't visible enough when you have deleted streams
Tick boxes outline on Stream browser is too similar to the light grey alternate line shading
Tools->Monitoring Icons aren't colour whereas most others are
User->Change password and User popup buttons use a different blue to the rest of the theme
Pane height adjusters on Dat Browser aren't visible
Spinners look a bit rubbish/blocky/too light
It's not obvious which tab is currently being viewed
There is a small grey square (12.x12) bottom right of the top pane in Stream browser

I don't have an decent (IPS) screen, so maybe this is causing issues

I think we need new icons for XSLT and XSD.  They don't really work on a dark bg and are a bit inconsistent with the style of most other icons.

Regarding

Tools->Monitoring Icons aren't colour whereas most others are
Could we just make them all blue, as the majority of the menu icons are blue?

Can't really see the delete button on selected rows on the Caches screen.

Similar problem on the Data retention screen


feature request: extending supported widgets

It would be great to have a way to extend the current set of widgets classes by defining our own SDUIWidget classes and add it programmatically to the set of supported ones. It also helps to have more control over what is rendered in the outcome.

I have it in plan...
Will be added soon

@Lerado get the latest version - extension support has been added.
See README file to lean how to use it


Fix typos in docs

Following on from https://github.com/spatie/laravel-health/pull/16 — this PR fixes a couple of typos I noticed in the docs.

Thanks!


Issue with UUID duplicate dropping?

Might be off-base here, but doesn't the resulting dataframe need to be re-assigned here?
report, lines 93-95
My understanding is that it doesn't mutate. See documentation.

Oh, doh, just saw the inplace; I've never used that. I'm closing this.

It actually isn't a bad suggestion and we can switch it. It's not a bug though as you've noticed. I think this is related to #40 and can be switched then.
I've used inplace often in the past but aside from fillna it doesn't seem like it has much of an advantage and internally it just creates a new object anyway.  Some of the confusion here seems like developers don't really know if there's an advantage to using it or not.
https://github.com/pandas-dev/pandas/issues/16529


Preflight

Add preflight to bacom

Resolves: MWPW-NUMBER
Test URLs:

Before: https://main--bacom--adobecom.hlx.page/?martech=off
After: https://--bacom--adobecom.hlx.page/?martech=off

Codecov Report

Merging #82 (035e555) into main (1dbfcc0) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #82   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            5         5
  Lines          359       359
=========================================
  Hits           359       359

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

As we saw in the Show and Tell, this needs more work before it's ready for a PR

The fix was made in milo and shown to work on dc in the Milo Demo. We can move forward with this now


Merge 0.5.1 into master

This merges the stable 0.5.1 release into master.

Codecov Report

Merging #650 (b886761) into master (0df44e1) will increase coverage by 0.37%.
The diff coverage is 44.44%.

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

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.


[BACKUP] Fixed Bad Request Error for Correct Workload Type Input

Description
In some cases 'SAPHANA' & 'MSSQL' are shown in the help text as allowed values for workload type argument but when these are given as input the command terminates with Bad Error Request. I've included a map in custom_common.py to map these values to the value that the API is expecting.
Testing Guide
az backup item list -g {rg} -v {vault} --backup-management-type AzureWorkload --workload-type SAPHANA
az backup policy list -g {rg} -v {vault} --backup-management-type AzureWorkload --workload-type MSSQL
History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

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

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

BACKUP


Issue 38

#38

Does the text fixture file (spec/fixtures/osf/b6psa.tar.gz)need to be 30 MB large? Could a smaller file work?

If it bothers you.
On Wed, Sep 14, 2016 at 10:55 AM, Don Brower<EMAIL_ADDRESS>wrote:

Does the text fixture file (spec/fixtures/osf/b6psa.tar.gz)need to be 30
MB large? Could a smaller file work?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ndlib/rof/pull/39#issuecomment-247040269, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADNGTJpjhtuX4WqPX-ypNOcxEuA_yLT6ks5qqArcgaJpZM4J78TO
.

If you write an issue for this, I'll scape up a new one.
On Wed, Sep 14, 2016 at 10:55 AM, Don Brower<EMAIL_ADDRESS>wrote:

Does the text fixture file (spec/fixtures/osf/b6psa.tar.gz)need to be 30
MB large? Could a smaller file work?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ndlib/rof/pull/39#issuecomment-247040269, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADNGTJpjhtuX4WqPX-ypNOcxEuA_yLT6ks5qqArcgaJpZM4J78TO
.


refactor: Return new globals_dict instead of mutating an output parameter

BREAKING CHANGE: safe_exec and not_safe_exec no longer modify the globals_dict parameter, and instead return a new dictionary containing the state of the globals at the end of the execution.
Accordingly, the globals_dict is now an optional parameter, defaulting to an empty dictionary.
Both functions were already round-tripping the globals_dict through JSON so there should be no performance impact or change in the ability to make nonlocal mutations (which were already prevented by the JSON encoding). A caller who wishes to preserve the shallow mutations can simply do it themselves by changing a call like safe_exec(code, globals_dict) to globals_dict.update(safe_exec(code, globals_dict)).

This was for a Hackathon project that never went anywhere. I think there has since been some other work on putting codejail into a service.