MIG partitioning leading to nvidia_a100_3g.39gb instead of 3g.40gb partition for NVIDIA driver versions 535.x and 545.x

Hi,
I've a bunch of servers with 4 A100 GPUs each and I've MIG-partitioned each GPU in the 'all-balanced' profile and managed them through Slurm.
$ cat /etc/nvidia-mig-manager/config.yaml
...
  all-balanced:
...
    # H100-80GB, H800-80GB, A100-80GB, A800-80GB
    - device-filter: ["0x233110DE", "0x233010DE", "0x232210DE", "0x20B210DE", "0x20B510DE", "0x20F310DE", "0x20F510DE"]
      devices: all
      mig-enabled: true
      mig-devices:
        "1g.10gb": 2
        "2g.20gb": 1
        "3g.40gb": 1
...

WIth NVIDIA driver 495.x, I could partition them as follows without any issues.

1g.10gb : 2
2g.20gb : 1
3g.40gb : 1

However, with the latest drivers, namely 535.x and 545.x, each GPUs get partitioned into

1g.10gb : 2
2g.20gb : 1
3g.39gb : 1

I use AutoDetect=nvml for Slurm to detect the types of MIG partitions and their CPU affinities. Slurm reports this discrepancy in the logs:
$ slurmd -G

slurmd: gpu/nvml: _get_system_gpu_list_nvml: 4 GPU system device(s) detected
slurmd: error: Discarding the following config-only GPU due to lack of File specification:
slurmd: error:     GRES[gpu] Type:3g.40gb Count:1 Cores(64):(null)  Links:(null) Flags:HAS_TYPE,ENV_NVML,ENV_RSMI,ENV_ONEAPI,ENV_OPENCL,ENV_DEFAULT File:(null) UniqueId:(null)
slurmd: error: Discarding the following config-only GPU due to lack of File specification:
slurmd: error:     GRES[gpu] Type:3g.40gb Count:1 Cores(64):(null)  Links:(null) Flags:HAS_TYPE,ENV_NVML,ENV_RSMI,ENV_ONEAPI,ENV_OPENCL,ENV_DEFAULT File:(null) UniqueId:(null)
slurmd: error: Discarding the following config-only GPU due to lack of File specification:
slurmd: error:     GRES[gpu] Type:3g.40gb Count:1 Cores(64):(null)  Links:(null) Flags:HAS_TYPE,ENV_NVML,ENV_RSMI,ENV_ONEAPI,ENV_OPENCL,ENV_DEFAULT File:(null) UniqueId:(null)
slurmd: error: Discarding the following config-only GPU due to lack of File specification:
slurmd: error:     GRES[gpu] Type:3g.40gb Count:1 Cores(64):(null)  Links:(null) Flags:HAS_TYPE,ENV_NVML,ENV_RSMI,ENV_ONEAPI,ENV_OPENCL,ENV_DEFAULT File:(null) UniqueId:(null)
slurmd: gres/gpu: _merge_system_gres_conf: WARNING: The following autodetected GPUs are being ignored:
slurmd:     GRES[gpu] Type:nvidia_a100_3g.39gb Count:1 Cores(64):24-31  Links:-1,0,0,0 Flags:HAS_FILE,HAS_TYPE,ENV_NVML File:/dev/nvidia0,/dev/nvidia-caps/nvidia-cap21,/dev/nvidia-caps/nvidia-cap22 UniqueId:MIG-efa8d929-9af6-5083-af99-f1ceefb8b29a
slurmd:     GRES[gpu] Type:nvidia_a100_3g.39gb Count:1 Cores(64):8-15  Links:-1,0,0,0 Flags:HAS_FILE,HAS_TYPE,ENV_NVML File:/dev/nvidia1,/dev/nvidia-caps/nvidia-cap156,/dev/nvidia-caps/nvidia-cap157 UniqueId:MIG-44b932cc-40b5-5e7b-b01b-7e342ecfcb64
slurmd:     GRES[gpu] Type:nvidia_a100_3g.39gb Count:1 Cores(64):56-63  Links:-1,0,0,0 Flags:HAS_FILE,HAS_TYPE,ENV_NVML File:/dev/nvidia2,/dev/nvidia-caps/nvidia-cap291,/dev/nvidia-caps/nvidia-cap292 UniqueId:MIG-e3ab25b5-7be9-5d4b-940d-63841fead660
slurmd:     GRES[gpu] Type:nvidia_a100_3g.39gb Count:1 Cores(64):40-47  Links:-1,0,0,0 Flags:HAS_FILE,HAS_TYPE,ENV_NVML File:/dev/nvidia3,/dev/nvidia-caps/nvidia-cap426,/dev/nvidia-caps/nvidia-cap427 UniqueId:MIG-60b3faac-01f1-5bc1-be5c-c53e2c4e0d82
slurmd: Gres Name=gpu Type=2g.20gb Count=1 Index=31 ID=7696487 File=/dev/nvidia0,/dev/nvidia-caps/nvidia-cap30,/dev/nvidia-caps/nvidia-cap31 Cores=24-31 CoreCnt=64 Links=0,-1,0,0
slurmd: Gres Name=gpu Type=2g.20gb Count=1 Index=166 ID=7696487 File=/dev/nvidia1,/dev/nvidia-caps/nvidia-cap165,/dev/nvidia-caps/nvidia-cap166 Cores=8-15 CoreCnt=64 Links=0,-1,0,0
slurmd: Gres Name=gpu Type=2g.20gb Count=1 Index=301 ID=7696487 File=/dev/nvidia2,/dev/nvidia-caps/nvidia-cap300,/dev/nvidia-caps/nvidia-cap301 Cores=56-63 CoreCnt=64 Links=0,-1,0,0
slurmd: Gres Name=gpu Type=2g.20gb Count=1 Index=436 ID=7696487 File=/dev/nvidia3,/dev/nvidia-caps/nvidia-cap435,/dev/nvidia-caps/nvidia-cap436 Cores=40-47 CoreCnt=64 Links=0,-1,0,0
slurmd: Gres Name=gpu Type=1g.10gb Count=1 Index=85 ID=7696487 File=/dev/nvidia0,/dev/nvidia-caps/nvidia-cap84,/dev/nvidia-caps/nvidia-cap85 Cores=24-31 CoreCnt=64 Links=0,0,-1,0
slurmd: Gres Name=gpu Type=1g.10gb Count=1 Index=220 ID=7696487 File=/dev/nvidia1,/dev/nvidia-caps/nvidia-cap219,/dev/nvidia-caps/nvidia-cap220 Cores=8-15 CoreCnt=64 Links=0,0,-1,0
slurmd: Gres Name=gpu Type=1g.10gb Count=1 Index=355 ID=7696487 File=/dev/nvidia2,/dev/nvidia-caps/nvidia-cap354,/dev/nvidia-caps/nvidia-cap355 Cores=56-63 CoreCnt=64 Links=0,0,-1,0
slurmd: Gres Name=gpu Type=1g.10gb Count=1 Index=490 ID=7696487 File=/dev/nvidia3,/dev/nvidia-caps/nvidia-cap489,/dev/nvidia-caps/nvidia-cap490 Cores=40-47 CoreCnt=64 Links=0,0,-1,0
slurmd: Gres Name=gpu Type=1g.10gb Count=1 Index=94 ID=7696487 File=/dev/nvidia0,/dev/nvidia-caps/nvidia-cap93,/dev/nvidia-caps/nvidia-cap94 Cores=24-31 CoreCnt=64 Links=0,0,0,-1
slurmd: Gres Name=gpu Type=1g.10gb Count=1 Index=229 ID=7696487 File=/dev/nvidia1,/dev/nvidia-caps/nvidia-cap228,/dev/nvidia-caps/nvidia-cap229 Cores=8-15 CoreCnt=64 Links=0,0,0,-1
slurmd: Gres Name=gpu Type=1g.10gb Count=1 Index=364 ID=7696487 File=/dev/nvidia2,/dev/nvidia-caps/nvidia-cap363,/dev/nvidia-caps/nvidia-cap364 Cores=56-63 CoreCnt=64 Links=0,0,0,-1
slurmd: Gres Name=gpu Type=1g.10gb Count=1 Index=499 ID=7696487 File=/dev/nvidia3,/dev/nvidia-caps/nvidia-cap498,/dev/nvidia-caps/nvidia-cap499 Cores=40-47 CoreCnt=64 Links=0,0,0,-1

I have tried using nvidia-mig-manager versions [0.5.3, <IP_ADDRESS> and 0.5.5] and I see the same behavior as long as the NVIDIA driver version is 535 or 545. I haven't tried 505, 515, 525.
=== w/ NVIDIA driver 495.x ===
$ nvidia-smi
Wed Dec 13 00:32:33 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.29.05    Driver Version: 495.29.05    CUDA Version: 11.5     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  Off  | 00000000:01:00.0 Off |                   On |
| N/A   25C    P0    50W / 500W |     24MiB / 81251MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA A100-SXM...  Off  | 00000000:41:00.0 Off |                   On |
| N/A   25C    P0    51W / 500W |     24MiB / 81251MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA A100-SXM...  Off  | 00000000:81:00.0 Off |                   On |
| N/A   25C    P0    48W / 500W |     24MiB / 81251MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA A100-SXM...  Off  | 00000000:C1:00.0 Off |                   On |
| N/A   25C    P0    50W / 500W |     24MiB / 81251MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| MIG devices:                                                                |
+------------------+----------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
|      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
|                  |                      |        ECC|                       |
|==================+======================+===========+=======================|
|  0    2   0   0  |     10MiB / 40448MiB | 42      0 |  3   0    2    0    0 |
|                  |      0MiB / 65535MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0    3   0   1  |      6MiB / 19968MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0    9   0   2  |      3MiB /  9728MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0   10   0   3  |      3MiB /  9728MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    2   0   0  |     10MiB / 40448MiB | 42      0 |  3   0    2    0    0 |
|                  |      0MiB / 65535MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    3   0   1  |      6MiB / 19968MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    9   0   2  |      3MiB /  9728MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1   10   0   3  |      3MiB /  9728MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2    2   0   0  |     10MiB / 40448MiB | 42      0 |  3   0    2    0    0 |
|                  |      0MiB / 65535MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2    3   0   1  |      6MiB / 19968MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2    9   0   2  |      3MiB /  9728MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2   10   0   3  |      3MiB /  9728MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3    2   0   0  |     10MiB / 40448MiB | 42      0 |  3   0    2    0    0 |
|                  |      0MiB / 65535MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3    3   0   1  |      6MiB / 19968MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3    9   0   2  |      3MiB /  9728MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3   10   0   3  |      3MiB /  9728MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

=== w/ NVIDIA driver 545.x ===
$  nvidia-smi
Wed Dec 13 00:29:41 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.08              Driver Version: 545.23.08    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA A100-SXM4-80GB          On  | 00000000:01:00.0 Off |                   On |
| N/A   26C    P0              51W / 500W |     87MiB / 81920MiB |     N/A      Default |
|                                         |                      |              Enabled |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA A100-SXM4-80GB          On  | 00000000:41:00.0 Off |                   On |
| N/A   26C    P0              49W / 500W |     87MiB / 81920MiB |     N/A      Default |
|                                         |                      |              Enabled |
+-----------------------------------------+----------------------+----------------------+
|   2  NVIDIA A100-SXM4-80GB          On  | 00000000:81:00.0 Off |                   On |
| N/A   27C    P0              51W / 500W |     87MiB / 81920MiB |     N/A      Default |
|                                         |                      |              Enabled |
+-----------------------------------------+----------------------+----------------------+
|   3  NVIDIA A100-SXM4-80GB          On  | 00000000:C1:00.0 Off |                   On |
| N/A   25C    P0              48W / 500W |     87MiB / 81920MiB |     N/A      Default |
|                                         |                      |              Enabled |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| MIG devices:                                                                          |
+------------------+--------------------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |                   Memory-Usage |        Vol|      Shared           |
|      ID  ID  Dev |                     BAR1-Usage | SM     Unc| CE ENC DEC OFA JPG    |
|                  |                                |        ECC|                       |
|==================+================================+===========+=======================|
|  0    2   0   0  |              37MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |
|                  |               0MiB / 65535MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  0    3   0   1  |              25MiB / 19968MiB  | 28      0 |  2   0    1    0    0 |
|                  |               0MiB / 32767MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  0    9   0   2  |              12MiB /  9728MiB  | 14      0 |  1   0    0    0    0 |
|                  |               0MiB / 16383MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  0   10   0   3  |              12MiB /  9728MiB  | 14      0 |  1   0    0    0    0 |
|                  |               0MiB / 16383MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  1    2   0   0  |              37MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |
|                  |               0MiB / 65535MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  1    3   0   1  |              25MiB / 19968MiB  | 28      0 |  2   0    1    0    0 |
|                  |               0MiB / 32767MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  1    9   0   2  |              12MiB /  9728MiB  | 14      0 |  1   0    0    0    0 |
|                  |               0MiB / 16383MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  1   10   0   3  |              12MiB /  9728MiB  | 14      0 |  1   0    0    0    0 |
|                  |               0MiB / 16383MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  2    2   0   0  |              37MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |
|                  |               0MiB / 65535MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  2    3   0   1  |              25MiB / 19968MiB  | 28      0 |  2   0    1    0    0 |
|                  |               0MiB / 32767MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  2    9   0   2  |              12MiB /  9728MiB  | 14      0 |  1   0    0    0    0 |
|                  |               0MiB / 16383MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  2   10   0   3  |              12MiB /  9728MiB  | 14      0 |  1   0    0    0    0 |
|                  |               0MiB / 16383MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  3    2   0   0  |              37MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |
|                  |               0MiB / 65535MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  3    3   0   1  |              25MiB / 19968MiB  | 28      0 |  2   0    1    0    0 |
|                  |               0MiB / 32767MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  3    9   0   2  |              12MiB /  9728MiB  | 14      0 |  1   0    0    0    0 |
|                  |               0MiB / 16383MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
|  3   10   0   3  |              12MiB /  9728MiB  | 14      0 |  1   0    0    0    0 |
|                  |               0MiB / 16383MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

Looking at the memory of the different partitions, the 10GB and 20GB partitions are the same regardless of the NVIDIA driver version, but the "40GB" partitions are a little lower (40192MiB) for driver version 545.x compared to 40448 MiB for driver version 495.x, I see that the memory is smaller for
=== w/ NVIDIA driver 495.x ===
$ nvidia-smi | grep " 2   0   0"
|  0    2   0   0  |     10MiB / 40448MiB | 42      0 |  3   0    2    0    0 |
|  1    2   0   0  |     10MiB / 40448MiB | 42      0 |  3   0    2    0    0 |
|  2    2   0   0  |     10MiB / 40448MiB | 42      0 |  3   0    2    0    0 |
|  3    2   0   0  |     10MiB / 40448MiB | 42      0 |  3   0    2    0    0 |

=== w/ NVIDIA driver 545.x ===
$ nvidia-smi | grep " 2   0   0"
|  0    2   0   0  |   37MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |
|  1    2   0   0  |    37MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |
|  2    2   0   0  |    37MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |
|  3    2   0   0  |    37MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |

This is perhaps the reason why the partition is reported as 3g.39gb instead of 3g.40gb. Since we already have lots of GPUs with 3g.40gb partitions and people are trained to use them, having to hack things by introducing a different label for the same Slurm GRES would create a lot of confusion and inconvenience. So, we should appreciate any guidance in resolving this issue.
Thanks a lot.

Just to confirm, which version of mig-parted is being used?

Hi @elezar ,
I've tried mig-parted version 0.5.4 and 0.5.5 on two different servers.

gpu025,

Driver Version: 535.86.10
CUDA Version: 12.2
Mig-parted version: 0.5.4

gpu030,

Driver Version: 545.23.08
CUDA Version: 12.3
Mig-parted version: 0.5.5

This used to be a known issue and was supposed to be resolved by this commit:
https://github.com/NVIDIA/mig-parted/commit/ef1220b79e04eb50b2e6304d0d6c87d4a4aab0a0
I verified this is part of v0.5.4 and v0.5.5 so maybe something has changed again and we need to sync up.

Hi @klueska : I wasn't able to get the memory of the "40gb" partition manually using the logic in ef1220b. The full GPU and MIG partition memory sizes differ based in the driver versions:

Driver Version:  495.29.05

Full:             81251MiB
3g.40gb:      40448MiB
2g.20gb:       19968MiB
1g.10gb:        9728MiB

Driver Version:  545.23.08

Full:               81920MiB (+669 MiB)
3g.40gb:       40192MiB (-256MiB)
2g.20gb:       19968MiB
1g.10gb:        9728MiB

The full GPU memory is reported as 669 MiB higher, but the "40GB" partition is 256MiB smaller.

Hi @klueska , @elezar :
Do you have recommendations on how to move forward with this? I see v0.5.3 - v0.5.5 were tested with CUDA base image 12.2.2. Are there plans to release a new version tested with CUDA 12.3.x and the latest drivers? Thanks.

Hi @klueska , @elezar : Do you have recommendations on how to move forward with this? I see v0.5.3 - v0.5.5 were tested with CUDA base image 12.2.2. Are there plans to release a new version tested with CUDA 12.3.x and the latest drivers? Thanks.

Sorry for the late reply here. I am following up internally as to whether there were changes in how the profile names are calculated. We do qualify the mig manager as part of the GPU Operator releases on new driver versions, but it may be that we miss specific hardware-driver combinations.

Hi @klueska , @elezar : Do you have recommendations on how to move forward with this? I see v0.5.3 - v0.5.5 were tested with CUDA base image 12.2.2. Are there plans to release a new version tested with CUDA 12.3.x and the latest drivers? Thanks.

Sorry for the late reply here. I am following up internally as to whether there were changes in how the profile names are calculated. We do qualify the mig manager as part of the GPU Operator releases on new driver versions, but it may be that we miss specific hardware-driver combinations.

Thanks, @elezar . If you are able to reproduce the same behavior internally and have a patch to fix it, we would appreciate using that until an updated release comes out.


NOT GOOD FAQ section for mobile screen

Is your feature request related to a problem? Please describe.
It should be fixed to have a good view on the mobile screen also

I would love to fix and make it look uniform for better user experience

⚠[URGENT]⚠ Reminder for Closing of Contribution period for GSSoC 24'
Finish your work and raise the PRs ASAP to get your points.
Thanks💗 for your valuable Contributions!

@4darsh-Dev
Kindly mrege this PR before GSSOC ends 😌

Hey @Utsavladia ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇

GSSoC 24 has been completed Finally'
It was a great experience working with you all
Thanks💗 for your valuable contributions!
PA nomination has been started, Do fill out the forms soon. Share your experiences and let's connect on socials


Failing tests due to Cairo 1.17.8 subpixel antialiasing update

In Cairo Version 1.17.8 there was new subpixel antialiasing introduced based on the changes in 1.17.4. This breaks the behavior of manim because it changes the output of the tests so many tests will fail due to different pixels at the border of mobjects.
One solution might be to increase the error ratio or update the test data. This will most likely break the tests for people using the older cairo version.

FYI, there's a new stable release of Cairo out now https://cairographics.org/news/cairo-1.18.0/


Double item

sometimes, the items floating above the chests multiply:
http://postimg.org/image/bbpd6qpwh/
Any fix ?

I know that bug, I had it myself on my test server but I haven't found a fix for it yet and as this bug is very rarely, I don't know when it occurs. The only way to remove the items on top of the chest is putting lava on top of the chest and take it back very fast so the items are removed but the lava hasn't spread yet. After that you must reload the shops (/shop reload).
If anyone finds an issue in the code, please let me know.


Prl 747 da home screen

JIRA link (if applicable)
Change description
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

Will be taken care as part https://github.com/hmcts/prl-ccd-definitions/pull/218


Limit connections per client

Hi,
Is there any way so we can limit connections per client
I mean the client A only accepts maximum 2 simultaneous connections
Thanks!

Currently, u can use traffic restrictions
v2ray's protocol almost impossible to limit each client's connection device (in my ability)

Currently, u can use traffic restrictions
v2ray's protocol almost impossible to limit each client's connection device (in my ability)

Can you please explain how to do so
Can we do it with config file?

Currently, u can use traffic restrictions
v2ray's protocol almost impossible to limit each client's connection device (in my ability)

Can you please explain how to do so
Can we do it with config file?

through v2ray's api interface, periodically get the traffic usage of a clients(user), and when it reaches a certain value, remove the clients
write the relevant code urself, of course there are some ready-made solutions

No solution has been found?!

i'm looking for a way too, :(

please introduce us those ready made solutions

Currently, u can use traffic restrictions
v2ray's protocol almost impossible to limit each client's connection device (in my ability)

Can you please explain how to do so
Can we do it with config file?

through v2ray's api interface, periodically get the traffic usage of a clients(user), and when it reaches a certain value, remove the clients
write the relevant code urself, of course there are some ready-made solutions

please introduce us those ready made solutions

i'm looking for a way too, :(

you can check this page
https://github.com/vaxilu/x-ui/pull/179


fix: detect packaging format for Maven Central from POM XML rather than always assuming jar

Fixes #85

Looks good!

:tada: This PR is included in version 2.10.5 :tada:
The release is available on:

Chrome Web Store
v2.10.5
GitHub release

Your semantic-release bot :package::rocket:


⚠ Bofrost.at has degraded performance

In dfc2f60, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 998 ms

Resolved: Bofrost.at performance has improved in 0886db5 after 6 minutes.


Corrects encoding of space in URL parameter

According to rfc2396, space in url should be encoded as "%20" instead
of "+".
Closes #225

NetflixOSS » feign » feign-pull-requests #104 SUCCESS
This pull request looks good

LGTM. thanks, santhosh!

Problem always exist in 8.18.0, it's normal ?

It is possible that this change didn't get cherry-picked


You may not @extend an outer selector from within @media error

I'm getting this error with 3.0.0-beta.4 when I have something as simple as this:
h1 {
  @extend h2;
}

It looks like others are having this problem as well.

This belongs to libsass: https://github.com/sass/libsass. All syntax related issue belong to libsass.

See http://sassmeister.com/gist/69d7ec29d7c737365399.
Ruby Sass throws different error. LibSass 3.1.0 does not throw any error. This itself is a bug.
You can prepare a similar gist with steps to reproduce for any such discrepancy you find.

Hmm perhaps I jumped the gun on this issue. I'll try to figure out more about what exactly is going on and open an issue with the appropriate project (if one exists).

This is issue https://github.com/sass/libsass/issues/943 and might already be fixed. Now it would be a node-sass issue, because it needs to be updated to libsass 3.2.0-beta.4
Please reopen this.

npm will happily update node-sass to the latest beta because of semver. You might need to rm -rf node_modules/ember-cli-sass to get it to upgrade to the latest version.
However the latest<EMAIL_ADDRESS>appears to use<EMAIL_ADDRESS>so you may want to create an issue on node-sass to update the libsass dependency, because this doesn't use npm (I think they use a Git submodule) so it won't automatically upgrade.

@aexmachina allright. thanks for clarification.


Add cluster-lock support

some way to prevent any updates on a cluster via locking mechanism
BaseController

possible solution 1: mount an optional configmap, and every cycle check if there is a "file" called lock-cluster with value true. Note in order for cluster to be locked the first time, the configmap will have to be created, and the controller pod restarted.

added and RemoteResource, RemoteResourceS3, ManagedSet, and MustacheTemplate have been updated to use the new feature. FeatureFlagSetLD and WatchKeeper have been left out, they do not modify other resources on the cluster, so shouldnt need this behavior.


Add in missing words

The significant life event grant seemed to reference that it worked the same way as the visiting grant but the words visiting grant weren't actually there. Initially said "works the same way as the, except the ..." Added in visiting grant to complete the sentence.

@therebbie let me know if this was correct. TY!


orientation of images in cell_communication output

Hello
I followed tutorial https://github.com/zcang/COMMOT/blob/main/docs/notebooks/visium-mouse_brain.ipynb on one of the 10x visium based ST test data in our lab.

But in output, it looks like there might be an issue with the orientation of images.
ct.pl.plot_cell_communication(adata_dis500, database_name='cellchat', pathway_name='COMPLEMENT', plot_method='grid', background_legend=True,
scale=0.00003, ndsize=10, grid_density=0.5, summary='sender', background='image', clustering='leiden', cmap='Alphabet',
normalize_v = True, normalize_v_quantile=0.995)

Please let me know how can I fix this issue .
I would appreciate all the suggestion!!!

Hi, I think this is an issue because the plotting function in COMMOT is not consistent with VISIUM coordinate.
A straightforward way is to manually exchange spatial coordinates sorted in adata.obsm['spatial'], and subtract each y coordinate with the max of y coordinate.
Let me know whether this works in your case!

Any news on this? This didn't work for me.
% ymax: max. value across all second elements of the array
adata_dis500.obsm['spatial'] = np.array([[i[0], i[1] - ymax] for i in adata_dis500.obsm['spatial'])

Two solutions:

adata.obsm['spatial'][:, 1] = -adata.obsm['spatial'][:, 1].

ax = ct.pl.plot_cell_communication(adata, ...)
ax.invert_yaxis()


add info in th README how to filter select just a few lines

This PR just adds some more documentation, about how to use some common features,
like e.g. filtering/selecting lines from the source file.
PS:
Locally the tests fail on my machine, but I hope my change/PR is accepted since it just covers documentation.

LGTM


Google Apps OAuth?

I was wondering if this plugin supports google oauth from google apps.  If not, would it be something you're interested in having supported?

Agree. It would be great to see support of google provider.

I was able to get google working with the following information supplied as "Custom:"
OAuth 2.0 authorization endpoint:
https://accounts.google.com/o/oauth2/v2/auth
OAuth 2.0 token endpoint:
https://www.googleapis.com/oauth2/v4/token
OAuth 2.0 user endpoint:
https://www.googleapis.com/oauth2/v3/userinfo
Scope:
openid+email+profile
However, there were a few caveats:

The username is set to an individuals full name. I was able to login to the same account with both my work email and my personal email (due to the full name being the same):   https://github.com/pwielgolaski/teamcity-oauth/blob/753a13f318003e9e143efa9b4d99012fe9228389/src/main/java/jetbrains/buildServer/auth/oauth/OAuthAuthenticationScheme.java#L86

Seems unable to keep people from signing up if they're from another domain on google.

The rest of the profile info, email, and whatnot aren't obtained.

Using the https://developers.google.com/oauthplayground/ explorer, it seems this is an example payload from google:
{
  "family_name": "Chancellor",
  "sub": "4324123432432141234231",
  "picture": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg",
  "locale": "en",
  "email_verified": true,
  "given_name": "Shammah",
  "email"<EMAIL_ADDRESS>
  "hd": "XXXXXXX.com",
  "name": "Shammah Chancellor"
}

It seems to match the spec here: http://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse

I don't normally develop on Java code, but I'll see if I can't set this compiling and put up a PR.  It seems simple enough to update.

I just added following preset:

installPreset("google", "https://accounts.google.com/o/oauth2/auth", "https://accounts.google.com/o/oauth2/token", "https://www.googleapis.com/oauth2/v2/userinfo");

And it work too but username of google domain and username of internal database are different so plugin try to register new user and this is not i want.
Let say "i have user on internal database and if his email exist in google domain then i have to be able to login as that user".

ServerPrincipalFactory.java
final SUser user = userModel.findUserByUsername(userName, PluginConstants.ID_USER_PROPERTY_KEY);

I think problem in string 46 but i have no competition in java. Don't know what is ID_USER_PROPERTY_KEY and what library teamcity use for oauth.

Hmm.  Yeah, I am trying to fix this more holistically, let me open a PR.  The problem with my solution is that it won't be backwards compatible.

Wow wow. Behold your horses. Our reactjs programmer working on it. Not java
but something close (:
26 мая 2017 г. 1:34 AM пользователь "Shammah Chancellor" <
<EMAIL_ADDRESS>написал:

Hmm. Yeah, I am trying to fix this more holistically, let me open a PR.
The problem with my solution is that it won't be backwards compatible.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pwielgolaski/teamcity-oauth/issues/9#issuecomment-304056928,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AH5xLDLR59tWoxun_fwX1jbUAjF7im5Wks5r9a2HgaJpZM4Ni5tS
.

I added support for google oAuth in https://github.com/pwielgolaski/teamcity-oauth/releases/tag/teamcity-oauth-1.1.2
Close it for now, if some feature is missing or does not work open separate issue


Quote debian-sys-maint mysql user

The latest tagged copy of the mysql module (3.1.0) requires that names
with special characters be properly quoted per mysql rules. This makes
it so that puppet-galera will work with puppetlabs-mysql 3.1.0.

Actually this doesn't work with 3.1.0 because the counting of characters is a mess. This whole bit of mysql code is a huge mess and it's been redone over and over since November. Any advice you have on a functional ref of the module appreciated.

I did start working on getting things working against master but I'm rewriting my whole environment from scratch and I'm not actually up to the galera bit.
I got https://github.com/puppetlabs/puppetlabs-mysql/commit/fe0365e80d4f93cc0db978b448e4db083d36845f merged in, but I'm guessing there's more broken things?

I was trying to make it work against 3.1.0 and it doesn't. Your commit
mentioned above was removed and redone completely and then redone again. I
got a bit annoyed so I was curious if you had a matching set of
galera/mysql refs. I'll look again when I can or you can let me know what
you find.
On Sat, Jan 17, 2015 at 8:45 PM, Michael Chapman<EMAIL_ADDRESS>wrote:

I did start working on getting things working against master but I'm
rewriting my whole environment from scratch and I'm not actually up to the
galera bit.
I got puppetlabs/puppetlabs-mysql@fe0365e
https://github.com/puppetlabs/puppetlabs-mysql/commit/fe0365e80d4f93cc0db978b448e4db083d36845f
merged in, but I'm guessing there's more broken things?
—
Reply to this email directly or view it on GitHub
https://github.com/michaeltchapman/puppet-galera/pull/22#issuecomment-70395394
.

I might modify the module file to lock against 2.2.0 if it's broken all over again, since that's what I am using for our stacktira release. I'll try to get things fixed up if I can against master but it might take some time.

We're using 2.3.0 relatively successfully. I occasionally get nodes that
come up and attempt to setup users and grants before dropping
/root/.my.cnf, so I was trying to pick-up c4d45c3e
https://github.com/puppetlabs/puppetlabs-mysql/commit/c4d45c3eb5929ee27e0bd877e737303f8cf29a58
but
figured I go to the latest tag to avoid falling behind more.
On Sat, Jan 17, 2015 at 9:08 PM, Michael Chapman<EMAIL_ADDRESS>wrote:

I might modify the module file to lock against 2.2.0 if it's broken all
over again, since that's what I am using for our stacktira release. I'll
try to get things fixed up if I can against master but it might take some
time.
—
Reply to this email directly or view it on GitHub
https://github.com/michaeltchapman/puppet-galera/pull/22#issuecomment-70395787
.

ah. I'll try to set aside some time for a 'sprint' to get things working against master again.
@rickerc interested?

Hello sir,
Same issue here ~

Is this still an issue in 2017? Anyone still interested? Otherwise I'd close this PR.

No feedback – I'm closing this issue for now. Please add a comment if this is still an issue for you.


threads should be a positive integer

TYPE ERROR
hack-manager.js@home (PID - 9)
exec: threads should be a positive integer, was 7320.958053450061
Stack:
<EMAIL_ADDRESS>L366:
ns.exec('targeted-grow.js', prep_server, gt, gt, 0, hack_target);
i think its the gt variable from L339:
gt = ns.growthAnalyze(hack_target, initial_growth_amount);
exec() says it round to the nearest integer but apparently its not.
I'm not sure if this is an issue for your script or bitburner

Just heard from that exec doesnt round for threads anymore in an update.

Hello, sorry for the slight revival, but I noticed this issue was never solved and wanted to provide my solution.
L81    for (let i = 0; i < host_servers.length; i++) {
L82    		const server = host_servers[i];
L83    		let threads = 0;
L84                  Number.isInteger(threads)
L85                  if (weaken_threads > 0) {
L84 being my edit, this has caused the error described by OP to be fixed, however I am seeing an issue where the script will only loop once or twice, sleep for 1 millisecond, then sleep indefinitely without warning. If anyone has any insight, it would be appreciated.


Postman Interceptor not connecting

Describe the bug
Postman Interceptor does not connect between Google Chrome and Postman.
To Reproduce
Steps to reproduce the behavior:

Install google-chrome
Install postman
Install Postman Interceptor addon in Chrome (https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo)
Run google-chrome and postman
Install Postman Interceptor Bridge in Postman (click button in Postman UI).

(Said button would appear in same region as attached image, but I have already clicked it, so it does not show).

Turn Capture cookies on.
No connection in Postman

Expected behavior
Should connect.
Screenshots

Additional context
postman 7.36.1
google-chrome 88.0.4324.182
The above reproduction steps work fine on Arch linux.

On arch linux, with just chromium installed, it complains that chrome isn't installed (inside Postman) and doesn't work. So I believe google-chrome is required for said functionality.

Notify maintainers

@xurei @evanjs
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
greghab@nixGreg> nix-shell -p nix-info --run "nix-info -m"                                                                                ~
 - system: `"x86_64-linux"`
 - host os: `Linux 5.10.17, NixOS, 20.09.3281.06b11191834 (Nightingale)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4pre20201201_5a6ddb3`
 - channels(greghab): `""`
 - channels(root): `"nixos-20.09.3281.06b11191834, nixos-unstable-21.05pre272380.f6b5bfdb470"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

This is probably because InterceptorBridge is downloaded manually by the Postman. Therefor, the binary can't be executed due to missing lib.
$ ls ~/.postman/InterceptorBridge/InterceptorBridge
/home/username/postman/InterceptorBridge/InterceptorBridge

$ ldd ~/.postman/InterceptorBridge/InterceptorBridge
	libstdc++.so.6 => not found

The solution is somehow to patch the InterceptorBridge ourselves, using patchelf. I've not tried.

@johnrichardrinehart I think this should be closed. Discussion then can be in NixOS discourse and put into wiki.

@Abdillah While I'm not opposed to closing as stale I don't have the authority to close issues. Maybe other maintainers (@evanjs @tricktron @Craftzman7) have elevated privileges and also want to close.

I agree. However, I'll wait for input from other maintainers on this.

time

"reasonable time frame" being something like 2 weeks?

Sure. Sounds good.

@greghab Please follow up if you'd like to keep this ticket alive.

@johnrichardrinehart I think closing it sounds good to me. I haven't used Postman Interceptor since the posting of this issue, so I'm not too invested in this currently, nor necessarily in keeping it alive.
So:

1: close this issue
2: optionally add/update a wiki entry documenting some sort of patching to the binary to get that feature working, as mentioned above
3: and if (2) doesn't resolve/address it, someone can at a later point comment on this closed issue and it can be investigated further, or they can open a new issue referencing this one.

I'm going to go ahead and close this up then.


FN - ice phishing

In some cases the scam detector is not alerting the recipients of ice phishings.
Case 1:
Address was drained for 10 wbtc, here the tx
0x0000C5d73291e9ae226E7fE59ea1e6b68bE30000 was the address that the user approved and the one that Forta alerted.
Nevertheless, the address where funds went was not alerted. 0xc7c195a20ee6991ef20de42c669f30b27d7c4dd1.
Case 2:
Address was drained for 190 USDC, here the tx
0x0000c84206a971Ba91B6CA790636cFf1640D0000 was the address that the user approved and the one that Forta alerted.
Nevertheless, the address where funds went was not alerted. 0xa66cE2010C12B6df5E7E5E4E64f82704345A6A0F .

There was a bug in the way NIP-9's metadata were parsed, which has been fixed.


Add new action page for payment methods

cc: @marcaaron
Details
This PR just adds some data to ONYX which will be used in other PRs in this tracking issue. We are doing this first without other code to help parallelize work.
Fixed Issues
Fixes https://github.com/Expensify/Expensify/issues/166271
Tests

Import the function in the payments page
Go to the payments page
Check onyx and make sure that the user's wallet, cards, and bank accounts are saved

QA Steps
None
Tested On

[x] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

LGTM

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging in version: 1.0.71-1🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production in version: 1.0.73-3🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Wrong lexing of VimScript

This snippet:
" GoTo*
map <silent> <M-g> <leader>rj
" Find references
map <silent> <M-S-f> <leader>rf
" Rename
map <silent> <M-S-r> <leader>rw

Is rendered like this:

The comments are lexed as strings (This is the offending line, but I couldn't fix it: https://github.com/isagalaev/highlight.js/blob/master/src/languages/vim.js#L49). Even vim fails highlighting comments properly sometimes, but I think this can be made more accurate. ^".*$ should definitely be a comment for example.
map is lexed as a builtin, but it's a keyword
g, f, r are lexed as keywords, but they aren't (I think they aren't ever keywords, just modifiers in commands?)

Possible improvements: 'strings' also exist in VimScript. Also, the <thingies> are key bindings and could possible use a separate style.

Could you explain further about strings vs. comments? From what you said I can gather this:

a double-quote at the beginning of the line starts a line comment
a double-quote somewhere else is a string and can be ended with another double-quote or a new-line? or just a double-quote?

Also, is it right that <...> can only contain \w+? Or whitespace is allowed too?

Thanks for the quick response. From my experience:

a double-quote at the beginning of the line starts a line comment

Correct.

a double-quote somewhere else is a string and can be ended with another double-quote or a new-line? or just a double-quote?

In my experience, it is like this:

double quote in the middle of the line + content + newline = comment. Mind you, this is something that vim fails to highlight properly:

double quote in the middle of the line + content + newline + \ at the beginning of the next line = string

Also, is it right that <...> can only contain \w+? Or whitespace is allowed too?

No, I think it is closer to [\w\d\-]+.
I'm not terribly knowledgable about VimScript though, but the above rules definitely give a better approximation.

Ok, got it.

double quote in the middle of the line + content + newline + \ at the beginning of the next line = string

That's crazy :-) I'll see what I can do!

That's crazy :-)

That's VimScript in a nutshell :) The leading backslash is the line continuation symbol in the language to avoid some incompatibility. Here's the docs: http://vimdoc.sourceforge.net/htmldoc/repeat.html#line-continuation

Work in progress:

Okay, I've fixed it to the best of my abilities:

Key bindings (<..>) are now recognized as symbols
Comments and strings are mostly correct (see note at the end of f2e6828b0)
Removed built-ins that were also listed as keywords (including 'map')

I don't really know what to do with those single-letter keywords, I don't use VimScript at all. @sztomi if you feel they'd rather go away, feel free to file a pull request with this change. There are also suspiciously named built-ins: "and", "or". May be they're keywords too?

Wow, that was fast. Thanks! How stable is HEAD? Can I just grab the current commit and use it on my blog? (I'm writing a blog post and I encountered the above bug during that). Or is there a release coming soon?

I don't really know what to do with those single-letter keywords, I don't use VimScript at all. @sztomi if you feel they'd rather go away, feel free to file a pull request with this change.

Will do. At best, they are Ex "keywords" but I'm not sure if there is such terminology for Ex even. Vim doesn't highlight them.

There are also suspiciously named built-ins: "and", "or". May be they're keywords too?

They are definitely not keywords, but I'm not sure if they even exist in vanilla vim. I found this, which states they are bitwise functions, but I couldn't find them in the vim version of the same document. I also found some mailing list threads where vim authors were reluctant to add them. Anyway, neither vim nor neovim highlights these (or any builtins, as far as I can tell).

Wow, that was fast.

To be honest, I started to tackle it only because I thought it'd be a very quick fix. And when it became apparent it wasn't, it was too late to just drop it on the floor, so I had to finish it :-)

How stable is HEAD? Can I just grab the current commit and use it on my blog?

Pretty stable. If the tests pass, the build is highly unlikely to hang anything. Also, we're just past a big naming change of CSS classes, so you won't even be affected by this once-in-a-few-years breakage.

Or is there a release coming soon?

We do it regularly every 6 weeks. The next one is planned on Feb, 23.

Anyway, neither vim nor neovim highlights these (or any builtins, as far as I can tell).

Let them live for now then. No harm in having those, I think.


add adaptivity, change Ferrite dep to fork

Ferrite.jl is used based on a fork until #363 is merged.

Codecov Report

Merging #3 (3039f0d) into main (d79d407) will decrease coverage by 49.24%.
The diff coverage is 18.51%.

@@             Coverage Diff             @@
##             main       #3       +/-   ##
===========================================
- Coverage   92.68%   43.44%   -49.25%
===========================================
  Files           2        3        +1
  Lines          41      122       +81
===========================================
+ Hits           38       53       +15
- Misses          3       69       +66

Impacted Files
Coverage Δ

src/adaptivity.jl
18.51% <18.51%> (ø)

Continue to review full report at Codecov.

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


Compile error

I'm hoping this plugin will help to overcome a cors issue on iPad (only).
I'm getting the following two errors when running ionic serve to test
[ng]
./node_modules/ngx-capacitor-http/fesm2015/ngx-capacitor-http.mjs:72:13-23 - Error: export 'catchError' (imported as 'catchError') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip)
[ng]
[ng] ./node_modules/ngx-capacitor-http/fesm2015/ngx-capacitor-http.mjs:72:76-79 - Error: export 'map' (imported as 'map') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip)
[ng]

@connectMyClub what version of rxjs is your application using? The library takes advantage of 7.4.0.

I'm hoping this plugin will help to overcome a cors issue on iPad (only).
I'm getting the following two errors when running ionic serve to test
[ng]
./node_modules/ngx-capacitor-http/fesm2015/ngx-capacitor-http.mjs:72:13-23 - Error: export 'catchError' (imported as 'catchError') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip)
[ng]
[ng] ./node_modules/ngx-capacitor-http/fesm2015/ngx-capacitor-http.mjs:72:76-79 - Error: export 'map' (imported as 'map') was not found in 'rxjs' (possible exports: ArgumentOutOfRangeError, AsyncSubject, BehaviorSubject, ConnectableObservable, EMPTY, EmptyError, GroupedObservable, NEVER, Notification, NotificationKind, ObjectUnsubscribedError, Observable, ReplaySubject, Scheduler, Subject, Subscriber, Subscription, TimeoutError, UnsubscriptionError, VirtualAction, VirtualTimeScheduler, animationFrame, animationFrameScheduler, asap, asapScheduler, async, asyncScheduler, bindCallback, bindNodeCallback, combineLatest, concat, config, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, identity, iif, interval, isObservable, merge, never, noop, observable, of, onErrorResumeNext, pairs, partition, pipe, queue, queueScheduler, race, range, scheduled, throwError, timer, using, zip)
[ng]

Imports from
import { defer, catchError, throwError, map } from 'rxjs';
to
import { defer, throwError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';


Add DXGI error handling with DXGI InfoQueue

Error Handling required for DXGI calls instead of only d3d12 calls.

fixed


Auto handle Apple char update failures

/review

@fotiDim first suggestion from AI was to use OpeartionQueue in swift, and i tried that as well, it felt over complicated for our usecase, as we dont really need this much complex implementation
Thats why i came up with that solution of using a siimple list to process queue, and because Swift auto notify us if we are ready to process next updates, we dont really need our own implementation of managing queue
i still feel that your last commit complicated things, because we dont need retry mechanism, like i said, swift will auto notify us that we are ready to update chars
also i saw that now we are using Thread.sleep which might cause lag in ui ( not sure )
Thread.sleep(forTimeInterval: 0.1 * Double(retryCount))

but anyway i would say we don't really have to overcomplicate this with OperationQueue and any kind of retry mechanism

@rohitsangwan01 I reverted my commit. Please check the comment I left for your code.


Create note if button links to not created yet note

Is it possible for a button that links to a not created yet note, to create it?
Purpose is a button in daily note that links to tomorrow's note:
name Day after
type link
action obsidian://open?vault=ObsidianVault&file=Daily%20Notes%2F2024%2F02-February%2F2024-02-23-Fri
color blue

You could do this with a Templater template that checks if the note exists and if it doesn't creates it.
You might also get this to work using the advanced-uri plugin.

Thanks for your input. I'm not sure how to do this with any of those plugins. If anyone has a similar setup please do show.

Please ask these types of questions in the Obsidian members discord. You can ask in the #templater channel for a Templater specific solution or #plugin-general for other options.

Meta bind buttons can do this


Improved it's main UI designs.

I love this app. This is too good but it's UI is not Simple like any other player. Make it simple and handy.
All timer show one side one after another it is confusing.
If you want to play(switched) next videos then you have no any option until wait for the end or move slider to end.
If every tabs are fixed then it is easy to tap(habit like keyboard)
horizontal scrolling is take some time.
Please Improved it's main UI designs.
See this

I'm mostly using the default ExoPlayer UI and not planning any major changes.


Ingest new metadata in fastpath for blocking detection

Version 0.3
Detect and score blocking of:

Facebook Messenger
Telegram
Whatsapp
Header field manipulation test
Vanilla Tor connectivity test
TCP connect test
DASH Dynamic Adaptive Streaming over HTTP
Meek

Basic handling (without scoring) of:

Psiphon
NDT

Minor improvements

Rebased on master


Weird 20 character wrapping in --help

I've only seen this in the Nomad tools, all my other rubygem-based tools (Cocoapods, xcpretty) output just fine. When calling --help the output is wrapped to 20 characters (including the newline). Running the tool normally (ipa build --verbose, for example) works just fine.
~/Programming/iOS/Peer  (develop)> ipa build --help
  build

  Usage: ipa build
[options]

  Options:
    -w, --workspace
WORKSPACE Workspace
(.xcworkspace) file
to use to build app
(automatically
detected in current
directory)
    -p, --project
PROJECT Project
(.xcodeproj) file
to use to build app
(automatically
detected in current
directory,
overridden by
--workspace option,
if passed)
    -c,
--configuration
CONFIGURATION
Configuration used
to build
    -s, --scheme
SCHEME  Scheme used
to build app
    --xcconfig
XCCONFIG  use an
extra XCCONFIG file
to build the app
    --xcargs XCARGS
pass additional
arguments to
xcodebuild when
building the app.
Be sure to quote
multiple args.
    --[no-]clean
Clean project
before building
    --[no-]archive
Archive project
after building
    -d,
--destination
DESTINATION
Destination.
Defaults to current
directory
    -m, --embed
PROVISION Sign .ipa
file with
.mobileprovision
    -i, --identity
IDENTITY Identity
to be used along
with --embed
    --sdk SDK
use SDK as the name
or path of the base
SDK when building
the project
    --ipa IPA
specify the name of
the .ipa file to
generate (including
file extension)

I actually have the same issue with fastlane and its tools:
felixkrause@FelixsMBPRetina deliver (master) $ deliver --help
  deliver

  CLI for 'Deliver' - Upload screenshots, metadata and your app to the App
Store using a single command

  Commands:
    help                 Display global or [command] help documentation
    init                 Creates a new Deliverfile in the current directory
    run                  Run a deploy process using the Deliverfile in the
current folder
    testflight           Uploads a given ipa file to the new Apple
TestFlight

  Global Options:
    -f, --force          Runs a deployment without verifying any
information (PDF file). This can be used for build servers.
    --beta               Upload a beta build to iTunes Connect. This uses
the `beta_ipa` block.
    --skip-deploy        Skips submission of the build on iTunes Connect.
This will only upload the ipa and/or metadata.
    -h, --help           Display help documentation
    -v, --version        Display version information

  Author:
    Felix Krause<EMAIL_ADDRESS>
  Website:
    https://fastlane.tools

  GitHub:
    https://github.com/krausefx/deliver

just with a far more characters and only for the --help command. I haven't had time to look into this issue.

Thanks for the info @KrauseFx. Does it happen for everyone or just some users?

Looks like a weird interaction between Commander and HighLine
See:
https://github.com/commander-rb/commander/issues/11
https://github.com/commander-rb/commander/issues/8

Fixed for 0.13.2.

@mattt: still seeing the issue on 0.13.2
~ > ipa --version
ipa 0.13.2
~ > ipa --help
  ipa

  Build and
distribute iOS apps
(.ipa files)

  Commands:
    build
Create a new .ipa
file for your app

distribute:crashlyt
ics Distribute an
.ipa file over
Crashlytics

distribute:deployga
te Distribute an
.ipa file over
deploygate
    distribute:fir
Distribute an .ipa
file over fir.im
    distribute:ftp
Distribute an .ipa
file over FTP

distribute:hockeyap
p Distribute an
.ipa file over
HockeyApp

distribute:itunesco
nnect Upload an
.ipa file to iTunes
Connect

distribute:pgyer
Distribute an .ipa
file over Pgyer
    distribute:s3
Distribute an .ipa
file over Amazon S3
    help
Display global or
[command] help
documentation
    info
Show mobile
provisioning
information about
an .ipa file

  Aliases:
    distribute:sftp
distribute:ftp
--protocol sftp

  Global Options:
    --verbose

    -h, --help
Display help
documentation
    -v, --version
Display version
information
    -t, --trace
Display backtrace
when an error
occurs

  Author:
    Mattt Thompson
<EMAIL_ADDRESS>
  Website:
    http://mattt.me

I just updated to the latest version and start seeing this issue too.

@mattt Unfortunately this issue isn't resolved yet. But as it seems it has nothing to do with shenzhen as I'm seeing the same behaviour when running highline directly. I'll file an issue there.

Submitted the issue with an example on how to reproduce: https://github.com/JEG2/highline/issues/138
Let's see if we get an response.

Hi, It's probably a regression in HighLine.
PR at JEG2/highline#139

Fix released at https://github.com/JEG2/highline/pull/139#issuecomment-94320055
Could @johnboiles and the others please confirm is working in your setups?

That does it for me! Thanks all!

Thanks @johnboiles!

Is it expected behavior to wrap at 55 characters? That's what I'm seeing in 0.14.0, in a terminal window that's much wider.
$ ipa build --help

  build

  Usage: ipa build [options]

  Options:
    -w, --workspace WORKSPACE Workspace (.xcworkspace)
file to use to build app (automatically detected in
current directory)
    -p, --project PROJECT Project (.xcodeproj) file to
use to build app (automatically detected in current
directory, overridden by --workspace option, if passed)
    -c, --configuration CONFIGURATION Configuration used
to build
    -s, --scheme SCHEME  Scheme used to build app
    --xcconfig XCCONFIG  use an extra XCCONFIG file to
build the app
    --xcargs XCARGS      pass additional arguments to
xcodebuild when building the app. Be sure to quote
multiple args.
    --[no-]clean         Clean project before building
    --[no-]archive       Archive project after building
    -d, --destination DESTINATION Destination. Defaults
to current directory
    -m, --embed PROVISION Sign .ipa file with
.mobileprovision
    -i, --identity IDENTITY Identity to be used along
with --embed
    --sdk SDK            use SDK as the name or path of
the base SDK when building the project
    --ipa IPA            specify the name of the .ipa
file to generate (including file extension)


Understanding the dependencies

There are dependencies in vendor/github.com/. I'm trying to get my head around those so I did a bit of research, and maybe this is useful for someone else. I've added several questions along the way.
jessevdk/go-flags -> Helper
mitchellh/go-homedir -> Helper
mattn/go-isatty -> Helper
mattn/go-colorable -> Logging
fatih/color -> Logging (do we need two color libraries?)
natefinch/lumberjack -> Logging
op/go-logging	 -> Logging (do we need two logging libraries?)
OpenBazaar/spvwallet -> Bitcoin
tyler-smith/go-bip39 -> Bitcoin
btcsuite -> Bitcoin
boltdb/bolt -> DB
xeodou/go-sqlcipher -> DB (why both sql and bolt?)
gorilla/websocket -> Client-server communication
ipfs/go-ipfs -> Core tech
golang/protobuf -> Protocol specification?
dropbox/dropbox-sdk-go-unofficial -> Is OB2.0 using DropBox?
ccding/go-stun -> Isn't this handled by libp2p?

(do we need two color libraries?)
I believe the first one is a dependency of the second.

Logging (do we need two logging libraries?)

The second one handles log rotation.

Ok, I think I have most my questions answered here. Thanks.


Migrate Firebase Token to Service Account for Firebase App Distribution

Why
Original RFC
The FIREBASE_TOKEN for Firebase App Distribution will soon be deprecated. We should update the template to use a service account instead.
Migration Guide
Who Benefits?
Android developers
Acceptance Criteria

Update Firebase Distribution Github Action to v1.5.0
Update CICD to replace Firebase action token with serviceCredentialsFileContent
Add README.md in .cicdtemplate to show steps how to generate the credentials for usage

@ryan-conway I think we need to update the specify version for this plugin from @v1 to @v1.5.0 too. 🙏🏻

@ryan-conway This ticket is duplicated with https://github.com/nimblehq/android-templates/issues/360. Do you mind closing and replacing one by another 👋

Closing as duplicate of #360


Separate upgrade points for Endless mode

I feel the recent Endless mode suffers from inheriting the upgrades and cryptocoins from the previous Normal and Turbo modes.
You enter the first Endless levels with a huge amount of upgrade points that renders them trivial and uninteresting. But as the difficulty (slowly) increases, it requires you farm many more cryptocoins for increasingly costly upgrades that don't even impact that much.
This gives the Endless mode a rather short "sweet spot" where your own level of upgrades and the generated level's difficulty match so as to provide you with a good challenge, and the rest being either too easy and uninteresting, or frustratingly hard.
For this reason i'd suggest having Endless start with your cryptocoins and recruit upgrades back to zero. The cryptocoins and upgrades you'd get through Endless would only be usable there.
Maybe even have a different cryptocoin colour so as to be clear the upgrades aren't shared with Normal and Turbo.
This would allow for a broader difficulty range and level variety (#95) to be experienced in this mode !

Alternatively, maybe a completely new/different set of chips or upgrades are in order. Prior to the release of endless mode, I would play through all 56 levels sequentially and not advance to the next level until I completed the current level perfectly (no lives lost). Once level 28 Turbo was completed, I reset and start over. This game has become something of a meditation for me. I play in the mornings while sitting on my patio and having my coffee, during my work breaks, in waiting rooms etc.
Endless mode was appealing, at first, for the sake of simply focusing on the level strategy rather than the the"big picture" upgrade strategy as the primary focus. The first few levels, of course, were fairly simple with my current upgrades, but it was no different than starting Turbo mode with the upgrades accumulated from normal mode. As expected, the difficulty soon matched my upgrades, then rapidly exceeded them. I slowly balanced my upgrades with the difficulty - well, maybe not balanced, but closed the gap.
However, it was not long until all upgrades were purchased and the difficulty continued to accelerate. Once you get into endless levels ~50+ you can't even bother trying the smaller maps. There is no strategy that can possibly survive beyond wave ~40 on a small map. If you cannot place at least 4-5 chips between the entry and the CPU, you are going to lose. The attackers are so powerful and so numerous that you can watch some of them enter the map so close to another attacker that they glide over chips, untouched. Sometimes all the way to the CPU without a single chip affecting them.
Then there is the clock chip. Obviously, it's absolutely mandatory in every level after a fairly early endless level. Overheating soon becomes a major problem simply because of the number of attackers, and irrespective of the number or level of chips in the higher levels. For endless mode, we really need a significant nerf to the temperature or, better yet, perhaps a CPU cooler upgrade path for endless mode? I'm at level 67 and have had no upgrades left to purchase for quite some time now, so there is definitely room for more upgrades in endless.
Also, to help with the volume, speed and frequency of attackers in the higher levels, perhaps some additional upgrades for the mem and acc chips to help "thin the herd" and make these levels more strategically viable? At this point, I feel like it's really just luck to survive a level anymore. As soon as the level loads, I reset it and load again unless the map is large enough to have any chance of success. This usually takes 5-10 resets per level. Even then, survival is basically luck. Usually by the skin of my teeth. It's difficult to have endless increase in attacker frequency and strength with no way to improve your defense strength. The attackers have become less and less stoppable no matter how many chips or what level those chips are. Additionally, the cost of chip level increases is so high that the higher levels are becoming unbalanced after ~10-15 waves because the attackers are already so much more powerful than your chips, so your chip level increases are always well behind the attackers strength increases.
As another possible solution, perhaps the current upgrades continue as they currently exist but you could add more upgrades that are purchased for the current level to boost those original upgrades. Perhaps introducing a new currency to earn during the Endless level and spent only in that level from the pause menu or maybe between waves? Maybe instead of more endless levels, it becomes simply a single endless level and each "level" is instead the next wave? After each wave, you could use your accumulated currency to purchase chip boosts, additional chip slots for the map,
etc. and make it more of a "choose your own adventure" type of endless mode.
I recognize and appreciate the difficulty of offering an "endless" mode that is satisfying, balanced and engaging - please don't take these criticisms as negative commentary because they are not intended as such. This game is brilliantly simple, yet rewarding and challenging enough to enjoy it over and over again. I will gladly continue to reset and start over - with or without playing endless mode.

Thanks for the detailed feedback ! it pretty much mirrors my own, and i share most of your gripes with the difficulty.

you could add more upgrades that are purchased for the current level to boost those original upgrades.

Stronger updates for current recruits is quite an easy thing to do i believe: unlock the limited number of extra upgrades (Sid Meier) for every recruit currently limited to… 3 i think ?, and procedurally generate new upgrades past that point that increment recruit benefits. I believe each upgrade cost and benefit is manually set as of now, so that would still be some work, but still quite feasable.
New upgrades could be envisioned, yes: you evoked possible MEM and ACC chip upgrades, some that would improve their speed and attack range would be pretty straightforward to implement.

Alternatively, maybe a completely new/different set of chips or upgrades are in order.

… but that! would be quite another can of worms, and a lot of work! lore-wise and gameplay-mechanics-wise. If you do come up with fitting new chip ideas, make sure to suggest them in a new issue because i bet they'd also be intersting for regular levels :p

Perhaps introducing a new currency to earn during the Endless level and spent only in that level

Indeed that's pretty much the idea i suggested in the first message of this suggestion, glad you came up with a similar conclusion :)
Le 25 février 2024 18:41:09 GMT+01:00, The-JMFB @.***> a écrit :

Alternatively, maybe a completely new/different set of chips or upgrades are in order. Prior to the release of endless mode, I would play through all 56 levels sequentially and not advance to the next level until I completed the current level perfectly (no lives lost). Once level 28 Turbo was completed, I reset and start over. This game has become something of a meditation for me. I play in the mornings while sitting on my patio and having my coffee, during my work breaks, in waiting rooms etc.
Endless mode was appealing, at first, for the sake of simply focusing on the level strategy rather than the the"big picture" upgrade strategy as the primary focus. The first few levels, of course, were fairly simple with my current upgrades, but it was no different than starting Turbo mode with the upgrades accumulated from normal mode. As expected, the difficulty soon matched my upgrades, then rapidly exceeded them. I slowly balanced my upgrades with the difficulty - well, maybe not balanced, but closed the gap.
However, it was not long until all upgrades were purchased and the difficulty continued to accelerate. Once you get into endless levels ~50+ you can't even bother trying the smaller maps. There is no strategy that can possibly survive beyond wave ~40 on a small map. If you cannot place at least 4-5 chips between the entry and the CPU, you are going to lose. The attackers are so powerful and so numerous that you can watch some of them enter the map so close to another attacker that they glide over chips, untouched. Sometimes all the way to the CPU without a single chip affecting them.
Then there is the clock chip. Obviously, it's absolutely mandatory in every level after a fairly early endless level. Overheating soon becomes a major problem simply because of the number of attackers, and irrespective of the number or level of chips in the higher levels. For endless mode, we really need a significant nerf to the temperature or, better yet, perhaps a CPU cooler upgrade path for endless mode? I'm at level 67 and have had no upgrades left to purchase for quite some time now, so there is definitely room for more upgrades in endless.
Also, to help with the volume, speed and frequency of attackers in the higher levels, perhaps some additional upgrades for the mem and acc chips to help "thin the herd" and make these levels more strategically viable? At this point, I feel like it's really just luck to survive a level anymore. As soon as the level loads, I reset it and load again unless the map is large enough to have any chance of success. This usually takes 5-10 resets per level. Even then, survival is basically luck. Usually by the skin of my teeth. It's difficult to have endless increase in attacker frequency and strength with no way to improve your defense strength. The attackers have become less and less stoppable no matter how many chips or what level those chips are. Additionally, the cost of chip level increases is so high that the higher levels are becoming unbalanced after ~10-15 waves because the attackers are already so much more powerful than your chips, so your chip level increases are always well behind the attackers strength increases.
As another possible solution, perhaps the current upgrades continue as they currently exist but you could add more upgrades that are purchased for the current level to boost those original upgrades. Perhaps introducing a new currency to earn during the Endless level and spent only in that level from the pause menu or maybe between waves? Maybe instead of more endless levels, it becomes simply a single endless level and each "level" is instead the next wave? After each wave, you could use your accumulated currency to purchase chip boosts, additional chip slots for the map,
etc. and make it more of a "choose your own adventure" type of endless mode.
I recognize and appreciate the difficulty of offering an "endless" mode that is satisfying, balanced and engaging - please don't take these criticisms as negative commentary because they are not intended as such. This game is brilliantly simple, yet rewarding and challenging enough to enjoy it over and over again. I will gladly continue to reset and start over - with or without playing endless mode.
--
Reply to this email directly or view it on GitHub:
https://github.com/ochadenas/cpudefense/issues/97#issuecomment-1963010019
You are receiving this because you authored the thread.
Message ID: @.***>

You have me convinced ;) Will try  to have a separate update path for the "endless" series, but this needs some work, and will have to wait until 1.31 or 1.32.
But at least there is a new hero (Claude Chappe) in 1.30 who reduces heat generation.

I disagree with the hero reset.  After the standard levels, I find (only on level 11 of endless) that some of them were already far too difficult.  With many levels the number of possible starting points and path diversions makes only with multiple tries and luck where some paths aren't chosen until I can get enough info to populate them.  If my heroes were reset, I'd be unable to progress at all. As it is, I am having to employ heavy micromanaging, very fast footwork, and can spend more time paused than playing.
The issue I see with "endless mode" the way it's implemented now is that it is at odds with the tower defense format.  Tower defenses are supposed to be primarily strategic, and the way endless mode is now makes the levels more difficult by making them increasingly tactical.  This means that as players move up you are pushing them more towards a different kind of game than they started playing.
When I saw endless mode, I worked to unlock it because I thought it was finally a mode where the attackers were endless, not the levels.  I am disappointed when I reach the end with many levels because I love my defense designs and would love to test them against really tough waves and see how far I can get before the design cracks, then go back and tweak it.
Randomly generated levels have their place, and I would keep that paradigm, but I would put them in as something the player activates and controls.  Give the player more control over them and have it as a way for the player to generate challenging courses when the current ones are boring.  But I would wholeheartedly recommend that "endless" mode be switched to endless attackers.  Give the player a way to set the initial difficulty and see how far they can get before their defense crumbles.  Perhaps you can refuse to send coins on a level replay until: 1) the player reaches a wave past the highest previously achieved , or 2) the player runs that level with a higher initial difficulty (which should be rewarded).

I disagree with the hero reset. After the standard levels, I find (only on level 11 of endless) that some of them were already far too difficult.

I dudn't have the opportunity to play 1.30, but i believe the difficulty of early levels will be less difficult in order to adapt to this idea ? if not, it definitely should.

Tower defenses are supposed to be primarily strategic, and the way endless mode is now makes the levels more difficult by making them increasingly tactical.

I'm not sure i understand the difference you make between strategic and tactical, could you elaborate ?
I am on bward with you idea for your own vision of Endless ! it feels like we were all expecting this kind of endless levels to come up, and instead we got procedurally generuted levels haha. Which is great ! but very different.
We've requested such endless levels with increasingly difficult wave by the past, but neverv formally, maybe it's time to open a suggestion-issue for it !…
Le 6 mars 2024 03:07:27 GMT+01:00, Kurt Fitzner @.***> a écrit :

I disagree with the hero reset.  After the standard levels, I find (only on level 11 of endless) that some of them were already far too difficult.  With many levels the number of possible starting points and path diversions makes only with multiple tries and luck where some paths aren't chosen until I can get enough info to populate them.  If my heroes were reset, I'd be unable to progress at all. As it is, I am having to employ heavy micromanaging, very fast footwork, and can spend more time paused than playing.
The issue I see with "endless mode" the way it's implemented now is that it is at odds with the tower defense format.  Tower defenses are supposed to be primarily strategic, and the way endless mode is now makes the levels more difficult by making them increasingly tactical.  This means that as players move up you are pushing them more towards a different kind of game than they started playing.
When I saw endless mode, I worked to unlock it because I thought it was finally a mode where the attackers were endless, not the levels.  I am disappointed when I reach the end with many levels because I love my defense designs and would love to test them against really tough waves and see how far I can get before the design cracks, then go back and tweak it.
Randomly generated levels have their place, and I would keep that paradigm, but I would put them in as something the player activates and controls.  Give the player more control over them and have it as a way for the player to generate challenging courses when the current ones are boring.  But I would wholeheartedly recommend that "endless" mode be switched to endless attackers.  Give the player a way to set the initial difficulty and see how far they can get before their defense crumbles.  Perhaps you can refuse to send coins on a level replay until: 1) the player reaches a wave past the highest previously achieved , or 2) the player runs that level with a higher initial difficulty (which should be rewarded).
--
Reply to this email directly or view it on GitHub:
https://github.com/ochadenas/cpudefense/issues/97#issuecomment-1979949121
You are receiving this because you authored the thread.
Message ID: @.***>

I'm not sure i understand the difference you make between strategic and tactical, could you elaborate ?

Strategic vs tactical is like playing Risk vs playing Call of Duty.  Tower defense games aren't intended to be click speed.    You aren't in there at the tactical level shooting the bad guys one by one yourself.  The way this one is structured with random levels requires you to micromanage to such an extent at later levels that it changes the whole feel and genre of the game.

Ok i understand better.
It is very true that the game feel changes a lot, and quite quickly too. Once you hit around level 20 Normal, you never face new serious threats that drastically change your strategy, and by the start of Endless, you're micromanaging a lot already.
I don't think this game feel isn't compatible with tower defense; in fact, the mix of strategy and tactics is what hooked me in at first, personally: planning out your chip placement, but having to adapt as the level unravels. The balance between the two is very broken in Endless levels, and needs to be adressed at some point, yes, but i still think that when the two are needed at varying and balanced degrees, the game feels better than ever :)
Le 8 mars 2024 00:57:42 GMT+01:00, Kurt Fitzner @.***> a écrit :

I'm not sure i understand the difference you make between strategic and tactical, could you elaborate ?

Strategic vs tactical is like playing Risk vs playing Call of Duty.  Tower defense games aren't intended to be click speed.    You aren't in there at the tactical level shooting the bad guys one by one yourself.  The way this one is structured with random levels requires you to micromanage to such an extent at later levels that it changes the whole feel and genre of the game.
--
Reply to this email directly or view it on GitHub:
https://github.com/ochadenas/cpudefense/issues/97#issuecomment-1984803913
You are receiving this because you authored the thread.
Message ID: @.***>

Maybe this difference between strategy and tactics is what i tried to describe in my topic, regarding a possible distinction between skirmishes and a campaign 🤔
Le 8 mars 2024 00:57:42 GMT+01:00, Kurt Fitzner @.***> a écrit :

I'm not sure i understand the difference you make between strategic and tactical, could you elaborate ?

Strategic vs tactical is like playing Risk vs playing Call of Duty.  Tower defense games aren't intended to be click speed.    You aren't in there at the tactical level shooting the bad guys one by one yourself.  The way this one is structured with random levels requires you to micromanage to such an extent at later levels that it changes the whole feel and genre of the game.
--
Reply to this email directly or view it on GitHub:
https://github.com/ochadenas/cpudefense/issues/97#issuecomment-1984803913
You are receiving this because you authored the thread.
Message ID: @.***>

I'm not sure i understand the difference you make between strategic and tactical, could you elaborate ?

Strategic vs tactical is like playing Risk vs playing Call of Duty. Tower defense games aren't intended to be click speed.  You aren't in there at the tactical level shooting the bad guys one by one yourself. The way this one is structured with random levels requires you to micromanage to such an extent at later levels that it changes the whole feel and genre of the game.

I'll agree with you that the style of play is a little different, though not entirely. I believe that screenshot is from level 87. Level 88 was much smaller and I almost didn't play that map because I felt like it wasn't large enough to sustain 90 waves. To my immense surprise, I was wrong and actually completed that level with 4 lives remaining. I have a dragon hoard of unspent crypto coins. At these levels, the first dozen or so waves are definitely more "tactical" and require significant dynamic adjustments and micromanagement. Once I get through that window, though, it's back to the coffee sipping and slower paced  level increases.
Your defense strategy has to adjust for these levels, and you don't have the luxury of laying out your long term defense from the start.  Personally, I enjoy the challenge. Believe me when I say that playing that many waves can get very tedious and boring if adjustments are not required.
The most frustrating aspects, for me, are the number of level resets I need to get a viable map and the absolutely maddening instances of so many FAST attackers flooding the map that I can watch several of them glide over many chips without being modified a single time. The sub chips at max level are also infuriatingly ineffective. The clock chip doesn't consistently deliver the results one would expect either. It's frustrating to see a severely weakend attacker glide over my final sub chip and barely take damage with a clock chip at level 10+. The manual reset of the mem chips has increased the pain because I generally use them as my final safety net (to catch those dirty cheaters that make it through my defenses unscathed) and when the preceding chips fail to be effective against a large swarm, that's when I tend to lose the most lives.
All of that said.... I'm still playing :)
I have reset twice more since endless mode was added, and I'll likely reset again in the next day or two just so I can play some shorter levels again for a day or two.

Ok, many of the suggestions here have been implemented now. There is a separate set of coins and heroes, MEMs can be upgraded, and there is a new chip type to slow down attackers (even if I think that these resistors still need a lot of balancing before being really useful).
Therefor I'll close this issue, to clean up the issue list a little. Feel free to continue discussing your strategies and experiences on the discussion page!


No range mods

As I wrote in comments at CurseForge - there are no range mods available ingame.
Also in sourcecode I can see their receipts. I was try to create mods using this info for no luck. Looks like all this mods is missing.
Client startup log is too big for PasteBin, so here is DropBox link: https://www.dropbox.com/s/gqymt8m0hbcaxcs/fml-client-latest.log?dl=0

Can I get the modpack?

Forge <IP_ADDRESS>3
Dropbox link to archived MOD/Config folders: https://www.dropbox.com/s/wva705np6eniph2/IFNoRangeMods.zip?dl=0
Dropbox link to Curse/Twitch exported profile: https://www.dropbox.com/s/p2d6hh8gnkcqkz6/Kilmatar's 1.12 Test-1.1.zip?dl=0

Range addons are there:

They are just hidden from NEI, with JEI alone works perfectly. They have recipes too.

But still is an issue on my end that I just fixed for the next version that I hope I can release today


running any model crashes my ubunty 22.04 LTS system with 2 nvidia GPUs RTX 3060

It used to work before. The latest version just crashes my system. I tried running xwinlm, mistral and llama2.
I have an AMD FX 830, 2 nvidia GPU RTX 3060 with 12GB each and CPU mem of 32GB. Running on Ubuntu 22.04 LTS.
I am using the latest CUDA toolkit 12.3

Hi @pexus – sorry to hear. Let's get this fixed. Would it be possible to share the Ollama logs? journalctl -u ollama should show an error as to why it's crashing

Here is the last log files before the crash. I will upload the full log files also.
Nov 15 21:48:38 ai-desktop ollama[1315]: gs     0x0
Nov 15 21:48:40 ai-desktop systemd[1]: ollama.service: Failed with result 'exit-code'.
Nov 15 21:48:40 ai-desktop systemd[1]: ollama.service: Consumed 1min 36.511s CPU time.
Nov 15 21:48:43 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 1.
Nov 15 21:48:43 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:48:43 ai-desktop systemd[1]: ollama.service: Consumed 1min 36.511s CPU time.
Nov 15 21:48:43 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:48:43 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:48:43 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:48:46 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 2.
Nov 15 21:48:46 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:48:46 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:48:46 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:48:46 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:48:49 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 3.
Nov 15 21:48:49 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:48:49 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:48:50 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:48:50 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:48:53 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 4.
Nov 15 21:48:53 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:48:53 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:48:53 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:48:53 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:48:56 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 5.
Nov 15 21:48:56 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:48:56 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:48:56 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:48:56 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:48:59 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 6.
Nov 15 21:48:59 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:48:59 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:03 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:03 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:49:06 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 7.
Nov 15 21:49:06 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:49:06 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:06 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:06 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:49:09 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 8.
Nov 15 21:49:09 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:49:09 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:18 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:18 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:49:22 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 9.
Nov 15 21:49:22 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:49:22 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:22 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:22 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:49:25 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 10.
Nov 15 21:49:25 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:49:25 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:25 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:25 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:49:28 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 11.
Nov 15 21:49:28 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:49:28 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:28 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:28 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:49:31 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 12.
Nov 15 21:49:31 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:49:31 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:32 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:32 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:49:35 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 13.
Nov 15 21:49:35 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:49:35 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:35 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:35 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.
Nov 15 21:49:38 ai-desktop systemd[1]: ollama.service: Scheduled restart job, restart counter is at 14.
Nov 15 21:49:38 ai-desktop systemd[1]: Stopped Ollama Service.
Nov 15 21:49:38 ai-desktop systemd[1]: Started Ollama Service.
Nov 15 21:49:38 ai-desktop systemd[1]: ollama.service: Main process exited, code=dumped, status=11/SEGV
Nov 15 21:49:38 ai-desktop systemd[1]: ollama.service: Failed with result 'core-dump'.

The full log file attached..
ollama.log

I wanted to make sure my multi-gpu system is good. So I did run the gpu-burn to exercise both the cards and it seem to work ok without any issues:
sing compare file: compare.ptx
Burning for 60 seconds.
GPU 0: NVIDIA GeForce RTX 3060 (UUID: GPU-5a7e6ca0-cffd-c851-ccab-841a563cb01f)
GPU 1: NVIDIA GeForce RTX 3060 (UUID: GPU-ead06433-da1b-b94a-e443-90fcba03b220)
Initialized device 0 with 11831 MB of memory (11508 MB available, using 10357 MB of it), using FLOATS
Results are 268435456 bytes each, thus performing 38 iterations
Initialized device 1 with 11834 MB of memory (11693 MB available, using 10524 MB of it), using FLOATS
Results are 268435456 bytes each, thus performing 39 iterations
15.0%  proc'd: 38 (8230 Gflop/s) - 78 (10117 Gflop/s)   errors: 0 - 0   temps: 52 C - 46 C
Summary at:   Thu Nov 16 07:59:11 AM MST 2023
30.0%  proc'd: 114 (9460 Gflop/s) - 156 (10119 Gflop/s)   errors: 0 - 0   temps: 57 C - 53 C
Summary at:   Thu Nov 16 07:59:20 AM MST 2023
41.7%  proc'd: 190 (9440 Gflop/s) - 195 (10122 Gflop/s)   errors: 0 - 0   temps: 60 C - 55 C
Summary at:   Thu Nov 16 07:59:27 AM MST 2023
58.3%  proc'd: 266 (9403 Gflop/s) - 312 (10039 Gflop/s)   errors: 0 - 0   temps: 62 C - 59 C
Summary at:   Thu Nov 16 07:59:37 AM MST 2023
71.7%  proc'd: 342 (9332 Gflop/s) - 390 (10021 Gflop/s)   errors: 0 - 0   temps: 63 C - 62 C
Summary at:   Thu Nov 16 07:59:45 AM MST 2023
83.3%  proc'd: 418 (9236 Gflop/s) - 429 (10005 Gflop/s)   errors: 0 - 0   temps: 64 C - 63 C
Summary at:   Thu Nov 16 07:59:52 AM MST 2023
93.3%  proc'd: 456 (9226 Gflop/s) - 507 (9980 Gflop/s)   errors: 0 - 0   temps: 65 C - 65 C
Summary at:   Thu Nov 16 07:59:58 AM MST 2023
100.0%  proc'd: 532 (9365 Gflop/s) - 546 (9973 Gflop/s)   errors: 0 - 0   temps: 65 C - 66 C
Killing processes with SIGTERM (soft kill)
Freed memory for dev 1
Uninitted cublas
Freed memory for dev 0
Uninitted cublas

Is that an FX 8300?  it is a fairly old CPU. May not be related, but I ran into some problems running Kubernetes on an old AMD processor (granted, older than the FX 8300) due to incomplete/missing SSE4.2 implementation.

I have AMD FX-8350 Eight Core Processor. I have run models through ollama and other LLM runners successfully before. I had to reconfigure my system lately and with the latest re-install I am seeing this behavior, so I believe it may have been something to do with recent updates to Ollama. Let me know if you need any additional information.

I have an update to this issue. I switched my nVidia drivers on Ubuntu from nvidia-driver-545 which seems to still in beta  To nvidia-driver-535 and now I don't see the issue. i can load the models and interact without crashing.  So it is not an ollama issue, hence I am closing this issue.