Development:  Video Freezes as soon as you press start recording

I know we have discussed this in other threads, but I am starting this thread to log the issue as we work on it in the hopes that someone sees something and goes, ah ha!  Anyway, here is the log when the freeze happens:
FPS:18.4         AVG_FPS:18.6
known client: 26, sent = 19213, must be sent outlen = 19213
Ask YOLO to restart to record on a file demo.mp4
Process YOLO restart
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.5         AVG_FPS:18.6
known client: 26, sent = 19309, must be sent outlen = 19309
problem with request:  Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20) {
  errno: 'ECONNRESET',
  code: 'ECONNRESET',
  syscall: 'read'
}
YOLO stream error: Error: read ECONNRESET
Too much retries, YOLO took more than 3 min to start, likely an error
Process YOLO exit
Process YOLO stopped
Process YOLO started
 CUDA-version: 10020 (10020), cuDNN: 8.2.1, GPU count: 1
 OpenCV version: 4.1.1
 0 : compute_capability = 530, cudnn_half = 0, GPU: NVIDIA Tegra X1
   layer   filters  size/strd(dil)      input                output
   0 conv     32       3 x 3/ 2    416 x 416 x   3 ->  208 x 208 x  32 0.075 BF
   1 conv     64       3 x 3/ 2    208 x 208 x  32 ->  104 x 104 x  64 0.399 BF
   2 conv     64       3 x 3/ 1    104 x 104 x  64 ->  104 x 104 x  64 0.797 BF
   3 route  2                                  1/2 ->  104 x 104 x  32
   4 conv     32       3 x 3/ 1    104 x 104 x  32 ->  104 x 104 x  32 0.199 BF
   5 conv     32       3 x 3/ 1    104 x 104 x  32 ->  104 x 104 x  32 0.199 BF
   6 route  5 4                                    ->  104 x 104 x  64
   7 conv     64       1 x 1/ 1    104 x 104 x  64 ->  104 x 104 x  64 0.089 BF
   8 route  2 7                                    ->  104 x 104 x 128
   9 max                2x 2/ 2    104 x 104 x 128 ->   52 x  52 x 128 0.001 BF
  10 conv    128       3 x 3/ 1     52 x  52 x 128 ->   52 x  52 x 128 0.797 BF
  11 route  10                                 1/2 ->   52 x  52 x  64
  12 conv     64       3 x 3/ 1     52 x  52 x  64 ->   52 x  52 x  64 0.199 BF
  13 conv     64       3 x 3/ 1     52 x  52 x  64 ->   52 x  52 x  64 0.199 BF
  14 route  13 12                                  ->   52 x  52 x 128
  15 conv    128       1 x 1/ 1     52 x  52 x 128 ->   52 x  52 x 128 0.089 BF
  16 route  10 15                                  ->   52 x  52 x 256
  17 max                2x 2/ 2     52 x  52 x 256 ->   26 x  26 x 256 0.001 BF
  18 conv    256       3 x 3/ 1     26 x  26 x 256 ->   26 x  26 x 256 0.797 BF
  19 route  18                                 1/2 ->   26 x  26 x 128
  20 conv    128       3 x 3/ 1     26 x  26 x 128 ->   26 x  26 x 128 0.199 BF
  21 conv    128       3 x 3/ 1     26 x  26 x 128 ->   26 x  26 x 128 0.199 BF
  22 route  21 20                                  ->   26 x  26 x 256
  23 conv    256       1 x 1/ 1     26 x  26 x 256 ->   26 x  26 x 256 0.089 BF
  24 route  18 23                                  ->   26 x  26 x 512
  25 max                2x 2/ 2     26 x  26 x 512 ->   13 x  13 x 512 0.000 BF
  26 conv    512       3 x 3/ 1     13 x  13 x 512 ->   13 x  13 x 512 0.797 BF
  27 conv    256       1 x 1/ 1     13 x  13 x 512 ->   13 x  13 x 256 0.044 BF
  28 conv    512       3 x 3/ 1     13 x  13 x 256 ->   13 x  13 x 512 0.399 BF
  29 conv    255       1 x 1/ 1     13 x  13 x 512 ->   13 x  13 x 255 0.044 BF
  30 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05
  31 route  27                                     ->   13 x  13 x 256
  32 conv    128       1 x 1/ 1     13 x  13 x 256 ->   13 x  13 x 128 0.011 BF
  33 upsample                 2x    13 x  13 x 128 ->   26 x  26 x 128
  34 route  33 23                                  ->   26 x  26 x 384
  35 conv    256       3 x 3/ 1     26 x  26 x 384 ->   26 x  26 x 256 1.196 BF
  36 conv    255       1 x 1/ 1     26 x  26 x 256 ->   26 x  26 x 255 0.088 BF
  37 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05
Total BFLOPS 6.910
avg_outputs = 310203
 Allocate additional workspace_size = 26.22 MB
Loading weights from yolov4-tiny.weights...Demo
net.optimized_memory = 0
mini_batch = 1, batch = 1, time_steps = 1, train = 0
Create CUDA-stream - 0
 Create cudnn-handle 0
nms_kind: greedynms (1), beta = 0.600000
nms_kind: greedynms (1), beta = 0.600000
Done! Loaded 38 layers from weights-file

 seen 64, trained: 0 K-images (0 Kilo-batches_64)
video file: opendatacam_videos_uploaded/demo.mp4
Video stream: 640 x 360
Objects:

 JSON-stream sent.

FPS:0.0 	 AVG_FPS:0.0
Objects:

 JSON-stream sent.

8070 still spits out data and the video is not frozen on 8090.

Would it be possible to see the config.JSON and the complete log from the beginning until you get the error?

We are just running the demo video for now.   Use flushHeaders instead.
Process YOLO started
 CUDA-version: 10020 (10020), cuDNN: 8.2.1, GPU count: 1
 OpenCV version: 4.1.1
 0 : compute_capability = 530, cudnn_half = 0, GPU: NVIDIA Tegra X1
   layer   filters  size/strd(dil)      input                output
   0 conv     32       3 x 3/ 2    416 x 416 x   3 ->  208 x 208 x  32 0.075 BF
   1 conv     64       3 x 3/ 2    208 x 208 x  32 ->  104 x 104 x  64 0.399 BF
   2 conv     64       3 x 3/ 1    104 x 104 x  64 ->  104 x 104 x  64 0.797 BF
   3 route  2 		                       1/2 ->  104 x 104 x  32
   4 conv     32       3 x 3/ 1    104 x 104 x  32 ->  104 x 104 x  32 0.199 BF
   5 conv     32       3 x 3/ 1    104 x 104 x  32 ->  104 x 104 x  32 0.199 BF
   6 route  5 4 	                           ->  104 x 104 x  64
   7 conv     64       1 x 1/ 1    104 x 104 x  64 ->  104 x 104 x  64 0.089 BF
   8 route  2 7 	                           ->  104 x 104 x 128
   9 max                2x 2/ 2    104 x 104 x 128 ->   52 x  52 x 128 0.001 BF
  10 conv    128       3 x 3/ 1     52 x  52 x 128 ->   52 x  52 x 128 0.797 BF
  11 route  10 		                       1/2 ->   52 x  52 x  64
  12 conv     64       3 x 3/ 1     52 x  52 x  64 ->   52 x  52 x  64 0.199 BF
  13 conv     64       3 x 3/ 1     52 x  52 x  64 ->   52 x  52 x  64 0.199 BF
  14 route  13 12 	                           ->   52 x  52 x 128
  15 conv    128       1 x 1/ 1     52 x  52 x 128 ->   52 x  52 x 128 0.089 BF
  16 route  10 15 	                           ->   52 x  52 x 256
  17 max                2x 2/ 2     52 x  52 x 256 ->   26 x  26 x 256 0.001 BF
  18 conv    256       3 x 3/ 1     26 x  26 x 256 ->   26 x  26 x 256 0.797 BF
  19 route  18 		                       1/2 ->   26 x  26 x 128
  20 conv    128       3 x 3/ 1     26 x  26 x 128 ->   26 x  26 x 128 0.199 BF
  21 conv    128       3 x 3/ 1     26 x  26 x 128 ->   26 x  26 x 128 0.199 BF
  22 route  21 20 	                           ->   26 x  26 x 256
  23 conv    256       1 x 1/ 1     26 x  26 x 256 ->   26 x  26 x 256 0.089 BF
  24 route  18 23 	                           ->   26 x  26 x 512
  25 max                2x 2/ 2     26 x  26 x 512 ->   13 x  13 x 512 0.000 BF
  26 conv    512       3 x 3/ 1     13 x  13 x 512 ->   13 x  13 x 512 0.797 BF
  27 conv    256       1 x 1/ 1     13 x  13 x 512 ->   13 x  13 x 256 0.044 BF
  28 conv    512       3 x 3/ 1     13 x  13 x 256 ->   13 x  13 x 512 0.399 BF
  29 conv    255       1 x 1/ 1     13 x  13 x 512 ->   13 x  13 x 255 0.044 BF
  30 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05
  31 route  27 		                           ->   13 x  13 x 256
  32 conv    128       1 x 1/ 1     13 x  13 x 256 ->   13 x  13 x 128 0.011 BF
  33 upsample                 2x    13 x  13 x 128 ->   26 x  26 x 128
  34 route  33 23 	                           ->   26 x  26 x 384
  35 conv    256       3 x 3/ 1     26 x  26 x 384 ->   26 x  26 x 256 1.196 BF
  36 conv    255       1 x 1/ 1     26 x  26 x 256 ->   26 x  26 x 255 0.088 BF
  37 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05
Total BFLOPS 6.910
avg_outputs = 310203
 Allocate additional workspace_size = 26.22 MB
Loading weights from yolov4-tiny.weights...Demo
net.optimized_memory = 0
mini_batch = 1, batch = 1, time_steps = 1, train = 0
Create CUDA-stream - 0
 Create cudnn-handle 0
nms_kind: greedynms (1), beta = 0.600000
nms_kind: greedynms (1), beta = 0.600000
Done! Loaded 38 layers from weights-file
Got first JSON chunk
Didn't get video resolution yet, not sending tracker info
setvideoresolution

 seen 64, trained: 0 K-images (0 Kilo-batches_64)
video file: opendatacam_videos_uploaded/demo.mp4
Video stream: 640 x 360
Objects:

 JSON-stream sent.

FPS:0.0 	 AVG_FPS:0.0
Objects:

JSON_sender: new client 24
SSE: Sending update to clients
 JSON-stream sent.

FPS:1.9 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:3.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:4.9 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:6.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:7.5 	 AVG_FPS:0.0
MJPG_sender: new client 26
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:8.5 	 AVG_FPS:0.0
known client: 26, sent = 19460, must be sent outlen = 19460
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:9.3 	 AVG_FPS:0.0
known client: 26, sent = 19435, must be sent outlen = 19435
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:10.1 	 AVG_FPS:0.0
known client: 26, sent = 19511, must be sent outlen = 19511
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:10.9 	 AVG_FPS:0.0
known client: 26, sent = 19450, must be sent outlen = 19450
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:11.2 	 AVG_FPS:0.0
known client: 26, sent = 19487, must be sent outlen = 19487
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:11.7 	 AVG_FPS:0.0
known client: 26, sent = 19515, must be sent outlen = 19515
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:12.3 	 AVG_FPS:0.0
known client: 26, sent = 19704, must be sent outlen = 19704
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:12.8 	 AVG_FPS:0.0
known client: 26, sent = 19587, must be sent outlen = 19587
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:13.2 	 AVG_FPS:0.0
known client: 26, sent = 19749, must be sent outlen = 19749
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:13.8 	 AVG_FPS:0.0
known client: 26, sent = 19734, must be sent outlen = 19734
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:14.2 	 AVG_FPS:0.0
known client: 26, sent = 19833, must be sent outlen = 19833
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:14.5 	 AVG_FPS:0.0
known client: 26, sent = 19796, must be sent outlen = 19796
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.0 	 AVG_FPS:0.0
known client: 26, sent = 19928, must be sent outlen = 19928
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.3 	 AVG_FPS:0.0
known client: 26, sent = 19989, must be sent outlen = 19989
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.6 	 AVG_FPS:0.0
known client: 26, sent = 20073, must be sent outlen = 20073
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.8 	 AVG_FPS:0.0
known client: 26, sent = 20100, must be sent outlen = 20100
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.1 	 AVG_FPS:0.0
known client: 26, sent = 20201, must be sent outlen = 20201
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.1 	 AVG_FPS:0.0
known client: 26, sent = 20153, must be sent outlen = 20153
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.2 	 AVG_FPS:0.0
known client: 26, sent = 20275, must be sent outlen = 20275
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.3 	 AVG_FPS:0.0
known client: 26, sent = 20277, must be sent outlen = 20277
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.5 	 AVG_FPS:0.0
known client: 26, sent = 20375, must be sent outlen = 20375
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.7 	 AVG_FPS:0.0
known client: 26, sent = 20264, must be sent outlen = 20264
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.9 	 AVG_FPS:0.0
known client: 26, sent = 20268, must be sent outlen = 20268
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.1 	 AVG_FPS:0.0
known client: 26, sent = 20234, must be sent outlen = 20234
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.3 	 AVG_FPS:0.0
known client: 26, sent = 20394, must be sent outlen = 20394
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.3 	 AVG_FPS:0.0
known client: 26, sent = 20263, must be sent outlen = 20263
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.4 	 AVG_FPS:0.0
known client: 26, sent = 20283, must be sent outlen = 20283
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.4 	 AVG_FPS:0.0
known client: 26, sent = 20346, must be sent outlen = 20346
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.5 	 AVG_FPS:0.0
known client: 26, sent = 20479, must be sent outlen = 20479
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.5 	 AVG_FPS:0.0
known client: 26, sent = 20280, must be sent outlen = 20280
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.5 	 AVG_FPS:0.0
known client: 26, sent = 20263, must be sent outlen = 20263
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.4 	 AVG_FPS:0.0
known client: 26, sent = 20259, must be sent outlen = 20259
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.4 	 AVG_FPS:0.0
known client: 26, sent = 20412, must be sent outlen = 20412
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.5 	 AVG_FPS:0.0
known client: 26, sent = 20282, must be sent outlen = 20282
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.5 	 AVG_FPS:0.0
known client: 26, sent = 20330, must be sent outlen = 20330
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.6 	 AVG_FPS:0.0
known client: 26, sent = 20270, must be sent outlen = 20270
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.6 	 AVG_FPS:0.0
known client: 26, sent = 20416, must be sent outlen = 20416
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.7 	 AVG_FPS:0.0
known client: 26, sent = 20327, must be sent outlen = 20327
Ask YOLO to restart to record on a file demo.mp4
Process YOLO restart
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.6 	 AVG_FPS:0.0
known client: 26, sent = 20418, must be sent outlen = 20418
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.3 	 AVG_FPS:0.0
known client: 26, sent = 20481, must be sent outlen = 20481
problem with request:  Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20) {
  errno: 'ECONNRESET',
  code: 'ECONNRESET',
  syscall: 'read'
}
YOLO stream error: Error: read ECONNRESET
Too much retries, YOLO took more than 3 min to start, likely an error
Process YOLO exit
Process YOLO stopped
Stopped so going to try to start()
Process YOLO started
 CUDA-version: 10020 (10020), cuDNN: 8.2.1, GPU count: 1
 OpenCV version: 4.1.1
 0 : compute_capability = 530, cudnn_half = 0, GPU: NVIDIA Tegra X1
   layer   filters  size/strd(dil)      input                output
   0 First request on console stream
conv     32       3 x 3/ 2    416 x 416 x   3 ->  208 x 208 x  32 0.075 BF
   1 conv     64       3 x 3/ 2    208 x 208 x  32 ->  104 x 104 x  64 0.399 BF
   2 conv     64       3 x 3/ 1    104 x 104 x  64 ->  104 x 104 x  64 0.797 BF
   3 route  2 		                       1/2 ->  104 x 104 x  32
   4 conv     32       3 x 3/ 1    104 x 104 x  32 ->  104 x 104 x  32 0.199 BF
   5 conv     32       3 x 3/ 1    104 x 104 x  32 ->  104 x 104 x  32 0.199 BF
   6 route  5 4 	                           ->  104 x 104 x  64
   7 conv     64       1 x 1/ 1    104 x 104 x  64 ->  104 x 104 x  64 0.089 BF
   8 route  2 7 	                           ->  104 x 104 x 128
   9 max                2x 2/ 2    104 x 104 x 128 ->   52 x  52 x 128 0.001 BF
  10 conv    128       3 x 3/ 1     52 x  52 x 128 ->   52 x  52 x 128 0.797 BF
  11 route  10 		                       1/2 ->   52 x  52 x  64
  12 conv     64       3 x 3/ 1     52 x  52 x  64 ->   52 x  52 x  64 0.199 BF
  13 conv     64       3 x 3/ 1     52 x  52 x  64 ->   52 x  52 x  64 0.199 BF
  14 route  13 12 	                           ->   52 x  52 x 128
  15 conv    128       1 x 1/ 1     52 x  52 x 128 ->   52 x  52 x 128 0.089 BF
  16 route  10 15 	                           ->   52 x  52 x 256
  17 max                2x 2/ 2     52 x  52 x 256 ->   26 x  26 x 256 0.001 BF
  18 conv    256       3 x 3/ 1     26 x  26 x 256 ->   26 x  26 x 256 0.797 BF
  19 route  18 		                       1/2 ->   26 x  26 x 128
  20 conv    128       3 x 3/ 1     26 x  26 x 128 ->   26 x  26 x 128 0.199 BF
  21 conv    128       3 x 3/ 1     26 x  26 x 128 ->   26 x  26 x 128 0.199 BF
  22 route  21 20 	                           ->   26 x  26 x 256
  23 conv    256       1 x 1/ 1     26 x  26 x 256 ->   26 x  26 x 256 0.089 BF
  24 route  18 23 	                           ->   26 x  26 x 512
  25 max                2x 2/ 2     26 x  26 x 512 ->   13 x  13 x 512 0.000 BF
  26 conv    512       3 x 3/ 1     13 x  13 x 512 ->   13 x  13 x 512 0.797 BF
  27 conv    256       1 x 1/ 1     13 x  13 x 512 ->   13 x  13 x 256 0.044 BF
  28 conv    512       3 x 3/ 1     13 x  13 x 256 ->   13 x  13 x 512 0.399 BF
  29 conv    255       1 x 1/ 1     13 x  13 x 512 ->   13 x  13 x 255 0.044 BF
  30 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05
  31 route  27 		                           ->   13 x  13 x 256
  32 conv    128       1 x 1/ 1     13 x  13 x 256 ->   13 x  13 x 128 0.011 BF
  33 upsample                 2x    13 x  13 x 128 ->   26 x  26 x 128
  34 route  33 23 	                           ->   26 x  26 x 384
  35 conv    256       3 x 3/ 1     26 x  26 x 384 ->   26 x  26 x 256 1.196 BF
  36 conv    255       1 x 1/ 1     26 x  26 x 256 ->   26 x  26 x 255 0.088 BF
  37 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05
Total BFLOPS 6.910
avg_outputs = 310203
 Allocate additional workspace_size = 26.22 MB
Loading weights from yolov4-tiny.weights...Demo
net.optimized_memory = 0
mini_batch = 1, batch = 1, time_steps = 1, train = 0
Create CUDA-stream - 0
 Create cudnn-handle 0
nms_kind: greedynms (1), beta = 0.600000
nms_kind: greedynms (1), beta = 0.600000
Done! Loaded 38 layers from weights-file

 seen 64, trained: 0 K-images (0 Kilo-batches_64)
video file: opendatacam_videos_uploaded/demo.mp4
Video stream: 640 x 360
Objects:

 JSON-stream sent.

FPS:0.0 	 AVG_FPS:0.0
Objects:

 JSON-stream sent.

FPS:1.9 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:3.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:5.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:6.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:7.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:8.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:9.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:10.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:11.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:12.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:12.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:13.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:13.8 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:14.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:14.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.9 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.8 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.9 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sNew client, close previous stream

 seen 64, trained: 0 K-images (0 Kilo-batches_64)
video file: opendatacam_videos_uploaded/demo.mp4
Video stream: 640 x 360
Objects:

 JSON-stream sent.

FPS:0.0 	 AVG_FPS:0.0
Objects:

 JSON-stream sent.

FPS:1.9 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:3.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:5.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:6.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:7.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:8.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:9.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:10.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:11.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:12.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:12.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:13.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:13.8 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:14.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:14.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:15.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:16.9 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.6 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.7 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.8 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:17.9 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.5 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.2 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sNew client, close previous stream
ent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:0.0
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.5 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.0 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.1 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.2 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.2 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.3 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

FPS:18.4 	 AVG_FPS:18.5
 MJPEG-stream sent.
Objects:

 JSON-stream sent.

Aha! Now I know what's going on!
It's just another variation of https://github.com/opendatacam/opendatacam/issues/368 you're seeing!
When running from File, ODC restarts Darknet to process the file from the beginning when you hit record. After restarting Darknet, ODC makes a few attempts to connect to Darknet. If that does not work it will not try again and not show any video or tracker data.
So to fix this I suggest you look at Opendatacam.js and look for the Darknet connection in the listenToYolo function!

Excellent!  Ok, so this is happening even in headless mode but we will dive into that thread!


Any suggestion for jetson nano installation?

I notice that jetson nano with kernel-4.9 and jetpack3.3. And the cpu is a57 and no onboard emmc.
Has any one had installed the sdk successfully?

NVIDIA is using the camera (435 I believe) as a demonstrated supported part in their Isaac robotics  program. In some youtube videos you can see their demonstrated robots with the camera and theJetson Nano.
With the Isaac build system, everything is cross compiled on an x86 host and shipped over the network to the Nano, and they are using Jetpack 4.2
I've been trying to get my camera (435i) to work with the nano, but so far no luck. It seems to show up as a USB2.0 device. Might be a power issue as the same thing happens with my laptop sometimes.
I've cross compiled their kernel with the suggested patches from Intel, should be able to test that later tonight.

Hmm...  yes it would be nice to use 400 series with jetpack 4.2 without a ton of kernel module hijinx.

@christopherbate Is that works?

trying to compile the real sense library on the nano but when I run cmake I get 'xinerama headers were not found'. Any ideas?

Hi, I would suggest following the directions on the Isaac robotics link I posted above. It avoid having to compile the library on the device. They also give instructions on some dependencies which need to be installed through APT. I believe they use 430/415, and my issues with 435i may be particular to the 435i model. I will try some more this weekend.

@ChaseLewis You need the graphical libraries installed (glfw). Remove your cmake "build" folder and re-run CMake with the -DBUILD_GRAPHICAL_EXAMPLES=false flag. This will eliminate building the viewer and other tools that rely on GUI elements.
Here are the steps I followed for running RS435i on the Nano. We rebuilt the kernel on the device to make things simpler. I recommend starting with a fresh SD card just flashed with the latest JetPack release.

Go to the L4T download page and download the "BSP Sources" for the Nano.
Untar the sources with untar -xf [name of downloaded file
cd public_sources then untar -xf kernel_src.tbz2
cd kernel/kernel4.9 and zcat /proc/config.gz > .config
make menuconfig and enable HID_SENSOR_ACCEL_3D and HID_SENSOR_GYRO_3D under device drivers -> Industrial I/O (IIO) -> digital gyroscopes / accelerometers These are needed by 435i
Apply HID patch patch -p1 < [librealsense cloned repo directory]/scripts/realsense-hid-ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch
make -j(use a number 3-5). Recommend doing this from terminal over SSH as it will lock up GUI.
sudo make_modules_install
sudo mv /boot/Image /boot/Image-original and cp ./arch/arm64/boot/Image /boot/Image
Do a reboot and verify system loads.
Build realsense library and install. Verify device detected with rs-enumerate-devices then use rs-data-collect to collect some data. Library was built with options -DHWM_OVER_XU=true -DBUILD_GRAPHICAL_EXAMPLES=false

Hope this helps. Again, this is for the 435i, the only camera I have.

Thanks, I'm also only have D435i, I want to install it to my TX2 runs Jetpack4.2(ubuntu18.04), This information really helpful.

@christopherbate, can you elaborate on step 5.   make menuconfig
following through the instructions successfully up until this point.
I get the following error
rosuser@jet-nano:~/Downloads/public_sources/kernel$ make menuconfig
make: *** No rule to make target 'menuconfig'.  Stop.
rosuser@jet-nano:~/Downloads/public_sources/kernel$ cd kernel-4.9/
rosuser@jet-nano:~/Downloads/public_sources/kernel/kernel-4.9$ make menuconfig
  HOSTCC  scripts/kconfig/mconf.o
<command-line>:0:12: fatal error: curses.h: No such file or directory
compilation terminated.
scripts/Makefile.host:118: recipe for target 'scripts/kconfig/mconf.o' failed
make[1]: *** [scripts/kconfig/mconf.o] Error 1
Makefile:565: recipe for target 'menuconfig' failed
make: *** [menuconfig] Error 2

I'm inferring that the steps implies we should expect some UI in which we change the HID_SENSOR_ACCEL_3D and HID_SENSOR_GYRO_3D values?   or did i read that wrong?
I opened the .config file and found the HID sensor_accell_3d entries, but the file state very clearly not to edit (at the top)
Any help appreciated.

You need to install libncurses5 i.e. `sudo apt-get install libncurses5".
But yes, you will get a terminal UI to make changes. But yes, typically in
doing something like this you can edit that .config file directly. If
you've never done this before, it might be helpful to read a general
tutorial about how to compile the Linux kernel and about LKMs. Then use a
virtual machine running Linux linux to practice modifying the kernel. Then
this will become familiar to you.
Now I have to mention some unfortunate news... these steps might not work
for you. My camera was recognized but didn't fully work. I had to apply
another patch and now have it working. I'll post a more in-depth follow up
later today.
On Mon, Apr 22, 2019 at 3:29 PM Eric Schleicher<EMAIL_ADDRESS>wrote:

@christopherbate https://github.com/christopherbate, can you elaborate
on step 5. make menuconfig
following through the instructions successfully up until this point.
I get the following error
rosuser@jet-nano:~/Downloads/public_sources/kernel$ make menuconfig
make: *** No rule to make target 'menuconfig'.  Stop.
rosuser@jet-nano:~/Downloads/public_sources/kernel$ cd kernel-4.9/
rosuser@jet-nano:~/Downloads/public_sources/kernel/kernel-4.9$ make menuconfig
HOSTCC  scripts/kconfig/mconf.o
:0:12: fatal error: curses.h: No such file or directory
compilation terminated.
scripts/Makefile.host:118: recipe for target 'scripts/kconfig/mconf.o' failed
make[1]: *** [scripts/kconfig/mconf.o] Error 1
Makefile:565: recipe for target 'menuconfig' failed
make: *** [menuconfig] Error 2
I'm inferring that the steps implies we should expect some UI in which we
change the HID_SENSOR_ACCEL_3D and HID_SENSOR_GYRO_3D values? or did i
read that wrong?
I opened the .config file and found the HID sensor_accell_3d entries, but
the file state very clearly not to edit (at the top)
Any help appreciated.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/3759#issuecomment-485559247,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHHLD46VZI5UNPMGOESIX5DPRYU33ANCNFSM4HF6624A
.

ok...  eagerly awaiting.

So I got it to build, but now it says 'no module named pyrealsense2'. If  I use rs-enumerate devices the camera is found so it has something to do with the python installation after building.
I set the executable to python3 and used sudo make install so I'm a bit confused what I'm doing wrong. I'm trying to run the script with python 3.6.7
chaserlewis@chaserlewis-desktop:/usr/local/lib$ ls
cmake                    pybackend2.cpython-36m-aarch64-linux-gnu.so
libfw.a                  pybackend2.cpython-36m-aarch64-linux-gnu.so.2
librealsense2.so         pybackend2.cpython-36m-aarch64-linux-gnu.so.2.20.0
librealsense2.so.2.20    pybackend2.cpython-36m-aarch64-linux-gnu.so.2.21.0
librealsense2.so.2.20.0  pyrealsense2.cpython-36m-aarch64-linux-gnu.so
librealsense2.so.2.21    pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.21
librealsense2.so.2.21.0  pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.21.0
librealsense-file.a      python2.7
libtm.a                  python3.6
pkgconfig

PythonPath
chaserlewis@chaserlewis-desktop:/usr/local/lib$ echo $PYTHONPATH
:/usr/local/lib

How I called CMAKE
chaserlewis@chaserlewis-desktop:/usr/local/lib$ sudo cmake ../ -DBUILD_PYTHON_BINDINGS=bool:true -DPYTHON_EXECUTABLE=/usr/bin/python3
Any ideas?

@ChaseLewis Not sure as I don't use the python module. Generally for cmake, you call "cmake ../ (options)" then "make" then "sudo make install".
I have some more complete instructions for those interested on my github that includes an example .config file and a single .patch file for the R32.1 kernel. A few things had to be manually tweaked in the source for the patches to take, so I just wrapped it into one patch. Let me know if any issues and I can try to resolve. The instructions are for cross-compiling the kernel from a seperate computer, so it should be faster.

@christopherbate I'm trying to follow your guide but I'm encountering an issue with step 4. I'm in a terminal in the ~/Downloads/public_sources/kernel/kernel-4.9 folder but when I try to do the command sudo zcat /proc/config.gz > .config I get the error: "bash: .config: Permission denied" How do I get permission? I thought sudo giving me admin access would be enough, but apparently it is not. Any help you can provide would be greatly appreciated. (I have no experience doing kernel patches) :(

Ok, that command is for grabbing the configuration for the kernel for the computer you run that command on. So you need to be in your Nano's terminal for that command. Then maybe try this (on your Nano):
sudo zcat /proc/config.gz > ~/my-config
Then copy that file ~/my-config to your x86 computer and place it in the /mnt/tegra or whichever directory you specified as the output directory for the kernel build.

@christopherbate I am working through your kernel patch instructions. When I run the patches I get a message "patching file drivers/iio/accel/hid-sensor-accel-3d.c
Reversed (or previously applied) patch detected!  Assume -R? [n]"
Any ideas?

@dongxuanlb @evovolker Did you still have issue? Looking forward to your update. Thanks!

@RealSenseCustomerSupport I got it to work by merging the patches provided by @jetsonhacksnano with an additional patch from @christopherbate,
Thanks

@evovolker Great news!
@dongxuanlb Any good news from your side? Thanks!

@dongxuanlb If no other questions for this ticket, will close it now. Please feel free to create new ticket if you still have questions/issues. Thanks!

If a RealSense camera does not work after installation on Jetson Nano, see a solution here (Installation method only for Jetson Nano):
https://github.com/IntelRealSense/librealsense/issues/7333#issuecomment-691970195
In my case, 'No RealSense devices were found!' happened when I installed ros-melodic-realsense2-camera. And, librealsense2-dkms cannot be obtained when I use apt-get using the standard 'Linux Distribution' installation method. But, after I used the method of the link above, it worked well.


Map<_,type> appears to fail for zero types

I'll be honest, I'm not 100% certain if this is a prost issue of an issue with the Javascript library, but since I'm using the one included in Google's own tree:
https://github.com/google/protobuf/tree/master/js
I'm inclined to try here first. The issue is with the following code:
message Foo {
    map<string, int> bar = 1;
}

In Rust
let mut x = Foo::default();
x.bar.insert("val", 0);

Now encode and send it somewhere. Prost appears to only write the key, and not the subsequent value of 0. At least in Javascript, this causes a panic due to receiving a key with a missing value, leading me to have to use string types and conversions back and forth from numbers in order to bypass this.
This applies to all zero types, floats/doubles do this on 0.0, bools do this on false.
It's possible the specification allows this and the Javascript is in error, but again, I'm trying here first since I think this is more likely a prost bug.

The language guide says that map fields are treated as repeated key/value message types, so I believe prost is at least not wrong to be making this optimization.  Have you tried reproducing this against one of the more mature implementations like C++ or Java?

I'll close then

FWIW I'm still not convinced prost should be doing this optimization.  It makes the code a bit uglier, and if it causes compat issues then I think we should consider removing it.

A guess as to why you could have thought of this optimization (or whatever you'd like to call it) as important: Because of Prost's way to represent messages as plain Rust structs, if this optimization wouldn't be there, a proto message with many int fields would take noticeable amount of space when serialized even when the object is just Default::default(). This is not the case for Java or C++ default constructed messages.
Not saying that it has to be kept, but that seems like a somewhat useful feature to me.

I looked into what it would look like to change the behavior so that map keys are always encoded.  It ends up making some of the most complicated code in prost simpler:<PHONE_NUMBER>6b0d4b24e1153dbff0170b4a712478.  I'm somewhat inclined to merge it given the simplifications and compat issues.  I'd really like to see this corner case added to the upstream conformance test suite, since merging this means prost will no longer be able to test that it can correctly decode such maps (unless some examples are hardcoded).
I'm curious if y'all have thoughts.

A guess as to why you could have thought of this optimization (or whatever you'd like to call it) as important: Because of Prost's way to represent messages as plain Rust structs, if this optimization wouldn't be there, a proto message with many int fields would take noticeable amount of space when serialized even when the object is just Default::default(). This is not the case for Java or C++ default constructed messages.

That's definitely the case for proto3 default visibility fields, and prost does the exact same optimization, but the code that does that is distinct from map encoding/decoding, so the optimization can be backed out for maps without affecting proto3 messages.  My gut is that this optimization really doesn't matter for maps much, since it will be relatively rare to have default values.  It's definitely important for proto3 default visibility fields, though, since those will be the default much more often.

Fwiw, this breaks with the the following configuration: [server: tonic/prost] -> [envoy] -> [dart/flutter using grpc-web]. Dart experiences a Code 15 Unrecoverable data loss or corruption.
A go server implementing the same grpc service responds with the encoded 0 (confirmed with wireshark) for my map<int32, OtherMessage> field and is decoded properly. Using index +/- 1 on both sides is a good enough workaround for now.

Prost appears to only write the key, and not the subsequent value of 0.

This is the right thing to do according to proto spec: https://github.com/protocolbuffers/protobuf/blob/main/docs/field_presence.md#presence-in-tag-value-stream-wire-format-serialization

When serializing, fields with no presence are not serialized if they contain their default value.

Encoding of map fields are specified in https://developers.google.com/protocol-buffers/docs/proto#maps
In proto syntax, if you have a map field like
map<int32, MyMapValue> my_map_field = 123;

It's encoded as if it was
repeated MyMapFieldEntry my_map_field = 123;

where
message MyMapFieldEntry {
    optional int32 key = 1;
    optional MyMapValue value = 2;
}

In the original example, map value type is int (which is not a valid proto type, I'm guessing the OP meant one of the valid integer types like int32 or int64), and because the default value for integer types is 0, prost is doing the right thing by omitting the value. If the receiving end fails to read the message then it's a bug in the protobuf implementation running on the receiving end.
For Dart protobuf implementation, we fix the decoding for map fields to handle this case in https://github.com/google/protobuf.dart/pull/745.
Note that since both key and value fields of map entries are optional, it's also possible to omit the key field. For example
message Foo {
    map<int32, int32> bar = 1;
}

let mut x = Foo::default();
x.bar.insert(0, 0);

A spec compliant implementation should encode x as
[
    (1 << 3) | 2, // tag = 1, wire type = length delimited
    0, // length = 0, i.e. empty entry message
]

@osa1 thanks for the explanation, so I guess we can close this now since this isn't really a bug with prost?

Thinking more about this, I'm not as confident now that this is not a bug.
In the spec I quoted in my comment above:

When serializing, fields with no presence are not serialized if they contain their default value.

Here I missed the "fields with no presence" part. optional enables presence. So in this encoding shown in https://developers.google.com/protocol-buffers/docs/proto#maps:
message MapFieldEntry {
  optional key_type key = 1;
  optional value_type value = 2;
}

repeated MapFieldEntry map_field = N;

Not encoding a default value (in key or value fields) is actually different than encoding it, because key and value fields are optional, so they have presence checks. (i.e. in addition to reading their values, you can check whether they exist in a message)
Now, the question is what happens on the receiving end when you get a map entry with missing key, value, or both key and value fields, and you represent proto map fields as actual an actual map (rather than a list of entries) in your language. Protobuf spec does not mention this. However, the behavior should be consistent with the "desugaring" shown above (where map is represented as repeated MapFieldEntry), and for that we need to use the default values of key and value fields when they are missing, because that's what we would do if the map field was actually repeated MapFieldEntry.
Unfortunately, protobuf spec does not specify what the default values should be for optional Message fields. I did a survey of this a while ago: https://github.com/google/protobuf.dart/issues/309#issuecomment-1173756840 you can see that different implementations return different values.
What this means is, if you have a map<int32, MyMessage> field, and omit a MyMessage value because it's the same as default message, on the receiving end, some implementations will read the map entry as 123 => null, others read it as 123 => MyMessage() (i.e. value is empty/default message).
To avoid this problem prost may want to serialize the value fields always. I'm not sure if not doing it is a bug or not.

I asked this to protobuf team (in context of https://github.com/google/protobuf.dart/issues/309).
It's fine if an implementation omits key or value of a map entry when the value is the default for the field type.
So prost's behavior seems fine, and if an implementation cannot handle it then it's a bug in that implementation. (this is what we fix in the PR linked above)
That said, official protobuf implementation will never omit key or value fields, even when they have the default value for the type: https://github.com/protocolbuffers/protobuf/blob/8d3a7327606b115dda871be54c8b8cb66d41ff90/src/google/protobuf/wire_format.cc#L1184-L1203
I'm guessing other protobuf implementation by the protobuf team (e.g. the JS one linked in the bug report) also do the same, and that's why they cannot handle when key or value fields are missing. When sending they always serialize those fields so the case where one or both of the fields are missing is not considered and tested.

Ok thanks for the update, I will close this issue since the implementation seems correct.


Error when installing cerebro-weather

[x] I am on the latest Cerebro.app version
[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: Windows 10
Cerebro.app version: 0.2.8
Relevant information from devtools SyntaxError: Invalid regular expression: missing /
at Object.exports.runInThisContext (vm.js:78)
at Module._compile (module.js:543)
at Object.Module._extensions..js (module.js:580)
at Module.load (module.js:488)
at tryModuleLoad (module.js:447)
at Function.Module._load (module.js:439)
at Module.require (module.js:498)
at require (internal/module.js:20)
at requirePlugin (main.bundle.js:31961)
at setTimeout (main.bundle.js:32003)

Issue
I encounter this error sometimes when trying to install the cerebro-weather plugin. Curiously, it does not happen every time. I'm at a loss on how to handle it. It was reported here  BrainMaestro/cerebro-weather#3

So, looks like it is plugin issue and I'll close this pr


Added recover 24 words support

24 words recover wallet support

Thanks for the PR @yshwanth
Few checkpoints:

[ ] Test Importing both valid/invalid 24 word mnemonic
[ ] Show appropriate error if all 24 words are not filled
[ ] Import Wallets do not need to Backup but they can Test Backup - in Test Backup Update UI to say 12/24 words and ensure that a 24 word mnemonic is displayed correctly.

Yes, I need to test and update various error cases and also few changes to code for smooth and clean UX

Choose/ select option radio button page
12 words
24 words
If a user enters 12 words then after clicking on 24 words ,user has to type it once again, which is bad UX.

checkpoints done:
[x]  Test Importing both valid/invalid 24 word mnemonic
[x]  Show appropriate error if all 24 words are not filled
[x]  Import Wallets do not need to Backup but they can Test Backup - in Test Backup Update UI to say 12/24 words and  ensure that a 24 word mnemonic is displayed correctly.

Thanks Yashwanth! Checking out your PR now.

Everything is working as expected.
Congratulations and thanks for your first PR!


How to solve unwanted dynamic requires

I want to use moment.js for date formatting. Unfortunately they have a dynamic require in their code for language files - so webpack includes all of them.
What do you suggest, oh mighty sokra? :smile:

Just in case somebody else come here and follow the link @jhnns provided, the actual line with the dynamic require is this one.

Shouldn’t webpack just create a chunk for each dynamically loadable language? The script already supports dynamic loading, probably to solve the exact problem webpack’s mishandling of it causes (it solves the problem of throwing irrelevant JavaScript that the browser will never call at the browser).

I came across similar cases in amd
var deps = [];
if( some condition )
    deps = [dep1, dep2, ...]
else
    deps = [other1, other2, ...]
define(deps, function(arg1, arg2, ....){

});

My confiuration for ContextReplacementPlugin is
new webpack.ContextReplacementPlugin(
      /directory of caller file/,
      "the directory of dependecies",
      {
        'deps': [dep1, dep2, other1, other2]
      }
    )

It seems ContextReplacementPlugin does not support dependency array.  Is any better way to do this?


APT whitelist request for hevea in trusty

Note hevea was added for precise in #2061

@BanzaiMan you looked at hevea on precise - could you OK this for trusty too please?


mkdocs generated code blocks mangled after update to 0.2.3

We have an mkdocs-generated site. We recently updated to 0.2.3 for python 3.13 support. After the update, we noticed that some code blocks got mangled.
For example:
This is code block without minify

kubectl config set-context --current --namespace=<insert-namespace-name-here>

With minify

kubectl config set-context --current --namespace=&LTinsert-namespace-name-here>

The < and > in the code seems to have thrown it of

fyi, we had the following settings on
    keep_closing_tags: true
    keep_html_and_head_opening_tags: true

removing them and using the defaults seem to work better, but this was working before the update.


RangeError: Invalid time value when using timestamp in schema

Not my first Ponder setup, but I was setting up a fresh one for a new app, and ran into the following error on startup:
RangeError: Invalid time value
at Date.toISOString ()
at PgTimestamp.mapToDriverValue
Schema for the column was defined as: lastUpdated: t.timestamp()
Insert for the column was also simple: lastUpdated: new Date()
Once I ditched .timestamp() in lieu of .bigint() I was able to start Ponder again.

Thanks for submitting this, I was able to recreate this and found a quick fix using the withTimezone param timestamp({ withTimezone: true }). Will think about a more long term solution.
https://orm.drizzle.team/docs/column-types/pg#timestamp

I believe this was fixed in v0.7.14. Please feel free to reopen if the issue persists


Address validation issue in Yup schema

Description
This PR adds a fix for https://github.com/usebruno/bruno/issues/855
Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[x] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request.

Thanks @snippetkid !


docs: Update dependencies

This fixes an issue with material.extensions.emoji when docs are built locally

ACK https://github.com/Blockstream/greenlight/pull/366/commits/6163cf8f768c6c3002e6f2ee82aeffc3f078db43


Duplicate shares (kheavyhash)

Describe the bug
having issues with duplicate shares from iceriver ASIC's. seems like mostly KS0 OG's having the issue.
To Reproduce
Steps to reproduce the behavior:
setup miningcore using these configs.
(KS0~KS0 Pro)", "difficulty": 128, "varDiff": {"minDiff": 64, "maxDelta": 512, "targetTime": 3, "retargetTime": 15, "variancePercent": 30}
(KS1~KS2)", "difficulty": 1024, "varDiff": {"minDiff": 512, "maxDelta": 1024, "targetTime": 3, "retargetTime": 15, "variancePercent": 30}
(KS3~KS3L)", "difficulty": 4096, "varDiff": {"minDiff": 2048, "maxDelta": 2048, "targetTime": 3, "retargetTime": 15, "variancePercent": 30}

OS: Ubuntu 22.04 all on same machine. quad core Xeon, 32GB RAM, 1TB SSD.

Additional context
we have tried using the different ports of diff with the same results.

try set in config extraNonce1Size 1 or 2
        "extraNonce1Size": 1,
        "protobufWalletRpcServiceName": "kaspawalletd.kaspawalletd",
        "clientConnectionTimeout": 600,

Do I keep vardiff settings the same with this? @trampk

Tried 1 and 2 and still seeing just as many duplicate shares.

Can you provide how much ratio of duplicate share do you get?
https://github.com/rdugan/kaspa-stratum-bridge?tab=readme-ov-file#iceriver-asics-configuration-details

it's around 4-5% on KS0, I am using your adaptation to miningcore, so you would know better than I if that stratum bridge is related to my issue? @blackmennewstyle

it's around 4-5% on KS0, I am using your adaptation to miningcore, so you would know better than I if that stratum bridge is related to my issue?

for some reason the percentage of rejected balls is higher here, they almost never happen on stratum bridge rdugan, here it’s 1-2% or more
Miningcore defines them as duplicates, but Stratum Bridge from rdugan also has such a check and it doesn’t show anything

You both missed the important info i provided in my link:
IceRiver ASICs require a 2 byte extranonce (extranonce_size=2), an increased minimum share difficulty (use vardiff, or see table below), and difficulty values limited to 2^n (pow2_clamp=true). Without these settings, you may experience lower than expected hashrates and/or high invalid rates.

difficulty values limited to 2^n: miningcore can't do that, our difficulty mechanism is not tied just to KAS, we handle more than 200 coins.
I was hoping the ratio would be more higher though, this actually could be fixed by the ASIC manufacturer though, they just need to stop sending staled/duplicated shares. Some mining software actually offer that option but sadly not in the ASIC realm where everything is closed-source and they never want to help anyone except their partners in crime.
Hopefully, the code is open source though, if you can contribute, be my guess.

So, in theory we could add a condition to miningcore to utilize a different mechanic based on algo?

You both missed the important info i provided in my link:

for nicehash i'm using extranonce =1 for rdugan bridge and miningcore
for solo mining own node and only iceriver i'm using extranonce = 2

You both missed the important info i provided in my link:

for nicehash i'm using extranonce =1 for rdugan bridge and miningcore for solo mining own node and only iceriver i'm using extranonce = 2 UPD and only FixDiff,,,for KS2 - 1024, for nicehash 32768 or high
P.S. > they just need to stop sending staled/duplicated shares
@blackmennewstyle, rdugan bridge also does the same check and doesn’t have the same problems as Minincore or there is a vulnerability in the duplication of the share, which is determined by Miningcore, but not determined by Rdugan, this happened many years ago on nicehash and many people used it until it was closed, then Nonce had a vulnerability of large and small characters, I think you know about it.

We are kinda deviating from the main topic of the ghitub issue, which is at the end is not even one since the code is doing what it is supposed to.
If you compare both code from miningcore and stratum-bridge, you will quickly notice that we are doing the exact process regarding extranonce, nonce checks.
The check for duplicated shares is here: https://github.com/blackmennewstyle/miningcore/blob/49378e93ac3d0bf559016d9ee8edfdd63a66805e/src/Miningcore/Blockchain/Kaspa/KaspaJob.cs#L363
If you look carefully the lines before, you will see the exact same security and normalization check as stratum-bridge regarding the nonce.
Duplicated share check is basically an anti-cheating code and also a security for preventing a flooding vector of attack for people which send unnecessarily (and also maybe maliciously) solutions which have already been submitted before.
As you can see in the code, if the exact same solution has already been submitted, miningcore rightfully rejected it. Why would accept something which has already been proposed and thus wasting resources, especially if it's not a block candidate solution.
The same way we are doing that check, the mining software can doing it as well. Some actually does, but not the ASIC manufacturer apparently.

Well then I suppose everything is working as intended. Thanks much Cedric!


Cs parse

parse CRE links in the owasp cheatsheeets that exist either in comments or normally and add them to the graph

closed in #164


How to avoid redraw when go back

I am building a list and detail type web app using react(v.0.13.3) and history(v1.9.1) react-router (v1.0.0-rc1).
The list is generated after some AJAX API calls.
When I click any item in the list, it will jump to detail page. Then I click browser's back button, it will go back to list page. But it will resend the AJAX request and re-generate the list.
This is bad user experience.
I think react-router could somehow cache the this.props.children content with this.props.location.key. When go back happen, it will fill this.props.children with previous generated contents.
Anyone has some solution or workaround?
Thanks

This is actually something that works in React Native, where when you use Navigator and push a new scene onto your stack, the previous one does not get unmounted.
Anyway, I guess the proper way to address your issue would've been to use e.g. Redux, keep your data in a store like this:
{
   items: null,
   isLoading: false
}

And then, issue an action to load your items from a didMount method only if:
If (!this.props.items) { this.props.dispatch(loadItems()); }

this is something React Router is not designed for.


Check constraint that calls a function fails

I have a table that has a check constraint on it that calls a function, i.e.:
create table mytable (
    col1 int not null,
    col2 int not null,

    constraint my_check_constraint check (dbo.mycheckfunction(col1, col2) = 0)
)

I'm getting an error when building the dacpac:
error SQL71501: SqlCheckConstraint: [dbo].[my_check_constraint] contains an unresolved reference to an
object. Either the object does not exist or the reference is ambiguous because it could refer to any of the
following objects: [dbo].[mycheckfunction] or [dj]

I don't know where "dj" came from. The function definitely exists, and building in VS using SSDT works fine.

Sounds like there must be another referenced project? Can you please post your project (.csproj) file?

<Project Sdk="MSBuild.Sdk.SqlProj/1.16.0">
	<PropertyGroup>
		<TargetFramework>netstandard2.0</TargetFramework>
		<SqlServerVersion>SqlAzure</SqlServerVersion>
		<TargetName>mydbname</TargetName>
		<!-- For additional properties that can be set here, please refer to https://github.com/rr-wfm/MSBuild.Sdk.SqlProj#model-properties -->
	</PropertyGroup>

	<PropertyGroup>
		<!-- Refer to https://github.com/rr-wfm/MSBuild.Sdk.SqlProj#publishing-support for supported publishing options -->
	</PropertyGroup>

	<ItemGroup>
		<PostDeploy Include="Post-Deployment\_post_deploy.sql" />
		<Content Remove="obj\**" />
		<Content Remove="Procedures\**" />
		<Content Remove="Functions\**" />
		<None Remove="obj\**" />
	</ItemGroup>
</Project>

Hm, now that I look at that, the problem is obvious; I've for some reason excluded the "Functions" directory, where my check constraint function is. Removing that solves the problem. Sorry for the noise.

That's always the way it goes, huh? 🙂


[App Service] az functionapp create: Revert new parameter `--e…

…nvironment` to support setting the name of container app environment (#25223)
This reverts commit f156109256a6449cf0ac33d3f8a7af7a19b270f0. We are reverting this commit since we intend to have these changes live in the next release, not this one.
Related command
az functionapp create
Description
As part of the Centauri effort, we need to add the --environment parameter to the az functionapp create command so that customers can pass the managed AKS environment where the function app will be deployed.
Testing Guide

Create an App Service plan (az functionapp plan create -g <resource-group-name> -n <plan-name> --sku S1)
Create an managed AKS environment(az containerapp env create -n <managed-environment-name> -g <resource-group-name>)
Create a function app in the managed AKS environment (az functionapp create -g <resource-group-name> -n <function-app-name> --plan <plan-name> -s <storage-account-name> --environment <managed-environment-name>)

History Notes
[App Service] az functionapp create: Add new parameter --environment to support setting the name of container app environment

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

/azp run


preparations for musllinux

PEP 656 is accepted! Let's get these wheels... rollin 😎

Gentle ping on this. auditwheel just released PEP 656 support and I think this is the last mile toward pip install-ing a musllinux wheel (IIRC pip already added support in the last release via packaging upgrade).

One sec, I throw in @h-vetinari's recs

Done! Any other thoughts?

One suggestion from me, otherwise lgtm!

Oh, can you rebase this on main?

We need to update documentation in some places to include musllinux, e.g. https://packaging.python.org/guides/distributing-packages-using-setuptools/?highlight=manylinux#:~:text=PyPI currently supports uploads of platform wheels for Windows%2C macOS%2C and the multi-distro manylinux* ABI.


🎉 Add Lots of apps

🪩 Provide a link to the proposed addition
1.AI 0x0 🤖
2.Wox
3.Tran
4.pear-rec(github)
5.Alist
Alist(github)
6.downkyicore
😳 Explain why it should be added
1.一个多模态多模型通用型的全能 AI 查询生成桌面悬浮助手应用，支持 MacOS 和 Windows，可在任意桌面软件使用 AI 能力。
2.Wox is a cross-platform launcher that simply works. It's an alternative to Alfred and Launchy
3.简洁, 快速, 划词翻译
4.pear-rec(pear rec) is a free and open-source cross-Platform screenshot, screen recording, audio recording, and video recording software.
5.🗂A file list program that supports multiple storages, powered by Gin and Solidjs
6.基于哔哩下载姬Windows版和AvaloniaUI制作的跨平台版本(支持Windows、linux、macOS)。
📖 Additional context
❤❤❤
🧨 Issue Checklist

[X] I have checked for other similar issues
[X] I have explained why this change is important
[X] I have added necessary documentation (if appropriate)

@WHMyyds Recommend one at a time.

okay


About tf3d requirements.txt

In my practice, I found that the package version in requirements.txt is written in xxx >= yyy format, such as 'tensorflow-probability >= 0.11.1', but it seems that pip3 installs the latest version of the package by default according to requirements.txt, which resulting in an error:  'ERROR: The version of TensorFlow requires Tensorflow version >=2.4; Detected an Installation of Version 2.3.0.'.
When I manually changed >= to == and installed the specified version of the software package, for example, tensorflow-probability==0.11.1, the error was fixed. So it is recommended to specify the minimum version in requirements.txt to avoid conflicts with the tensorflow version.

I also found that you have modified the code about importing 'string_int_lable_map_pd2'. In label_map_util.py, line 19, 'from object_detection.protos import string_int_label_map_pb2', it does not work under my test. I still need to download object_detection and compile it with the protoc tool. Can be imported, it is recommended to compile by default and import directly by tf3d.utils.protos.

When I was using tensroboard, I found that the 3D map under the mesh tag could not be displayed. Is the mesh plugin in the tf-nightly version? Do I  need to use the nightly version of tensorboard to display the mesh map normally?

I just added an update that should fix the string_int_label_map_pb2 issue. Let me know if it still is there.
We are working on the pip install issue (sorry for the inconvenience)

@afathi3 Sorry, your update did not work properly.This is my error message:
INFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0', '/job:localhost/replica:0/task:0/device:GPU:1')
I0316 01:00:52.480308<PHONE_NUMBER>64704 mirrored_strategy.py:341] Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0', '/job:localhost/replica:0/task:0/device:GPU:1')
I0316 01:00:52.480569<PHONE_NUMBER>64704 train.py:149] writing path is /tmp/tf3d_experiment/seg_rio_001
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/google-research-tf3d/tf3d/train.py", line 221, in <module>
    app.run(main)
  File "/usr/local/lib/python3.6/dist-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.6/dist-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/google-research-tf3d/tf3d/train.py", line 154, in main
    __import__(module_name)
  File "/google-research-tf3d/tf3d/gin_imports.py", line 25, in <module>
    from tf3d.instance_segmentation import metric as instance_segmentation_metric
  File "/google-research-tf3d/tf3d/instance_segmentation/metric.py", line 20, in <module>
    from tf3d import base_ap_metric
  File "/google-research-tf3d/tf3d/base_ap_metric.py", line 23, in <module>
    from tf3d.utils import label_map_util
  File "/google-research-tf3d/tf3d/utils/label_map_util.py", line 19, in <module>
    from tf3d.utils.protos import string_int_label_map_pb2
ImportError: cannot import name 'string_int_label_map_pb2'

My fix: Run protoc string_int_label_map.proto --python_out=. under utils/protos folder and I can get a string_int_label_map_pb2.py file. The error was then fixed.
PS:  I also want to ask about the display problem of mesh in tensorboard: https://github.com/google-research/google-research/issues/631#issuecomment-799462735

Thank you @hewittzgh.
We have updated the setup and also Op compilation instructions. Please take another look and let us know if you still have an issue.

The error https://github.com/google-research/google-research/issues/631#issuecomment-799867859 has been fixed. Thanks!
I still haven't been able to solve the problem with the 3D image display in the TensorBoard's Mesh TAB. Here is my screenshot:

You can see that there are empty Spaces where the image should be displayed.
This is my system environment:

docker images: tensorflow/tensorflow:2.3.0-gpu
nvidia-docker
Models can be trained and validated normally in my environment, but the tensorboard.mesh can not work.

Hi @hewittzgh,
if eval_val_mesh folder's event file has meaningful non empty size, I suggest debugging into this line's parameters, check if they are reasonable format.
On the other hand, Tensorboard will likely crash when so many meshes(10+) are to be displayed at the same time.
Thanks.

In my test, there was a error with the update of string_int_lable_map.proto and label_map_util.py in utils folder.The following is my error message:
root@c31432fd4a88:/google-research-tf3d# bash tf3d/semantic_segmentation/scripts/rio/run_eval_locally.sh
EVAL_DIR at /google-research-tf3d/tf3d_experiment/seg_rio_001...
2021-03-19 09:07:41.415679: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/google-research-tf3d/tf3d/eval.py", line 166, in <module>
    app.run(main)
  File "/usr/local/lib/python3.6/dist-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.6/dist-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/google-research-tf3d/tf3d/eval.py", line 141, in main
    __import__(module_name)
  File "/google-research-tf3d/tf3d/gin_imports.py", line 34, in <module>
    from tf3d.semantic_segmentation import metric as semantic_segmentation_metric
  File "/google-research-tf3d/tf3d/semantic_segmentation/metric.py", line 24, in <module>
    from object_detection.utils import label_map_util
  File "/google-research-tf3d/object_detection/utils/label_map_util.py", line 29, in <module>
    from object_detection.protos import string_int_label_map_pb2
  File "/google-research-tf3d/object_detection/protos/string_int_label_map_pb2.py", line 22, in <module>
    serialized_pb=_b('\n\x1astring_int_label_map.proto\x12\x17object_detection.protos\"\xee\x01\n\x15StringIntLabelMapItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x05\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12M\n\tkeypoints\x18\x04 \x03(\x0b\x32:.object_detection.protos.StringIntLabelMapItem.KeypointMap\x12\x14\n\x0c\x61ncestor_ids\x18\x05 \x03(\x05\x12\x16\n\x0e\x64\x65scendant_ids\x18\x06 \x03(\x05\x1a(\n\x0bKeypointMap\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05label\x18\x02 \x01(\t\"Q\n\x11StringIntLabelMap\x12<\n\x04item\x18\x01 \x03(\x0b\x32..object_detection.protos.StringIntLabelMapItem')
  File "/usr/local/lib/python3.6/dist-packages/google/protobuf/descriptor.py", line 942, in __new__
    return _message.default_pool.AddSerializedFile(serialized_pb)
TypeError: Couldn't build proto file into descriptor pool!
Invalid proto descriptor for file "string_int_label_map.proto":
  string_int_label_map.proto: A file with this name is already in the pool.

I downloaded the object_detection module of tensorflow, compiled the proto file separately in the protos folder, and copied the generated file to the utils/protos folder under the tf3d folder. This error was fixed.
The following are the two generated files(Because can not upload py files, I changed it to txt format). After comparison, it is found that many of them are different. I have not learned protoc, so I don’t know what caused this error.
string_int_label_map_pb2(from_tf3d_utils_proto).txt
string_int_label_map_pb2(from_object_detection_module).txt
PS:

Under tf3d/datasets/labelmaps, I found that there is no pbtxt corresponding to the rio data set.
Under tf3d/object_detection, I also did not find the script and .gin file of the rio data set.

Thanks!


Fix code scanning alert - Branch-Protection

Tracking issue for:

[ ] https://github.com/GoogleCloudPlatform/cloudnetworking-config-solutions/security/code-scanning/8

Branch protection has been enabled.


Add support for ISerializable

I think it would be possible to add support for ISerializable in Wire as ISerializable pretty much just requires that we can serialize dictionaries that can then be used to reconstruct the target object.
e.g.
public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        info.AddValue("props", myProperty_value, typeof(string));
        //after this method ends, write the contents of SerializationInfo into the output stream as a Dictionary
    }

    // The special constructor is used to deserialize values.
    public MyItemType(SerializationInfo info, StreamingContext context)
    {
        //before this is called, read a dictionary from the stream and transform the dictionary to a serializationinfo and pass it in here
        // Reset the property value using the GetValue method.
        myProperty_value = (string) info.GetValue("props", typeof(string));
    }

Does this include support for OnDeserializedAttribute, OnDeserializingAttribute, OnSerializedAttribute, OnSerializingAttribute?


Add functionality for the usage of Llama 3.2

Add functionality for the usage of Llama 3.2 for resume scanning instead of Open Ai's GPT-4o

Can we do it using the llama_cpp module?
Should we make a new file or add a function to the existing file?

Hey @Sohammhatre10 , I'd like to take this up. Could you please assign this issue to me?

@INEcodes yup you can, just make sure you create a new folder with llamacpp as the title before raising the PR, this will make it more organised.

@Shaunak-Gupta-dev you may try using the Groq-dev cloud for the same functionality I'll make sure that llamacpp and GroqLlama both folders are merged.

@Shaunak-Gupta-dev please add a comment on https://github.com/Sohammhatre10/resume_scanner/issues/6 as your PR addresses that issue. Will be assigning that issue to you.

@Sohammhatre10, I apologize for the earlier mistake. I mistakenly named my previous PR as "Gemini" integration, but it was actually for integrating Llama using the Groq API. I have now raised a new PR with the correct name.
Please consider reviewing the updated PR, and I’m sorry for the confusion.

@Shaunak-Gupta-dev no problem, Thanks for the contribution!


⚠ Bofrost.lu has degraded performance

In cbfc284, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1044 ms

Resolved: Bofrost.lu performance has improved in c663f57.


Add a rule WhitespaceEndOfLineChecker in Scala Style Checker

This PR adds an Scala Style checker rule WhitespaceEndOfLineChecker.

@dszeto Could you review this PR please?

This is nice. Thanks!


Reverse first k elements in a queue in Python

Have you read the Contributing Guidelines on Pull Requests?
YES
Description
(Write your answer here.)
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
reversing first k elements in a queue
Enter the number of elements in array
5
Enter value of k
2
Enter the array
1 2 3 4 5
Output: 2 1 3 4 5
Fixes : #6545

@ankitaggarwal23 kindly review  my PR

@ankitaggarwal23

@ankitaggarwal23 requested changes done

@ankitaggarwal23

@ankitaggarwal23


Documentation Fix, Proper use of returning() in insert

http://knexjs.org/#Builder-insert is misleading, or confusing - That one is supposed to use returning to work with the resulting dataset could be made much clearer.
The example from issue 732 outlines a working, and seemingly very idiomatic way to do it.

Maybe one could add to documentation of .insert that passing .insert({...}, ['id', 'name']) is just a shortcut for .insert({...}).returning(['id','name'])

@elhigu (if you know) - I can't find any origin / build process for the index.html file ( the docs ), do I just add changes manually, or are them some source files I am missing somewhere?
Thanks!

It is hand written html. No build process at all. It is pushed to gh-pages on every release.


Inconsistent partial model naming [in Modelica.Magnetic]

Reported by christiankral on 4 Feb 2011 14:18 UTC
The partial models

Interfaces.PartialTwoPortsElementary and
Interfaces.PartialTwoPorts
are implemented differently in the packages
Modelica.Magnetic.FluxTubes and
Modelica.Magnetic.FundamentalWave.

Current Implementation
FluxTubes.Interfaces.PartialTwoPortsElementary
partial model PartialTwoPortsElementary
  PositiveMagneticPort port_p;
  NegativeMagneticPort port_n;
end PartialTwoPortsElementary;

FluxTubes.Interfaces.PartialTwoPorts
partial model PartialTwoPorts
  extends FluxTubes.Interfaces.PartialTwoPortsElementary;
  SI.MagneticPotentialDifference V_m;
  SI.MagneticFlux Phi;

equation
  V_m = port_p.V_m - port_n.V_m;
  Phi = port_p.Phi;
  0 = port_p.Phi + port_n.Phi;
end PartialTwoPorts;

FundamentalWave.Interfaces.PartialTwoPort
partial model PartialTwoPort
  PositiveMagneticPort port_p;
  NegativeMagneticPort port_n;
end PartialTwoPort;

FundamentalWave.Interfaces.PartialTwoPortElementary
partial model PartialTwoPortElementary
  extends FundamentalWave.Interfaces.PartialTwoPort;
  Modelica.SIunits.ComplexMagneticPotentialDifference V_m;
  Modelica.SIunits.ComplexMagneticFlux Phi;

equation
  V_m = port_p.V_m - port_n.V_m;
  port_p.Phi = Phi;
  port_p.Phi + port_n.Phi = Complex(0,0);
end PartialTwoPortElementary;

The naming of the partial models in the fundamental wave library is simply a bug.
Additional Issues
The term port used in the magnetic and thermal domain refers to a connector and it represents two pins or plugs in the electrical domains. We should come up with some clarification here. We should also unify whether or not we should used the term Partial in the class name. We have various different implementations in the MSL.
The implementation of partial models is even entirely different throughout the package Modelica.Electrical:

Analog.Interfaces.TwoPin is a partial model containing

definition of voltage drop v across pins

MultiPhase.Interfaces.TwoPlug is a partial model containing

definition of voltage drop v across plugs
definition of current i into positive plug

Analog.Interfaces.OnePort and MultiPhase.Interfaces.OnePort are partial models with two pins or plugs, respectively [the problem here is that we are using the term port as an abstraction for two pins and plugs, respectively, whereas this term is used differently, e.g, in the magnetic domain]; these partial models contain

definition of voltage drop v across pins and plugs, respectively
definition of current i into positive pin and plug, respectively
current balance of positive and negative pin (or plug)

Analog.Interfaces.TwoPort and MultiPhase.Interfaces.TwoPort are partial models with four pins or plugs, respectively; these partial models contain

definition of voltage drop v across pins and plugs, respectively
definition of current i into positive pin (or plug)
current balance of positive and negative pin (or plug)

MultiPhase.Interfaces.FourPlug contains

definition of voltage drop v across paris of plugs, respectively
definition of current i into positive plugs

However, a unification of namings and implementations is highly desirable since all the differences are confusing to experienced and news users. I understand that we do need a conversion script for renaming partial models; so we do have wait for Modelica 4, I suppose.
Proposal
So here we have lot very different namings with different implementations. On my opinion we need three different partial model types:

TwoPinGeneric, TwoPlugGeneric, etc., which contains only the connectors; these are the most generic components; they are also used for sources and sensors since it may be undesired in these cases to have a pre defined variable for either the potential difference or the flow variable
TwoPinElementary, TwoPlugElementary, etc., which contains the connectors and the definitions of the potential difference, e.g., v, and the flow variable into the positive connector, e.g., i; these models are mostly used for graphical programming
TwoPin, TwoPlug, or TwoPinBalanced, TwoPlugBalanced, etc., containing the flow balances in addition to the Elemenary named partial models; these models are used for textual programming

Naming may be discussed.

Migrated-From: https://trac.modelica.org/Modelica/ticket/496

Comment by dietmarw on 4 Feb 2011 15:38 UTC
Christian,
if I understand your proposal correctly then the different classes would be defined as follows (taking TwoPin as an example):
*
partial model TwoPin
 extends TwoPinElementary
...

partial model TwoPinElementary
 extends TwoPinGeneric
...

partial model TwoPinGeneric
...

Did I understand this correctly? I'm not quite sure why the last group in your proposal (TwoPin,...) is/should be especially suitable for textual programming. I mean they inherit everything from the other partial models right? So what would make them so special then?

Comment by christiankral on 4 Feb 2011 16:45 UTC
Right, thats the way I meant it; the reason why TwoPin is suitable for textual programming, is because it already contains the flow balance:
partial model TwoPin
  extends TwoPinElementary;
  p.i + n.i = 0;
end TwoPin;

In this case I cannot make a graphical connection between the positive and negative pin when extending from this class.

Comment by dietmarw on 4 Feb 2011 21:01 UTC
Right I see. Thanks for explaining. Otherwise I'm most definitely for removing Partial from the name. Since this is part of the model specifications it should be the job of the tool to highlight that if wanted and not done clumsily by putting the already present information also in the name :)

Comment by dietmarw on 1 Aug 2015 21:36 UTC
Milestone renamed

Comment by dietmarw on 1 Aug 2015 21:39 UTC
Milestone renamed

I will create a PR to remove Partial from the names and fix the naming issue with of the TwoPorts.

Reopen since #2998 did not address Magnetic-FluxTubes.

When going through #3341 I realized that we still have two different naming conventions in the magnetic domain: TwoPort vs TwoPorts. I suppose this shall be fixed before releasing v4.0.0. @dietmarw, @beutlich and @AHaumer do you agree?
The following list shows the difference w.r.t. the elementarty ports:

Modelica.Magnetic.FluxTubes.Interfaces.TwoPortsElementary
Modelica.Magnetic.FundamentalWave.Interfaces.TwoPortElementary
Modelica.Magnetic.QuasiStatic.FluxTubes.Interfaces.TwoPortsElementary
Modelica.Magnetic.QuasiStatic.FundamentalWave.Interfaces.TwoPortElementary

At the end one question remains: TwoPorts or TwoPort? Any suggestions?
Other domains use, for example:

Modelica.Electrical.Analog.Interfaces.TwoPin
Modelica.Electrical.Analog.Interfaces.OnePort
Modelica.Electrical.Polyphase.Interfaces.TwoPlug
Modelica.Mechanics.Rotational.Interfaces.PartialTwoFlanges
Modelica.Mechanics.Translational.Interfaces.PartialTwoFlanges
Modelica.Mechanics.MultiBody.Interfaces.PartialTwoFrames

A quick search lead me to https://en.wikipedia.org/wiki/Two-port_network
So I'm for TwoPort.

OK then. So I will create a PR to fix the names of

Modelica.Magnetic.FluxTubes
Modelica.Magnetic.QuasiStatic.FluxTubes

Closing again after merge of #3426.


Deckgl ver9

I got an error about multiple versions of deck.gl. They're up to v9.

Yes it's in progress. https://github.com/geoarrow/deck.gl-layers/pull/112

I'd be keen to help with this if I can.
I've got a build based on your PR with everything on the latest 9.0.12 of deck.gl, and the examples for which data is available (point, poly and multi-poly) all seem to work fine. Happy to go off and test the other examples with applicable data that I can find/generate.
Is this just a matter of bump and test the examples or is there a little more to it?

Indeed, it really is just a matter of bumping the versions and testing the examples. I haven't looked at the full change list for deck.gl v9 and if there's any change to the binary interface that I should watch out for. But from my exploration in https://github.com/geoarrow/deck.gl-layers/pull/112 I didn't seem to hit any blockers.
A PR would be great!
One other thing to note, I've had some initial discussion with the deck.gl team about starting the process of upstreaming this into deck.gl. They suggested first moving work to the visgl/deck.gl-community repo to incubate the project and later possibly upstream it into deck.gl proper. See https://github.com/visgl/deck.gl-community/pull/67
I haven't had the time yet to look at the fork made there. The build system is quite different I think. It's probably ok to make PRs here with the expectation of later making PRs to update "upstream" from here. But open to thoughts/feedback

Cool! It seems like they've already bumped everything upstream so I guess that's covered.
I expect there isn't a need to bring additions they've made back into this repo, but let me know what you think.

I don't know whether it's worth synchronizing the repos.
I think primarily it'll just be annoying to follow the deck.gl-community release schedule, because so far I've published a new version here whenever I wanted to use something in lonboard. But maybe we can publish new upstream alpha versions as well regularly.

In that case I'll submit a PR to this repo for the build I linked above with deck.gl bumped.

Closed by https://github.com/geoarrow/deck.gl-layers/pull/112

Can you please release the new deckgl 9 to npm ? @kylebarron

I published<EMAIL_ADDRESS>with the latest main


Fix CI workflow

Fixes #41
This PR fixes the error in the CI config by correctly writing the job name.
Proposed Changes

Fix typo in the CI config
Simplify dependabot job name

Thank you @yevdyko and Merry Christmas 🎄!

Thank you @yevdyko and Merry Christmas 🎄!

Thanks @jamesrweb and Merry Christmas to you! 🎅


Date filter/list: Radio button: consistency between space and click [GAUD-6576]

Part of Jira ticket
Problem:
In list, the radio buttons toggle on click but not on space.
Expected Behaviour:
Generally radio buttons are not able to be de-selected once selected. However, I did discuss this with Jeff and he felt that since UX best practice is to allow a user to be able to undo their changes easily that the consistent behaviour here should be to be able to de-select on subsequent click/space. This change might be controversial so let me know any opinions here.
Solution Notes:
I put this behind a property, radioToggle, in order to not affect existing usages of SelectionMixin and required opt-in (though this can create inconsistency in our system so let me know thoughts on this). I then opted in for list. I also didn't document this in case we want to hide it at this point.

@dbatiste I agree that we don't want this to be opt-in unless there's a strong need. Can we find the few existing instances of single-selection lists to validate? I'm fairly certain this will not be disruptive to them but would be good to confirm.
In the future, if the need arises to prevent de-selection, then we can worry about an opt in property at that time right?
To your other question: I feel allowing deselection of single-selection list items is a good thing, despite the visual and semantic use of radio inputs that don't support it natively. I believe the reason native radios don't allow this is because they're designed to be used with a default option, which would be selected initially and could be selected later to effectively "deslect" or undo your selection. But a) many usages on the web don't offer a default option and instead start with all radios in an unselected state; once the user selects an option, they cannot return to an unselected state, which you could argue is a flaw in the native input behaviour (though it's arguably not a usage they were originally designed to support). And b) our usage in a list item context doesn't typically come with an equivalent of the default option, so I think it makes sense to diverge from native behaviour to allow users to deselect (which we've already done for click/pointer users, just not for hitting Space).

I agree that we don't want this to be opt-in unless there's a strong need. Can we find the few existing instances of single-selection lists to validate? I'm fairly certain this will not be disruptive to them but would be good to confirm.

Sounds like that's what we should do.

In the future, if the need arises to prevent de-selection, then we can worry about an opt in property at that time right?

Yep, sounds good to me.
Re rationale... yeah, there's been decades of debate and criticism about this. While there are solutions that use native elements as-is, I understand and agree that they aren't great. I wish I there was something better. Lots of people have suggested mutually exclusive checkboxes to solve this, and hacking checkboxes has been (rightfully) met with just as much (if not more) criticism as overriding native radio behaviour.

I audited all the usages found here. There was 1 case (here) that stood out as assuming that if their selection-single filter was de-selected then cleared would be true, which is currently not the case. We could either go into this usage and update the code to account for that, or we could set cleared to true when the selection-single radio option is de-selected within filter.


add AR enum like support

adding enum-like support:
column :status, :enum, values: { open: 1, closed: 2 }

will be handled as type Int
calling model.status will return the symbol ie. :open or :closed
expects setter to be called with symbol ie. model.status(:open)
exposes helpers ie. model.open?
exposes values-mapping on a class-level ModelClass.status

looking forward to your feedback
for reference: https://github.com/cequel/cequel/issues/351#issuecomment-271907539

👍

@pezra how should i go about documenting this feature? just in the readme or are there other places that should be updated?

I think the readme and in the method comments ofProperties.ClassMethods#column would be great. Once that is done i will merge it.

@pezra i added some docs. please feel free to change it to your liking if there are any issues with it. also added a changelog entry.

This is ready to merge. I am waiting to update this branch so that i can get an older PR's tests to complete and get i merged. Hopefully i can merge this today and release a new version.

@pezra awesome thx!

released in 2.1.0


Do fast by one multiplication

When multiplying by one we can use faster math.
'0' is not used in real life, except on broken stuff.

Looks good -- yeah, cannot beat that ....


Add Command Documentation

Add a docs section for behaviour of the tool and how to use the individual commands

the docs section have been created


document the use of generic subsample selection function method

Ideally show example in notebook as well, including the saving of query results.

Notebook added to documentation.


Charlie

Runs a P-type neural network on historical NWP data across the entire grid using interpolated height-above-surface data. Some details:

It currently supports output for the RAP, HRRR and GFS models. NAM is is also in the config but seems to be buggy.
Outputs each init time / forecast hour as a separate netCDF file.
The only parallelization currently implemented is the downloading of the grib files themselves, which is done through the FastHerbie() class. Everything else is done in serial.
It takes approximately 20 seconds to run the entire RAP grid per forecast hour, but substantially longer for the higher resolution models or global models (~3 minutes).
Final output has probabilities for each p-type as it's own variable as well as the predicted class (argmax) for each of the p-types. It also saves out surface variables ['t2m', 'd2m', 'u10', 'v10' , 'orog'], but does not save out the pressure level data unless flagged in the configuaration file.

Future features:

Parallelize / optimize code to reduce time for higher resolution models.
Add feature to only run over a specific extent. This will still require the download of the entire file, but will significantly speed up the entire process due to the amount of data that needs to be interpolated, etc.
Add ability to run in real time. Could be done with the Herbie_latest() class or manually with a small lag from script run time.
Currently only supports a neural network with an output size of 4. New feature should include ability to account for models with uncertainty.
Feature to save out the categorical p-type from the NWP model.

Output seems reasonable, but I would like someone to review the interpolation code interpolate_data() in inference.py as a sanity check.

Added code for parallelization, adding NWP categorical variables, and updated documentation.

All comments resolved. Some chunking optimization for zarr should be investigated at some point.

Added projection attribute and projection coordinates
Changed file naming structure to MILES_ptype_{nwp_model}_YYYY-mm-dd_MMHH_f{forecast_hour}.zarr (or netcdf)
Changed dtypes to float32 and uint8
Added time dimension (size 1) for easier concatenation

Here is some example output for the HRRR model:

Merging.


Phantom transaction loaded in Lite Mode sigchain

Mobile wallet 0.9.4-4 Android
Core 5.1.018
When I log into my primary sigchain, after a delay of a minute or two, the wallet displays a phantom transaction the txid of which cannot be found on the Explorer.
010fcb081eaddba1c22030edc7708b00f3bc825c0e9d4bd311b49fe2f3051ceb62418c6fde3fb380dc8d47b6338964d39f9bf41516986b85df4b9b042eab554c
It is a CREDIT for a LEGACY transaction that appears to be my NXS that was transferred from my legacy trust account to my Tritium wallet trust account on Tuesday, November 12, 2019 6:17:54 PM
Nothing can be done with this transaction on the Lite Mode wallet, but it causes the balances to be inaccurate.
0_20230609B_NSHPrime.log

This appears to be resolved in 3.1.1/5.1.1 remote core.


Combining meshes leaves ghost models

Description
Combining multiple meshes leaves ghost models in the Wisp viewport. To understand why this happens it is important to know what goes on behind the scenes. All connections that are made and broken when combining 2 meshes (Cylinder and Torus) are shown here(also shown in screenshots).
From this data, we can see that meshes are being disconnected from the original Mesh-node and connected to a PolyUnite-node in an inputPoly-array. This seemingly contains all meshes that are combined.
We can conclude from this that meshes are not deleted, but disconnected. Because of this, the mesh parser doesn't get a callback that a mesh is deleted and keeps the meshes in-memory. However, there is a new mesh created which is the combined mesh.
So, a new mesh is created and no meshes are deleted from the scene, leaving a ghost model as all control of the 'old' Mesh-nodes is lost.
TLDR
No meshes are deleted, just disconnected. This causes Maya to not trigger a 'mesh removed'-callback. The control is lost since 'transform update'-callbacks were bound to the Mesh-node which is not connected anymore. This leaves ghost models.
To Reproduce

Create two (or more) meshes
Select both of them in the hierarchy or viewport
Go to Mesh -> Combine
Move the combined mesh

Expected behavior
The two transform nodes should be moving one of the combined meshes and there should be only one copy of the combined meshes left.
Screenshots

Combining meshes - connection results

Connections before combining two meshes

Connections after combining two meshes
Additional context
There are a couple of ways to approach this issue. One of them is to just ignore the new mesh and make sure to keep control of the combine meshes individually. Just use the new (combined) mesh its transform as a parent of these two meshes, so the transformations will still be aligned with Maya's default viewport. However, this is pretty much a hack and I'm assuming there are more issues that require fixes like this. So that'll be just a hack, upon hack, upon hack, etc.
The best thing to do is probably reworking the model parser/manager a bit. You basically need it to support grouping as that is what combining does.

#74 Fixed part of the issue..
Ghost models are still there, but transforms are correctly applied to the combined meshes now.

Added additional screenshots for intersection two meshes (the connection results) and the hypergraph with connections before and after intersecting.