问:
Why do I get this when I am not using it - ClassNotFoundException: Didn't find class "androidx.startup.InitializationProvider"?
I got some bug on Firebase Crashlytics relate to androidx.startup.InitializationProvider:

```<code>Fatal Exception: java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.startup.InitializationProvider" on path: DexPathList[[zip file "/data/app/jp.jinjerkintai.user.tablet-P3HekmizHlJ5AWs8XiZX6A==/base.apk"],nativeLibraryDirectories=[/xxxx-P3HekmizHlJ5AWs8XiZX6A==/lib/arm64, /xxxx-P3HekmizHlJ5AWs8XiZX6A==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
       at android.app.ActivityThread.installProvider(ActivityThread.java:7033)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:6573)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6490)
       at android.app.ActivityThread.access$1400(ActivityThread.java:227)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7403)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:502)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980)
</code>```
```<code>Caused by java.lang.ClassNotFoundException: Didn't find class "androidx.startup.InitializationProvider" on path: DexPathList[[zip file "xxx-P3HekmizHlJ5AWs8XiZX6A==/base.apk"],nativeLibraryDirectories=[xxx-P3HekmizHlJ5AWs8XiZX6A==/lib/arm64, xxx-P3HekmizHlJ5AWs8XiZX6A==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
       at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:147)
       at androidx.core.app.CoreComponentFactory.instantiateProvider(CoreComponentFactory.java:67)
       at android.app.ActivityThread.installProvider(ActivityThread.java:7017)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:6573)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6490)
       at android.app.ActivityThread.access$1400(ActivityThread.java:227)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7403)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:502)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980)
</code>```

The thing is, I am not using startup runtime at all.
Here are some other thread of it:

I also firebase bom (30.3.1) with some of its part like: analytics, push messaging, config.
I found the solution here tells us to disable automatic initialization for all your components and dependencies. Seem like it is not a correct solution; why do we have to disable that, right?

So does anyone have a better solution for this issue?

and why it could happen when I am not using it?

Body:
I got some bug on Firebase Crashlytics relate to androidx.startup.InitializationProvider:

Fatal Exception: java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.startup.InitializationProvider" on path: DexPathList[[zip file "/data/app/jp.jinjerkintai.user.tablet-P3HekmizHlJ5AWs8XiZX6A==/base.apk"],nativeLibraryDirectories=[/xxxx-P3HekmizHlJ5AWs8XiZX6A==/lib/arm64, /xxxx-P3HekmizHlJ5AWs8XiZX6A==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
       at android.app.ActivityThread.installProvider(ActivityThread.java:7033)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:6573)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6490)
       at android.app.ActivityThread.access$1400(ActivityThread.java:227)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7403)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:502)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980)

Caused by java.lang.ClassNotFoundException: Didn't find class "androidx.startup.InitializationProvider" on path: DexPathList[[zip file "xxx-P3HekmizHlJ5AWs8XiZX6A==/base.apk"],nativeLibraryDirectories=[xxx-P3HekmizHlJ5AWs8XiZX6A==/lib/arm64, xxx-P3HekmizHlJ5AWs8XiZX6A==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
       at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:147)
       at androidx.core.app.CoreComponentFactory.instantiateProvider(CoreComponentFactory.java:67)
       at android.app.ActivityThread.installProvider(ActivityThread.java:7017)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:6573)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6490)
       at android.app.ActivityThread.access$1400(ActivityThread.java:227)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7403)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:502)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980)

The thing is, I am not using startup runtime at all.
Here are some other thread of it:

I also firebase bom (30.3.1) with some of its part like: analytics, push messaging, config.
I found the solution here tells us to disable automatic initialization for all your components and dependencies. Seem like it is not a correct solution; why do we have to disable that, right?

So does anyone have a better solution for this issue?

and why it could happen when I am not using it?


来源: stackexchange

问:
Display product swatches on Category pages and homepage product card
Does anyone know of a way to add smaller versions of the product color swatches from the specific products pages below the product thumbnail on the category pages? This would allow the customer to know what color options that the product has if they click on the product on the category page. Common on most apparel e-commerce stores.

At the top of my category.js file, I've added:

```<code>import ProductDetails from "./common/product-details";
</code>```

And in onReady(), I've added:

```<code> this.productDetails = new ProductDetails(
          $(".categoryView"), //the class wrapping my card element
          this.context,
          window.BCData.product_attributes
        );
        this.productDetails.setProductVariant();
</code>```

Do you know what else I would need to edit to successfully call product data in card.html? I've been using:

```<code>{{#each product.options}}
{{{dynamicComponent 'components/products/options'}}}
{{/each}}
</code>```

ContentLicense: CC BY-SA 4.0

Body:
Does anyone know of a way to add smaller versions of the product color swatches from the specific products pages below the product thumbnail on the category pages? This would allow the customer to know what color options that the product has if they click on the product on the category page. Common on most apparel e-commerce stores.

At the top of my category.js file, I've added:

import ProductDetails from "./common/product-details";

And in onReady(), I've added:

 this.productDetails = new ProductDetails(
          $(".categoryView"), //the class wrapping my card element
          this.context,
          window.BCData.product_attributes
        );
        this.productDetails.setProductVariant();

Do you know what else I would need to edit to successfully call product data in card.html? I've been using:

{{#each product.options}}
{{{dynamicComponent 'components/products/options'}}}
{{/each}}


问:
Change theme using property name and value
In my java project i want to give multiple colors based on the property values

Below properties into the property file

```<code>theme.name=blue
theme.name=red
theme.name=purple
</code>```

If adding the theme.name=blue then background color is change to blue and also change the logo of application

Created a separate folder for each theme name and taken css property files from there

What is the best way to do this

Body:
In my java project i want to give multiple colors based on the property values

Below properties into the property file

theme.name=blue
theme.name=red
theme.name=purple

If adding the theme.name=blue then background color is change to blue and also change the logo of application

Created a separate folder for each theme name and taken css property files from there

What is the best way to do this


问:
How to free memory if I forgot to stop cluster in R
I forgot "stopCluster" in R. The program has stopped running thus cpu is free and there is no process id, but the memory is used up. How can I free memory in ubuntu?

I use Rscript to run this code. I can not kill this process since there is no id. It's strange for me why there is no automatic memory release


问:
Day 0 DB replication with Kafka CDC
How should the existing GBs or probably TBs of data in a large enterprise be made available for immediate availability in Kafka topics?

While I know that we can use the CDC capabilities of Kafka to build an event log or DB replica, with CDC the Kafka topics will be filled only whenever there is a change in the backend DB.

Will the millions of records in existing database tables be available in Kafka topics as soon as we deploy our application integrated with Kafka CDC connector?

Title: Day 0 DB replication with Kafka CDC


问:
Django project doesn't work on the VPS with a port, gunicorn+ nginx
I have Django project on my VPS. When I check my website in the browser I get an error: 1 connect() failed (111: Connection refused) while connecting to upstream, client: XX.XXX.XXX.XX, server: mysite.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:6112/", host: "mysite.com"

```<code>upstream app_server_wsgiapp {
  server 127.0.0.1:6112 fail_timeout=0;
}

server {
    server_name mysite.com www.mysite.com;
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        autoindex on;
        alias /var/www/www-root/data/www/mysite.com/public_html/static/;
    }
    location /media/ {
        alias /var/www/www-root/data/www/mysite.com/public_html/media/;
    }
    location / {
        include proxy_params;
        proxy_pass http://app_server_wsgiapp;
    }
    charset off;
    disable_symlinks if_not_owner from=$root_path;
    include /etc/nginx/vhosts-includes/*.conf;
    include /etc/nginx/vhosts-resources/mysite.com/*.conf;
    access_log /var/www/httpd-logs/mysite.com.access.log;
    error_log /var/www/httpd-logs/mysite.com.error.log notice;
    set $root_path /var/www/www-root/data/www/mysite.com;
    root $root_path;
    listen XX.XXX.XX.XXX:80;
}
</code>```

/etc/systemd/system/mysite.service

```<code>[Unit]
Description=mysite daemon
Requires=mysite.socket
After=network.target

[Service]
User=www-root
Group=root
WorkingDirectory=/var/www/www-root/data/www/mysite.com/public_html/mysiteproject
ExecStart=/var/www/www-root/data/www/mysite.com/public_html/mysiteenv/bin/gunicorn --bind 0.0.0.0:6112 mysitepr.wsgi:application

[Install]
WantedBy=multi-user.target
</code>```

/etc/systemd/system/mysite.socket

```<code>[Unit]
Description=mysite socket

[Socket]
ListenStream=/run/mysite.sock

[Install]
WantedBy=sockets.target

</code>```

systemctl status mysite

```<code>● mysite.service - mysite daemon
     Loaded: loaded (/etc/systemd/system/mysite.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-12-07 18:54:42 CET; 16min ago
TriggeredBy: ● mysite.socket
   Main PID: 4360 (gunicorn)
      Tasks: 2 (limit: 1843)
     Memory: 45.1M
     CGroup: /system.slice/mysite.service
</code>```

journalctl -u mysite.socket

```<code>Dec 07 18:41:50 systemd[1]: mysite.socket: Failed with result 'service-start-limit-hit'.
Dec 07 18:42:41  systemd[1]: Starting mysite socket.
Dec 07 18:42:41  systemd[1]: Listening on mysite socket.
Dec 07 18:46:59 systemd[1]: mysite.socket: Succeeded.
Dec 07 18:46:59  systemd[1]: Closed mysite socket.
Dec 07 18:46:59  systemd[1]: Stopping mysite socket.
Dec 07 18:46:59  systemd[1]: Listening on mysite socket.
</code>```

I checked it works if I start it in the terminal via Gunicorn

```<code>gunicorn --bind 0.0.0.0:6112 mysitepr.wsgi
</code>```

And if I check it in terminal I get my main html page as should be.

```<code>curl --unix-socket /run/mysite.sock localhost
</code>```

What am I doing wrong?

Body:
I have Django project on my VPS. When I check my website in the browser I get an error: 1 connect() failed (111: Connection refused) while connecting to upstream, client: XX.XXX.XXX.XX, server: mysite.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:6112/", host: "mysite.com"

upstream app_server_wsgiapp {
  server 127.0.0.1:6112 fail_timeout=0;
}

server {
    server_name mysite.com www.mysite.com;
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        autoindex on;
        alias /var/www/www-root/data/www/mysite.com/public_html/static/;
    }
    location /media/ {
        alias /var/www/www-root/data/www/mysite.com/public_html/media/;
    }
    location / {
        include proxy_params;
        proxy_pass http://app_server_wsgiapp;
    }
    charset off;
    disable_symlinks if_not_owner from=$root_path;
    include /etc/nginx/vhosts-includes/*.conf;
    include /etc/nginx/vhosts-resources/mysite.com/*.conf;
    access_log /var/www/httpd-logs/mysite.com.access.log;
    error_log /var/www/httpd-logs/mysite.com.error.log notice;
    set $root_path /var/www/www-root/data/www/mysite.com;
    root $root_path;
    listen XX.XXX.XX.XXX:80;
}

/etc/systemd/system/mysite.service

[Unit]
Description=mysite daemon
Requires=mysite.socket
After=network.target

[Service]
User=www-root
Group=root
WorkingDirectory=/var/www/www-root/data/www/mysite.com/public_html/mysiteproject
ExecStart=/var/www/www-root/data/www/mysite.com/public_html/mysiteenv/bin/gunicorn --bind 0.0.0.0:6112 mysitepr.wsgi:application

[Install]
WantedBy=multi-user.target

/etc/systemd/system/mysite.socket

[Unit]
Description=mysite socket

[Socket]
ListenStream=/run/mysite.sock

[Install]
WantedBy=sockets.target

systemctl status mysite

● mysite.service - mysite daemon
     Loaded: loaded (/etc/systemd/system/mysite.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-12-07 18:54:42 CET; 16min ago
TriggeredBy: ● mysite.socket
   Main PID: 4360 (gunicorn)
      Tasks: 2 (limit: 1843)
     Memory: 45.1M
     CGroup: /system.slice/mysite.service

journalctl -u mysite.socket

Dec 07 18:41:50 systemd[1]: mysite.socket: Failed with result 'service-start-limit-hit'.
Dec 07 18:42:41  systemd[1]: Starting mysite socket.
Dec 07 18:42:41  systemd[1]: Listening on mysite socket.
Dec 07 18:46:59 systemd[1]: mysite.socket: Succeeded.
Dec 07 18:46:59  systemd[1]: Closed mysite socket.
Dec 07 18:46:59  systemd[1]: Stopping mysite socket.
Dec 07 18:46:59  systemd[1]: Listening on mysite socket.

I checked it works if I start it in the terminal via Gunicorn

gunicorn --bind 0.0.0.0:6112 mysitepr.wsgi

And if I check it in terminal I get my main html page as should be.

curl --unix-socket /run/mysite.sock localhost

What am I doing wrong?


问:
To use variables from a python file without running it again and again
I have 3 python files (Parameter.py,main.py and main(1).py).

A huge numpy array is being created in the first .py file. It takes lot of time to make that array.

The other two python files use that array in further computation.

I am using

```<code>from Parameters import *
</code>```

in the main.py and main(1).py.

It runs the Parameter.py again and again.

Is there any way, if I can run Parameter.py only one time and the array which is being created there can be used by other two files all the time?

Body:
I have 3 python files (Parameter.py,main.py and main(1).py).

A huge numpy array is being created in the first .py file. It takes lot of time to make that array.

The other two python files use that array in further computation.

I am using

from Parameters import *

in the main.py and main(1).py.

It runs the Parameter.py again and again.

Is there any way, if I can run Parameter.py only one time and the array which is being created there can be used by other two files all the time?


Title: Nginx: how to autoban IPs sending a stream of bytes

Body:
I encountered this in my NGINX logs:

170.187.155.78 - - [07/Dec/2022:08:59:00 -0500] "GET / HTTP/1.0" 200 617 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:27 -0500] "GET /nmaplowercheck1670421987 HTTP/1.1" 404 162 "-" "\x22Mozilla/5.0"
170.187.155.78 - - [07/Dec/2022:09:06:27 -0500] "GET /evox/about HTTP/1.1" 404 162 "-" "\x22Mozilla/5.0"
170.187.155.78 - - [07/Dec/2022:09:06:35 -0500] "POST /sdk HTTP/1.1" 404 162 "-" "\x22Mozilla/5.0"
170.187.155.78 - - [07/Dec/2022:09:06:42 -0500] "GET / HTTP/1.0" 200 617 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:42 -0500] "GET / HTTP/1.1" 200 617 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:43 -0500] "HEAD / HTTP/1.1" 200 0 "-" "\x22Mozilla/5.0"
170.187.155.78 - - [07/Dec/2022:09:06:43 -0500] "GET /HNAP1 HTTP/1.1" 404 162 "-" "\x22Mozilla/5.0"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xCC\x97\xB8\xC4\x83\x16e<\x90(kxSO1\xC0<\x9D\xC4\x11\x8F\xA7\x8C\x8Dni\xB3y}\x03\x16y 8\xD9~\xD7\xB7\xDB\xC64\xD7\xFBrf\xCF\xF3\xAC\xDEe\x88\xECJ\x82\x98\x0Cg\xFB\xDF\xA3x\xD1D\xAF\xA2\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x95\x18(\x9A\xB9\xFB\xC6\xE7\x12\xB5TT\xA7" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03 L&\x14|\xC45\x1B\x1E\x03\x82v,o\x02\xCF}\xB8\xF4\x17U1\xC0\xD29\x89\xB9\xC4\xD7\xC77U \x1B\xB2)O\x9F\x1E\xF9_\xAE\xE0^\xD9\xFE\x89(\xD0\xBE\xAE\x1B\x98@\xEC\xE1\x04F\x9A\x02\xF3\x9C\x14\xE4\xAC\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03[\xB7\xC0\xC2\xB5\xBEiI1#\xDE\x08\xFF\xA0\xC08\xC2\xC0d\x89\xDCU\xD3\xB0!\xFD&\xCE\xD4N\xEA\x17 *\xD0\x9D? \x9B\xCD\xBAK$\x99\xBE\xB5\xD1w=T\x12~;+\x1F\xBC\x9B\x96KV\xD3\x11\xB7\xCAu\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03v\x14\x13u;\xB6\xBA4\x01\xA6\x9D\x8ACp\xF5K+\x00M\x1F\x9F\x825\x1E\x15\xFA}\xC0\x19kC\xF8 G\x00k\xE9\xA6\xCE\x8C\x90\xA9\xBC(ik\x84\xE5\x06\x99$k\xB7]N\x996\x00\x13\x05\xEB\xAE\xCE5\x5C\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xDC\xF0\x93NK-\x13\x18\xBB\xC5\x9F-\x95\xCA\x00l\xFCmD\x19\xFD\xE9\xE4R\xCA^\x85\x01\x8E\xD8z\xD7 \xBE;\xF6\xE2\x81\xF7=\xA9\xF6$\xA5\xE1\x08u\xDB\xC26\x08\xBF\x5C\xB6*\xC6\x0B\x10{\xC0\xA3\x13\x07\xFCB\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x00\xF8%\x1C\xC4P\xEE\xD1\xEB3\x07\x99l}r\xBF3\xD1\xF0\x13k\xF3&\x88r+\x81Gr\x1A\x00g \xDD\xEC\xB6\xDD\xB6\x85\x5Cb\xAC\xBC\x8F+\xB6S\x8F\x17_\xE8\xED7\xAF\x22\xB9L\xE1\x01J2gt\xEFn\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x0E!\x9B\x90\x91&\x84),\x83\xA1r\xD1\xFDp\xA97\xE6\x22~\x05\x06$\x84|\xE2\xEF^\xF7\x15\xE3L \x89\xD3\xCF\xB4*\xE4|c\xDAXS\xF1\xBEg\xEB\x92\xBB\x0C\x82\xF3\x00\xCDi2\xAF\x17\xEF\xFC\x94o\xE5\x97\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03u\xFEK\xF3\xEE\x7F\x15\xD9\x96+\x81\x87\xE0\xC0^\xDD59=\xB6.\x88\xF9\xA4\xDB8k.\xEB\x03\x1F" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xAF\xDBsk\xFEF\x06\xAAE\x03\xEAa/\x22q\xA7L\xC9\xB1\x06a3.\x87\x8F\x85\xFC\xBC\xBBF\x07\x11 \x93sP>\xF7\x8E\xE0\xF9\xE0\xC5\xD3\xFCL\x97\xE0\x00c\xAC\xADQ\xD5\xA5\x98\x9E\xD0\x18\x19\xDB\xEE0s\x10\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x8F\xD2_\xDC\x95\xEB&\xC4z\xC2Da\x92\xF4CETF\x11\x03\x01\x11mR\xFEZ\xB1\x8C\xF1\xB8\xCE\xCC \x9D|\x03[ >\xA4\xF2\x90\xAB\x85\xDC$\x06m" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xB9\x7FA\x1D\xBFB\xC6\xB5m\xB1\x9Fl\xE3,\xAF\xBC\xB8" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xCA\xB2\x07\x9E\x18\xB2\xC1R\xA66\x96\xFA\xD7M\xA1!\xDC\xE6\x0E\xFFK\xF7\xB1\xCC<w\xCE\xEA\x22\xE6\x1D\x81 j&W\xC5\xAC\xB1F}h\xB0V\xF2\xFC\xA4\xD3\x14aJ/\xD4\xDB\x9F\xA7\xEE\x9B\xDCI)\xBF=\xFCE\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03/\x8D\xE9\xD42&E\x00\x95\xE3\x05\x97\xFC}\xB2\xFA\x95L\xB5\x1D\x08$\xA0y]\xD3\xB9$\xCAJm! \xF9*o\x8D\xFDp\xA8\xD0/F\x84\x1EHELF\xBEh:\x1D\x95eT\x9E\xD8\x9B\x15\x13\x92" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x1F\x85\xF9\xD7\xA2k\x83\xE1\xD0\xB9\x97\xC6\xF1\xBC\xC8\x97\xD9g&\xE4+U\xF9r\xBB\xF4:\xC8\xA8\xC2p) U!c.\xF9M\xF9\xB1\xA5n\xB8\x1D@\xB4Z\xEA\xF5\xBAu=\xFB\xE9\xD1Qf\xC8:\xFB\xA0F\xF6\x88\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:55 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x80\xBC\xF5\x13\xAF\xBD\xC0\x14\x0C\x99&\xF0\xD6\x1Cx\xFDJ\xAF\x99!\xDBfC\xBFq\x0E\x89\xD4ln\x0F\xD0 \xD5\xB1\xD9\xCD\xB4\xA9\x9E\xE4q\xBF\xF5\xF5\x8E\xB9R\xF2\x9F\xC8\x9C\xBE\xB6\x9E\xFE\xF5\xE8\x0F\xA5\xCF\xD1\xA0\xEA\xB0\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x92\x8C\xC5\x19A\xC3H\x8F\xF2yz\xE4,yH\x82R\xE5\x84\xA6\xB2[D\xF9+\xAB\xD8l\x13\x90)v \x14\x8A\xCD\xCE\xDAe\x13\x01R\x13\xD5\xE4\xAF\xA3\x14\x1B%p\x06\xDB\x8E\x15\x14Z\xCF\x81\x94\xD7\xF1\x9Bk(\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x1B\x8F\xE0s\x90\xCB\x171\xF2I\xB3O\xCB\x0F\xC4Z\x1A\xDF!\xCF\xFB]\x9Ai\xF6\x80\x16\xD2\x9CA\xE2\xDD \xD4\xACM\xD0-\x1Ad\x0F\xD5e\xD5\xF6\xBB\x07;\xA4:@\xA8\xCB\x866. F\xEFt\x89?\x84es\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xDA\x04\xD9%\xA7 j\x06\xFC\xFF\xA8k#\xD9n\xF3\x03\x95X\xAFi\x08p\xFA\x1Ff\x15\xFF\xA9\xDB\xB6\xE3 -\xEB\xF4\x91\x9Br\x8C\xD1\xFA`\x17\x0B\xE2\xDE\xF9\x88$Y\x87\xD2b\x5CI\x8CG\x0C\x9C\xD6C\x90\xCD\x08\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03,/^\xCF\xB5\xC7{\xF3@jmp\xE2268\xBBO0\x1E\xE08I\xD5\x09\xF7f\x87{Ksw \x12\x1C\xB9\x1D.\xCA\x91\x89\xB9\x06yo\xB7\x1E52\x8Eo}\xE7+g\x14\xEA\xE3.l2\x220c\x83\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x9Fm%\x87T\x1B\xEF:\x13p\xD9\xFE\xD2z\xD6\xBDC1H+\xB6P\x01\x91XV\xE1\x96q\xC3\xE0' {^\x11QH8\xE8$\xF8\xA7\x91\x90\x03\x95\xED\xF1\xE7\xE3C\xE3\x1E\x18\xE8\xD8\x5C\x22\xE1ok\xE6v\xBA\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xC0('\xC4\xA0\xCD\x0E/\xB8\x86\x8D\xDBL_\x97\xAF\xB7\x0B\x82" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03wr\xE5\x9DE\xEC\xD1X\xAD\xD6B\xA1\xDFa\x9B\xEF$\x07 p\x82\xDC|\xAF>\x90\x92\x0FI\xA6%\xF7 \x80\x86\x88\xD2\x9B\x03\xF6\x8F\x5C\xD0\x22I\x9F\x89\x19\xF1\xC62\xB4z\xBF!F\x96+`\x02\xA7lA\xAF\x99\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xB7Ja\xC8<w\x9DzS\xE8\xE5x\x03;}OJ\xB2|\x89\x9FVc\xA4\xFC}@r\x9B\x82\x84w Sp\xDFZ\x19\xF0\xB1\x19!jH\x9E\xF2\xF4\xF7" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x09XYe\xF7\xEB\xE1\xFDn\xA7\xE5\x01\x02\x17-\xE2\x83#W\x1B0w\xE1!P\x1BYN\x9C\xC1\x0B\xD0 \x0B\xB0S\x80<\xB4r\xD5;\xE7\xEC|\xA4!\xC9\x9C\x17\xC8\x0F\xF8\xFB\x8E\xA1\xCDX\x15\xB6\x96\xD7P\xDB\xD8\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xB5\xD4\x19\xC0\xDCmD\x07\xA7:\x10\x12\x86IS\x98\xF1\xCEWS\x0C\xEB9z\xD6nPXy\x99\xB4\x06 \xE0r!/8\x96\xF16\xF7\xAC\x8D`\xCE4p\x01\x19/\xEA\x07\xEF\xC7\xF9V'\xEB\xAC\xB9\xDD\xB6!G\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03SO9\x82\xF3\x9C\xEB8w%\x8B;\xBB\xDE\xAF\xBF9" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xF9\xF0dTr\x22\x1A\xD3\xEE\xA2\xC1\xE3(\x16'\x02:P\xAB$\xA603Z\xDA\xF88\xD6,\x09\xE8\xE2 \x17\xCE0\xB7\x11\xC2UD\x06\xA99\xD1\x9ET\x81\x04A\xB8\x03\xBD\x1C}\xD6X\x10\xC8\x8C\xEF\x88\xA7\xB8\xFE\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xD8QgV\xA1\x18\xE0e\x8FKk\x14~\xC0\x02:\xDE\xE3\xD2\xC0\xB0\xAE\x1FF\xD6\xDCb\xC7\x9B\xDA\xCF\x06 \x01\xB0\xC9\xDD\xB1\x9D\xAA\x7F'\x13\xAB\x1DG\xC2\xB5qv\x86\xB5=G\x1B\xBD\xE8|&\x07\xD6\xA9\xA7\xC5\x1F\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xEE5iB\xE0\xC9:\xD4\xB9" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03#\x10\xFC}\x12\x8E\x08axS\xBD[\xBA|Vb\xEB\xD8\x13\xF6\x5C^\xEAm\xEFJ\xDD\xC6\xDA\x07\xB2\x85 \xEB\xE6\xB3\x1C\x1E\x0C\x05\x07\xC7\x8A\xBEe\x9D\xA8\xA0\x8E\xBD\xF7\x8B\xF5\x83\xA0\x04!\xB3L\xE9\xE0 9\xEBn\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:56 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\x01\x8D\xCC\x03\x22f\xF7\x85\x97u\x97\xFE\xCFf\xC4\x83\x81\xA7\xD4\x93\xF9\x9B`O\x06\xDA\x96\x09r\xE5\xB6o \xBD\x91z\xEE\x1F\xB4O\x93>\xD8\xA7\xA3\xF4\xBD\x8DRw\x09\xDA0\xDB\xE7N\xE9\x1F\xFE#\xAAE\x1D^:\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:57 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xCF\xB4\xCA\xAF\xEF\xA2(3e\x18\xA05\xBC6\xB0\xAB`\xDB?\xEC\xCB)~$\xCB\xE2S\x0E5G\xE5B h5,BAv<F\xFE\xDE\xFF?\xB4\xD9\xA4" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:06:57 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03Y~\xCA\x0C\xF0o\xF2l\x19\xBE\x03W\x91\xC1\xF3XJ\xED_\xFC\x8Bh\xF5\xDDw\xDF\xE2W\x9C1\xED\x88 \x08\x0B\xC5\xC9\xF4*\xEA\xB0X8\xEBS\xFCH\xD4\x9E \x0B\xA4\xCD\xB2\xE8\x10\xD1\x18B\x99\xB7rV\xC4\xEC\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"

[...]

170.187.155.78 - - [07/Dec/2022:09:06:59 -0500] "\x16\x03\x01\x02\x00\x01\x00\x01\xFC\x03\x03\xF6x\xF7y\xAD\x12\xAE;:.\x11\xC4\xF0s\xFAF\xAB\xEEG\x9C\x18\xD5f\xA2\x18\x17\xC3c\x9D\x19oJ K\xF0\xA1GY\xD3c\x93\x11\x0C\xDE\xCE\x8B;I\xB0\xA9i\xA8\x81\xF0DdR\x02!\xBF\xB9\xFB5\x00;\x00\x9C\x13\x02\x13\x03\x13\x01\x003\x009\x005\x00/\xC0,\xC00\x00\xA3\x00\x9F\xCC\xA9\xCC\xA8\xCC\xAA\xC0\xAF\xC0\xAD\xC0\xA3\xC0\x9F\xC0]\xC0a\xC0W\xC0S\xC0+\xC0/\x00\xA2\x00\x9E\xC0\xAE\xC0\xAC\xC0\xA2\xC0\x9E\xC0\x5C\xC0`\xC0V\xC0R\xC0$\xC0(\x00k\x00j\xC0s\xC0w\x00\xC4\x00\xC3\xC0#\xC0'\x00g\x00@\xC0r\xC0v\x00\xBE\x00\xBD\xC0" 400 166 "-" "-"
170.187.155.78 - - [07/Dec/2022:09:07:00 -0500] "HEAD / HTTP/1.1" 200 0 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a3pre) Gecko/20070330"

Would appreciate any insight to mitigate the damages of such intruder and keep him at bay.


问:
How to split a file after read by VAEX in python
I want to split my .txt file by starting 4 digits and create column in vaex.

I do this by pandas and want to do the same as below by vaex.

```<code>
df= pd.read_csv(r"D:\Personal Projects\Testing_file.txt")

df['First'] = df['address'].str[:4]
df['Second'] = df['address'].str[4:]

new = df[['First', 'Second']]
aaa = new.groupby('First')['Second'].apply(list)
dff = aaa.to_frame()
newDf = dff.transpose()

</code>```

Body:
I want to split my .txt file by starting 4 digits and create column in vaex.

I do this by pandas and want to do the same as below by vaex.

df= pd.read_csv(r"D:\Personal Projects\Testing_file.txt")

df['First'] = df['address'].str[:4]
df['Second'] = df['address'].str[4:]

new = df[['First', 'Second']]
aaa = new.groupby('First')['Second'].apply(list)
dff = aaa.to_frame()
newDf = dff.transpose()


问:
Dataproc: How to implement auto scale based on presto load
I am applying presto optionally to Dataproc.
I want to autoscale based on the load of the presto query, but when I set autoscaling-policies and increase the query load, it does not autoscale

I read the following article
https://stackoverflow.com/questions/56067581/will-dataproc-presto-pick-up-new-nodes-automatically
It says that dataproc will autoscale based on YARN index. However, I believe that presto cannot autoscale because it does not consume YARN memory, is that correct?
how can I make it autoscaleable?


问:
How to compress a large csv "on the fly"?
I recently downloaded a CSV that turned out larger than I anticipated (the size wasn't available until the download finished). The file is >100 GB and my drive only has around 25 GB free at this point.

Since CSV is not very space efficient, I'm wondering if there's a way to 'stream' the data from CSV to a more compressed format? That is, read the CSV by chunks, write the chunks to feather or parquet, delete the written lines from the CSV, and continue until the CSV has been 'emptied.'

A python solution would be ideal.


问:
Adding AntD icons to a D3 graph
I am using Antd icons in my project. In another project, I was able to add font awesome icons using Unicode in the following way

```<code>node.append('text')
    .attr('font-family', 'FontAwesome')
    .attr('font-size', function(d) { return d.size+'em'} )
    .text(function(d) { return '\uf118' });
</code>```

How can I achieve the same using Antd icons?

Title: Adding AntD icons to a D3 graph

Body:
I am using Antd icons in my project. In another project, I was able to add font awesome icons using Unicode in the following way

node.append('text')
    .attr('font-family', 'FontAwesome')
    .attr('font-size', function(d) { return d.size+'em'} )
    .text(function(d) { return '\uf118' });

How can I achieve the same using Antd icons?


问:
React & Material UI v4: How to create a grid of controls
Working on a React web app, and the below UI will be seen on a phone (in the browser). While developing this on a PC, I can manipulate the controls via margins to look like I want, but when I open it on the phone, it is completely out of order (makes sense). What is the best way of achieving this:

I tried playing around with the xs={}, but couldn't get it to look like I need.

This is what I tried, but obviously the margins screw things up:

```<code>        <Grid container spacing={2} justifyContent="center" >
            <Grid container item xs={1} direction="column" style={{marginLeft: '200px'}} >
                <input
                    accept="image/*"
                    type="file"
                    capture="environment"
                    id="select-image-bp"
                    style={{ display: "none" }}
                    onChange={(e) => setSelectedImageBP(e.target.files[0])}
                />
                <label htmlFor="select-image-bp">
                    <Button
                        style={{height: '60px'}}
                        variant="contained"
                        color="primary"
                        size="large"
                        component="span"
                        className={classes.button}
                        startIcon={<PhotoCamera />}
                        >
                        Button 1
                    </Button>
                </label>
                <input
                    accept="image/*"
                    type="file"
                    capture="environment"
                    id="select-image"
                    style={{ display: "none" }}
                    onChange={(e) => setSelectedImageWeight(e.target.files[0])}
                />
                <label htmlFor="select-image">
                    <Button
                        style={{height: '60px', marginTop: '35px', width: '150px'}}
                        variant="contained"
                        color="primary"
                        size="large"
                        component="span"
                        className={classes.button}
                        startIcon={<PhotoCamera />}
                        >
                        Button 2
                    </Button>
                </label>
            </Grid>
            <Grid container item xs={1} direction="column">
                <Typography component="h5" variant="h6" style={{marginLeft: '75px', marginTop: '60px'}}>
                    Or
                </Typography>
            </Grid>
            <Grid container item xs={1} direction="column" >
                <input
                    accept="image/*"
                    type="file"
                    id="select-image-bp-gallery"
                    style={{ display: "none" }}
                    onChange={(e) => setSelectedImageBP(e.target.files[0])}
                />
                <label htmlFor="select-image-bp-gallery">
                    <Button variant="contained" component="span" style={{marginLeft: '20px', marginTop: '10px', width: '65px'}}
                        startIcon={<CloudUploadIcon />}>
                    </Button>
                </label>
                <input
                    accept="image/*"
                    type="file"
                    id="select-image-weight-gallery"
                    style={{ display: "none" }}
                    onChange={(e) => setSelectedImageWeight(e.target.files[0])}
                />
                <label htmlFor="select-image-weight-gallery">
                    <Button variant="contained" component="span" style={{marginLeft: '20px', marginTop: '65px', width: '65px'}}
                        startIcon={<CloudUploadIcon />}>
                    </Button>
                </label>
            </Grid>
            <Grid container item xs={2} direction="column" style={{marginTop: '10px', marginLeft: '70px'}}>
                <Box textAlign="center" style={{marginTop: '-10px', marginLeft: '-50px'}} width={150}
                     border={2} borderColor="primary.main" borderRadius={10} display="flex"
                     alignItems="center"
                     justifyContent="center">
                    <img src={bpImageUrl} height="60px" />
                </Box>
                <Box textAlign="center" style={{marginTop: '30px', marginLeft: '-50px'}} width={150}
                    border={2} borderRadius={10}
                    borderColor="primary.main" display="flex"
                    alignItems="center"
                    justifyContent="center">
                    <img src={weightImageUrl} height="60px" />
                </Box>
            </Grid>
        </Grid>
</code>```

Body:
Working on a React web app, and the below UI will be seen on a phone (in the browser). While developing this on a PC, I can manipulate the controls via margins to look like I want, but when I open it on the phone, it is completely out of order (makes sense). What is the best way of achieving this:

I tried playing around with the xs={}, but couldn't get it to look like I need.

This is what I tried, but obviously the margins screw things up:

        <Grid container spacing={2} justifyContent="center" >
            <Grid container item xs={1} direction="column" style={{marginLeft: '200px'}} >
                <input
                    accept="image/*"
                    type="file"
                    capture="environment"
                    id="select-image-bp"
                    style={{ display: "none" }}
                    onChange={(e) => setSelectedImageBP(e.target.files[0])}
                />

                    <Button
                        style={{height: '60px'}}
                        variant="contained"
                        color="primary"
                        size="large"
                        component="span"
                        className={classes.button}
                        startIcon={<PhotoCamera />}
                        >
                        Button 1
                    </Button>

                <input
                    accept="image/*"
                    type="file"
                    capture="environment"
                    id="select-image"
                    style={{ display: "none" }}
                    onChange={(e) => setSelectedImageWeight(e.target.files[0])}
                />

                    <Button
                        style={{height: '60px', marginTop: '35px', width: '150px'}}
                        variant="contained"
                        color="primary"
                        size="large"
                        component="span"
                        className={classes.button}
                        startIcon={<PhotoCamera />}
                        >
                        Button 2
                    </Button>

            </Grid>
            <Grid container item xs={1} direction="column">
                <Typography component="h5" variant="h6" style={{marginLeft: '75px', marginTop: '60px'}}>
                    Or
                </Typography>
            </Grid>
            <Grid container item xs={1} direction="column" >
                <input
                    accept="image/*"
                    type="file"
                    id="select-image-bp-gallery"
                    style={{ display: "none" }}
                    onChange={(e) => setSelectedImageBP(e.target.files[0])}
                />

                    <Button variant="contained" component="span" style={{marginLeft: '20px', marginTop: '10px', width: '65px'}}
                        startIcon={<CloudUploadIcon />}>
                    </Button>

                <input
                    accept="image/*"
                    type="file"
                    id="select-image-weight-gallery"
                    style={{ display: "none" }}
                    onChange={(e) => setSelectedImageWeight(e.target.files[0])}
                />

                    <Button variant="contained" component="span" style={{marginLeft: '20px', marginTop: '65px', width: '65px'}}
                        startIcon={<CloudUploadIcon />}>
                    </Button>

            </Grid>
            <Grid container item xs={2} direction="column" style={{marginTop: '10px', marginLeft: '70px'}}>
                <Box textAlign="center" style={{marginTop: '-10px', marginLeft: '-50px'}} width={150}
                     border={2} borderColor="primary.main" borderRadius={10} display="flex"
                     alignItems="center"
                     justifyContent="center">

                </Box>
                <Box textAlign="center" style={{marginTop: '30px', marginLeft: '-50px'}} width={150}
                    border={2} borderRadius={10}
                    borderColor="primary.main" display="flex"
                    alignItems="center"
                    justifyContent="center">

                </Box>
            </Grid>
        </Grid>


问:
Spring native query outputting different value from sql console
I have a method like that gets an index from a table in my Spring repository

@Query(value = "SELECT ab.user_idx AS buyer_idx FROM goods g INNER JOIN auction_info ai ON g.idx=ai.goods_idx INNER JOIN goods_auction ga ON ai.idx=ga.auction_info_idx INNER JOIN auction_bid ab ON ab.goods_auction_idx=ga.idx WHERE g.idx=:goodsIdx AND ab.status='007'", nativeQuery = true)
  Long getBuyerIdx(@Param("goodsIdx") Long goodsIdx);
```

The query seems to run as intended and this is the image I get in my terminal

However when I copy and paste this in my SQL console it seems to return a different value

My Spring project is running on the same database as my SQL console(I checked it twice) and I really don't understand what the problem is.

Any sort of feedback would be much appreciated

Body:
I have a method like that gets an index from a table in my Spring repository

@Query(value = "SELECT ab.user_idx AS buyer_idx FROM goods g INNER JOIN auction_info ai ON g.idx=ai.goods_idx INNER JOIN goods_auction ga ON ai.idx=ga.auction_info_idx INNER JOIN auction_bid ab ON ab.goods_auction_idx=ga.idx WHERE g.idx=:goodsIdx AND ab.status='007'", nativeQuery = true)
  Long getBuyerIdx(@Param("goodsIdx") Long goodsIdx);

The query seems to run as intended and this is the image I get in my terminal

However when I copy and paste this in my SQL console it seems to return a different value

My Spring project is running on the same database as my SQL console(I checked it twice) and I really don't understand what the problem is.

Any sort of feedback would be much appreciated


问:
Why would list.remove return false other than the item not being in the collection c#
I noticed the documentation for the return value of List<T>.Remove(T) says:

Returns: true if item is successfully removed; otherwise, false. This method also returns false if item was not found in the List.

To me this implies Remove(T) could fail to remove an item for a reason other than the item not being found in the list. Am I reading into this too much or are there another reasons List<T>.Remove(T) could fail and if so what are they?


问:
Bootstrap styling not applied in angular
I'm new to angular.
I tried to clone someone's project on github.

But when i run the apps, bootstrap components is there but without styling.
everytime i add another bootstrap component, the styling is not applied at all.

my clone app look like this:

while the original look like this:

I don't do anything to files like app.module, angular.json, package.json etc. I just clone and run the app. Can someone explain what happened?


问:
How to output result of set cover algorithm as integers in python instead of 'None'?
I am having problems getting the output of a function to be displayed properly.

As can be seen in this image, what should be in place of the 'None' should be integers. The first, for example should output (1,2).

This issue seems to be with creating subsets from a string.

```<code>my_other_lines = str(other_lines)
print(my_other_lines)
setOfother_lines = set(tuple(i) for i in other_lines)
print(setOfother_lines)
universe = set(range(1, 7))
subsets = [set(setOfother_lines)]
cover = set_cover(universe, subsets, 1)
print(cover)
</code>```

This is the snippet of code that is supposed to output the results of a set_cover function.

For context, here is the set_cover function

```<code>def set_cover(universe, subsets, k):
    # Find family of subsets that covers the universal set
    k_count = 0
    elements = set(e for s in subsets for e in s)
    # Checks what subsets cover the universe
    if elements != universe:
        return None
    # Initializing elements covered
    covered = set()
    cover = []
    # Adds subsets with most uncovered points
    while (covered != elements) and (k_count < k):
        ##print(k_count)
        subset = max(subsets, key=lambda s: len(s - covered))
        cover.append(subset)
        covered |= subset
        k_count = k_count+1
    return cover
</code>```

Body:
I am having problems getting the output of a function to be displayed properly.

As can be seen in this image, what should be in place of the 'None' should be integers. The first, for example should output (1,2).

This issue seems to be with creating subsets from a string.

my_other_lines = str(other_lines)
print(my_other_lines)
setOfother_lines = set(tuple(i) for i in other_lines)
print(setOfother_lines)
universe = set(range(1, 7))
subsets = [set(setOfother_lines)]
cover = set_cover(universe, subsets, 1)
print(cover)

This is the snippet of code that is supposed to output the results of a set_cover function.

For context, here is the set_cover function

def set_cover(universe, subsets, k):
    # Find family of subsets that covers the universal set
    k_count = 0
    elements = set(e for s in subsets for e in s)
    # Checks what subsets cover the universe
    if elements != universe:
        return None
    # Initializing elements covered
    covered = set()
    cover = []
    # Adds subsets with most uncovered points
    while (covered != elements) and (k_count < k):
        ##print(k_count)
        subset = max(subsets, key=lambda s: len(s - covered))
        cover.append(subset)
        covered |= subset
        k_count = k_count+1
    return cover


问:
PyGame display flickers between frames on RPi CM4 only
I have the following code, which is a simplified from a project I'm working on. I thought the issue was the same as Why is the PyGame animation is flickering, but with the simplified code below, I've confirmed that I'm only calling pg.display.update() exactly once per pg.event.get() call. To be really explicit, I don't believe this is a duplicate of the linked question above because a) I have confirmed I only have one update() call already, which was the solution for the linked question; and b) it only happens on the CM4, not on when running on other computers.

That said, here's code that is able to reproduce the issue on a cm4:

```<code>import pygame as pg

class Game:
    def __init__(self):
        pg.init()

        self.__clock = pg.time.Clock()

        self.__window_size = (1024, 768)
        self.__project_size = (392, 291)

        self.screen = pg.display.set_mode(self.__window_size, pg.FULLSCREEN)

        self.blank_background = pg.transform.scale(pg.image.load("assets/default_background.png"),
                self.__window_size).convert()
        self.grid_image = pg.transform.scale(pg.image.load("assets/new_project_thumb.png"),
                self.__project_size).convert()

        self.project_selected = 0

        self.rect_pixels = 3

        self.grid_locations = self.calculate_grid_locations()

    def run(self) -> None:
        pg.mouse.set_visible(False)

        playing = True

        while playing:
            events = pg.event.get()

            button_event = None

            self.screen.blit(self.blank_background, (0, 0))

            for event in events:
                if event.type == pg.KEYDOWN:
                    button_event = event.key

            if button_event == pg.K_LEFT:
                self.project_selected = max((self.project_selected - 1), 0)

            if button_event == pg.K_RIGHT:
                self.project_selected = min((self.project_selected + 1), 3)

            if button_event == pg.K_ESCAPE:
                playing = False

            self.draw_menu()
            pg.display.update()
            self.__clock.tick(6)

    def draw_menu(self):
        for i in range(4):
            if i == self.project_selected:
                rect_loc = (self.grid_locations[i][0] - self.rect_pixels,
                            self.grid_locations[i][1] - self.rect_pixels)
                pg.draw.rect(self.screen,
                             (237, 28, 36),
                             pg.Rect(rect_loc,
                                     (self.__project_size[0] + self.rect_pixels * 2,
                                      self.__project_size[1] + self.rect_pixels * 2)))

            self.screen.blit(self.grid_image, self.grid_locations[i])

    def calculate_grid_locations(self):
        w=int((self.__window_size[0] - 2 * self.__project_size[0]) / 3)
        h=int((self.__window_size[1] - 2 * self.__project_size[1]) / 3)

        return [(w, h),
                (w * 2 + self.__project_size[0], h),
                (w, h * 2 + self.__project_size[1]),
                (w * 2 + self.__project_size[0], h * 2 + self.__project_size[1])]

if __name__ == "__main__":
    game = Game()
    game.run()
</code>```

The issue I'm having is that, specifically when I run it on a raspberry pi cm4 (and not on my linux laptop), I get intermittent flickering and/or lagging between frames - when I press an input, sometimes it will jitter back and forth between the image from the previous state and the current state very quickly before staying on the next frame.

One thing I have been able to figure out so far is that it might be framerate related - my laptop is easily able to hit 30 FPS, but the cm4 seems to only be able to do around 8 reliably (as reported by clock.get_fps()). Lowering the clock.tick() argument to below 8 does not fix the problem (as seen in the example code above) - there is still intermittent jittering even if the pi is able to maintain the framerate. It is also not specific to a given monitor - I have tried several.

This does not occur with the example games from the pygame library when they're run on the cm4, just my program.

Does anyone have any pointers for what to look into here? I'm not really sure where to examine this further. Hypothoses I've had include:

Maybe the update() call happens asynchronously, and I need to find a way to block the game until it completes.

Maybe I need to draw the menu images / selection rectangle as sprites. Looking at the code for the example games (which work great on the cm4), it looks like most of it is implemented as a sprite layer, and then just that is updated each cycle by passing the result of sprite.RenderUpdates().draw() as an argument to the update() call.

Body:
I have the following code, which is a simplified from a project I'm working on. I thought the issue was the same as Why is the PyGame animation is flickering, but with the simplified code below, I've confirmed that I'm only calling pg.display.update() exactly once per pg.event.get() call. To be really explicit, I don't believe this is a duplicate of the linked question above because a) I have confirmed I only have one update() call already, which was the solution for the linked question; and b) it only happens on the CM4, not on when running on other computers.

That said, here's code that is able to reproduce the issue on a cm4:

import pygame as pg

class Game:
    def __init__(self):
        pg.init()

        self.__clock = pg.time.Clock()

        self.__window_size = (1024, 768)
        self.__project_size = (392, 291)

        self.screen = pg.display.set_mode(self.__window_size, pg.FULLSCREEN)

        self.blank_background = pg.transform.scale(pg.image.load("assets/default_background.png"),
                self.__window_size).convert()
        self.grid_image = pg.transform.scale(pg.image.load("assets/new_project_thumb.png"),
                self.__project_size).convert()

        self.project_selected = 0

        self.rect_pixels = 3

        self.grid_locations = self.calculate_grid_locations()

    def run(self) -> None:
        pg.mouse.set_visible(False)

        playing = True

        while playing:
            events = pg.event.get()

            button_event = None

            self.screen.blit(self.blank_background, (0, 0))

            for event in events:
                if event.type == pg.KEYDOWN:
                    button_event = event.key

            if button_event == pg.K_LEFT:
                self.project_selected = max((self.project_selected - 1), 0)

            if button_event == pg.K_RIGHT:
                self.project_selected = min((self.project_selected + 1), 3)

            if button_event == pg.K_ESCAPE:
                playing = False

            self.draw_menu()
            pg.display.update()
            self.__clock.tick(6)

    def draw_menu(self):
        for i in range(4):
            if i == self.project_selected:
                rect_loc = (self.grid_locations[i][0] - self.rect_pixels,
                            self.grid_locations[i][1] - self.rect_pixels)
                pg.draw.rect(self.screen,
                             (237, 28, 36),
                             pg.Rect(rect_loc,
                                     (self.__project_size[0] + self.rect_pixels * 2,
                                      self.__project_size[1] + self.rect_pixels * 2)))

            self.screen.blit(self.grid_image, self.grid_locations[i])

    def calculate_grid_locations(self):
        w=int((self.__window_size[0] - 2 * self.__project_size[0]) / 3)
        h=int((self.__window_size[1] - 2 * self.__project_size[1]) / 3)

        return [(w, h),
                (w * 2 + self.__project_size[0], h),
                (w, h * 2 + self.__project_size[1]),
                (w * 2 + self.__project_size[0], h * 2 + self.__project_size[1])]

if __name__ == "__main__":
    game = Game()
    game.run()

The issue I'm having is that, specifically when I run it on a raspberry pi cm4 (and not on my linux laptop), I get intermittent flickering and/or lagging between frames - when I press an input, sometimes it will jitter back and forth between the image from the previous state and the current state very quickly before staying on the next frame.

One thing I have been able to figure out so far is that it might be framerate related - my laptop is easily able to hit 30 FPS, but the cm4 seems to only be able to do around 8 reliably (as reported by clock.get_fps()). Lowering the clock.tick() argument to below 8 does not fix the problem (as seen in the example code above) - there is still intermittent jittering even if the pi is able to maintain the framerate. It is also not specific to a given monitor - I have tried several.

This does not occur with the example games from the pygame library when they're run on the cm4, just my program.

Does anyone have any pointers for what to look into here? I'm not really sure where to examine this further. Hypothoses I've had include:

Maybe the update() call happens asynchronously, and I need to find a way to block the game until it completes.

Maybe I need to draw the menu images / selection rectangle as sprites. Looking at the code for the example games (which work great on the cm4), it looks like most of it is implemented as a sprite layer, and then just that is updated each cycle by passing the result of sprite.RenderUpdates().draw() as an argument to the update() call.


问:
Why i am getting ERROR TypeError: this.menuElement is undefined?
when i am giving menuelement to view child it gives eroor when calculating position

```<code>
  @ViewChild('stickyMenu')
  menuElement!: ElementRef;
  sticky: boolean = false;
  elementPosition: any;

  constructor(

  ) {}

  ngOnInit(): void {

    console.log(this.menuElement);
  }

  ngAfterViewInit(){
    this.elementPosition = this.menuElement.nativeElement.offsetTop;
    console.log(this.elementPosition);
  }

  @HostListener('window:scroll', ['$event'])
  handleScroll(){
    const windowScroll = window.pageYOffset;
    if(windowScroll >= this.elementPosition){
      this.sticky = true;
    } else {
      this.sticky = false;
    }
  }
}

</code>```

ERROR TypeError: this.menuElement is undefined

i am getting this error on this code  this.elementPosition = this.menuElement.nativeElement.offsetTop;

Body:
when i am giving menuelement to view child it gives eroor when calculating position

  @ViewChild('stickyMenu')
  menuElement!: ElementRef;
  sticky: boolean = false;
  elementPosition: any;

  constructor(

  ) {}

  ngOnInit(): void {

    console.log(this.menuElement);
  }

  ngAfterViewInit(){
    this.elementPosition = this.menuElement.nativeElement.offsetTop;
    console.log(this.elementPosition);
  }

  @HostListener('window:scroll', ['$event'])
  handleScroll(){
    const windowScroll = window.pageYOffset;
    if(windowScroll >= this.elementPosition){
      this.sticky = true;
    } else {
      this.sticky = false;
    }
  }
}

ERROR TypeError: this.menuElement is undefined

i am getting this error on this code  this.elementPosition = this.menuElement.nativeElement.offsetTop;


问:
FileNotFound Error...for python and .json
I am trying to make a hypixel API code that will get information and print it out.I just started working on it and am trying to get the simple stuff down but it says there is no such file or directory that i listed

Here is my code

```<code>#Imports
import requests
import json
from pprint import pprint

#Functions
def get_info(call):
    r = requests.get(call)
    return r.json()

#Variables
API_FILE = open("API_KEY.json","r")
API_KEY = json.loads(API_FILE.read())["API_KEY"]

#Code
print(API_KEY)
</code>```

And the API_KEY.json

```<code>{
    "API_KEY": "xxx-xxx-xx-xx-xx-x-xx"
    }
</code>```

Then the error message that it tells me

```<code>Traceback (most recent call last):
  File "d:\Python\Microsoft VS Code\Codes\Projects\MineCraft\skyblock_utils.py", line 12, in <module>
    API_FILE = open("API_KEY.json","r")
FileNotFoundError: [Errno 2] No such file or directory: 'API_KEY.json'
</code>```

Im not sure what i did wrong

Body:
I am trying to make a hypixel API code that will get information and print it out.I just started working on it and am trying to get the simple stuff down but it says there is no such file or directory that i listed

Here is my code

#Imports
import requests
import json
from pprint import pprint

#Functions
def get_info(call):
    r = requests.get(call)
    return r.json()

#Variables
API_FILE = open("API_KEY.json","r")
API_KEY = json.loads(API_FILE.read())["API_KEY"]

#Code
print(API_KEY)

And the API_KEY.json

{
    "API_KEY": "xxx-xxx-xx-xx-xx-x-xx"
    }

Then the error message that it tells me

Traceback (most recent call last):
  File "d:\Python\Microsoft VS Code\Codes\Projects\MineCraft\skyblock_utils.py", line 12, in <module>
    API_FILE = open("API_KEY.json","r")
FileNotFoundError: [Errno 2] No such file or directory: 'API_KEY.json'

Im not sure what i did wrong


问:
How can we add an another webpage using Iframe tag in HTML?
Try to add another web page using Iframe tag.

Tried to add a webpage using Iframe tag but the webpage was not displayed.


问:
How to remove similar and duplicate queries in django rest framework?
When i call product endpoint, duplicate and similar queries are occured for average rating. I have used prefetch_related to solve the problem but it seems like the way i used arenot
correct. Can you guys please help me to solve this scenario.

Here is the model structure

models.py

```<code>class Product(models.Model):
    name = models.CharField(max_length=255)
    vendor = models.ForeignKey(
        Vendor,
        on_delete=models.CASCADE,
    )

class ProductRating(models.Model):
    product_id = models.ForeignKey(
        Product,
        on_delete=models.CASCADE,
    )
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
    )
    maxval=5
    message='Rating must be less than 5'
    rate =models.PositiveIntegerField(validators=[MaxValueValidator(maxval,message)],null=True)
    comment = models.TextField(blank=True,null=True)
    seller_reply = models.TextField(blank=True,null=True)
    reply_at=models.DateTimeField(auto_now=True)
    created_at=models.DateTimeField(auto_now=False,auto_now_add=True)

class VendorRating(models.Model):
    product_id = models.ForeignKey(
        Product,
        on_delete=models.CASCADE,
    )
    vendor_id=models.ForeignKey(
        Vendor,
        on_delete=models.CASCADE
    )
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
    )
    maxval=5
    message='Rating must be less than 5'
    communication_rate=models.PositiveIntegerField(validators=[MaxValueValidator(maxval,message)],null=True,blank=True)
    product_quality_rate=models.PositiveIntegerField(validators=[MaxValueValidator(maxval,message)],null=True,blank=True)
    experience_rate=models.PositiveIntegerField(validators=[MaxValueValidator(maxval,message)],null=True,blank=True)
    created_at=models.DateTimeField(auto_now=False,auto_now_add=True)

</code>```

in views.py

```<code>def get_queryset(self):
        queryset=self.get_serializer().setup_eager_loading(Product.objects.all())
        return queryset

</code>```

in serializers.py

```<code>class ProductSerializer(TaggitSerializer, serializers.ModelSerializer):
      avg_productrating = serializers.SerializerMethodField("get_rating")
   avg_vendorrating=serializers.SerializerMethodField("get_avgvendorrating")

     def get_rating(self, obj):
        rating=obj.productrating_set.all().aggregate(avg=Avg("rate"))['avg']
        average_rate=round(rating,2) if rating else rating
        return average_rate

      def get_avgvendorrating(self,obj):
        try:
            average_rate=obj.vendor.vendorrating_set.all().aggregate(
                Avg("communication_rate"),Avg('product_quality_rate'),Avg("experience_rate")
            )
            rates=[rate for rate in average_rate.values() if rate is not None]
            if(not rates):
                total=0
            else:
                total=sum(rates)/3

            return round(total,2)
        except:
            return 0

    @staticmethod
    def setup_eager_loading(queryset):
        """ Perform necessary eager loading of data. """
        queryset=queryset.prefetch_related(Prefetch('vendor',queryset=Vendor.objects.prefetch_related('user','vendorrating_set')))

</code>```

in urls.py

```<code>rom rest_framework import routers
from . import views

router = routers.SimpleRouter()
router.register(r"product", views.ProductViewSet,basename='products')

</code>```

output in debug-tools

```<code>SELECT AVG("buysell_productrating"."rate") AS "avg"
  FROM "buysell_productrating"
 WHERE "buysell_productrating"."product_id_id" = '3' 3 similar queries.

SELECT AVG("buysell_vendorrating"."communication_rate") AS "communication_rate__avg",
       AVG("buysell_vendorrating"."product_quality_rate") AS "product_quality_rate__avg",
       AVG("buysell_vendorrating"."experience_rate") AS "experience_rate__avg"
  FROM "buysell_vendorrating"
 WHERE "buysell_vendorrating"."vendor_id_id" = '1' 3 similar queries.  Duplicated 2 times.

</code>```

Body:
When i call product endpoint, duplicate and similar queries are occured for average rating. I have used prefetch_related to solve the problem but it seems like the way i used arenot
correct. Can you guys please help me to solve this scenario.

Here is the model structure

models.py

class Product(models.Model):
    name = models.CharField(max_length=255)
    vendor = models.ForeignKey(
        Vendor,
        on_delete=models.CASCADE,
    )

class ProductRating(models.Model):
    product_id = models.ForeignKey(
        Product,
        on_delete=models.CASCADE,
    )
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
    )
    maxval=5
    message='Rating must be less than 5'
    rate =models.PositiveIntegerField(validators=[MaxValueValidator(maxval,message)],null=True)
    comment = models.TextField(blank=True,null=True)
    seller_reply = models.TextField(blank=True,null=True)
    reply_at=models.DateTimeField(auto_now=True)
    created_at=models.DateTimeField(auto_now=False,auto_now_add=True)

class VendorRating(models.Model):
    product_id = models.ForeignKey(
        Product,
        on_delete=models.CASCADE,
    )
    vendor_id=models.ForeignKey(
        Vendor,
        on_delete=models.CASCADE
    )
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
    )
    maxval=5
    message='Rating must be less than 5'
    communication_rate=models.PositiveIntegerField(validators=[MaxValueValidator(maxval,message)],null=True,blank=True)
    product_quality_rate=models.PositiveIntegerField(validators=[MaxValueValidator(maxval,message)],null=True,blank=True)
    experience_rate=models.PositiveIntegerField(validators=[MaxValueValidator(maxval,message)],null=True,blank=True)
    created_at=models.DateTimeField(auto_now=False,auto_now_add=True)

in views.py

def get_queryset(self):
        queryset=self.get_serializer().setup_eager_loading(Product.objects.all())
        return queryset

in serializers.py

class ProductSerializer(TaggitSerializer, serializers.ModelSerializer):
      avg_productrating = serializers.SerializerMethodField("get_rating")
   avg_vendorrating=serializers.SerializerMethodField("get_avgvendorrating")

     def get_rating(self, obj):
        rating=obj.productrating_set.all().aggregate(avg=Avg("rate"))['avg']
        average_rate=round(rating,2) if rating else rating
        return average_rate

      def get_avgvendorrating(self,obj):
        try:
            average_rate=obj.vendor.vendorrating_set.all().aggregate(
                Avg("communication_rate"),Avg('product_quality_rate'),Avg("experience_rate")
            )
            rates=[rate for rate in average_rate.values() if rate is not None]
            if(not rates):
                total=0
            else:
                total=sum(rates)/3

            return round(total,2)
        except:
            return 0

    @staticmethod
    def setup_eager_loading(queryset):
        """ Perform necessary eager loading of data. """
        queryset=queryset.prefetch_related(Prefetch('vendor',queryset=Vendor.objects.prefetch_related('user','vendorrating_set')))

in urls.py

rom rest_framework import routers
from . import views

router = routers.SimpleRouter()
router.register(r"product", views.ProductViewSet,basename='products')

output in debug-tools

SELECT AVG("buysell_productrating"."rate") AS "avg"
  FROM "buysell_productrating"
 WHERE "buysell_productrating"."product_id_id" = '3' 3 similar queries.

SELECT AVG("buysell_vendorrating"."communication_rate") AS "communication_rate__avg",
       AVG("buysell_vendorrating"."product_quality_rate") AS "product_quality_rate__avg",
       AVG("buysell_vendorrating"."experience_rate") AS "experience_rate__avg"
  FROM "buysell_vendorrating"
 WHERE "buysell_vendorrating"."vendor_id_id" = '1' 3 similar queries.  Duplicated 2 times.


问:
Routes that are not home route doesn't work when I host the web app
I have built a web app using flutter with GetX State management,
the app was working good, but when I hosted it on the internet all the routes doesn't work except the home route, I am using GetX Routing system but I don't what is actually the problem

to explain the problem:

when I use localhost:

localhost:3000/: It returns the home route

localhost:3000/terms  : It returns the terms route

localhost:3000/john : It returns the profile of the user named john

but when I hosted it:

domain.site/ : It returns the home route

domain.site/terms : It returns 404

domain.site/john : It returns 404

Thanks


问:
How to update an Android app using an APK without user interaction at all?
I am developing a robot Android app where I've added a class that updates the app automatically.
We get the new APK version from a local server where the robot is located.

However, when there is a new APK and after downloading it to the storage of the device and when executing the following code:

```<code>Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
final Context context = this.context.get();
Uri apkUri = FileProvider.getUriForFile(context, context.getPackageName() + ".provider", apkFile);
intent.setData(apkUri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
</code>```

the window below asks the user's action to either CANCEL or INSTALL.

Is there any way to execute the INSTALL button without users needing to press it?

Body:
I am developing a robot Android app where I've added a class that updates the app automatically.
We get the new APK version from a local server where the robot is located.

However, when there is a new APK and after downloading it to the storage of the device and when executing the following code:

Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
final Context context = this.context.get();
Uri apkUri = FileProvider.getUriForFile(context, context.getPackageName() + ".provider", apkFile);
intent.setData(apkUri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

the window below asks the user's action to either CANCEL or INSTALL.

Is there any way to execute the INSTALL button without users needing to press it?


问:
How to configure ycm (You Complete Me) plugin to detect c++20 syntax in vim for detecting error
I am using You Complete Me (ycm) plugin for vim to autocomplete and error detection but it is not currently supporting c++20, following is the error:

Note: When I am compiling it is running completely fine but shows this error due to ycm only ,I tried to temporarily comment out my ycm in .vimrc and error was gone so it is only because of ycm, also it is fine for c++17 version it doesn't show any error.
Please help me how to fix that.


问:
Xdebug DBGp proxy does not de-register

I managed to setup DBGp proxy and was able to debug some code using the Linux binary here https://xdebug.org/files/binaries/dbgpProxy

I'm using Felix Becker's PHP Debug for VSCode as a client

If I start PHP Debug (which registers my IDE key with DBGp proxy) and shutdown VSCode without stopping PHP Debug first, it does not de-register with DBGp proxy

As a result, I can't start PHP Debug again because DBGp proxy reports that the IDE key was already registered and I have to restart the DBGp proxy each time this happens

I'm hoping there is a way to solve this at the DBGp proxy side. I mean, there can be a lot of other reasons why the client did not de-register

The less preferred alternative would be to get PHP Debug to listen even if registration failed, but that's a bit hacky in my opinion

Any ideas?

Thank you.

Title: Xdebug DBGp proxy does not de-register


问:
Reasampling Timeseries data and plotting in Tkinter window
I tried to plot data in Tkinter window having 12000 rows of excel data. But after removing index for resampling the data i am unable to display matplotlib graph on Tkinter GUI.

dp.index=pd.to_datetime(dp['Test Time'])
dp2=dp.resample('5min').mean()

These are the lines I used for resampling data to display matplotlib graph in Tkinter window without overlapping xaxis data.

```<code>                   Test Time  Temperature
0      2021/01/22   19:51:19         0.00
1      2021/01/22   19:51:38        25.00
2      2021/01/22   19:51:58        25.03
3      2021/01/22   19:52:18        25.03
4      2021/01/22   19:52:38        24.98
...                      ...          ...
12252  2021/01/25   15:55:18         3.08
12253  2021/01/25   15:55:38         2.44
12254  2021/01/25   15:55:58         1.70
12255  2021/01/25   15:56:18         0.91
12256  2021/01/25   15:56:38         0.65

[12257 rows x 2 columns]

`dp = pd.read_excel('demo11.xlsx')
dp.index=pd.to_datetime(dp['Test Time'])
dp.drop(columns=['Test Time'],inplace=True)
dp2=dp.resample('5min').mean()

root = tk.Tk()
figure3 = plt.Figure(figsize=(5, 4), dpi=100)
ax3 = figure3.add_subplot(111)
ax3.scatter(dp2['Test Time'], dp2['Temperature'], color='g')
scatter3 = FigureCanvasTkAgg(figure3, root)
scatter3.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH)
ax3.legend(['Temperature'])
ax3.set_xlabel('Test Time')
ax3.set_title('Test Time Vs. Temperature')
root.mainloop()`

</code>```

I am getting following error

```<code>The above exception was the direct cause of the following exception:
KeyError: 'Test Time'
</code>```

Body:
I tried to plot data in Tkinter window having 12000 rows of excel data. But after removing index for resampling the data i am unable to display matplotlib graph on Tkinter GUI.

dp.index=pd.to_datetime(dp['Test Time'])
dp2=dp.resample('5min').mean()

These are the lines I used for resampling data to display matplotlib graph in Tkinter window without overlapping xaxis data.

                   Test Time  Temperature
0      2021/01/22   19:51:19         0.00
1      2021/01/22   19:51:38        25.00
2      2021/01/22   19:51:58        25.03
3      2021/01/22   19:52:18        25.03
4      2021/01/22   19:52:38        24.98
...                      ...          ...
12252  2021/01/25   15:55:18         3.08
12253  2021/01/25   15:55:38         2.44
12254  2021/01/25   15:55:58         1.70
12255  2021/01/25   15:56:18         0.91
12256  2021/01/25   15:56:38         0.65

[12257 rows x 2 columns]

`dp = pd.read_excel('demo11.xlsx')
dp.index=pd.to_datetime(dp['Test Time'])
dp.drop(columns=['Test Time'],inplace=True)
dp2=dp.resample('5min').mean()

root = tk.Tk()
figure3 = plt.Figure(figsize=(5, 4), dpi=100)
ax3 = figure3.add_subplot(111)
ax3.scatter(dp2['Test Time'], dp2['Temperature'], color='g')
scatter3 = FigureCanvasTkAgg(figure3, root)
scatter3.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH)
ax3.legend(['Temperature'])
ax3.set_xlabel('Test Time')
ax3.set_title('Test Time Vs. Temperature')
root.mainloop()`

I am getting following error

The above exception was the direct cause of the following exception:
KeyError: 'Test Time'


问:
Pandas removing trailing number from XLSX file on import
I have an XLSX sheet I am attempting to import all the tasks from into Python
When I import my two columns however pandas seems to remove the trailing .0 when it reaches round 10. For instance 5.18 > 5.19 > 5.2

Index|Item Number
30   5.0
31   5.1
32   5.2
33   5.3
34   5.4
35   5.5
36   5.6
37   5.7
38   5.8
39   5.9
40   5.1
41  5.11
42  5.12
43  5.13
44  5.14
45  5.15
46  5.16
47  5.17
48  5.18
49  5.19
50   5.2

I have attempted to change the dtype to str and tried using pd.set_option to change the float value to with no success.
I just want to count the item numbers starting from 5.0 to 5.20
I've recreated the spreadsheet and it still removes the .0


问:
Append id to request body key

if (count($multiDestinationTask) > 0) {

            foreach ($multiDestinationTask as $task) {
                $task->destination_place = $request->destination_place_ . $task->id;
                $task->destination_address = $request->destination_address_ . $task->id;
                $task->destination_lat = $request->destination_lat_ . $task->id;
                $task->destination_lon = $request->destination_lon_ . $task->id;
                dd($task);
            }
        }
```
<p>So, I want to get the request key by their id. I attempted to get the request key like the image before (appending the key name with the task id) but rather than returning the key value, it returns the task id.
<img src="https://i.stack.imgur.com/9eTlo.png" alt="enter image description here" /></p>
<p>The question is how can I get the value from the key base on their id from the controller?</p>
<p>The image below is the input form and how I concatenate the input name with id.</p>
```const placesMultiDestination = result.multi_destination.map((destination, i) => {
                return `

                      Destination Place ${i + 1}
                      <textarea rows="2" name="origin_place_${destination.id}" class="form-control" required autofocus>${destination.destination_place}</textarea>

                      Origin Address ${i + 1}
                      <textarea rows="2" name="origin_address_${destination.id}" class="form-control" required autofocus>${destination.destination_address}</textarea>

                `
              }).join('')
```

Title: Append id to request body key

Body:
if (count($multiDestinationTask) > 0) {

            foreach ($multiDestinationTask as $task) {
                $task->destination_place = $request->destination_place_ . $task->id;
                $task->destination_address = $request->destination_address_ . $task->id;
                $task->destination_lat = $request->destination_lat_ . $task->id;
                $task->destination_lon = $request->destination_lon_ . $task->id;
                dd($task);
            }
        }

So, I want to get the request key by their id. I attempted to get the request key like the image before (appending the key name with the task id) but rather than returning the key value, it returns the task id.

The question is how can I get the value from the key base on their id from the controller?

The image below is the input form and how I concatenate the input name with id.

const placesMultiDestination = result.multi_destination.map((destination, i) => {
                return `

                      Destination Place ${i + 1}
                      <textarea rows="2" name="origin_place_${destination.id}" class="form-control" required autofocus>${destination.destination_place}</textarea>

                      Origin Address ${i + 1}
                      <textarea rows="2" name="origin_address_${destination.id}" class="form-control" required autofocus>${destination.destination_address}</textarea>

                `
              }).join('')


问:
Render error in React Native in app.js file
so I was designing some simple navbar code for my react-native app
using react-navigation and ionicons dependencies. For this, I made a separate file called maincontainer.js and used it as a tag in the main app.js file. But whenever I bundle the app and run it on my android emulator, it always gives a render error stating that:

```<code>Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s%s, undefined,  You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

Check the render method of `App`.,
    in App (created by withDevTools(App))
    in withDevTools(App)
    in RCTView (created by View)
    in View (created by AppContainer)
    in RCTView (created by View)
    in View (created by AppContainer)
    in AppContainer
    in main(RootComponent)
</code>```

Here is the code for my app.js file:

```<code>    import * as React from 'react';
import {View, Text} from 'react-native';
import { MainContainer } from './navigation/MainContainer';

function App(){
  return(
    <MainContainer/>
     );
}

export default App;
</code>```

Here is the code for my MainContainer.js

```<code>    import * as React from 'react';
import {View, Text} from 'react-native';
import { NavigationContainer, TabActions} from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import Ionicons from 'react-native-vector-icons/Ionicons'
//Screens
import HistoryScreen from './screens/HistoryScreen';
import HomeScreen from './screens/HomeScreen';
import LocationScreen from './screens/LocationScreen';
//ScreenNames
const HistoryName='HistoryScreen';
const HomeScreenName='HomeScreen';
const LocationName='LocationScreen';

const Tab= createBottomTabNavigator();
export default function MainContainer(){
    return(
        <NavigationContainer>
            <Tab.Navigator
            initialRouteName={HomeScreenName}
            screenOptions={({route}) => ({
                tabBarIcon: ({focused,color,size}) => {
                    let iconName;
                    let rn=route.name;
                    if(rn === homeName){
                        iconName = focused ? 'home' : 'home-outline';
                    }
                    else if (rn === HistoryName){
                        iconName = focused ? 'history' : 'history-outline';
                    }
                    else if (rn ===  LocationName){
                        iconName = focused? 'location' : 'location-outline';
                    }
                  return <Ionicons name={iconName} size={size} color={color}/>
                },
            })}
            >
            <Tab.Screen name={homeName} component={HomeScreen}/>
            <Tab.Screen name={historyName} component={HistoryScreen}/>
            <Tab.Screen name={LocationName} component={LocationScreen}/>
            </Tab.Navigator>

        </NavigationContainer>
    )
}
</code>```

Please help me in the resolving the issue, thanks.

Body:
so I was designing some simple navbar code for my react-native app
using react-navigation and ionicons dependencies. For this, I made a separate file called maincontainer.js and used it as a tag in the main app.js file. But whenever I bundle the app and run it on my android emulator, it always gives a render error stating that:

Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s%s, undefined,  You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

Check the render method of `App`.,
    in App (created by withDevTools(App))
    in withDevTools(App)
    in RCTView (created by View)
    in View (created by AppContainer)
    in RCTView (created by View)
    in View (created by AppContainer)
    in AppContainer
    in main(RootComponent)

Here is the code for my app.js file:

    import * as React from 'react';
import {View, Text} from 'react-native';
import { MainContainer } from './navigation/MainContainer';

function App(){
  return(
    <MainContainer/>
     );
}

export default App;

Here is the code for my MainContainer.js

    import * as React from 'react';
import {View, Text} from 'react-native';
import { NavigationContainer, TabActions} from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import Ionicons from 'react-native-vector-icons/Ionicons'
//Screens
import HistoryScreen from './screens/HistoryScreen';
import HomeScreen from './screens/HomeScreen';
import LocationScreen from './screens/LocationScreen';
//ScreenNames
const HistoryName='HistoryScreen';
const HomeScreenName='HomeScreen';
const LocationName='LocationScreen';

const Tab= createBottomTabNavigator();
export default function MainContainer(){
    return(
        <NavigationContainer>
            <Tab.Navigator
            initialRouteName={HomeScreenName}
            screenOptions={({route}) => ({
                tabBarIcon: ({focused,color,size}) => {
                    let iconName;
                    let rn=route.name;
                    if(rn === homeName){
                        iconName = focused ? 'home' : 'home-outline';
                    }
                    else if (rn === HistoryName){
                        iconName = focused ? 'history' : 'history-outline';
                    }
                    else if (rn ===  LocationName){
                        iconName = focused? 'location' : 'location-outline';
                    }
                  return <Ionicons name={iconName} size={size} color={color}/>
                },
            })}
            >
            <Tab.Screen name={homeName} component={HomeScreen}/>
            <Tab.Screen name={historyName} component={HistoryScreen}/>
            <Tab.Screen name={LocationName} component={LocationScreen}/>
            </Tab.Navigator>

        </NavigationContainer>
    )
}

Please help me in the resolving the issue, thanks.


问:
How to check if someone Retweeted and or Like a tweet
I need to verify whether a user actually liked or retweeted a tweet I asked him to. The user has already linked his Twitter account to my app.

I use the Twitter API call http://api.twitter.com/2/tweets/id/retweeted_by to determine whether a person has retweeted or not. This call returns the first 100 users who have retweeted the specified tweet.

The issue is that I must go through the 100 users, and the requested user may not even be among the results, necessitating another call to the api to obtain the remaining 100 people. This is expensive, thus I want to know if there is an api call that can provide me with a single response for a single request that answers my inquiry.
Thanks!