Freezes after a long time of operation, but does not crash

Describe the bug
After running the application for a while (16 hours), the application does not process requests anymore even though it does not crash.
Expected behavior
The application continues to process requests without interruption
Screenshots
Please take a look at that log:
20211029 10:55:48.873084 UTC 52 FATAL no writing but call write callback - TcpConnectionImpl.cc:812
20211029 14:05:38.477563 UTC 72 DEBUG [handleError] [<IP_ADDRESS>:80--<IP_ADDRESS>:23389] - SO_ERROR = 104 Connection reset by peer - TcpConnectionImpl.cc:893
20211029 14:48:27.071999 UTC 54 FATAL no writing but call write callback - TcpConnectionImpl.cc:812
app: /build/3rd_party/drogon/drogon-src/trantor/trantor/net/EventLoop.cc:141: void trantor::EventLoop::removeChannel(trantor::Channel*): Assertion `currentActiveChannel_ == channel || std::find(activeChannels_.begin(), activeChannels_.end(), channel) == activeChannels_.end()' failed.

Desktop (please complete the following information):

OS: Ubuntu 20.04
gcc-9, g++-9
drogon 1.7.3
Running on k8s with L4 Load balancer

Additional context
We develop an application that uses drogon as a web server. Everything worked perfectly but after 16h running, it stopped, didn't continue to process requests even though it didn't crash.
I only see a little information from the log so if you need any more information about the working context, I would be happy to.

It's weird, please tell me more details:

what's the state of the server when the issue occured. Was it busy or dead-locked? you could set log level to TRACE for more information.
did you use SSL/HTTPS in the application?
what kind of database did you use? what was the idle connection timeout set of the database? was it 16 hours?

Thanks for the reply an-tao, here're some more details:

I could execute a shell on the pod (k8s) and play htop or 'top' to see that the app was still running but canot handle requests. We run this app parallelly with old version (using vertx in java) using the same L4 load balancer and the old still work well.
No, we use plain HTTP.
We use MongoDB, but nothing went wrong with the application until that suddenly stop.
Let me try to reproduce the bug, if it does not happen again, let's close this issue.

And please explain me what happened with the log, may be I overthinking with FATAL and assert keywords.

Are you using the sync interface of MongoDB? please check if the query function of MongoDB returned when the error occurred.

But let me carefully check if the weird happen again.

It's a sync interface but we already wrap it into a promise to make the app fully async.
But let me carefully check when the waird happens again!

Sorry an-tao, it's my fault when building drogon in DEBUG mode.
When rebuild in RELEASE mode and define NDEBUG flag, everything works like a charm.


Update scale-set-agents.md - Removed /generalize from SysPrep command

Including /generalize resulted in an image that would cause the DevOps Agent to hang at startup instead of properly starting. Running sysprep WITHOUT /generalize resulted in a properly functioning DevOps Agent. Is /generalize needed or can it be removed from these instructions?

@steved0x

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


chore: use dep for dependency management

This change removes the vendor directory from git, and sets up dependency management with dep.
I am by no means a Makefile expert, so extra scrutiny there is advised :)
Resolves #62.

To me it seems that removing the vendor directory is separate issue from switching to dep. Do we want to remove vendor? I don't have any experience with dep but my experience from using the other dependency management tools has been that keeping vendor versioned makes life way easier.

If dep can guarantee that you always get the same result I don’t mind removing vendor at all. It’s just been my experience that other packaging systems has not been able to do this reliably.

My understanding of
https://golang.github.io/dep/docs/ensure-mechanics.html#no-vendor-and-vendor-only
Is that dep ensure --vendor-only will populate your vendor directory with the correct dependencies as your lock file.

With vgo coming out, I'm not sure if this is the right direction anymore.  I'll let this one go and come back around :)


Add AsyncIO support

Support for asynchronous methods introduced in PEP 0492 and Python 3.5 allow relatively simple asynchronous querying, especially for things like HTTP requests with aiohttp. It would be very useful to be able to use PRAW natively with coroutines.
Here is an example of using aiohttp to query the Reddit API asynchronously.

Python 2.7 which is still supported doesn't have access to the async statement. Unless you mean just using the decorators. And even then the async statement isn't really supported until potentially python 3.7.
That said can this even be done with praw's current structure? I haven't looked into aiohttp at all and it may require a major rewrite.

Thanks for the suggestion. Unfortunately, as PRAW depends on requests for handling HTTP requests I don't think this is something that would be feasible without completely replacing the underlying HTTP request layer.
If you are interested in building such a layer that is compatible with the in-development https://github.com/praw-dev/prawcore interface that will be used in PRAW4 then we may be on to something. At the very least people would have an option to use that if they want async support.
Feel free to keep the discussion going, however, I'm going to close this issue.

It's been almost 2 years since this issue opened, I wonder if you might reconsider this.

How do you propose adding such support? As mentioned above, I'm open to considering a pull request adding an adapter that supports async. This addition would need to be made by someone with a vested interest in that addition.

As we talked over gitter, you said async requests won't help a lot with the crawl speed because reddit has limits of 60 requests per minute.
So I guess it's not relevant.

It is relevant if you want to use PRAW with other modules relying on asyncio, like discord.py

Is it actually necessary in order to coexist with asyncio, or is it possible to use blocking PRAW calls within a coroutine?

@klvbdmh as @leviroth commented, it's possible for asyncio to coexist with blocking tools. Here's an example that I helped a team of high schooler's work on:
https://github.com/TheNumberGame/multBot/blob/master/multBot.py

Seeing this comment chain a little later than I had hoped to find it. @bboe I took a look at your example and comparing it to what I have implemented in my framework it doesn't seem too far off, yet after letting my bot run for a couple of hours (days, maybe) it will crash due to PRAW blocking the event loop, I think. The error specifically would be:

I do have my bot on GitHub so maybe you could give it a quick look? The repository can be found here. It really does seem like I'll need to give asyncio a shot if using PRAW doesn't work.


docs: fix typo (big-projects.mdx)

Summary
I found a typo and fixed it.

oh, I was wrong. sorry 😂


Create a custom object to replace SecretKeySelector

Is your feature request related to a problem? Please describe.
Currently, we are reusing SecretKeySelector, we need to create a custom object instead of using SecretKeySelector

I'm interested in working on this issue, but I'm unsure where to begin. Could you please provide some pointers or resources to help me get started on creating a custom object to replace SecretKeySelector.
Thank you!!

Can you assign me this issue?


Issue-1113: Create hello-strongbox-nuget-chocolatey

From Strongbox #1113
Requires to strongbox/strongbox#1709

Hi @TheCakeIsNaOH,
The text looks great, thank you! Would you mind also adding all the files that were involved as well?

All other files are created either by the choco new or choco pack commands. If you would like, I can change it so that the choco new command is not used, and instead include the output files from choco pack.

@carlspring / @TheCakeIsNaOH can we now merge this? It looks like we've missed to do so? :)

I don't think we can, due the bug with artifacts having hyphens in their paths.
@TheCakeIsNaOH : Did you file a bug in the Strongbox project for this?

@steve-todorov as carlspring mentioned it should not be merged till the install bug is resolved. Additionally, it probably would be best to wait until the chocolatey master has the fixed mono build, they just take a long time to review PRs there.
@carlspring Will do on filing a separate report.

Thanks for the update @TheCakeIsNaOH! I've dropped a message in chocolatey/choco#1827. Hopefully your fixes get merged soon :)

Moved contents of readme to- https://github.com/strongbox/strongbox-docs/pull/78
as per #19


Android WVD Authentication failure

When trying to launch a published app i see the following error which seems to indicate an authentication issue. Mac, Windows, web browser are all fine. Only the Android client is affected. Is the Android RD client fully supported for WVD?
https://twitter.com/shawnharry/status/1205207994499252224?s=20

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

ID: 671614a5-60a1-e453-1f3b-1c53fc6b670f
Version Independent ID: 6c47f487-ad60-c165-b7ef-3c27e583cc72
Content: Connect to Windows Virtual Desktop from Android - Azure
Content Source: articles/virtual-desktop/connect-android.md
Service: virtual-desktop
GitHub Login: @Heidilohr
Microsoft Alias: helohr

Thanks for the question. We are currently investigating and will update you shortly.

Can you please check this thread to see if you are missing anything: https://techcommunity.microsoft.com/t5/Windows-Virtual-Desktop/Hardware-requirements/m-p/891410
Also, for any other troubleshooting assistance you can reach out to tech communities where we are currently supporting Virtual Desktop.
https://techcommunity.microsoft.com/t5/Windows-Virtual-Desktop/bd-p/WindowsVirtualDesktop

We will now close this issue. If there are further questions regarding this matter, please tag me in a comment. I will reopen it and we will gladly continue the discussion.


Error convert yolov8 !

Hello author,
I can convert to yolov5 but got following error with yolov8.
Could you please help me?
E Catch exception when building RKNN model!
E Traceback (most recent call last):
E   File "rknn/base/RKNNlib/RKNNnetbuilder.py", line 486, in rknn.base.RKNNlib.RKNNnetbuilder.RKNNNetBuilder.build_layer
E   File "rknn/base/RKNNlib/layer/RKNNlayer.py", line 293, in rknn.base.RKNNlib.layer.RKNNlayer.RKNNLayer.compute_tensor
E   File "rknn/base/RKNNlib/layer/divlayer.py", line 35, in rknn.base.RKNNlib.layer.divlayer.DivLayer.compute_out_tensor
E   File "/home/nexroot/Data/Virtual_Envs/env_rknn/lib/python3.8/site-packages/tensorflow/python/util/traceback_utils.py", line 153, in error_handler
E     raise e.with_traceback(filtered_tb) from None
E   File "/home/nexroot/Data/Virtual_Envs/env_rknn/lib/python3.8/site-packages/tensorflow/python/ops/math_ops.py", line 1517, in _truediv_python3
E     raise TypeError(f"x and y must have the same dtype, "
E TypeError: x and y must have the same dtype, got tf.float32 != tf.int32.
E Please feedback the detailed log file <log_feedback_to_the_rknn_toolkit_dev_team.log> to the RKNN Toolkit development team.
E You can also check github issues: https://github.com/rockchip-linux/rknn-toolkit/issues
---> Export RKNN model
E RKNN model data is None, please load model first!
E RKNN model data is None, please load model first!
WARNING: simulator does not support exporting pre_compiled model. Ignore!
Convert Done!

Hi were you able to convert to yolov8 at the end?


Add missing shared/weak pointers for hhook

I've rebased this pull request to only add the missing shared and weak pointers since using wil::unique_cotaskmem_ptr for ITEMIDLIST is a better idea. Please take a look again.


[WIP]fix(transitive): provides transitive support for maven

provides transitive support for maven ecosystem

It will be good if you have build check for windows also

@sudhirverma thanks, have done the changes pls verify


Add adding General registry in the short installation instructions

I think adding General registry was missed out from the short installation instructions. @cortner please merge this PR if this was actually unintentional.

I believe the context of Elena's request is that for first-time Julia users the General registry doesn't get installed if the very first command is to add the ACE registry.

Indeed, see output:
(ace_project) pkg>  registry add https://github.com/ACEsuit/ACEregistry
     Cloning registry from "https://github.com/ACEsuit/ACEregistry"
       Added registry `ACE` to `~/.julia/registries/ACE`

(ace_project) pkg> add ACE1pack
    Updating registry at `~/.julia/registries/ACE`
    Updating git-repo `https://github.com/ACEsuit/ACEregistry`
   Resolving package versions...
ERROR: expected package `Calculus [49dc2e85]` to be registered

(ace_project) pkg> registry add https://github.com/JuliaRegistries/General
     Cloning registry from "https://github.com/JuliaRegistries/General"
       Added registry `General` to `~/.julia/registries/General`

(ace_project) pkg> add ACE1pack
   Resolving package versions...
   Installed Calculus ───────────────────── v0.5.1
   Installed x265_jll ───────────────────── v3.5.0+0
...

I guess there is no harm in adding that line. But please add a comment below that this step is only needed when using Julia for the first time so that nobody gets confused.

@gelzinyte - do you mind adding a comment below or above the revised installation instructions that adding  General is only needed if this install is undertaken at the very first startup of julia?

On this topic (roughly), is it correct that the pkg"activate ." syntax is deprecated in favor of Pkg.activate? I get warnings about this sometimes

@tjjarvinen -- I think we discussed this. Can you please comment why we left it out?
I believe the context of Elena's request is that for first-time Julia users the General registry doesn't get installed if the very first command is to add the ACE registry.

I think our discussion was that it was an old bug that you need to add General Registry and it is fixed by now. But it might be present for the first install.

On this topic (roughly), is it correct that the pkg"activate ." syntax is deprecated in favor of Pkg.activate? I get warnings about this sometimes
And similar for pkg"registry add https://github.com/JuliaRegistries/General"

I have not heard anything about this and I have not got warnings when using it. But I see no problem going to pkg.activate(".") style.

This is simple enough, and the non-MPI tests are passing, so I'm going to merge.


feat: Add support for for comprehensions.

Motivation:
refs: https://github.com/apache/incubator-pekko/discussions/654
Note:

These methods are only added for scaladsl
foreach  method just work as fs2, where the Stream needs compile aka pekko's run. but different in ZIO, where foreach === runForeach.

Result:
for comprehensions works as fs2 for both Source and Flow in scaladsl

@pjfanning Do you mean add @ApiMayChange?

@pjfanning Do you mean add @ApiMayChange?

Maybe not that one - the API signatures won't change but we may need to tweak the internals of the functions.
Even we add something like this to the Scaladoc for the new functions.
Support for `for` comprehensions is experimental and it is possible that we might need to change the internal implementation to better support it.

I think the only in question is foreach, where ZIO alias to runForEach but fs2 alias to foreach and then needs a Stream#compile to run to a F[_], as Pekko stream always needs an explicitly run, so I think we can follow what fs2 does, and that's what @gmethvin once suggested too.
and for the withFilter and flatmMap , I think the currently shape should be fine, but I will update the scaladoc.

LGTM for code.
This is an Amazing feature, we shoudl update the document also,maybe in docs/src/main/paradox/stream/operators/Flow/ .

LGTM for code.
This is an Amazing feature, we shoudl update the document also,maybe in docs/src/main/paradox/stream/operators/Flow/ .

I ignore that by purpose,  because I don't expect user use these methods without for expression.

Let me merge this, I think this one should be ready to go, any improvement can come up after.


Implement invariant curl form of contravariant vectors in 3D

Here are some comments I received from @andrewwinters5000 this morning:

I  don’t have time for a full review, but I looked at the code and here are my thoughts:

They should add a test to very the free-stream preservation
In principle the indexing and formulas look correct
It appears that the mapping of the geometry will always use the same polynomial order as the DG approximation. This should be commented somewhere in the code and marked with a TODO to generalize later

I believe the implementation itself is slightly wrong because they do not cast the product back into the polynomial degree N space before they compute each of the derivatives. For example, they currently follow the procedure

compute the derivatives of the mapping (what is called jacobian_matrix)
compute the product, e.g. node_coordinates[m, i, :, j, element] .* jacobian_matrix[l, 3, i, :, j, element]
then they use the derivative matrix to get the vector component

However, in the second step the resulting product is now a polynomial of degree 2N-1 such that the differentiation with the derivative matrix is no longer exact and there may be aliasing issues. The procedure above should include an additional step:

compute the derivatives of the mapping (what is called jacobian_matrix)
compute the product and store it is a temp, e.g. temp = node_coordinates[m, i, :, j, element] .* jacobian_matrix[l, 3, i, :, j, element]
use the Vandermonde matrix to cast this temp variable back into the space of polynomials of degree N
then  use the derivative matrix to get the vector component

We should double check this with @gregorgassner because it has been a while since I implemented 3D curved elements but I vaguely remember this interpolation step was important but easy to overlook.

I am not sure, if this step should be done:

use the Vandermonde matrix to cast this temp variable back into the space of polynomials of degree N

?

Just as an information, not sure what is used now: but in FLUXO, we are using the curl invariant form. I would recommend to use the same in Trixi.

For the free-stream preserving test, please use the same test as described in arXiv:2012:12040:
Andrés M Rueda-Ramírez, Sebastian Hennemann, Florian J Hindenlang, Andrew R Winters, Gregor Gassner,
An Entropy Stable Nodal Discontinuous Galerkin Method for the resistive MHD Equations. Part II: Subcell Finite Volume Shock Capturing,
2020.

However, in the second step the resulting product is now a polynomial of degree 2N-1 such that the differentiation with the derivative matrix is no longer exact and there may be aliasing issues. The procedure above should include an additional step:
1. compute the derivatives of the mapping (what is called `jacobian_matrix`)

2. compute the product and store it is a temp, e.g. `temp = node_coordinates[m, i, :, j, element] .* jacobian_matrix[l, 3, i, :, j, element]`

3. use the Vandermonde matrix to cast this temp variable back into the space of polynomials of degree N

4. then  use the derivative matrix to get the vector component

This is also described in
Kopriva, D.A. Metric Identities and the Discontinuous Spectral Element Method on Curvilinear Meshes. J Sci Comput 26, 301 (2006). https://doi.org/10.1007/s10915-005-9070-8

As mentioned above, interpolation is enough (no projection required).

Thank you all for your feedback.

To implement tests for free stream preservation, we need #531 to be merged. Otherwise, we can only use rectangular meshes right now.
We created tests in a different branch, where we merged this PR and #531 together. We tested a simple mapping mapping(xi, eta, zeta) = (xi, eta, sin(0.5 * pi * xi) + zeta) and observed errors around 1e-14. However, we just implemented the test suggested by @sloede above, and we got errors up to 1e-03. So it seems like there is really something wrong. We will look into it this afternoon (or tomorrow).
Don't we do this interpolation step implicitly? We only evaluate the product at the interpolation nodes, doesn't this give us the interpolation already?
@gregorgassner Yes, we implemented the invariant curl form.

1. To implement tests for free stream preservation, we need #531 to be merged. Otherwise, we can only use rectangular meshes right now.

OK, then keep working on #531 such that it can be merged as well. We'll merge this once the tests pass, and then you can debug/make FSP work once all relevant components are there.


student task list mobile view

student task list mobile view done
closes #228

Will add integration on this branch before merging to development, integration needs changes from https://github.com/SELab-2/Dr-Trottoir-3/pull/252


feat: Added dynamic "Contributor of the What" header

Things changed:

[x] Removed the static "Contributor of the Week" header from the top of the image.
[x] Added a new dynamic "Contributor of the What" header.

LGTM 😀


docs(roadmap): update roadmap

This updates the open roadmap based on the items from the June open roadmap planning meeting.

LGTM

LGTM.


Release v0.2

[x] Incorporate change list
[x] add tag
[ ] post/announce?
[ ] Clean up Docker container

@ahmadia can this be closed?

Yeah, this was done.


Add optional param for number of cases

What and why?
Currently it's only possible to see the 12 most recent cases, if you want more (say, to change a status) then we have to go to the database for this.  This PR adds a 'hidden' url parameter, as in there is no UI element for it, max-number-of-cases that you can add to the /reporting-units/<ru_ref>/surveys/<survey_id> url to make it display more.
This is only really a temporary 'fix' until the work is done to make it possible to easily see all the cases for a survey.  It should, however, reduce the ops burden for us until it's implemented.
How to test?
Trello

/deploy wilkia


Refs #23919 -- Removed a MySQLdb workaround (refs #6052) for Python 2.

On Python 2, the removed test fails with:
======================================================================
ERROR: test_safestr (i18n.tests.TestModels)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/media/sf_django/tests/i18n/tests.py", line 1269, in test_safestr
    c.save()
  File "/media/sf_django/django/db/models/base.py", line 734, in save
    force_update=force_update, update_fields=update_fields)
  File "/media/sf_django/django/db/models/base.py", line 762, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/media/sf_django/django/db/models/base.py", line 846, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/media/sf_django/django/db/models/base.py", line 885, in _do_insert
    using=using, raw=raw)
  File "/media/sf_django/django/db/models/manager.py", line 127, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/media/sf_django/django/db/models/query.py", line 920, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/media/sf_django/django/db/models/sql/compiler.py", line 974, in execute_sql
    cursor.execute(sql, params)
  File "/media/sf_django/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/media/sf_django/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/home/tim/.virtualenvs/djangotests-py2/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 234, in execute
    args = tuple(map(db.literal, args))
  File "/home/tim/.virtualenvs/djangotests-py2/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 291, in literal
    s = self.escape(o, self.encoders)
  File "/home/tim/.virtualenvs/djangotests-py2/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 202, in string_literal
    return db.string_literal(obj)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 1: ordinal not in range(128)

Does the test add value on Python 3?

I would keep the SafeText test part at least. I'm less sure about SafeBytes, as it might disappear at some point.


Data managment before the next Recensus

List of suggestions from the census crew to happen before the next recensus. These will also be discussed further before being implemented into the data

Remove things that have been Dead not found (DN) for three censuses
Populate forward WR code from previous censuses, and if "WR" or "wire removed" comment, add WR code.
Populate forward TR code from previous censuses, and if "TR" or "tag removed" commend, add TR code.
Remove TR and stems for next data to make the field map
Include 2023 comments in the field app for the next census/next mortality survey (for certain quadrats this will be super necessary!)
Change species (comment is usually “species is not ___ is ____”, where ___= species code, or "species is __ is not __"
Add status G to multi stems where the first stem is dead but there are other stems
For dead trees (DS, DC or DN), include the last measured DBH

We are adding a file in the doc folder under data cleaning called "Before the Next Census" that summarizes these things as well as things that need to happen in the field as well

Thanks so much!


Unhelpful message when no settings are found

re  #57304
Search for something that doesn't match any setting. In comparison to search, the message is a little short and unfriendly. For instance, it could offer to undo some filters.

better

I'm not sure, would a button to clear the input field be helpful? Or remove the @ filters but leave the rest of the query?

Both? A link for clearing @-filters and one for clearing the rest. Or know which on to remove by already testing them with changes in the background.

Is that really useful though? Search needs it because people collapse the query details then forget that it's searching somewhere else, or don't know how to get rid of the filter. Here, there is clearly a text box and the user just typed in it.

Would take a PR that adds two link/buttons to that message, one to remove filters (when filters are present), the other to clear the whole search string.


Add a notification mechanism

User story
As a user I want to see when the app makes an API call that fails.
In apps like this we normally have an notification service that triggers the display of a notification and I think we have used this before:
https://material.angular.io/components/snack-bar/overview
SHould be integrated here:
https://github.com/micronutrientsupport/micronutrient-support-tool/blob/develop/src/app/apiAndObjects/api/mapsHttpResponseHandler.ts#L68
Like this:
https://kwvmxgit.ad.nerc.ac.uk/bgs-lims/bgs-lims-gui/-/blob/develop/src/app/apiAndObjects/api/myHttpCallErrorHandler.ts#L33
Ideally, this is in the issue title, but if not, you can put it here. If so, delete this section.
Acceptance criteria

[ ] This is something that can be verified to show that this user story is satisfied.

Sprint Ready Checklist

[ ] Acceptance criteria defined

[ ] Team understands acceptance criteria

[ ] Team has defined solution / steps to satisfy acceptance criteria

[ ] Acceptance criteria is verifiable / testable

[ ] External / 3rd Party dependencies identified

Hi @pautva
I'm not sure if you have some time to design the look of a notification?

Hi @jon571. Yes, I can design a notification in Figma. I'll upload it here shortly for feedback.

@jon571 , I've added an error page to Figma prototype. Is that the type of notification you were after?

It can be found here:
https://www.figma.com/proto/swhv1D7WScZwDE5KKYkkaE/BMGF-Maps?node-id=1672%3A0&viewport=-57736%2C-16063%2C1.8460657596588135&scaling=contain

Hi @pautva.
There definitely needs to be the notification for individual api call errors.
I think there needs to be some sort of prominent standard error display that a "we can't do this at this time, try/do this" like the page you showed. The use case I had in mind was going to quickmaps baseline with invalid parameters set (after sharing a url).  At the moment it would just relocate to he quickmaps location search, but it should be clear that they haven't been able to navigate to the desired location.  This could be a dedicated page, or it might be more re-usable in a modal (we could use it as both).
I think a better card error display could be good too.  At the moment we show "error...".  In the case where a card depends on data from an API endpoint that fails in isolation, I think just showing the error in the card and letting the user continue with the rest of the site is preferable to displaying the page/modal "we can't do this at this time, try/do this".
All of these should probably have customizable message sections.

Inviting @bgsandan to the party 🥳

I see, so it would more like a 404 page for misspelt URLs.

And the error for individual cards could look something like this:

Sort of, but maybe less than a 404.  Maybe just saying something about invalid parameters/selections and that you have been/are being redirected to the page where you can make valid selections.
@bgsandan do you have any suggestions for when a previously shared link to the baseline page, say, isn't valid (due to data changes/mis-copied link/attempt to change param in url)?

Hmm, that is a really interesting one.  I guess there are a few options:
a) force a 'redirect' back to the start page of quick MAPS and make them select everything again (with or without a modal/snack-bar to tell them what has happened)
b) redirect back but try to pre-fill what is valid from the URL params
c) go to some other error state with explanation of what went wrong.  Give options to then reselect the bits that are invalid/missing though is going to get messy/unwieldy very quickly
d) go to some other error state with a link to click to go back to a) or b)
e) something else I haven't thought of.
As an aside, I like @pautva in card error message for localised data fails but agree something for wider param issues also needed

At present the route guard stops the navigation to the page and redirects back to the quickmaps root, pre-populating what options it can.
I like this but I think there should be some confirmation to the user that this is what has happened, otherwise they my think the link worked but they're not seeing what the sharer told them they would see.    Please make alternative selection."

Strikes me that this issue might spawn a few new task issues :-)

The error before redirecting people back to Quick Maps could look something like this:

So do we think that this should spawn 3 separate issues?

Notification toast
404 page
A modal that can be shown that for invalid parameters

I've created an issue for the notification toast. Feel free to add more details. I'll create the other two now.
https://github.com/micronutrientsupport/micronutrient-support-tool/issues/338

Are we keeping this issue open too?
If not then #338 could maybe do with being updated to reflect the more general functionality needed from the notifications, as if they are implemented with just this single use case in mind, the functionality might not include this one:
As a user I want to see when the app makes an API call that fails.
be integrated here:
https://github.com/micronutrientsupport/micronutrient-support-tool/blob/develop/src/app/apiAndObjects/api/mapsHttpResponseHandler.ts#L68
Like this:
https://kwvmxgit.ad.nerc.ac.uk/bgs-lims/bgs-lims-gui/-/blob/develop/src/app/apiAndObjects/api/myHttpCallErrorHandler.ts#L33

That's a good point. I can add more details to #338 and close this one.


Help

Hello.
I'm dreaming to use "MacBook Pro Touch Bar Volume control" graphics in me project with touch screen. Please see this
.
I'm using TFT-eSPI, this is the best library i think. I'm having no lock to stop the flicker.
I'm using ILI9488 or ILI9341 with capacitive touch, the "Touch" part is fine, no problem, but the
i'm having hard time with graphics, let say moving white slider on top of the gray. This is part of me code
#include <TFT_eSPI.h>
#include <SPI.h>
TFT_eSPI tft = TFT_eSPI();
int x=70, old_x=70, a=1;
void setup(void) {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_BLACK);
}
void loop() {
tft.fillRoundRect(65, 190, 345, 45, 7, 0x31C7 );
tft.fillRoundRect(90, 210, (x-60), 8, 1, TFT_BLUE );
tft.fillRoundRect((40+x), 210, (350-x), 8, 1, TFT_WHITE );
x=x+a;
if (x==60 || x==350) {
a = -a;
}
delay(5);
if(old_x!=x){
tft.fillRoundRect((old_x+10), 190, 50, 45, 7, 0x31C7 );
}
tft.fillRoundRect((x+10), 190, 50, 45, 7, 0xFFFF );
old_x=x;
}
So
Please if possible, if you have time help me with this on.
Thank you in advanced !!!

Hi, to have flicker-free content, you'll  need an offscreen surface (TFT-eSprite ist the equivalent object). See the example in the examples dir and trace the usage of the preprocesser macro #define OFFSCREEN, this will help you for your problem.

Thank you very much.
Looks like OFFSCREEN did what I need.
I'm having only one issue with my screen which is bigger (480x320) ILI9488
Your library is supporting up to 320x320.
So is it possible to correct or change your library that will work correctly with my screen?
Thanks.

Your library is supporting up to 320x320
No, there is no restriction at the resolution at all.

You have to adapt following code to your need  (see the sample code):

tft2.createSprite(240,320); //Display dimension <= change it here
Depending on your need, you can create an offscreen sprite for the whole screen, but you can also specify one or more sprites with a lower dimension (which is much faster for redraw).
Hope this helps,
Greetings

Thank you for replay.
I know about
tft2.createSprite(240,320);
but when I'm trying to increase 240 to higher number, it goes up to 320 fine, but 320 and higher
numbers the screen goes Black, the screen not printing any graphics.
Please help me.
Thank you

Well maybe I can help you, but I first want to say your issue has nothing to do with the TShape library but of the underlying library TFT_eSPI. Anyway, I think I can help because I guess where your problem is: I think you are running out of memory. Which hardware do you use? ESP32-WROOM or WROVER? WROVER has enough SPI-memory (4MB) which can be activated with a compiler setting...
First check  your memory with "Serial.println(esp_get_free_heap_size());".

Log esp_get_free_heap_size() before and after the createSprite call

This is the board
4 MB Flash WEMOS Lolin32

One more thing
The part of the screen where I have a picture, it's unbelievable, it's working just like on MacBook Pro
Touch screen. it's perfect!!!
You're Genius !!!

I'm not home right now, in couple hours I'll test everything, and I'll let you know.
Thank you

Hi
You're 100% right, I cut the Sprite area, and everything works,  see the picture.
When i'm trying to ready memory size ( Serial.println(esp_get_free_heap_size()); ) before tft2.pushSprite(0,150);
i'm geting same number 193212, maybe i'm doing somthing wrong, please tell me how to do it.
And one more thing, this board is from ebay/china, you thing i can find WEMOS Lolin32 with right
memory?
Thank you !!!

with pushSprite(0,150); you will never allocate memory (width=zero), you mut have at least one pixel height. Well, to find th right memory, I only can say the Esp-WROVER   chip has 4M extra memory on chip. I'm using an ODROID-Go whoch has the WROVER on board, for other systems google.


NodeGroup set with customTimeout on update to 4h hits a timeout error of 20m

What happened?
When using aws.eks.NodeGroup with a customTimeout on update set to 4h I hit a timeout error of waiting for EKS Node Group ... timeout while waiting for state to become 'Successful' (last state: 'InProgress', timeout: 20m0s)
Example
Not sure a repro is easily produced here but I will attempt to provide one.
Output of pulumi about
N/A
Additional context
It is confusing where this 20m0s comes from as I believe the upstream provider sets this to 1h by default.
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

I appreciate the quick response. I will see if I can get a repro going. I tried digging through the code and the upstream provider, but I am not entirely sure where the 20m is coming from. From what I saw on the upstream provider the default timeout was 60m, but admittedly I could be conflating something here.

I was able to test some scenarios so far. I set the custom timeout on an update to 5s and confirmed to get
        * waiting for EKS Node Group (zbuchheit-cluster-eksCluster-ece8aec:zbuchheit-nodegroup) version update (79d1faa4-1bd7-3f67-9381-da723ddd202a): timeout while waiting for state to become 'Successful' (last state: 'InProgress', timeout: 5s)
I also set the timeout to an update to 21m hoping it would trigger on 20m for some other reason but get a 21m timeout as expected.
        * waiting for EKS Node Group (zbuchheit-cluster-eksCluster-e4babc5:zbuchheit-nodegroup) version update (8537b8d8-1b9f-3a49-8884-f362bcf9539f): timeout while waiting for state to become 'Successful' (last state: 'InProgress', timeout: 21m0s)
The user that reported the issue is using MLCs so I am not sure if there is something there that could spark an idea of the source.
I did confirm from their logs that their resource has customTimeouts=update:"4h" set

When reproducing it would be great to match provider versions exactly with the customer's scenario.

ah interesting, on 6.18.0 it worked, but on 6.21.0 i have a update set to 21m and it hits a timeout at 20m. So it looks like a possible regression between 6.18.0 and 6.21.0

@zbuchheit Are you able to share the code you used to find the regression?

If it helps, this is our code for an aws.eks.NodeGroup resource within an MLC component that has the same issue.
private createNodeGroup = (): aws.eks.NodeGroup => {
    return new aws.eks.NodeGroup(
      this.args.nodeGroupName,
      {
        nodeGroupNamePrefix: `${this.args.nodeGroupName}-`,
        clusterName: this.args.clusterName,
        subnetIds: this.args.privateSubnetIds,

        nodeRoleArn: this.nodeGroupRole.arn,

        version: this.args.kubernetesVersion,

        amiType: "BOTTLEROCKET_x86_64",
        releaseVersion: this.args.bottlerocketVersion,

        diskSize: this.args.diskSizeGiB,
        instanceTypes: this.args.instanceTypes,

        capacityType: "ON_DEMAND",
        scalingConfig: {
          desiredSize: this.args.desiredSize,
          maxSize: this.args.maxSize,
          minSize: this.args.minSize,
        },

        updateConfig: {
          maxUnavailable: this.args.maxUnavailable,
        },

        tags: {
          ...this.args.tags,
        },
      },
      {
        parent: this,
        dependsOn: this.nodeGroupRole,
        ignoreChanges: ["scalingConfig.desiredSize"],
        customTimeouts: { update: "90m" },
      }
    );
  };

With 5.41.0 of @pulumi/aws in the provider's package.json it worked as expected. We needed to add the customTimeouts: { update: "90m" } option to support long running roll outs when upgrading the releaseVersion and were running happily with that for a while.
Since we bumped to 6.23.0 last week we see this same behaviour of a hidden 20m timeout, despite the customTimeout.

Thanks so much for the details. I can reproduce and bisect.
  |--------+------|
  | master | bad  |
  | 6.25.0 | ?    |
  | 6.24.2 | ?    |
  | 6.24.0 | ?    |
  | 6.23.0 | ?    |
  | 6.22.2 | ?    |
  | 6.22.1 | ?    |
  | 6.22.0 | bad  |
  | 6.21.0 | ?    |
  | 6.20.1 | ?    |
  | 6.19.0 | bad  |
  | 6.18.2 | good |
  | 6.18.1 | good |
  | 6.18.0 | good |

This regression was introduced in  https://github.com/pulumi/pulumi-aws/pull/3333
Upgrading pulumi-terraform-bridge from v3.71.0 to v3.72.0.
More particularly this PR is the source of regression:
https://github.com/pulumi/pulumi-terraform-bridge/pull/1648
Reverting is coupled to other changes but I will attempt to fix forward and have an update here shortly.


Add Japanese translations

Hello. I'm Shuma.
I'm working as a Freelance Android developer in Tokyo.
I've created Japanese translation files. Please check this! 🙏

@ssddanbrown
Thanks! I'll coming again if found an issue. 😉


Update multi-monitor witth 110, 118, 119

Any updates on this?

:+1: Please merge this for my multi-machine multi-display sanity

@lukelex This is not likely to be merged. Please take a look at multilockscreen, it is a continuation of this PR.

Tested. Worked and made into my dotfiles. Thanks

Hey @jeffmhubbard ,
I just got in contact with @pavanjadhaw  and he gave me the possibility to support on this Project. Are you still interested in merging this as I saw you are maintaining a fork of it?
Cheers!

I am. But it is going to take some work to get it ready to merge with master.
@pavanjadhaw added me as collaborator as well. This weekend I will merge this and then continue to prepare multi-monitor for merge with master.

Cool, looking forward - if I can help with something just ping me :)

@jeffmhubbard can you contact me through mail or somehow? I don't find any contact details of you 😊

Closed by #228

@SebTM Sorry, just saw your message. My email is github username at gmail.com.


add providers: zookeeper、kafka、elasticsearch、etcd、etcd-mutex …

What type of PR is this?
/kind feature
What this PR does / why we need it:
add providers: zookeeper、kafka、elasticsearch、etcd、etcd-mutex、zk-master-election、kubernetes.
Special notes for your reviewer:

Reivewers List:
@liuhaoyang
Does this PR introduce a user-facing change?

Additional documentation usage docs, etc.:

/bark

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: liuhaoyang, recallsong
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Problem on runing it on colab

Hi, Im tring to run it on colab.
I've cloned your repo and when I'm going to upload the wav files it says that the sound is in silence.
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:455: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:456: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:457: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:458: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:459: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
Using default logdir: ./logdir/train/2019-11-20T02-04-55
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX512F instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
Trying to restore saved checkpoints from ./logdir/train/2019-11-20T02-04-55 ... No checkpoint found.
files length: 10
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00007.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00008.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00006.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00004.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00003.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00008.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00005.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00006.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
files length: 10
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00005.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00004.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00006.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00002.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00004.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00005.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00008.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00007.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00008.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
files length: 10
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00006.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00001.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00007.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00003.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00005.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00002.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.
Warning: /content/drive/My Drive/tensorflow-wavenet/Data/metal.00001.wav was ignored as it contains only silence. Consider decreasing trim_silence threshold, or adjust volume of the audio.

Follow the code:
PS: Change the .pdf extention to .py
Test.pdf

Try to decrease trim_silence threshold with the parameter --silence_threshold
Im testing currently with --silence_threshold=0.1

I think you can make an adjustment to the argument 'SILENCE_THRESHOLD' by either editing the code or adding another argument when run. I also come across this issue, it's quite tricky


Crash with large windows on x11

With softbuffer master branch at 18c944736e80d6c296a9f532d55b8747f869eafb , on X11 a large buffer size causes a loss of the X connection.
How to reproduce:

cargo run --example winit
Make the window very large (or just maximise)

Observe:
XIO:  fatal IO error 9 (Bad file descriptor) on X server ":0"
      after 12025 requests (12023 known processed) with 0 events remaining.

I am getting this error currently with a small demo app adapted from the existing softbuffer README example to work on latest winit, it doesn't even require resizing too large, it seems resizing quickly does it.

Also having this same issue on 0.3.2

The only change for X11 we made was migrating to POSIX SHM for shared memory.
Do these issues affect the commit https://github.com/rust-windowing/softbuffer/commit/a405e0341d4badcb1c9ac411f08e6bba7ff65227?

Nope! I tried again at that commit and it works without issue.

I tried also on the master branch and actually it breaks again with the same error as above. (This is with Wayland-related features disabled on softbuffer and winit but with other default features specified.)

It's also especially odd that the error is coming from Xlib, since this crate exclusively uses libxcb. It almost feels like a bug in the shared communication channels used by Xlib and XCB.
A gdb backtrace of the error would be helpful. A short term solution would be reverting back to SysV SHM for now.

So I was actually trying to obtain one (I'm not the best with gdb) but gdb is not registering this as an error in any way I guess, so the program just exits. I'm not sure where to set a breakpoint for this, but if you have any tips on how I can obtain a backtrace for this let me know!

strace is somewhat informative:
WAYLAND_DISPLAY= strace ./target/debug/examples/winit 2>&1 | grep EBADF

close(6)                                = -1 EBADF (Bad file descriptor)
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\202\6\3\0\6\0@\0\1\0\0\0\202\2\2\0\5\0@\0\202\3\n\0\1\0<EMAIL_ADDRESS>iov_len=64}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[6]}], msg_controllen=20, msg_flags=0}, 0) = -1 EBADF (Bad file descriptor)
close(6)                                = -1 EBADF (Bad file descriptor)

These occur with c0e8723081d2defc8539972b96912cd39473aebb, but not the previous commit. This doesn't entirely make sense though. Nothing is shown closing fd 3 before the call getting EBADF?

I guess shm_attach_fd is supposed to take ownership of the fd? Adding a try_clone there eliminatese the first of these errors, but only that one...
The could also be an issue an issue with how fds are handled in x11rb, possibly?

Ah, I only changed the shm_attach_fd call in is_shm_available. Changing the other call as well fixes these errors. It's not documented in the man page, but presumably sendmsg returns EBADF when the cmsg fd is invalid.

@notgull Would it be best to work around this with a try_clone().unwrap() for now, and have a fix back-ported to 0.3.x, so the X11 backend isn't broken there?
I'm not really familiar with exactly how this works in x11rb and the X protocol. Though I'd guess this is an issue in x11rb, and it's shouldn't close or keep the fd, but should just be sent over the socket to the X server which maintains its own reference to the file description.

Okay, I guess https://docs.rs/x11rb/0.12.0/x11rb/protocol/shm/trait.ConnectionExt.html#method.shm_attach_fd takes Into<RawFdContainer>. So it effectively accepts an OwnedFd. I guess that's correct if x11rb needs to do buffering and not send the fd immediately. Though that API as is is easy to misuse.

Thank you for fixing this bug.

I've tagged and published v0.3.3 which applies this fix without the breaking change in https://github.com/rust-windowing/softbuffer/pull/132.


[BUG] The manually setup should include the service account creation & binding section.

When setup Openyurt following the manual document, the yurt controller manager will not startup properly due the the privileges issue. It should include the  service account creation & binding sections.
The tunnel server setup also have the same issue.

@yixingjia Thank you for taking over the work to improve OpenYurt manual setup document.
and now yurtctl tool can setup OpenYurt correctly, How about improve manual setup document according to yurtctl implementation?

Yes, I plan to extract the account creation & binding yaml to the setup folder and update the document accordingly.

Yes, I plan to extract the account creation & binding yaml to the setup folder and update the document accordingly.

@yixingjia +1, It's good to extract the account creation & binding yaml to the setup folder.

Just find that @DrmagicE  already add the service account part to the yurt-controller-manager.yaml with commit efed1a60dc6d59abbf2dcb689014832c87f22ba1. So we can close this issue know.


flag sqlite mimalloc allocator

since fragmentation is not the cause of the leak, put the sqlite mimalloc allocator behind a flag for now

@MarinPostma, JFYI, it seems like current implementation of allocator can cause SEGFAULT (see https://github.com/tursodatabase/libsql/pull/1486#discussion_r1647736447)
Should we fix it?

Yes! Do you have a reproducer? I kinda found weird stuff this weekend but didn't have the time to investigate, so I thought I'd just disable it for now

I just read the comment, I'll fix it now, but not as bad as I thought. It's almost impossible to get a system allocator return null

No, I just read the code for now - don't have any example with real SEGFAULT.
I just thought that fix is easy (we just need to correctly handle nullptr output from the allocator) - and it's good to do that now given that it's unclear when mimalloc will be enabled again in libsql (and by this time all of us will forget about nuances of implementation).
But if you are busy you can merge this PR and I will create fix for mimalloc bit later.


Remove RouteReversed rule

The description in the wiki about how to map node networks in OpenStreetMap includes the convention to include the ways in the route relation in the order from low node number to high node number.
In practice it turns out that it is not all that useful to insist on having the routes sorted this way. It would be useful to remove the RouteReversed rule from the analysis logic.
The RouteNodeNameMismatch can also ignore the order of the end nodes in the route name.

The RouteReversed fact is no longer reported by the analysis logic.
The RouteNodeNameMismatch has been relaxed so that the order of the end nodes in the route name does not matter anymore.


Method advanceIfNeeded returns a count of skipped items

Is your feature request related to a problem? Please describe.
My use-case is that I have a very large array of objects which contain an ID in their property and I need to reduce the array to a smaller one with elements which id match some requested set. I may do a binary search and use a "comparator" on id property in the original array, but each comparison will require "hop" to a memory location where the object resides to retrieve the id property (which is rather slow).
That's why I created a RoaringBitmap with the ids that are extracted from the records in the large array and search ids in it using org.roaringbitmap.RoaringBatchIterator. The problem is that I need to "materialize" all records in RoaringBitmap via. nextBatch in order to count all examined elements of the RoaringBitmap. I'd like to use advanceIfNeeded approach to skip entire segments if the currently looked up id is not within them. The problem is that the advanceIfNeeded method doesn't return the count of elements, that has been skipped which is neccessary for me to compute the correct index in the original "large array of fat objects".
Describe the solution you'd like
Adding a new method or changing the return type of advanceIfNeeded to int (the latter would probably break backward binary compatibility of RoaringBitmaps) that would represent a number of elements that has been skipped during "fast forward" of the iterator.
Does it make sense to you?
Code snippet reflecting the situation
@Nonnull
default PriceRecordContract[] getPriceRecords(@Nonnull Bitmap priceIds) {
	final RoaringBatchIterator lookupIterator = RoaringBitmapBackedBitmap.getRoaringBitmap(priceIds).getBatchIterator();
	final RoaringBatchIterator superSetIterator = RoaringBitmapBackedBitmap.getRoaringBitmap(getIndexedPriceIds()).getBatchIterator();
	final PriceRecordContract[] priceRecords = getPriceRecords();

	final CompositeObjectArray<PriceRecordContract> filteredPriceRecords = new CompositeObjectArray<>(PriceRecordContract.class);
	int lastPriceId = 0;
	int superSetBatchPeek = 0;
	int lastSuperSetBatchRecord = 0;
	int relativeSuperSetIndex = -1;
	int[] lookupBatch = new int[512];
	int[] superSetBatch = new int[521];
	int superSetIteratorPeek = 0;

	while (lookupIterator.hasNext()) {
		final int lookupIteratorPeek = lookupIterator.nextBatch(lookupBatch);
		for (int i = 0; i < lookupIteratorPeek; i++) {
			int lookedUpId = lookupBatch[i];

			// fast-forward if the last super set batch record is lesser than looked up id
			while (lookedUpId > lastSuperSetBatchRecord && superSetIterator.hasNext()) {
				superSetBatchPeek += superSetIteratorPeek;
				superSetIteratorPeek = superSetIterator.nextBatch(superSetBatch);
				relativeSuperSetIndex = -1;
				if (superSetIteratorPeek > 0) {
					lastSuperSetBatchRecord = superSetBatch[superSetIteratorPeek - 1];
				} else {
					lastSuperSetBatchRecord = 0;
				}
			}

			// look for the index of price detail (searched block is getting smaller and smaller with each match)
			final int fromIndex = relativeSuperSetIndex + 1;
			final int toIndex = Math.min(fromIndex + lookedUpId - lastPriceId, superSetBatchPeek);

			// look for the price in currently read super set batch
			relativeSuperSetIndex = Arrays.binarySearch(superSetBatch, fromIndex, toIndex, lookedUpId);
			if (relativeSuperSetIndex < 0) {
				relativeSuperSetIndex = -1 * (relativeSuperSetIndex) - 2;
			} else {
				final PriceRecordContract priceRecord = priceRecords[superSetBatchPeek + relativeSuperSetIndex];
				filteredPriceRecords.add(priceRecord);
				lastPriceId = lookedUpId;
			}
		}
	}

	// return found prices as array
	return filteredPriceRecords.toArray();
}

The problem is that the advanceIfNeeded method doesn't return the count of elements, that has been skipped which is neccessary for me to compute the correct index in the original "large array of fat objects".

It would almost surely require additional non-trivial computations. The function advanceIfNeeded can just skip entire blocks of data without even looking at them. Your request means that we need to look at the data we skip (in general) and do a cardinality count. It is not just a matter of overhead, the computational complexity is different.
And given that current users do not need this functionality, it does not seem like a good idea to modify the existing advanceIfNeeded function.
It would be more reasonable to implement a new method, e.g., advanceAndCountIfNeeded. It would be slower than advanceIfNeeded but it is reasonable that it could help in some cases like yours.
A pull request is invited.

You can do this already with an iterator and call rank for each value yielded by the iterator. Unfortunately the loop would have quadratic complexity. A new kind of skippable iterator which produces the value and the rank together, could be generally useful.

Thank you both for replying. I'm not familiar with the internals of the containers, so I'm not able to prepare a pull request. I thought the information of container cardinality and hi-low bounds are readily available in the containers so that you can switch among the types (array/bitmap/run). And therefore, when you advance over entire container, you know what has been skipped. But this idea surely comes with my lack of knowledge - you probably change the type of the container during add/remove operations which require "looking into" the data of the container.

And therefore, when you advance over entire container, you know what has been skipped.

Yes. That part is easy. But you don't typically skip over an entire containers. So think about a bitset... it is just an array of bits...<PHONE_NUMBER>10000001110000111000001. In general, the function you request requires you to count the bits in a range of indexes. We can do that fast, but it definitively is not free.

When I think about it - the reason I thought advanceIfNeeded skips entire containes was connected with behaviour of org.roaringbitmap.BatchIterator#nextBatch that fills only part of the provided buffer that (probably) reflect exactly contents of the single internal container. I'm not sure, but I tested it and even when I provide buffer of size 512B, only fragment of it is sometimes filled in. Maybe this fact made me think that the advanceIfNeeded on the same interface method works the same way. But that's not the case and thank you for clarification.

@novoj  That would be a bug. If you provide a buffer, it should fill it up as much as possible. If you can identify such a case, please report it (as a distinct issue).

IIRC that iterator yields at container boundaries, but returns how many elements were filled.

I observed the behaviour confirmed by @richardstartin - when iterating RoaringBitmap with 5000 elements using int buffer of size 500 elements I usually need more than 10 iterations to go through. But I can do it in a safe way thanks to the information about the peak record filled in the buffer. I didn't consider this a bug but a feature :).

IIRC that iterator yields at container boundaries, but returns how many elements were filled.

Ah. Interesting.


Fix param aliases within 'given' blocks

Spec to display behavior of #1769 (as requested in that issue)

Thanks. We don't need a changelog for the spec since it's not going to be merged without a fix. But now that you have a spec you can try a fix? :)

Great job! Merging.


Delta deploy of foldered metadata (Report, Document, Email, Dashboard) fails

It happens when you're trying to deploy a -meta.xml file of a folder


[Bug]: Training with PADiM does not care about "max_epochs" parameter

Describe the bug
I want to train a PADiM model via anomalib, however, it always stops after the first epoch.
But when creating the Engine() object I pass max_epochs=100, see below.
Dataset
Other (please specify in the text field below)
Model
PADiM
Steps to reproduce the behavior
I use the following training script:
from anomalib.models import EfficientAd
from anomalib.deploy import ExportType
from anomalib.engine import Engine
from anomalib.data import Folder
from anomalib import TaskType

import os

def train():
    task_type = TaskType.CLASSIFICATION
    input_size = (256, 256)
    root_folder = "/data/scratch/anomalib"

    # Create the datamodule
    datamodule = Folder(
        name="Test",
        root=os.path.join(root_folder, "images"),
        normal_dir="normal",
        abnormal_dir="abnormal",
        image_size=input_size,
        task=task_type,
        train_batch_size=1,
    )
    datamodule.prepare_data()
    datamodule.setup()

    # Create the model
    model = EfficientAd()
    engine = Engine(
        max_epochs=100,
        task=task_type,
        accelerator="gpu",
        devices=-1,
        callbacks=[],
    )
    engine.fit(datamodule=datamodule, model=model)
    engine.test(datamodule=datamodule, model=model, ckpt_path=engine.trainer.checkpoint_callback.best_model_path)

    # Export the model
    engine.export(model=model, export_type=ExportType.ONNX, export_root=root_folder)

if __name__ == "__main__":
    train()

OS information
OS information:

OS: Ubuntu 22.04
Python version: 3.10.12
Anomalib version: 1.1.0
PyTorch version: 2.2.0
CUDA/cuDNN version: 12.2
GPU models and configuration: 1x GeForce RTX 4080
Any other relevant information: I am using a custom dataset via anomalib.data.Folder

Expected behavior
Since I pass max_epochs=100 I would expect the training not to stop after the first epoch with the message "max_epochs=1 reached."
Screenshots
No response
Pip/GitHub
pip
What version/branch did you use?
No response
Configuration YAML
?

Logs
Trainer already configured with model summary callbacks: [<class 'lightning.pytorch.callbacks.rich_model_summary.RichModelSummary'>]. Skipping setting a default `ModelS
ummary` callback.
GPU available: True (cuda), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
`Trainer(val_check_interval=1.0)` was configured so validation will run at the end of the training epoch..
You are using a CUDA device ('NVIDIA GeForce RTX 4080 SUPER') that has Tensor Cores. To properly utilize them, you should set `torch.set_float32_matmul_precision('mediu
m' | 'high')` which will trade-off precision for performance. For more details, read https://pytorch.org/docs/stable/generated/torch.set_float32_matmul_precision.html#t
orch.set_float32_matmul_precision
F1Score class exists for backwards compatibility. It will be removed in v1.1. Please use BinaryF1Score from torchmetrics instead
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
/home/sinntelligence/.local/lib/python3.10/site-packages/lightning/pytorch/core/optimizer.py:181: `LightningModule.configure_optimizers` returned `None`, this fit will
run with no optimizer
┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
┃   ┃ Name                  ┃ Type                     ┃ Params ┃
┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
│ 0 │ model                 │ PadimModel               │  2.8 M │
│ 1 │ _transform            │ Compose                  │      0 │
│ 2 │ normalization_metrics │ MinMax                   │      0 │
│ 3 │ image_threshold       │ F1AdaptiveThreshold      │      0 │
│ 4 │ pixel_threshold       │ F1AdaptiveThreshold      │      0 │
│ 5 │ image_metrics         │ AnomalibMetricCollection │      0 │
│ 6 │ pixel_metrics         │ AnomalibMetricCollection │      0 │
└───┴───────────────────────┴──────────────────────────┴────────┘
Trainable params: 2.8 M
Non-trainable params: 0
Total params: 2.8 M
Total estimated model params size (MB): 11
/home/sinntelligence/.local/lib/python3.10/site-packages/lightning/pytorch/loops/optimization/automatic.py:132: `training_step` returned `None`. If this was on purpose,
ignore this warning...
Epoch 0/0  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87/87 0:00:32 • 0:00:00 2.91it/s  `Trainer.fit` stopped: `max_epochs=1` reached.

Code of Conduct

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

Hi @haimat, this is because PADIM requires only 1 epoch to go through the entire dataset once. Increasing the number of epochs only replicates the same process and wouldn't improve the performance. That's why we hardcode the number of epochs to 1.


(AO) 4 terminal Sparamater model pin oder assignment in edb.configuration.load

Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

Description of the bug
I could not control correct pin oder assigment on attached Sparamater file.
Refdes "DL1" is assigned Sparamater model(TCM0403S_350_2P_T210.s4p)
SIwave GUI can confirme Sparamater model(TCM0403S_350_2P_T210.s4p) assignment after imported its EDB.
To_TEST_925.zip
Steps To Reproduce
TEST batch script is

Clean.bat
run_EDB.bat
Check refdes "DL1" Pin Order

Which Operating System are you using?
Windows
Which Python version are you using?
3.10
Installed packages
(venv310) C:\Users\aohta\OneDrive - ANSYS, Inc\Documents\2024_BMT\Sony\Auto\To_TEST_925>python -m pip freeze
annotated-types==0.7.0
ansys-pythonnet==3.1.0rc3
attrs==24.2.0
certifi==2024.8.30
cffi==1.17.1
charset-normalizer==3.3.2
click==8.1.7
click-plugins==1.1.1
cligj==0.7.2
clr-loader==0.2.6
colorama==0.4.6
contourpy==1.3.0
cycler==0.12.1
defusedxml==0.7.1
et-xmlfile==1.1.0
fast_simplification==0.1.7
fiona==1.10.1
fonttools==4.54.1
fpdf2==2.7.9
geopandas==0.14.4
idna==3.10
imageio==2.35.1
joblib==1.4.2
jsonschema==4.23.0
jsonschema-specifications==2023.12.1
kiwisolver==1.4.7
markdown-it-py==3.0.0
matplotlib==3.9.2
mdurl==0.1.2
meshio==5.3.5
networkx==3.3
numpy==1.26.4
openpyxl==3.1.5
osmnx==1.9.4
packaging==24.1
pandas==2.2.3
pillow==10.4.0
platformdirs==4.3.6
plumbum==1.8.3
pooch==1.8.2
psutil==6.0.0
pyaedt==0.10.2
pycparser==2.22
pydantic==2.9.2
pydantic_core==2.23.4
pyedb==0.28.0
Pygments==2.18.0
pyparsing==3.1.4
pyproj==3.6.1
python-dateutil==2.9.0.post0
pytomlpp==1.0.13
pytz==2024.2
pyvista==0.44.1
pywin32==306
PyYAML==6.0.2
referencing==0.35.1
requests==2.32.3
rich==13.8.1
rpds-py==0.20.0
rpyc==6.0.0
Rtree==1.3.0
scikit-learn==1.5.2
scikit-rf==1.3.0
scipy==1.14.1
scooby==0.10.0
shapely==2.0.6
six==1.16.0
SRTM.py==0.3.7
threadpoolctl==3.5.0
toml==0.10.2
typing_extensions==4.12.2
tzdata==2024.2
urllib3==2.2.3
utm==0.7.0
vtk==9.3.1

The case of attached SPICE Pinorder is avalable as bellow.
"spice_models": [
{
"name": "TCM0403S_350_2P_T210",
"component_definition": "DLW31SN601",
"component_type": "Inductor",
"file_path": "./tcm0403s_350_2p_t210_s.mod",
"apply_to_all": false,
"components": ["DL1"],
"terminal_pairs": [["n1", "A1"], ["n2", "B2"], ["n3", "A2"], ["n4", "B1"]],
"reference_net": "VSS"
}
]
But  "component_type": "Inductor" could not changed.
Let me know its change correct format.
And also user want to set by "terminal_pairs" for S paramater model.

Moving to PyEDB.
@hui-zhou-a this issue is fixed ?


Make Callback keep reference to PyObject, to prevent GC until destroy() is called

Make Callback keep reference to PyObject, to prevent GC until destroy() is called, or until Callback itself is GC-ed.

Fixes Issue #1

lgtm


Arrangement and execution of the meeting for development of generators of dynamic systems lists (issue #876 related)

The goal is to arrange and execute the meeting for development of generators of dynamic systems lists. The following things should be prepared:

[x] scope and schedule of meeting (in one week);

[x] conducting team (in two weeks);

[x] guide or instructions with examples (one week before meeting);

[x] announcement (in Slack and Teams channel) with basic information (conducting persons, date,scope,schedule) (one week before meeting);

[x] exemplary code in Jupyter (link) (one week before meeting).

Meeting was carried out


mockSnapp GraphQL endpoint

Add an endpoint mockSnapp to GraphQL. The input and output types are the same as for sendSnapp.
Instead of adding a Parties.t to the transaction pool, like sendSnapp does, the new endpoint applies the Parties.t to a copy of the ledger associated with the best tip. The state_view is the protocol state associated with the best tip's parent breadcrumb.
Closes #9972.
There is no CLI command added to run mock Snapps here, but there's not yet a CLI command to run Snapps in earnest. If that's added, a similar command could be added to run mock Snapps in the same way as this GraphQL endpoint.

LGTM!


Feature/improved-documentation

PR for Improved Documentation
by Jungha Cho
Key Changes:

README.md improved for easier installation of the toolbox (commands like NVidia runtime and Xserver displays are omitted).
Windows.md created to guide Windows OS users installing the toolbox.
contributing.rst under docs directory improved to catch errors and allow Windows user clearer guidance.
CMakeLists.txt edited to add ASanitizer disable/enable option when compiling. This allows us to run both ASanitizer leak test and Valgrind tests easily.
create_charuco_board.cpp edited to disable display-related codes (such as cv.imshow()), which were prone to make errors.

Thank you for checking the PR in detail. I fixed all the minor comments that you have made and commited accordingly.


UI not saving window size

Been using PicoTorrent as my main client now, and it works great.
However, it annoys me that when I resize the window so I can see all the columns without having to scroll sideways it doesn't save the resize. When PicoTorrent is terminated (either through a normal application close or system shutdown), the next time it runs it reverts to its original size, so I must resize it again.
Minor inconvenience, as the columns are saved properly anyway, but having to resize it every time it starts gets annoying once in a while.

Seems like an easy fix - I'll schedule it for the next release. Thanks for reporting!

I can't seem to reproduce this issue. Which version are you running?

I'm also having this issue when starting the app.
And the details pane is shrank all the way to the bottom, and I need to resize up every time.
Windows 10 20H2 (19042.685)
Picotorrent 0.23

I'm also having this issue when starting the app.
And the details pane is shrank all the way to the bottom, and I need to resize up every time.
Windows 10 20H2 (19042.685)
Picotorrent 0.23


Proposal: Gitter

Gitter
Pros

Free
Channels (rooms)
Threads
Decent search
Private messaging
Can be accessed from Element
Latex, github-flavored markdown
Integrations with github, discourse
Gitter desktop/mobile apps
Simplicity means it's not ideal for more involved discussion such as Q+A (leave to discourse)

Cons

A little less snappy and intuitive than slack
Slack search better

Clicking the channel name takes you to a github repositrory

This is only because I associated that room with a github repo, this is optional
Originally posted by @adamgayoso in https://github.com/scverse/governance/issues/9#issuecomment-1029278897

Split this out because I like threads.
Additional pros

"Federated", so you don't have separate PMs with people across separate projects

But also, the ability to block bad actors from the community seems valuable.

Additional cons

User settings is limited to dark mode vs light mode (wanted to turn on email notifications for missed messages, no options for this)
The docs
Very limited moderation tooling. May have code of conduct enforceability considerations.
A number of settings (like removing or renaming org) require emailing the devs to change, which is worrying because it looks like there is only one dev

Questions

Are you in any gitter workspaces that use many rooms? All the channels I'd joined recently have at most two.
Can you allow users to create channels in a workspace?
Do you think there is a reason most gitter channels
Are there roles within an Org other than admin?

Simplicity means it's not ideal for more involved discussion such as Q+A (leave to discourse)

This channel is also meant for dev chat, where I think involved realtime discussion is quite useful. Also useful for hackathons/ live events.

@adamgayoso, I think that the inability to ban a bad actor from DMing community members (or even mass messaging them through private channels) is disqualifying from a CoC enforcement perspective.
What do you think?

agree, discord seems better now that I'm looking into it


Populate Tablet.Type together with Target.TabletType in TabletStats.

Without this it's impossible to watch after changes in tablet type (e.g. monitor
transitions RDONLY->BACKUP->RDONLY), because Target is not populated until the
first successful connection and Tablet.Type is not up-to-date after the health
updates start to flow in.

Hum it seems weird to update that information but not the rest of the Tablet record. The Tablet record is supposed to be the one that's passed to 'AddTablet', I'm not sure there is any reason to update it.
Also, this is not thread safe. The Tablet record in this case may have been sent to a Listener earlier, that can be reading that record (see the update method, it ends up sending a copy of the TableStats to the listener, that contains a pointer to the Tablet record).
I think I'd rather document that the Tablet is what was added by the watchers, and not necessarily the latest.

Hm... If we continue this reasoning HealthCheck is not thread-safe as well, because it sends pointer to Tablet and pointer to Target to Listener and Listener can change anything inside them even though HealthCheck reads that data later... But okay, I'll close this PR and deal with this in my code.


Add phone number, social security number, state, http code datatype detection

Implement detection for:

[x] phone number
[x]  social security number
[ ] state
[x] http code
[ ] html

Where the detected formats are country specific, please ensure the objects are labelled as such.  The<PHONE_NUMBER> format is indicative of a +13035552021 phone number, but is specific to NANP.  The WA state code is a US and an AU state code but they are different places.

Hi @lighthouseahoy,
Have you checked https://github.com/daviddrysdale/python-phonenumbers?
What functionality from this library would like to see in Optimus?


Placeholder plugin limit erroneously counts deleted plugins.

Summary
When 'limits' is set in CMS_PLACEHOLDER_CONF for particular plugin type within a placeholder, plugins are still counted after deletion. This was tested with limits=1 for a TextPlugin. A plugin was added, then deleted and finally adding another plugin was attempted but failed with a validation error: 'This placeholder already has the maximum number (1) of allowed Text plugins.'
Expected behaviour
Deleted plugins should no longer count toward the allowance of plugins that can be added to a placeholder.
Actual behaviour
After deleting a plugin it still counts toward the limit count.
Environment

Python version: 3.5.2
Django version: 1.8.18
django CMS version: 3.4.4

Hello @digiology,
Thanks for reporting this.
I believe the issue is caused by orphaned plugins, can you try running ./manage.py cms check, this will list all the orphaned plugins.
The text plugin is the only one that creates an unbound plugin plugin before saving. I'm curious, does this issue happen every time you delete a text plugin? Can you try clearing the placeholder, adding the text plugin and then deleting it (to reproduce the limits issue)?

Hi @czpython ,
Sorry for not trying these steps and getting back to you. Would it still help if I try this or have you already investigated?

Hi, this has happened to me as well and the command for deleting orphan plugins did nothing but wreck the site. I've restored a backup, but I don't know at which point or why the Text plugin on a page got deleted and I can't add it back because I keep getting the "This placeholder already has the maximum number (1) of allowed Text plugins."
If I remove the 'limits': {'TextPlugin': 1} line from my CMS_PLACEHOLDER_CONF entry then the problem is "fixed" (I can add a limitless number of TextPlugins), but I would really like to be able to limit it to 1.
Alternatively: if I add a default_plugins with the proper plugin_type and values, then the plugin does get automatically added when you empty the placeholders, but there are reasons why I don't want this happening either.
This is seriously draining, for some reason the limit worked just fine until "a while" ago (when I removed the defaults from the settings I guess). And for some reason it's still working for limiting the amount of other plugins (even on the same page) just fine.
I'm using Python 2.7.x, Django 1.11 and Django-CMS 3.4.6


[0.9.3-final] value operator returning inconsistent results

After seeing inconsistent results in some queries, I started to dig into this a bit more, and I'm hoping someone can provide clarity on the 'value' function.
Here's an example query:
SELECT sum(value) from webHits WHERE time > now() - 1h AND value > 100000000 AND server =~ /web.*/ group by time(5m),server fill(null)

The above will return results like the following, which clearly matches the above query:
2015-09-03T23:15:00Z<PHONE_NUMBER>

Now, if I increase the "value >" number from 100000000 to 300000000, the above result no longer returns, even though<PHONE_NUMBER> is clearly greater than 300000000.
Is the value function operating on the underlying points, rather than the returned value of 'sum(value)' in the above query? Is that intended? If so, is there another way to approach this particular query?

value is not a function. value is an identifier, more specifically it is a field key. Field keys can be any string but typically value is used as it is what most graphing tools expect.
The WHERE value > 100000000 clause means only SUM points whose value exceeds 100000000. It has no relation whatsoever to the return value of the SUM function, except as the additional restriction removes points from the valid range for the SUM function.
There is no way to return anything from the SUM function other than the actual sum. You will have to apply the conditional client side if you wish to display something different depending on the result of the SUM aggregation.

The goal of my query is to only show resulting sum values that exceed a threshold that is intuitive.
If I'm understanding your explanation correctly, one needs to understand how often a point is being inserted to properly infer the correct threshold for the value identifier, based on the data set being analyzed -- is that correct?
So if I insert a point into influx every 1 second the value threshold will need to be 1/60th of a similar point inserted every 60 seconds?
Can you offer up an alternative, more intuitive, way to achieve the desired goal? The only alternative I can think of is to build a CQ without the value identifier, and then run another query against the CQ with the value identifier to slice the returned query -- would this work? Can there be another feature that operates on the returned sum(value) for limiting the returned data points that only exceed a specified threshold? Say threshold?

@ecables `value


Create a Floating Action Button component by adding a fixed position icon

If you haven’t already, check out our contributing guidelines for onboarding!

Using the resource provided add a fixed position touchable icon component called FAB.js in /components
The FAB must always be the same distance from the RIGHT EDGE of the sidebar area regardless of screen width
We are not yet using this element so it should remain hidden for now but easily testable (use a prop isHidden for now).
It must use a Pressable and take an onPress callback
It must also accept a prop of isActive and display an alternate view when this prop is true
When moving from the not active to active state the SVG can be rotated via a transform and the fill color set to gray
No external dependencies are allowed
Here is the exact location where it should sit at both wide screen views and small screen widths and the two states of the FAB shown

Asset:
plus.svg.zip
Upwork:
https://www.upwork.com/jobs/~0134b44cccd50f0085

Hello,
Proposal for the solution:

Import the plus.svg file on assets/images;
Create a class-based component src/components/Expenseicons/PlusIcon.js. The component is class-based so I can use it in Animated.createAnimatedComponent(PlusIcon)  to animate the fill color. I will need to call // eslint-disable-next-line react/prefer-stateless-function to create it;
Create a new style in src/styles/styles.js called sidebarFab;
Create a new component src/components/FAB.js, that takes onPress, isActive, and isHidden props. It renders an Animated.createAnimatedComponent(Pressable) with the Aniamted.createAnimatedComponent(PlusIcon) inside.
Create the isFabActive and isFabHidden state props and declare the toggleFab() on HomePage.js and pass it down ( -> SidebarView -> FAB ).

I am defining the state and the function in the HomePage because everything else seems to be handled this way.

Hello,
Proposal for the solution:

Import the plus.svg file on assets/images;
Create a class-based component src/components/Expenseicons/PlusIcon.js. The component is class-based so I can use it in Animated.createAnimatedComponent(PlusIcon)  to animate the fill color. I will need to call // eslint-disable-next-line react/prefer-stateless-function to create it;
Create a new style in src/styles/styles.js called sidebarFab;
Create a new component src/components/FAB.js, that takes onPress, isActive, and isHidden props. It renders an Animated.createAnimatedComponent(Pressable) with the Aniamted.createAnimatedComponent(PlusIcon) inside.
Create the isFabActive and isFabHidden state props and declare the toggleFab() on HomePage.js and pass it down ( -> SidebarView -> FAB ).

I am defining the state and the function in the HomePage because everything else seems to be handled this way.

Create a class-based component src/components/Expenseicons/PlusIcon.js. The component is class-based so I can use it in Animated.createAnimatedComponent(PlusIcon) to animate the fill color

Is it possible to use a ref with Animated.Value instead for this? I'm not sure if one would be better than the other. But curious whether it would be possible? I think that might be my first approach and then run two animated values in parallel for the fill color and transform.

Create a new style in src/styles/styles.js called sidebarFab;

This style be named floatingActionButton since we may use it in other places besides the sidebar

Create a new component src/components/FAB.js, that takes onPress, isActive, and isHidden props. It renders an Animated.createAnimatedComponent(Pressable) with the Aniamted.createAnimatedComponent(PlusIcon) inside.

Does the Pressable need to be animated? Maybe only the orientation of the SVG and fill color should be animated? But let me know if I'm missing something.

I am defining the state and the function in the HomePage because everything else seems to be handled this way.

👍  yep the FAB should just change based on props only and not have state of it's own.
Everything else looks good.

Create a class-based component src/components/Expenseicons/PlusIcon.js. The component is class-based so I can use it in Animated.createAnimatedComponent(PlusIcon) to animate the fill color

Is it possible to use a ref with Animated.Value instead for this? I'm not sure if one would be better than the other. But curious whether it would be possible? I think that might be my first approach and then run two animated values in parallel for the fill color and transform.

Create a new style in src/styles/styles.js called sidebarFab;

This style be named floatingActionButton since we may use it in other places besides the sidebar

Create a new component src/components/FAB.js, that takes onPress, isActive, and isHidden props. It renders an Animated.createAnimatedComponent(Pressable) with the Aniamted.createAnimatedComponent(PlusIcon) inside.

Does the Pressable need to be animated? Maybe only the orientation of the SVG and fill color should be animated? But let me know if I'm missing something.

I am defining the state and the function in the HomePage because everything else seems to be handled this way.

👍  yep the FAB should just change based on props only and not have state of it's own.
Everything else looks good.

Is it possible to use a ref with Animated.Value instead for this? I'm not sure if one would be better than the other. But curious whether it would be possible? I think that might be my first approach and then run two animated values in parallel for the fill color and transform.

The thing is, only animatable components can be animated. I am still using ref with Animated.Value to control the animation. Because the Icon component needs to be animatable, I need to call the function I mentioned earlier (createAnimatedComponent), and it doesn't work with functional components (throws an error).
I am going to show some code below to exemplify the solution.

This style be named floatingActionButton since we may use it in other places besides the sidebar

Ok. It might make sense to separate the positioning styling (position, bottom and right) somewhere else then, what do you think?

Does the Pressable need to be animated? Maybe only the orientation of the SVG and fill color should be animated? But let me know if I'm missing something.

We have three properties to animate: backgroundColor, rotate, and (the icon's) fill. I am really missing a way to animate them all with just one animatable component. So I was thinking of animating the backgroundColor and rotate in the Pressable, and the fill in the Icon (so the Icon component is cleaner).
FAB.js
...
import {PlusIcon} from './Expensicons';

const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
const AnimatedIcon = Animated.createAnimatedComponent(PlusIcon);

const FAB = ({onPress, isActive, isHidden}) => {
    const animatedValue = useRef(new Animated.Value(0)).current;
    const rotate = animatedValue.interpolate({
        inputRange: [0, 1],
        outputRange: ['0deg', '225deg'],
    });
    const backgroundColor = animatedValue.interpolate({
        inputRange: [0, 1],
        outputRange: [colors.green, colors.gray3],
    });
    const fill = animatedValue.interpolate({
        inputRange: [0, 1],
        outputRange: [colors.white, colors.black],
    });

    return (
        <AnimatedPressable
            onPress={toggleFab}
            style={[styles.floatingActionButton, {transform: [{rotate}], backgroundColor, , display: isHidden ? 'none' : 'flex'}]}
        >
            <AnimatedIcon fill={fill} />
        </AnimatedPressable>
    );
};
...

PlusIcon.js
...
// eslint-disable-next-line react/prefer-stateless-function
class PlusIcon extends React.Component {
    render() {
        return (
            <PlusSvg
                height={this.props.height}
                width={this.props.width}
                fill={this.props.fill}
            />
        );
    }
}
...

Is it possible to use a ref with Animated.Value instead for this? I'm not sure if one would be better than the other. But curious whether it would be possible? I think that might be my first approach and then run two animated values in parallel for the fill color and transform.

The thing is, only animatable components can be animated. I am still using ref with Animated.Value to control the animation. Because the Icon component needs to be animatable, I need to call the function I mentioned earlier (createAnimatedComponent), and it doesn't work with functional components (throws an error).
I am going to show some code below to exemplify the solution.

This style be named floatingActionButton since we may use it in other places besides the sidebar

Ok. It might make sense to separate the positioning styling (position, bottom and right) somewhere else then, what do you think?

Does the Pressable need to be animated? Maybe only the orientation of the SVG and fill color should be animated? But let me know if I'm missing something.

We have three properties to animate: backgroundColor, rotate, and (the icon's) fill. I am really missing a way to animate them all with just one animatable component. So I was thinking of animating the backgroundColor and rotate in the Pressable, and the fill in the Icon (so the Icon component is cleaner).
FAB.js
...
import {PlusIcon} from './Expensicons';

const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
const AnimatedIcon = Animated.createAnimatedComponent(PlusIcon);

const FAB = ({onPress, isActive, isHidden}) => {
    const animatedValue = useRef(new Animated.Value(0)).current;
    const rotate = animatedValue.interpolate({
        inputRange: [0, 1],
        outputRange: ['0deg', '225deg'],
    });
    const backgroundColor = animatedValue.interpolate({
        inputRange: [0, 1],
        outputRange: [colors.green, colors.gray3],
    });
    const fill = animatedValue.interpolate({
        inputRange: [0, 1],
        outputRange: [colors.white, colors.black],
    });

    return (
        <AnimatedPressable
            onPress={toggleFab}
            style={[styles.floatingActionButton, {transform: [{rotate}], backgroundColor, , display: isHidden ? 'none' : 'flex'}]}
        >
            <AnimatedIcon fill={fill} />
        </AnimatedPressable>
    );
};
...

PlusIcon.js
...
// eslint-disable-next-line react/prefer-stateless-function
class PlusIcon extends React.Component {
    render() {
        return (
            <PlusSvg
                height={this.props.height}
                width={this.props.width}
                fill={this.props.fill}
            />
        );
    }
}
...

The thing is, only animatable components can be animated. I am still using ref with Animated.Value to control the animation. Because the Icon component needs to be animatable, I need to call the function I mentioned earlier (createAnimatedComponent), and it doesn't work with functional components (throws an error).

Ok Cool. Just checking as I did not understand this!

It might make sense to separate the positioning styling (position, bottom and right) somewhere else then, what do you think?

It's OK to hardcode these values for now. We can improve it when we need to in the future.

We have three properties to animate: backgroundColor, rotate, and (the icon's) fill. I am really missing a way to animate them all with just one animatable component.

Ok, looking at the asset it's really just a plus and no circle and what is being asked I now understand what you mean.
Everything looks good to me!
One more note, we are not yet using the React hooks so if you can find another way and use a class component that would work best. Let me know if it's OK?

The thing is, only animatable components can be animated. I am still using ref with Animated.Value to control the animation. Because the Icon component needs to be animatable, I need to call the function I mentioned earlier (createAnimatedComponent), and it doesn't work with functional components (throws an error).

Ok Cool. Just checking as I did not understand this!

It might make sense to separate the positioning styling (position, bottom and right) somewhere else then, what do you think?

It's OK to hardcode these values for now. We can improve it when we need to in the future.

We have three properties to animate: backgroundColor, rotate, and (the icon's) fill. I am really missing a way to animate them all with just one animatable component.

Ok, looking at the asset it's really just a plus and no circle and what is being asked I now understand what you mean.
Everything looks good to me!
One more note, we are not yet using the React hooks so if you can find another way and use a class component that would work best. Let me know if it's OK?

We can chat more in the reviews when you are ready with the PR. Thanks!

We can chat more in the reviews when you are ready with the PR. Thanks!

PR created.
https://github.com/Expensify/Expensify.cash/pull/1233

PR created.
https://github.com/Expensify/Expensify.cash/pull/1233


There's a mistake in the documentation

In the file "docs/source/quickstart.rst", there is a mistake about the grade access. You iterable in a Period object, and this make an error, in other words you forget the ".grades" in the line 60.

Thank you for notifying me!


[Snyk] Upgrade framer-motion from 6.3.10 to 6.3.11

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade framer-motion from 6.3.10 to 6.3.11.

:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.
The recommended version was released 21 days ago, on 2022-06-08.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Codecov Report

Merging #282 (fcfcb8b) into main (040cc32) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #282   +/-   ##
=======================================
  Coverage   83.33%   83.33%
=======================================
  Files          28       28
  Lines         360      360
  Branches       54       54
=======================================
  Hits          300      300
  Misses         55       55
  Partials        5        5

Continue to review full report at Codecov.

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