[Kernel] Flashinfer for prefill & decode, with Cudagraph support for decode

This is the second PR to integrate flashinfer. The goal is to use flashinfer for the prefill phase (including prefix caching). Hopefully, we can get rid of the context_attention_fwd triton kernel and use flashinfer append kernel for better performance.
The PR also tries to add the cuda graph support for the deocde phase.
For flashinfer, currently the alibi slope is missing, will coordinate with the flashinfer side and support in the following PRs.

[x] Pass basic and distributed tests when using flashinfer for prefill.
[x] Use append kernel for prefix caching and pass tests.
[x] Pass basic tests with cuda graph.
[ ] Test performance of flashinfer+cudagraph VS flash attention.

merge conflict!

also can you jsut quickly run benchmark_Throughput?

Please review the PR again after cuda graph support, thanks!

awesome super exciting! is there a benchmark result?

2. IIUC, this depends on a nightly version of flashinfer, so it's not working with the latest release (0.0.4)?

Yeah it works with flashinfer 0.0.4 (tested).
The tricky part is to add flashinfer dependency to CI because flashinfer is not on pypi.
I can still add the test file, just we don't run that test on CI?

Thank all of you for your effort in integrating flashinfer to vllm. I'll be releasing version 0.0.5 tomorrow. Additionally, I plan to address the PyPI issue by the end of this month.

This is the second PR to integrate flashinfer. The goal is to use flashinfer for the prefill phase (including prefix caching). Hopefully, we can get rid of the context_attention_fwd triton kernel and use flashinfer append kernel for better performance. The PR also tries to add the cuda graph support for the deocde phase. For flashinfer, currently the alibi slope is missing, will coordinate with the flashinfer side and support in the following PRs.

[x]  Pass basic and distributed tests when using flashinfer for prefill.
[x]  Use append kernel for prefix caching and pass tests.
[x]  Pass basic tests with cuda graph.
[ ]  Test performance of flashinfer+cudagraph VS flash attention.
Have you compare the performance of flashinfer+cudagraph VS flash attention?
the flash attention does not support v100,  does the flashinfer + cudagraph have hardware limit?
by the way, what's the performance improvement of flashinfer+cudagraph with the raw paged attention + cudagraph?

I'm concerned about the amount of flashinfer-specific conditional logic in the model runner. This clearly shows that we need to extend the attention APIs and push all of that logic in there. The model runner should not need to know about the implementation details of the attention backend.

I did some benchmarking on H100:
Hardware: 1xH100
Model: meta-llama/Meta-Llama-3-8B
Cudagraph: Turned on for all the backends
Command:
VLLM_ATTENTION_BACKEND=FLASHINFER
python benchmarks/benchmark_latency.py --input-len 32 --output-len 128 --batch-size 1 --num-iters-warmup 5 --num-iters 10 --model meta-llama/Meta-Llama-3-8B

All numbers are ins s and demonstrate 50% request latency.

Batch Size
Input length
Output length
Flash Attention
Flashinfer
Xformer

1
32
128
0.996
0.969
0.984

2
32
128
0.997
0.995
0.999

4
32
128
1.009
1.020
1.015

8
32
128
1.042
1.052
1.043

16
32
128
1.094
1.110
1.107

32
32
128
1.211
1.246
1.278

64
32
128
1.530
1.559
1.667

128
32
128
2.163
2.130
2.351

1
512
32
0.262
0.253
0.274

2
512
32
0.279
0.270
0.289

4
512
32
0.312
0.303
0.316

8
512
32
0.369
0.363
0.375

16
512
32
0.480
0.484
0.493

32
512
32
0.712
0.728
0.777

64
512
32
1.201
1.230
1.320

128
512
32
2.249
2.267
2.466

@Yard1 actually that's https://docs.google.com/document/d/1rg8CoOnrtz1LT-hCK86ZsHuhoTDtqSEGs8KrN4wbITo/edit#heading=h.wh4srx1743gg (the last item). I can take care of this. Just had no time lately to prioritzie it

Besides, the perf seems not very different. Is it expected, or do we have any known overhead? (or is there specific prompt pattern flash infer should work better)?

Hi @rkooo567 , there are some missing optimizations for flashinfer cudagraph decode kernels, I'll fix the performance issues in the next few hours, thanks for doing the benchmark.

Also, I realized that the current implementation does not work with TP > 1 because flashinfer_wrapper/buffer cannot be broadcast. We need to delay the wrapper/buffer initialization, just note here.

I just fixed the TP > 1 problem, on my end it can pass the tests locally. Few things left:

add flashinfer to CI/CD and enable flashinfer tests.
update performance numbers after flashinfer faster GQA release @yzh119.

To speed up the CI queue for #5905, I've cancelled the distributed tests for the latest CI run in this PR since they won't pass anyway until #5905 has been merged. Please merge main into your branch after that happens so that the CI can pass once again.

To speed up the CI queue for #5905, I've cancelled the distributed tests for the latest CI run in this PR since they won't pass anyway until #5905 has been merged. Please merge main into your branch after that happens so that the CI can pass once again.

Thanks, really appreciate it.

#5905 has just been merged. Please merge main branch into your PR again.

I did some benchmarking on H100:
Hardware: 1xH100 Model: meta-llama/Meta-Llama-3-8B Cudagraph: Turned on for all the backends Command:
VLLM_ATTENTION_BACKEND=FLASHINFER
python benchmarks/benchmark_latency.py --input-len 32 --output-len 128 --batch-size 1 --num-iters-warmup 5 --num-iters 10 --model meta-llama/Meta-Llama-3-8B

All numbers are in seconds(s) and demonstrate 50% request latency.
Batch Size	Input length	Output length	Flash Attention	Flashinfer	Xformers
1	32	128	0.996	0.969	0.984
2	32	128	0.997	0.995	0.999
4	32	128	1.009	1.020	1.015
8	32	128	1.042	1.052	1.043
16	32	128	1.094	1.110	1.107
32	32	128	1.211	1.246	1.278
64	32	128	1.530	1.559	1.667
128	32	128	2.163	2.130	2.351
1	512	32	0.262	0.253	0.274
2	512	32	0.279	0.270	0.289
4	512	32	0.312	0.303	0.316
8	512	32	0.369	0.363	0.375
16	512	32	0.480	0.484	0.493
32	512	32	0.712	0.728	0.777
64	512	32	1.201	1.230	1.320
128	512	32	2.249	2.267	2.466

Hi, @LiuXiaoxuanPKU , I have tested flashinfer vs flashattention on 8*A100 with the latest version of vLLM, and the improvement seems very small as you tested on 1 H100 as i mentioned in https://github.com/vllm-project/vllm/issues/6617, is there some missing optimizations for flashinfer? Thanks.


Mark virtualtext should appear inline on first buffer line

For now annotation virtualtext does not show if first line of a buffer is annotated.

Sorry about this slipping through. This is a bug with neovim core, not the plugin - I think there's an issue for it but I couldn't find it when I went looking.


⚠ Bofrost.es has degraded performance

In 6c6870b, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1552 ms

Resolved: Bofrost.es performance has improved in 7c64496 after 7 minutes.


error when convert rife onnx model to trt

i want convert rife onnx model((rife46_ensembleFalse_op18_clamp.onnx)) to trt, but an error occurred while converting.
the command is:
'''
./trtexec --fp16 --onnx=rife46_ensembleFalse_op18_clamp.onnx --minShapes=input:1x8x64x64 --optShapes=input:1x8x720x1280 --maxShapes=input:1x8x1080x1920 --saveEngine=model.engine --tacticSources=+CUDNN,-CUBLAS,-CUBLAS_LT --skipInference --preview=+fasterDynamicShapes0805
'''
the log is:
'''
&&&& RUNNING TensorRT.trtexec [TensorRT v8601] # ./trtexec --fp16 --onnx=/dockerdata/zhenxia/Download/ft_local/rife46_ensembleFalse_op18_clamp.onnx --minShapes=input:1x8x64x64 --optShapes=input:1x8x720x1280 --maxShapes=input:1x8x1080x1920 --saveEngine=model.engine --tacticSources=+CUDNN,-CUBLAS,-CUBLAS_LT --skipInference --preview=+fasterDynamicShapes0805
[01/22/2024-17:23:30] [I] === Model Options ===
[01/22/2024-17:23:30] [I] Format: ONNX
[01/22/2024-17:23:30] [I] Model: /dockerdata/zhenxia/Download/ft_local/rife46_ensembleFalse_op18_clamp.onnx
[01/22/2024-17:23:30] [I] Output:
[01/22/2024-17:23:30] [I] === Build Options ===
[01/22/2024-17:23:30] [I] Max batch: explicit batch
[01/22/2024-17:23:30] [I] Memory Pools: workspace: default, dlaSRAM: default, dlaLocalDRAM: default, dlaGlobalDRAM: default
[01/22/2024-17:23:30] [I] minTiming: 1
[01/22/2024-17:23:30] [I] avgTiming: 8
[01/22/2024-17:23:30] [I] Precision: FP32+FP16
[01/22/2024-17:23:30] [I] LayerPrecisions:
[01/22/2024-17:23:30] [I] Layer Device Types:
[01/22/2024-17:23:30] [I] Calibration:
[01/22/2024-17:23:30] [I] Refit: Disabled
[01/22/2024-17:23:30] [I] Version Compatible: Disabled
[01/22/2024-17:23:30] [I] TensorRT runtime: full
[01/22/2024-17:23:30] [I] Lean DLL Path:
[01/22/2024-17:23:30] [I] Tempfile Controls: { in_memory: allow, temporary: allow }
[01/22/2024-17:23:30] [I] Exclude Lean Runtime: Disabled
[01/22/2024-17:23:30] [I] Sparsity: Disabled
[01/22/2024-17:23:30] [I] Safe mode: Disabled
[01/22/2024-17:23:30] [I] Build DLA standalone loadable: Disabled
[01/22/2024-17:23:30] [I] Allow GPU fallback for DLA: Disabled
[01/22/2024-17:23:30] [I] DirectIO mode: Disabled
[01/22/2024-17:23:30] [I] Restricted mode: Disabled
[01/22/2024-17:23:30] [I] Skip inference: Enabled
[01/22/2024-17:23:30] [I] Save engine: model.engine
[01/22/2024-17:23:30] [I] Load engine:
[01/22/2024-17:23:30] [I] Profiling verbosity: 0
[01/22/2024-17:23:30] [I] Tactic sources: cublas [OFF], cublasLt [OFF], cudnn [ON],
[01/22/2024-17:23:30] [I] timingCacheMode: local
[01/22/2024-17:23:30] [I] timingCacheFile:
[01/22/2024-17:23:30] [I] Heuristic: Disabled
[01/22/2024-17:23:30] [I] Preview Features: kFASTER_DYNAMIC_SHAPES_0805 [ON],
[01/22/2024-17:23:30] [I] MaxAuxStreams: -1
[01/22/2024-17:23:30] [I] BuilderOptimizationLevel: -1
[01/22/2024-17:23:30] [I] Input(s)s format: fp32:CHW
[01/22/2024-17:23:30] [I] Output(s)s format: fp32:CHW
[01/22/2024-17:23:30] [I] Input build shape: input=1x8x64x64+1x8x720x1280+1x8x1080x1920
[01/22/2024-17:23:30] [I] Input calibration shapes: model
[01/22/2024-17:23:30] [I] === System Options ===
[01/22/2024-17:23:30] [I] Device: 0
[01/22/2024-17:23:30] [I] DLACore:
[01/22/2024-17:23:30] [I] Plugins:
[01/22/2024-17:23:30] [I] setPluginsToSerialize:
[01/22/2024-17:23:30] [I] dynamicPlugins:
[01/22/2024-17:23:30] [I] ignoreParsedPluginLibs: 0
[01/22/2024-17:23:30] [I]
[01/22/2024-17:23:30] [I] === Inference Options ===
[01/22/2024-17:23:30] [I] Batch: Explicit
[01/22/2024-17:23:30] [I] Input inference shape: input=1x8x720x1280
[01/22/2024-17:23:30] [I] Iterations: 10
[01/22/2024-17:23:30] [I] Duration: 3s (+ 200ms warm up)
[01/22/2024-17:23:30] [I] Sleep time: 0ms
[01/22/2024-17:23:30] [I] Idle time: 0ms
[01/22/2024-17:23:30] [I] Inference Streams: 1
[01/22/2024-17:23:30] [I] ExposeDMA: Disabled
[01/22/2024-17:23:30] [I] Data transfers: Enabled
[01/22/2024-17:23:30] [I] Spin-wait: Disabled
[01/22/2024-17:23:30] [I] Multithreading: Disabled
[01/22/2024-17:23:30] [I] CUDA Graph: Disabled
[01/22/2024-17:23:30] [I] Separate profiling: Disabled
[01/22/2024-17:23:30] [I] Time Deserialize: Disabled
[01/22/2024-17:23:30] [I] Time Refit: Disabled
[01/22/2024-17:23:30] [I] NVTX verbosity: 0
[01/22/2024-17:23:30] [I] Persistent Cache Ratio: 0
[01/22/2024-17:23:30] [I] Inputs:
[01/22/2024-17:23:30] [I] === Reporting Options ===
[01/22/2024-17:23:30] [I] Verbose: Disabled
[01/22/2024-17:23:30] [I] Averages: 10 inferences
[01/22/2024-17:23:30] [I] Percentiles: 90,95,99
[01/22/2024-17:23:30] [I] Dump refittable layers:Disabled
[01/22/2024-17:23:30] [I] Dump output: Disabled
[01/22/2024-17:23:30] [I] Profile: Disabled
[01/22/2024-17:23:30] [I] Export timing to JSON file:
[01/22/2024-17:23:30] [I] Export output to JSON file:
[01/22/2024-17:23:30] [I] Export profile to JSON file:
[01/22/2024-17:23:30] [I]
[01/22/2024-17:23:30] [I] === Device Information ===
[01/22/2024-17:23:30] [I] Selected Device: Tesla V100-SXM2-32GB
[01/22/2024-17:23:30] [I] Compute Capability: 7.0
[01/22/2024-17:23:30] [I] SMs: 80
[01/22/2024-17:23:30] [I] Device Global Memory: 32510 MiB
[01/22/2024-17:23:30] [I] Shared Memory per SM: 96 KiB
[01/22/2024-17:23:30] [I] Memory Bus Width: 4096 bits (ECC enabled)
[01/22/2024-17:23:30] [I] Application Compute Clock Rate: 1.53 GHz
[01/22/2024-17:23:30] [I] Application Memory Clock Rate: 0.877 GHz
[01/22/2024-17:23:30] [I]
[01/22/2024-17:23:30] [I] Note: The application clock rates do not reflect the actual clock rates that the GPU is currently running at.
[01/22/2024-17:23:30] [I]
[01/22/2024-17:23:30] [I] TensorRT version: 8.6.1
[01/22/2024-17:23:30] [I] Loading standard plugins
[01/22/2024-17:23:31] [I] [TRT] [MemUsageChange] Init CUDA: CPU +266, GPU +0, now: CPU 277, GPU 2131 (MiB)
[01/22/2024-17:23:31] [I] [TRT] [MemUsageSnapshot] Begin constructing builder kernel library: CPU 277 MiB, GPU 2131 MiB
[01/22/2024-17:23:31] [I] [TRT] [MemUsageSnapshot] End constructing builder kernel library: CPU 389 MiB, GPU 2155 MiB
[01/22/2024-17:23:31] [I] Start parsing network model.
[01/22/2024-17:23:31] [I] [TRT] ----------------------------------------------------------------
[01/22/2024-17:23:31] [I] [TRT] Input filename:   /dockerdata/zhenxia/Download/ft_local/rife46_ensembleFalse_op18_clamp.onnx
[01/22/2024-17:23:31] [I] [TRT] ONNX IR version:  0.0.8
[01/22/2024-17:23:31] [I] [TRT] Opset version:    18
[01/22/2024-17:23:31] [I] [TRT] Producer name:    pytorch
[01/22/2024-17:23:31] [I] [TRT] Producer version: 2.1.1
[01/22/2024-17:23:31] [I] [TRT] Domain:
[01/22/2024-17:23:31] [I] [TRT] Model version:    0
[01/22/2024-17:23:31] [I] [TRT] Doc string:
[01/22/2024-17:23:31] [I] [TRT] ----------------------------------------------------------------
[01/22/2024-17:23:31] [W] [TRT] onnx2trt_utils.cpp:366: Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.
[01/22/2024-17:23:31] [W] [TRT] onnx2trt_utils.cpp:392: One or more weights outside the range of INT32 was clamped
[01/22/2024-17:23:31] [E] Error[4]: [shuffleNode.cpp::symbolicExecute::387] Error Code 4: Internal Error (/Reshape: IShuffleLayer applied to shape tensor must have 0 or 1 reshape dimensions: dimensions were [-1,2])
[01/22/2024-17:23:31] [E] [TRT] ModelImporter.cpp:773: While parsing node number 98 [Pad -> "/Pad_output_0"]:
[01/22/2024-17:23:31] [E] [TRT] ModelImporter.cpp:774: --- Begin node ---
[01/22/2024-17:23:31] [E] [TRT] ModelImporter.cpp:775: input: "/Slice_output_0"
input: "/Cast_5_output_0"
input: ""
output: "/Pad_output_0"
name: "/Pad"
op_type: "Pad"
attribute {
name: "mode"
s: "constant"
type: STRING
}
[01/22/2024-17:23:31] [E] [TRT] ModelImporter.cpp:776: --- End node ---
[01/22/2024-17:23:31] [E] [TRT] ModelImporter.cpp:779: ERROR: ModelImporter.cpp:179 In function parseGraph:
[6] Invalid Node - /Pad
[shuffleNode.cpp::symbolicExecute::387] Error Code 4: Internal Error (/Reshape: IShuffleLayer applied to shape tensor must have 0 or 1 reshape dimensions: dimensions were [-1,2])
[01/22/2024-17:23:31] [E] Failed to parse onnx file
[01/22/2024-17:23:31] [I] Finished parsing network model. Parse time: 0.0638087
[01/22/2024-17:23:31] [E] Parsing model failed
[01/22/2024-17:23:31] [E] Failed to create engine from model or file.
[01/22/2024-17:23:31] [E] Engine set up failed
'''
and  my environment is:
cuda 11.3
tensorrt TensorRT 8.6 GA
'''
and i tried trt v8.2 is the same error.

I already explained version requirements here.
TRT 9.2
&&&& PASSED TensorRT.trtexec [TensorRT v9200] # trtexec --fp16 --onnx=rife46_ensembleFalse_op18_clamp.onnx --minShapes=input:1x8x64x64 --optShapes=input:1x8x720x1280 --maxShapes=input:1x8x1080x1920 --saveEngine=rife46_ensembleFalse_op18_clamp.engine --tacticSources=+CUDNN,-CUBLAS,-CUBLAS_LT --skipInference --preview=+fasterDynamicShapes0805

TRT 8.6
&&&& PASSED TensorRT.trtexec [TensorRT v8601] # trtexec --fp16 --onnx=rife46_ensembleFalse_op18_clamp.onnx --minShapes=input:1x8x64x64 --optShapes=input:1x8x720x1280 --maxShapes=input:1x8x1080x1920 --saveEngine=rife46_ensembleFalse_op18_clamp.engine --tacticSources=+CUDNN,-CUBLAS,-CUBLAS_LT --skipInference --preview=+fasterDynamicShapes0805

If you use my docker, it works. Looks like user error to me.


Check MechComponentDef

MechComponentDef seems to be the second biggest slowdown after MechDef.  Can it be optimised and will it be worth the time?

Copying the MechDef dependency management on MechComponentDef does not work.  After the svg icons are loaded, no other dependency can be found, and they don't recursively call each other.

It requires a different approach from MechDef but I found a light check that should reduce the number of checks.  More voodoo.


Bump to Summernote v0.8.2

See Readme for https://github.com/cpbotha/summernote
Summernote 0.8.2 has landed on npm and we should use that instead of the fork

Nice work!


Decide on comitting to External Secrets

^

Current Missing SOPS to add back if want to revert back to pure SOPS:

Minio
Vaultwarden

Comitted to External Secrets - Oracle Vault


Added description to add simulator in Xcode version 14.0 or  greater

This should probably be backported if so

Done

This should probably be backported if so

Done

It seems like you haven't backported your changes to files inside website/versioned_docs/version-0.71/ and other folders.

It seems like you haven't backported your changes to files inside website/versioned_docs/version-0.71/ and other folders.

Done


feat: improve side label UI

Brief Information
This pull request is in the type of (more info about types):

[ ] build
[ ] ci
[ ] docs
[x] feat
[ ] fix
[ ] perf
[ ] refactor
[ ] test

Related issues (all available keywords):

resolve #885

Details

https://github.com/user-attachments/assets/c899c84a-6877-44ff-8895-abe22890e9c8
Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA

Others

Looks great, what will this be like for https://github.com/ray-project/ray ?

Looks great, what will this be like for https://github.com/ray-project/ray ?

FYI,

Sorry, what I mean is actually https://github.com/langchain-ai/langchain , because this repo does not have any GitHub tags.

https://github.com/langchain-ai/langchain

I didn't consider that scenario. I will do a quick fix on this issue.

Now it should work in repos without any tag :)

@wangyantong2000 Could you have a look on this.

@wangyantong2000 Could you have a look on this.

OK

I tried several repositories and the previous issues were resolved.


Update Angular SSR docs to match updated Angular 6 template

From @SteveSandersonMS on August 16, 2018 17:24
The current docs are at https://docs.microsoft.com/en-us/aspnet/core/client-side/spa/angular?view=aspnetcore-2.1&tabs=visual-studio#server-side-rendering
Discussed with @ryanbrandenburg
Copied from original issue: aspnet/Templating#677

@RickAndMSFT This needs to be done as part of the 2.2 doc effort.

It seems that AngularCliBuilder is broken for our scenario here. Basically we're ending up with npm run build:ssr -- --watch, which fails with Unknown option: '--watch'. @SteveSandersonMS do you have any history on why that --watch is there and how we might better handle this situation?

The --watch is so it keeps running in the background to regenerate the dist files whenever the developer modifies .ts sources. Maybe Angular 7 has renamed the option, in which case we should update to match (though then we need to drop compatibility with older versions of Angular).

Talked to @danroth27 regarding this. The plan is to remove Angular SSR docs as it'll be a headache to keep up with the changes they will come up.

Fixed by #11151.


bootloader: remove image verification when waking from deep sleep

In the application I'm building it's very important to have access to interrupts as fast as possible after deep sleep wake up.
On my dev board image verification takes ~800msec, which is way too long, and I think it's best done only on boot after flashing and it's not really needed on wakeup. The only scenario I can think of where the image would change is if before entering deep sleep there was an OTA update, but OTA images are verified before being written to flash.
This reduces the time until interrupts are again available to under 200msec on my board, which is manageable for my application.

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

Hi @CristiCimpianu ,
Sorry noone ever got back to you about this.
One of the changes which is coming for IDF V3.0 is a rewrite of the bootloader, so it verifies as it loads. Performance is substantially improved (both when waking from sleep and for normal boots.) Please take a look once these changes land (they'ren ot on github yet, buy they should be some time in the next few days.)
Angus

Hi Angus,
Thanks a lot for the reply. Can you provide some estimate on when the v3.0 code will land on github?
The latest changes in the booloader don't seem to bring any improvement and also overriding checksum checks doesn't seem so easy as in the fix above so I'm forced to stick with an old version of the IDF if I can't find a workaround. This will be a problem for our product since we'll be missing a lot of useful patches. However at this point with the device waking up from sleep in 1.8 seconds our device is completely unusable.
Regards,
Cristi.

Hi @CristiCimpianu ,
Sorry, I missed this comment when you made it. I think the changes you have should include the faster bootloader code. I'm surprised it's as slow as 1.8 seconds. Are you using secure boot? This is the only thing I know of that is likely to slow boot down anywhere near this much.
The new bootloader code (in the current master branch) combines loading & verification, to the point where the overhead of verification is quite low compared to beforehand.
If it's genuinely too slow then we can look at removing these checks, but I'd like to understand your use case & settings better (debug output, flash settings, etc.) that is making it this slow.
Angus

Hi @projectgus and thanks for your reply.
I'm not using secure boot. The 1.8 sec time I got before moving the flash to QIO mode. I have already done some changes to avoid verification during deep sleep wakeup.
With my changes on top of the current master branch code I get 834msec on first boot and 169msec when coming out of deep sleep. I would have loved for that time to be under 100msec, but that's as fast as I could make it. The application is an IoT button that needs to measure the button click duration and since wakeup is done on the button press I need it to be up fast enough to catch the button raise edge interrupt. Any other approach either leaves me with an incorrect click duration or gets me confused between single or multiple clicks. Within 834msec I can certainly fit 2 clicks before the cpu is up. Within 169msec it's difficult to lose the final interrupt, but with a little practice I can do it in 1 out of several tries.
The flash is a 4MB, 80 MHz W25Q32 chip connected via SPI and the boot time comes from a xthal_get_ccount() right at the start of app_main().
My changes are not as clean as I'd like them mostly because they remove the RAM obfuscation you added and that's why I didn't push them.

The application is an IoT button that needs to measure the button click duration and since wakeup is done on the button press I need it to be up fast enough to catch the button raise edge interrupt. Any other approach either leaves me with an incorrect click duration or gets me confused between single or multiple clicks.

Have you thought about writing a simple ULP program for this? It can be running while the ESP32 is asleep and while the main CPU is booting IDF.

Have you thought about writing a simple ULP program for this?
Before coming up with the idea to avoid image verification I did think about the ULP, but since I'm not that good at writing assembly and it's not clear to me even now how to do it I gave up on it. I guess the ULP would need to wake up when the main cpu wakes up and do some polling on the gpio port to see when it changes state and how many times it does that. Is there any other documentation besides ULP guide? From that doc it seems I would need to keep the ULP waking up at a fast rate all the time and its logic would have to be not so simple because it needs to understand when to start counting and when to stop.

There are two ULP examples you can work from.
This one is probably the most relevant:
https://github.com/espressif/esp-idf/blob/master/examples/system/ulp/main/ulp/pulse_cnt.S
It currently waits for a pulse of a minimum duration before it wakes the main CPU, but you could modify it to communicate the pulse length to the main CPU.

boot time comes from a xthal_get_ccount() right at the start of app_main().

I forgot to mention this yesterday, but this is probably not an accurate measurement of boot time. The boot process runs at multiple different clock frequencies - crystal freq to start, then 80MHz, and then the final app frequency. The CCOUNT value is not guaranteed to be stable across frequency changes.
The recommended reliable way to measure the boot time is to set a GPIO in app_main() and use an external oscilloscope or logic analyzer to measure the time between EN pin going high and this GPIO being set.
Eventually we would like the ESP_LOG() timestamps to accurately reflect time since boot, but they don't at the moment (they are accurate from app_main() forwards.) #700 has some discussion of this.

I'm going to close this. Bootloader loading times should be improved over the situation at the time this PR was sent, and the bootloader code has changed quite a bit.
@CristiCimpianu if you're still concerned about boot times, please open a Github issue and we can discuss the issue further.


possible to do a benchmark test using this package to show bytes allocation?

possible to do a benchmark test using this package to show bytes allocation?

Makes no sense within tcpserver because it depends on what you do with it. It's a huge difference if you need to parse HTTP requests or if you have some kind of binary protocol.
It all boils down to how fast you can spin up worker "processes" (goroutines) and this is handled by Ultrapool (https://github.com/maurice2k/ultrapool) which has a benchmark included.


feat(UserAccountEvent): raise new AccountUnlockedEvent event

Brock, I've just realised I forgot to create an email template and handler for this new event.
I was about to add it, but then if I do then isn't this a breaking change - ie now MR will start sending out an email when an account is unlocked when previously it didn't.
What's your thoughts? Just add it and then include a breaking change section in the release notes and bump the version to 9.0.0?


Update CommitStatus to Status on RepositoriesClient and ObservableRep…

…ositoriesClient  #1034

I think you made this to my fork by mistake, you want to do it against the master upstream

woops! Thanks for letting me know

Well it helped me realize to update the tests in the PRs I made, so it was useful :)


Add tracer support

This allows users to add a tracer (for example, datadog's APM tracer) so the metrics/spans will be reported to the tracer.
Test Plan

[x] This integration works in a test project
[x] Added test cases to cover the new behavior

Codecov Report

:exclamation: No coverage uploaded for pull request base (bf9f08d3bc60d84f1ffc881c16c3494b3fbb832f@bf9f08d). Click here to learn what that means.
The diff coverage is n/a.

@@                             Coverage Diff                             @@
##             bf9f08d3bc60d84f1ffc881c16c3494b3fbb832f      #56   +/-   ##
===========================================================================
  Coverage                                            ?   98.50%
===========================================================================
  Files                                               ?       27
  Lines                                               ?     1002
  Branches                                            ?        0
===========================================================================
  Hits                                                ?      987
  Misses                                              ?       15
  Partials                                            ?        0

Continue to review full report at Codecov.

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

update to use a block
:mag_right: Click to see changes since last update.

add doc
:mag_right: Click to see changes since last update.

address comments
:mag_right: Click to see changes since last update.

add span namespace
:mag_right: Click to see changes since last update.

updated span name.
:mag_right: Click to see changes since last update.

update api -- provide a block directly
:mag_right: Click to see changes since last update.

add tracing to relation methods
:mag_right: Click to see changes since last update.

remove tracing from count since it's only running a redis command
:mag_right: Click to see changes since last update.


Pulsar schema api should respect to namespace level compatibility

Describe the bug
Currently the schema restful api is using SchemaCompatibilityStrategy.FULL
https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/SchemasResource.java#L268
It should use the compatibility strategy configured at namespace level.

@congbobo184 please take a look this issue


Swagger update causing problems while deploying a revision

Description
Hi team,
We have observed the below error while deploying a new revision after updating the swagger definition.
TID: [-1234] [api/am/publisher] [2024-06-03 08:14:37,182] ERROR {org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO} - Failed to add API Revision entry of API UUID c6cbf692-9f2a-4299-9a5b-f46988bd00d0 java.sql.BatchUpdateException: Batch entry 0 INSERT INTO AM_API_OPERATION_POLICY_MAPPING  (URL_MAPPING_ID, POLICY_UUID, DIRECTION, PARAMETERS, POLICY_ORDER)  VALUES (0,'12345-5555-5555-55555-dg5t5654','request','{}',1) was aborted: ERROR: insert or update on table "am_api_operation_policy_mapping" violates foreign key constraint "am_api_operation_policy_mapping_url_mapping_id_fkey"
  Detail: Key (url_mapping_id)=(0) is not present in table "am_api_url_mapping".  Call getNextException to see other errors in the batch.

If we check the "API Definition" we will be able to see that after importing the updated swagger, even though we removed the "security" section it will be automatically appended to each resource by WSO2.

However, WSO2 didn't add the "x-auth-type" parameter. This is the reason for the behavior we are observing.
Thanks & Regards,
Niran Peiris
Steps to Reproduce

Set up a Postgres database. (We haven't tried the behavior in any other database type. The behavior should be the same)
Deploy and Publish the "pizzashack" API.
Add a simple mediation policy to all the resources.
Save and deploy a new revision.
Download the swagger from the "API Definition" section.
Remove the below section from all the resources in the downloaded swagger.

security:
        - default: []
      x-throttling-tier: Unlimited
      x-wso2-application-security:
        security-types:
          - oauth2
        optional: false

Save the changes.
Import the updated swagger.
Deply a new revision.

Affected Component
APIM
Version
4.2.0
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

Hi @shnrndk  ,
Please share the public fix and close this issue.
Regards,
Tharani.


dealing with string arrays marginally better

fix release (#29)
include mac
fix release (#30)
dont strip empty strings from end of line
dont strip empty strings from end of line
Performance tweaks (#31)
sorted array content splitting
merging with alex's optimisations

ill switch the logging in this loop to trace level logging i think cos it was pretty useful to debug the oddities


Updating tabs to spaces in the file - fixes #46

Updating indentation in CMDI file to stop errors being displayed on enabling the plugin

@codingo Why close this PR?  As stated in #46, #49, and #63 the lack of proper indentation is a Python syntax error.


Load plugin emqx_auth_mysql error

Make sure you read and understand http://emqtt.io/docs/v2/index.html.
Use one of the two templates below and delete the rest.

[x] BUG REPORT
[ ] FEATURE REQUEST

BUG REPORT

Expected behavior

Navigate to dashboard plugin page

Modify emqx_auth_mysql/3.4.0 settings

Load plugin emqx_auth_mysql/3.4.0

Suppose success
Actual behavior
Load plugin error
Dashboard prompt
Request failed with status code 500

Docker Log
2019-11-07 07:50:40.929 [error] PUT<EMAIL_ADDRESS>error: badarg, stacktrace:
[{jsx_parser,value,4,
             [{file,"/emqx_rel/_checkouts/jsx/src/jsx_parser.erl"},
              {line,163}]},
 {minirest_handler,jsonify,4,
                   [{file,"/emqx_rel/_checkouts/minirest/src/minirest_handler.erl"},
                    {line,152}]},
 {minirest,handle_request,2,
           [{file,"/emqx_rel/_checkouts/minirest/src/minirest.erl"},
            {line,94}]},
 {minirest,init,2,
           [{file,"/emqx_rel/_checkouts/minirest/src/minirest.erl"},
            {line,86}]},
 {cowboy_handler,execute,2,
                 [{file,"/emqx_rel/_checkouts/cowboy/src/cowboy_handler.erl"},
                  {line,41}]},
 {cowboy_stream_h,execute,3,
                  [{file,"/emqx_rel/_checkouts/cowboy/src/cowboy_stream_h.erl"},
                   {line,296}]},
 {cowboy_stream_h,request_process,3,
                  [{file,"/emqx_rel/_checkouts/cowboy/src/cowboy_stream_h.erl"},
                   {line,274}]},
 {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]

Test code
Provide a Minimal, Complete, and Verifiable example which will reproduce the problem.
# add code here

EMQ version
Which branch are you on? If you know the Git revision then add it here as well.
docker/emqx:v3.2.3
Docker version
Which docker-engine version?
Docker version 18.03.1-ce, build 9ee9f40

How docker info?
Containers: 5
 Running: 2
 Paused: 0
 Stopped: 3
Images: 13
Server Version: 18.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.87-linuxkit-aufs
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 5.818GiB
Name: linuxkit-025000000001
ID: NIYD:F2AE:QBGS:RDIJ:E3HQ:SNE2:RILC:RXGO:IR77:TRKC:DFQF:G5G7
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 42
 Goroutines: 64
 System Time: 2019-11-07T07:57:27.716606885Z
 EventsListeners: 2
HTTP Proxy: docker.for.mac.http.internal:3128
HTTPS Proxy: docker.for.mac.http.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

System
What system do you use?
mac mojave 10.14.6
Hardware
How is the host machine?
MacBook Pro (Retina, 13-inch, Early 2015)

Hi, @jauzzz.
Because of our negligence, we can't see more information when you load plugin using REST API and an error occurs. Could you use ./bin/emqx_ctl plugin load <Plugin> to load emqx_auth_mysql and submit the error log to us again? Thanks.

Hi, @jauzzz.
Because of our negligence, we can't see more information when you load plugin using REST API and an error occurs. Could you use ./bin/emqx_ctl plugin load <Plugin> to load emqx_auth_mysql and submit the error log to us again? Thanks.

of course.
In docker container shell, i type ./bin/emqx_ctl plugins load emqx_auth_mysql
(Or i need to type it in local version emqx instead of docker version?)
Whatever,  here is the error report
=ERROR REPORT==== 8-Nov-2019::03:29:54.318436 ===
[Plugins] Load plugin emqx_auth_mysql failed, cannot start plugin emqx_auth_mysql for {bad_return,
                                                                                {{emqx_auth_mysql_app,
                                                                                start,
                                                                                [normal,
                                                                                []]},
                                                                                {'EXIT',
                                                                                {{badmatch,
                                                                                {error,
                                                                                {shutdown,
                                                                                {failed_to_start_child,
                                                                                emqx_auth_mysql,
                                                                                {shutdown,
                                                                                {failed_to_start_child,
                                                                                worker_sup,
                                                                                {shutdown,
                                                                                {failed_to_start_child,
                                                                                {worker,
                                                                                1},
                                                                                {{badmatch,
                                                                                {error,
                                                                                econnrefused}},
                                                                                [{mysql_conn,
                                                                                init,
                                                                                1,
                                                                                [{file,
                                                                                "/emqx_rel/_checkouts/mysql/src/mysql_conn.erl"},
                                                                                {line,
                                                                                94}]},
                                                                                {gen_server,
                                                                                init_it,
                                                                                2,
                                                                                [{file,
                                                                                "gen_server.erl"},
                                                                                {line,
                                                                                374}]},
                                                                                {gen_server,
                                                                                init_it,
                                                                                6,
                                                                                [{file,
                                                                                "gen_server.erl"},
                                                                                {line,
                                                                                342}]},
                                                                                {proc_lib,
                                                                                init_p_do_apply,
                                                                                3,
                                                                                [{file,
                                                                                "proc_lib.erl"},
                                                                                {line,
                                                                                249}]}]}}}}}}}}},
                                                                                [{emqx_auth_mysql_app,
                                                                                start,
                                                                                2,
                                                                                [{file,
                                                                                "/emqx_rel/_checkouts/emqx_auth_mysql/src/emqx_auth_mysql_app.erl"},
                                                                                {line,
                                                                                36}]},
                                                                                {application_master,
                                                                                start_it_old,
                                                                                4,
                                                                                [{file,
                                                                                "application_master.erl"},
                                                                                {line,
                                                                                277}]}]}}}}
load plugin error: {emqx_auth_mysql,
                    {bad_return,
                     {{emqx_auth_mysql_app,start,[normal,[]]},
                      {'EXIT',
                       {{badmatch,
                         {error,
                          {shutdown,
                           {failed_to_start_child,emqx_auth_mysql,
                            {shutdown,
                             {failed_to_start_child,worker_sup,
                              {shutdown,
                               {failed_to_start_child,
                                {worker,1},
                                {{badmatch,{error,econnrefused}},
                                 [{mysql_conn,init,1,
                                   [{file,
                                     "/emqx_rel/_checkouts/mysql/src/mysql_conn.erl"},
                                    {line,94}]},
                                  {gen_server,init_it,2,
                                   [{file,"gen_server.erl"},{line,374}]},
                                  {gen_server,init_it,6,
                                   [{file,"gen_server.erl"},{line,342}]},
                                  {proc_lib,init_p_do_apply,3,
                                   [{file,"proc_lib.erl"},
                                    {line,249}]}]}}}}}}}}},
                        [{emqx_auth_mysql_app,start,2,
                          [{file,
                            "/emqx_rel/_checkouts/emqx_auth_mysql/src/emqx_auth_mysql_app.erl"},
                           {line,36}]},
                         {application_master,start_it_old,4,
                          [{file,"application_master.erl"},{line,277}]}]}}}}}

Hi, @jauzzz. It seems that emqx cannot connect to your mysql. Please check the configuration in emqx/etc/plugins/emqx_auth_mysql.conf and your mysql service.

Hi, @tigercl .

Does your MySQL also run in the container?

Does your MySQL also run in the container?

Local

You can try to ping MySQL in emqx docker.

You can try to ping MySQL in emqx docker.

It's all right.

@jauzzz Please check if your mysql service is configured with bind-address=<IP_ADDRESS>

@jauzzz Please check if your mysql service is configured with bind-address=<IP_ADDRESS>

It did.

@jauzzz Please change bind-address=<IP_ADDRESS> to bind-address=<IP_ADDRESS> or comment out this line and restart mysql and try again

Here is my experience
The main configuration item is mysql host

If you use docker mysql, make sure that emqx and mysql can communicate with each other, accessing-a-docker-container-from-another-container
for example, I am using docker-compose, then the corresponding mysql host is the mysql service name in the compose file
If you use local mysql, mysql host should be native ip

After modifying these configurations, please restart emqx, otherwise it will not take effect! ! !


Use threads for Flask

Allows Flask to handle multiple requests concurrently and prevents it from dying on error.

Oh yes, thank you.


Make certain usage patterns more prominent in the README

We use this library extensively where I work. After pairing with many
teammates, I've learned that one common stumbling point when using this
library is how to first get a JSON value in the first place (because
once they have a variable of type json in hand, the API is intuitive
and mostly does what you expect).
With that in mind, I've added two subsections to the top of the Examples
section: how to read JSON from a file, and how to hardcode a JSON
literal.
I understand that these are already documented elsewhere in the Examples
section, and so these new subsections are technically redundant. But to
defend this choice:

Redundancy in docs is actually good, because not everyone consumes
docs in the same way or in the same order.

Having these things called out explicitly in isolation encourages
people to get something working faster. In later sections, these
examples are presented alongside many other options. Having to choose
between alternatives gets in the way of quickly prototyping something.

If you have further suggestions for how to improve or modify these docs
I'm open to them. The changes included here would really make a huge
improvement in the productivity of newer members of my team using this
library.

Pull request checklist
Read the Contribution Guidelines for detailed information.

[x]  Changes are described in the pull request, or an existing issue is referenced.
[x]  The test suite compiles and runs without error.
[x]  Code coverage is 100%. Test cases can be added by editing the test suite.
[x]  The source code is amalgamated; that is, after making changes to the sources in the include/nlohmann directory, run make amalgamate to create the single-header file single_include/nlohmann/json.hpp. The whole process is described here.

Please don't

The C++11 support varies between different compilers and versions. Please note the list of supported compilers. Some compilers like GCC 4.7 (and earlier), Clang 3.3 (and earlier), or Microsoft Visual Studio 13.0 and earlier are known not to work due to missing or incomplete C++11 support. Please refrain from proposing changes that work around these compiler's limitations with #ifdefs or other means.
Specifically, I am aware of compilation problems with Microsoft Visual Studio (there even is an issue label for these kind of bugs). I understand that even in 2016, complete C++11 support isn't there yet. But please also understand that I do not want to drop features or uglify the code just to make Microsoft's sub-standard compiler happy. The past has shown that there are ways to express the functionality such that the code compiles with the most recent MSVC - unfortunately, this is not the main objective of the project.
Please refrain from proposing changes that would break JSON conformance. If you propose a conformant extension of JSON to be supported by the library, please motivate this extension.
Please do not open pull requests that address multiple issues.

Coverage remained the same at 100.0% when pulling b70f62e46965d01ba6a02ebc2f2cf929670494e4 on jez:jez-readme into 954b10ad3baa5d92bb9cd5bb93c7258433cd2bb2 on nlohmann:develop.


Install Error

First of all, thank you so much for revealing this wonderful work!
I tried setting up the environment following the instructions in the ReadMe, but the same error as shown here appears.
However, the solutions on that page will not solve my problem. This is because that solution requires the latest torch and the latest diff-gaussian-rasterization, while GaussianDreamer does not use the latest diff-gaussian-rasterization(There are some modules whose input/output is different from the latest version).
My environment
GPU : A5000
CUDA : 11.8 or 11.7
torch : 1.12.1 or 2.0.0 or 2.0.1 (I am getting the same error while installing diff-gaussian-rasterization in all versions.)
Could you please give me some advice?
Thanks.

Thank you for your attention. I'm sorry that I haven't tested on Windows. One solution is to replace the current implementation with the latest diff-gaussian-rasterization and remove the depth output during rendering. I will try to solve this problem later when I have time.

@taoranyi
Oh, I'm using ubuntu.
This issue also occurred when installing DreamGaussian, but in the case of DreamGaussian, it was resolved with the solution here.

Here is a possible way. Currently, our diff-gaussian-rasterization comes from here, which you can replace with this: diff-gaussian-rasterization. It is worth noting that the rasterizer should be modified appropriately. If this works, please let me know!

@taoranyi
I already tried it yesterday. However, as you said, the input/output had to be modified, so I didn't look into it in depth.
I don't have time to look into the rasterizer right now, so I'll try tomorrow or the day after!

Thanks!!!!!!!!!!!!!! I will be very grateful!

I was able to get it up and running by downloading this rasterizer and running these exact steps.
I don't think it everything is playing well since it doesn't seem like it is outputting any results anywhere, but maybe I just don't know what to look for?

conda create -n gau_env python=3.9
conda activate gau_env
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install ninja
pip install -r requirements.txt
cd ..
pip install gaussian-splatting/submodules/diff-gaussian-rasterization
pip install gaussian-splatting/submodules/simple-knn
cd shap-e
pip install -e .pip install -e .
pip install bitsandbytes-windows
conda install -c anaconda ipywidgets
pip install open3d
python launch.py --config configs/gaussiandreamer-sd.yaml --train --gpu 0 system.prompt_processor.prompt="a fox"

Not sure if this helps at all, but here the output:

Here is a possible way. Currently, our diff-gaussian-rasterization comes from here, which you can replace with this: diff-gaussian-rasterization. It is worth noting that the rasterizer should be modified appropriately. If this works, please let me know!

I get a ton of errors when trying to install that other replacement for some reason. Ends about the same as the other errors though.
File "C:\Users\xxx\Programs\miniconda\envs\gau_env\lib\site-packages\torch\utils\cpp_extension.py", line 1574, in _write_ninja_file_and_compile_objects
_run_ninja_build(
File "C:\Users\xxx\Programs\miniconda\envs\gau_env\lib\site-packages\torch\utils\cpp_extension.py", line 1909, in _run_ninja_build
raise RuntimeError(message) from e
RuntimeError: Error compiling objects for extension
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for diff-gaussian-rasterization
Running setup.py clean for diff-gaussian-rasterization
Failed to build diff-gaussian-rasterization

@taoranyi  @Cazforshort
I fixed it.

Erase original diff-gaussian-rasterization directory
git clone --recursive https://github.com/ashawkey/diff-gaussian-rasterization in GaussianDreamer/gaussiansplatting/submodules
Follow the instructions here
pip install ./gaussiansplatting/submodules/diff-gaussian-rasterization
Fix raster_settings : Add debug=False as the last argument
Fix rasterizer : rendered_image, radii, depth, _ = Because lastest gaussian rasterizers output alpha values.

@taoranyi
I have additional question.
How can I get 3D mesh?
It seems that GaussianDreamer can only output point clouds.

@taoranyi @Cazforshort
I fixed it.

Erase original diff-gaussian-rasterization directory
git clone --recursive https://github.com/ashawkey/diff-gaussian-rasterization in GaussianDreamer/gaussiansplatting/submodules
Follow the instructions here
pip install ./gaussiansplatting/submodules/diff-gaussian-rasterization
Fix raster_settings : Add debug=False as the last argument
Fix rasterizer : rendered_image, radii, depth, _ = Because lastest gaussian rasterizers output alpha values.

You were able to get it to work with cuda 11.8? I thought only 11.7 would work with 2.0.1 pytorch

The raster changes worked for me too, but I had to stick with cuda 11.7 not 11.8.
It also saves  a copy of the entire codebase each time? Thats a weird one.

@TLB-MISS
I haven't yet touched on how to convert a 3D Gaussians into a mesh, so you may have to look it up yourself.

I've created a

@taoranyi @Cazforshort
I fixed it.

Erase original diff-gaussian-rasterization directory
git clone --recursive https://github.com/ashawkey/diff-gaussian-rasterization in GaussianDreamer/gaussiansplatting/submodules
Follow the instructions here
pip install ./gaussiansplatting/submodules/diff-gaussian-rasterization
Fix raster_settings : Add debug=False as the last argument
Fix rasterizer : rendered_image, radii, depth, _ = Because lastest gaussian rasterizers output alpha values.

I've created a fork with the changes, i initially did it to make it work on colab, so for the lazy people out there, help yourself.

@taoranyi @Cazforshort
I fixed it.

Erase original diff-gaussian-rasterization directory
git clone --recursive https://github.com/ashawkey/diff-gaussian-rasterization in GaussianDreamer/gaussiansplatting/submodules
Follow the instructions here
pip install ./gaussiansplatting/submodules/diff-gaussian-rasterization
Fix raster_settings : Add debug=False as the last argument
Fix rasterizer : rendered_image, radii, depth, _ = Because lastest gaussian rasterizers output alpha values.

I've created a fork with the changes, i initially did it to make it work on colab, so for the lazy people out there, help yourself.
https://github.com/y-71/GaussianDreamer/

Where are you getting the ply? I'm just seeing pictures when I run the training example.

@Cazforshort
I don't know exactly what your situation is. In my case, there was a ply file in the save folder.

I think this issue can be closed

I think this issue can be closed

@Cazforshort
I don't know exactly what your situation is. In my case, there was a ply file in the save folder.

Ah something must be wrong since I don't have a save folder after training.

I was able to get it up and running by downloading this rasterizer and running these exact steps.
I don't think it everything is playing well since it doesn't seem like it is outputting any results anywhere, but maybe I just don't know what to look for?
EDIT: I forgot to mention that I added torch=2.0.1 to the requirements file since it kept getting upgraded!

conda remove -n gau_env --all
conda create -n gau_env python=3.9
conda activate gau_env
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install ninja
pip install -r requirements.txt
cd ..
pip install gaussian-splatting/submodules/diff-gaussian-rasterization
pip install gaussian-splatting/submodules/simple-knn
cd .\GaussianDreamer\shap-e
pip install -e .
pip install bitsandbytes-windows
conda install -c anaconda ipywidgets
pip install open3d
conda install -c conda-forge plyfile

python launch.py --config configs/gaussiandreamer-sd.yaml --train --gpu 0 system.prompt_processor.prompt="a fox"

Not sure if this helps at all, but here the output:

i run the follow success:
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu117
pip install ninja
pip install -r requirements.txt
then it will appear :
torchaudio 2.0.2+cu117 requires torch==2.0.1, but you have torch 2.1.0 which is incompatible.
fix use:
pip install torch==2.0.1 torchvision===0.15.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install xformers==0.0.20
git clone https://github.com/hustvl/GaussianDreamer.git
cd GaussianDreamer
pip install ./gaussiansplatting/submodules/diff-gaussian-rasterization
pip install ./gaussiansplatting/submodules/simple-knn
git clone https://github.com/openai/shap-e.git
cd shap-e
pip install -e .
pip install ipywidgets
pip install open3d
pip install plyfile
python launch.py --config configs/gaussiandreamer-sd.yaml --train --gpu 0 system.prompt_processor.prompt="a fox"
Then it can be running

I was able to get it up and running by downloading this rasterizer and running these exact steps.
I don't think it everything is playing well since it doesn't seem like it is outputting any results anywhere, but maybe I just don't know what to look for?
EDIT: I forgot to mention that I added torch=2.0.1 to the requirements file since it kept getting upgraded!

conda remove -n gau_env --all
conda create -n gau_env python=3.9
conda activate gau_env
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install ninja
pip install -r requirements.txt
cd ..
pip install gaussian-splatting/submodules/diff-gaussian-rasterization
pip install gaussian-splatting/submodules/simple-knn
cd .\GaussianDreamer\shap-e
pip install -e .
pip install bitsandbytes-windows
conda install -c anaconda ipywidgets
pip install open3d
conda install -c conda-forge plyfile

python launch.py --config configs/gaussiandreamer-sd.yaml --train --gpu 0 system.prompt_processor.prompt="a fox"

Not sure if this helps at all, but here the output:

Why is your training speed so fast? I am also running on RTX3090, but it is only 1.30Mib/s. My installation is torch2.0.1+cuda11.8

@taoranyi @Cazforshort
I fixed it.

Erase original diff-gaussian-rasterization directory
git clone --recursive https://github.com/ashawkey/diff-gaussian-rasterization in GaussianDreamer/gaussiansplatting/submodules
Follow the instructions here
pip install ./gaussiansplatting/submodules/diff-gaussian-rasterization
Fix raster_settings : Add debug=False as the last argument
Fix rasterizer : rendered_image, radii, depth, _ = Because lastest gaussian rasterizers output alpha values.

I've created a fork with the changes, i initially did it to make it work on colab, so for the lazy people out there, help yourself.
https://github.com/y-71/GaussianDreamer/

@y-71 that's so cool, I am struggling really hard to get it installed on Colab.. What did you do? I faced so much issue but finally was able to get it up and running. I wanted to know what you did to understand if we both were getting same errors.. Would you like to share the link to the colab notebook?


New release for 1.10

Could you please release a new version with the patch for the new networking?
Thanks!

Hum, looks like it's fixable from the template side.


The application "Bitfinex Report" can't be opened - 0.10.3

This message appears on a MacBook Pro running Catalina (10.15.3). This is not a block in the iOS "Security & Privacy Settings."
Thoughts?

HI @user905 can you please try opening it with right click please?
Can you confirm if this helps, it should.

Hey @ezewer - right-click -> open shows the same message.

@user905 this is strange, using same MacBook Pro running Catalina (10.15.3)
Can you try deleting this folder ~/Library/Application Support/bfx-report-electron, folder where was unzipped and unzipped it again please?

Hmmm - that folder doesn't appear to exist:

Strange, can try re installing the application please?
Using this link right? https://github.com/bitfinexcom/bfx-report-electron/releases/download/0.10.3/bfx-report-electron-0.10.3-mac.zip

I'm getting the same error - any ideas?

@niallone and @user905 we are working on the solution would be posted next week

@niallone and @user905 we are working on the solution would be posted next week

Legend, thanks!

Thank you! Just noticed your request to me. Do you still need anything from
me?
On Sat, Apr 11, 2020, 9:34 PM Niall<EMAIL_ADDRESS>wrote:

@niallone https://github.com/niallone and @user905
https://github.com/user905 we are working on the solution would be
posted next week
Legend, thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bitfinexcom/bfx-report-electron/issues/35#issuecomment-612548384,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHBPKZKOGJET7GAKAKXFYC3RMELCRANCNFSM4LLMTTCA
.

@user905 and @niallone this was fixed on last releases https://github.com/bitfinexcom/bfx-report-electron/releases/tag/v0.10.4 please let me know if not working.


installs incorrect version of npm

nodist 5 installs npm v5.1.0 and npm2.14.10

@ashleygwilliams Try using the new installer. It is packaged with NPM 3.3.9
However, my plan is to add NPM version management which is referenced in #96

i just installed it today-- is the link to the installer not to the "new one"?
also that is super awesome re: npm version mgmt!! now that we have LTS for 2 npm versions that will be very useful.
thanks for the quick response :)

Are you sure your npmrc pointing to the new installation? That is strange that it is still pointing at the old NPM.
C:\Users\JT4>npm -v
3.3.10

Here is my install.

i went ahead, uninstalled nodist, and then did a clean install with the nodejs installer.
i downloaded nodist about a few hours ago on a clean windows box, followed in the instructions and got 2.14.10.
i can try again. need to nuke the other stuff tho.

Well let me try on a VM and see if it is still acting the same.

hrm. i uninstalled Node with the installer and then installed nodist and 5... and now it's on npm version 3.5.0. looks like the un/installers aren't cleaning up old npm.
i'm guessing i had an old npm on this VM that i forgot about and when i installed 5 with nodist, it kept the original version of npm and didn't update it.
not sure if that is intended or not. but i think i know how it's working at least.
trying to work on windows more often to help improve the npm experience on it. thanks again for your help and attention!

(will happily close if this is the behavior that is expected)

The goal of the installer is to operate similar to the main node provided one. So we try to not make it mess with an environment outside of nodist. Also the installer doesnt cleanup installs of Nodist before 0.7 since it was all manual installs and hard to tell what users had done on their machines.
We can close this for now in favor of #96

same issue, have no idea what to do, please help

When i install nodist, seems like Nodist/bin/node_modules/ has the npm(v2.14.10)

Can you please do me a favor just for confirmation sake.
cd \Program Files (x86)\Nodist\bin\node_modules\npm
node cli.js -v

I have a feeling there is some environment variable trickery going on here. That will tell us the actual version at the site of install.

Okay, I confirmed this on a fresh install.
I am going to put together a new version.

Please try the build here
https://github.com/marcelklehr/nodist/pull/102
Let me know if this works.

I ran into this same issue, the new build (v0.7.2) resolved the issue.  I wasn't sure if anything special needed to be done (such as uninstalling v0.7.1 before installing v0.7.2) or not... I just simply install over the existing and it fixed the issue.

Installing over the existing is currently a valid method to upgrade. It
should work as expected.
On Dec 1, 2015 1:39 PM, "Evan Sharp"<EMAIL_ADDRESS>wrote:

I ran into this same issue, the new build (v0.7.2) resolved the issue. I
wasn't sure if anything special needed to be done (such as uninstalling
v0.7.1 before installing v0.7.2) or not... I just simply install over the
existing and it fixed the issue.
—
Reply to this email directly or view it on GitHub
https://github.com/marcelklehr/nodist/issues/101#issuecomment-161088855.

ok, the new release is out. sorry for the delay -- building with latest npm didn't work for me until now. Thanks for reporting and support everyone!


run/top/file: Sorting is not working properly

Description
As mentioned during https://github.com/inspektor-gadget/inspektor-gadget/pull/2132 review, the sort is not working properly:

Sort on the server side.
Sort by strings is not working.

Impact
Output is not always properly sorted.
Additional information
This should be solved on top of https://github.com/inspektor-gadget/inspektor-gadget/pull/2512.

I tried sorting by strings and it's working now. Are we still missing sorting on the server? @blanquicet

No, we already sorting on both sides.


Target specific element instead on window

Hi!
Is there a way to target a container div instead of the window?
Thanks!

Hi @RitzBrio at the moment it doesn't, however the angular-inviewport directive that this library uses to detect the inviewport status does.
So it maybe possible with an update to simply pass a reference to a parent element to the inviewport directive.


Checkbox should have a role

Issue / bug reported by a consumer in #eds-desing-system Slack channel

Input with type='checkbox' doesn't need role. Closing


fix id method bugs

For polymorphic has_many relations, instead of getting the ids in a batch, the code loops over each object to get its type and id. In Relationship#id_hash_from_record it was hardcoded to get the id by calling record.id, which overrides the id_method_name options passed into the relationship.
I tried fixing this by only changing the code in Relationship to dynamically call the id_method_name on the object, but unfortunately on has_many relationships the default value for id_method_name would be passed as if the ids would be pulled in a batch (for example groupee_ids). That default works for regular has_manys where we get the ids all at once but fails for polymorphic ones where it loops over each object.
So, fixing the problem required passing the polymorphic information to compute_id_method_name, which now defaults to id rather than id_method_name_from_relationship in the case where the relationship is polymorphic.
This also fixes a bug where the record_id is not carried over through inheritance.

It seems Netflix has abandoned this project. The community created a new
fork to continue supporting this project. Please refer
https://github.com/fast-jsonapi/fast_jsonapi
On Wed, Oct 30, 2019 at 2:07 AM Aubrey Holland<EMAIL_ADDRESS>wrote:

For polymorphic has_many relations, instead of getting the ids in a batch,
the code loops over each object to get its type and id. In
Relationship#id_hash_from_record it was hardcoded to get the id by calling
record.id, which overrides the id_method_name options passed into the
relationship.
I tried fixing this by only changing the code in Relationship to
dynamically call the id_method_name on the object, but unfortunately on
has_many relationships the default value for id_method_name would be passed
as if the ids would be pulled in a batch (for example groupee_ids). That
default works for regular has_manys where we get the ids all at once but
fails for polymorphic ones where it loops over each object.
So, fixing the problem required passing the polymorphic information to
compute_id_method_name, which now defaults to id rather than
id_method_name_from_relationship in the case where the relationship is
polymorphic.
This also fixes a bug where the record_id is not carried over through
inheritance.
You can view, comment on, or merge this pull request online at:
https://github.com/Netflix/fast_jsonapi/pull/446
Commit Summary

fix id method bugs

File Changes

M lib/fast_jsonapi/object_serializer.rb
https://github.com/Netflix/fast_jsonapi/pull/446/files#diff-0 (10)
M lib/fast_jsonapi/relationship.rb
https://github.com/Netflix/fast_jsonapi/pull/446/files#diff-1 (2)

Patch Links:

https://github.com/Netflix/fast_jsonapi/pull/446.patch
https://github.com/Netflix/fast_jsonapi/pull/446.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Netflix/fast_jsonapi/pull/446?email_source=notifications&email_token=ACEAHZJA2D5AW5ZFBIXIFNTQRCNIDA5CNFSM4JGPEFC2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HVGF25A,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACEAHZOO5WEGO6TXH6EPGTTQRCNIDANCNFSM4JGPEFCQ
.


Fix CONTRIBUTING.md to avoid error when running cargo build

After a fresh checkout melos bs must be run first otherwise when running cargo build -r it fails for a missing pubspec.lock:
error: failed to run custom build command for `embedded_milli v0.0.0 ([redacted]/code/dart/mimir/packages/mimir/native)`

Caused by:
  process didn't exit successfully: `[redacted]/code/dart/mimir/target/release/build/embedded_milli-193bf6019fe04397/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-changed=src/api.rs

  --- stderr
  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: missing pubspec.lock in [redacted]/code/dart/mimir/packages/mimir/native/..', packages/mimir/native/build.rs:32:43
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

My pleasure. Thank you for the fantastic library I am very happy to have found it.


[CI] drone-ci forever spinning at arm arch pipeline

Drone CI builds are being stuck in docker-arm pipeline (i.e. { "os": "linux", "arch": "arm" }).
Reason: unknown :thinking:
Some builds:
https://drone.owncloud.com/owncloud/ocis/19828
https://drone.owncloud.com/owncloud/ocis/19829/67

arm32 builds are not supported anymore. Message from our sysadmin team (quoted from chat):
There are no arm32 images for the drone-runner available anymore: Error response from daemon: No such image: drone/drone-runner-docker:1.8.3 This means we now finally have to switch to docker buildx multiarch builds, or we have to stop arm32 container builds. As it's impossible to start new native Drone runners for arm32 agents, trying to use those agents will not work anymore and might block your pipeline.

[...]

Until a decision was made, I'm going to remove the arm32 Autoscaler and remove arm32 builds from owncloud-ci builds. For e.g. ocis please discuss it and/or fix the drone config on your own

@saw-jan  Could you remove the arm32 docker pipeline from the .drone.star?


Fix Daily Tech Podcast

Traceback (most recent call last):
  File "/home/runner/work/programming-GPTs/programming-GPTs/chap6/6_3_daily_tech_podcast.py", line 1[13](https://github.com/yanndebray/programming-GPTs/actions/runs/9010117278/job/24755589032#step:6:14), in <module>
Channel Title: TechCrunch
Channel Description: Startup and Technology News
Channel Link: https://techcrunch.com/
Last Build Date: Thu, 09 May 2024 00:01:49 +0000
    (title,link,text) = scrape_article(item,episode)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/programming-GPTs/programming-GPTs/chap6/6_3_daily_tech_podcast.py", line 34, in scrape_article
    text = soup.find(class_="article-content").get_text()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get_text'

class changed to entry-content


Remove constructor.name assertion

This breaks current compatibility with the current redis version and
causes an unreasonable expectation of future changes in the future
Fixes: #263

When are you guys planning to fix this issue, its still breaking while connecting to Redis

@anish-joy unfortunately I reached out to @RasCarlito just before Christmas last year but haven't heard anything back. At this point I think it's fair to declare this as an abandoned project 😔
#265 has an alternative listed

@OiYouYeahYou Thanks for the update! I really appreciate it


Wrong Tooltip

In the "Aseprite Wizard" window, the Do not create resource file checkbox, have the following tooltip: Removes borders from sprites/layers before saving them. which is the same as the checkbox above.
Also, in the same window, both Configuration and Close buttons are both uncapitalized.
I thought about doing a pull request solving both problems, but actually I don't know exactly the function of that checkbox. The name leads me to think it's a pointless feature, so I guess it's not so obvious what it really does.

Thanks @imsamuka . copypasta issue.
This option was a feature request. Some people use the plugin to get just the .json and .png files. In those cases they don't need the resource file to be created. The README has the right tooltip:

Does not create SpriteFrames resource. Useful if you are only interested on the .json and .png output from Aseprite.

Messing up with the plugins got me to use this feature in the end. I'm very glad that it exists hahah.

lol feel free to open the PR with the changes you suggested, otherwise I'll fix it over the weekend. Thanks.

I did the PR and with another fix. I don't know how to link this issue to the PR and if it does something, so I will close the issue now, thanks!


[DX] version command for new comers

Hi,
As the [symfony/installer] (http://symfony.com/doc/current/book/installation.html#installing-the-symfony-installer) is now the primary way to install a Symfony application, I propose for new comers this kind of command which can be great (if not knowing actual versions and their purpose).
Todo: add in the endpoint http://symfony.com/versions.json a description attached to each versions
I can PR my actual code if needed.

I don't know if the --install feature is good, because there is a duplicate behavior with the new command.
The simple list is enough, IMO.

I would do the opposite and add a flag to the existing command instead of adding a new one.

Ok I will work on that option for the actual new command
What about the 'description' part in the versions api?
Thank you

@fabpot You mean like the --dump-sql commands we have on some Doctrine ones ?
Plus, I'll probably change the table's look, duplicating the appearence of some versions is not the best for readability IMO :
$ symfony new --version
+----------------+------------------+--------+
| Symfony Branch | Resolved version |  Info  |
+----------------+------------------+--------+
| 2.3            | 2.3.25           | lts    |
| 2.5            | 2.5.10           |        |
| 2.6            | 2.6.4            | latest |
| 2.7            | 2.7.0-dev        | dev    |
+----------------+------------------+--------+

@Pierstoval I think we don't need that much information about versions. A "newcomer" only need to know about the latest maintained version (2.6 here) and the LTS. 2.5 here is probably near its end of life, so that would be a non-sense to propose it. And giving the exat current version does not help in any way in choosing the right one. So, I'm not even sure it makes sense to use a table.
The choice is really just about LTS vs standard version.

So showing only LTS and Latest sounds more relevant/useful to you ? I think that makes sense if it's for newcomers.

Actually the code I've done is just a table output for the versions, and a question that run the new command if the option was passed with the choosed version
The idea behind is to allow a new comer to fastly detect the main latest version of the symfony framework

@94noni My point of view and the whole goal of the symfony command is to not bother the user with the fine details. He just wants to install Symfony. Why would he choose to install 2.3, 2.5, or 2.6? He does not know. So, we install the latest stable version and soon he will be able to install the LTS. That makes sense as this is the only 2 versions that you really want to install when starting a new project.

Using the LTS might not be for complete newcomers. Plus, if a user cares about LTS, won't he view it on the download page before and choose the version manually ?

Understandable, of course showing this amount of versions is not the best for new comers
So no need actually only if we add a clear description here, with the option to dump majors versions

Reading your comments, I think that we don't need this feature:
If you are a newcomer:

You'll never use the LTS version for your Symfony projects.
Complicating the command help and documentation with a --versions option brings no benefit.
It's almost impossible that you clearly understand the differences between versions, so it's better to explain them on the website.

If you are an experienced Symfony developer:

You don't need this information because you know everything about versions.
You only need to be aware that lts version name is available ... but even that is not mandatory, because you know that 2.3.X is LTS and you can use 2.3 in the installer.

It's almost impossible that you clearly understand the differences between versions, so it's better to explain them on the website.

If you're working in a company and expect to use the most stable Symfony version, I expect you know what is the difference between latest and lts.

Ok fine so!
Closed as rhe 'lts' PR is already done :)

@Pierstoval I completely agree with you. Developers must know which are the differences. What I think is that the limited information about versions that we can provide in this command is not enough. It's better to read the information provided in symfony.com, see the roadmap of each version, etc.

@94noni thanks for understanding it. I know that is feels frustrating to work on some feature proposal and get rejected. I've experienced this situation first hand several times and it doesn't feel right.
However I'd like you to understand that the Symfony Installer is a very special software piece where we want to limit its features and options to almost zero. In fact, we consider it almost finished as it is.

No worries, it was just a flat idea in mind :)


Use word occurrence when turning Concept Corpus to Vector

Right now, each word is weighted equally, instead a rare word should have more influence than a common word.

What I would like to propose is a single function that calculates a weighted centroid based on an array input. Like: calculateWeightedCentroid(['my', 'name', 'is', bob]) (I'm agnostic regarding the naming and inner working of the function, it is pseudo-code that helps me make my point)
What I would propose the function to do is this;

Remove stopwords (['my', 'name', bob])
calculate a centroid based on vector positions where the occurrence of the word in the training corpus determines its weight.

This function can not only be used to store vectors objects but also to calculate the vector position Weaviate should search for when the Explore{} function is used.
Determining weight based on occurrence.
Let's say that: word-a occurs 12 times in the corpus and has vector position x=1, y=2 and word-b occurs 4 times and has vector position x=4, y=8. Normally, the centroid of ab would be: x=2.5, y=5. The problem with this is that it gravitates to the center of the C11y and makes the result more ambiguous. Therefore, I would like to propose to weigh the results where the more the word occurs, the less weight it gets (i.e., it is seen as less important).
I would like to use this issue to discuss potential calculations.
PS:
Regarding stopwords, maybe this functionality might result in adding back the stopwords because they have a function but they occur really often so their weight will be low.

A. The function
The function already exists it even works with nested arrays. I.e:
[
   [`my`, `name`, `is`, `Bob`],
   [`I`, `am`, `a`, `rocket`, `scientist`],
]

would first build the centroid of the first inner array, then the second, then build a centroid from both. The only thing it doesn't do yet, is take the occurrence into account.
This function is currently used both for vectorizing a concept as well as for vectorizing search terms.
B. The calculation formulas
I'd suggest to start with the simplest possible formula and then try to improve it. A simple proposal would be:
O = Occurrence
Omax = The most any word occurs in this Corpus
Omix = The least times any word occurs in the context
s = (for severity) A constant we can tweak to weight more aggressively or more lightly (between 0 and 1)

w = 1- ( (O - Omin) / (Omax - Omin) * s )

With this the example you mentioned would end up with the following weights based on some x values:
x =1 (extremly aggressive weighing)
w(word-a) = 1- (12 - 4) / (12 - 4) * 1 = 0
w(word-b) = 1 -(4-4) / (12 -4) = 1

=> since x was extremly aggresive we ignored the common word entirely and only used the rare word
x = 0 (extremly weak weighing)
w(word-a) = 1- (12 - 4) / (12 - 4) * 0 = 1
w(word-b) = 1 -(4-4) / (12 -4) * 0 = 1

=> since x was extremly weak, the result is the same as if we did no weighing whatsoever
x = 0.5 (average strength weighing)
w(word-a) = 1- (12 - 4) / (12 - 4) * 0.5 = 0.5
w(word-b) = 1 -(4-4) / (12 -4) * 0.5 = 0.75

=> both have an effect, but the effect of word b is 50% stronger than word-a (it counts 0.75 times, whereas a would only count 0.5 times)
Stopwords
Your PS is essentially what I tested out in the beginning. Since I wasn't very happy with the results I tested removing stopwords alltogether and the results improved drastically. Paul confirmed that removing stopwords before training the c11y should in theory yield the best results. That's also what I could find in practice. So I'm hesitant to reintroduce them, but I'm open to test it out. If the results actually improve I'm easily conviced.
Regardless of the above, our stop word list is currently quite long. We could experiment with a shorter list instead.

Per bullet;
A. Super.
B. Would it be an idea to have people select functions? That we can multiple once in the future? So that one not only gives the nested array but also which calculation should run? We can start with 1 for now, but it might be something you want to keep in mind architecturally?
C. Aha, this does ring a bell. Are we removing stopwords before training?

B. Sure. Would the user enter the actual formula (like "a +b -c * d"), or would they select formulas which we prefill (like "linear", "log n", "impossibly difficult rocket science") etc.?
C. Yes, since 0.6.0 I believe. The argument is that the remaining words will have more explicit positions because they are not watered down by stopwords which would pull every word closer to (0,0, ..., 0). From my small sample size I can confirm that we saw matches the theoretical expectations :)

B. O no, definitely select from a set of options ("linear", "log n", "impossibly difficult rocket science")
C. Awesome

Closing as the first mechansim (linear weighting with configurable factor) is implemented and released. Feel free to open new issues for additional weighing mechanisms or changes.


Bug reading missing binary operator

Hi there!
exmex = { version: 0.7.1 }
Description
Parsing the expression 2sin({x}) generates a panic, while an error is expected.
Details
Running the following code generates a panic, while it should be a parse error.
fn main() {
    let e = exmex::parse::<f64>("2sin({x})", &exmex::make_default_operators::<f64>());
    println!("{:?}", e);
}

This is the panic error I get This is probably a bug. Expected binary operator but there was none.

Thanks for your reports. I did not realize somebody else is using this and there were issues 😊. Good spot on this bug. There is a check missing.

Thank you!


Integration Test - Release - 2019/06/04 19:04:33

Auto create for integration test. IssueCommandFlow

#pri1

Just type '#backlog'

#pri2

#backlog

#assign PRMergerTest1

#assign NonAllowedUser

NonAllowedUser is not a valid GitHub ID, or is not a collaborator on this repo.

NonAllowedUser is not a valid GitHub ID, or is not a collaborator on this repo.

#reassign PRMergerTest2

GitHub user PRMergerTest1 has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

GitHub user PRMergerTest1 has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

#reassign NonAllowedUser

NonAllowedUser is not a valid GitHub ID, or is not a collaborator on this repo.

NonAllowedUser is not a valid GitHub ID, or is not a collaborator on this repo.

#please-close


Improve the text at the top of the home page

Received the latest home page text from the product team.

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


fix(ngx-jodit): Fixed value handling for reactive forms

Dropped ngOnChanges in favour of @Input()-setter and subject/observable pipelines
The latter allows to "react" on the jodit editor to be initialized to then apply the (last) value written by the reactive form directive
... but also need preventing ExpressionChangedAfterItHasBeenCheckedError by delaying the value setting (to the next change detection cycle)
Fixes #25

@gschafra thank you for your contribution. It works like a charm 💪
As I tested two-way data-binding in template driven approach I experienced loosing focus in the current textarea element. On second try it works. I wasn't able to reproduce it. Not a problem at the moment.

@gschafra the fix was released in v3.1.1 🎉 Thank you!


[Paper] Add elevation boundaries

[x] PR has tests / docs demo, and is linted.
[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

@rosskevin Right now it's already duplicated between the documentation Hidden.md and the source code (as no longer keep in sync). I would rather have it duplicated in the source code than in the documentation until we find a solution.

Please see #6818.  We don't need to resort to duplication yet.


Changing default log level from debug to info.

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update
[X] Refactor

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] I run go fmt ./... to check that my code is properly formatted
[X] I run go vet ./... to check that my code is free of common Go style mistakes

Test results are available in Ibutsu. The test run IDs are:
8f153a92-08a4-42f1-91a9-7ee73a6b4c1a
b7fcd5c6-758f-4655-823e-74d8799e0722


Climb API and State machine

Codecov Report

Merging #9 into master will decrease coverage by 3.17%.
The diff coverage is 57.53%.

@@            Coverage Diff             @@
##           master       #9      +/-   ##
==========================================
- Coverage   86.31%   83.13%   -3.18%
==========================================
  Files           9       12       +3
  Lines         431      504      +73
  Branches       35       45      +10
==========================================
+ Hits          372      419      +47
- Misses         49       76      +27
+ Partials       10        9       -1

Impacted Files
Coverage Δ

robot.py
95.45% <100%> (+0.81%)
:arrow_up:

automations/climb.py
35.13% <35.13%> (ø)

components/lift.py
70.58% <70.58%> (ø)

components/lift_drive.py
77.77% <77.77%> (ø)

pyswervedrive/module.py
94.24% <0%> (+3.59%)
:arrow_up:

Continue to review full report at Codecov.

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


Risk check: Fallback strategy after bad internet connection presents 2*14 key files to ENF

Avoid duplicates

[X] Bug is not mentioned in the FAQ
[X] Bug is not already reported in another issue

Describe the bug

App is closed, last background check was less than 24 hours ago
disable internet connection (both WLAN and mobile data).
wait till the check is due plus two hours, to be sure to get the fallback strategy
enable internet again, and wait another two hours
don't open the app, check the exposure logs of ENF

Expected: see log entries of 14 files
Observed: two iterations of log entries (2*14 files)
See attached export file of exposure logs

Expected behaviour
only a single iteration (14 files)

Steps to reproduce the issue
see above

Technical details

CWA version: 1.3.0(6)
iOS Version: 13.6.1
Device:iPhone 8

Possible Fix

Additional context
I have seen this pattern (27 or 28 files in the ENF log after delayed check > 26h) several times before, with cwa 1.2.1(0) and cwa 1.3.0(6), although I was not sure about bad internet connection. See here and here and here.
Today I could reproduce it explicitely by turning internet off while the check was due.

ExposureChecks-2020-09-07.json.zip

Hi @ndegendogo , thanks for sharing your content. I will keep this issue to discuss this with our development team and come back to you as soon as possible.
Thanks,
MP
Corona-Warn-App Open Source Team

Internal Tracking ID: EXPOSUREAPP-2589

Hi @ndegendogo , this risk check issue should be fixed with 1.4.0
Thanks,
MP
Corona-Warn-App Open Source Team

Thanks @Marco2907
Do you have a planning / timeline for this release?

Hi @ndegendogo, it should be fixed in 1.4 and 1.4 should be released on October 10th.
Thanks,
MP
Corona-Warn-App Open Source Team

Thanks again!
May I ask which commit(s) / PR / or item in the release notes relates to this issue?

@ndegendogo https://github.com/corona-warn-app/cwa-app-ios/pull/1081 :)

This issue has been completed and will be closed now.

Hello @ndegendogo,
I will reopen the issue since the fix hasn't been deployed. Until then, we will leave the thread open.
We expecting the fix to be deployed as soon as possible.
Thanks,
LMM
Corona-Warn-App Open Source Team

@ndegendogo
Can you still reproduce this behavior in Version 1.5.0 or newer?

@Ein-Tim I'll test again and report my observations.
Might have to wait for a few days (currently the check is deep in the night while I am sleeping).

Tested scenario again today. Did behave as expected.
Thans for fixing.
cwa 1.5.2 (1) / iOS 14.1 / iPhone 8
closing the ticket.


Can we use pcsws.exe to automate using Robotframework

Hi Team,
Can we use pcsws.exe to automate using Robotframework, instead of setting up wc3270.
As this is separate emulator, it becomes concern for customrers to install the same.

The library is created in top of x3270 project... anything outside of this, is out of scope.


Make adapter ready for Admin v3

For Admin3 some changes are needed: see http://forum.iobroker.net/viewtopic.php?f=24&t=10268

Done with v 1.0.0


Why no pip-review in the future branch?

Hi,
I'm testing the pip-compile function in the future branch. It's a good idea and i'd like to use it on my projects instead of pip-dump.
Why did you remove the pip-review tool?

It's not necessary anymore. Re-running pip-compile will locally modify your .txt file, which has the same effect pip-review had.

pip-review is now a separate package on PyPI.


App Crash: IllegalArgumentException

[Bug] App Crash: IllegalArgumentException
Device: RMX3842 (realme - RE5C84L1), SDK: 34 (14), App: 2.6.1-beta02 (122)
java.lang.IllegalArgumentException: Can't represent a width of 1166400 and height of 486 in Constraints
at ne.k.B(SourceFile:126)
at i2.g.f(SourceFile:1)
at w.p.b(SourceFile:213)
at d2.d0.a(SourceFile:38)
at d2.p0.b(SourceFile:32)
at d2.p0.e(SourceFile:587)
at g8.za.c(SourceFile:60)
at f1.v.a(SourceFile:52)
at f1.w.c(SourceFile:153)
at d2.u1.a(SourceFile:1)
at d2.n0.s0(SourceFile:112)
at d2.n0.a(SourceFile:91)
at w.w.e(SourceFile:114)
at d2.x.a(SourceFile:49)
at w.n1.b(SourceFile:33)
at d2.d0.a(SourceFile:38)
at w.n1.b(SourceFile:33)
at d2.d0.a(SourceFile:38)
at o1.t0.b(SourceFile:1)
at d2.d0.a(SourceFile:38)
at o1.n.b(SourceFile:1)
at d2.d0.a(SourceFile:38)
at d2.p0.b(SourceFile:32)
at d2.p0.e(SourceFile:587)
at g8.za.c(SourceFile:60)
at f1.v.a(SourceFile:52)
at f1.w.c(SourceFile:153)
at d2.u1.a(SourceFile:1)
at d2.n0.s0(SourceFile:112)
at d2.n0.a(SourceFile:91)
at w.w.e(SourceFile:114)
at d2.x.a(SourceFile:49)
at d2.p0.b(SourceFile:32)
at d2.p0.e(SourceFile:587)
at g8.za.c(SourceFile:60)
at f1.v.a(SourceFile:52)
at f1.w.c(SourceFile:153)
at d2.u1.a(SourceFile:1)
at d2.n0.s0(SourceFile:112)
at d2.n0.a(SourceFile:91)
at w.w.e(SourceFile:114)
at d2.x.a(SourceFile:49)
at d2.p0.b(SourceFile:32)
at d2.p0.e(SourceFile:587)
at g8.za.c(SourceFile:60)
at f1.v.a(SourceFile:52)
at f1.w.c(SourceFile:153)
at d2.u1.a(SourceFile:1)
at d2.n0.s0(SourceFile:112)
at d2.n0.a(SourceFile:91)
at o3.c.c(SourceFile:1)
at q.z.e(SourceFile:27)
at d2.x.a(SourceFile:49)
at q.a1.b(SourceFile:222)
at d2.d0.a(SourceFile:38)
at o1.t0.b(SourceFile:1)
at d2.d0.a(SourceFile:38)
at q.h.h(SourceFile:126)
at q.h.k(SourceFile:1060)
at b2.e0.b(SourceFile:8)
at d2.d0.a(SourceFile:38)
at d2.p0.b(SourceFile:32)
at d2.p0.e(SourceFile:587)
at g8.za.c(SourceFile:60)
at f1.v.a(SourceFile:52)
at f1.w.c(SourceFile:153)
at d2.u1.a(SourceFile:1)
at d2.n0.s0(SourceFile:112)
at d2.n0.a(SourceFile:91)
at q.q.e(SourceFile:40)
at d2.x.a(SourceFile:49)
at q.w.b(SourceFile:1)
at d2.d.b(SourceFile:1)
at d2.d0.a(SourceFile:38)
at w.h0.b(SourceFile:99)
at d2.d0.a(SourceFile:38)
at d2.p0.b(SourceFile:32)
at d2.p0.e(SourceFile:587)
at g8.za.c(SourceFile:60)
at f1.v.a(SourceFile:52)
at f1.w.c(SourceFile:153)
at d2.u1.a(SourceFile:1)
at d2.n0.s0(SourceFile:112)
at androidx.compose.ui.node.a.K(SourceFile:17)
at androidx.compose.ui.node.a.L(SourceFile:18)
at d2.w0.c(SourceFile:8)
at d2.w0.k(SourceFile:124)
at d2.w0.h(SourceFile:78)
at e2.a0.v(SourceFile:34)
at d2.q1.a(SourceFile:4)
at e2.a0.dispatchDraw(SourceFile:14)
at android.view.View.draw(View.java:24212)
at android.view.View.updateDisplayListIfDirty(View.java:23027)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty(View.java:22978)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty(View.java:22978)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty(View.java:22978)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty(View.java:22978)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty(View.java:22978)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty(View.java:22978)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:713)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:719)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:821)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:5490)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5163)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4240)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2741)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10139)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1552)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1561)
at android.view.Choreographer.doCallbacks(Choreographer.java:1117)
at android.view.Choreographer.doFrame(Choreographer.java:1002)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1535)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:368)
at android.app.ActivityThread.main(ActivityThread.java:8825)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)

compose lib bug, i can't fix it :(


Feature Request: DependentConsumerBuilder

Hi, I'm implementing a delayed retry logic. And for that I have to create multiple consumers with the same config.
For example, my topics are going to look like this and I need a consumer for each one of them:

my-topic
my-topic_retry_5min
my-topic_retry_30min
my-topic_retry_1hr
my-topic_dead-letter

I searched for a DependentConsumerBuilder and noticed that it is not implemented. Is there any good reason for that?

this isn't possible due to internal limitations, however we are hoping to build something even better, we just haven't been able to prioritize it.


Use angularForm instead of form for $setPristine

Post  https://github.com/ManageIQ/manageiq/pull/8400 merge, the  form variable does not exist anymore and angularForm should be used.

@miq-bot add_label bug,ui,darga/yes


Pedro escobedo

I completed the Sprint Challenge

Question number 4!? what "axis" does align items: center work on?

I thought by saying height would equal vertical, my bad.
I already fixed it, it's the vertical axis.


Add newsletter Feb

This is a newsletter about things which have been going on at MapLibre in the last month.
Feel free to add your points to the existing sections or create a new section for other projects in the MapLibre github organization.

Ready for review

One more thing: maybe the upcoming events and events can be merged.
But up to you.

https://twitter.com/maplibre/status/1626641184159563776

https://www.linkedin.com/feed/update/urn:li:activity:7032407610444181504