Improve TileMap performances by using quadrants only for rendering

A bit like #74603, but adds a ton of additional optimization and cleanup.
All TileMap update are now pushed at the end of the frame, though you may trigger this update earlier on by calling force_update(). Also, I added a notify_runtime_tile_data_update so that you can tell the TileMap that some runtime data was updated, without triggering a direct update.
The TileMap now uses a dirty structure (with flags and a list of modified cells) to know what was modified since the last update.  Each TileMap's subsystem (rendering, physics, scenes...) then uses those flags and list of dirty cells to smartly update only what is needed. Unlike before, cells are only grouped in quadrants where needed. That means that updating a single cell does not update hundreds of others (at least on the physics matter)  for nothing.
This improvement, added to a reduction of the number of allocations, lead to a x2.8 performance improvement on TileMap updates. Using this small benchmark script, I measured FPSs:
extends Node2D

func _process(delta):
	random_tile_map_update()

func random_tile_map_update():
	for x in range(100):
		for y in range(100):
			if $TileMap.get_cell_source_id(0, Vector2i(x,y)) == -1:
				$TileMap.set_cell(0, Vector2i(x,y), 0, Vector2i(randi_range(0, 2), randi_range(0, 2)), 0)
			elif randi_range(0, 100) == 0:
				$TileMap.set_cell(0, Vector2i(x,y), 0, Vector2i(randi_range(0, 2), randi_range(0, 2)), 0)

Right now this is a draft as I need to fix CI, add compatibility methods for set_quadrant_size and document a few things. But it's ready for testing otherwise. :)
Probably fixes: https://github.com/godotengine/godot/issues/79658

What happened to the layer argument in force_update()? It doesn't exist in notify_runtime_tile_data_update().

Ah good point. I removed it as update are ran once per frame by the TileMap node itself, and not by each layer individually. But it likely makes sense to add it to notify_runtime_tile_data_update. Will do that.
I'll have a look to the bugs.

Done. I fixed the bugs and added an optional argument to notify_runtime_tile_data_update, let me know if you still post any bug.

The previous problems are fixed, but I'm getting this error:
ERROR: No tiles for the given body RID<PHONE_NUMBER>8984.
   at: (C:\godot_source\scene/2d/tile_map.cpp:3392)

Might be caused by me deleting all collision polygons on a layer. Not sure if intended.

The previous problems are fixed, but I'm getting this error:

This is the message given by get_coords_for_body_rid when it cannot find the provided RID. I think this message could maybe be removed, as you might call it with an RID you are not sure is part of a TileMap.
I am not sure what you mean by "deleting all collision polygons on a layer", I guess by using a runtime update ? If that's the case, it should not prevent get_coords_for_body_rid to work correctly (in case you are colliding with a TileMap), so there might be a bug.

As discussed on RocketChat, the compatibility methods added here will provide compatibility for GDExtension, however, renaming these methods will still affect GDScript and C# compatibility. I don't how popular/obscure these methods are, so maybe it's OK if GDScript/C# code calling the old names breaks, but that's a discussion that should be had!
If we want to preserve GDScript/C# compatibility, the old methods could be marked as deprecated and simply call the new methods. (And, if we went that way, the compatibility methods for GDExtension could be removed.)

I guess by using a runtime update ?

Yes, I use it do disable collisions on a layer.

I did a more thorough test and something bad is happening when the TileMap is removed and re-added to scene tree. I'm removing tile collisions with tile_data.set_collision_polygons_count(0, 0). It works fine, but after the TileMap is re-added (I didn't test exactly) the collisions are back.

I did a more thorough test and something bad is happening when the TileMap is removed and re-added to scene tree. I'm removing tile collisions with tile_data.set_collision_polygons_count(0, 0). It works fine, but after the TileMap is re-added (I didn't test exactly) the collisions are back.

That was my bad, it should be solved now.

I do have one question, though. Wouldn't it be more compatibility-friendly to keep force_update instead of introducing update_now? I understand that it is supposed to be used in places where notify_runtime_tile_data_update is now used. But since the logic needs to be changed anyway in projects, I feel like we can accept the changes in the method's behavior. Having two methods triggering an immediate update, according to their name, is pretty confusing, even if one is deprecated. Plus force_update seems more appropriate and consistent for the public API and our codebase in general.

We discussed that a bit. Before this PR, force_update used to do two things: 1) notify _runtime_tile_data* methods might lead to different results and 2) trigger a direct update instead of waiting till the end of the frame.
Initially, I made force_update only do 2), and created notify_runtime_tile_data_update to cover 1). This is a cleanup and a bit of a optimization, as notifying several times would not trigger several unneeded updates. The naming was likely the most expected according to what each of those new function do.
However, the main issue is that force_update() seemed mostly used for 2). This means that, in most cases, this would break users' code without them knowing what's wrong or triggering any error.

This means that, in most cases, this would break users' code without them knowing what's wrong or triggering any error.

Right, but using this method as-is is not optimal, correct? So we would want users to update to using notify_runtime_tile_data_update regardless. And the breakage would only come in the form of things not updating if update_now/force_update is called without notify_runtime_tile_data_update prior to it? I think that would be okay.

Right, but using this method as-is is not optimal, correct? So we would want users to update to using notify_runtime_tile_data_update regardless.

Depends, but yes. Most of the time it's more optimal to only use notify_runtime_tile_data_update

And the breakage would only come in the form of things not updating if update_now/force_update is called without notify_runtime_tile_data_update prior to it? I think that would be okay.

The problem is that "things not updating" could be subtle. It might be some collision shape or custom data not updating, which might be hard to spot.

Edit: To clarify, we would mention this change in the migration article.

We can do that. I guess it's up to the production team to decide what you folks prefer.
To be clear, I think force_update is a better name, I am just worried that the upgrade path is likely going to be a bit confusing for some people. That why we went for the update_now rename initially, but if it's well documented, that should be fine I guess.

Will need a rebase after #80354 which split the 4.0.stable.expected file into one for 4.0 -> 4.1 and one for 4.1 -> master.

Put that PR to draft for now, collision_animatable isn't working anymore and I need to fix it :)

Put that PR to draft for now, collision_animatable isn't working anymore and I need to fix it :)

This is now fixed.

Regarding force_update/update_now. Suppose the deprecation of the old method is reasonable (as the old name suggests it will force an update, and the new behavior won't do that, it acts more like flushing a queue). Can we maybe pick a different name for update_now to make it less colliding with the old force_update?
@akien-mga suggested apply_queued_update, which sounds fine to me. Maybe some variation of that.

@akien-mga suggested apply_queued_update (or just apply_update), which sounds fine to me. Maybe some variation of that.

Yeah, that could work fine too. I thought about preemptive_update maybe, or early_update, as it makes it clear that the TileMap would update anyway. apply_queued_update would work, though maybe a bit confusing as users do not manually "queue an update" themselves.
I don't know, I can't decide ahah.

They kind of do with the notify method, no? But in that case, just apply_update should be a good option? As long as the docs make it clear that updates are "applied" automatically and this method is does not need to be called normally.

They kind of do with the notify method, no?

If they use the runtime TileData update (which I believe not a lot of users need) they might.
But the current update_now function is a bit unrelated. Basically all TileMap update (like, physics, rendering, navigation, scenes, etc...) are pushed to the end of the frame. This makes it so all TileMap internals (bodies, canvas items, child scenes, etc...) are not accessible right after a property change on the TileMap.
For example, if you paint a scene tile, the actual scene will be added only at the end of the frame. That's where you might want to call update_now right away, so that you could access some internal data earlier on:
$TileMap.set_cell(0, position, 0, Vector2i(0,0)) # Set a scene tile.
$TileMap.get_child_count() # returns 0

$TileMap.update_now()
$TileMap.get_child_count() # returns 1

Basically, that means that the main use case for update_now does not need any call the other notification function.

Basically, that means that the main use case for update_now does not need any call the other notification function.

Okay, I'm a bit confused about how old code maps to the new one. Can't it be just update then? What now brings to the table? It seems to just force an update.

Basically, that means that the main use case for update_now does not need any call the other notification function.

Okay, I'm a bit confused about how old code maps to the new one. Can't it be just update then? What now brings to the table? It seems to just force an update.

Well, yeah. That would work perfectly, lol.
I think I did not consider the idea because it was not possible before due to CanvasItem.update(), but since it was renamed in https://github.com/godotengine/godot/pull/64377, it should be perfectly doable now. A simple update() would work.

Renamed to update_internals, as discussed on the maintainers' chat.

Thanks!


change name of the tab

Something like Twitter| Focus Mode & disable notifications

hi @pritipsingh. I would like to work on this issue. Please assign this to me

Hi @pritipsingh What we can do is we can append "| Focus Mode & disable notifications" in front of the tab name of the website that the user has opened and is blocked by the user. Will that work for us?

Hey. I was noticing that in main branch the UI went blank when I clicked the Edit Website Button

I am having an issue with infinite component re-rendering. when ever I change the document title in the Restrict component, the component starts to render infinitely. Please help

Hey @ahsanfarooq210 I am sorry all the notifications were in spam for some reasons. I saw them just now! Lemme try to reproduce this

Hi @pritipsingh. Were you able to reproduce this issue?


Enhance the odo service describe

[kind/Enhancement]
What should odo do differently? Which functionality do you think we should change?
With the inclusion of #756 we now have a lot of information about the parameters of a service.
There is one issue however: The required parameters are not always "required", since most of them have default values. This means that they are not required from the user's perspective.
We need to enhance the support in order to reflect this situation.
Such an enhancement would also be of great service to #845.
What are you trying to do?
Make  the life of user's of service-catalog as easy as possible by hiding the API and data model complexity

@geoand I've seen that you created the issue and then created a PR, but TBH the issue does provide very little information on what is the problem and how you're going to approach the solution, so seems that you went ahead with an implementation before getting any consensus.
I haven't looked into it, and I'm sure it's really good, but I'm raising this topic as I would think that it's better to spend some time defining in the issue how things are going to be laid out, so one knows before the PR if there's any outstanding concern to be discussed.
Not sure if this has been discussed on mattermost or any of our internal calls, but I think that open discussions or at least, openly publish the intents helps. For many people, issues is the only thing they see, if as me, they don't understand code ;-)
Does it make sense? @kadel ???

@jorgemoralespou I apologize if I broke the standard process here!
The issue was brought up in the some of the odo discussions we had on BlueJeans last week but I admit that could have done a better done at defining the issue.
The PR itself doesn't change much of the functionality that the user sees, but it instead provides the building blocks to make subsequent improvements to the service catalog handing.
One reason why I didn't wait for further consensus is that I believed that the problem was best demonstrated by actually showing the fix, which was also quite small.
I apologize again for straying from the norms here ☺

@geoand there's no "norm". It's just that it's easier to discuss on issues than on PRs. So, if you look into the PR, it says it's been discussed here:

Was the change discussed in an issue? #880

So, either one looks at code to figure out how you've solved the thing, or waits until is merged to see the experience. Remember we do not all understand go ;-)
And also I think @kadel raised a good point with the naming used for Mandatory/optional and default values, to which I agree. I like better the naming he proposes.

Thanks for the clarification @jorgemoralespou.
I will update the issue with more information and also implement the change
proposed by @kadel
On Mon, Oct 29, 2018, 20:42 Jorge Morales Pou<EMAIL_ADDRESS>wrote:

@geoand https://github.com/geoand there's no "norm". It's just that
it's easier to discuss on issues than on PRs. So, if you look into the PR,
it says it's been discussed here:
Was the change discussed in an issue? #880
https://github.com/redhat-developer/odo/issues/880
So, either one looks at code to figure out how you've solved the thing, or
waits until is merged to see the experience. Remember we do not all
understand go ;-)
And also I think @kadel https://github.com/kadel raised a good point
with the naming used for Mandatory/optional and default values, to which I
agree. I like better the naming he proposes.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/redhat-developer/odo/issues/880#issuecomment-434030461,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AELBvxbWbg14B0Z-BEoLDKESmt562DMlks5up0wogaJpZM4X8POn
.

@jorgemoralespou I updated the issue description, hopefully it's better now :)
I also updated the output with the suggestion made by @kadel


feat(vscode): better color preview

Related issues: #1348 #1767 #1817
The old method of matching colors is not perfect. As Fu commented:

I guess we could infer the color from the generated CSS instead of relying on the theme object.

That's what I've done in this PR

Stumbled on this PR and I guess this is related: When relying on CSS variables for colors this is not resolved. Like here:

Is resolved as black, but should be green (the variable has the same value as the var(...)-fallback value right here
@antfu, @zam157

Stumbled on this PR and I guess this is related: When relying on CSS variables for colors this is not resolved. Like here:

Is resolved as black, but should be green (the variable has the same value as the var(...)-fallback value right here
@antfu, @zam157

Please open a new issue, and I'll try to solve it if I have time


Failed to write 'change' to '/sys/devices/platform/fe084040.ir/input/input10/uevent': Cannot allocate memory

Hello,
Here I'm building librealsense-2.50.0 on Ubuntu 20.04 Khadas Vim4 arm64 SBC. An error occur when i setup the udev rules by ./scripts/setup_udev_rules.sh:
Failed to write 'change' to '/sys/devices/platform/fe084040.ir/input/input10/uevent': Cannot allocate memory Failed to write 'change' to '/sys/devices/platform/fe084040.ir/input/input11/uevent': Cannot allocate memory Failed to write 'change' to '/sys/devices/platform/fe084040.ir/input/input12/uevent': Cannot allocate memory
Let me know how should i fix it pls.

Hi @w407022008  There have been a couple of past cases of this error at https://github.com/IntelRealSense/librealsense/issues/11393 and https://github.com/IntelRealSense/realsense-ros/issues/2545 that also occurred when installing the udev rules with ./scripts/setup_udev_rules.sh
One of the RealSense users in those cases found that building the librealsense SDK from source code using the installation script libuvc_installation.sh at the link below has worked for them.
https://github.com/IntelRealSense/librealsense/blob/master/doc/libuvc_installation.md

If you are not able to install the udev rules, are you able to launch programs in sudo admin permissions mode by putting 'sudo' in front of the launch command.  For example for the realsense-viewer tool:
sudo realsense-viewer

Infrared topics in the ROS wrapper are disabled by default and have to be enabled.  You can do this by adding the parameters below to your ROS launch instruction.
enable_infra1:=true enable_infra2:=true
You could also try adding initial_reset:=true to reset the camera at launch to see if this reduces the problems.

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

Case closed due to no further comments received.

It's problem of the host device hardware issue.


Update ksdiff - version / url / pkg

After making all changes to the cask:

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

It's not yet merged but I can confirm it's working for me patching ksdiff.rb locally.


How i can fix it??

I'm using the steam version of the game. After the update, the mod stopped working. What can I do?

I'm assuming this is fixed now that MCDSaveEdit 1.4.1 is released.


Update SitemapQuery.cs

This was my blocking issue also , should likely contain application/gzip also https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

@doublej42 You can add a review

@Turnerj Could this change be merged in?

@Turnerj


Renaming RX LDO to BB LDO.

Renaming TX LDO to RF LDO.

/generate-register-files

/generate-register-files

The generate registers workflow references the SVD scripts in msdk-internal, and there were some changes made to the ME17B SVD scripts recently which broke the workflow. I just fixed it.

/generate-register-files

/generate-register-files

/generate-register-files

Updated the generate-registers workflow to catch runtime errors from all the python scripts. The runner should respond with a "confused" emoji when an SVD file isn't formatted correctly. This feature won't be implemented until the changes are pushed into main.
Thanks for being the first guinea pig for the workflow.

/generate-register-files

Updated the generate-registers workflow to catch runtime errors from all the python scripts. The runner should respond with a "confused" emoji when an SVD file isn't formatted correctly. This feature won't be implemented until the changes are pushed into main.
Thanks for being the first guinea pig for the workflow.

Also noticed GitHub's checkout action doesn't always checkout the latest changes if you repeatedly run the workflow. I added a workaround step to ensure the runner's workspace is always updated by running git pull.

@sihyung-maxim build errors seem to be legit.  If you pull in the latest build workflow the output should be a little more readable

@Jake-Carter @sihyung-maxim Is this still active?

@Jake-Carter @sihyung-maxim Is this still active?

Not sure.  @sihyung-maxim?

I'm going to close this PR. It is updated in #680


Include ability to supply a compare function

Hey @mjackson / @ryanflorence!
We use react-broadcast at Webflow (webflow.com) and have need to perform deep equality checks vs. the reference check that's the default in Broadcast. This was wreaking some re-rendering havoc in our app as we don't pass immutable structures through our broadcasts. 😬 It would be fantastic if we could supply our own compare function to avoid those. I hope this makes sense! Thanks. 😄

Good idea, @jslauthor :) Thanks for the PR. I opted for a slightly different prop name and compare behavior. Instead of comparing two values to determine if they are not equal, <Broadcast compareValues> returns true if they are.
This will ship in the next minor release.

@mjackson Rockin'. Thanks! 👍


Add segment anything doc

Summary

Documentation added

How to test

Checklist

[ ] I have added unit tests to cover my changes.
[ ] I have added integration tests to cover my changes.
[x] I have added the description of my changes into CHANGELOG.
[ ] I have updated the documentation accordingly

License

[ ] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[ ] I have updated the license header for each file (see an example below).

# Copyright (C) 2023 Intel Corporation
#
# SPDX-License-Identifier: MIT

Codecov Report
Patch coverage has no change and project coverage change: -0.01 :warning:

Comparison is base (565b95d) 78.58% compared to head (0113115) 78.57%.

Additional details and impacted files
@@                Coverage Diff                 @@
##           releases/1.3.0    #1009      +/-   ##
==================================================
- Coverage           78.58%   78.57%   -0.01%
==================================================
  Files                 237      237
  Lines               27046    27046
  Branches             5396     5396
==================================================
- Hits                21253    21251       -2
- Misses               4527     4528       +1
- Partials             1266     1267       +1

Flag
Coverage Δ

macos-11_Python-3.8
?

ubuntu-20.04_Python-3.8
78.57% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

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


There are only columns for youtube and twitch links - nothing for the streamer's Revolt chat or Discord. Can you add it thnks.

Nope. You can follow the streamer for more info.


Add Support for OpenRouter’s Amazon Nova Models

Issue
Please include support for Amazon Nova models provided by OpenRouter (amazon/nova-pro-v1, amazon/nova-micro-v1, amazon/nova-lite-v1).
Thank you!
Version and model info
Aider v0.67.0

Thanks for trying aider and filing this issue. They should work?
This doc may be helpful:
https://aider.chat/docs/config/adv-model-settings.html#contribute-model-metadata

Thank you for the response, great suggestion!
I really enjoy using Aider for my daily work—thank you for continuously improving the project.


Austrian (de-AT) currency format is defaulting to a barely used format

https://github.com/google/closure-library/blob/61eef0f7ac67618a504c976a0bdb4f124f7eaa86/closure/goog/i18n/numberformatsymbols.js#L600
Usually the preferred way to display currency string is that we put the currency code at the end of the text. (Similar as for Germany)
The current pattern makes Angular create really strange currency strings when using formatCurrency(-10, 'de-AT', 'EUR', 'EUR'). It will result in "-EUR 10,00", which is really not common here and seen as a bug by the majority of the people.
From my perspective the patterns may be checked by citizens of the according countries. I suggest that the currency pattern is changed to this format for whole DACH region (Germany, Austria, Switzerland).
CURRENCY_PATTERN: '#,##0.00 ¤;-#,##0.00 ¤'

I've created https://unicode-org.atlassian.net/browse/CLDR-15094 on your behalf. Note that CLDR releases tend to take a while (>6 months).

Closing this here - if it gets merged in CLDR then we'll pull it automatically.

https://unicode-org.atlassian.net/browse/CLDR-15094
Wanted to echo the post made on this asking for official feedback - @simonbraeuer please comment on that CLDR ticket if you have more input to give directly.

For all formats, CLDR data aligns to the most common usage in the market. That is, decisions are based on the market and usage cases, as well as language. Therefore it would be great if you are able to provide any of the following additional information. Helpful information includes:
Examples of the most prominent usage(s)
Evidence of usage in the mainstream media (for example, a newspaper or magazine)
If there are alternatives (e.g. different currency symbols), we need to see examples of those (from the most prominent sources). Please note that failure to supply alternatives if they exist significantly reduces credibility.


Multiple categories users fix

For: https://github.com/ProfessionalWiki/PageApprovals/issues/93
https://github.com/user-attachments/assets/4122520e-a4f6-4d4b-9e14-f8d555809b93

A regression test would be nice

I manually verified all the changes, and we already do have SpecialApproverCategoriesTest
https://github.com/ProfessionalWiki/PageApprovals/blob/master/tests/EntryPoints/Specials/SpecialApproverCategoriesTest.php#L16
Should we add something that SpecialApproverCategoriesTest doesn't cover?

Should we add something that SpecialApproverCategoriesTest doesn't cover?

Yes, the scenario that was not working. We should be able to send a request with a multi-user, multi-category payload.
While this file is getting touched, SpecialApproverCategoriesTest should be renamed to SpecialManageApproversTest.

New test: https://github.com/ProfessionalWiki/PageApprovals/pull/99


Return correct error when violating unique index

For implementation related questions or technical support, please refer to the Stack Overflow and Server Fault communities.
Make sure these boxes are checked before submitting your issue -- thanks for reporting issues back to Parse Server!

[x] You've met the prerequisites.

[x] You're running the latest version of Parse Server.

[x] You've searched through existing issues. Chances are that your issue has been reported or resolved before.

Environment Setup

parse-server latest running in docker on gcloud compute server
mongolab instance with unique constraint on column of a table

Steps to reproduce
(I've only tested this with columns of type Number, but I imagine it happens for every column type)

Create class SomeClass with Number column some_column
In Mongo, set a unique index on SomeClass.some_column
Save a row to SomeClass with some_column=123
Attempt to save another row to SomeClass with some_column=123 via the REST_API

In this case, parse-server will return the following error:
{"code":1,"message":"Internal server error."}

Whereas hosted parse will return a much more helpful error message:
{"code":137,"error":"A duplicate value for a field with unique values was provided"}

I'm calling this a "minor" issue because although the row will (correctly) fail to save, any code relying on parsing error messages (e.g. for retry logic) will break.
Interestingly, this ONLY happens when saving a SINGLE duplicate row via the REST API. When using batch operations (https://parse.com/docs/rest/guide#objects-batch-operations) to save multiple duplicate rows, or one duplicate row and one/multiple unique rows, parse-server correctly (?) returns the following message, and successfully saves the non-duplicate rows:
{"code": 11000, "error": "E11000 duplicate key error index: myapp.SomeClass.$some_column_1 dup key: { : 123 }"}

In this batch case, there is no error in the parse-server logs. However, in the saving single row case, there is an error in the parse-server logs (see below).
Logs/Trace
parse server running on http://localhost:1337/parse
Uncaught internal server error. { [MongoError: E11000 duplicate key error index: myapp.SomeClass.$some_column_1 dup key: { : 123 }]
  name: 'MongoError',
  message: 'E11000 duplicate key error index: myapp.SomeClass.$some_column_1 dup key: { : 123 }',
  driver: true,
  index: 0,
  code: 11000,
  errmsg: 'E11000 duplicate key error index: myapp.SomeClass.$some_column_1 dup key: { : 123 }' } MongoError: E11000 duplicate key error index: myapp.SomeClass.$some_column_1 dup key: { : 123 }
    at Function.MongoError.create (/parse/node_modules/mongodb-core/lib/error.js:31:11)
    at toError (/parse/node_modules/mongodb/lib/utils.js:114:22)
    at /parse/node_modules/mongodb/lib/collection.js:701:67
    at handler (/parse/node_modules/mongodb-core/lib/topologies/replset.js:400:5)
    at commandCallback (/parse/node_modules/mongodb-core/lib/topologies/server.js:1143:9)
    at Callbacks.emit (/parse/node_modules/mongodb-core/lib/topologies/server.js:116:3)
    at null.messageHandler (/parse/node_modules/mongodb-core/lib/topologies/server.js:291:23)
    at Socket.<anonymous> (/parse/node_modules/mongodb-core/lib/connection/connection.js:285:22)
    at emitOne (events.js:90:13)
    at Socket.emit (events.js:182:7)

@gfosco still open as GFPR ?

Yep I'd say so.


Token Client ID Issue with Stand-Alone Server

When getting a token for a stand-alone server, the client ID is being set to a referer in tokens.py  at line 203. However, the actual get/post request for the resource is not setting the referer, leading to an error when trying to use the token.

fixed in commit 9a80f91fb21b76c889f1f738a6231a1635ee77ee


Add robust HTTP method checking in web-ui

The check for HTTP method in addProjectHandler and deleteProjectHandler functions is very basic. Consider using more robust method handling or a library to manage routes that inherently handle HTTP methods.
feat: add web-ui by danstis · Pull Request #36 · ADO-Asana-Sync/sync-engine (github.com)

Moving to gin with resolve this as part of #51


Peer to Peer Streaming in Android Device Delay in stream video

Hello All,
I have integrate lib streaming library in server android app and start RTSP server in that Android app. Now in second application i have used video view for playing RTSP link. I have used same wi-fi network for communication. So one android device active as RTSP server and second Android device as client. I have set custom video quality and used MediaCodec API the surface-to-buffer method.
My Video Quality set as :  setVideoQuality(new VideoQuality(800, 600, 20, 500000))
My Test Scenario:

When i play rtsp link client app in my samsung tab 10.1 then its takes 1 minute and then after display video and start after remove first 30 seconds video.
same problem like samsung tab in lenova device.
Also checked another android device Mi Redmi and display video after 5 seconds its good.

I have modified my code for delay frame after reading some comments but not success.
In RtpSocket comment out all calls to Thread.sleep
Thread.sleep(mCacheSize);
if (mCacheSize>0) Thread.sleep(d);
Can some one please suggest me what changes require in library so video display in client side within 5 seconds ?
Waiting for good suggestion and thanks for help.

Sorry wasn't clear with couple of statements below.
Do you mean there is a 5s lag from server to client? (some action done on server side camera is displayed on client side display after 5s?)
On 24-Dec-2015 6:15 pm, testsoft49<EMAIL_ADDRESS>wrote:Hello All,
I have integrate lib streaming library in server android app and start RTSP server in that Android app Now in second application i have used video view for playing RTSP link I have used same wi-fi network for communication So one android device active as RTSP server and second Android device as client I have set custom video quality and used MediaCodec API the surface-to-buffer method
My Video Quality set as :  setVideoQuality(new VideoQuality(800, 600, 20, 500000))
My Test Scenario:

When i play rtsp link client app in my samsung tab 101 then its takes 1 minute and then after display video and start after remove first 30 seconds video
same problem like samsung tab in lenova device
Also checked another android device Mi Redmi and display video after 5 seconds its good

I have modified my code for delay frame after reading some comments but not success
In RtpSocket comment out all calls to Threadsleep
Threadsleep(mCacheSize);
if (mCacheSize>0) Threadsleep(d);
Can some one please suggest me what changes require in library so video display in client side within 5 seconds ?
Waiting for good response
—Reply to this email directly or view it on GitHub.

Hello Locnath,
Thanks for your quickly response.
No currently in some devices samsung tablet 10.1 inch and lenova device 30s lag from server to client. (Means after 60 second client display video and first 30 sec video can't display start video with 31 second).
Let me know still you have not clear for my above query.

I have faced this same problem.
I think the videoview widget in Android is not meant for real time streaming use cases like peer to peer streaming. This is because there is some minimum initial buffering done by android stagefright to ensure smooth playback in internet streaming  use cases. This initial buffering results in the lag seen in peer to peer streaming use cases.
You would have to implement a custom RTP player on the client side to playback the incoming encoded H264 packets from the server. This would have to depacketize the NAL packets and extract the encoded packets and then feed it to the decoder.
I had implemented a prototype RTP client through which I was able to bring down the latency down to less than a second for 640*480 resolution. (using videoview based player, the latency was around 4 seconds)
On 25-Dec-2015 2:03 pm, testsoft49<EMAIL_ADDRESS>wrote:Hello Locnath,
Thanks for your quickly response.
No currently in some devices samsung tablet 10.1 inch and lenova device 30s lag from server to client. (Means after 60 second client display video and first 30 sec video can't display start video with 31 second).
Let me know still you have not clear for my above query.
—Reply to this email directly or view it on GitHub.


📚 The doc issue
希望官方能优化文档，提供较为详细的部署训练步骤。

Hi @infoBrainSys What part of the documentation are you looking for? Could you please provide details? We are in a high frequency of updates. Thanks.
General Doc
https://colossalai.org/
General example
https://github.com/hpcaitech/ColossalAI/tree/main/examples
ColossalChat doc
https://github.com/hpcaitech/ColossalAI/tree/main/applications/Chat

Hi @infoBrainSys What part of the documentation are you looking for? Could you please provide details? We are in a high frequency of updates. Thanks. General Doc https://colossalai.org/ General example https://github.com/hpcaitech/ColossalAI/tree/main/examples ColossalChat doc https://github.com/hpcaitech/ColossalAI/tree/main/applications/Chat

如何训练对话系统并生成数据集？/ How to train the dialogue system and generate a dataset?
看了文档 / Read the document： https://github.com/hpcaitech/ColossalAI/tree/main/applications/Chat
看了数据 / Read the document： https://github.com/XueFuzhao/InstructionWild/blob/main/data/seed_prompts_ch.jsonl

这些都测试数据，没有训练数据格式，更没有多轮对话数据格式？  / Are these all test data without training data format, let alone multi round conversation data format?
问怎么训练多轮对话系统呢？/ How to train a multi round dialogue system?


Revise theory pages

Tasks

[x] remove redundant TS-length conversion page
[x] remove binning page
[x] remove unnecessary parts in Core data structure page
[x] add overarching description in theory.md to explain the general workflow, along with an image
[x] reorder pages to be aligned with code implementation
[x] remove index i, j in "NASC to areal number density" section
[x] overhaul "Apportioning biological variables" page

There is an error in the current description of how biomass estimates are calculated from number density -- the actual weight is missing
There is a discrepancy between the use of $W_\ell$ and $W_{\ell, s}$ in the current description when converting from number of fish to weight

when calculating proportion within total weight of all samples (which combines aged and unaged fish), $W_\ell$ is used
when calculating proportion within total weight of only unaged fish, $W_{\ell, s}$ is used

~revise figures to clarify dimension of different data variables~
[x] add glossary for data variables
~re-write Jolly-Hampton page and fix index problem as in acoustics to bio estimates page~ --> will add a new issue to track this.

Important! Check out Chu's google doc: Additional notes to EchoPro Biomass Estimate_updated

I've addressed most of the issues here. Will open a new issue to track changes needed for the Jolly-Hampton page.


GitLab registry random results

Hello Neuvector community !
I have a special nutting bug/issue/random runs with Gitlab repository scan (SAS: https://gitlab.com).
You can reproduce easily. I have a group-name structure in gitlab.com like this : company-group/mygreatproject/project1
The gitlab_private_token (Group Access Tokens) is created at the company-group level and have privileges to "api, read_repository, read_registry"
This project1 have a Docker registry with by example images named php with theses tag pattern :

18 Docker images with this tag pattern : "develop-COMMITSHA1"
10 Docker images with this tag pattern : "main-COMMITSHA1"
2 Docker images with this tag pattern : "prod-1-1-0-COMMITSHA1"

I create a special account in Neuvector to play with the REST API and his token.
I use it in theses curl commands to create the 3 registries :

echo "create registry test"
curl -k -H "Content-Type: application/json" -H "X-Auth-Apikey: TOKEN_CI_NEUVECTOR:123456789" -d '{"config":{"name":"testdidiertag-dev","registry_type":"Gitlab","registry":"https://registry.gitlab.com/","filters":["company-group/mygreatproject/project1/php:d*"],"cfg_type":"user_created","auth":{"username":"neuvector-scan-bot","password":"","auth_with_token":false},"scan":{"rescan_after_db_update":true,"scan_layers":true,"tag_limit":500,"repo_limit":500,"schedule":{"schedule":"manual","interval":0},"ignore_proxy":true},"integrations":{"gitlab_external_url":"https://gitlab.com/","gitlab_private_token":"glpat-123456789"}},"name":"testdidier"}' "https://neuvector-api.example.com/v2/scan/registry"

curl -k -H "Content-Type: application/json" -H "X-Auth-Apikey: TOKEN_CI_NEUVECTOR:123456789" -d '{"config":{"name":"testdidiertag-prod","registry_type":"Gitlab","registry":"https://registry.gitlab.com/","filters":["company-group/mygreatproject/project1/php:p*"],"cfg_type":"user_created","auth":{"username":"neuvector-scan-bot","password":"","auth_with_token":false},"scan":{"rescan_after_db_update":true,"scan_layers":true,"tag_limit":500,"repo_limit":500,"schedule":{"schedule":"manual","interval":0},"ignore_proxy":true},"integrations":{"gitlab_external_url":"https://gitlab.com/","gitlab_private_token":"glpat-123456789"}},"name":"testdidier"}' "https://neuvector-api.example.com/v2/scan/registry"

curl -k -H "Content-Type: application/json" -H "X-Auth-Apikey: TOKEN_CI_NEUVECTOR:123456789" -d '{"config":{"name":"testdidiertag-main","registry_type":"Gitlab","registry":"https://registry.gitlab.com/","filters":["company-group/mygreatproject/project1/php:m*"],"cfg_type":"user_created","auth":{"username":"neuvector-scan-bot","password":"","auth_with_token":false},"scan":{"rescan_after_db_update":true,"scan_layers":true,"tag_limit":500,"repo_limit":500,"schedule":{"schedule":"manual","interval":0},"ignore_proxy":true},"integrations":{"gitlab_external_url":"https://gitlab.com/","gitlab_private_token":"glpat-123456789"}},"name":"testdidier"}' "https://neuvector-api.example.com/v2/scan/registry"

These commands works perfectly. I have 3 registries with 3 filters to cover our needs.
I have some random results. I think first that it can be an issue with the lenght of the image tag, so I tried to increase the tag_limit and repo_limit to 500 (instead of the 20 for tag_limit by default and 200 for repo_limit) but it's doing nothing.
The first one is dedicated to scan "develop-COMMITSHA1" tag. Sometimes I can get all the 18 tag images find & scanned with the filter :
company-group/mygreatproject/project1/php:d*
The second is used to scan only "main-COMMITSHA1" or eventualy "master-COMMITSHA1". I can have only 2 results in Neuvector instead of the 10 images present in the Gitlab Container Registry that begins with a "m" (main) with the filter company-group/mygreatproject/project1/php:m*
The third is the worst... I can't get anything but in the Gitlab Docker Registry I have one image with a tag like that : "prod-1-2-0-COMMITSHA1" with the filter company-group/mygreatproject/project1/php:p*
First question... Am I doing something really wrong somewhere ? I'm going crazy, there is no logic.
Is it possible to have more output about what is doing Neuvector ? I have tried to PATCH the controller in DEBUG mode but nothing more useful.
If someone have more tricks / examples what is working well at this time I'm in !
Hope to have some answers ;)

at the same situation


Fetching list of FAQs based on status of the booking does not work when Baggage button is active

When a session ends with the Booking button active, the status-based fetching of the FAQs does not work properly.
As @MagdalenaAlmanova reported: When the session on smart FAQ ends and I sign in again, it shows nothing in baggage but the button of baggage or boarding pass is activated {It stayed activated on the last login session}.
The FAQs section displays all the structures (pre-booking, after-booking, after-trip...) in this case.

Is it possible that in some cases, there would be no available FAQ/Category when clicking the button?

I don't think so. The user should alway be redirected to "Home" when he signs in.

Or which button you mean? :-D

Baggage/Boarding pass button. It's the same issue as explained here: https://skypicker.slack.com/archives/C9K87QN6Q/p1531326915000311

The FAQs section displays all the structures (pre-booking, after-booking, after-trip...) in this case.

Please note that Baggage is in "pre-booking" and "Documents and planning" (related to after booking) is in "after-booking". If we respect booking state when clicking Baggage/Boarding passes buttons, then simply no FAQs would be shown in this situation. So we either have to show all of the FAQs regardless of booking state (which would render this issue invalid) or we would have to re-define how the Baggage/Boarding passes buttons should work. For example we could just hide the buttons in certain booking states. cc @MRTNKCR @mjancik


feat: llm eval judger support new content format

裁判员模型支持数组格式 Content

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.鲁建强 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Added the sun rise and set at hills animation

#5091

Close #5091

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

@MohitGupta121  @TusharKesarwani please review it

@MohitGupta121 @TusharKesarwani please review it


Compile errors on WindowsPhone with Xamarin.Forms 1.3.2 pre1

After upgrading to Xamarin.Forms 1.3.2 pre1, WinPhone project stopped building, showing the following error

Cannot resolve dependency to assembly 'Xamarin.Forms.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.

The Mobile and User Dialog services nugets are causing conflict.
Some other instances of this issue are also written here:
http://forums.xamarin.com/discussion/comment/98543/#Comment_98543

I don't support 1.3.2 because it isn't released yet

@aritchie Okay thanks.


adding auth changes

makes service check for whether user has permission to view datastack and aligned volume details.. should probably wait till function is added to middle auth client and import that rather than re-create it here.. but easy to change when that is available.

Looks good to me. It would be great to combine all calls to middle auth (user_has_permission) into one call @chrisj .


net: lwm2m: Add Queue Mode support

This PR adds Queue Mode support to our LWM2M engine. It adds a Kconfig option to enable it and updates the registration procedure to use correct binding. A new event was introduced, LWM2M_RD_CLIENT_EVENT_QUEUE_MODE_RX_OFF, to inform the application when no more data can be expected from the server and it's safe to power the receiver down.
The Queue Mode can be enabled in the lwm2m_client sample with new overlay file, overlay-queue.conf. The sample was tested with a local Leshan server, as well as with the public one (https://leshan.eclipseprojects.io/).

I had to simplify some of the Kconfig dependencies to fix builds in all configurations.


WIP: Fix Linux Python packages

Fix introduced by:
https://github.com/InsightSoftwareConsortium/ITKPythonPackage/pull/266

This runs into issues of the sort: ./macpython-download-cache-and-build-module-wheels.sh: line 1: 404:: command not found

Superceded by #28


Refactor with AST

refactor parse with AST
simplify section logic
desperate rarely used flags
all configs are not case sensitive

Signed-off-by: Loong Dai<EMAIL_ADDRESS>

Fix https://github.com/daixiang0/gci/issues/50


Support multiple FlutterSurfaceViews per FlutterView on Android

Our new platform views plan for Android requires that we have multiple FlutterSurfaceViews per FlutterView.
Today the engine uses a FlutterImageView to layer flutter and native content, our new approach requires that we have a layer of SurfaceViews which necessitates multiple FlutterSurfaceViews.
The simple change of using a FlutterSurfaceView instead of a FlutterImageView fails because hand wavy some initialization code doesn't run for the second FlutterSurfaceView.

I do, let me clean it up and get it into a state where you can easily reproduce the issue here.

Using an overlay surface view will cause all ads to trigger as occluded, since occlusuon is based on layout bounds and not opacity. We'll need to use a SurfaceControl instead. I'll track this work in a new issue.


Create column to ID duplicates

CAMD ORIS/PLANT_ID + unit and EIA plant + generator

Include explanation about these occurrences. See PLANT_ID 7903 and 52151 for an example


Use IntStream

Codecov Report

Merging #984 (ef9f6e3) into master (1c1e482) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #984      +/-   ##
============================================
- Coverage     92.02%   92.01%   -0.01%
+ Complexity     7435     7434       -1
============================================
  Files           193      193
  Lines         15681    15666      -15
  Branches       2902     2893       -9
============================================
- Hits          14430    14415      -15
  Misses          676      676
  Partials        575      575

Impacted Files
Coverage Δ

...java/org/apache/commons/lang3/text/StrBuilder.java
94.35% <100.00%> (-0.11%)
:arrow_down:

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


options: Support "long" exposure mode

The exposure options did not include this, so it has been added.
Signed-off-by: David Plowman<EMAIL_ADDRESS>

@naushir No idea why I didn't put in this exposure mode...


Rectangle outlines are noisey

MacOS 14.0
Julia 1.9.3
SimpleDirectMediaLayer v0.4.0
When I draw a rectangle outline, it's fill with random stuff.  In the code below, I draw a dark blue/green filled rectangle followed by a yellow outline.

Another example:

and another example, where I commented-out the lines that draw the filled blue/green rectangle:

using SimpleDirectMediaLayer
using SimpleDirectMediaLayer.LibSDL2

# Minimum code to demonstrate border error when drawing rectangles.

@assert SDL_Init(SDL_INIT_EVERYTHING) == 0 "error initializing SDL: $(unsafe_string(SDL_GetError()))"

win = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1000, 1000, SDL_WINDOW_SHOWN)
SDL_SetWindowResizable(win, SDL_TRUE)

renderer = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC)

#SDL_RenderClear(renderer)						# this clears the background to the current color
#    SDL_RenderPresent(renderer);
SDL_PumpEvents()
mRect = SDL_Rect(250, 150, 200, 200)					# wacky Julia struct constructor; x,y, widht, height; Ref() gives us the pointer
SDL_SetRenderDrawColor(renderer, 0, 127, 127, 255);
SDL_RenderFillRect( renderer, Ref{SDL_Rect}(mRect))		# that addition mess lets me send the rect as a pointer to the rect

SDL_SetRenderDrawColor(renderer, 255, 255, 0, 255)		# Yellow outline
SDL_RenderDrawRect( renderer, Ref{SDL_Rect}(mRect))		# draw outline rectangle

SDL_RenderPresent(renderer);
SDL_PumpEvents()
SDL_Delay(10000)

exit()

Calling SDL_RenderClear(renderer) before initial drawing and after each SDL_RenderPresent(renderer) cleared out the noise.


Enabled overrides for worker and coordinator configmap resources

This is to install multiple helm releases of trino cluster in the same namespace.
Closes #159 .

Would be nice to have a test for this, maybe a second call to ct install in https://github.com/trinodb/charts/blob/main/.github/workflows/ci-cd.yaml#L44

@silent-lad I recently added a test.sh script that runs multiple tests. Can you update it to add a new test for deploying multiple releases into a single namespace? If you'd use ct install, you'd have to disable cleanup when calling it. test.sh already creates and cleans up a custom namespace.

Hey @nineinchnick , will do the same. Thanks for the heads up

@silent-lad I recently added a test.sh script that runs multiple tests. Can you update it to add a new test for deploying multiple releases into a single namespace? If you'd use ct install, you'd have to disable cleanup when calling it. test.sh already creates and cleans up a custom namespace.

This is done now.

Have pushed the required changes @nineinchnick

@silent-lad I applied my requested changes in this PR #173 but since I preserved your authorship over the commit, I can't merge it unless you sign the CLA. Have you submitted it?


[Bug] Wrong commit used for core testing

Is this a new bug in dbt-common?

[X] I believe this is a new bug in dbt-common
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
When we put a PR into teh merge queue it uses the wrong commit on dbt_common to run tests against.
Expected Behavior
Use the temporary merge commit to run tests to mock the state after merge
Steps To Reproduce

Open a Pr
Add PR to merge queue
observe the commit checked out for dbt-common in PR

Relevant log output
No response
Additional Context
No response

I'm not actually sure if this is a problem.  See comment in PR for more context.  Going to monitor the next real merge to be sure.

This is still not working.  The commit it shows in CI as the one used on the merge seems to be accurate.  However, I just successfully merged a PR with passing core tests that then immediately began failing CI in dbt-core.


Add possibility for uncontrolled (promise-based) behaviour to FeedbackButton

Previously the FeedbackButton was controlled by the props loading and hasErrors. To enable more use cases and easier usage, a promise-based way was added. If neither of the mentioned props are passed, the component uses the promise returned by onClick to evaluate the idle, loading and error state.

PR Checklist

[x] Verify if the change requires a changeset. See CONTRIBUTING.md
[x] Link to the respective task if one exists: COM-754
[x] Provide screenshots/screencasts if the change contains visual changes

Screenshots/screencasts

https://github.com/user-attachments/assets/4b5f2332-2a8a-4c54-8741-53d6a7ce7feb

I will ready it for review once #2423 is merged


Fixing locking issue, where Pool::acquire causes a race condition

I ran into crashes when quickly reloading the same page; it seems there is a race condition in acquire().
The items are assigned before the lock is acquired, and the lock is unlocked early in cases.
To avoid this, I just acquire the lock directly, and defer an unlock. This avoids crashes in my application.

I'm happy to merge this in the name of caution, but I am skeptical about it. items is on the heap and is itself never changed. I don't understand why it would be a problem for one thread to get the reference to items while another is writing to an index of it.
Let me know if the issue comes back. I tried to put the server under various loads, and haven't been able to reproduce it.
By any chance, did you try a variation that moves the lock at the start of the function, but keeps the early release? It would be nice to have the lock released when initSelf is called...
self.mutex.lock();    //moved this up
const items = self.items;
const available = self.available;
if (available == 0) {
  self.mutex.unlock();  //keep this here
  return try self.initFn(self.initState);
}
defer self.mutex.unlock(); //keep this here
const new_available = available - 1;
self.available = new_available;
return items[new_available];

When you first initialise the server, are you passing a GeneralPurposeAllocator or something else?
I'm wondering if the race condition is in initFn (which is the initReqRes function in listener.zig). With your version, this call is now serialized. I could see that being important if the allocator isn't thread safe (GPA is thread safe, which is why I'm wondering if you're using a different one).

Hmm fair assessment, I'm also running into SIGPIPE issues, so it's kinda hard to pinpoint the exact issue. I'll try to find some way to reproduce it minimally

With more testing now I can't easily reproduce this issue anymore, so for now I would say lets ignore it.


MDNS API

Requirements of this design

Draft of mDNS universal responder API interface that takes into the consideration the abstractions that exist on the native APIs of certain platforms.
Linux Support
Windows Support
Mac/iOS Support
Android Support

Additional context
Look to homebridge for inspiration:

https://github.com/homebridge/homebridge/wiki/mDNS-Options
https://github.com/homebridge/HAP-NodeJS/blob/master/src/lib/Advertiser.ts (This is the interface they use that adapts to the different mDNS advertisers they use)
Node_MDNS isimilar, but is rather old, unmaintained and opinionated: https://github.com/agnat/node_mdns

Specification
WIP Interface for the MDNSResponder
class MDNS extends EventTarget {
  // Starts the MDNS responder. This will work differently on different platforms. For platforms that already have a system-wide MDNS responder, this will do nothing. Else, sockets will be bound to interfaces for interacting with the multicast group address.
  start: ()  => Promise<void>

  // Unregister all services, hosts, and sockets. For platforms with a built-in mDNS responder, this will not actually stop the responder.
  stop: () => Promise<void>

  // The most important method, this is used to register a service. All platforms support service registration of some kind. Note that some platforms may resolve service name conflicts automatically. This will have to be dealt with later. The service handle has a method that is able to then later unregister the service.
  registerService: (options: { name: string, type: string, protocol: 'udp' | 'tcp', port: number, txt?: Record<string, string> }) => Promise<void>

  unregisterService: (name: string, type: string, protocol: 'udp' | 'tcp') => Promise<void>

  // Query for all services of a type and protocol, the results will be emitted to eventtarget of the instance of this class.
  startQuery: (type: string, protocol: 'udp' | 'tcp') => void

 // Query for all services of a type and protocol, the results will be emitted to eventtarget of the instance of this class.
  stopQuery: (type: string, protocol: 'udp' | 'tcp') => void
}

@amydevs in the future, assign to yourself, and also set it in the right column. Right now I've put it into in-progress.
Can you also add this issue into the epic too?
I noticed some other issues will be left for the future.

Also this should not be an epic.
The other issues are not part of this. This is just the API design for the release of this library.
The other issues relating to implementation on other operating systems should be separate issues.

This is just for the API design of MDNS.

When you start/stop the MDNS object.
You should have these parameters:

group?: Host | [Host, Host] - should default to [<IP_ADDRESS>, ff02::fb].
host?: Host - should default to ::
port?: Port - should default to 5353
reuseAddr?: boolean - should default to true

There are some changes in behaviour depending on what is set.
The default behaviour is that MDNS binds to the dual stack address, and thus is listening on all interfaces IPv4 and IPv6.
It sends packets to both the IPv4 and IPv6 multicast group, as defined above.
The port is the standard MDNS port of 5353.
The reuseAddr means that it can bind to the same port that existing MDNS stacks on the operating system is already bound on.
At the beginning of the start. You should use reuseAddr as false to detect if the port is already bound. If it is not bound, that's great you just use the socket as is. But if it is bound you need to turn off any usage of the unicast flag on queries. This is because multiple MDNS stacks cannot see the same unicast response. Thus all your queries must not have a unicast flag set.
If the reuseAddr is false, then you just fail if there's an existing MDNS stack involved.
If the group is set to the tuple of IPv4 and IPv6, then you must throw an error if the host resolves to only IPv4. The tuple of IPv4 and IPv6 is only acceptable if the host resolves to the :: dual stack address. This means you should lift some functions out of js-quic, in particular the resolveHostname function and compare the host with the group to see if it allowed. These combinations are allowed:

IPv4 group with IPv4 host
IPv6 group with IPv6 host
IPv4 and IPv6 group with :: host
IPv4 mapped IPv6 group with IPv4 mapped IPv6 group - this last one should be tested

By having the above API, we can have an MDNS stack that works even when there is an existing MDNS stack. We can also work as the initial MDNS stack.
We can also work with a completely different MDNS group and port. And if this the case, then we won't be discoverable by bonjour or other stuff, but it's not that important, cause only PK agents need to discover other PK agents.
Plus we can be guaranteed to have multicast queries and unicast responses which is more efficient than multicast queries and multicast responses.
From the PK application, it would always want to have multicast responses so that all agents know about the new agent on the network. But the library should default the unicast flag to true, because that's more efficient.

The only thing missing here is:

startQuery
stopQuery

MDNS.start() -public async start({
  host = '::' as Host,
  port = 5353 as Port,
  ipv6Only = false,
  group = ['<IP_ADDRESS>', 'ff02::fb'] as Host[],
  hostname = `${os.hostname()}.local` as Hostname,
  reuseAddr = true,
 }: Promise<void>;

MDNS.stop - public async stop(): Promise<void> this stops the socket binding and queries and sends the goodbye packet.

The lifecycle for MDNS can be like this:
const mdns = new MDNS({ services }); // SERVICE STATE CREATE DESTROY
await mdns.start(); // CACHE STATE START AND STOP
await mdns.stop();

Tasks:

[ ] Change all private methods to protected.
[ ] Default empty object, so that functions can be called with no paramaters.
[ ] Change CreateDestroyStartStop to StartStop instead. Constructor will take services state.


I have to re download the file every time an account gets shadowbanned

I don't know if there's a solution I'm missing to this, but every time my account gets shadowbanned I can't find an option to change the account or anything. I usually have to redownload the file again. Is there a simple solution to this I'm missing?

The bot creates a DOTE NV (.env) file that contain your Reddit account credentials.
You can edit and put the credentials in  that file and run the bot again OR delete the file (.env) and the bot will ask you to input your credentials.
Concerning the shadowban make you  are not using the same IP for different accounts.

also keep in mind dont use new accounts

as @igosad said you just need to change the information in the .env file. and when you re-run the bot it will use the newly provided information. and as @WhoR3born said you should probably avoid using fresh accounts.


standardizes headers for links at ends of articles

"See also" for other DevIQ articles
"References" for external links
eliminates bullet points for these links

What do you have against bullet points?

What do you have against bullet points?

I tried to go with the convention the majority of the articles already followed. Most didn't have bullet points, and I also thought it looked cleaner without the bullet points, so I removed them from the couple of articles that had them

Great, thanks!


Wafove experiment fix

I believe that the error with the experiments process for wafove is due to pipelining the experiments. I found one of the commands being run in WaFoVe was not producing a file inside of the build directory, rather, it was being produced in the main cwd. As a result, the file could have been getting mixed up in a pipelined process and then leading to failures. At least, that's my current hypothesis.

Ah that makes sense.  If files aren't getting put in the work directory they could clobber each other.  I'll merge this and we can see if it's stable.


WRF-HRRR Volume and IsoSurface render nothing

WRF-HRRR-IsoSurface.png.log
WRF-HRRR-IsoSurface.png.vs3.zip

WRF-HRRR-Volume.png.log
WRF-HRRR-Volume.png.vs3.zip

Works for me on my Mac:
Model Name:	MacBook Pro
Model Identifier:	MacBookPro16,2
Processor Name:	Quad-Core Intel Core i7
Processor Speed:	2.3 GHz
Number of Processors:	1
Total Number of Cores:	4
L2 Cache (per Core):	512 KB
L3 Cache:	8 MB
Hyper-Threading Technology:	Enabled
Memory:	32 GB
System Firmware Version:	15<IP_ADDRESS>.0 (iBridge: 18.16.14759.0.1,0)

Using 9/20/2022 installer, the following message shows up when enabling a volume renderer:
Error performing paint event
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Error retrieving variable data
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Failed to read region from variable/timestep/level/lod (Elevation, 0, -1, -1)
nc_get_vara_float(65536, 168) : NetCDF: Start+count exceeds dimension bound
Redirecting Python IO
Vapor <IP_ADDRESS>d15602
OS: Linux 3.10.0-1127.18.2.el7.x86_64 #1 SMP Sun Jul 26 15:27:06 UTC 2020
Distro:
LSB Version:	:core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch

We will visit this on Tuesday.

Fix #3177

@shaomeng what Linux platform are you running on? This works fine for me on Casper and my Mac.

@shaomeng what Linux platform are you running on? This works fine for me on Casper and my Mac.

It was Casper. I also added a few steps to reproduce the error message.

I still can't reproduce this even on Casper. I get an error that the volume rendering can't render a volume with a dimension of 1, which is reasonable. Note that the two data sets in this directory should probably not be combined. They both define the same variable names, but with different dimensions. We should probably put them in different directories or something.

Hmm, I seem to no longer be able to reproduce it as well. It might be user mistake earlier, sorry. I'll close this one for now.


Add helper method to convert LogicalPlan to Python type

This PR introduces a helper function to avoid some code repetition.

Codecov Report

:exclamation: No coverage uploaded for pull request base (datafusion-sql-planner@75116de). Click here to learn what that means.
The diff coverage is n/a.

@@                    Coverage Diff                    @@
##             datafusion-sql-planner     #522   +/-   ##
=========================================================
  Coverage                          ?   52.72%
=========================================================
  Files                             ?       70
  Lines                             ?     3446
  Branches                          ?      690
=========================================================
  Hits                              ?     1817
  Misses                            ?     1508
  Partials                          ?      121

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Ensure etcd cluster is updated serially

What
Ensure that the etcd cluster is upgraded in a way that maintains the cluster health. This problem was discovered while reviewing #207.
Without this, when upgrading the cluster (eg for a stemcell version
change), the first node will be upgraded, then the other 2 will be
upgraded in parallel, resulting in the cluster losing quorum. This then
requires manual intervention to recover from.
How to review
Deploy a change that will cause all 3 etcd machines to be re-created (eg a stemcell version bump). Verify that they update cleanly, and that the cluster is healthy afterwards (run /var/vcap/packages/etcd/etcdctl cluster-health on one of the nodes).
Who can review
Anyone but myself.

The test failure looks to be unrelated to this change. There seem to be problems installing shellcheck in Travis, probably because the version in debian sid that we're installing is no longer compatible with the ubuntu image used in Travis (there are package version conflicts)

Indeed this forces serial updates on etcd.


makeDesktopItem: key "Encoding" in group "Desktop Entry" is deprecated

With a derivation containing:
desktopItem = makeDesktopItem {
  name = "Pharo";
  exec = "${executable-name}";
  icon = "pharo";
  comment = "Launcher for Pharo distributions";
  desktopName = "Pharo";
  genericName = "Pharo";
  categories = "Development;";
};

The desktop file validator shows a warning:
$ desktop-file-validate result/share/applications/Pharo.desktop
result/share/applications/Pharo.desktop: warning: key "Encoding" in group "Desktop Entry" is deprecated

Is this fixed now?

@vcunat I don't know, but this issue has been opened for 9 months and nobody cared to even answer. So I closed it. Please reopen if you think this should stay open (but the project already has 571 opened issues so I think closing some does not harm).

@DamienCassou doesn't make sense what you are saying. That's a kiddish behavior, sorry to say. There are several reasons that an issue is not even answered:

Nobody cares
Most developers has overseen this (like myself)
Since it's low-prio, we probably expect a simple PR to fix this

All the above doesn't mean this is not an issue and should be closed. Also once you noted this bug you shouldn't not be in charge of closing it, because it's still an issue, regardless of whether you care about it or not anymore.
So unless you are sure this can be closed, keep it open, thanks.

I have a fix, which I'll push soon.

Yes, please, keep such issues open as long as they're reasonable. It isn't uncommon to have decade-old tickets in open-source, and just closing them unfixed seems to help nothing.

Ok for me. Sorry for that. Just want to let you know that in some open-source communities, when nobody cares, the issue is manually (and sometimes automatically) closed.

Really? I guess it depends on the meaning of "nobody cares".

@DamienCassou this is a different community perhaps


Bring coverage up to 90%

https://coveralls.io/builds/54801434

After merging a pulbot pr it went above 90%


"incorrect number of dimensions" error when L = 1

celda.CG function throws the error "incorrect number of dimensions" when the range of L includes 1. This error message shows up after all other chains finished running which results in waste of computing power and time. Should check if L includes 1 up front or suppress the error when L = 1.
celda.res <- celda(counts = mmafilter,
model = "celda_CG",
K = 3:8,
L = 1:10,
max.iter = 10,
cores = 14, nchains = 10,
verbose = TRUE)
Log message for Celda_chain-9_K-8_L-1_index-59_Seed-12353_log
... Starting celda_CG to cluster cells and genes.
... Completed iteration: 1 | logLik: -76067582.9703099
... Completed iteration: 2 | logLik: -76067582.9703099
... Completed iteration: 3 | logLik: -76067582.9703099
... Completed iteration: 4 | logLik: -76067582.9703099
... Completed iteration: 5 | logLik: -76067582.9703099
... Completed iteration: 6 | logLik: -76067582.9703099
... Completed iteration: 7 | logLik: -76067582.9703099
... Completed iteration: 8 | logLik: -76067582.9703099
... Completed iteration: 9 | logLik: -76067582.9703099
... Determining if any cell clusters should be split.
Error in { : task 1 failed - "incorrect number of dimensions"
Calls: celda -> %dopar% ->
Execution halted
This error log shows up for all chains and K where L = 1.

@joshua-d-campbell what should the intended behavior be here? Should celda stop and say "I need L >= 2?"

Answer to above: "yes, it should be an error"


Feature/add custom schema

This was necessary for me to do in order to use the ONVIF WSDLs (http://www.onvif.org/onvif/ver20/util/operationIndex.html) without getting the following error: "SOAP version mismatch - Invalid SOAP message or SOAP version mismatch". I am sure there are other WSDLs that will require a different version as well.

Hello @BrandonE - thanks a lot for your contribution :+1: !
Please, see our Guidelines on Submitting a Pull Request and go through the steps mentioned there in order to get your PR fixed. Namely, the steps which prevent me from merging the PR are:

Add accompanying tests.
Merge/rebase your commits so that your PR consists of just one commit and rebase it on the current master branch (please see our Guidelines for further information)

Closing for lack of activity.


Blade moving

If you move a blade from a chassis to another chassis, we need to decomission the old one and update the new location

Closing, will be done in #9


Change port in test

Seems there's a mysterious conflict in the port caused by this test, so I'm changing the ports this test uses in the hope that it does not conflict any more.

Oops one extra commit comes in accidentally, i will remove it after i test the test flakiness first

@kaijchen thanks for looking at this. I noticed this test did not do system.stop() and I wonder if that can be the problem.

I noticed this test did not do system.stop() and I wonder if that can be the problem.

Yes, followup: #16694. However, adding system.stop() doesn't solve the problem.

closed in favor of #16694

Hi @jiacheliu3, since this PR is fixing some flaky tests, maybe merge this first?

Reopened this PR as #16694 still needs some work. We will merge this one first and 16694 will take its time.

Didn't see this PR before, just merge a fix from @tcrain https://github.com/Alluxio/alluxio/commit/b47fbda023be925e4c54c651ddf866e1de3b9e20

Didn't see this PR before, just merge a fix from @tcrain b47fbda about the same test

Great work, thanks for the fix.

Didn't see this PR before, just merge a fix from @tcrain b47fbda about the same test

That's much more graceful. Thanks for the fix!


[BUG] Replace use of deprecated Py_SetProgramName() in embedding code

Py_SetProgramName(), like other wchar_t functions, has been deprecated.
https://docs.python.org/3.12/c-api/init.html#c.Py_SetProgramName
embedded_main.c: In function ‘main’:
embedded_main.c:29:5: warning: ‘Py_SetProgramName’ is deprecated [-Wdeprecated-declarations]
     Py_SetProgramName(program);
     ^~~~~~~~~~~~~~~~~
In file included from /opt/hostedtoolcache/Python/3.11.0-beta.4/x64/include/python3.11/Python.h:94,
                 from embedded.h:6,
                 from embedded_main.c:4:
/opt/hostedtoolcache/Python/3.11.0-beta.4/x64/include/python3.11/pylifecycle.h:37:38: note: declared here
 Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *);
                                      ^~~~~~~~~~~~~~~~~

Hi i got the same "warnings" how should i fix them?

Update to the Cython 3 pre-release or ignore then


Invalid WARCs are silently accepted instead of raising an error

warcio accepts various WARCs that are not actually valid. There is some validation on the beginning of the content, so it looks like the smallest possible content that passes is just WARC/1.0 (or another version), without even a line termination. Truncations within headers or payload are also silently ignored. As a result, such mutilated files also pass warcio check:
$ echo -n 'WARC/1.0' | gzip >test.warc.gz
$ zcat test.warc.gz | xxd
00000000: 5741 5243 2f31 2e30                      WARC/1.0
$ warcio check -v test.warc.gz
test.warc.gz
  offset 0 WARC-Record-ID None None
    no digest to check

Here's a more thorough example. Every single one of these samples is invalid and should raise an exception on parsing (although arguably for some of these, namely the ones where the truncation occurs at the beginning of or within the payload, it should only happen on trying to read the raw or decoded stream):
import gzip
import io
import warcio.archiveiterator

samples = [
	b'WARC/1.0',
	b'WARC/1.0\r\n',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\n',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\nContent-Length: 3\r\nWARC-Date: 2021-01-05T19:04:12Z\r\nWARC-Type: resource\r\n',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\nContent-Length: 3\r\nWARC-Date: 2021-01-05T19:04:12Z\r\nWARC-Type: resource\r\n\r',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\nContent-Length: 3\r\nWARC-Date: 2021-01-05T19:04:12Z\r\nWARC-Type: resource\r\n\r\n',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\nContent-Length: 3\r\nWARC-Date: 2021-01-05T19:04:12Z\r\nWARC-Type: resource\r\n\r\nfo',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\nContent-Length: 3\r\nWARC-Date: 2021-01-05T19:04:12Z\r\nWARC-Type: resource\r\n\r\nfoo',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\nContent-Length: 3\r\nWARC-Date: 2021-01-05T19:04:12Z\r\nWARC-Type: resource\r\n\r\nfoo\r',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\nContent-Length: 3\r\nWARC-Date: 2021-01-05T19:04:12Z\r\nWARC-Type: resource\r\n\r\nfoo\r\n',
	b'WARC/1.0\r\nWARC-Record-ID: <urn:uuid:51880269-0041-4f8f-ac34-57c75c151871>\r\nContent-Length: 3\r\nWARC-Date: 2021-01-05T19:04:12Z\r\nWARC-Type: resource\r\n\r\nfoo\r\n\r',
]
for sample in samples:
	f = io.BytesIO(gzip.compress(sample))
	it = iter(warcio.archiveiterator.WARCIterator(f))
	try:
		r = next(it)
	except:
		# Something should be raised
		pass
	else:
		print(f'No error raised on {sample!r}')

Here's a list of things that I think warcio should validate before even emitting an ArcWarcRecord:

[ ] Does the stream begin with WARC/, a supported spec version, and CRLF?
[ ] Does every following line end with CRLF?
[ ] Once an empty line has been read: Is every mandatory header (WARC-Record-ID, Content-Length, WARC-Date, and WARC-Type) present with a valid value?

Then, upon reading from raw_stream (directly or via content_stream):

[ ] Can enough bytes be read from the stream, in accordance with the Content-Length header?
[ ] Is that data followed by CRLFCRLF?

If any of these points fail, an exception should be raised.
As far as I can tell, only the first point is partially (no CRLF check) implemented so far.

Here's a list of things that I think warcio should validate before even emitting an ArcWarcRecord:

[ ] Does the stream begin with WARC/, a supported spec version, and CRLF?
[ ] Does every following line end with CRLF?
[ ] Once an empty line has been read: Is every mandatory header (WARC-Record-ID, Content-Length, WARC-Date, and WARC-Type) present with a valid value?

Then, upon reading from raw_stream (directly or via content_stream):

[ ] Can enough bytes be read from the stream, in accordance with the Content-Length header?
[ ] Is that data followed by CRLFCRLF?

If any of these points fail, an exception should be raised.
As far as I can tell, only the first point is partially (no CRLF check) implemented so far.

One interface thing to keep in mind is that looping over an iterator cannot be continued if the iterator raises.
That's why warcio's digest verification has a complicated interface, with 4 options: carry on as best you can (default), record problems but carry on, record problems and print something to stderr but carry on, and finally raise on problems.

One interface thing to keep in mind is that looping over an iterator cannot be continued if the iterator raises.
That's why warcio's digest verification has a complicated interface, with 4 options: carry on as best you can (default), record problems but carry on, record problems and print something to stderr but carry on, and finally raise on problems.

Right. But should the iterator be resumable if the underlying stream is not a valid WARC file like in the examples above? For digest verification, it makes sense to log digest mismatches and check the rest of the file. Similarly, content type mismatches or invalid payload data (e.g. corrupted images) can and should be handled downstream. But that isn't really possible or sensible if the file isn't a parsable WARC in the first place.
Generic recovery from such a situation isn't possible either. I've had a case in the past where a record in the middle of a WARC was truncated for unknown reasons. Fortunately, the file used per-record compression, so some nasty processing allowed to find the next record and then produce a new file without the offending record. But that's not possible in the general case because the file might be compressed as a whole rather than per-record or, even worse, gzip member boundaries might be offset entirely compared to the WARC record boundaries. You can't simply decompress everything and then search for '\r\n\r\nWARC/1.0\r\n' either because that string could appear within a record, too.
I suppose it makes sense to split the points mentioned above into two categories.
First, there are hard parsing errors. These are errors that are absolutely impossible to recover from. For example, if a file doesn't start with WARC/1.1 + CRLF (or other valid known version) or there isn't an empty line marking the end of the headers, it simply cannot be parsed. A Content-Length header would also have to be present, and after reading that many bytes from the payload, there must be a double CRLF.
Second, there are softer parsing errors. Examples of this include header names that aren't valid UTF-8, missing any of the other required header fields, header lines (that aren't continuation lines) missing a colon, or LF instead of CRLF as line endings.
I'm not sure about these. Part of me wants to handle these exactly like hard errors. Accepting files that don't conform to the spec leads to exactly the same issue as we have with HTTP or IRC: over time, more and more content would exist that is not conformant, and so everyone has to adapt to also handle these non-conformant cases without any proper documentation of this stuff. I feel like this is even more problematic in the context of archival formats, which are meant to be preserved forever.

Right. But should the iterator be resumable if the underlying stream is not a valid WARC file like in the examples above? For digest verification, it makes sense to log digest mismatches and check the rest of the file. Similarly, content type mismatches or invalid payload data (e.g. corrupted images) can and should be handled downstream. But that isn't really possible or sensible if the file isn't a parsable WARC in the first place.
Generic recovery from such a situation isn't possible either. I've had a case in the past where a record in the middle of a WARC was truncated for unknown reasons. Fortunately, the file used per-record compression, so some nasty processing allowed to find the next record and then produce a new file without the offending record. But that's not possible in the general case because the file might be compressed as a whole rather than per-record or, even worse, gzip member boundaries might be offset entirely compared to the WARC record boundaries. You can't simply decompress everything and then search for '\r\n\r\nWARC/1.0\r\n' either because that string could appear within a record, too.
I suppose it makes sense to split the points mentioned above into two categories.
First, there are hard parsing errors. These are errors that are absolutely impossible to recover from. For example, if a file doesn't start with WARC/1.1 + CRLF (or other valid known version) or there isn't an empty line marking the end of the headers, it simply cannot be parsed. A Content-Length header would also have to be present, and after reading that many bytes from the payload, there must be a double CRLF.
Second, there are softer parsing errors. Examples of this include header names that aren't valid UTF-8, missing any of the other required header fields, header lines (that aren't continuation lines) missing a colon, or LF instead of CRLF as line endings.
I'm not sure about these. Part of me wants to handle these exactly like hard errors. Accepting files that don't conform to the spec leads to exactly the same issue as we have with HTTP or IRC: over time, more and more content would exist that is not conformant, and so everyone has to adapt to also handle these non-conformant cases without any proper documentation of this stuff. I feel like this is even more problematic in the context of archival formats, which are meant to be preserved forever.

btw I have a not-quite-finished develop-warcio-test branch in the repo that is capable of complaining about soft parsing errors. There are tons of WARCs out there with problems.

btw I have a not-quite-finished develop-warcio-test branch in the repo that is capable of complaining about soft parsing errors. There are tons of WARCs out there with problems.


Option for self-hosting, docker deployment

Hi! I am making this small PR to provide users options to self-host your typing-test app. Docker 🐳 will survive for the long run and is a much much better option to run in production. Please check this PR and if you like it let me know.
I am so pumped for future contributions to this project, really liked the tool, awesome work buddy.
I have provided a sample docker-run command in the README.md and also a docker-compose.yaml file in the root of the repo, whichever the user may find easy.

try to make it one word name. tip: be creative

I thought of these names,
Purpleperry, eggplant, shimmering-purple
What do you feel, I tried to be creative enough with them.

Okay nice idea but I have to take a look into how docker works. So after that only I can merge or suggest some changes.

Alright, basically docker is a containerized solution to serve apps in an
isolated environment. Docker simply isolates your host machine by putting
your code into "containers" that are isolated from the core os layer by
software. Docker is a software-based virtualization solution.
You can get started with basics of docker here if you are interested,
https://medium.com/swlh/what-exactly-is-docker-1dd62e1fde38
Thank You

Hi @salmannotkhan did you get to know about Docker? Please let me know if any changes are required to be made in the PR. This is one my newest contributions on GitHub and I am learning everyday, please let me know if there is any mistake or you are reviewing someting.

Given commands in README isn't working
also it's docker build -t typing-test-app . not docker built -t typing-test-app .

Also I don't think that for serving static file we need docker. correct me if I'm wrong

Given commands in README aren't working
also it's docker build -t typing-test-app . not docker built -t typing-test-app .

I would be fixing that in the PR, you said it correctly, the command is build and not built. Thanks for the correction.

Also I can't understand why local deployment using docker. can we deploy these images to aws or some cloud?

For this, no such specific answer can be given. Many people love self-hosting apps locally on premises just because docker is fun to use and uses local bandwidth, although this app is not heavy but people would really like if it has a self-hosted solution with Docker. There would not be any harm if you provide Docker builds, it would be +1 instead and watch out for many popular repos, they provide Docker builds, just for the future time, if it becomes popular and people want to self-host it. Docker also provides data security in the context that people are aware that the state of the app is limited in the local premise itself.
You can consider offline cases too, suppose an education institute, they can host your app offline on premise and teach typing test even if they do not have option of internet access.

Hi @salmannotkhan please review the commits, I have done my best to fix the mistakes that were previously there, also I have fixed the app URL in your readme file. Let me know if there are still any doubts left.
Have a nice day, bye!

this Dockerfile executes the npm start to run the build that will run debug build of our typing-test which could be bad from performance and security perspective.
You have to create a static server using serve. it'll will use optimized and secure version of our app
So you have to update Dockerfile and instead of `npm start'
you have to execute 'npm build' first then serve command which can be found here

this Dockerfile executes the npm start to run the build that will run debug build of our typing-test which could be bad from performance and security perspective.
You have to create a static server using serve. it'll will use optimized and secure version of our app
So you have to update Dockerfile and instead of `npm start'
you have to execute 'npm build' first then serve command which can be found here

No issues, I would be creating a Dockerfile separate for production for that too, I would be committing once more with the feature addition.

Any update for this pull request? C'mon open-source involves collaboration, contribution, this feels bad that after contribution no commits being merged even if they include features. This shall not help you in the long run.

I know and I'm sorry about that but right now I don't have enough time to
verify that nginx is the best option available for docker.
I'll definitely merge this once I get some free time to research on it.
On Sat, Aug 14, 2021, 7:55 PM Ankur Paul @.***> wrote:

Any update for this pull request? C'mon open-source involves
collaboration, contribution, this feels bad that after contribution no
commits being merged even if they include features. This shall not help you
in the long run.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/salmannotkhan/typing-test/pull/1#issuecomment-898901033,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGN64PEHQ5OXBHPW7V3ERNTT4Z4FTANCNFSM5B4RYRMQ
.

Noone is gonna deploy testing build on docker. So I think it's useless to keep their. only keep production build

and remove extra new lines from readme

Required Changes:

Remove Test Dockerfile only keep Production one only (because testing is mainly done on local computer not on docker container)
Make Production Dockerfile well documented like test Dockerfile
Instead of running npm install use npm ci (for clean install)
Instead of copying package.json and package-lock.json use wildcard (package*,json)
Fix README run command (it's not working)
Rename theme to eggplant and put it at last in list
Also update README Theme Contribution snippet according to newly added theme


Tag completion does not respect 'tagfunc'

Steps to reproduce

Install the language server plugin for vim9 and open up a project.
setlocal tagfunc=lsp#lsp#TagFunc
Ctrl-] works and pushes to the tagstack as expected.
Typing :tag <tab> gives "Tag file not found"

Expected behaviour
The code responsible for completing the tag command should use the user defined function (instead of looking for a ctags file) to print the matches.
This is especially so considering that LSPs are on the up and up, and one would probably want to use them to replace the functionality traditionally provided by ctags, as one would no longer have to manage and update an untracked tags file.
Version of Vim
9.0.1182
Environment
Not applicable.
Logs and stack traces
No response

Upon looking further into the LSP specification, I found that the API for jumping to the definition of a call under a cursor is different than what would be used for such a "completion search", so there would need to be a new option to make that functionality customizable, like 'tagsearch' or something.
This issue should be changed from "bug" to "enhancement" or "feature request". Let me know if I should re-open this as a new issue or if you're able to change it. Thanks.

It would require some experimentation to see if it can be made to work.
Currently using 'tagfunc' is disabled.  If you can compile Vim, you could edit src/tag.c,
go to the expand_tags() function and remove TAG_NO_TAGFUNC.
It's worth a try.

Upon looking further into the LSP specification, I found that the API for jumping to the definition of a call under a cursor is different than what would be used for such a "completion search"

@BioBox do you remember what the discrepancy is between these two things?


Multiple adopted resources can create duplicate resources

Describe the bug
Two uniquely named AdoptedResource types referencing the same nameOrID or ARN can independently create two new K8s ACK resources that reference the same AWS resource. This could result in multiple ACK resources fighting over source-of-truth if either of them changes the specification.
Steps to reproduce

Adopt an S3 bucket with one AdoptedResource
Adopt the same S3 bucket with another AdoptedResource of a different name
Check to see that both buckets appear to be managed by ACK

Expected outcome
Some sort of warning should be placed on the second adopted resource that clearly states the target AWS resource is already being managed. The second adopted resource should not create any additional resources.
Environment

Kubernetes version
Using EKS (yes/no), if so version?
AWS service targeted (S3, RDS, etc.)

/remove-lifecycle stale

/lifecycle frozen


fix: model lsq translations don't fallback to fr (resolves #2014, #2026)

Resolves #2014
Resolves #2026

Renames get_written_language_for_signed_language to to_written_language
Makes use of the missingKeyCallback to fallback lsq to fr
Removes HasMultimodalTranslations trait, as this is handled by the missingKeyCallback
Adds tests for the use of missingKeyCallback

Prerequisites
If this PR changes PHP code or dependencies:

[x] I've run composer format and fixed any code formatting issues.
[x] I've run composer analyze and addressed any static analysis issues.
[x] I've run php artisan test and ensured that all tests pass.
[x] I've run composer localize to update localization source files and committed any changes.

If this PR changes CSS or JavaScript code or dependencies:

[ ] I've run npm run lint and fixed any linting issues.
[ ] I've run npm run build and ensured that CSS and JavaScript assets can be compiled.

@greatislander in fixing the failing test I realized that I may have removed some functionality, but I'm also not sure how that part was supposed to work or if it was actually functional on the site. I wonder if you could weigh in. Basically I removed the language bits from the controllers. It looks like you could use that to pass in a query parameter to have an individual or organization public page rendered in an alternative language if one was provided. However, I don't see how a user could have specified that query parameter. Am I understanding this correctly? Have I missed something? Is this still needed?

I spoke with @greatislander about this. The $language set from the query parameter is to allow those pages to be shown in different languages, if they've been added for them by the user/org. This for example would allow an organization to localize their public page in many languages even though the site only supports a couple. Will need to bring that functionality back. While the written language supports from HasMultimodalTranslations isn't required any more, the rough in for the ASL/LSQ upload options is still requested to remain, in case we implement those features in the future.

While reviewing this, @greatislander found two other bugs ( #2029, #2028 ). If possible these should be addressed alongside this one.


Set anonymizeIp

To conform with EU cookie law settings, I want to set anoymizeIp (aip). In UA it is done with ga('set', 'anonymizeIp', true); and I see the string in the CPA js, but I don't know how to set it.

Okay. This has been implemented (but not pushed yet) as Tracker#anonymizeIps(). The change will be available once Tyler pushes the update. Reassigning.

60dd907785602f5df04d001f60a5f63a6022bde2 is now on Github.

We'll need to make a new release.


create Itgenio

@karpenkoYegor First stage of verification passed, official domain is itgen.io as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@karpenkoYegor Thank you for your patience while waiting for a review and processing your request. Pull request merged.