[Feature] Replace   ImmutableMap from org.apache.hadoop.shaded.com.google.common.collect.ImmutableMap to  com.google.common.collect.ImmutableMap

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
It  is more reasonable import class  ImmutableMap  from package:com.google.common.collect.ImmutableMap, instead of org.apache.hadoop.shaded.com.google.common.collect.ImmutableMap
Solution
No response
Anything else?
No response
Are you willing to submit a PR?

[X] I'm willing to submit a PR!

gentle ping @JingsongLi


Allow updates in CTE

As suggested by https://github.com/elixir-ecto/ecto_sql/pull/532#issuecomment-1611644324 the planner does not allow updates in CTEs, which fail the test for the PR that introduces data-modifying CTEs for PostgreSQL.
This PR adds update to the allowed list for :all planner, to enable it in CTEs.

Maybe we want to have a separate set of fields for CTE? This would allow non-CTE queries to pass through :update but in the past it would be silently ignored.

New field is fine, we should just call it :cte though. I have also added a comment about traversal order.

My latest commit introduced the  :operation option for with_cte/3, to support additional operations in Postgres CTEs.
This makes it not necessary to have a separate :cte traversal operation and allows for handling CTE operations at adapter level, enabling a non-breaking change for adapters + support for :update_all and :delete_all

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


Correctly ahdnle --use-system-gcc and --backend options

Originally implemented in https://github.com/rust-lang/rust/pull/121390.

It was done on rust side and synced afterwards, so no need to keep this open.


Template Progress

Description
Outline the issue here:
For commands that use template deployments, the CLI can get more information about creation and success for progress.
Environment summary
Install Method: How did you install the CLI? (e.g. pip, interactive script, apt-get, Docker, MSI, nightly)
Answer here:
CLI Version: What version of the CLI and modules are installed? (Use az --version)
Answer here:
OS Version: What OS and version are you using?
Answer here:
Shell Type: What shell are you using? (e.g. bash, cmd.exe, Bash on Windows)
Answer here:

What is the purpose of this issue?  It seems like a duplicate of #3510.

Duplicate of #987.


Menu and Content split, add Content to multiple menu item

The Menu does not need to connected to any inside content at all, the menus should use "Link" objects which can be an internal Content or can be different.

The Navigation Database was planned for this.


add accurate_fee_calculation

Fees are now calculated accurately down to the last byte for OP_RETURN outputs.
1 sat/byte should be fine for every transaction on main net with this.
Let me know what you guys think.
see:

https://blockchair.com/bitcoin-cash/transaction/e806bc2bcf58312c90c66c09f1d64011509174611e58f66d9ba335e06f2ce5e5
404 bytes and 404 satoshis using my_key.send([], fee=1, message="hello"*40) - confirmed :)

WARNING: Does not work for custom_pushdata = True yet.
Working on it... time for bed zzz

Really appreciate all the comments your code has. As the codebase gets progressively more complex, more and more comments are needed to be able to make sense of it.
Looks good to me, are tests passing?

Thanks. Actually. Running tests now... I'm getting errors. Just hold off on merge for now!

Okay so now this has fixed all of the transaction.py related errors. :)

The only "fails" left are the 6 x TestCashExplorerBitcoinDotComAPI ones (we know about this)
But there are 9 x Connection Error codes ('All APIs unreachable"). Which I don't think are related to my changes but usually I don't get that many... you did say it is not very "robust" though...

Maybe an idea for you to run tests on your machine too before merge?

Great, thank you!
I should get into that habit although would like to setup something like Travis for automated tests.
Are we ready to release a new version or should we wait a bit longer?

As long as testnet isn't broken (relative to previous functioning) then I'm happy. :)


tensorflow2.11 with MultiWorkerMirroredStrategy  cannot work

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
tf2.9，tf2.11
Custom Code
Yes
OS Platform and Distribution
cnetos7.9
Mobile device
No response
Python version
3.8.12
Bazel version
5.3.0,5.0.0
GCC/Compiler version
9.3
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
A bug happened!
The four-process four-card simulation based on the stand-alone four-card simulation is running, but I found that my program is stuck in the communication link of GRPC, and the program cannot continue to execute downward.
Standalone code to reproduce the issue
resnet50 based on the https://github.com/tensorflow/models/tree/v2.11.0

Relevant log output
Instructions for updating:
use distribute.MultiWorkerMirroredStrategy instead
W0525 11:06:39.106403<PHONE_NUMBER>35136 deprecation.py:350] From /public/home/qianyj/TF_test/dtk23.04/tf2.11/models-2.11.0_fp16_4m/official/common/distribute_utils.py:155: _CollectiveAllReduceStrategyExperimental.__init__ (from tensorflow.python.distribute.collective_all_reduce_strategy) is deprecated and will be removed in a future version.
Instructions for updating:
use distribute.MultiWorkerMirroredStrategy instead
2023-05-25 11:06:39.107776: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-05-25 11:06:39.107986: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-05-25 11:06:39.109601: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1613] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 15601 MB memory:  -> device: 0, name: Vega 20, pci bus id: 0000:43:00.0
2023-05-25 11:06:39.109709: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1613] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 15601 MB memory:  -> device: 0, name: Vega 20, pci bus id: 0000:04:00.0
2023-05-25 11:06:40.104680: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1613] Created device /job:worker/replica:0/task:1/device:GPU:0 with 15601 MB memory:  -> device: 0, name: Vega 20, pci bus id: 0000:26:00.0
2023-05-25 11:06:40.104734: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1613] Created device /job:worker/replica:0/task:2/device:GPU:0 with 15601 MB memory:  -> device: 0, name: Vega 20, pci bus id: 0000:43:00.0
2023-05-25 11:06:40.105277: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1613] Created device /job:worker/replica:0/task:0/device:GPU:0 with 15601 MB memory:  -> device: 0, name: Vega 20, pci bus id: 0000:04:00.0
2023-05-25 11:06:40.105313: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1613] Created device /job:worker/replica:0/task:3/device:GPU:0 with 15601 MB memory:  -> device: 0, name: Vega 20, pci bus id: 0000:63:00.0
2023-05-25 11:06:40.114474: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:447] Started server with target: grpc://localhost:40013
2023-05-25 11:06:40.115146: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:447] Started server with target: grpc://localhost:40014
2023-05-25 11:06:40.115326: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:447] Started server with target: grpc://localhost:40015
2023-05-25 11:06:40.115823: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:447] Started server with target: grpc://localhost:40016

The program is stuck here and cannot be continued。

And it will output log  like below:
2023-05-25 11:10:57.934361: E tensorflow/core/common_runtime/base_collective_executor.cc:249] BaseCollectiveExecutor::StartAbort DEADLINE_EXCEEDED: Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013057.934031384","description":"Deadline Exceeded","file":"external/com_github_grpc_grpc/src/core/ext/filters/deadline/deadline_filter.cc","file_line":69,"grpc_status":4}
2023-05-25 11:10:57.934497: E tensorflow/core/common_runtime/eager/context_distributed_manager.cc:737] Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013057.934031384","description":"Deadline Exceeded","file":"external/com_github_grpc_grpc/src/core/ext/filters/deadline/deadline_filter.cc","file_line":69,"grpc_status":4}
2023-05-25 11:10:57.934547: F tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:103] Non-OK-status: Stop() status: UNIMPLEMENTED: Clean shutdown is not currently implemented
Fatal Python error: Aborted
Current thread 0x00007f2947732740 (most recent call first):
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/eager/context.py", line 623 in ensure_initialized
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 508 in _initialize_multi_worker
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 341 in _initialize_strategy
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 329 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 185 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 252 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/util/deprecation.py", line 357 in new_func
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/common/distribute_utils.py", line 155 in get_distribution_strategy
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 125 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 362 in main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 258 in _run_main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 312 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 369 in
2023-05-25 11:10:57.977399: E tensorflow/core/common_runtime/base_collective_executor.cc:249] BaseCollectiveExecutor::StartAbort DEADLINE_EXCEEDED: Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013057.977083688","description":"Deadline Exceeded","file":"external/com_github_grpc_grpc/src/core/ext/filters/deadline/deadline_filter.cc","file_line":69,"grpc_status":4}
2023-05-25 11:10:57.977561: E tensorflow/core/common_runtime/eager/context_distributed_manager.cc:737] Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013057.977083688","description":"Deadline Exceeded","file":"external/com_github_grpc_grpc/src/core/ext/filters/deadline/deadline_filter.cc","file_line":69,"grpc_status":4}
2023-05-25 11:10:57.977640: F tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:103] Non-OK-status: Stop() status: UNIMPLEMENTED: Clean shutdown is not currently implemented
Fatal Python error: Aborted
Current thread 0x00007fa0241df740 (most recent call first):
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/eager/context.py", line 623 in ensure_initialized
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 508 in _initialize_multi_worker
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 341 in _initialize_strategy
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 329 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 185 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 252 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/util/deprecation.py", line 357 in new_func
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/common/distribute_utils.py", line 155 in get_distribution_strategy
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 125 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 362 in main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 258 in _run_main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 312 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 369 in
2023-05-25 11:10:58.273265: E tensorflow/core/common_runtime/base_collective_executor.cc:249] BaseCollectiveExecutor::StartAbort DEADLINE_EXCEEDED: Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013058.272930461","description":"Deadels-2.9.2_fp32_4m/official/common/distribute_utils.py", line 155 in get_distribution_strategy
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 125 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 362 in main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 258 in _run_main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 312 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 369 in
2023-05-25 11:10:58.273265: E tensorflow/core/common_runtime/base_collective_executor.cc:249] BaseCollectiveExecutor::StartAbort DEADLINE_EXCEEDED: Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013058.272930461","description":"Deadline Exceeded","file":"external/com_github_grpc_grpc/src/core/ext/filters/deadline/deadline_filter.cc","file_line":69,"grpc_status":4}
2023-05-25 11:10:58.273404: E tensorflow/core/common_runtime/eager/context_distributed_manager.cc:737] Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013058.272930461","description":"Deadline Exceeded","file":"external/com_github_grpc_grpc/src/core/ext/filters/deadline/deadline_filter.cc","file_line":69,"grpc_status":4}
2023-05-25 11:10:58.273458: F tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:103] Non-OK-status: Stop() status: UNIMPLEMENTED: Clean shutdown is not currently implemented
Fatal Python error: Aborted
Current thread 0x00007fb79fed7740 (most recent call first):
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/eager/context.py", line 623 in ensure_initialized
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 508 in _initialize_multi_worker
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 341 in _initialize_strategy
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 329 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 185 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 252 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/util/deprecation.py", line 357 in new_func
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/common/distribute_utils.py", line 155 in get_distribution_strategy
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 125 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 362 in main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 258 in _run_main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 312 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 369 in
2023-05-25 11:10:58.361393: E tensorflow/core/common_runtime/base_collective_executor.cc:249] BaseCollectiveExecutor::StartAbort DEADLINE_EXCEEDED: Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013058.361101419","description":"Deadline Exceeded","file":"external/com_github_grpc_grpc/src/core/ext/filters/deadline/deadline_filter.cc","file_line":69,"grpc_status":4}
2023-05-25 11:10:58.361543: E tensorflow/core/common_runtime/eager/context_distributed_manager.cc:737] Deadline Exceeded
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1685013058.361101419","description":"Deadline Exceeded","file":"external/com_github_grpc_grpc/src/core/ext/filters/deadline/deadline_filter.cc","file_line":69,"grpc_status":4}
2023-05-25 11:10:58.361600: F tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:103] Non-OK-status: Stop() status: UNIMPLEMENTED: Clean shutdown is not currently implemented
Fatal Python error: Aborted
Current thread 0x00007fd5013c4740 (most recent call first):
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/eager/context.py", line 623 in ensure_initialized
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 508 in _initialize_multi_worker
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 341 in _initialize_strategy
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 329 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 185 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py", line 252 in init
File "/public/home/qianyj/virtualenv/dtk23.04/tf2.9/venv/lib/python3.8/site-packages/tensorflow/python/util/deprecation.py", line 357 in new_func
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/common/distribute_utils.py", line 155 in get_distribution_strategy
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 125 in run
File "/public/home/qianyj/TF_test/dtk23.04/tf2.9/models-2.9.2_fp32_4m/official/benchmark/models/resnet_imagenet_main.py", line 362 in main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 258 in _run_main
File "/public/home/qianyj/.local/lib/python3.8/site-packages/absl/app.py", line 312 in run

Hi @south-ocean ,
Could you please confirm whether you are trying to use multiple systems/servers with each having single or more GPUs ?
Are you using MirroredStrategy or MultiWorkerMirroredStrategy and I hope you know which to use when.
Please submit the steps followed and code you have used for enabling the strategy.
The problem seems to be related to communication between different workers. One probable reason might be mentioned below.

'TF_CONFIG' is parsed and TensorFlow's GRPC servers are started at the time you call tf.distribute.MultiWorkerMirroredStrategy. Therefore, you must set the 'TF_CONFIG' environment variable before you instantiate a tf.distribute.Strategy. To save time in this illustrative example, this is not demonstrated in this tutorial, so that servers do not need to start. You can find a full example in the last section of this tutorial.

Please refer some of the documentation tutorials for MultiWorkerMirroredStrategy which might be useful. link1 and link2
Thanks!

I have also met the simarly issue.
When I use 3 workers and each with 8GPUs, it works fine. When 8 workers and each with 8 GPUs, it will also show this kind of error:  "BaseCollectiveExecutor::StartAbort DEADLINE_EXCEEDED: Collective has timed out during execution."
It seems to be related to the network bandwidth?

it related to network settings， but I also solved it by accidental setting，I don't know how to debug this kind of problem about MirroredStrategy or MultiWorkerMirroredStrategy.

Hi @south-ocean ,
Could you please confirm whether the issue resolved now. Also it would be helpful for community if you can able to share which settings helped you.
Thanks!


Support for key argument in list.sort and sorted

I work on improving a poor Python code that has been rewritten in C++ (with a 20x speedup!). It seems that there is a not understood bug in the C++ version. Since the C++ code is for us harder to modify/improve, I'd like to see if we can get similar speedup by rewriting it in better Python and using Pythran. The code involves manipulating many small Python objects so it is not easy. By cheating a bit, I managed to approach the C++ performance (my py version is now only ~1.5 times slower that the C++ version). For details see https://github.com/turbulencelyon/4d-ptv/pull/1
I see that it would be very useful if one can compile this will Pythran:
def fun():
    l = [(3, 0), (0, 3), (1, 1)]
    l.sort(key=(lambda elem: elem[1]))
    return l

@serge-sans-paille do you think Pythran could support this?

Yes, we can.


Add note about t 1, t 2, etc. keybindings for rescheduling

Hello Michael, I've added info to the README about the t 1, t 2, etc. key bindings for rescheduling n days into the future.

CLOSED because it was premature.  Issues #256 and #257 should be addressed first and all released at the same time.


I want to write a function that converts C.char from Package A to C.char from Package B
I wrote function like that
func ConvPointer[RESULT, SOURCE *any](ptr SOURCE) RESULT {
        return (RESULT)(unsafe.Pointer(ptr))
}

What did you see happen?
when calling this function I get:
../../typewrapper/type_wrapper.go:66:37: *_Ctype_char does not satisfy *any (*_Ctype_char missing in *any)

What did you expect to see?
any as the name suggests means anything, so why C.char is not anything? Is there a reason for that?

Related Issues and Documentation

cgo: cannot use C reference variable created by one package in another #59606 (closed)
cmd/cgo: cannot convert from signed char *_Ctype_schar to char *_Ctype_char  #26655 (closed)
cmd/cgo: compiler complains about `C.free(*C.char)` but is happy with `defer C.free(*C.char)` #17562 (closed)
cmd/cgo: C.* cannot be used for type constraints #52542 (closed)
cmd/cgo: don't accept mangled C names in Cgo programs #28721 (closed)
cmd/cgo: cgo treats pointer to fixed-length array as unsafe.Pointer when CC=gcc #29909 (closed)
cmd/cgo: pointer to incomplete C type is mangled when passed through interface type and generic type assert #51733 (closed)
x/tools/gopls: definition request fails on method with receiver type of form C.T (cgo) #59723 (closed)
C.free(unsafe.Pointer(cs))    returns    "could not determine kind of name for C.free" #39871 (closed)
CGO C.Bytes Not Work As Expected  #49670 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

That is how the language works.  The type any is a name for the empty interface type interface{}.  A value of type *C.char is a pointer to a C.char.  A value of type *any is a pointer to a interface{}.  The two are not compatible.  See https://go.dev/doc/faq#convert_slice_of_interface, which is written in terms of []any but applies equally well to *any.
You can write your function as
func ConvPointer[ER, ES any, RESULT *ER, SOURCE *ES](ptr SOURCE) RESULT {
        return (RESULT)(unsafe.Pointer(ptr))
}

Closing because this is not a bug.

oh ok, I missed that, thank you!!


feat(voice-search): implement getRenderState and getWidgetRenderState

This implements the getRenderState and getWidgetRenderState widget lifecycle hooks in voiceSearch.

QQ: Why did you not tag the team as reviewer but the 4 members?


The Wizard is another implementation of Modal

The following issue was submitted to the react repo #2114  It needs to be investigated by core first.

PatternFly should reuse its own components and it should use the Modal component.
The wizard's render function starts with
isOpen && ReactDOM.createPortal(
<FocusTrap focusTrapOptions={{ clickOutsideDeactivates: true }}>

Instead of that it should be wrapped only the Modal component. (And Modal component needs to be updated to be able to use here.) Or a consumer should be able to put modal there in his own implementation, if he wants to do. There is no reason to control this in the Wizard component, when you have another component, which does it. ( => Less code to test => less code to maintain => less code to break => more satisfied consumers and happy faces)

  ...

or in user's implementation

+1 we also have the need for the wizard to be in-page in OpenShift so it would great if the parts of the wizard could live outside of the modal that wraps it. Being in-page may also require some additional design updates as well, not sure if that would be part of this effort or not.
FYI @rachael-phillips @LHinson

I tried this locally and looks like we will need the following changes
Wizard

remove in-page variation, make default
remove full-height/full-width variations

Modal

add full-height/full-width variations to modal, or some way to support the wizard's default size
add option to remove modal padding
add option to remove modal close button


Fix flaky test in InternalEngineTests

Summary of the changes / Why this improves CrateDB
Checklist

[ ] User relevant changes are recorded in CHANGES.txt
[ ] Touched code is covered by tests
[ ] Documentation has been updated if necessary
[ ] CLA is signed
[ ] This does not contain breaking changes, or if it does:

It is released within a major release
It is recorded in CHANGES.txt
It was marked as deprecated in an earlier release if possible
You've thought about the consequences and other components are adapted
(E.g. AdminUI)

It's a bit hard for me to see why this solves the flakiness. Can you please elaborate on this?

The only differences I can see:

maxDocId is smaller, so there is higher chance for repeated doc ids
there may be duplicates of each operation
the origin of each operation can also be from peer_recovery, in addition to replica
there may be gaps in the seqNo

the path though the engine will be different and thus the flakyness is gone. Now, might this be masking a subtle problem underneath?. I think I will have a look at what exactly is the flow in the engine for this specific case and check what's up.

@marregui This reads to me that the changes are not created by you. So where do these changes come from?

I did not create the code, it came from es master, InternalEngineTests (the test was renamed to testRebuildLocalCheckpointTrackerAndVersionMap in there). I compared the code with branch 6.8.x as well (same code).

So it looks like you backported https://github.com/elastic/elasticsearch/commit/1ae53e6b20771fb29dec0095dc3a996e28540c08 to address https://github.com/elastic/elasticsearch/issues/36470.
Can we please note such things inside the commit message so we know what the code does and who created it?

ah!, I understand, I did not backtrack the origin of the diversion in the code, I simply merged it from the compare tool in intellij. In the future I will search for the specific commits in es and will apply those, referring to their ids.


inplace codebook optimization

This is a little bit unwieldy to use, it requires using a lambda like this:
import torch
from torch.optim import SGD
from vector_quantize_pytorch import VectorQuantize

vq = VectorQuantize(dim=512,
                    codebook_size=32,
                    codebook_dim=512,
                    heads=1,
                    ema_update=False,
                    learnable_codebook=True,
                    in_place_codebook_optimizer=lambda *args, **kwargs: SGD(*args, **kwargs, lr=50.0),
                )

x = torch.rand(7, 1, 512, requires_grad=True)

for _ in range(10):
    *_, loss = vq(x)

    print(loss) # This will decrease over time as the vq._codebook.embed is updated

Another possibility to get the learnable codebook to work would be for the VectorQuantizer to return a codebook commit loss, which would be some sort of distance like this ((x.detach() - quantize)**2).mean(). This would not be as efficient because you'd have to pass it through the project_in and project_out an extra time for every in-place update.

what would happen if the straight through looked something like
quantize = quantize + (x - x.detach())

i'll think more about this once i get back from europe

you'd probably have to also change the commit loss because right now it's being calculated with the detached_quantize

you'd probably have to also change the commit loss because right now it's being calculated with the detached_quantize

oh yes, you are correct
should be addressed in 1.6.14!

@theAdamColton hey, this looks good! left a few comments but otherwise lgtm
have you tested it?

@theAdamColton accepting, as i think it should work
thank you for this!


Relegate lighthouse propagate job to be a backup

Background
We are starting to run our jobs through Keep3r network. Because of this, we will only need our lighthouse service to run as a backup. The lighthouse service for propagate can do the following:

Check latest propagated root.
If latest propagated root is more than 1 hour old, send a new root.

Linked Issues & Documentation

List of linked issues, external links, etc

Definition Of Done
Lighthouse runs and sends after root is 1 hour old.
Tasks

[ ] Update lighthouse function to check root and send if >1hr old.

Use subgraph to check latest propagated. Need to add to subgraph entity.


[BUG]: No form validation in Subscribe to our newsletter to receive news about AsyncAPI in home Page

Describe the bug
In Home page we have a Subscribe to our newsletter to receive news about AsyncAPI form and there is no validation for email and name.
How to Reproduce
Go to home page scroll down to subscribe to newsletter form and randomly enter any email or name then click on subscribe button.

Screenshots

https://github.com/asyncapi/website/assets/82786865/80a57241-5b17-499e-9280-c24bc576dfdf
Expected behavior
Form must be completely valid
like email must be a valid email address.
and name must contain 3 or 4 character minimum.

Can anyone please assign this to me ?
We can use RegExp to validate the email and name

Can I work on it ?
I can use either regExp or simple js logic

i think regExp won't work , it can't validate whether domain exits or not . Email validation api's like reacher , truemail would work

yeah regex won't work.
but is it a real issue?  we are not getting any spam subscriptions. People usually don't do it to open source communities.
also can't be nicely completed until we get https://github.com/asyncapi/website/issues/1091

@derberg @akshatnema should we go ahead with this issue ??

Yeah, we can go ahead with this issue.

@akshatnema, can I take it and work on it? All I need is to research around the Email validation API to verify the name and email of whoever is entering it.

yeahhh you may work on this one

@AKACHI-4 any update

Yeah, I looked into various validation APIs, and man, it was kinda time taking. Some of them have pricing issues... However, I tried using Postman to call their API, and everything went smoothly... After all, I decided to go with ZeroBounce because they provide free 100 email validations per month, which is definitely a good choice.

What I'm planning to do now is

Implement email validation directly into the NewsletterSubscribe.js file before fetching from the Netlify function.
Regarding the mentioned issue, I encountered the same thing initially while checking. I guess it's from the function's side.
For now, I commented out that part so I can focus on implementing validation only. But I'll definitely look into it.

Here's the image I was using :-
I tried usebouncer for checking, but I'm getting some CORS errors though. I'll resolve them and try to push the changes as soon as possible.

Raise a PR when you are done with the work

Hey @sambhavgupta0705 .. I am done with the changes. kindly review it and guide for further in steps.

Is this issue still relevant?

@sambhavgupta0705 Is this issue still relevant? I would like to work on it.

yes you may

can i work on it?

can i work on it?

I am currently not working on the issue, because of my exams. If you want you can start working on it :)

Hey @sambhavgupta0705, I want to work on this issue an you please assign it to me?

Hi @love-sonkar ,
I just checked the AsyncAPI website, and it seems this issue is still present. I’d love to work on it if it's available. Let me know!

Hi @derberg ,
Please take a look at this solution and let me know if any changes are needed.
Validation Changes for Email and Name Inputs
Summary
I added validation for the email and name input fields, ensuring error messages are displayed directly below their respective input fields for better clarity.
Changes:

Email & Name Validation: Both fields now validate the input on change. If invalid:

Email checks if it matches the proper format.
Name checks if it has a minimum of 3 characters.

Error Message Placement:

Error messages are shown directly below the relevant input field.

https://github.com/user-attachments/assets/4a37244d-eb7d-4f26-8ab5-9fc7a39ebeb0
Please assign this issue to me, and I will submit the PR once the changes are approved.

Hi @derberg , Please take a look at this solution and let me know if any changes are needed.
Validation Changes for Email and Name Inputs
Summary
I added validation for the email and name input fields, ensuring error messages are displayed directly below their respective input fields for better clarity.
Changes:

Email & Name Validation: Both fields now validate the input on change. If invalid:

Email checks if it matches the proper format.
Name checks if it has a minimum of 3 characters.

Error Message Placement:

Error messages are shown directly below the relevant input field.

Untitled.video.-.Made.with.Clipchamp.1.mp4
Please assign this issue to me, and I will submit the PR once the changes are approved.

@derberg , @akshatnema please review above changes.


disable datepicker on conditions

Hi,  thanks for writing this, it is very useful.
I would like to disable the datepicker under certain conditions, and I am not sure how to do this.
Specifically, when the UI is fetching data for the chosen date, I would like to freeze the datepicker so that the user cannot change the date until the incoming data has arrived.
I have a flag in my model for this (model.gettingData = True or False) and in my other form elements I can just say Attr.disabled model.gettingData
Is there any similar way to do that with the datepicker, or should I resort to directly manipulating the DOM?

I think one way you could achieve this is to re-init the Datepicker with {defaultSettings | isDisabled = always True} after the user picks a date and then reset it once you're done retrieving data from the server.

Okay thanks I'll try that.  My current work around is an if statement in the view...if (model.gettingData), then I render a plain input field, but disabled.  If not, then I render the datepicker.  That works, but the styling of the two is pretty janky right now, and I'll have to do some work to make the plain-but-disabled-input style match the enabled datepicker style.
My only concern with your suggestion is I think what will happen is the datepicker will do a pop-up with all the dates disabled.  That's likely to confuse the user.  My preference is for a solution which ignores mouse actions altogether.

Presuming that the need was met, not having heard back; closing for tidiness. Please feel free to report back if there was a problem!

Yeah, I worked around it with a hack.  Sorry, I forgot to report back and close.
Looking at my code and refreshing my memory, what I did was to not render a date picker when I didn't want a date picker:
 datepickbuilder : Model -> Html Msg
datepickbuilder model =
    let  y = (toString (Date.year model.date))
         m = (pad (monthToInt (Date.month model.date)))
         d  = (pad (Date.day model.date))
    in
        case model.fetchingColors of
            False -> DatePicker.view model.datePicker
                         |> App.map ToDatePicker
            True -> input [Attr.class "disabled-date form-control"
                           , Attr.disabled True
                           , Attr.name "datepicker"
                           , Attr.value (y++"-"++m++"-"++d)][]

In other words, if my client is busy "fetching colors" for a particular date, then render a disabled form element with the current chosen date.  If it is not fetching colors, then render the usual datepicker element.  I also tweaked the CSS on the disabled date form element so that the fonts and layout mirror the datepicker.


Add a UV_PROCESS_WINDOWS_SUSPENDED flag

This is necessary to perform initializations, like moving to a job
group (btw, this requires using _DETACHED flag currently) before the
process has a chance to spawn children.

I'm not uber fond of adding Windows-specific flags ad infinitum.  UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS and UV_PROCESS_WINDOWS_HIDE fix common problems but this flag seems pretty niche.

Would it also make sense to add process_thread from PROCESS_INFORMATION.hThread in UV_PROCESS_PRIVATE_FIELDS so that ResumeThread could be used like usual?

Not in libuv v1.x (breaks ABI) and probably not in v2.x either because it leaks what is essentially an implementation detail.
A new API that tells libuv "here, take this process handle I've created" might be acceptable and could land in v1.x.

I'm not uber fond of the windows specific flags either, but the decision internally to manage or not manage the process ina  job object based on a DETACHED flag only isn't a great decision, so that's already somewhat overloaded, but since there's no other way to prevent a child from being in a job object (of which, you can only have one pre-windows 8) means you have to use this flag. I'll see if there's a smarter more abstract way to represent this.


Random seed question

I have reverted back to commit "5dd9ed739cc8dfeae2c5d30ec06f4cb524a4dd74" on https://github.com/mlcommons/inference
git clone https://github.com/mlcommons/inference.git
git checkout 5dd9ed739cc8dfeae2c5d30ec06f4cb524a4dd74

However the random seed associated with this commit doesn't have "UL" at the end . Is it required to have those 2 letters at the end.
This is a question for non app based submissions.
Ramdom seed in git clone https://github.com/mlcommons/inference.git at commit 5dd9ed739cc8dfeae2c5d30ec06f4cb524a4dd74
# 0xc63bb0c8c280fdef
*.*.qsl_rng_seed =<PHONE_NUMBER>9438841327
# 0x39c9343412051148
*.*.sample_index_rng_seed =<PHONE_NUMBER>725999944
# 0x04267cf482328355
*.*.schedule_rng_seed =<PHONE_NUMBER>649296214

Random seed in mobile_app_open 2.1 branch
mlperf_settings.qsl_rng_seed =<PHONE_NUMBER>9438841327UL;
mlperf_settings.sample_index_rng_seed =<PHONE_NUMBER>725999944UL;
mlperf_settings.schedule_rng_seed =<PHONE_NUMBER>64929621UL;

This suffix is not part of the random seed.
The seed is an integer number.
UL is the C/C++ syntax for specifying value type, which sometimes helps type safety. You can ignore it.

Thanks @d-uzlov


Updating Gekko UI

What kind of change does this PR introduce?
A new implementation, Vuetify instead PUG

What is the current behavior?

What is the new behavior (if this is a feature change)?
Vuetify implementation - Work in progress

Other information:
Vuetify docs: https://vuetifyjs.com/pt-BR/components/cards

I'll keep updating this code, but the community can help too, any questions send on Discord

Very cool stuff! Note that I am working on a new UI written in react as we speak (more info here: https://forum.gekko.wizb.it/thread-1429-post-59800.html#pid59800). But since now Gekko finally has API documentation multiple UI projects should be able to co exist :)

@Draichi hey how is it different from https://github.com/H256/gekko-quasar-ui
I do not mind that you introducing some new view, but maybe better to contribute to something already existing and working?

@Draichi hey how is it different from https://github.com/H256/gekko-quasar-ui
I do not mind that you introducing some new view, but maybe better to contribute to something already existing and working?

I did not know this project. Thanks for sharing


Don't remove const for reverse iteration

And use the same hack from forward iteration.

I suspect you should change multimap, unordered_map and unordered_multimap too. But this is probably as good a way to do it as any

Fixed multimap. There are no reverse iterators for unordered_map and unordered_multimap.

Thanks. I think this is the more robust way of doing it than trying to correctly guess which consts to remove within Cython itself.
I'd like to leave this a few days, partly for more comments, and partly so I can have a more detailed think to try to avoid unintended consequences.
@garychia - since you wrote the code that this is removing, do you have any thoughts? Is there anything you're aware of that will break if we do this.

Btw, I don't know if you noticed or not, this hack has been there for forward iteration for a long time and I don't think any issues have come up before.

I did notice. I'm fairly happy with the hack - it actually doesn't seem too hacky to me. It's just saying "Cython should treat the return value as if it's the non-const type". To me that's fairly explicit and barely a hack.
The main thing I want to give a bit more thought is "was anything else enabled by remove_const that will now get broken (and be unfixable by using the same hack)?".

As far as I know, remove_const was only used for reversed iterators when I wrote the code. I'm happy with this solution as it makes the code simpler.

Thanks for the confirmation. I haven't been able to think of any other significant problems so I'll go with this.
Thanks @isuruf


new project template

When someone uses aiken new my_project we should generate a project in a folder with the given name. Some of this is in place but we also need to create a sample config and some aiken files.

Could you describe it in detail so I can go for the first issue?


How to remove and update prefix 'conversation with' with header title

Hi,
Currently prefix 'conversation with' being added with botName variable.
Could you please suggest how to remove this prefix. I would like to add/remove my own prefix word.
Thank you.

Hi. You can create a custom header component that will replace the default.
Follow the link in documentation to find all configurable properties to see
how it can be done.
tir. 15. jun. 2021 kl. 00:18 skrev Vijay Singh @.***>:

Hi,
Currently prefix 'conversation with' being added with botName variable.
Could you please suggest how to remove this prefix. I would like to
add/remove my own prefix word.
Thank you.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/FredrikOseberg/react-chatbot-kit/issues/64, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AD2WIPVBE2IO3OPWATJFHHLTSZ5ZZANCNFSM46WCA4VA
.

Resolved with adding custom header


add omggif as dependency rather than file

@edi9999 any comments?

Looks good to me, but has conflicts now.

@edi9999

fixed merge conflicts
noticed that index.js was indented wrong and i think i was because of clashing tab widths in prettier and editorconfig. so i set prettier's tab width to 4 to match and reformatted index.js

Yes, looks good to me !


Support for Quasar v2

Hi, awesome extension!
But, since many projects will probably be using Quasar v2 from now on, is it possible that you can update it to Quasar v2?

Hi @nestbeatdev
This is Workaround for v2 (involves editing directly in node_modules which is not recommended).

Update api.compatibleWith() to support ^2.0.0
Go to node_modules/quasar-app-extension-onesignal/src/index.js on line 49: https://github.com/motia/quasar-app-extension-onesignal/blob/master/src/index.js#L49

-api.compatibleWith('@quasar/app', '^1.0.0')
+api.compatibleWith('@quasar/app', '^2.0.0')

Update the new CopyPlugin() function using new version of Webpack Plugin Copy
Go to node_modules/quasar-app-extension-onesignal/src/index.js on line 39: https://github.com/motia/quasar-app-extension-onesignal/blob/master/src/index.js#L39-L45

-conf.plugins.push(new CopyPlugin([
  {
    from: path.join(__dirname, 'assets', 'root'),
    to: '.',
    transform: (content, path) => swTransformer(mode, path)
  }
-]))
+conf.plugins.push(new CopyPlugin({
+  patterns: [
    {
      from: path.join(__dirname, 'assets', 'root'),
      to: '.',
      transform: (content, path) => swTransformer(mode, path)
    }
+  ]
+})

@nestbeatdev ,
Implemented in version 0.3.0, it will support both v2 with BC to v1.


[BEAM-498] Port ParDoTest from OldDoFn to new DoFn

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[x] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[x] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @aljoscha seems about to time to make this leap?

LGTM!
I too like seeing these OldDoFn going away. 😃
(It might be a bit problematic short term because we reduce test coverage of OldDoFn but I thinks that's okay because its meant to be removed eventually.)


Support custom Sentry.runZoneGuarded zone creation

:scroll: Description

If the sentry init is already set up in a zone, don't create another one internally.
Provide a sentry wrapped Sentry.runZonedGuarded function which captures exceptions, adds breadcrumbs and propagate the user's onError on top of it so we can keep the original behaviour.
:bulb: Motivation and Context

Fixes https://github.com/getsentry/sentry-dart/issues/1943
:green_heart: How did you test it?
Unit tests.
:pencil: Checklist

[x] I reviewed submitted code
[x] I added tests to verify changes
[ ] No new PII added or SDK only sends newly added PII if sendDefaultPii is enabled
[ ] I updated the docs if needed
[x] All tests passing
[x] No breaking changes

@denrase also pls prepare docs for this


pull request for e2e test at 12/12/2016 01:15:04

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Bulk Support is not working as Bulk Executor Library

We are continuously addressing and improving the SDK, if possible, make sure the problem persist in the latest SDK version.

Describe the bug
A clear and concise description of what the bug is.
Our project used bulk executor before and works fine for us,  for the old library we just need to input the entire data we need to do the bulk import and with a lower throughput, it works perfectly fine. But with the new bulk SDK, we used same data as input and throughput but receives so many error of TooManyRequest and we have to increase the throughput to a real large number.  I'm wondering what's the difference under the hood for these two libraries, and why the old one can directly take over all the setup and optimized throughput?
To Reproduce
Steps to reproduce the behavior. If you can include code snippets or links to repositories containing a repro of the issue that can helps us in detecting the scenario it would speed up the resolution.
Expected behavior
A clear and concise description of what you expected to happen.
Actual behavior
Provide a description of the actual behavior observed.
Environment summary
SDK Version:
OS Version (e.g. Windows, Linux, MacOSX)
Additional context
Add any other context about the problem here (for example, complete stack traces or logs).

There is a blog post explaining the bulk executor.
@ealsur any other suggestions?

@j82w  yes, we have checked on that blog and followed every document recommended from your side. Our scenario is a 1000 documents per partitionKey and distributed evenly for paging purpose. So we don't mind the writing process is slow, but we indeed want to choose a lower throughput to keep costs down. But we don't understand why the new SDK always throws 429s(Too Many Requests) while the Bulk Executor library doesn't, do we need to configure anything in the code that not mentioned in the doc?

@ealsur and @abhijitpai are the experts. I'll let them respond.
There was congestion control  added in the preview releases which seems like it would help with this scenario.

@TianyuHou what version of the SDK are you using?

@abhijitpai  .Net Core 3.1    Microsoft.Azure.Cosmos 3.7.0

The point here is Bulk Executor library seems to have a "custom" retry mechanism, when the retry count is 0 and it will retry forever until it succeeds.
In V3 we honor the Retry configuration on the CosmosClientOptions.
In an under-provisioned scenario, V2 library would retry forever until it succeeds, it would take a long time, but it would eventually succeed.
In V3, the control is on the user side, to avoid having that obscure behavior. User can then increase the Retry count to keep doing more retries (and match the behavior of V2 library).

@ealsur  Appreciate your explanation!


Second-level headers are underlined

Describe the bug
Second-level headers are underlined
To Reproduce
Steps to reproduce the behavior:

Create an org file
create a first-level header *
Press enter
go to the beginning of the row, delete the empty spaces
create a second-level header **

Expected behavior
I shouldn't see the whole second row underlined
Screenshots
If applicable, add screenshots to help explain your problem.
Platform:

Linux ST4

This is a product of your theme. The default theme has headline 2 defined to be underlined.
There is a theme generator that can take and extend your current theme and should allow you to style the headlines as you would like.


Remove DataSource and Repository pattern

Be simple. Stay just with state/context api.

Closed by 9cb1f977a06962ca3bf77cf0aceeeb034ea0ec20


how to use elasticsearch-spark to connect to elasticsearch server behind a proxy server

I have used elasticsearch-spark to connect to elasticsearch server without a problem,
but somehow I found problem connecting to elasticsearch server behind proxy server
here's my configuration
my server configuration is as follow :

I have a single public ip address which I put in my routing server ( lets say its x.x.x.x)
I many nodes, one of them is elasticsearch which use a local ip (192.168.0.*)

when I try to connect to x.x.x.x using elasticsearch-spark using this code
val elasticIndex = "index/type"
val url = "x.x.x.x:9200"
val reader = sqlContext.read.
     format("org.elasticsearch.spark.sql").
     option("es.net.http.auth.user","username").
     option("es.net.http.auth.pass","password").
     option("es.nodes",url)

println(s"Loading: ${url} ...")
val df = reader.load(elasticIndex)
df.printSchema()
df.count()

the printSchema works fine...
but the count returns connection timeout error
when I take a look at the logs, I found that the local address 192.168.0.* is still being used
16/01/05 00:38:33 DEBUG ScalaEsRowRDD: Discovered Elasticsearch version [1.4.4]
16/01/05 00:38:33 DEBUG HttpMethodBase: Resorting to protocol version default close connection policy
16/01/05 00:38:33 DEBUG HttpMethodBase: Should NOT close connection, using HTTP/1.1
16/01/05 00:38:33 DEBUG HttpConnection: Releasing connection back to connection manager.
16/01/05 00:38:33 DEBUG DefaultHttpParams: Set parameter http.method.retry-handler = org.elasticsearch.hadoop.rest.commonshttp.CommonsHttpTransport$1@408711b5
16/01/05 00:38:33 DEBUG DefaultHttpParams: Set parameter http.connection-manager.timeout = 60000
16/01/05 00:38:33 DEBUG DefaultHttpParams: Set parameter http.socket.timeout = 60000
16/01/05 00:38:33 INFO CommonsHttpTransport: Using detected HTTP Auth credentials...
16/01/05 00:38:33 DEBUG DefaultHttpParams: Set parameter http.authentication.preemptive = true
16/01/05 00:38:33 DEBUG DefaultHttpParams: Set parameter http.tcp.nodelay = true
16/01/05 00:38:33 DEBUG HttpMethodDirector: Preemptively sending default basic credentials
16/01/05 00:38:33 DEBUG HttpMethodDirector: Authenticating with BASIC <any realm>@<IP_ADDRESS>:9200
16/01/05 00:38:33 DEBUG HttpMethodParams: Credential charset not configured, using HTTP element charset
16/01/05 00:38:33 DEBUG HttpConnection: Open connection to x.x.x.x:9200
16/01/05 00:38:33 DEBUG HttpMethodBase: Adding Host request header
16/01/05 00:38:33 DEBUG ScalaEsRowRDD: Nodes discovery enabled - found [<IP_ADDRESS>:9200]
16/01/05 00:38:33 DEBUG HttpMethodBase: Resorting to protocol version default close connection policy
16/01/05 00:38:33 DEBUG HttpMethodBase: Should NOT close connection, using HTTP/1.1
16/01/05 00:38:33 DEBUG HttpConnection: Releasing connection back to connection manager.

am I missing something ?
please help
Thanks

Handling your deployment is explained in the docs.
Next time, for questions please use the forum instead of the bug tracker. Thanks!

Thanks

Hello, i run the same code as yours in my docker container:
Code:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.elasticsearch.spark._
import org.elasticsearch.spark.sql._

val elasticIndex = "twitter"
val url = "172.17.X.X:9200"
val reader = sqlContext.read.format("org.elasticsearch.spark.sql").option("es.nodes",url)

println(s"Loading: ${url} ...")
val df = reader.load(elasticIndex)
df.printSchema()
df.count()

Getting below error while executing val df = reader.load(elasticIndex)
scala> val df = reader.load(elasticIndex)
java.lang.ClassNotFoundException: Failed to find data source: org.elasticsearch.spark.sql. Please find packages at http://spark-packages.org
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:77)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:102)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:109)
... 58 elided
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.spark.sql.DefaultSource
at scala.reflect.internal.util.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:62)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62)
at scala.util.Try$.apply(Try.scala:192)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62)
at scala.util.Try.orElse(Try.scala:84)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:62)
... 61 more

Indeed, this is a very good question!
Took me a few time to figure out:
If you use an Uber jar (via minimizeJar to true), this class will not be included, hence the error, despite you follow deployement recommandation.

谢谢


Proposing several upcoming 'g's

I think the "greight" pun is a little too subtle. At first look, it's hard to tell whether it should be pronounced like "eight" or like "height" or even "freight".

Yeah, I don't get it... Is it because it's the eighth and it's great?

Don't blame me, that one comes from @ejona86

In the future I'd suggest making people send their suggestions as their own
PR's for proper attribution of such... ideas.
On Wed, Apr 26, 2017 at 2:33 PM Vijay Pai<EMAIL_ADDRESS>wrote:

Don't blame me, that one comes from @ejona86 https://github.com/ejona86
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/grpc/grpc/pull/10870#issuecomment-297547593, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJpudeVo4Iy0aMWvyPbB8vhFKvg4W-eFks5rz7gZgaJpZM4NJZoE
.

Good idea, I'm removing 1.8

No significant performance differences

No significant performance differences

Please squash commits.

Closing a troll PR since it's been superceded


Endpoint status shown on "endpoints" view

Right now, when you click on the "Endpoints" page, there is no status shown (up / down, associated / not-associated)

To make it easier to clean up old endpoints, we should show the status on this page (like we do on the home page below).

Required changes
Endpoint list view

[ ] Introduce a new Status column in the endpoint datatable.

The content of this column should be based on the endpoint type:

[ ] Docker / Kubernetes endpoint: display the up/down label (similar to the home view) based on the status of the endpoint
[ ] Edge endpoint: display associated / unassociated
[ ] ACI: display "-"

Required changes
Endpoint list view

[ ] Introduce a new Status column in the endpoint datatable.

The content of this column should be based on the endpoint type:

[ ] Docker / Kubernetes endpoint: display the up/down label (similar to the home view) based on the status of the endpoint
[ ] Edge endpoint: display associated / unassociated
[ ] ACI: display "-"

do we want this to be based on https://github.com/portainer/portainer/issues/3842 so we can show heartbeat for edge?

do we want this to be based on https://github.com/portainer/portainer/issues/3842 so we can show heartbeat for edge?

@chiptus yes, let's tackle this one after #3842 and show the new labels introduced in #3842 in that datatable.

@chiptus yes, let's tackle this one after #3842 and show the new labels introduced in #3842 in that datatable.

great. btw for azure we see up on the home view. Should we hide the tag for azure?

great. btw for azure we see up on the home view. Should we hide the tag for azure?

@chiptus is there some logic to compute that up status? I don't think we ping Azure or anything so in my opinion it should be removed.

@chiptus is there some logic to compute that up status? I don't think we ping Azure or anything so in my opinion it should be removed.


Merge develop into master

I'm doing this PR because all new fixes aren't present in the master branch so when you download the package from npm, this issue https://github.com/Carrooi/Js-GoogleMapsLoader/issues/58 still existing.

Thanks I even forgot that we are still using the develop branch..... :sweat_smile:

@davidkudera although this is merge on master, you should update the npm distribution. I've never done that, but when I run npm install google-maps I'm getting the old version. You are able to update that?

I just released a new version 3.3.0, thanks for reminding me :slightly_smiling_face:
Also now the master branch is default, not develop and hopefully I'll have some more time for this package soon. Huge refactoring is comming :wink:


Ops for Reading from Cloud Spanner

Is there any plan to make F1 public (be it a service in Google Cloud or just open source) and make it possible to store TensorFlow tensors in F1? I ask because as far as I can tell (might be wrong), there isn't a "native" database for TensorFlow (meaning a C++ reader with direct connection to the DB), and F1 supports Protobuf columns which would seem like a natural fit for Tensorflow data.
From here

The F1 data model is very similar to the Spanner data
model. In fact, Spanner’s original data model was more like
Bigtable, but Spanner later adopted F1’s data model. At
the logical level, F1 has a relational schema similar to that
of a traditional RDBMS, with some extensions including
explicit table hierarchy and columns with Protocol Buffer
data types.

We have a bigquery cloud reader in contrib.
CC @jhseu

Any planned support for Spanner? A quick search doesn't show anything

Bigquery supports structs (e.g. json).

@tornato7 ^^^ and https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax

I do think ops for reading from Cloud Spanner would be useful. Feel free to reopen if that's what you want.

The initial sql op support is committed: https://github.com/tensorflow/tensorflow/commit/8dac0eb067662ba69a7eb72e640d8ff8d146e5c9
It's currently a bare minimum supporting sqlite with TEXT type only, but it should be able to serve as a starting point to support other sql engine.

@aidan-plenert-macdonald — FWIW, we just added initial read/write support for Cloud Bigtable in TF 1.10.0, and you can store protocol buffers in Cloud Bigtable columns — in fact, you can store arbitrary bytes in Cloud Bigtable, since it doesn't enforce a typed schema. Hope this helps!

Many ops have been added to tensorflow/io to support Google Cloud (as well as other cloud platforms!).
@yongtang, do you know if Spanner has been added?

@aidan-plenert-macdonald @dynamicwebpaige We don't have Cloud Spanner support in tensorflow/io yet (BigQuery/PubSub are already supported), though we could certainly add CloudSpanner as a feature in tensorflow/io.

Opened an issue tensorflow/io#592  for tracking the Cloud Spanner support for tensorflow.


[WTF-1786] Fix PWT update command on PW documentation

Adjust the default PWT update command to get the latest version.

@ConnorLand, this one's all yours. :) It's a simple fix for a shell command.

Thank you! Is this connected to any feedback or support ticket? @legio-vi-ferrata

Thank you! Is this connected to any feedback or support ticket? @legio-vi-ferrata

Hello, @ConnorLand. No, this is something I have discovered and wanted to fix directly.


Allow remote references to texture image files

As for the current version of the specification, all texture image files are required to be in a local folder named "appearances" located next to the CityJSON file, and the "image" member of a texture object may only carry the name of the texture file.
Placing a large number of files in the same folder may cause troubles for some file systems. It would thus be good to allow organizing the texture files in subfolders below "appearances", which requires storing relative paths in the "image" property.
However, local references to texture files are not sufficient if you want to serve CityJSON via a web service (well, at least if you do not want to create some sort of ZIP container at the server side). So it would even be better to allow both local and remote URI references to texture image files.

Sorry, lost sight of this issue.
Well, since the "image" property is of type string, the schema itself already supports remote references. My proposal is to skip the requirement that all texture files have to be stored locally in a folder "appearances" next to the CityJSON file from the specification.
This would allow remote references:
{
  "type": "JPG",
  "image": "http://some.domain.com/filename.jpg",
  ...
}

If you still want to store the texture file in an "appearances" folder next to the CityJSON file, all you have to do is:
{
  "type": "JPG",
  "image": "appearances/filename.jpg",
  ...
}

But you would also be able to use multiple subfolders;
{
  "type": "JPG",
  "image": "appearances/sub1/a.jpg",
  ...
},
{
  "type": "JPG",
  "image": "appearances/sub2/b.jpg",
  ...
}

And finally, also absolute local references would be supported:
{
  "type": "JPG",
  "image": "c:\\some\folder\filename.jpg",
  ...
}

Small change, but big gain, in my oppinion.

I agree, I changed the text (5b8c233d9f8b189cd50a17eeed0cedb5d6ec757a) and the schema as you said stays the same.


impala引擎

扩展impala引擎，采用Thrift协议与coordinator通讯，实时获取日志以及进度条，支持kill操作。

Thank you very much.
There are several amendments
1.impala should be placed in the definedEngines directory
2. Is the code related to the beginning of the com.cloudera and org.appache packages in impala included in the package? Don't use the code
3.The thrift file license in thrift needs to be modified to the same


Not working with Minecraft 1.21

Opening a shell for a player I get:
mcipc.rcon.exceptions.UnexpectedTrailingData: ...t:oak_sign{BlockEntityTag:{front_text:{messages:['["select"]','[""]','[""]','[""]']}},display:{Name:'{"text":"select"}'}}

On the give command
Debugging, the exact error is:
Expected whitespace to end one argument, but found trailing data...t:oak_sign{BlockEntityTag:{front_text:{messages:['["select"]','[""]','[""]','[""]']}},display:{Name:'{"text":"select"}'}}<--[HERE]

I imagine that the entity tag format has changed or is being more strictly checked.
You ask at a good time because my Son is playing minecraft again and I have a 1.21 server to test against.
Will look a this over the weekend.
Thanks for the report.

um maybe next weekend. 🙃

I've reproduced this error but I'm a little stumped as to what is happening. I can't see any documentation relating to changes in the JSON describing signs. I've tried rolling back the version of RCON just to verify that is not where the problem lies.
Still investigating ...

OK, got it.
This page https://www.gamergeeks.net/apps/minecraft/give-command-generator/signs
shows this for 1.20:
/give @a oak_sign{BlockEntityTag:{front_text:{messages:['["hello there"]','[""]','[""]','[""]']}}}
and this for 1.21:
/give @a oak_sign[block_entity_data={id:oak_sign,front_text:{messages:['["hello there"]','[""]','[""]','[""]']}}]


build fail

I am using CUDA 8 and cuDNN 5.1.5, Ubuntu 16.04.
when i build the code, i meet errors below:
python setup.py build_ext --inplace
running build_ext
skipping 'utils/bbox.c' Cython extension (up-to-date)
skipping 'utils/nms.c' Cython extension (up-to-date)
skipping 'nms/cpu_nms.c' Cython extension (up-to-date)
skipping 'nms/gpu_nms.cpp' Cython extension (up-to-date)
rm -rf build
bash make.sh
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally
/usr/lib/gcc/x86_64-linux-gnu/5/include/mwaitxintrin.h(36): error: identifier "__builtin_ia32_monitorx" is undefined
/usr/lib/gcc/x86_64-linux-gnu/5/include/mwaitxintrin.h(42): error: identifier "__builtin_ia32_mwaitx" is undefined
2 errors detected in the compilation of "/tmp/tmpxft_0000529b_00000000-7_roi_pooling_op_gpu.cu.cpp1.ii".
g++: error: roi_pooling_op.cu.o: No such file or directory

this is a similar issue for tensor flow build:
https://github.com/tensorflow/tensorflow/issues/1066
but this one is to change a file within tensorflow. then which file i need to change for Faster-RCNN_TF

I directly comment out
__builtin_ia32_monitorx (__P, __E, __H);
__builtin_ia32_mwaitx (__E, __H, __C);
these 2 lines in
/usr/lib/gcc/x86_64-linux-gnu/5/include/mwaitxintrin.h
and then build pass.


Should explicitly specify what arches we want to build eve packages for

We use make eve in the root to call linuxkit pkg build with the build.yml from pkg/eve/build.yml. That does not specify explicitly which arches are supported, so a future call to pkg build will try to build for lots of things that might or might not suit us.
This makes it explicit.
cc @vmlemon @rvs
Related to this

Sure. Just call it as lkt pkg build <path> --platforms=linux/arm64 or whatever you're in. Stick it in the makefile where we already do that.

Hmm, would https://github.com/tonistiigi/xx be of any use to us, for this kind of thing? I stumbled across it, whilst watching some of the DockerCon videos, earlier on.

No, we don't need any of that @vmlemon -- nice find tho

Btw @deitch it sounds like with the explicit invocation of linuxkit you suggested above -- we should close this PR?

Correct.
How did you find time to watch those videos @vmlemon :-)

Actually I'm going to change that. The explicit platforms invocation is independent of this PR. This PR sets the default for when you do not explicitly set platforms. When you explicitly do - as suggested above - the arches part of build.yml is ignored. Consider this a "safety net" for when someone runs it without explicit platforms (only do these platforms, not every one linuxkit can think of), as well as good indication / documentation what platforms are supported.
I would merge this in for those reasons, and then do the explicit --platforms to restrict it to just one platform when running.

Correct.
How did you find time to watch those videos @vmlemon :-)

Copious amounts of coffee, snacks, and planning out which sessions were most interesting, before ending up staying awake until 2am. The time boundaries also kinda-helped, since the videos were just short enough, that the start/end of each overlapped... :)

Consider this a "safety net"

The problem with looking at it as a safety net @deitch is that it is broken -- attempting to cross-build eve packages (specifically) will result in ether failure or worse yet producing an incorrect container. Both of these are not what I would call a safety net.
Specifically for eve -- it really has to be somehow the platform I'm running on. Which brings me to: it really would be helpful if there was a way to say:
arches:
  - self

Which would mean that the package is declaring itself to be safe to be built on any architecture as long as cross-compilation is not involved.

The problem with looking at it as a safety net @deitch is that it is broken

I don't understand why it is broken. It doesn't say, "I will prevent you from building any other arches." If you specify pkg build --platforms=foo, it will let you build for foo. If you specified foo, you are more than smart enough to know that was what you wanted to build.

attempting to cross-build eve packages (specifically) will result in ether failure or worse yet producing an incorrect container. Both of these are not what I would call a safety net.

If eve cross-building fails, let's fix it. But pkg build does what it is expected to:

if you specified --platforms, build for that
if you did not, build for the "default arches" specified in the file

arches:

self

I don't see the maintainers agreeing to that. Why would I want to say, "this is safe to build as long as cross-compilation is not involved"?

I don't understand why it is broken.

It is broken because running make eve with your changes will produce a package with a broken content for non-host arch.
I think we need to discuss it in a more 1-1 way at this point -- since it is clearly that both of us are missing some crucial details here.

Hey @deitch -- shouldn't this be closed in favor of #2115 ?

Nope. This is about what platforms I build for in my current command, not creating an index. Two distinct things.

@deitch do we close this?


Examples of fleshing out much needed documentation through Hapi-Swagger / Joi schema updates

Hi Reza,
Here are 3 examples of documentation updates I'd recommend through Hapi-Swagger / Joi Schema updates.
The first example commit adds a description field below the Swagger.json / Swagger UI title. I added an example of the type of documentation summary that would be great to include there. I also added tag descriptions so that each category of endpoints can have a brief description about what that category is for. It looks like this in rendered documentation:
https://www.dropbox.com/s/xanfh27wgrrlxus/Screenshot 2018-05-23 14.00.46.png?dl=0
The second commit is an example of taking it a bit further, it looks like this:
https://www.dropbox.com/s/fz2nr2u2h4qz1t2/Screenshot 2018-05-23 13.59.09.png?dl=0
Adding descriptions to your endpoints and endpoint parameters via updates to the endpoint route definition Joi object schema you're already using. route.options.description is super useful here in that it shows up as a brief summary of each endpoint even when collapsed in documentation. route.options.notes is the big one to fill out to fully brain dump what the endpoint technically does, use cases and things to look out for (admin role needed) etc.
I also added an example of adding some more Joi validation options that were missing, like adding an allow() with the actual options available for "sort".  This conveniently shows up as dropdown options in the interactive version of your Swagger documentation.
The third commit is an example of taking it a bit further still. Hooking up response schema to the joi validation on your endpoints. This has the benefit of actually enforcing validation on endpoint responses (and sending an http 500 if you don't get what you expect, good security option) but is most useful to actually show the sample response AND response schema in the swagger.json / Swagger UI. Here is what that would look like:
https://www.dropbox.com/s/w9acp2smqlqldal/Screenshot 2018-05-23 14.01.36.png?dl=0
I noticed you already have model files defined with Joi object schema so I tap into and re-use those to generate this.
Let me know what you think! If we were able to get these kinds of updates in place the docs for this would be amazing and I think the project would take off far greater than it has. You could display the interactive documentation link more prominently and everyone would have their questions answered simply by interacting with it: https://getframe.herokuapp.com/documentation
These commits are just placeholders for where the real data should be, I'm game to help fill everything out but have more questions then answers on pretty much every endpoint besides basic signup and login. Let me know if I can help with anything else in particular.

No problem, thanks for reviewing!
We can close this pull request and i'll push a real one when I have a round of updates for the endpoints i'm using as I get more familiar with the API and take it from there.


Add InfinityEnabled boolean feature

I have this request because when i added lottie animation into slider, this animation will stops in the 3 position and when i back problem still
solution
I had downgrade to 1.3.3 version and use sliderView.setCircularHandlerEnabled(false);
Alternative
Add InfinityEnabled boolean feature

Updated , checkout 1.3.6 , and pass boolean false for sliderView.setAdapter() method.


KAFKA-17428: Add retry mechanism for cleaning up dangling remote segments

This change introduces a retry mechanism for cleanig up remote segments that failed the copy to remote storage. It also makes sure that we always update the remote segment state whenever we attempt a deletion.
When a segment copy fails, we immediately try to delete the segment, but this can also fail. The RLMExpirationTask is now also responsible for retrying dangling segments cleanup.
This is how a segment state is updated in the above case:

COPY_SEGMENT_STARTED (copy task fails)
DELETE_SEGMENT_STARTED (copy task cleanup also fails)
DELETE_SEGMENT_STARTED (expiration task retries; self state transition)
DELETE_SEGMENT_FINISHED (expiration task completes)
COPY_SEGMENT_STARTED (copy task retries)
COPY_SEGMENT_FINISHED (copy task completes)

@showuon fyi

@showuon this is how the log looks like in case of copy and cleanup failure. It looks a bit weird. Should we avoid to throw and print the stack trace directly in copyLogSegment? That way, you would have "error -> retry", instead of "error -> retry -> same error". Wdyt?
[2024-10-03 11:28:41,608] ERROR [RemoteLogManager=2 partition=o4c3NufuRIecNTDRWYlLCA:my-topic-0] Copy failed, cleaning segment RemoteLogSegmentId{topicIdPartition=o4c3NufuRIecNTDRWYlLCA:my-topic-0, id=GRY9LV9aQmiunPGJs4hqlg} (kafka.log.remote.RemoteLogManager$RLMCopyTask)
[2024-10-03 11:28:41,610] INFO Wait until the consumer is caught up with the target partition 0 up-to offset 1 (org.apache.kafka.server.log.remote.metadata.storage.ConsumerManager)
[2024-10-03 11:28:41,662] INFO Cleanup failed, will retry later with segment RemoteLogSegmentId{topicIdPartition=o4c3NufuRIecNTDRWYlLCA:my-topic-0, id=GRY9LV9aQmiunPGJs4hqlg}: boom (kafka.log.remote.RemoteLogManager)
[2024-10-03 11:28:41,663] ERROR [RemoteLogManager=2 partition=o4c3NufuRIecNTDRWYlLCA:my-topic-0] Error occurred while copying log segments of partition: o4c3NufuRIecNTDRWYlLCA:my-topic-0 (kafka.log.remote.RemoteLogManager$RLMCopyTask)
org.apache.kafka.server.log.remote.storage.RemoteStorageException: boom
	at org.apache.kafka.server.log.remote.storage.LocalTieredStorage.lambda$copyLogSegmentData$1(LocalTieredStorage.java:317)
	at org.apache.kafka.server.log.remote.storage.LocalTieredStorage.wrap(LocalTieredStorage.java:544)

@showuon this is how the log looks like in case of copy and cleanup failures. It looks a bit weird. Should we avoid to throw and print the stack trace directly in copyLogSegment? That way, you would have "error -> retry", instead of "error -> retry -> same error". Wdyt?
[2024-10-03 11:28:41,608] ERROR [RemoteLogManager=2 partition=o4c3NufuRIecNTDRWYlLCA:my-topic-0] Copy failed, cleaning segment RemoteLogSegmentId{topicIdPartition=o4c3NufuRIecNTDRWYlLCA:my-topic-0, id=GRY9LV9aQmiunPGJs4hqlg} (kafka.log.remote.RemoteLogManager$RLMCopyTask)
[2024-10-03 11:28:41,610] INFO Wait until the consumer is caught up with the target partition 0 up-to offset 1 (org.apache.kafka.server.log.remote.metadata.storage.ConsumerManager)
[2024-10-03 11:28:41,662] INFO Cleanup failed, will retry later with segment RemoteLogSegmentId{topicIdPartition=o4c3NufuRIecNTDRWYlLCA:my-topic-0, id=GRY9LV9aQmiunPGJs4hqlg}: boom (kafka.log.remote.RemoteLogManager)
[2024-10-03 11:28:41,663] ERROR [RemoteLogManager=2 partition=o4c3NufuRIecNTDRWYlLCA:my-topic-0] Error occurred while copying log segments of partition: o4c3NufuRIecNTDRWYlLCA:my-topic-0 (kafka.log.remote.RemoteLogManager$RLMCopyTask)
org.apache.kafka.server.log.remote.storage.RemoteStorageException: boom
	at org.apache.kafka.server.log.remote.storage.LocalTieredStorage.lambda$copyLogSegmentData$1(LocalTieredStorage.java:317)
	at org.apache.kafka.server.log.remote.storage.LocalTieredStorage.wrap(LocalTieredStorage.java:544)

Thanks for showing the logs. I think we should keep the final error thrown because users need to know it. But for the 1st error log, we can change to INFO because we know an exception will be thrown. WDYT?

@kamalcph @satishd , call for review when available. Thanks.

Went over the changes, it LGTM, left few comments to consider. Thanks for the patch!


WordWrap on TALText / TALEdit / TALMemo

Hi @Zeus64 , I have 2 questions.

I have TALText, How work WordWrap ?

myLabel.TextSettings.WordWrap := False;       <<- don't exit

See bottom Image, how i hidden ".." in Label / Memo / Edit ? i need see ALL TEXT without cut.

Thank you again for your work and commitment.
Alcinoe is number one.
Mauro

Hi maurobotta,

I have TALText, How work WordWrap ?

in TALText the wordwrap is done in Textsettings.MaxLines.
MaxLines = 1 mean no wordwrap, MaxLines > 1 mean wordwrap. by default MaxLines = 65535 so it's mean wordwrap

See bottom Image, how i hidden ".." in Label / Memo / Edit ? i need see ALL TEXT without cut.

if you want to see all text without cut, you must set MyText.autosize = true so that the control will resize to fit all the text


Hidden Quests Visible in View Mode

When set to view mode you can see quests that are marked as hidden and those marked as visible upon completion, this makes it so those quests are visible to all. This is different to GTNH which only lets you see hidden quests when in edit mode.

BQu allows you to control the behavior of all quests in the same manner via setting the ignoresView property to true.

BQu allows you to control the behavior of all quests in the same manner via setting the ignoresView property to true.

Thanks, I was not aware of this.

this is not an issue, and is working as intended: view mode being enabled should override the visibility of the quest unless ignoresView is true on that quest.


ISO8601 Date String options in Logged Data

We will be logging timestamps in ISO8601 format in the Logged Data.   There is some disagreement on what should be allowed.  Using examples from https://www.w3.org/TR/NOTE-datetime, there are 3 possible representations
1994-11-05T08:15:30   (local time when time zone offset is unknown)
1994-11-05T08:15:30-05:00   (local time + time zone offset)
1994-11-05T13:15:30Z   (UTC without a reference to time zone)
Ideally, all times would be in the 2nd example.   However, there are cases where the logging device does not have a record of its timezone.   E.g.s, UTC dates in GNSS data, a monitor set to local time without knowledge of its timezone.     ISO 11783 allows all of the above variations except in the case of the primary timestamp on the spatial records which must be in local time.

All three are fine but maybe be explicit that it can be ONLY one of the three variants. Time on implements, tractors, and monitors are a stinker. No reason to be complex when good parsers exist to handle all three of those.

I understand @knelson-farmbeltnorth points above and our conversation in ADAPT Standard meeting a few weeks ago to suggest that when a time instance is recorded, one of two conditions is true:

The date/time complete with time zone information is known or can be determined.
The date/time complete with time zone information is not known and cannot be determined.

Note that this is not the same thing as knowing/not knowing the time zone the clock system is in when it reported date/time information. One cannot assume that because a time is indicated in JST that the related event occurred in Japan. One could harvest corn in Iowa recording time in JST, which from an ISO 8601 perspective is just fine (albeit strange).
For condition 1, I highly recommend requiring that time be expressed in UTC. If the local time zone matters, record it as a separate piece of information. For developers of robust systems UTC will simplify the following scenarios (and no doubt myriad others):

Field operations that cross time zones (even the case where at an instant one spray nozzle is in one time zone while another is in another time zone)
Field operations occurring in the hours around daylight saving time / summer time adjustments

While stating times with UTC offsets would computationally work just fine, it would result in some apparently odd-looking date to those who don't have the finer points of ISO 8601 in mind. Put the date/time-semantics burden on data producers rather than data consumers.
For condition 2, I guess some date/time information is better than none, but there is quite a range of ambiguity. Furthermore, in my opinion, any date/time system that knows the date/time but doesn't know the time zone or is incapable of expressing date/time in UTC is a suspect system.
Based on my earlier comments, you won't be surprised that I highly recommend not relying on time zones expressed in date/time information to indicate the time zone in which an operation occurred (or more generally, anything at all about geography).
As I write this, it is 2023-09-20T10:45+13:00. What time zone am I in?

Agreement in 20 September 2023 meeting that we require timestamps in the ISO8601 "Z" format (UTC without a defined timezone offset).   If a data producer has only local time without knowledge of the timezone other than some record of where the data physically is, they must use that to convert to Z time.   Otherwise that exercise falls to the data consumer and violates the ADAPT Standard principle that the data producer makes the effort to "standardize" the data.


Doesn't install with gulp 3.8.11

The installation of the package is failing with gulp 3.8.11 (v8flags problem?).
I'm setting it to 3.8.10 in package.json, but it would be nice to investigate what the problem.

Fixed


Helper for modifying crossmaps

Crossmaps are generally one-way, but if we look at link types:

recode links can be reversed without editing weights,
split links can be reversed by changing the weights to one
collapse links can't easily be reversed (since you need to specific splitting weights).

Provide a helper method to "invert" a crossmap  which:

[ ] accepts an crossmap as a data argument
[ ] checks the inversion can be performed (recode, split maps only)
[ ] swaps the col_from and col_to attributes
[ ] adds a new weights column if necessary, and modifies the col_weights attribute accordingly
[ ] returns a valid crossmap (recode, collapse only)

You could provide this method for any xmap subclass:

[ ] add generic xmap_invert(xmap, ...)
[ ] add method xmap_invert.xmap_df(xmap, .name_weights = "new_weights")

The use-cases include:

reversing a disaggregation operation (e.g. after some adjustments have been made at the disaggregated level)
reversing a recode (though xmap/conformr still feels a bit overkill for this use case)

Maybe it might also make sense to provide a "modification" function like xmap_modify(xmap, from = NULL, to = NULL, weights = NULL) which:

[ ] accepts a crossmap as the data argument
[ ] modifies the col_from, col_to, col_weights as specified, leaving any unspecified attributes unchanged.
[ ] validates the modified xmap

This could also power the inversion function which would just be a validated wrapper around something like: modify_xmap_df(xmap, col_from = x_attrs$col_to, col_to = x_attrs$col_from, col_weights = NULL)

Using NULL as defaults in modify_xmap_df(xmap, from = NULL, to = NULL, weights = NULL)  doesn't really work because the user arguments are expected to be expressions not strings.
The logic I want is:
col_from <- ifelse(is.null(from),
                     x_attrs$col_from,
                     deparse(substitute(from)))

but if from is an expression (e.g. from = ISO3), then you get the error:
Error in ifelse(!is.null(from), x_attrs$col_from, deparse(substitute(from))) :
  object 'ISO3' not found

The user needs to provide at least ONE of from, to, weights, with the unspecified arguments assumed to stay the same.

I think I need some type of sentinel function and to specify the default as a function call:
modify_xmap_df <- function(xmap_df,
                           from = attr(xmap_df, "col_from"),
                           to = attr(xmap_df, "col_to"),
                           weights = attr(xmap_df, "col_weights"))

Or something like modify_xmap_df(iso_xmap, from = xmap::same(), ...)

Helper interface verb ideas:

replace for replacing one or more col_* attributes (with new vectors)? --
reweight for switching weighting schemes, but keeping col_from & col_to the same.
redirect for changing from/to attributes, but keeping the same col_weights?  -- otherwise it's just a replace?
reverse for swapping from/to and generating new weights.

## replace
xmap_replace(xmap, col_from, col_to, col_weights)

## redirect
xmap_redirect(xmap, new_from, new_to, new_weights = NULL)

## reverse
xmap_reverse(xmap)
# which wraps
xmap_redirect(xmap,
  new_from = x_attrs$col_to,
  new_to = x_attrs$col_from,
  new_weights = rep(1, nrow(xmap))
)

Should new_* args to accept column names OR vectors?
The tricky thing is that these functions try to do a few related things:

"activate" a new crossmap that's already stored in the existing xmap_df -- i.e. switching out weighting schemes, no new columns!
create a new crossmap using parts of the existing xmap_df -- e.g. reversing keeps the from and to columns, but usually requires adding new weights.

The creation of a related crossmap could is a bit of a multi-stage process with conditional steps:

calculate or add user provided new variables,
then activate the new crossmap.

only offer:

modify_to()
modify_from()
modify_weights()
force user to make new xmap if it's any only combination, or can't be done sequentially.

https://stackoverflow.com/questions/48504942/testing-a-function-that-uses-enquo-for-a-null-parameter
https://stackoverflow.com/questions/66574591/check-if-object-is-null-or-undefined/66580483#66580483

Sentinel value for arguments: from=".replace" or similar

Method: modify_xmap_df()
modify_xmap_df <- function(xmap_df, col_from = NULL, col_to = NULL, col_weights = NULL){
  stopifnot(inherits(xmap_df, "xmap_df"))

  x_attrs <- attributes(xmap_df)
  col_from <- col_from %||% x_attrs$col_from
  col_to <- col_to %||% x_attrs$col_to
  col_weights <- col_weights %||% x_attrs$col_weights

  col_strings <- c(col_from, col_to, col_weights)
  df_check_cols(xmap_df, col_strings)

  df <- as.data.frame(xmap_df)
  col_order <- c(col_strings, setdiff(names(df), col_strings))
  df <- df[col_order]
  xmap <- new_xmap_df(df, col_from, col_to, col_weights)
  validate_xmap_df(xmap)

  return(xmap)
}

iso_xmap <- tibble::tribble(
      ~ISONumeric, ~ISO2, ~link,         ~country, ~ISO3,
            "004",  "AF",     1,    "Afghanistan", "AFG",
            "008",  "AL",     1,        "Albania", "ALB",
            "012",  "DZ",     1,        "Algeria", "DZA",
            "016",  "AS",     1, "American Samoa", "ASM",
            "020",  "AD",     1,        "Andorra", "AND"
      ) |>
  as_xmap_df(from = ISO2, to = ISONumeric, weights = link)

Generic: xmap_modify()

I'm not sure offering helpers for modifying crossmaps is necessary or even desirable.

Lists of maps make more sense from a "using xmaps" perspective,
Combining multiple crossmaps into a single table add a flexible quality to xmaps that goes against the purpose of the structure as a data-provenance object.
Users can still manipulate and store multiple sets of weights or other xmap variants in a "parent table", from which they create multiple xmap.
Manipulation of xmaps creates risk around invalidating the map -- i.e. modifying values in the weights column is technically possible for an xmap (since it is just a data.frame column), but not desirable since the map is not revalidated after the manipulation -- i.e. xmap |> dplyr::mutate() should probably return a tibble rather than an xmap.

Closing this issue since modification should be reserved for candidate links; and with #82 validate_as_xmap() and xmap_to_*() features this is relatively straightforward.


usage examples

Hi, do you have any snippets on how to send action thru this?

Use ami:action command. Example:
Artisan::call('ami:action', [
     'action' => 'Originate',
     '--arguments' => [
           "Callerid:$callerId",
           "Channel:Local/$phoneNumber@from-internal",
           "Context:from-c2call2",
           "Priority:1",
           "WaitTime:10",
           "Async:true"
    ]
]);

Use ami:sms and ami:ussd for sending sms and ussd. For sending long messages use --pdu mode.

So when the events are triggered what do I add in the array to send the event data to another file to process it?
return [
    'host' => '<IP_ADDRESS>',
    'port' => 7777,
    'username' => 'tbsadmin',
    'secret' => 'grungle1',
    'dongle' => [
        'sms' => [
            'device' => null,
        ],
    ],
    'events' => [
        'AGIExec' => [
            // what do I put here???
        ],
        'AgentConnect' => [
        ],
        'AgentComplete' => [
        ],
        'Agentlogin' => [
        ],
        'Agentlogoff' => [
        ],

@robertmylne You can see example in repo https://github.com/enniel/ami-log (Tested on Asterisk 1.8)

Thanks :)

Which event is triggered when a person picks up the phone? I found this in the docs but it doesn't seem to be in your events list "https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerEvent_Pickup"

@robertmylne add your events to the configuration file and listen them
// config/ami.php

...
'YourEvent' => [
  // other custom options
  ....
]
...

// Providers/EventServiceProvider.php or Listeners/AmiBroadcaster.php
Event::listen('ami.events.YourEvent', function ($event, $otherCustomOptions) {
   \Log::info('Event '.$event->getName().' fired');
});
...

How do I fire a test event? The listener does not seem to be catching the events.

Fire events not working. Somebody help me :(

@enniel Hi, could yo explain how ami-log works? I can't understand how you create the models and then save it in the DB.
Thx you so much.
P.D: Sorry for my english.

@JorgeDam You can use this code for saving events:
Event::listen('ami.events.EventName', function ($event) {
  $saved = YourModel::create($event->getProperties()})
})


When decoding escapes, change int to uint64_t

The reason is double:

We can't use signed numbers because escapes are unsigned and not just that, they can overflow out of signed range (e.g. \UFFFFFFFF needs 64 bits)
We can't use unsigned int because it's size isn't guaranteed and we need at most 8 bytes (for the \U escape)

You can see the bugs in the previous code by lexing the string "\UFFFFFFFF" in debug mode. An assert will fail and the program will abort.

Please provide a test for this.
In a second patch I would harden readHexEscape if possible to test that the
number of bytes read does not overflow if possible.

Added both and fixed bug: we need 32 bits, not 64 (I was confused because we have 8 digits, but each 2 digits are a byte, not one).

While I agree uint32_t was sufficient, I let it slided because uint64_t avoided a cast when calling wrenUtf8EncodeNumBytes. Considering there might be usage for it in the future, I would bring it back to uint64_t, but it can wait since it is a quite trivial fix.

Why do we need a cast for the call? wrenUtf8EncodeNumBytes() takes uint32_t too.

Updated the text: the previous text wasn't enough because although it would fail (at ASSERT(value >= 0)), in release builds the string will be \x7F:

We enter the branch if (value <= 0x7F).
We mask the value by 0x7F. The value (-1) is 0xFFFFFFFF (two's complement) so we get 0x7F.
The result is \x7F.

So I test now that the string is empty using .bytes.count (could also be done using == "").

I meant that it unifies the type for hexadecimal and codepoint value.

Now that I see the test I wonder if it is now better to error on invalid
unicode characters, which was the point of #816.

I meant that it unifies the type for hexadecimal and codepoint value.

It is already unified?

Now that I see the test I wonder if it is now better to error on invalid
unicode characters, which was the point of #816.

This PR is needed nevertheless.

It is not unified in the sense of having a typedef. Using uint64_t instead
of uin32_t makes it right instead of only functioning.
I don't deny the need of this PR, I only imply that the resolution of this
PR, emplies resolving/working the other issue because of the way to test
the issue.

It is not unified in the sense of having a typedef.

Sorry, I really don't understand you. Where do you see a typedef?

I don't deny the need of this PR, I only imply that the resolution of this
PR, emplies resolving/working the other issue because of the way to test
the issue.

I haven't said that the other issue is wrong (I opened it, after all). But this PR needs to be merged first and foremost. If we decide to err, then the test would need to change to expect an error. Allright.

It seems I miss read wrenUtf8EncodeNumBytes() argument type I thought it
take an uint64_t. But even the int used in the utf-8 utils might need to be
changed to uint32_t then.

Which int?

https://github.com/wren-lang/wren/blob/45c67fae0c2fbe78b608d372d0951ffe05f02690/src/vm/wren_utils.h#L98
utf-8 functions uses int to encode codepoints which should be unsigned
types.

You really haven't gave a look to the code 😄 ...
I already changed that.

I looked from the phone, and if you say saw, I was reaching the header from
different versions leading to my confusion. Anyway, as I said there is no
real harm at using either uint32_t or uint64_t, both are working, just the
later is a bit better in context and future proofing.

I can't predict the future, sorry, and so I fail to see how the later is better. To me it seems like a waste of space. I also think the opposite about the context: people may wonder why, hell, you haven't use uint32_t. Do we need 16 digits somewhere?

AFAIK it is not used yet, and the change is trivial. So either uint32_t and
uint64_t type is fine since both work.

@munificent or @ruby0x1 ?


Sonatype repo POM contains 2.10.2 dependencies

scala-library & scala-reflect specify version 2.10.2 which leads to build warnings.
http://oss.sonatype.org/content/repositories/snapshots/org/scala-lang/scala-pickling_2.10/0.8.0-SNAPSHOT/scala-pickling_2.10-0.8.0-SNAPSHOT.pom

Pickling depends on a specific version of scala-compiler. It's sort of the way it is.