magento2 – Can only a simple product be assigned to a configurable product?

I use the Firebear Studio Import / Export extension to import both simple and configurable products. It works great unless the configuration product contains only a simple product as a variation. Then it skips that until it finds another SKU that (I think) has more than one variation. In a demo everything was imported correctly, with the exception of the configuration products, which contain only one variation.

For consistency, I would like it that way, even if there was a variation. Is that simply impossible in M2 or do you have to change your code? Thank you very much!!

Website Design – display multiple parameters using a simple user interface

I have 6 categories, of which 5 categories have 3 parameters and 1 category 1 parameter.

I show these categories against unique IDs as mentioned below.

Suppose there is a unique ID TII-123it will be displayed on the UI like this:

category        parameters         value         unique id 
C1              P1                 X1            TII-123
C1              P2                 X2            TII-123
C1              P3                 X3            TII-123
C2              P1                 X1            TII-123
C2              P2                 X2            TII-123
C3              P3                 X3            TII-123
C4              P1                 X1            TII-123
C5              P1                 X1            TII-123
C5              P2                 X2            TII-123 

Although it seems a bit complicated for the UI user to use the information, how can I better represent the same information in the UI group with a unique ID.

Note: The unique IDs can be more than one. In this case, the existing user interface looks like a mess.

Shader – Simple water reflection goes awry

I have added simple code to my water shader to add reflections from objects above the waterline. The problem is that the reflection is correct only if the camera is at a certain angle to the water.
Here is a video of what goes wrong:

This is the shader code for my reflection, as we can see that there are two possible places where my mistake could be.

Another small problem is the fact that there is a delay of 1 frame when the reflection occurs, but I do not believe that it is possible to fix it.

...

sampler2D envMapSampler = sampler_state
{
    Texture = ;
    AddressU = Mirror;
    AddressV = Mirror;
    MinFilter = Linear;
    MagFilter = Linear;
    MipFilter = Linear;
};

...

// Vertex Shader
////////////////////////////////////////////////////////////////////////////////
PixelInputType WaterVertexShader(VertexInputType input)
{
    PixelInputType output;
    matrix projection;

    // Create the view projection world matrix for reflection.
    projection = mul(gWorldViewProjection, gWorld);
    projection = mul(gWorld, projection);

    // Calculate the position of the vertex against the world, view, and projection matrices.
    output.position = MTACalcScreenPosition(input.position);
    output.worldPosition = MTACalcWorldPosition(input.position);
    output.lightDirection = normalize(gCameraPosition - sunPos);
    output.worldNormal = MTACalcWorldNormal(input.normal);

    // Store the texture coordinates for the pixel shader.
    output.textureCoords = input.textureCoords;

    // Calculate the input position against the projection matrix.
    output.refractionPosition = mul(input.position, projection);


    // compute the eye vector
    float4 vertexPosition = mul(input.position, gWorld);
    float4 eyeVector = vertexPosition - gViewInverse(3);
    output.skyTextureCoordinate = mul(eulRotate(skyRotate), eyeVector.xyz);

    float4 vPos = mul(vertexPosition, gView);   
    float4 pPos = mul(vPos, gProjection);

// I think here is a mistake, this should calculate the reflection positions
    output.reflectionPosition.x = 0.5 * (pPos.w + pPos.x);
    output.reflectionPosition.y = 0.5 * (pPos.w - pPos.y);
    output.reflectionPosition.z = pPos.w;

    output.Depth = output.position.z;
    output.vposition = mul(input.position, gWorldViewProjection);

    return output;
}

...

// Pixel Shader
////////////////////////////////////////////////////////////////////////////////
float4 WaterPixelShader(PixelInputType input) : COLOR0
{
// useless stuff going on....
// only reflection stuff now
    reflectTexCoord = float2(input.reflectionPosition.xy / input.reflectionPosition.z);

//flip the image to get a reflection (maybe here is the error? But how to flip otherwise?)
    reflectTexCoord.y = 1 - reflectTexCoord.y;

    reflectionColor = tex2D(envMapSampler, reflectTexCoord) * reflectionStrength;

.......

Features – How do I change this simple code to send the email notification after paying in WooCommerce?

To change this code to send the e-mail notification after successful payment in WooCommerce?

add_action( 'woocommerce_applied_coupon', 'custom_email_on_applied_coupon', 10, 1 );
function custom_email_on_applied_coupon( $coupon_code ){
    if( $coupon_code == 'mycoupon' ){

        $to = "john@gmail.com";
        $subject = "Coupon $coupon_code has been applied";
        $content = "
        The coupon code $coupon_code has been applied by a customer
        ";

        wp_mail( $to, $subject, $content );
    }
}

A simple guide to cleaning different types of carpets – advertising, offers

When you decorate your home, it is quite possible that you can choose different types of rugs to give your home a change. While there may be a smaller Oriental rug in your bedroom, there may be a Persian rug in your living room. While different carpets undoubtedly add different cultural flavors to your space, you should know that not all carpets can be cleaned the same way. When cleaning, make sure that you clean Oriental carpets and Persian carpets differently and suitable for them. Here are some carpet cleaning tips for different carpet types:

1. Oriental rugs: For these antique beauties, you should use a nylon strainer while vacuuming to preserve their ultimate shine. Professional cleaning is also recommended every 12 months.

Second Sheepskin carpets: For this type of rug, sprinkle talcum powder on the carpet and leave it overnight. The next day, turn off the talcum powder and repeat the process several times.

Third Berber carpets: There is not much to do here with their relatively open mesh. Easy vacuuming every week and a professional cleaning every 9 to 12 months are good.

4th Wool carpets: Wool carpets catch a lot of dust. Vacuuming twice a month and a few hours outdoors is a must. If you feel that vacuuming does not bring back the lost shine, get rid of a professional rug in New Orleans.

Now that you know that different rugs need to be cleaned differently, you should also know that not all professional cleaners can give you the best results. Contact WoolPro Rug Cleaning for maximum cleaning and minimal costs.

WoolPro Rug Cleaning is a family owned carpet cleaning company that provides its services in New Orleans and adjacent areas. They have built a reputation by maintaining long-term relationships with their customers. They offer a high-quality cleaning service and know that every rug is a special piece of art and deserves comprehensive care. They make sure that every rug is treated with love and made as clean as new!

Information about WoolPro carpet cleaning:

WoolPro Rug Cleaning is your complete solution for cleaning your carpets. Whether you have a Persian rug or you want to get yours oriental carpet cleaning,

To learn more, visit https://woolpro-rugcleaning.com/

real analysis – I seem to have a simple problem with job statistics …

I've been struggling with this problem for a while. I'll get right to it. Suppose that $ X $ will be delivered $ N (0,1) $. $ Y $ is distributed normally with positive mean and given variance, and $ Z $ is normally distributed with a positive mean and given variance. All three are independent. I am interested in the following calculation:

$ P (X> min (Y, Z)) $,

What I want to show is that if I increase the variance of either $ Y $ or the $ Z $ variable, this probability increases.

Graphically it seems to work: Imagine your three normal distributions on the same axis. We are interested in when the values ​​of the variables with the fixed distribution are furthest to the right $ N (0,1) $ is bigger than one of the two on the right. By increasing the variances from either of the two to the right, this distribution becomes flatter and "smoother," and hence the likelihood that $ X $ is larger than this variable seems to be increasing.

The following reference (https://www.untruth.org/~josh/math/normal-min.pdf) is a good way to get an overview of these probabilities. However, it is difficult to prove that their variance increases.

Any help would be appreciated.

Deal – NEW Thursday = Another Simple YouTube Task – Receive 60 BMF Points | Proxies-free

Steps:
1. Open and play for at least 10 minutes. (even without sound, if you do not like the video)
2. LIKE and COMMENT on the video ( ONLY QUALITY COMMENTARY, not a single word comment)
3. Answer under your YouTube username

4. Optional> If you like my content, you can click on the SUBSCRIBE button

The reward will be credited to your BMF account within 48-72 hours.

DISCLAIMER: The offer is only available for 72 hours.

PS: More details about my project: BMF SoulWhiteNoise theme
PSS: New Deal every Monday and Thursday.

Code:

Code:

https://youtu.be/TMYkFtmVIIE

Calculus and Analysis – The most bizarre kernel crash of all time. Kernel crash in Integrate under simple different setups. Cause can not be found

V 12 under Windows 10 64 bit. Note: this problem do not show up in V 11.3. Only in V12.

In the last 2 hours I've been trying to figure out why the V12 kernel crashes when invoked Integrate to this problem.

This is part of a much larger test suite. When this simple integration is performed, the kernel crashes and only one beep sounds without messages.

I tried to make the MWE as easy as possible.

First, the basic MWE is displayed, where it crashes, and then simple changes are displayed to fix the crash. In all of these MWE below, I always go out of the fresh kernel.

To run this MWE, the integration problem must be read from a file. The file contains a line. It is a pure text file. I will put a link to the file at the end. Also add a link to a small zip file where the notebook and the input file are in the same folder to make the job easier.

SetDirectory(NotebookDirectory());
ClearAll("Global`*");
test1(nameOfTestFile_) := Module({n, res, lst},(*crash*)
   lst = ReadList(nameOfTestFile);
   lst = DeleteCases(lst, Null);
   Do(
    Print("Before calling Integrate");
    res = AbsoluteTiming(TimeConstrained(Integrate(lst((n, 1)), lst((n, 2))), 60*3))
    ,
    {n, 1, Length@lst}  
    );
   );

Do(
 test1("Timofeev_Problems.m");
 Print("Finished")
 , {myCounter, 1, 1}
 )

 (*crash*)

You only need Timofeev_Problems.m File in same folder as a notebook, the above MWE runs. The file contains only one line

   {Sin(x)/(1 + Sin(x)), x, 2, x + Cos(x)/(1 + Sin(x))}

Here is a link to the above file in case Timofeev_Problems.m

Here is a link to the ZIP file that contains the notebook and the input file in a folder: strage_bug.zip

Now, after the crash, the craziness really starts.

The crash disappears when you do one of these simple things (which makes no sense whatsoever, why they eliminate the crash).

Removing a print statement in test1 eliminates the crash

Remove that Print Before in the test1the crash goes away. Like this

SetDirectory(NotebookDirectory());
ClearAll("Global`*");
test1(nameOfTestFile_) := Module({n, res, lst},(*crash*)
   lst = ReadList(nameOfTestFile);
   lst = DeleteCases(lst, Null);
   Do(
    res = AbsoluteTiming( TimeConstrained(Integrate(lst((n, 1)), lst((n, 2))), 60*3))
    ,
    {n, 1, Length@lst}  
    );
   );

Do(
 test1("Timofeev_Problems.m");
 Print("Finished")
 , {myCounter, 1, 1}
 )

 (*no crash*)

Removing the print statement in the loop that call test1 resolves the crash

SetDirectory(NotebookDirectory());
ClearAll("Global`*");
test1(nameOfTestFile_) := Module({n, res, lst},(*crash*)
   lst = ReadList(nameOfTestFile);
   lst = DeleteCases(lst, Null);
   Do(
    Print("Before calling Integrate");
    res = AbsoluteTiming(TimeConstrained(Integrate(lst((n, 1)), lst((n, 2))), 60*3))
    ,
    {n, 1, Length@lst}  
    );
   );

Do(
 test1("Timofeev_Problems.m")
 , {myCounter, 1, 1}
 )

 (*no crash*)

Maintaining all printing instructions, but removing AbsoluteTiming, eliminates the crash

SetDirectory(NotebookDirectory());
ClearAll("Global`*");
test1(nameOfTestFile_) := Module({n, res, lst},(*crash*)
   lst = ReadList(nameOfTestFile);
   lst = DeleteCases(lst, Null);
   Do(
    Print("Before calling Integrate");
    res = TimeConstrained(Integrate(lst((n, 1)), lst((n, 2))), 60*3)
    ,
    {n, 1, Length@lst}  
    );
   );

Do(
 test1("Timofeev_Problems.m");
 Print("Finished")
 , {myCounter, 1, 1}
 )

 (*no crash*)

Calling test1 out of a loop eliminates the crash

SetDirectory(NotebookDirectory());
ClearAll("Global`*");
test1(nameOfTestFile_) := Module({n, res, lst},(*crash*)
   lst = ReadList(nameOfTestFile);
   lst = DeleteCases(lst, Null);
   Do(
    Print("Before calling Integrate");
    res = 
     AbsoluteTiming(TimeConstrained(Integrate(lst((n, 1)), lst((n, 2))), 60*3))
    ,
    {n, 1, Length@lst}  
    );
   );

test1("Timofeev_Problems.m");
(*no crash, since call is not made from inside a loop !*)

The question is: Why integrate crash up? How can you eliminate it? To find messages from the kernel, what happened, as only one beep is emitted.

Jobs – NEW Monday = Another Simple YouTube Task – Receive 60 BMF Points | Proxies-free

Steps:
1. Open and play for at least 10 minutes. (even without sound, if you do not like the video)
2. LIKE and COMMENT on the video ( ONLY QUALITY COMMENTARY, not a single word comment)
3. Answer under your YouTube username

4. Optional> If you like my content, you can press the SUBSCRIBE button

The reward will be credited to your BMF account within 48-72 hours.

DISCLAIMER: The offer is only available for 72 hours.

PS: More details about my project: BMF SoulWhiteNoise theme
PSS: New Deal every Monday and Thursday.

Code:

Code:

https://youtu.be/MWCRm_QD9UM