Red crosses shown instead of product images

We have had several reports from users that they can no longer see product images and that instead they have red crosses. They do see images from products that they scanned previously, but not new ones.
First reported by an user on Sept. 10. Galaxy S6 Edge on Android 7.0.

2 users said the deinstalled and reinstalled the app but that it did not solve the issue.

It might be related to cropping @stephanegigandet

Or it might be related to an incorrect URL in the app. Either way, we should have more in the logs.

I don't have the logs, and it was already quite difficult to get a screenshot, so I don't think I can get the affected users to find and send us the logs.
It's not just one picture, it's all pictures.

@teolemon @stephanegigandet I investigated this issue and found out that we use this image only in case there is an error in Picasso while loading the image via the URL that was saved in the DB when the product was viewed. One possible reason could be that the URL is getting stored properly for this user/phone.
For reference see code
I tried replicating but was not able to reproduce.

We should try to refresh the url stored in the database when this is the case (check from the product JSON whether it's still valid)

I'm not sure whether this is due to an incorrect URL being stored or a genuine error while loading the image via Picasso for this user/phone.
Refreshing the URL stored in the DB can be implemented when the image fails to load but only once we are sure that this is actually the error.
Is the user able to view the image of these products in the products list view (i.e. after searching for a product by name and not scanning particular one).
Also, can we check with the user if he/she is able to view the product's image in the detailed view of the product?

@CharlesNepote is experiencing the issue, and can provide logs.

Closed via #3544


fix potential crash.

Changes proposed in this pull request:

add null check before SSL_CTX_set_ssl_version to avoid null-dereference.

Well, the (almost) only way that pointer could be NULL here is because we're OOM, and we're not recovering from OOM anyway. Maybe crash faster is better? I mean, this doesn't really change anything, also that doesn't really hurt anything to merge.

result of NewSSLCtx is examined against NULL 1 time out of 3

@icy17 , can you please have a look
NULL is handled: https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Mayaqua/Network.c#L15997
NULL is not handled: https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Mayaqua/Network.c#L5726 https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Mayaqua/Network.c#L11729

Thanks for the heads up. The NewSSLCtx function does require return value checking for subsequent use if a check for NULL is added in NewSSLCtx. But I don't know much about SoftEtherVPN, so I really don't know much about what kind of value to return in this case, or what action to take to log the error would be appropriate, so I may not be able to make any more modifications.

@icy17 , I think it depends on your appetite for that :) In theory we can merge your PR as is (even consider that mentioned things should be examined as well)

Hi! Thanks for merging my pull requests!
I noticed these PR addresse potential security issues. I'm wondering if it would be appropriate to apply for CVEs for these bugs? Could you let me know if that's possible and what steps I should take?

Hi! Thanks for merging my pull requests! I noticed these PR addresse potential security issues. I'm wondering if it would be appropriate to apply for CVEs for these bugs? Could you let me know if that's possible and what steps I should take?

CVE usually are open if exploitaion is known.
in theory we can open CVE for every potential issue, but I do not think it worth that.
as for future steps, I planned to implement coccinelle test like that
https://stackoverflow.com/questions/1716086/adding-missing-null-checks-after-malloc-with-coccinelle
what do you think ? it looks like OpenSSL has many functions returning NULL and such a NULL check might be easily omitted

OpenSSL has many functions returning NULL and such a NULL check might be easily omitted

I believe a NULL check is essential. However, there are scenarios where the API may not return a null pointer. It's important to gain a good understanding of the API's behavior, such as by reading the documentation or examining the source code


Parity issue with getContinuationActivity method missing the type property

Version
4.14.0
Describe the bug
When performing the execution of the continueConversationAsync method with the new CloudAdapter it throws an Activity is missing its type error. This is due to a parity issue with DotNet in the GetContinuationActivity method, which is missing the type property.
Additional context
We are updating the FunctionalTests bots to support CloudAdapter and this error happened when we executed the continueConversationAsync in replacement of the continueConversation method in the proactive functionality (link).
Screenshots

promoted to ms


Login with facebook when another account with same email is already created.

Describe the bug
When a user is already created in firebase authentication with email / password, and i login with facebook using this same email address i get an empty Login result. Only the data object is filled with the facebook user. This same behaviour goes well when i login with Google. Then the user can login with user/password and gmail.
Expected behavior
Either the user can login with both email / password and facebook. Or a exception with duplicate email should be returned.
try {
    $firebaseUser = $auth->signInWithFacebookAccessToken($socialiteUser->token);

    if(empty($firebaseUser->firebaseUserId())) {
        return redirect()->route('login')->withErrors([
               'firebase' => __('auth/register.firebase.empty')
        ]);
    }
}
catch(\Exception $e) {
       return redirect()->route('login')->withErrors([
           'firebase' => $e->getMessage()
       ]);
}

Thanks in advance! and thank you for the great sdk
Wouter

Hey @WNeuteboom, and thank you for the detailed description!
In the context of Firebase, these are two different users by different identity providers (IdP): the password provider manages users within Firebase's Auth database and is able to prevent users with the same email address (if enabled in the project settings).
Users coming from Facebook, Google, or one of the other third-party are considered separate users, even if they have the same email address on the other platform - here, uniqueness is ensured by e.g. Facebook (no two Facebook users can have the same email address).
So, in context of the Admin SDK, you can't check "just so" if a user that authenticated via the Facebook IdP (identified by their Facebook ID) already has a corresponding user provided by the Password IdP (identified by their email).
What you can do on the client side is to link both accounts together, for example with the Firebase JS Client SDK: https://firebase.google.com/docs/auth/web/account-linking
With this, you can let a user that's already authenticated with email and password link their Facebook ID with their existing account and vice versa.
It is possible two link two existing accounts together via the Firebase Auth REST API (https://firebase.google.com/docs/reference/rest/auth?hl=en#section-link-with-oauth-credential and https://firebase.google.com/docs/reference/rest/auth?hl=en#section-link-with-email-password), and I can/could implement this in this Admin SDK as well, but I'm afraid this would enable bad players to intransparenten do things on behalf of users that didn't know that their accounts got linked.
For example, a user could authenticate via Facebook with an application, and with the provided token, the backend could create a "shadow login" by linking it to an email/password combination out of control of the user, allowing a login to the user's account with these secondary credentials without the user ever knowing it.
That's why I feel (at the moment) that account linking should remain on the client side. I say "at the moment" because I'm aware that I could have gotten something wrong - if I have, please let me know 🙏
On the other hand (I should perhaps have started with this 😅), if you can show me that this functionality has been implemented in one of the official SDKs, that would show me that Google/Firebase is okay with providing this as a backend/admin functionality and will see to that it will be implemented here as well 💪😊

Thanks for the great explanation. Makes a lot of sense about the security issue. Haven't thought about it that way.
But isn't that the responsibility of the programmer developing the website? I understand that the default setting would be "don't merge".
The reason i thought it was a bug was that it didn't throw any errors. I received a response with the object, but it was empty. What i expected was a "Duplicate Email" error or something like that. But maybe i'm testing something that might not occur, ever.
When i see it in the official sdk i will let you know 😊. Again, great work! Keep it up

You're right, it is the responsibility of the programmer - I'm just afraid of irresponsible developers 😅
I don't have an application with 3rd-party authentication at the moment (or any, for that matter 😂), but I will try to set something up in order to be able to reproduce this. I haven't looked into the code, but I do believe that I just fill the object with what's returned by the Firebase API, so if the object is empty, then the Firebase API returned an empty object - but I haven't touched this part of the SDK in quite some time, so I will look into it in more detail as soon as I can and let you know!


Developer Documents

Added a draft of the documentation for developers

Added a simple contributing page with a link to a bug fix template and issue template
Added checklists for the different modules that could be contributed to
Added a page for the style guide

@nathanielpritchard have you updated this according to @dmaldona's feedback?


Error in SlowRequest , $slowRequest->action become stdClass

Pulse Version
^1.0@beta
Laravel Version
10.10
PHP Version
8.2
Livewire Version
^3.0
Database Driver & Version
MySQL 8
Description
I am not sure it is my issue or global issue.
I go following error
local.ERROR: htmlspecialchars(): Argument #1 ($string) must be of type string, stdClass given {"view":{"view":"/var/www/html/vendor/laravel/pulse/resources/views/livewire/slow-requests.blade.php","data":[]},"userId":3,"exception":"[object] (Spatie\\LaravelIgnition\\Exceptions\\ViewException(code: 0): htmlspecialchars(): Argument #1 ($string) must be of type string, stdClass given at /var/www/html/vendor/laravel/framework/src/Illuminate/Support/helpers.php:124)
finally i found that in slow-requests.blade.php
$slowRequest->action
become stdClass instead of String.
Steps To Reproduce
Just a normal laravel , volt and filament projects.
here is some data i come up with in slow_request.

Can you share the route code (typically in web.php for GET /en/page/{slug}?

This is apparently caused by a bug in the framework that has been fixed in v10.38.1 (see https://github.com/laravel/framework/commit/b0ed9e1a601d8cbf122c815198d86b333a881f11)
Unfortunately, this won't fix the existing entries in your Pulse tables. The simplest solution would be to clear the slow request data once you've updated your Laravel version:
php artisan pulse:clear --type slow_request

Also, great job on debugging where the error came from and sharing that screenshot of your entries table! It was very helpful :slightly_smiling_face:

This is apparently caused by a bug in the framework that has been fixed in v10.38.1 (see laravel/framework@b0ed9e1)
Unfortunately, this won't fix the existing entries in your Pulse tables. The simplest solution would be to clear the slow request data once you've updated your Laravel version:
php artisan pulse:clear --type slow_request

php artisan pulse:clear --type slow_request
ERROR  Command "pulse:clear" is not defined. Did you mean one of these?
is this new function ?
But i am confirm it is fixed after using v10.38.1

Ahh, we renamed this in a recent release. Your version likely has the old name
php artisan pulse:purge --type slow_request


Invalid timings sent by instrumentations (xhr,fetch,resource)

When browser navigation or resource timing apis don't set a certain timing value or report it  as 0 (e.g connectionStart, responseStart,...)  the spans generated by instrumentations like like xhr/fetch/resource reports a value that is lower than fetchStart ( timeOrigin ) , which can result in wrong metrics by backend. Can we avoid reporting this invalid timings by either checking if their value is above 0, or above a certain reference time like fetchStart
Here is a sample payload from xhr with such issues, It is a failed xhr request and the values from domainLookupStart upto responseEnd show a lower value than fetchStart
events: [
{
"attributes": [],
"name": "open",
"timeUnixNano": "1707848692048000000",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "send",
"timeUnixNano": "1707848692048200000",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "fetchStart",
"timeUnixNano": "1707848692048699951",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "domainLookupStart",
"timeUnixNano": "1707848675667199951",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "domainLookupEnd",
"timeUnixNano": "1707848675667199951",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "connectStart",
"timeUnixNano": "1707848675667199951",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "connectEnd",
"timeUnixNano": "1707848675667199951",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "requestStart",
"timeUnixNano": "1707848675667199951",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "responseStart",
"timeUnixNano": "1707848675667199951",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "responseEnd",
"timeUnixNano": "1707848692057099951",
"droppedAttributesCount": 0
},
{
"attributes": [],
"name": "error",
"timeUnixNano": "1707848692058000000",
"droppedAttributesCount": 0
}
]
Here is how the events are added to spans,
https://github.com/open-telemetry/opentelemetry-js/blob/44b0b29dea98217130bc4e68d6c9b6901e75aef7/packages/opentelemetry-sdk-trace-web/src/utils.ts#L60

@martinkuba , @MSNev , @scheler , @t2t2 , can you take a loot at this issue ?

I think we can add logic to check that these values are sane, but some of them have 0 as a valid value.


Derefiner does not respect element attributes in nc meshes

Hi,
I am not sure if this is intended, but in nc meshes with varying attributes (on the elements) in its current state the derefiner may merge elements with different attributes, which may lead to nasty bugs. My current hotfix is to use a custom derefiner which ignores derefinement candidates, if their current depth (in the ncmesh data structure) is the same as some fixed initially chosen one.
I did it this way, because I could not find out how to properly traverse the ncmesh tree to determine whether attributes may get "lost" in the derefinement by checking if all children of the candidate's parent have the same attribute.
To elaborate the use-case, I have a preprocessing step which generates a nc mesh, refining the material interfaces according to measurements or an analytical descriptions to a desired level of detail. Attributes are used to assign different materials to different elements, so I can reuse the RestrictedCoefficient class in my simulation to handle subdomains differetly in my integrators. I guess this is how it is intended to do? Now having a time-dependent simulation with AMR enabled (because on most part of the mesh almost nothing happends for most of the time), using the ThresholdDerefiner leads to over-derefinement at "boring" material interfaces in the beginning of the simulation.
Best regards,
Dennis

Hi Dennis,
I think in the current state, if "you" (or ThresholdDerefiner) asks for a derefinement, mfem obliges without checking anything about consistency of attributes.  So if children have different attributes than the parent, they can be "lost".  Depending on use case, I think this may or may not be what you want.
There's a few different options here I think.  One is to build in an option that checks for inconsistent attributes and inhibits derefinement independently of what is requested.  Another is to make sure the API is convenient for doing the traversal you were trying to do, so you could build this into  your custom derefiner easily.  A third is to provide a different interface for making derefinement decisions that provides the user the sets of coarse and fine elements needed to interrogate whatever they want to, to arrive at a derefinement decision for each possible derefinement.  This is something I was working on previously.
I didn't follow your second paragraph as well.  Why does your ThresholdDerefiner over-derefine?  Is the quantity provided for the thresholding not indicating the material interfaces you'd like to remain refined?

This was never an issue because the assumption was (at least in NCMesh) that a child element always inherits the parent attribute, so the shape of the material domains of the initial coarse mesh does not change. I even contemplated saving some RAM by only storing attributes for the root (coarse) elements in NCMesh.
If you assign attributes differently in the fine mesh then this is a scenario we had not anticipated and we need to think about it a bit...

This can probably be added as an option to the ThresholdDerefiner that is then passed down to Mesh::DerefineByError and eventually down to (Par)Mesh::NonconformingDerefinement. Basically one can skip any derefinements that combine elements with different attributes.

First, thanks for the responses.
@rw-anderson that second paragraph was really ambiguous formulated, sorry. Regarding the over-derefinement I was referring to the built in ThresholdDerefiner https://github.com/mfem/mfem/blob/d9c4909da3766e49e66187ee063b8504e9d5138b/mesh/mesh_operators.hpp#L268
As a hotfix I track some minimal element depth through a grid function and simply reject elements having this depth in derefinemen, i.e.
class RootedThresholdDerefiner : public MeshOperator
{
protected:
    // [...]
    // This is necessary to track the threshold after rebalancing and
    // (de-)refinement.
    L2_FECollection  depth_fec;
    ParFiniteElementSpace depth_fes;
    ParGridFunction element_depth_bound;

    int ApplyImpl(Mesh &mesh) override
    {
        if (mesh.Conforming()) { return NONE; }

        Vector local_err = estimator.GetLocalErrors();

        MFEM_ASSERT(mesh.Nonconforming(), "");
        for(int e=0;e<mesh.GetNE();e++)
        {
             // prevent a possible refinement.
            if( local_err(e) <= threshold &&
                mesh.ncmesh->GetElementDepth(e) == static_cast<int>(element_depth_bound(e)))
            {
                local_err(e) = std::numeric_limits<double>::infinity();
            }
        }

        bool derefs = mesh.DerefineByError(local_err, threshold, 0, op);

        return derefs ? CONTINUE + DEREFINED : NONE;
    }

public:
    RootedThresholdDerefiner(ErrorEstimator &est, ParMesh* root_mesh_)
    {
        if(root_mesh_->Nonconforming())
        {
            for(int e=0; e<root_mesh_->GetNE(); e++)
            {
                element_depth_bound(e) = root_mesh_->ncmesh->GetElementDepth(e);
            }
        }
    // [...]
    }
    // [...]
};

but I think this approach is dangerous and far from optimal for various reasons. Your suggestions sound quite useful and I think if I must choose, the second one seems the best here, because it decouples the code a bit and can help when customizing things. But let me take a closer look on these through the next days.
@jakubcerveny @v-dobrev I think my application is so special, that no one should bother about modifing the attribute management of the ncmesh. That assumption of yours really looks perfectly fine to me. It is more the design of the of the derefinement interface which bites me here, because the interface is a bit too simplistic right now. Which I can also understand, as it looks like this simple interface emerges from the tight coupling beween Mesh and NCMesh.

I think your use case will probably not be uncommon, really.  I think people will probably often try to use the attributes as material id's, will define these directly on finer grids rather than always inherit them from parent elements, and then run into difficulties when they try to coarsen.  One potential new feature that might be useful is to allow the user to define a coarsening function for their integer attributes.  Then, if someone is doing something like modeling multi-material elements, they could do something like set the attribute to a special "mixed" attribute upon coarsening.

Really? I chose the combination of nc-refinement and element ids on the fine level approach mainly for two reasons. First, I failed to automate generating meshes with a reasonable amount of elements using readily available tools, so I fell back to an approach similar to the one in the Shaper miniapp. Second, at the time I started my project I was unable to figure out how to properly couple the physics on the boundaries of two mesh instances (with some matching faces), i.e. implementing some kind of "coupling operator". I still think these "coupling operators" would be a more efficient and clean way to implement multi-material (and thinking further especially multi-physics) models. I agree on your point, that, If the material model just differs in the coefficient on the subdomains like in example 2, then having one mesh with different attributes for the subdomains would also be efficient and clean.
But even without this argument, if I understand Jakub correctly then this is issue only appears when we change attributes on refined levels in a non-conforming refinement (like in the Shaper miniapp), right? I think this the real unusual thing I do. At least from my experience the "common" workflow is to use a meshing tool to construct conforming meshes and use these as a starting point for (AMR) simulations.

I think it is standard process to start with a conforming mesh generated somehow, and then iteratively refine this mesh while re-applying the initial conditions to create an initial mesh, just like the shaper mini-app does.  This is how every AMR code I've worked with has been implemented.  If you are using attributes as material id's, then you are going to run into this scenario.  It could be argued that the element attributes aren't the right data structure for material id's in such a use case.

Now I am curious. I am totally with you on the point, that the initial conforming mesh should be adapted to match the initial conditions properly (via nc-refinements), but is it really common to adapt the material id/attributes at this stage?

I guess I can't speak for "common" in general, only what I'm familiar with, but I don't see how anything else can be very general.  If you want to represent arbitrary material boundary geometries accurately, there is no way around it.  However, typically this is managed with more involved data structures than a simple integer attribute.

@rw-anderson and @termi-official is there an outstanding todo item, or should we close this issue?

I think I'd like to hear from @jakubcerveny first before deciding where to go with this.  At a minimum we should probably add an option to warn when coarsening elements with inconsistent attributes.

I would make sure at least these two simple things work:

Mesh::SetAttribute is propagated into NCMesh elements. This way the user can set material attributes correctly at each refinement level of the mesh and they will be remembered.
When derefining, the coarse element will get its old attribute, as presumably it is still valid. If not, the user can update it after derefinement.

We could also add an option (true/false) to the Derefiner that would control whether it is OK or not to derefine elements with different attributes. This should be a simple check of each row of the derefinement table.

@termi-official could you take a look at #1610 if this is what you need? It doesn't fully work in parallel yet (synchronizing the ghost element attributes in NCMesh will not be trivial), I'd like to hear what you think first.


more with hotSpotDebug

Hi,
the option hotSpotDebug is nice but should be better with a little cross on center of image to "see" where pitch and yaw values are ;-)
Cheers.

That's an interesting idea. I might see about implementing it when I have some time.

This is a great idea!

Added in 0879a61bd48ad9e08852a4cc9dde8722f0e38e20.


'log' is deprecated by the sklearn package in favour of 'log_loss'.

This results in numerous warnings "FutureWarning: The loss 'log' was deprecated in v1.1 and will be removed in version 1.3. Use `loss='log_loss'".
The issue is applicable only to the 'usage_example.py' application.

Fixed in #28


add HTTP::STATUS_CODES, use official IANA Registry

This PR moves HTTP status codes from 'http/common.cr' to 'http/status.cr' and updates them to conform with the official IANA registry of HTTP status codes: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml.
Inspired by https://bugs.ruby-lang.org/issues/12935

Can you benchmark HTTP.default_status_message_for before and after this change? I'm concerned that the hash lookup will be detrimental.

$ crystal bench.cr
Warning: benchmarking without the `--release` flag won't yield useful results
           user     system      total        real
case   0.860000   0.000000   0.860000 (  0.861665)
hash   0.210000   0.000000   0.210000 (  0.211948)

$ crystal bench.cr --release
           user     system      total        real
case   0.000000   0.000000   0.000000 (  0.002637)
hash   0.080000   0.000000   0.080000 (  0.069170)

Yes, it's significantly slower on release.
https://gist.github.com/ujifgc/479e0261bda871923f82efa4715342ab
Should I just extract this method to status.cr and add links and update instructions ?

@ujifgc could you run that benchmark again using Benchmark.ips so we can see the performance difference properly?
We could use macros to create the case from the hash, which would allow applications to access the hash flexibly if needed but keep the performance of the current method.

$ crystal bench.cr
Warning: benchmarking without the `--release` flag won't yield useful results
case   1.16  (859.93ms) (± 0.22%)  4.06× slower
hash   4.72  (211.93ms) (± 0.16%)       fastest

$ crystal bench.cr --release
case 387.13  (  2.58ms) (± 0.27%)       fastest
hash  14.64  (  68.3ms) (± 0.08%) 26.44× slower

I guess as the number of codes increases, the case will only stay significantly faster if we order the common codes (200, 301, 302, 404, 403, 201, 500, 422, ...) to the  top.

I'm new to macros. It this a proper way to generate this method?
  def self.default_status_message_for2(status_code : Int) : String
    {% for code, message in STATUS_CODES %}
    return {{message}} if status_code == {{code}}
    {% end %}
    ""
  end

$ crystal bench.cr
Warning: benchmarking without the `--release` flag won't yield useful results
 case   1.16  ( 859.4ms) (± 0.04%)  4.02× slower
 hash   4.68  (213.56ms) (± 0.31%)       fastest
macro   4.41  ( 226.6ms) (± 0.19%)  1.06× slower

$ crystal bench.cr --release
 case 379.81  (  2.63ms) (± 3.29%)  1.02× slower
 hash  14.64  ( 68.33ms) (± 0.33%) 26.44× slower
macro 386.94  (  2.58ms) (± 0.36%)       fastest

418 I'm a teapot (RFC 2324) got nuked with this, could we have it back? ;)

@jhass that's assuming that llvm doesn't optimise it to a lookup table. I'm not sure if llvm can perform that optimization at all or if it would be up to crystal to do that.
@ujifgc please only put one iteration in the Benchmark.ips block so we can see the speed of one operation not many. ips is a full micro benchmark harness  ich does everything for you.

$ crystal bench.cr
Warning: benchmarking without the `--release` flag won't yield useful results
 case sample   3.33M (300.44ns) (± 2.73%)  1.41× slower
 hash sample   4.55M ( 219.9ns) (± 1.10%)  1.03× slower
macro sample   4.69M (213.32ns) (± 0.25%)       fastest
Warning: benchmarking without the `--release` flag won't yield useful results
 case 100 134.06M (  7.46ns) (± 1.04%)  1.53× slower
 hash 100  39.11M ( 25.57ns) (± 1.06%)  5.24× slower
macro 100  205.0M (  4.88ns) (± 1.80%)       fastest
Warning: benchmarking without the `--release` flag won't yield useful results
 case 200  60.56M ( 16.51ns) (± 1.05%)  2.42× slower
 hash 200   40.2M ( 24.87ns) (± 0.72%)  3.65× slower
macro 200 146.82M (  6.81ns) (± 0.74%)       fastest
Warning: benchmarking without the `--release` flag won't yield useful results
 case 404  10.83M ( 92.35ns) (± 1.21%)  4.02× slower
 hash 404  35.93M ( 27.83ns) (± 6.41%)  1.21× slower
macro 404  43.57M ( 22.95ns) (± 0.24%)       fastest
Warning: benchmarking without the `--release` flag won't yield useful results
 case 500   5.45M (183.38ns) (± 0.50%)  7.37× slower
 hash 500  40.18M ( 24.89ns) (± 1.81%)       fastest
macro 500  24.75M (  40.4ns) (± 0.56%)  1.62× slower

$ crystal bench.cr --release
 case sample  43.51M ( 22.98ns) (± 4.75%)  1.01× slower
 hash sample  26.76M ( 37.37ns) (± 2.97%)  1.63× slower
macro sample  43.74M ( 22.86ns) (± 4.12%)       fastest
 case 100 341.41M (  2.93ns) (± 0.74%)       fastest
 hash 100 146.65M (  6.82ns) (± 2.96%)  2.33× slower
macro 100 341.29M (  2.93ns) (± 0.75%)  1.00× slower
 case 200  341.2M (  2.93ns) (± 0.81%)  1.00× slower
 hash 200 146.93M (  6.81ns) (± 1.01%)  2.32× slower
macro 200 341.21M (  2.93ns) (± 0.92%)       fastest
 case 404 341.27M (  2.93ns) (± 1.16%)  1.00× slower
 hash 404 134.24M (  7.45ns) (± 0.43%)  2.54× slower
macro 404 341.41M (  2.93ns) (± 0.68%)       fastest
 case 500 341.55M (  2.93ns) (± 0.64%)  1.00× slower
 hash 500 146.72M (  6.82ns) (± 2.47%)  2.33× slower
macro 500 341.59M (  2.93ns) (± 0.43%)       fastest

The Benchmark code is like this:
Benchmark.ips do |x|
  keys = HTTP::STATUS_CODES.keys
  x.report("case sample") { HTTP.default_status_message_for(keys.sample) }
  x.report("hash sample") { HTTP.default_status_message_for1(keys.sample) }
  x.report("macro sample") { HTTP.default_status_message_for2(keys.sample) }
end

[100, 200, 404, 500].each do |status|
  Benchmark.ips do |x|
    x.report("case #{status}") { HTTP.default_status_message_for(status) }
    x.report("hash #{status}") { HTTP.default_status_message_for1(status) }
    x.report("macro #{status}") { HTTP.default_status_message_for2(status) }
  end
end

https://gist.github.com/ujifgc/479e0261bda871923f82efa4715342ab

Hash is significantly slower; using a macro increases complexity, and impacts compilation time.
What did this PR intended to achieve?

I'm a little confused at why the macro-generated if statement is so much faster than the case here. As far as I recall, case statements were lowered to chained if statements. Shouldn't they be the same performance?

For now, let's just add/fix the status code list without removing that method, moving it to a constant or using a hash literal. Please open a separate issue discussing how we can better model that, but just using the IANA registry list should be good for now.

I updated this PR so it just updates status codes, adds the comment on the authority info and a spec.

Thanks ❤ !


Can't generate certificate for ingress on '/' with rewrite

Is this a BUG REPORT or FEATURE REQUEST?:
/kind bug
What happened:
Error checking ACME domain validation: error waiting for key to be available for domain "my.domain.com": context deadline exceeded
What you expected to happen:
Successful validation
How to reproduce it (as minimally and precisely as possible):
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myapp-endpoint
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/rewrite-target: /sub/path/rewrite
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  tls:
  - hosts:
    - my.domain.com
    secretName: myapp-endpoint-tls
  rules:
    - host: my.domain.com
      http:
        paths:
        - path: /
          backend:
            serviceName: myapp-endpoint
            servicePort: 3005

apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: myapp-endpoint
  namespace: default
spec:
  secretName: myapp-endpoint-tls
  issuerRef:
    name: letsencrypt
  commonName: my.domain.com
  acme:
    config:
    - http01:
        ingressClass: nginx
      domains:
      - my.domain.com

Anything else we need to know?:
Environment:

Kubernetes version (use kubectl version):
kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"d2835416544f298c919e2ead3be3d0864b52323b", GitTreeState:"clean", BuildDate:"2018-02-07T12:22:21Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9+", GitVersion:"v1.9.6-gke.1", GitCommit:"cb151369f60073317da686a6ce7de36abe2bda8d", GitTreeState:"clean", BuildDate:"2018-04-07T22:06:59Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}
Cloud provider or hardware configuration**:
Google cloud
Install tools:
helm
Others:
cert-manager-0.2.9
nginx-ingress-0.13.2

I have the same issue, if I create an ingress with nginx.ingress.kubernetes.io/rewrite-target cert-manager fails to create the certificate. Ingresses without the nginx.ingress.kubernetes.io/rewrite-target annotation work just fine.

Looks like this is a dupe of #286?

Why are all related errors closed?


Allreduce tests fails in emulator, ranks==8

To reproduce, run tests against an emulator session, with 8 ranks
Some outputs slightly different from expected:
[1,7]<stdout>:1th item is incorrect! (5035.578613 != 5035.579102)
[1,7]<stdout>:2th item is incorrect! (-5832.367676 != -5832.368164)
[1,7]<stdout>:3th item is incorrect! (6492.671387 != 6492.670898)
[1,7]<stdout>:6th item is incorrect! (7501.883789 != 7501.884766)
[1,7]<stdout>:7th item is incorrect! (6614.014648 != 6614.013672)
[1,7]<stdout>:13th item is incorrect! (-3544.027832 != -3544.028320)
[1,7]<stdout>:16th item is incorrect! (7886.101074 != 7886.100586)

This is a mismatch caused by floating point arithmetic and is inevitable as some of our reduction algorithms have dynamic run-time ordering of the sums, and this is by design, for performance reasons.
The comparison in the test was relaxed to approximate floating point, to avoid it failing unless the mismatch is large.


Makefile: ensure a Docker multi-platform builder exists before building images

Today I've encountered an issue when building v0.10.0: on my machine I didn't have a multi-platform builder selected. In this PR I propose to create a specific builder for the rollout-operator (with the platforms we need) and then use it. This fixed my issue.

I am not sure that creating per-project builder is a way to go. Builders are deamons running on your machine, and if they are unused, they just consume resources. Perhaps it would be better to check if default builder supports required platforms, and if not, suggest commands to set up one?

I am not sure that creating per-project builder is a way to go. Builders are deamons running on your machine, and if they are unused, they just consume resources. Perhaps it would be better to check if default builder supports required platforms, and if not, suggest commands to set up one?

Ok

Closing for now. Don't have bandwidth to follow up on this.


[modify] link to layout

Coverage remained the same at 82.446% when pulling 2db1f275ed4f2bee115aab0147469afe9ce11f3e on pr-link_to_layout into eafe042167e24e566d43d45c3fcbfca05e623dd1 on master.


plot_topomap produces spurious output in jupyter

Description of the problem
The following code:
fig = plt.figure(figsize=(10,2))
axes = fig.subplots(ncols=len(bdf.columns))
for ax, band in zip(axes, bdf.columns):
    x = mne.viz.plot_topomap(data=bdf[band], pos=info, axes=ax)
    # print(type(x))
    bot,top = hg.band_range(band)
    ax.set_title(f"{band}\n({bot}--{top} Hz)")

produces 5 spurious "outputs" in Jupyter (one for each band):

Steps to reproduce
fig = plt.figure(figsize=(4,2))
df = pd.DataFrame({"delta":[0.1, 0.2, 0.4], "gamma":[0.3, 0.6, 0.2]},
                  index=["C4","P4","O1"])
info = mne.create_info(ch_names=list(df.index), sfreq=500, ch_types="eeg")
info.set_montage("standard_1020")
axes = fig.subplots(ncols=len(df.columns))
for ax, band in zip(axes, df.columns):
    x = mne.viz.plot_topomap(data=df[band], pos=info, axes=ax)
    ax.set_title(band)

Expected results
no output
Actual results
2 "lines" (1 image, 1 text)

Additional information
Platform:         Linux-6.0.12-76060006-generic-x86_64-with-glibc2.35
Python:           3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0]
Executable:       /usr/bin/python3
CPU:              x86_64: 8 cores
Memory:           15.3 GB

mne:              1.3.0
numpy:            1.24.2 {OpenBLAS 0.3.21 with 8 threads}
scipy:            1.10.1
matplotlib:       3.7.0 {backend=module://matplotlib_inline.backend_inline}

sklearn:          1.2.1
numba:            Not found
nibabel:          Not found
nilearn:          Not found
dipy:             Not found
openmeeg:         Not found
cupy:             Not found
pandas:           1.5.3
pyvista:          Not found
pyvistaqt:        Not found
ipyvtklink:       Not found
vtk:              Not found
qtpy:             2.3.0 {PyQt5=5.15.3}
ipympl:           Not found
pyqtgraph:        Not found
pooch:            v1.6.0

mne_bids:         Not found
mne_nirs:         Not found
mne_features:     Not found
mne_qt_browser:   Not found
mne_connectivity: 0.5.0
mne_icalabel:     Not found

Work around is to pass show=False to mne.viz.plot_topomap - this way only one figure is shown instead of 5.

@sam-s thanks for investigating and finding a solution to the problem! I actually think this is the correct/intended behavior at the MNE end, so I'd consider the "workaround" more of a bugfix in your use of the MNE viz function, more or less. Our viz functions all (I think?) default to show=True so if you want it not to show at the end -- like you do in this loop -- you have to pass show=False when calling the function. Make sense?
I'll close since I don't think there is anything to change at the MNE end for this.

I disagree. MNE places unwanted output (text and image) into the notebook, even with show=False.
IMO, this is a bug.

Still I get the spurious output, just less of it.

This is what I see when adding show=False:

Is it not the same for you? To me this looks correct

... or at least, not an MNE-specific bug/behavior:

@sam-s there is a detailed discussion of root of this problem on the matplotlib forum: https://discourse.matplotlib.org/t/custom-plot-function-in-jupyter-notebooks/23185
TL;DR: the notebook behavior is not something we can fix/control from within MNE-Python.
I will concede that it's odd / unexpected for a parameter show=False to be required to get only one (complete) figure to show up in a Jupyter notebook --- ideally show=True would show one complete figure, and show=False wouldn't show any figures.  The show param was originally conceived for windows that pop open during an interactive console session (not a notebook), and (perhaps unfortunately?) we tried to make it work for notebooks too.  As @larsoner demonstrated, it does work for notebooks, in the sense that it does what is necessary to prevent the figures being shown prematurely with empty axes. I'll open an issue about improving our documentation / possibly renaming the show parameter.


Wierd tests behavior.

As I was reviewing de-ch PR (#896)
All tests passed in local testing environment, not only for file, current language but also script/test.
All passed without an error.
Branch is updated to main, local environment is up-to-date with hassil 1.0.2., script/setup without any issue.
Tests pass again in local env. But, when run CI test on PR, test will fail?

As there I cannot reproduce this error, because another commit was pushed to branch. I am closing issue.


I having a problem with the wallet. I using the latest wallet. I was working fine. Since yesterday I am noticing this issue.  After launching the wallet I am not  able to view the wallet in the desktop.  However, I checked the task manager that showed the process is running. I rebooted that machine multiple times. Please advice if there is any solution.

I having a problem with the wallet. I using the latest wallet. I was working fine. Since yesterday I am noticing this issue.  After launching the wallet I am not able to view the wallet in the desktop.  However, I checked the task manager that showed the process is running. I rebooted that machine multiple times. Please advice if there is any solution.
Running on win10 pro

Originally posted by @nasah3da1 in https://github.com/reddcoin-project/reddcoin/issues/138#issuecomment-686560237

Duplicate of #168


Support computed columns for the DataGrid

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
Would like to be able to add a column to a datagrid whose value is computed from the actual row value. Currently to achieve this, one would either have to:

.map the rows of the datagrid in the binding editor of the rows prop
.map the rows of the result of a code-based query before it is returned

However this is a common use case which is being worked around using code. We should provide a low-code way of achieving the same. Here we propose a way to define computed columns. Where in the column definition you can supply an expression that is evaluated in the context of the row. Under the hood it should use valueGetter
Benchmark:

retool

Examples 🌈
No response
Motivation 🔦
No response

Duplicate of: https://github.com/mui/mui-toolpad/issues/137


Support jwtToken in options

plugins: [
{
resolve: gatsby-source-strapi,
options: {
apiURL: http://localhost:1337,
queryLimit: 1000, // Defaults to 100
collectionTypes: [article, user],
singleTypes: [home-page, contact],
jwtToken: "xxx" // <- update
},
},
];

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

PR #261


Add support for PM5

Hello,
PM5 will be released on 1st march 2023. It would be good if developers can update and test their PM5 plugins with BedrockEconomy.
Please update BedrockEconomy for PM5.

1 june

Any updates? @cooldogedev

Available to download from Poggit's dev builds


conda-index logs "converting database" for empty subdirs

Checklist

[X] I added a descriptive title
[X] I searched open reports and couldn't find a duplicate

What happened?
conda-index automatically converts old-format cache to sqlite cache.db.
However, if the old cache was empty and the subdir is empty, it will continue logging the attempt each time. Probably cache.db was not created, since there was nothing to add?
Create an empty cache.db in this circumstance to silence the logger.
Conda Info
No response
Conda Config
No response
Conda list
No response
Additional Context
No response

Can't reproduce the issue.


TRON like procedural vector UI components

Is your feature request related to a problem? Please describe.
Currently UI components does not look really attractive to end users. Most people will, unfortunately, assess the application by its look. After getting into Kivy internals I can more and more understand reasons behind current design.
Describe the solution you'd like
When components are rendered directly with OpenGL it may be worth turning into a procedural vector UI generation. This would scale perfectly no matter what display size / resolution/ dpi resulting in high quality TRON-like-UI (kind of Sci-Fi movies). Also such components could provide high-level access and functions like these known from FLTK, Qt, GTK, etc.
Describe alternatives you've considered
I got the idea to use some minimalistic but good looking library (LVGL) to implement UI components before I got into an idea of native procedural components library.
Additional context

Is there any sort of UI components library already available built on top of Kivy primitives like Calendar / Agenda?
What could be performance impact of such nice looking UI components? What are dangers?

That would be trivial if Kivy supported vector graphics like SVG.. does it?

Kivy has support for SVG as a canvas instruction, though it's not perfect, it's good enough for many things.
But kivy itself uses vector like functions to draw, so if you don't want to use textures, but only instructions, you are entirely free to do so, with or without SVG.

Thank you @tshirtman :-) Which one of these would be faster? SVG or Vector Python Instructions? :-)
I really start to like Kivy :-) :-)

You may try kivyMD - material design library built on top of  kivy, bu tit is slower than kivy in performance. It includes calendar as well. You may also use kivycalendar which you may find primitive but it works just fine.

Thank you @drahba :-) Yesterday I also heard about kivyMD on the mailing list.. so I will give it a try :-) Do you know the downsides and performance impact of the kivyMD?  I guess Kivy even with MD would be faster, more versatile, and most of all possible to maintain :-)

Allright, so the switch to KivyMD is trivial and gives me all I need, Thank You! :-)
Still, I think that SVG instead PNG (or as option) as basic graphics primitives in pure Kivy would result in far better graphics quality and first-contact perception :-)
Except for components quality independent of display size and dpi it should have smaller footprints and it can be animated + scripted :-)


New style reshape, expand_dims, broadcast_to and sum

This PR depends on #3096, and is a part of #3147.
This PR improves the behavior of #3099 and #3163.

Cloud you review again?

I added a comment on the sum in broadcast_to.backward as follows (pasted since the original comment is already squeezed as "outdated").

I thought the difference in keepdims can be caught by expand_dims/squeeze. For example, I think it's simpler and more efficient to first take sum with keepdims=True and then squeeze the preceeding dimensions of length 1 (corresponding to the keepdims of the first sum in the original code).

OK, I improved it.

Jenkins, test this please.

Jenkins, test this please

LGTM


Fixes server action code example

This fixes the code example in the "Composing Server Actions with Actions" section and updates the imports for all the code examples on the page to ensure consistency with the rest of the documentation.

i still can't believe that did it to prod 😭😭😭😭


Update README.md

fixes copy paste error

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @saifelokour
Thank you for catching this! Could you please sign the CLA so we can merge this?

@dfellis should be good to go :)


add base report.ini with no test dependencies

Current report.ini has a test image path. move to tests folder and create a base report.ini

Also test paths outside of project for .ini files.

Closed by #12


SVG Line chart not rendered properly

I am trying to export the charts generated using highcharts with the latest canvg_context2d  included with  jspdf-master. I replaced the svg generated with highcharts with the given example https://gist.github.com/DharanBro/94d7407a5f43d6f8d04381f90d8a08b3
and the output i got is below

Can you post an image of the expected output?

I have updated the issue description with the expected output.

Thanks @DharanBro.  If you can now post a self contained example, I will isolate the issue and have a look.

The gist contained in the sample has the example.

Here is your current output.  Notice there are 2 paths for the lines.  One has a stroke width of 2 and one has a stroke with of 22.

Now I remove the second path, and voila.

The problem is the source SVG is inserting a UI instruction that canvg is trying to draw. It has a transparency of .0001.  jsPDF uses pdf 1.3 and that has no transparency support.  So jsPDF can draw it, or ignore it.  And most use-cases prefer the former.
an you configure highcharts to omit user interface instructions?  I know you can do this with Charts.js.  I would like to try this before we start putting in special case code.  If so, we would add a transparency threshold and ignore if under a certain amount.
So @DharanBro, if you cannot get your library to omit the instruction, we will add a hotfix in to ignore transparencies < .01.

I have tried several configuration options from http://api.highcharts.com/highcharts/chart and i couldn't achieve this. But for goodness they are adding a class highcharts-tracker to that specific path. So for now I am gonna remove this while exporting to pdf. May be I should try all the possible configuration options and revert.

I would hack highcharts and add a config option to exclude generating this.  Then submit a PR to that project.  I think that is the cleanest way.
For example, setting events=null in Charts.js will prevent this kind of svg from getting generated.
events	Array[String]	["mousemove", "mouseout", "click", "touchstart", "touchmove", "touchend"]	Events that the chart should listen to for tooltips and hovering


Error:* Cannot read property 'cycleNumber' of undefined

@prattsj commented on Fri Jun 24 2016
Following a /cycle init attempt in echo-chat:

@jeffreywescott: confused -- this issue has been addressed? Or did you mean to rename it and focus on something specific to game-cli?

Nvm. Meant fixed in game-cli...understand why the original issue was moved.

Yeah -- it's an error that is actually in game-cli. echo-chat doesn't do anything with these commands other than call game-cli (and in some cases) slide-out a flex panel. But, actually, echo-chat doesn't do anything at all, it's the specific rocketchat-lg-XXX packages.
Don't worry about getting it right, I'll just move them later. :-)

I refuse to not worry about getting it right! :)

There's only 13 repositories, what's your PROBLEM, anyway? ;-)

*grumble grumble*

Issue moved to LearnersGuild/game #228 via ZenHub


Bread quest missing quest requirements

The bread quest is missing all items for the tasks.

Fixed this in latest update. tested that item with less weight will work.


How much should users be able to edit models/simulations/visualiations after they are published?

Allowed

Modify description, authors, references, etc.

Not allowed

Delete

On 11/26/2019, we decided to disable all editing once a model is published.
Any edit requests must be submitted via email.


PotreeConverter depends on VS2015 redistributable

It shouldn't require installing a dependancy.
One solution might be to use the /MT flag to statically link the multi threaded runtimes with the exe. This also requires to compile the boost library with the same flags

./b2 toolset=msvc-14.0 address-model=64 link=static runtime-link=static threading=multi stage --with-system --with-thread --with-filesystem --with-program_options --with-regex

Solution above didn't work after all but bundling "msvcp140.dll" and "vcruntime140.dll" works, for windows 10 at least.


add ops: ge, le, maxmium, minmium, softmax

Wait: ge and le should be greater/less than or equal to. We are using greater/less here. I merged prematurely @xiaowuhu


Update Favicon

The favicon does not appear in the tab when you get a 404 or maintenance or other thing.

Will close when pushed to prod


Removed "object" as a valid value for settings type

closes https://github.com/TryGhost/Ghost/issues/10318

Storing JSON object in settings has caused multiple bugs in the past and was considered an antipattern
This is a last bit in the long process of getting rid of "object" settings in the database. At this point there should be no settings with this type. Yey!
Also left a note for future improvements in table structure

@daniellockyer @tpatel @rishabhgrg the PR is more of a formality as it changes the schema validation. Also, good to note for everyone we are now all done with the pesky "objects" in the settings table :laughing:

Whooooohooooo


Possible Time-&-Token-Saving Search & Replace Idea...

Issue
Hi there,
I love Aider (with Sonnet - OpenAI was always such a moody grouch), and thought I'd see if this floats your boat:
Aider uses a lot of tokens on search and replace.  And if/when it gets it wrong then you can just watch the token count (and the $ count!) go up and up, and it takes a fair amount of time.
I was thinking of this as a potential alternative to the current S&R:  1st line of text in block, last line of text in block, and a checksum.
I was thinking that the checksum could be the character count, or the sum of the ascii character codes (!!) or something (the world could be your oyster there I guess), but the problem we all know is that the AI isn't great as an LLM at counting.  The checksum only really needs to be there if there is more than one section of code that it could refer to (hopefully anyways), but in those cases, and with the LLM being bad at numbers, then there could be a background API call that essentially asks it 'is this the code you're looking for, or this one?'.  Being able to programmatically 'copy/paste' that in a call, and get a yes/no answer should be far faster than the LLM writing out big chunks of code, sometimes multiple times before it gets it right. Ingested tokens are also a lot cheaper than output.
I expect that you've already tried or thought about something similar, and the current S&R is the most bullet-proof, but perhaps there's a flag I could tick to select fast S&R or slow S&R, and deal with the consequences.
FWIW I did try to get Aider to help me do an mvp of that in the source-code, but while we could make the flag work (/fast), we couldn't figure out how the S&R integrated into the whole.  I'd be happy to have a play around and see what works if only I knew that....FWIW
Anyway, it's not much, but hopefully it's something
Love 'n' lard
The Captain
Version and model info
No response

Thanks for trying aider and filing this issue.
I've tried things like this and unfortunately they don't work well with most models.

Thanks so much for the reply - I thought you might have already gone there a million times, but it was an itch I had to scratch, so I appreciate it.


Converts broken sphinx process to docs

The existing sphinx process isn't documented, and also is broken. The
configuration was also invoking sbt to create variables never used. This
converts the doc process to docs, which buys us time to switch to
asciidoc.
See #518

:+1:


3.0 small changes

Point added at the end of a sentence, to unify.
fix typo: "IDs should be an array if primary key values!" => if -> of

Thanks!


Incorrect blade mentioned

We should update the following line from 'App registrations' to 'Enterprise Applications' for accuracy.

On the App registrations page for the organization, select an app to open the Overview page for the app.

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

ID: 467ee93c-4df9-24b9-021b-a48aafdf3bc5
Version Independent ID: 5aba9f59-9d9d-1bfb-821c-22cabe0d04a4
Content: Delegate application management administrator permissions - Azure AD
Content Source: articles/active-directory/roles/delegate-app-roles.md
Service: active-directory
Sub-service: roles
GitHub Login: @rolyon
Microsoft Alias: rolyon

@sanana30
Thanks for your feedback! We will investigate and update as appropriate.

Thanks, @sanana30, I just made a pull request to fix this and will get it merged today. https://github.com/MicrosoftDocs/azure-docs-pr/pull/166103


The commits_count arg for changelog_from_git_commits cannot be used on the command line

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Issue Description
Complete output when running fastlane, including the stack trace and command used
$ fastlane run changelog_from_git_commits commits_count:10
[09:44:54]: ----------------------------------------
[09:44:54]: --- Step: changelog_from_git_commits ---
[09:44:54]: ----------------------------------------
[09:44:54]: Error setting value '10' for option 'commits_count'
[09:44:54]: You passed invalid parameters to 'changelog_from_git_commits'.
[09:44:54]: Check out the error below and available options by running `fastlane action changelog_from_git_commits`

[!] :commits_count must be an integer

Environment
fastlane version (run fastlane -v): 1.91.0
Do you use bundler to execute fastlane (i.e. bundle exec fastlane)? No
Do you use a Ruby environment manager (e.g. chruby, rbenv, rvm)? No

That's definitely a bug, thanks for letting us know. We'll fix it, please add the action to your Fastfile in the mean-time 👍

The fix has been merged (https://github.com/fastlane/fastlane/pull/4949) and it will go out in the next release of fastlane! 🚀


Transformer.sol Implementation

Description
Changing the dna of a tokenId based on rules set by the game developer

/cib


Feature Request : 2 step verification

please add 2 step verification on admin panel
please add ip block

Admin login with an additional email code verification is already in my todo but for now remains out of the scope (if you haven't already, you can check https://github.com/orgs/pocketbase/projects/2). Passkey/WebAuthn may also be implemented in the future as part of https://github.com/pocketbase/pocketbase/issues/406 but remains a low priority.
For IP whitelist/blacklist for now you can setup PocketBase behind a reverse proxy like nginx (for example https://pocketbase.io/docs/going-to-production/#using-reverse-proxy).


Reregistering on missing marathon-task tag during sync

When doing sync and coming across a service without marathon-task tag we used to skip that service and leave it in the registry. This change causes the service to get deregistered, as sync's subsequent registering phase should reregister such service properly.
The service will be unavailable for a couple of seconds in this process – before its new healthchecks become passing. If that's a problem, it's advised to add marathon-task tag to all registered services before starting updated marathon-consul, e.g. using migration script from #106.

LGTM

Coverage increased (+0.02%) to 84.224% when pulling 05becad4dc31c52c3fdc49af2e853067e8e4e421 on reregister_on_missing_marathon_task_tag_during_sync into 6e0685a1121f0ff2eddc2e075359de7091907b27 on develop.


searching for template models for aromatic amino acid biosynthesis

I am searching for template models for "aromatic amino acid biosynthetic process"
but I don't find any models which seems strange if all of some species annotations are imported?

Moving to Noctua for more visibility.


could not find function "cCG.calcLL" on scc

Running celda() on scc throws the error "could not find function c*.calcLL" depending on the celda model being run.

I think this might be an environment issue since @ykoga07 and I can't reproduce it.
Can you try putting the following in your ~/.bashrc and then reinstalling celda via install_github(), without setting the library path?
export R_LIBS_USER='~/Rlib:/restricted/projectnb/cbmhive/R_packages/R-%V'


Design and implement cancellation api for C++

Add to ServerContext:

NotifyOnCancellation(std::function) for sync api
WaitForCancellation(CQ*, void*) for async api; must be called at most once before requesting the call

Ping to @yang-g once we've got a design ready for implementation

subsumed by context propogation #2618


Copying to Redshift fails if one of the primary key columns includes a hyphen

Describe the bug
Copying to Redshift (awswrangler.redshift.copy) fails if one of the primary key columns (primary_keys) in the table has a hyphen in its name. The CREATE TABLE statement will then fail with the following error message:

ProgrammingError: {'S': 'ERROR', 'C': '42601', 'M': 'syntax error at or near "-"', 'P': '1026', 'F': '/home/ec2-user/padb/src/pg/src/backend/parser/parser_scan.l', 'L': '732', 'R': 'yyerror'}

This is because when creating the SQL Query for this, the column names are not escaped in the PRIMARY KEY () part.
Since this is an easy fix, I'll also open a PR for this myself today.
How to Reproduce
Create a pandas data frame where one of the columns is e.g. my-column-name and then use this column in the primary_keys parameter of the awswrangler.redshift.copy method.
Expected behavior
No error and table is written.
Your project
No response
Screenshots
No response
OS
Linux
Python version
3.9
AWS SDK for pandas version
2.17.0
Additional context
No response

Thanks for raising this, I believe there is a suggestion to add a unit test in the PR. Happy to merge afterwards


Remove everything related with a page object form cache

I'm working on load optimized website which includes shop functionality including stock management. In this context I update on checkout stocks and this naturally has an impact on the page but also on the parent which serves as a product index.
In the page class we dispose of the $page->cachePageContent() function which allows to update the content part and meta data but this is not enough to force a refill of the cache when the page is requested again.
What I can do, this works, is to use the static function clearCache inside of the Cache class but this wipes out all cached pages. Hints? Am I missing something?

Update: Using clearCache with cache-only, like I did, works with APCu as caching service but not with Memcached and probably not with redis. With memcached only the default clearCache or with all achieves that the page refreshes.

More background: cache-only works only for file cache. APCu was not active due to be volatile with cli option on for cache in the configuration. This means, a partial cache delete only works with expected results when cache uses file mode, at least that's the result of my tests. Probably I don't have enough insight into caching mechanisms but as this uses doctrine as an abstraction one would expect that at least the exposed functionality of clearing the cache works for the options 'all', 'cache-only', 'tmp-only', etc. the same and that's not the case.

And what works with apcu is a two-liner:
$user_config = USER_DIR . 'config/system.yaml';
touch($user_config);

No direct calls of clear cache. With cache_method set to none and by calling this two liner in code when touching header or other stuff of a page, I obtain a correct page refresh. Compared to clearCache('all') it's fast. For me good enough.

I close this. Nevertheless: would be great if somebody explained to me if there exist approaches which allow a finer granularity. But from what I understand a great deal of pages and routes information is cached as a massive object...

Yes, Grav is set to clear any cache based on the timestamp of config/system.yaml. This is because of with APCu (and Memcached etc) Grav currently uses separate cache in CLI/site/admin, though clearing the cache from any of those locations do not affect caching in any other locations. I don't know why it is done in that way as it doesn't make any sense to me to do that -- that said, you do want to separately cache twig and admin related stuff...
I am currently working towards better caching for Grav 2.0, but it is still under development and some of the concepts haven't been implemented, either. But we have tested the new way in few sites up to thousand pages and it greatly improves performance as it allows much more granual caching and has better change detection mechanism, too.

@mahagr Thx for the feedback. Took me several hours investigating the whole stuff. There are some bits of the related problems exposed in old issues but I think a good intermediate solution would be to add the two liner as an option to the clearCache function allowing to simply touch the timestamp and to execute the touch based on the selected / effective caching driver. And to document this, while 2.0 is not out.

To put it clear: the big advantage, if the configuration is ok, there's no need to delete and recreate files on disk this way. The profile for "touch-only" can bypass all disk operations but provokes a memcached and apcu to refresh.

Even better, if a user has cache_method set to "none" and with an additional option this could be triggered automatically on save of a page object which removes the need to clear the cache manually.

@mahagr, @rhukster Reopen if you feel that this is worth thinking about. The "none" setting for the detection of changes is great for spead, but it demands additional steps and obliges not to forget to clear the cache manually. With an automated "touch-only" method, to be activated by a configuration setting, this in conjunction with memcached or apcu makes life a lot easier.

@rhukster can decide what to do with this issue. :)

Thanks for this @leotiger, I'll review the PR when I get a mo...  Bit swamped the next couple of days.


Flask integration Scrubbing Sensitive Data override parameters to AnnotatedValue object by reference

How do you use Sentry?
Sentry Saas (sentry.io)
Version
1.22.2
Steps to Reproduce

Setup with docker-compose as following

docker-compose.yaml

version: '3.6'

services:
  web:
    image: a901002666/sentry-example
    command: flask run --host <IP_ADDRESS> --port 8000 --reload
    env_file:
      - .env
    ports:
      - 8000:8000

.env

SENTRY_DSN=${YOUR_DSN}

Run docker-compose up
POST request to localhost:8000/

curl --location --request POST 'http://localhost:8000/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "password": "temp1234"
}'

The image is a simple flask application has code.

app.py

import os
import sentry_sdk
import sentry_sdk.integrations.flask

from flask import Flask, request, current_app

sentry_sdk.init(
    traces_sample_rate=1.0,
    integrations=[
        sentry_sdk.integrations.flask.FlaskIntegration(),
    ],
)

app = Flask(__name__)

@app.route("/", methods={'POST'})
def hello_world():
    print('before', request.get_json())
    current_app.logger.error('debug example')
    print('after', request.get_json())
    return "
Hello, World!
"

Expected Result
Look at console has 2 print() call, between the 2 has a logger.error() which will trigger sentry-sdk report.
expect result should be.
flask-web-1  | before {'password': 'temp1234'}
flask-web-1  | [2023-05-14 11:52:14,330] ERROR in app: debug example
flask-web-1  | after {'password': 'temp1234'}

My expectation is that sentry-sdk should do the scrubbing on data send to report, not affecting data still processing by flask.
Actual Result
But you'll actually get
flask-web-1  | before {'password': 'temp1234'}
flask-web-1  | [2023-05-14 11:52:14,330] ERROR in app: debug example
flask-web-1  | after {'password': <sentry_sdk.utils.AnnotatedValue object at 0xffff91d01ff0>}

The request.get_json() result had been mocked by sentry-sdk.

Hey @ninochang !
Thanks for reporting this.
Yes, Sentry replaces sensitive information with AnnotadedValue before sending it over the wire.
But Sentry should also not change the request in the Flask app. This is definitely something we need to fix.

Hi @antonpirker, thanks for reply !
I somehow have code like this and it seems work.
class EventScrubber(sentry_sdk.scrubber.EventScrubber):
    def scrub_dict(self, d):
        if not isinstance(d, dict):
            return

        _d = d.copy()
        return super(_d)

sentry_sdk.init(
    event_scrubber=EventScrubber(),
    integrations=[
        sentry_sdk.integrations.flask.FlaskIntegration(),
    ],
)

But I'm not quiet sure why, the d = d.copy() shouldn't affect the reference of origin d.
Is this consider a acceptable temporary fix solution ?

Hey @ninochang, the workaround looks good to me. It's basically what we'll have to do for the proper fix, just in different places. So if it works, go for it.

Releasing the fix for this today.


[3.50beta9] masked spineContainer doesn't behave the same as normal container

Version

Phaser Version:  3.50 beta9

Description

Applying a geometry mask to a nested spineContainer doesn't work as expected.  Works ok when a normal container is used.
Example Test Code

jsFiddle here
This sets up nested left & right containers, each with a spineboy.  A mask is defined to show the bottom half of both spines.
Change the value in the switch statement to select the test.  The tests have all variations of applying the mask to neither, the outer container, the innerLeft or innerRight containers - for each of normal containers or spineContainers.
So, compare these test pairs (normal container vs spineContainer):
nothing masked:  10 & 20 = same
outer masked:  11 & 21 = same
left masked:  12 & 22 = different
right masked:  13 & 23 = different
eg. left nested container masked, 12 & 22.  Show the difference between normal container and spineContainer.
Test 12, normal container

Test 22, spineContainer

Thanks for the detailed example. I've looked at this and after some fixes am happy it's working as well as it can, with one caveat.
First, the new plugin build will render all of your states correctly now, but only if you change this:
        var containerOuter = this.add.spineContainer();

If you mix and match the container types (Spine Container within Container) then it's impossible for it to know what to do. If you keep the container types consistent (either both Container, or both Spine Container) then the new build of the plugin will work properly with masking.
I'm happy with this outcome and will add it to the docs. I'm not willing to shoe-horn all kinds of plugin conditional code into the Container code just to cope with this. I think it's fair enough to insist you stick to one type of Container if you wish to use masks.

I seem to tangle a lot with masking and containers, it's a tricky issue I know.  I'll try the changes


Project: Aware is a sidecar to help you triage when you need a break

Project name
mental healt aware
Description
The problem we're solving
These days is very common to see people struggling with depression and mental health. The WHO (World Health Organization) said we need to transform mental health, we need to be more aware of our current mental state and be willing to take a break.
The solution?
Create a WebAPI to access the user's calendar and manage the coming events and reschedule if needed so he/she can take a small or long break.
Features

Ask the user how is feeling right now.
Make a quick 20min meeting in the user calendar, so he/she can take a break.
Block the calendar with an all-day appointment when the user says is not feeling well.

Repo URL
https://github.com/felipeschneider88/mental-health-aware
Team members
felipeschneider88

Awesome! Could you also submit the companion Office add-in? It would be awesome to see it in action end to end 😊

Hey @felipeschneider88, would you mind recording a short video walkthrough of your hack? Any format will work. It's not required for the hackathon but it would help us showcase your work both internally at Microsoft and publicly in the community. 😊

Hello @waldekmastykarz , I will send the video tomorrow. I'm facing problems with the Office add-in to consume the web API so I will share the idea on the video. I'm not sure if I will fix it before the deadline and I prefer to share what I have

Could you please share any more information about what's not working with the add-in? Perhaps we could help you fix the issue.

Yes, Today the app is built with 2 projects. One is the web API that interact with the Microsoft graph, it has the business logic on it.
The second is an Office add-in project that uses the SSO option to get the logged user. I was able to get information about the logged user in Excel. I was also able to get info from an URL that doesn't need auth
const element = document.querySelector('#product-name');
fetch('https://testapi.jasonwatmore.com/products/1)
    .then(response => response.json())
    .then(data => element.innerHTML = data.name);

But when I tried to get a token from the SSO to call the web API It fails
This is the code I'm using on the Excel Add-in:
async function getCalendar() {
  let userTokenEncoded = await OfficeRuntime.auth.getAccessToken({
    allowSignInPrompt: true,
    allowConsentPrompt: true,
    forMSGraphAccess: true,
  });
  const element = document.getElementById("item-subject");
  let path = 'https://localhost:7068/calendar'
  $.ajax({
		url: path,
		method: "GET",
		headers: {
			"Authorization" : "Bearer " + userTokenEncoded
		},
		success: function(response) {
			element.innerHTML = response.json();
		}
	});
}

Do I understand it correctly that your API is rejecting your token? Have you tried looking into the token at https://jwt.ms to see to which audience it's issued and if that audience is valid with your API?

I have uploaded the presentation video now, in a couple of hours I will be submitting the demo video too

Introduction video

Demo video


Unused Import

Description of Issue
Subprocess is never used.
Reproduction Steps

Search for uses grep -in subprocess main.py
Receive response

4:import subprocess

Bug Location
https://github.com/Yot360/mc-server-python/blob/4305a70ab8335f86ae24bb44ca154f86f472ae19/main.py#L4
Suggested Solutions

Remove

I actually added it for next update (make the script work better with windows). But I can remove it for this version and re-add it later.

I actually added it for next update (make the script work better with windows). But I can remove it for this version and re-add it later.

I've also implemented this here https://github.com/Yot360/mc-server-python/pull/7

I actually added it for next update (make the script work better with windows). But I can remove it for this version and re-add it later.

Works for me.

I actually added it for next update (make the script work better with windows). But I can remove it for this version and re-add it later.

Works for me.

What doesn't work is the sh script, since windows uses bat script.
But I removed the import.


Overall Website UI Changes and Fixes

Made some changes in the Navbar , added smooth transitions and effects, fixed the footer and enhanced overall look of the website.

Navbar
Fixed the spacing and width and added background blur. Made it sticky so its easy for user to navigate.

Before:
https://user-images.githubusercontent.com/112506922/222925968-6f99e1f4-45ab-45f7-82b5-2ab4b188c118.mp4
After:
https://user-images.githubusercontent.com/112506922/222926058-4be962b7-2a8f-4c60-b5d7-777f2b976024.mp4

Cards Hoover
Added smooth hover effect in cards.

https://user-images.githubusercontent.com/112506922/222926134-43051591-daa2-4a45-86ce-9de35eed3ed0.mp4

Footer
Fixed the footer look.

Before:

After:

Scroll fixed
Fixed the quick scroll by adding a smooth scroll behaviour

Before:
https://user-images.githubusercontent.com/112506922/222926462-d4562c61-a0a7-4307-a985-4795f411ce2a.mp4
After:
https://user-images.githubusercontent.com/112506922/222926466-b5d7548a-6a1e-48c3-b79c-e1ca9f160dc9.mp4

Looks good to me, thank you for making this page more user friendly!

thanks for reviewing and merging.

@birm I had raised a pr before @ayush24k regarding issue #17. Please have a look into it. He replicated the same thing regarding cards after I had done it. Thanks.


Modify test log4j2.xml to hint how to debug calcite rules

A small PR that adds a commented section indicating how to modify log4j2.xml to log calcite rules being applied. The logs are disabled by default, but are stored here so we don't need to google again how to enable it each time we need it.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 0.00%. Comparing base (59551e4) to head (81f6e51).
Report is 1484 commits behind head on master.

:exclamation:  There is a different number of reports uploaded between BASE (59551e4) and HEAD (81f6e51). Click for more details.
HEAD has 48 uploads less than BASE

Flag
BASE (59551e4)
HEAD (81f6e51)

integration
7
2

integration2
3
2

temurin
12
2

java-21
7
2

skip-bytebuffers-true
3
1

skip-bytebuffers-false
7
1

unittests
5
0

unittests1
2
0

java-11
5
0

unittests2
3
0

integration1
2
0

custom-integration1
2
0

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #14680       +/-   ##
=============================================
- Coverage     61.75%    0.00%   -61.76%
=============================================
  Files          2436        3     -2433
  Lines        133233        6   -133227
  Branches      20636        0    -20636
=============================================
- Hits          82274        0    -82274
+ Misses        44911        6    -44905
+ Partials       6048        0     -6048

Flag
Coverage Δ

custom-integration1
?

integration
0.00% <ø> (-0.01%)
:arrow_down:

integration1
?

integration2
0.00% <ø> (ø)

java-11
?

java-21
0.00% <ø> (-61.63%)
:arrow_down:

skip-bytebuffers-false
0.00% <ø> (-61.75%)
:arrow_down:

skip-bytebuffers-true
0.00% <ø> (-27.73%)
:arrow_down:

temurin
0.00% <ø> (-61.76%)
:arrow_down:

unittests
?

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Syn-Ack packets intermittently not received inside wsl distro

Windows Version
Microsoft Windows [Version 10.0.26100.2033]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[x] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
Kali Linux  Release: 2024.3
Other Software

Nmap version 7.94SVN
Masscan version 1.3.2
libpcap version 1.10.4 (with TPACKET_V3)

Repro Steps
I'm facing a weird behavior while scanning for open ports on both local network or remote hosts.
Test have been made with both Nmap and Masscan (latest versions)
TCP connect scan correctly works showing the open ports while Syn Scan(s) doesn't give consistent results.
Debugging the issue looks like that the WSL distro doesn't receive (randomly) the reply (syn-ack) packets.
Step to reproduce the behavior:

Install Kali linux wsl from Microsoft store
Install nmap / masscan
Configure WSL in mirrored mode (as follow)

[wsl2]
networkingMode=mirrored
dnsTunneling=true

For debug > disabled Hyper-v Firewall

On the (kali) linux wsl2 vm:
ifconfig
eth4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        inet6 fe80::a4ec:b33:c4fc:e9fe  prefixlen 64  scopeid 0x20<link>
        ether 58:11:22:d8:20:bc  txqueuelen 1000  (Ethernet)
        RX packets 51  bytes 3136 (3.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 138  bytes 7760 (7.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 28  bytes 2576 (2.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28  bytes 2576 (2.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

loopback0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:15:5d:c7:22:a8  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Update the system

apt update && apt upgrade)

Install required software

apt install nmap masscan libpcap-dev

Run the scan

sudo nmap -v -Pn -n -v -dd -p443 -e eth4 --packet-trace <IP_ADDRESS>
or
sudo masscan -v -p443 <IP_ADDRESS>
Expected Behavior
Nmap or masscan consistently showing port 443 (in this test) open (syn-ack packet received)
sudo nmap -v -Pn -n -v -dd -p443 -e eth4 --packet-trace <IP_ADDRESS>
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 11:03 CEST
Fetchfile found /usr/bin/../share/nmap/nmap-services
Fetchfile found /usr/bin/../share/nmap/nmap-protocols
Fetchfile found /usr/bin/../share/nmap/nmap.xsl
The max # of sockets we are using is: 0
--------------- Timing report ---------------
  hostgroups: min 1, max 100000
  rtt-timeouts: init 1000, min 100, max 10000
  max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
  parallelism: min 0, max 0
  max-retries: 10, host-timeout: 0
  min-rate: 0, max-rate: 0
---------------------------------------------
Initiating ARP Ping Scan at 11:03
Scanning <IP_ADDRESS> [1 port]
Packet capture filter (device eth4): arp and arp[18:4] = 0x581122D8 and arp[22:2] = 0x20BC
SENT (0.0968s) ARP who-has <IP_ADDRESS> tell <IP_ADDRESS>
RCVD (0.0974s) ARP reply <IP_ADDRESS> is-at 64:62:66:22:5D:84
ultrascan_host_probe_update called for machine <IP_ADDRESS> state UNKNOWN -> HOST_UP (trynum 0 time: 653)
Fetchfile found /usr/bin/../share/nmap/nmap-mac-prefixes
Changing ping technique for <IP_ADDRESS> to ARP
Changing global ping host to <IP_ADDRESS>.
Completed ARP Ping Scan at 11:03, 0.10s elapsed (1 total hosts)
Overall sending rates: 10.44 packets / s, 438.28 bytes / s.
Initiating SYN Stealth Scan at 11:03
<IP_ADDRESS> pingprobe type ARP is inappropriate for this scan type; resetting.
Scanning <IP_ADDRESS> [1 port]
Packet capture filter (device eth4): dst host <IP_ADDRESS> and (icmp or icmp6 or ((tcp) and (src host <IP_ADDRESS>)))
SENT (0.2370s) TCP [<IP_ADDRESS>:46108 > <IP_ADDRESS>:443 S seq=3697453865 win=1024 csum=0xD307 <mss 1460>] IP [ttl=57 id=19648 proto=6 csum=0xb151 iplen=44 ]
RCVD (0.2376s) TCP [<IP_ADDRESS>:443 > <IP_ADDRESS>:46108 SA seq=2302336361 win=65228 csum=0x7185 <mss 1460>] IP [ttl=64 id=0 proto=6 csum=0xb711 iplen=44 ]
Discovered open port 443/tcp on <IP_ADDRESS>
Changing ping technique for <IP_ADDRESS> to tcp to port 443; flags: S
Changing global ping host to <IP_ADDRESS>.
Completed SYN Stealth Scan at 11:03, 0.04s elapsed (1 total ports)
Overall sending rates: 22.89 packets / s, 1007.28 bytes / s.
Nmap scan report for <IP_ADDRESS>
Host is up, received arp-response (0.00062s latency).
Scanned at 2024-10-21 11:03:36 CEST for 0s

PORT    STATE SERVICE REASON
443/tcp open  https   syn-ack ttl 64
MAC Address: 64:62:66:22:5D:84 (Protectli)
Final times for host: srtt: 622 rttvar: 3765  to: 100000
Read from /usr/bin/../share/nmap: nmap-mac-prefixes nmap-protocols nmap-services.
Nmap done: 1 IP address (1 host up) scanned in 0.31 seconds
           Raw packets sent: 2 (72B) | Rcvd: 2 (72B)

TCPDUMP
sudo tcpdump -n -vv -tttt -i eth4 host <IP_ADDRESS>
tcpdump: listening on eth4, link-type EN10MB (Ethernet), snapshot length 262144 bytes
2024-10-21 11:58:04.265072 IP (tos 0x0, ttl 45, id 49583, offset 0, flags [none], proto TCP (6), length 44)
    <IP_ADDRESS>.46020 > <IP_ADDRESS>.443: Flags [S], cksum 0x0985 (correct), seq<PHONE_NUMBER>, win 1024, options [mss 1460], length 0
2024-10-21 11:58:04.265880 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    <IP_ADDRESS>.443 > <IP_ADDRESS>.46020: Flags [S.], cksum 0x78de (correct), seq<PHONE_NUMBER>, ack<PHONE_NUMBER>, win 65228, options [mss 1460], length 0
2024-10-21 11:58:04.265905 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    <IP_ADDRESS>.46020 > <IP_ADDRESS>.443: Flags [R], cksum 0x253e (correct), seq<PHONE_NUMBER>, win 0, length 0

Actual Behavior
Trying to scan the target multiple times the result is inconsistent/random, most of the times (~8/10) syn-ack packet aren't received inside the linux vm. Only in rare cases the syn-ack packet reach the vm and so port are listed as "open" instead of filtered.
SYN Stealth Scan (Syn packet scan)
sudo nmap -v -Pn -n -v -dd -p443 -e eth4 --packet-trace <IP_ADDRESS>
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 11:03 CEST
Fetchfile found /usr/bin/../share/nmap/nmap-services
Fetchfile found /usr/bin/../share/nmap/nmap-protocols
Fetchfile found /usr/bin/../share/nmap/nmap.xsl
The max # of sockets we are using is: 0
--------------- Timing report ---------------
  hostgroups: min 1, max 100000
  rtt-timeouts: init 1000, min 100, max 10000
  max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
  parallelism: min 0, max 0
  max-retries: 10, host-timeout: 0
  min-rate: 0, max-rate: 0
---------------------------------------------
Initiating ARP Ping Scan at 11:03
Scanning <IP_ADDRESS> [1 port]
Packet capture filter (device eth4): arp and arp[18:4] = 0x581122D8 and arp[22:2] = 0x20BC
SENT (0.0447s) ARP who-has <IP_ADDRESS> tell <IP_ADDRESS>
RCVD (0.0453s) ARP reply <IP_ADDRESS> is-at 64:62:66:22:5D:84
ultrascan_host_probe_update called for machine <IP_ADDRESS> state UNKNOWN -> HOST_UP (trynum 0 time: 641)
Fetchfile found /usr/bin/../share/nmap/nmap-mac-prefixes
Changing ping technique for <IP_ADDRESS> to ARP
Changing global ping host to <IP_ADDRESS>.
Completed ARP Ping Scan at 11:03, 0.04s elapsed (1 total hosts)
Overall sending rates: 24.15 packets / s, 1014.17 bytes / s.
Initiating SYN Stealth Scan at 11:03
<IP_ADDRESS> pingprobe type ARP is inappropriate for this scan type; resetting.
Scanning <IP_ADDRESS> [1 port]
Packet capture filter (device eth4): dst host <IP_ADDRESS> and (icmp or icmp6 or ((tcp) and (src host <IP_ADDRESS>)))
SENT (0.2131s) TCP [<IP_ADDRESS>:40952 > <IP_ADDRESS>:443 S seq=2790614357 win=1024 csum=0x630D <mss 1460>] IP [ttl=45 id=35308 proto=6 csum=0x8025 iplen=44 ]
SENT (0.3134s) TCP [<IP_ADDRESS>:40954 > <IP_ADDRESS>:443 S seq=2790745431 win=1024 csum=0x6307 <mss 1460>] IP [ttl=46 id=17314 proto=6 csum=0xc56f iplen=44 ]
Completed SYN Stealth Scan at 11:03, 0.28s elapsed (1 total ports)
Overall sending rates: 7.25 packets / s, 318.81 bytes / s.
Nmap scan report for <IP_ADDRESS>
Host is up, received arp-response (0.00060s latency).
Scanned at 2024-10-21 11:03:45 CEST for 1s

PORT    STATE    SERVICE REASON
443/tcp filtered https   no-response
MAC Address: 64:62:66:22:5D:84 (Protectli)
Final times for host: srtt: 601 rttvar: 5000  to: 100000

Read from /usr/bin/../share/nmap: nmap-mac-prefixes nmap-protocols nmap-services.
Nmap done: 1 IP address (1 host up) scanned in 0.49 seconds
           Raw packets sent: 3 (116B) | Rcvd: 1 (28B)

TCPDUMP
sudo tcpdump -n -vv -tttt -i eth4 host <IP_ADDRESS>
tcpdump: listening on eth4, link-type EN10MB (Ethernet), snapshot length 262144 bytes
2024-10-21 12:02:20.504904 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
2024-10-21 12:02:20.505642 ARP, Ethernet (len 6), IPv4 (len 4), Reply <IP_ADDRESS> is-at 64:62:66:22:5d:84, length 46
2024-10-21 12:02:20.631761 IP (tos 0x0, ttl 43, id 46880, offset 0, flags [none], proto TCP (6), length 44)
    <IP_ADDRESS>.42640 > <IP_ADDRESS>.443: Flags [S], cksum 0xab2b (correct), seq<PHONE_NUMBER>, win 1024, options [mss 1460], length 0
2024-10-21 12:02:20.731879 IP (tos 0x0, ttl 47, id 27366, offset 0, flags [none], proto TCP (6), length 44)
    <IP_ADDRESS>.42642 > <IP_ADDRESS>.443: Flags [S], cksum 0xab29 (correct), seq<PHONE_NUMBER>, win 1024, options [mss 1460], length 0

TCP Connect Scan
sudo nmap -v -Pn -n -v -dd -p443 -e eth4 -sT --packet-trace <IP_ADDRESS>
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 11:53 CEST
Fetchfile found /usr/bin/../share/nmap/nmap-services
Fetchfile found /usr/bin/../share/nmap/nmap-protocols
Fetchfile found /usr/bin/../share/nmap/nmap.xsl
The max # of sockets we are using is: 0
--------------- Timing report ---------------
 hostgroups: min 1, max 100000
 rtt-timeouts: init 1000, min 100, max 10000
 max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
 parallelism: min 0, max 0
 max-retries: 10, host-timeout: 0
 min-rate: 0, max-rate: 0
---------------------------------------------
Initiating Connect Scan at 11:53
Scanning <IP_ADDRESS> [1 port]
CONN (0.0122s) TCP localhost > <IP_ADDRESS>:443 => Operation now in progress
CONN (0.0130s) TCP localhost > <IP_ADDRESS>:443 => Connected
Discovered open port 443/tcp on <IP_ADDRESS>
Changing ping technique for <IP_ADDRESS> to connect to port 443
Changing global ping host to <IP_ADDRESS>.
Completed Connect Scan at 11:53, 0.00s elapsed (1 total ports)
Overall sending rates: 1095.29 packets / s.
Nmap scan report for <IP_ADDRESS>
Host is up, received user-set (0.00085s latency).
Scanned at 2024-10-21 11:53:30 CEST for 0s

PORT    STATE SERVICE REASON
443/tcp open  https   syn-ack
Final times for host: srtt: 855 rttvar: 5000  to: 100000

Read from /usr/bin/../share/nmap: nmap-protocols nmap-services.
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds

Diagnostic Logs
sudo tcpdump -n -tttt -i eth4 host <IP_ADDRESS>
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth4, link-type EN10MB (Ethernet), snapshot length 262144 bytes
2024-10-21 11:39:22.201594 ARP, Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
2024-10-21 11:39:22.202075 ARP, Reply <IP_ADDRESS> is-at 64:62:66:22:5d:84, length 46
2024-10-21 11:39:22.336186 IP <IP_ADDRESS>.42565 > <IP_ADDRESS>.443: Flags [S], seq<PHONE_NUMBER>, win 1024, options [mss 1460], length 0
2024-10-21 11:39:22.436263 IP <IP_ADDRESS>.42567 > <IP_ADDRESS>.443: Flags [S], seq<PHONE_NUMBER>, win 1024, options [mss 1460], length 0

/question

WSL logs
WslLogs-2024-10-21_12-07-32.zip


Alingnment in the object page of the list report using cap annotations in business application studio

I am displaying five fields in the object page of the list report, is there any possibility that I can align all the fields using annotations in my capm project?

Might I suggest that since this is a general question and not directly related to content of one of the tutorials or sessions in Devtoberfest, that it would be better to ask this question in the SAP Community Q&A.


replace Simple chinese with traditional chinese

Merged by https://github.com/amsul/pickadate.js/pull/1057


[terra-form-select] On mobile, the Select with combo/multi variant has inconsistent behavior

Bug Report
Description

On mobile: A select with a variant of combo or multi has varied behavior around keyboard focus for text entry depending on browser.
Safari/Edge: expected behavior

Select dropdown arrow for the select (dropdown opens)

Tap on the input (keyboard appears and input gains focus/text entry supported)

Firefox/Chrome: bug
Scenario 1-

Select dropdown arrow for the select (dropdown opens)

Tap on the input (no response)

Select on option in the dropdown (option selected, keyboard appears, and input gains focus/text entry supported)

Scenario 2-

Select the input for the select (dropdown opens, keyboard appears, input gains focus/text entry supported)

Environment

Component Name and Version: Select
Browser Name and Version: mobile Firefox and Chrome
Node/npm Version: [e.g. Node 8/npm 5]
Webpack Version:
Operating System and version (desktop or mobile): iOS 13.4.1

@ Mentions

@StephenEsser

I have a few questions.

Was this issue created based on testing in desktop browsers set to responsive mode? Because the behaviour is consistent across all browsers when you test on an actual mobile device. And the behaviour does not match the expected behaviour and is explained in point 2.

This PR defends the expected behaviour defined in the issue. It was deliberately made to not give focus to input when clicked and show keyboard when dropdown is opened via arrow.

This issue was created based on testing on an iPhone Xr using the indicated browser apps.
I believe the intended behavior should be reviewed by UX.

There are observable differences between variants on mobile browsers. Specifically between the combobox and tag/multi-select variants. The tag/multi-select variants are unable to allow focus on the input field if the dropdown was opened using the arrow. The combobox allows focus to be shifted to the input field when opened using the arrow.
Steps to reproduce the differences and issue:
Combobox:

On a mobile device navigate to https://engineering.cerner.com/terra-ui/components/terra-form-select/form-select/combobox.
Click the arrow of the first example to open the dropdown.
Click the input/placeholder text.
Observe the input receives focus and the keyboard opens

Multi Select:

On a mobile device navigate to https://engineering.cerner.com/terra-ui/components/terra-form-select/form-select/multi-select.
Click the arrow of the first example to open the dropdown.
Click the input/placeholder text.
Observe the input does not receive focus and the keyboard does not open

This PR was intended to correct blur events firing from the Select. Prior to this fix the onBlur event would inconsistently fire even though the Select was not losing focus.
The multi-select being unable to allow filtering if opened via the arrow seems like a bug. It prevents a user from being able to filter the options even though there is an input and is inconsistent with the behavior of the combobox.

The issue is not specific to mobile browsers. Its across all platforms but is unnoticed in desktop browsers until debugged.
The issue in Multiple/Tag variant arises with the introduction of pointer-events:none for input box in this PR.

I have a question for UX. @neilpfeiffer what is the expected behaviour for multi/tag variant terra-form-select when we have a selected option and dropdown closed.
Current behaviour:
When we have selected a option the placeholder is hidden.

Shouldn't it be something like this ? :

cc : @StephenEsser

I believe the original design intentions only display the placeholder when no options are selected.

The input and placeholder will newline content if options are already selected: