How to add CHARTS within the run overview

In the experiment overview there is an '+Add Chart' button in the Azure Portal. However, how to create/add charts within a run? So that the chart would get added in the 'CHARTS' panel within the overview of a specific run. Thank you

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5ae9c8cf-5f68-9baa-1660-118208034381
Version Independent ID: 48d350ca-0ef8-3500-57ae-a5ec6c36ac79
Content: Quickstart: Create a machine learning service workspace in the Azure portal - Azure Machine Learning
Content Source: articles/machine-learning/service/quickstart-get-started.md
Service: machine-learning
GitHub Login: @rastala
Microsoft Alias: roastala

@robert4os Thanks for the feedback! We are currently investigating and will update you shortly.

from within a run there are several ways:

if you log an array of numeric values, we show a chart automatically.
if you log a single numeric value with the same metric name repeatedly (like from within a loop), we show a chart automatically.
if you log a row with 2 numerical columns repeatedly (like from within a loop), we show a 2-variable chart automatically.
if you log a table with 2 numerical columns. we show a 2-variable chart automatically.

https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-track-experiments#list-of-training-metrics

Also see https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-track-experiments#viewing-charts-in-run-details
#please-close


Refactor offer evaluation to use visitors over specs

@mrbrowning

This PR is pretty large in aggregate although it reduces overall lines of code.  Merging it at this size would be challenging from a review perspective.
We are at the point where we are about to release a major stable version of the SDK.  Digesting the changes here and re-stabilizing CI at this point would be expensive from an engineer/hours perspective.
The core motivation for this work was I believe to separate the Custom/Default executor paths.  Support for the custom executor is going to go away altogether with this upcoming release, as 1.10 and 1.11 will be the last 2 releases.   So in large part I think this work is no longer necessary, correct me if I'm wrong.

/cc @triclambert


Regarding confidence maps of point clouds

Required Info

Camera Model
D435

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 18.04

Kernel Version (Linux Only)
4.15.0-23-generic

Platform
PC

SDK Version
2.12

Language
C

Segment
Robot

Issue Description
Hello, I have a question about confidence maps for point clouds for computer vision applications.
I found this question, as well as this and I am a bit confused: Can I get confidence maps for point clouds out of librealsense or the SDK? If not, what other options do I have to find confidence values for the point cloud?
If this is not a possibility, I am aware that I can opt for using the 'High Accuracy' preset described here to get high confidence points. This would be a good plan B to be fair, but if it would be possible to get the confidence of each point of the high density preset's point cloud, then that would be ideal.

Hi @sandeand
I believe that the D400 series hardware can't provide a confidence map.
The SR300 has a dedicated confidence channel (but it was never implemented in librealsense).
It is somewhat more complicated to estimate confidence in stereo matching solution (D400) than structured-light (SR300).

Okay, that makes a lot of sense.
Then that brings me back to the question of a plan C - is there any way apart from the presets and camera settings to control or get some read on the accuracy of the points measured?

There is a lot of settings under Advanced Mode in the viewer, and it is all exposed via the advanced_mode API.
I'm not aware of additional APIs that can be used for this.

Okay, I will look into Advanced Mode as well as some of the filters built into the SDK. Thank you for your help, I appreciate it!


Make "initial_defect_structure" take precedence for kumagai

This is only a temporary fix by letting initial_defect_structure taking precedence, see #17 for more details
The initial_defect_structure may be relaxed already causing issues when matching.
But using unrelaxed_defect_structure may result in incorrect results, if it does not have the same ordering as the actual defect structure used in the calculation, since the latter is standardised by MPRelaxSet.

@adair-nicolson if you get a chance can you have a quick look at this to check it doesn't mess with your recent fix for the Kumagai correction site-matching? (#14)

Right so the tests are failing, but I think it is because the initial_defect_structure is already relaxed.
So pymatgen assumes it is should be the "unrelaxed_defect_structure" I guess. So maybe the logic should be to fix it first to make the truely unrelaxed structure....

@kavanase These changes look good. The original code for  get_defect_site_idxs_and_unrelaxed_structure() assumed that the bulk atoms in your defect POSCAR matched the arrangement of atoms in your bulk POSCAR. So my change which resulted in the defect being in the correct place still followed that assumption. Now the bulk POSCAR can have a completing different arrangement of atoms, which is useful if the bulk and defects weren't generated by DOPED and obviously makes the code more general. I think this results in a some redundant code now in parse_calculations.py which should be removed for clarity, will look into that.

Great! Thanks very much for looking at this @adair-nicolson! 🙌

Hi @zhubonan!
Thanks very much for this!!
One issue I see when looking at the changes here, is that it does the site-matching for reordering against the initial_defect_structure, rather than the bulk structure. In theory, the ordering that we need to match is the bulk structure rather than the initial_defect_structure, and while it will usually match the bulk structure, it mightn't always (depending on how the defects were generated) and also the user may not have the actual initial_defect_structure available (if it's been overwritten etc).
Would it be possible to slightly refactor the site-matching functions here to base off the bulk structure rather than initial_defect_structure? It should be fairly handy given all the necessary info about the defect and site position is available by the point at which the reordering function is called.

One issue I see when looking at the changes here, is that it does the site-matching for reordering against the initial_defect_structure, rather than the bulk structure.

My understanding is that there is no assumption on the ordering in the code base, i.e. it should work fine with any change of orderings. The Kumagai correction code appears to be able to handle change of order correctly as long as the mapping between sites generated is correct.
The original problem was that the initial_defect_structure is essentially generated from a bulk structure, which did not consider that the actual defect calculation may have a different order (due to the use of MPRelaxSet). This results in incorrect site-mapping being generated for Kumagai correction, since the defect structure created from the bulk structure is used for generating the site mapping. This PR reorders this generated structure, so it matches the actual defect calculation input structure, hence generating the correct site-mapping. Reordering any calculated structure (bulk or defect) can be problematic as one also needs to reorder all calculated quantities.

@kavanase ok to merge?

Yep was on the to-do list for today. Will merge now. When you get a chance would you mind sending me an example bulk and defect OUTCAR for this case @zhubonan, so we can add a test for it? Thanks!
And thanks again for spotting and fixing this!!

Merged to develop with 20797fb25beb6079039823450c1b5b10d0f5cea8, want to add one or two final fixes to the competing phases code before merging all to main and releasing a new version

Sorry for the delay, will look into this ASAP.

Great, thanks! 😄

Actually you don't need a new OUTCAR. The same scenario can be simulated by changing the ordering of the initial structure, after the defect calculatuons are performed, e.g. using a different ordered structure as the initial one when parsing.


example-pbc: 40-customize_kpts_hamiltonian.py

Hi all,
I tried to run 40-customize_kpts_hamiltonian.py, but got the error:
'''
Traceback (most recent call last):
File "/home/jtolle/Software/pyscf_master/pyscf/examples/pbc/40-customize_kpts_hamiltonian.py", line 33, in
cell = pbc.gto.M(
File "/home/jtolle/Software/pyscf_master/pyscf/pyscf/pbc/gto/cell.py", line 73, in M
cell.build(**kwargs)
File "/home/jtolle/Software/pyscf_master/pyscf/pyscf/pbc/gto/cell.py", line 1522, in build
atom_boundary_max = scaled_atom_coords[:,:self.dimension].max(axis=0)
File "/home/jtolle/anaconda3/lib/python3.9/site-packages/numpy/core/_methods.py", line 41, in _amax
return umr_maximum(a, axis, None, out, keepdims, initial, where)
ValueError: zero-size array to reduction operation maximum which has no identity
'''
(using the current master)
Using this commit: 71391d862c3db83db28553bbb1518acee466662c it works.
Would be great if someone can help to resolve this issue.
Best regards,
Johannes

Seems like the DF refactoring merge broke this. https://github.com/pyscf/pyscf/commit/10ccd8222199626c2c0a02ad3979f8118fa02f96

@sunqm @fishjojo @hongzhouye  probably know this refactoring best

Is this fixed now and can be closed? Thanks for raising this issue Johannes and for fixing it Xing!


ERROR shard-manager (on GCP VM with 2 NVIDIA T4 GPUs)

System Info
Running text-generation-interface with Docker
docker exec -it text-generation-inference text-generation-launcher --env

2023-05-03T08:26:43.374600Z  INFO text_generation_launcher: Runtime environment:
Target: x86_64-unknown-linux-gnu
Cargo version: 1.69.0
Commit sha: 411b0d4e1ffab5e8d20147b593058c068dcc17b5
Docker label: sha-411b0d4
nvidia-smi:
Wed May  3 08:26:43 2023
   +-----------------------------------------------------------------------------+
   | NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
   |-------------------------------+----------------------+----------------------+
   | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
   | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
   |                               |                      |               MIG M. |
   |===============================+======================+======================|
   |   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
   | N/A   61C    P0    28W /  70W |   1947MiB / 15360MiB |      0%      Default |
   |                               |                      |                  N/A |
   +-------------------------------+----------------------+----------------------+
   |   1  Tesla T4            Off  | 00000000:00:05.0 Off |                    0 |
   | N/A   71C    P0    33W /  70W |   1947MiB / 15360MiB |      0%      Default |
   |                               |                      |                  N/A |
   +-------------------------------+----------------------+----------------------+

   +-----------------------------------------------------------------------------+
   | Processes:                                                                  |
   |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
   |        ID   ID                                                   Usage      |
   |=============================================================================|
   |    0   N/A  N/A      6854      C                                    1945MiB |
   |    1   N/A  N/A      6853      C                                    1945MiB |
   +-----------------------------------------------------------------------------+

Information

[X] Docker
[ ] The CLI directly

Tasks

[X] An officially supported command
[ ] My own modifications

Reproduction
Steps to reproduce:

Create VM on Google Cloud Platform (GCP) with 2 x NVIDIA T4 GPUs and Google, Debian 10 based Deep Learning VM with , M108, Base CUDA 11.0, Deep Learning VM Image with CUDA 11.0 preinstalled.

Start text-generation-interface with Docker

model=bigscience/bloom-560m
num_shard=2
volume=$PWD/../inference-data # share a volume with the Docker container to avoid downloading weights every run
name="text-generation-inference"
docker run --name $name --gpus all --shm-size 1g -p 8081:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:latest --model-id $model --num-shard $num_shard

Request with Curl

curl <IP_ADDRESS>:8081/generate \
    -X POST \
    -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":17}}' \
    -H 'Content-Type: application/json'

I get the followeing errors:
On the above curl command (ad 3):
{"error":"Request failed during generation: Server error: CUDA error: no kernel image is available for execution on the device\nCUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.\nFor debugging consider passing CUDA_LAUNCH_BLOCKING=1.\nCompile with TORCH_USE_CUDA_DSA to enable device-side assertions.\n","error_type":"generation"}
On the terminal where I executed the inference (ad 2):
2023-05-03T08:47:01.231817Z ERROR shard-manager: text_generation_launcher: Method Prefill encountered an error.
Traceback (most recent call last):
  File "/opt/conda/bin/text-generation-server", line 8, in <module>
    sys.exit(app())
  File "/opt/conda/lib/python3.9/site-packages/typer/main.py", line 311, in __call__
    return get_command(self)(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/typer/core.py", line 778, in main
    return _main(
  File "/opt/conda/lib/python3.9/site-packages/typer/core.py", line 216, in _main
    rv = self.invoke(ctx)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/typer/main.py", line 683, in wrapper
    return callback(**use_params)  # type: ignore
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/cli.py", line 58, in serve
    server.serve(model_id, revision, sharded, quantize, uds_path)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 155, in serve
    asyncio.run(serve_inner(model_id, revision, sharded, quantize))
  File "/opt/conda/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 634, in run_until_complete
    self.run_forever()
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 601, in run_forever
    self._run_once()
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 1905, in _run_once
    handle._run()
  File "/opt/conda/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/opt/conda/lib/python3.9/site-packages/grpc_interceptor/server.py", line 159, in invoke_intercept_method
    return await self.intercept(
> File "/opt/conda/lib/python3.9/site-packages/text_generation_server/interceptor.py", line 20, in intercept
    return await response
  File "/opt/conda/lib/python3.9/site-packages/opentelemetry/instrumentation/grpc/_aio_server.py", line 82, in _unary_interceptor
    raise error
  File "/opt/conda/lib/python3.9/site-packages/opentelemetry/instrumentation/grpc/_aio_server.py", line 73, in _unary_interceptor
    return await behavior(request_or_iterator, context)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 63, in Prefill
    generations, next_batch = self.model.generate_token(batch)
  File "/opt/conda/lib/python3.9/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/causal_lm.py", line 516, in generate_token
    logits, past = self.forward(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/bloom.py", line 229, in forward
    outputs = self.model.forward(
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 956, in forward
    transformer_outputs = self.transformer(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 816, in forward
    outputs = block(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 456, in forward
    attn_outputs = self.self_attention(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 337, in forward
    context_layer, present, attention_probs = fused_bloom_attention_cuda.forward(
RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

 rank=0
2023-05-03T08:47:01.232129Z ERROR batch{batch_size=1}:prefill:prefill{id=0 size=1}:prefill{id=0 size=1}: text_generation_client: router/client/src/lib.rs:31: Server error: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

2023-05-03T08:47:01.255638Z ERROR shard-manager: text_generation_launcher: Method Prefill encountered an error.
Traceback (most recent call last):
  File "/opt/conda/bin/text-generation-server", line 8, in <module>
    sys.exit(app())
  File "/opt/conda/lib/python3.9/site-packages/typer/main.py", line 311, in __call__
    return get_command(self)(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/typer/core.py", line 778, in main
    return _main(
  File "/opt/conda/lib/python3.9/site-packages/typer/core.py", line 216, in _main
    rv = self.invoke(ctx)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/typer/main.py", line 683, in wrapper
    return callback(**use_params)  # type: ignore
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/cli.py", line 58, in serve
    server.serve(model_id, revision, sharded, quantize, uds_path)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 155, in serve
    asyncio.run(serve_inner(model_id, revision, sharded, quantize))
  File "/opt/conda/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 634, in run_until_complete
    self.run_forever()
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 601, in run_forever
    self._run_once()
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 1905, in _run_once
    handle._run()
  File "/opt/conda/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/opt/conda/lib/python3.9/site-packages/grpc_interceptor/server.py", line 159, in invoke_intercept_method
    return await self.intercept(
> File "/opt/conda/lib/python3.9/site-packages/text_generation_server/interceptor.py", line 20, in intercept
    return await response
  File "/opt/conda/lib/python3.9/site-packages/opentelemetry/instrumentation/grpc/_aio_server.py", line 82, in _unary_interceptor
    raise error
  File "/opt/conda/lib/python3.9/site-packages/opentelemetry/instrumentation/grpc/_aio_server.py", line 73, in _unary_interceptor
    return await behavior(request_or_iterator, context)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 63, in Prefill
    generations, next_batch = self.model.generate_token(batch)
  File "/opt/conda/lib/python3.9/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/causal_lm.py", line 516, in generate_token
    logits, past = self.forward(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/bloom.py", line 229, in forward
    outputs = self.model.forward(
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 956, in forward
    transformer_outputs = self.transformer(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 816, in forward
    outputs = block(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 456, in forward
    attn_outputs = self.self_attention(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 337, in forward
    context_layer, present, attention_probs = fused_bloom_attention_cuda.forward(
RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

 rank=1
2023-05-03T08:47:01.256038Z ERROR batch{batch_size=1}:prefill:prefill{id=0 size=1}:prefill{id=0 size=1}: text_generation_client: router/client/src/lib.rs:31: Server error: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

2023-05-03T08:47:01.258282Z ERROR HTTP request{otel.name=POST /generate http.client_ip= http.flavor=1.1 http.host=<IP_ADDRESS>:8081 http.method=POST http.route=/generate http.scheme=HTTP http.target=/generate http.user_agent=curl/7.74.0 otel.kind=server trace_id=521c45f73b082c371afe81dc431b8ff9}:generate{req=Json(GenerateRequest { inputs: "What is Deep Learning?", parameters: GenerateParameters { best_of: None, temperature: None, repetition_penalty: None, top_k: None, top_p: None, typical_p: None, do_sample: false, max_new_tokens: 17, return_full_text: None, stop: [], truncate: None, watermark: false, details: false, seed: None } })}:generate{request=GenerateRequest { inputs: "What is Deep Learning?", parameters: GenerateParameters { best_of: None, temperature: None, repetition_penalty: None, top_k: None, top_p: None, typical_p: None, do_sample: false, max_new_tokens: 17, return_full_text: None, stop: [], truncate: None, watermark: false, details: false, seed: None } }}:generate_stream{request=GenerateRequest { inputs: "What is Deep Learning?", parameters: GenerateParameters { best_of: None, temperature: None, repetition_penalty: None, top_k: None, top_p: None, typical_p: None, do_sample: false, max_new_tokens: 17, return_full_text: None, stop: [], truncate: None, watermark: false, details: false, seed: None } }}:infer:send_error: text_generation_router::infer: router/src/infer.rs:533: Request failed during generation: Server error: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

Expected behavior
Expected to get no error

Great. thanks! Should it work without GPUs (just CPU) this way as well?

Custom kernels won't be used on CPU, so you shouldn't have any issues there.


Stats: handle overflows

Kyo now has its own implementation of metrics introduced by https://github.com/getkyo/kyo/pull/409. As pointed out in the review, the implementation doesn't handle overflows when reporting deltas to exporters.
A solution for this issue must address this issue for both Counter and CounterGauge. I haven't implemented a solution for this problem yet but it seems we could detect the overflow and still infer the correct delta.

/bounty $100

/attempt #410

I'm not sure why this bounty is not showing up for reward on the algora dashboard.


[backport] Support Sphinx 2.0 and use absolute path to support the latest RTD

Backport of #7027

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit 630bba032651889bae36fd3b8412258e2a49c124, target branch v6) succeeded!


Dev Ops questions related to existing IIS configuration on Azure

Currently we're hosting under IIS 10 on Azure VM.  What's the transition to the modern Dev Ops process using node.JS? How do we manage security in the same way, for example? How do we tie Kubernetes to the same web server using IIS (we use web client HTML5 apps and .Net Core APIS)
Please provide a detailed article on the migration process from IIS to Kubernetes, or the process of using both in a CI/CD or simple web deploy scenario.

Check out the use case scenario resources here


Make python 3.9 the minimum

HA uses 3.9 as minimum

Codecov Report
Base: 85.18% // Head: 88.79% // Increases project coverage by +3.61% :tada:

Coverage data is based on head (486bb3f) compared to base (267fc61).
Patch coverage: 91.34% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #27      +/-   ##
==========================================
+ Coverage   85.18%   88.79%   +3.61%
==========================================
  Files           7        7
  Lines         324      357      +33
==========================================
+ Hits          276      317      +41
+ Misses         48       40       -8

Impacted Files
Coverage Δ

setup.py
0.00% <ø> (ø)

pytomorrowio/pytomorrowio.py
89.94% <90.90%> (+6.51%)
:arrow_up:

pytomorrowio/__init__.py
100.00% <100.00%> (ø)

pytomorrowio/const.py
92.17% <100.00%> (+0.20%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


docker: Set sticky flag on /scratch directories

In order to make /scratch generally usable, it needs to
have similar settings as /tmp.

travis == successfully: - sorry, openmicroscopy.system-monitor-agent was not found on...

As an aside idrsystems-playbooks is almost decoupled from the main infrastructure repo (e.g. it has a separate ansible.cfg and requirements.yml) so we might want to consider our policy on opening cross-directory PRs (or not).

Reverted.

Trying to get travis happy.

Try removing some of the roles from requirements? https://github.com/openmicroscopy/infrastructure/pull/263#issuecomment-295350467

Well, I had to add this one otherwise the playbook wouldn't run.

OK...we really need to decouple these directories :)

I know!

 [WARNING]: - openmicroscopy.omero-common was NOT installed successfully: - should now be unrelated. @manics : anything else?

Thanks

(I'd merge this but All required status checks on this pull request must run successfully to enable automatic merging.)

We gotta figure out a fix for https://github.com/ansible/galaxy-issues/issues/259

Can we have logical branching in the requirements? i.e. we don't want system-monitor-agent if it's not an SLS docker host. At least for now.

What we've done elsewhere is to have multiple requirements files, e.g. one for with "openmicroscopy." prefixed and one without.


Design Interpreter Value Caching

Summary
Though Truffle provides significant support for speeding up computations via reuse of cached values, Enso wants to go one step further. When working with huge amounts of data, it is very important that only the minimum amount of recomputation is done when your program is changed.
To this end, we want to design support for Intermediate Value Caching (IVC) into the Enso interpreter. This is a combination of a value cache on every evaluated node that stores its value, and a clever eviction strategy that leverages dependency information (later enhanced by type information) to determine the minimum portion of the computation that needs to be run again.
Value
Implementing IVC ensures that Enso remains as interactive as possible even in the context of the largest workloads.
Specification

Design the caching strategy and how it integrates with the existing interpreter.
Determine the best strategy for performing data-dependency analysis. This analysis is useful for determining the minimal program subset that needs recomputing.
Design the eviction strategy, as well as the structures which store the relevant data for performing this dependency analysis.
Design support for evaluation of arbitrary Enso code on the values in the cache, allowing lazy visualisations, and other useful functionality, to be implemented on top of it.
Implement IVC into the Enso interpreter, using benchmarks to ensure that it causes no regressions in general performance.

Acceptance Criteria & Test Cases

The Enso interpreter is Intermediate Value Caching enabled.
The caching is rigorously tested to ensure that it doesn't result in erroneous results.
It is also rigorously benchmarked to show that it produces no regressions in the uncached case, and results in appreciable speedup in the cached case.

Superseded by further planning.


desktop command mods and fixes

In the course of modifying the desktop command so that I could invoke it from within my Java application I found a few bugs:
1) a place where a null result wasn't tested for before use (in taskBarButtonListener method).
2) incorrect handling of popup menu activation detection (mousePressed method...note that mouseReleased was added and also an isPopupTrigger test method called maybeShowPopup).
In addition changes were made to allow the desktop to be invoked and dismissed and reinvoked multiple times.
I've attached the modified command script (called pedesktop.bsh). The places I changed (both for application invoking and for error corrections are marked with a //** comments.
Hope this is of some help to you.
Regards,
Gary Nunes
Reported by: gary_nunes
Original Ticket: "beanshell/bugs/278":https://sourceforge.net/p/beanshell/bugs/278

Test script
pedesktop.bsh.txt


(master renames to main) Sync main branch to master

I renamed the default branch. I am adding this CI job to automatically sync back the changes to the master branch.

Will this change how I submit PRs? Currently I clone upstream/master and submit a PR for that branch, should I now submit to main?


Standalone executable that loads wasm module compiled from Assemblyscript sample

Hello,
Is it possible to use the Embedding API to create a standalone binary for linux that loads a wasm module compiled from assemblyscript using your provided wamr-app-lib ? My CMakeLists.txt file is similar to this.
Would setting WAMR_BUILD_APP_FRAMEWORK=1 suffice?
Is it possible to use https://github.com/jedisct1/as-wasi? or do I need to stick to the wamr-app-lib?
Thanks

@rahul-thakoor To support the app-lib, please also add:
set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE)

Is it possible to use https://github.com/jedisct1/as-wasi? or do I need to stick to the wamr-app-lib?
Yes, we can use it. No need to stick to wamr-app-lib

Thanks for the quick response. I used
set (WAMR_BUILD_APP_FRAMEWORK 1)
set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE)

but I keep getting
[02:05:59:433 - 2ACF0B80]: failed to check signature '($*)i' and resolve pointer params for import function (env printf)

[02:05:59:439 - 2ACF0B80]: warning: fail to link import function (env, printf)

Should I be registering the native symbols manually? is there a quick way to do this?
I am trying to customise the basic sample app to load the wasm module compiled from assemblyscript.
Thanks

Our new register native symbol API has enabled automatic signature checking, and printf is defined as ($*)i, which means two args are required. Seems the printf imported by assemblyscript doesn't match this signature.
If you are using the console lib from assembly-script/wamr_app_lib, PR #215 will solve the problem.
Thanks

thanks that resolved the issue for the printf import
However, when using latest version of assemblyscript and as-wasi which now uses wasi_snapshot_preview1, it fails with:
warning: fail to link import function (wasi_snapshot_preview1, fd_write)
i'm able to use it by using older version where as-wasi

The wasi-sdk currently import wasi APIs from wasi_unstable, so we use wasi_unstable as the module name.
As a workaround, you can change the wasi_unstable into wasi_snapshot_preview1 in wasm_native.c
#if WASM_ENABLE_LIBC_WASI != 0
    n_native_symbols = get_libc_wasi_export_apis(&native_symbols);
    if (!wasm_native_register_natives("wasi_snapshot_preview1",
                                      native_symbols, n_native_symbols))
        return false;
#endif

I haven't tested it on as-wasi library, but it should work as long as the symbol name and signature of the wasi API imported by as-wasi is not changed.
Hope this can help you.
Thanks

Thanks a lot for the prompt and detailed response. I will try it. Cheers

@rahul-thakoor the wasi symbols array with module name "wasi_snapshot_preview1" and "wasi_unstable" are both registered to runtime by default, so you don't need to register it again in wasm_native.c now.

awesome! thanks a lot.

Seems that we can close the issue.


Sometimes receive invalid peer certificate: BadSignature in certain environments

This is probably a dependency issue.  However, users are encountering this and we either need to figure out the root cause and fix it (via updating dependencies, changing configuration) or provide guidance on how to work around it.

Current Status:
I'm able to reproduce this by using any aarch64 linux instance.
The source of the error appears to be rustls (or possibly ring) failing to verify the AWS server's TLS signature
The TLS signature is valid
Building lance from source on the system makes the error go away
My best guess is the error is originating somehow from the way we are cross-compiling for aarch64.  However, I manually built rultls, cross compiled on my x86_64 ubuntu system, with the ghcr.io/rust-cross/manylinux2014-cross:aarch64 docker container that maturin is using, and that appears to work correctly (I did need to set the CFLAGS_aarch64_unknown_linux_gnu variable like we do in GHA) so I'm not certain.
I'm going to see if I can build a wheel with the 2_28 manylinux image and see if the same error happens.

I've confirmed that building a wheel with 2_28 manylinux does work correctly.

Closed by upstream: https://github.com/lancedb/lance/pull/1737


[ENH] Prettier; Updating yaml formatting to play nicely w/ yamllint, .editorconfig, and prettier. (Warning: compromises made)

This PR updates the options passed to the yamllinter to make it more amenable to code formatting tools such as prettier. Additionally settings relating to formatting are stored in an .editorconfig file manage prettier and text editor behavior.
One side effect of this is to eliminate the non-nestedness that was enforced in our 2-space formatted yaml files, e.g.:
MyCoolExample:
  CheckOutThisCooList:
  - a
  - b
  - c

is now displayed as:
MyCoolExample:
  CheckOutThisCooList:
    - a
    - b
    - c

Be horrified.

drive-by note --> if we merge "formatting/style" commits like this that touch many files, we may want to use a .git-blame-ignore-revs file, to keep our "git blame" clean. See e.g., https://github.com/bids-standard/pybv/blob/4af6bbab86e6151a3a64d759d4eca4a15e9b253a/.git-blame-ignore-revs#L1

If we include [git-blame-ignore-rev] in the commit messages for commits we want to ignore, we can use this to generate an ignore list for us:
git log --grep "\[git-blame-ignore-rev\]" --pretty=format:"# %ad - %ae - %s%n%H" > .git-blame-ignore-revs

Will look something like:
# Fri Jul 22 22:38:37 2022 -0400 -<EMAIL_ADDRESS>- STY: isort
7572472ccbaba85565e98bf1b5def0e6957a7d0d
# Fri Jul 22 22:26:02 2022 -0400 -<EMAIL_ADDRESS>- STY: blue
9911244fd3eed7b68f2f8688ff9c7ffe4bd5ad48

The nice thing about the file is, that GitHub parses it and applies it to the blame you can view in the web UI

Suggestions added per requests, additionally I abandoned the idea of adding this to actions and making it automatic, set up a make file instead.

I've managed to make all of your work look tiny: https://github.com/bids-standard/bids-specification/commit/b6eec94bb53218299f95eee9482ec5d29315f4f0


Progress disappeared from the map after the last update

Hi,
A lot of the challenges I had already completed are not checked anymore on my map, since today's update (I was working on the Bonfire: Search and Replace).
I originally had completed :

all the Waypoints up to Object Oriented & Functional Programming (included) (except the Gear up for success, which I think are new),
the Basic Algorithm Scripting Bonfires,
the Intermediate Algorithm Scripting up to the 16 (included), except for the 15.

The solutions to the missing challenges are not in my portfolio anymore, but I still have all the brownie points I won by completing them.
Quincy told us on Gitter to put up screencap, I'm not sure of what (since it's missing stuffs), so I hope this will do :

@Timelady7 thanks for posting this issue!
Closing as a duplicate of https://github.com/FreeCodeCamp/FreeCodeCamp/issues/3629 and https://github.com/FreeCodeCamp/FreeCodeCamp/issues/3630. You can continue further discussion there, thanks.

Please review the Guidelines for Contributing, thank you!.


⚠ Bofrost.be has degraded performance

In 7f7a88c, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1197 ms

Resolved: Bofrost.be performance has improved in 91e78a6 after 9 minutes.


Pointer._offset is private, but Array.cpointer takes an offset argument.

This is a contradiction in safety boundaries I noticed while working on a fix for how File handles writev calls that don't complete.
Pointer._offset, which allows you to get a relative pointer based on the current one, is private - it cannot be used outside of the builtin library.
In contrast, Array.cpointer accepts an offset argument that allows you to do the same thing, without any bounds checking, provided that your original pointer is coming from an Array.
If one is safe to expose, then the other should be as well. And vice versa.

I think this is a principle of least surprise bug.
I propose we make Pointer._offset public. The Array.cpointer with offset call is already used for writev processing in both TCPConnection and File, so we can't easily remove it. I think you're not really breaking memory safety as long as you can't actually access the memory without FFI.

Pointer._offset returns this->Pointer[A]:
  fun _offset(n: USize): this->Pointer[A] =>
    """
    Return a pointer to the n-th element.
    """
    compile_intrinsic

That's significantly more permissive than Array.cpointer, which returns Pointer[A] tag.
Having a Pointer[A] ref could allow the use of Array.from_pointer, etc. I think that's problematic?

Correct, yeah. I noticed that while working on this locally, but forgot to update the ticket.
In my local branch that "fixes" this, it keeps the current private function, but adds a new public function that returns a Pointer[A] tag.
How does that sound to you?

The issue ticket has the "needs discussion during sync" label because it's pending further discussion with @sylvanc.

Discussed this on today's sync call - @sylvanc is fine with this as long as we keep the private _offset: Pointer ref and add the public offset: Pointer tag.


Set Test result default page size to 10

What about 50? 10 is kind of small.

What about 50? 10 is kind of small.

I pulled 10 from the mocks  @hmyers-cms @katiealoisi thoughts on 50?

I pulled 10 from the mocks  @hmyers-cms @katiealoisi thoughts on 50?

We went w/ 10 because it's how many fit within an ipad viewport without scrolling but I'm not married to that number—happy to up it. We should also have a selector to change how many are showing, though it doesn't look like we've designed one yet

We went w/ 10 because it's how many fit within an ipad viewport without scrolling but I'm not married to that number—happy to up it. We should also have a selector to change how many are showing, though it doesn't look like we've designed one yet

Also fine with 50!

Also fine with 50!

Closing this as a duplicate. Captured the default page size in #554


Extract selection handling from iron-list

Fixes #32
Fixes #63
Closes #31
Notes:

selectedItem and selectedItems now readonly (which they effectively were also before)
the primitive keyboard navigation used through iron-list can't select rows anymore
tests incomplete

This change is

Reviewed 7 of 7 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Fixed convertYAMLToJSON to also support yaml files with just Newline …

Fixed convertYAMLToJSON() to also support yaml files with just Newline separators.

Thank you for your contribution @isc-tstolker !


test: Enable mutation tests on CI

Depends on: #142
Fixes: #78
This largely follows https://mutants.rs/ci.html and sets up incremental mutation tests on pull requests and full mutation tests on pushes. The full suite takes about half an hour on my laptop.

Thanks for reviewing all my pull requests! 😅

Thanks for reviewing all my pull requests! 😅

Heh, that wasn't too hard, though took a while because of other responsibilities, sorry about that and thanks again.


PostgreSQLQuery only supports updating one field and only one record when use 'ON CONFLICT'

    @classmethod
    def _build_insert_sql(cls, data):
        """
        :param data:
        :return:
        """
        assert cls.insert_table_name and cls.insert_fields
        table = cls.insert_table_name
        insert_fields = cls.insert_fields
        update_fields = cls.update_fields
        conflict = cls.insert_conflict
        returning = cls.returning
        is_constraint = cls.is_constraint
        q = PostgreSQLQuery.into(table).columns(*insert_fields).insert(*data)
        sql = str(q)
        if conflict:
            if is_constraint:
                sql += ' ON CONFLICT ON CONSTRAINT {}'.format(conflict)
            else:
                sql += ' ON CONFLICT ({})'.format(conflict)
            if update_fields:
                update_str = ",".join(map(lambda x: '"{field}"=EXCLUDED.{field}'.format(field=x), update_fields))
                sql += " DO UPDATE SET {}".format(update_str)
            else:
                sql += " DO NOTHING"
        if returning:
            sql += ' RETURNING "{}"'.format(returning)
        logger.debug(cls.__name__ + ": %s" % sql[:512])
        return sql

See also #332

If I understand the issue right, I think it is (now?) not an issue anymore.
I bumped into this because I also needed to update multiple fields in .on_update(), and I couldn't find pointers on how to do this in the readme documentation or API reference. But after some searching in the codebase, it turns out that just like you can chain multiple .insert() calls to insert multiple values, you can also chain multiple .do_update() calls to update multiple fields.
This test shows an example: https://github.com/kayak/pypika/blob/53a77eb9b5bda70fd0780b66a4f68daa14fe3682/pypika/tests/test_inserts.py#L310-L330
Unlike .insert(), it doesn't look like you can pass multiple field (& value) tuples to one .do_update() call though, I've tried.

fixed at  #374https://github.com/kayak/pypika/issues/374


how to update an etoys image?

I don't see the update button in the world and monticello package load does not seem to work

For now: MCMcmUpdater updateFromServer. I'll think about where that button should go.


Does not work in Firefox 104.0

When pressing the add-on button it writes at the bottom of the popup window "Error: An unexpected error occurred"

Thanks for reporting!
Firefox seems to cause issues for some users. Unfortunately, every time I try it myself, everything works.
Would it be possible for you to provide more details? Which Operating System do you use?
And if you're not afraid of using the Firefox debugging:
Can you visit your Firefox Debugging page: about:debugging#/runtime/this-firefox

Then click on "Inspect" for the extension.
Now make sure you have selected "Console" in the bottom area and open the browser extension.

In the console log you should now find the complete error message, including stack trace hopefully.

Windows 10 Enterprise
Version 1909

Thanks! This hopefully helps to narrow it down. I'll look into it soon.

Unfortunately, I could not narrow down where the error happened.
But I try to improve the error handling / reporting, so hopefully this gets better with the next release. Sorry for the problem!

Thank you. After re-installation on Firefox 104.0.1 the add-on works as expected.

Thanks for the update! I've updated the extension a few days ago, maybe this also fixed the issue.

Definitely this is your update that fixed the issue.
I mentioned Firefox 104.0.1 just for information.
Here is a console log

Thanks for the info! Then it was really the issue that I thought it would be - user setting loading. Now at least it will fall back and work anyway. Thanks!


DynamoDB Table batch_writer does not error on duplicate keys

Problem: moto doesn't throw an error when you attempt to write duplicate keys to a dynamodb table using the table batch_writer.
How to reproduce the issue: Batch write multiple same keys to a dynamodb table.
What I expect to happen: boto3 should throw an error when you attempt to batch_write with duplicate keys:
An error occurred (ValidationException) when calling the BatchWriteItem operation: Provided list of item keys contains duplicates
What actually happens: No error is thrown. All items are written, the last item overwrites any previous keys.
Versions:
moto - 5.0.4
boto3 - 1.34.73
botocore - 1.34.73
Installed using poetry, executed using python mocks.
I think that the same problem occurs with the batch_get method, but I haven't had a chance to double check

@bblommers I can take a look

Thanks for the effort @rafcio19 !


Replicator may not notice that the target db was re-created

If a target database is re-created, the replication job may not notice and fail to re-replicate all the data from the source.
This may happen if the replication job is idle, waiting to checkpoint. Then, right before the checkpoint, the target is recreated such that the checkpoint  is written on the new instance. The replication would then continue on from that checkpoint. without noticing that it's a completely new database instance. This may look to a user as if they lost all the data which had replicated to the old target instance but is now missing on the new instance.

One idea is to revive the instance_start_time and make it return something other than "0" again. Perhaps generate a random one, and save it in the shard doc. Maybe, just re-use the shard suffix unix time suffix which we already save in the shard doc?
Individual shards already have an instance_start_time, so we could also pick highest/lowest from the list of shards in the db. With multiple shards in 3.x on various nodes, this because a bit tricky. Cache them perhaps to avoid frequent fabric calls with a busy replication endpoint.
But this would allow us to re-use the the checkpoint_commit_failure check in the replicator:
https://github.com/apache/couchdb/blob/3.x/src/couch_replicator/src/couch_replicator_scheduler_job.erl#L847-L861
Another idea is to start returning a uuid in the db info endpoint (and possibly) like we do in main https://github.com/apache/couchdb/commit/19ae50815ca1016719f94a2757e08757b37fb949 (With an associated ML discussion https://lists.apache.org/thread/fjqg4m72xdo568136sdtnhodz2tzrvkl). Then, either return that alongside instance_start_time field in _ensure_full_commit response (or truncate it to the right size to make the old 64 bit instance start time, if want to be strict). Here we have the same issue with shards. We'd store it in the cached shard doc, or somehow pick up one of the uuids from the existing shards (say highest?).

The solution #3901 fixes the issues.
We can investigate if adding a uuid to db shards in the future, but closing the issue as fixed for now.


Remove Kdenlive adapter for split out

Summarize your change.
As part of the ongoing outlining process of contrib adapters, this removes the Kdenlive adapter from the core repository. As discussed with the Kdenlive team (of which @vpinon, the original author, is part), the code has been moved to the KDE GitLab https://invent.kde.org/multimedia/kdenlive-opentimelineio
Related #1378
See also discussion in #1390
NOTE: while removing the section about AAF from docs/tutorials/otio-plugins.md is theoretically not part of this PR, it is required to make the tests pass.

It's fantastic to see the adapter hosted at kde.org!
What's the nature of the test failure stemming from the AAF documentation block?

It is due to docs/tutorials/otio-plugins.md being auto-generated in sync with the code. The section about AAF was still in the doc, while the code as been (re)moved. See the first paragraph of docs/tutorials/otio-plugins.md:

This document is automatically generated by running the
autogen_plugin_documentation command, or by running make plugin-model.  It
is part of the unit tests suite and should be updated whenever the schema
changes.  If it needs to be updated, run: make doc-plugins-update and this
file should be regenerated.

This is the (shortened) output of the test:
======================================================================
FAIL: test_plugin_documentation (test_serialized_schema.PluginDocumentationTester)
Verify that the plugin manifest matches what is checked into the
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/julius/Programmierung/github/OpenTimelineIO/tests/test_serialized_schema.py", line 67, in test_plugin_documentation
    self.assertMultiLineEqual(
AssertionError: '# Pl[614 chars]\n- `opentimelineio/adapters/builtin_adapters.[17532 chars]\n\n' != '# Pl[614 chars]\n- `site-packages/otio_moviemaker_adapter/plu[2903 chars]\n\n'
[...]
 :
 The schema has changed and the autogenerated documentation in /home/julius/Programmierung/github/OpenTimelineIO/docs/tutorials/otio-plugins.md needs to be updated.  run: `make doc-plugins-update`

----------------------------------------------------------------------

I'm approving, but I'd like to get a response from more of the TSC since this is a structural change to the project.

Assuming no one has anything to add about the AAF issue, in the spirit of "separation of concerns", would it make sense to submit the AAF documentation fix up as a PR, and rebase this one on that?

Note this PR which moves the AAF adapter to its own repo:
https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1348

The AAF adapter is still in the repo, you shouldn't have to delete those docs.  The CI shows errors where that doc is missing:
https://github.com/AcademySoftwareFoundation/OpenTimelineIO/actions/runs/3164460045/jobs/5152761379#step:9:360
So I'm wondering if maybe some stale local state led to needing to delete it locally? They definitely should be there still.  I think everything else about this PR is good to go.

@jlskuz  I can replicate the docs behavior if I mess up my local install of pyaaf2.  Does python -c "import aaf2" report error?

Codecov Report

Merging #1438 (24eaed2) into main (531edf5) will decrease coverage by 7.72%.
The diff coverage is n/a.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1438      +/-   ##
==========================================
- Coverage   86.38%   78.65%   -7.73%
==========================================
  Files         201      201
  Lines       20854    21758     +904
  Branches     2298     4421    +2123
==========================================
- Hits        18014    17114     -900
- Misses       2244     2399     +155
- Partials      596     2245    +1649

Flag
Coverage Δ

py-unittests
78.65% <ø> (-7.73%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...elineio/opentimelineio-bindings/otio_anyVector.cpp
30.76% <0.00%> (-69.24%)
:arrow_down:

...entimelineio-bindings/otio_serializableObjects.cpp
24.54% <0.00%> (-67.03%)
:arrow_down:

...timelineio/opentime-bindings/opentime_bindings.cpp
33.33% <0.00%> (-66.67%)
:arrow_down:

...eio/opentimelineio-bindings/otio_anyDictionary.cpp
33.33% <0.00%> (-66.67%)
:arrow_down:

...imelineio/opentime-bindings/opentime_timeRange.cpp
32.39% <0.00%> (-61.36%)
:arrow_down:

...ineio/opentime-bindings/opentime_timeTransform.cpp
42.30% <0.00%> (-57.70%)
:arrow_down:

src/opentimelineio/stackAlgorithm.cpp
28.12% <0.00%> (-54.23%)
:arrow_down:

...lineio/opentime-bindings/opentime_rationalTime.cpp
45.04% <0.00%> (-48.79%)
:arrow_down:

src/opentimelineio/composition.h
40.74% <0.00%> (-48.15%)
:arrow_down:

...melineio/opentimelineio-bindings/otio_bindings.cpp
51.58% <0.00%> (-46.71%)
:arrow_down:

... and 60 more

Continue to review full report at Codecov.

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

@jlskuz I can replicate the docs behavior if I mess up my local install of pyaaf2. Does python -c "import aaf2" report a error?

That command worked just fine. It turned out that make tests and make doc-plugins-update got confused likely by the Kdenlive adapter and the AAF adapter I had installed separately from their new repos. After I uninstalled them and reset my OpenTimelineIO git clone, it worked properly.
I just force pushed the fix, it should be okay now.

Thank you!


Moving Monkey: Color of block "make mySprite gravity jump" should be yellow

Describe the bug
Moving Monkey: Color of block "make mySprite gravity jump" should be yellow
Steps to reproduce the behavior

Navigate to https://arcade.makecode.com/--skillmap#jungle
Moving Monkey---->Start
Click step9

Actual behavior
Color of block "make mySprite gravity jump" is blue
Expect behavior
Color of block "make mySprite gravity jump" should be yellow. Or categorize it in Sprites.
Screenshot

Additional context
1.OS: Windows11
2.arcade version: 1.12.21
3.Microsoft MakeCode version: 8.5.29

Will need to do some cross management to change this permanently in the extension. For now, I'm making the colors match and open the correct categories for Jungle.


[ChatGPT] ...

Extension
https://www.raycast.com/abielzulio/chatgpt
Description
error 401
Steps To Reproduce
mac os Sonoma
Current Behaviour
No response
Expected Behaviour
No response

Having the same issue.

UPDATE: I created a new API in my OpenAI account and used it to update my Raycast ChatGPT ext. Now it is working as expected.

UPDATE: I created a new API in my OpenAI account and used it to update my Raycast ChatGPT ext. Now it is working as expected.

i am using also new API

UPDATE: Today i get a new message that "you have reached your APi limit: please upgrade to pay as you go"


can't access the link of dataset

Dear Ms. Xuewen Yao,
My name is Dinh Van Y, and I am a student at VietNam National University.
With particular interest, I read your article. Now, I'm doing research in a similar field but lack a reputable database. I linked to the dataset, you shared in the paper, but I could not access it. So I wish Ms could share the dataset for me to do my research.
I promise to only use the data for research purposes and cite the full resources.
Thank Ms very much in advance.

Hi
We share our data through HomeBank (https://homebank.talkbank.org/access/). In order to get access, you need to have HomeBank membership (https://homebank.talkbank.org/membership.html). The process of gaining membership is relatively simple and straightforward.
Thanks,
Xuewen


OCILIB 4.5.2 unable to read unicode data from database

OS: Ubuntu 18.04 64 bit
OCILIB version: 4.5.2
configured as:
./configure --with-oracle-headers-path=/usr/include/oracle/12.2/client64/ --with-oracle-lib-path=/usr/lib/oracle/12.2/client64/lib  CFLAGS="-O2 -m64"
Code on test.c :
`
#include "ocilib.h"
int main(int argc, char argv[])
{
OCI_Connection cn;
OCI_Statement* st;
OCI_Resultset* rs;
OCI_Initialize(NULL, NULL, OCI_SESSION_DEFAULT);

cn = OCI_ConnectionCreate("<IP_ADDRESS>/orcl", "testfororacle", "oracle", OCI_SESSION_DEFAULT);
st = OCI_StatementCreate(cn);

OCI_ExecuteStmt(st, "select user_id, user_name from users");

rs = OCI_GetResultset(st);

while (OCI_FetchNext(rs))
{
    printf("%i - %s\n", OCI_GetInt(rs, 1), OCI_GetString(rs,2));
}

OCI_Cleanup();

return EXIT_SUCCESS;

}
`
compiled using: gcc test.c -o test -L. -locilib
user_id shows the number as intended, but username shows correctly for english character but shows ???? for unicodes (hindi) charecter. So what do i need to change so as to get the unicode characters too ?

Hi,
OCILIB supports ANSI and Unicode. Check the related section of the documentation.
If you want to stick toOCI_CHARSET_ANSI and want to use then UTF8, then use NLS_LANG.
Otherwise use OCI_CHARSET_WIDE.
Best regards,
Vincent

Closing issue as no news from OP after 3 months.


ARROW-7113: [Rust] Add unowned buffer.

Currently rust Buffer always assume that the memory passed to it is owned by itself, and frees the memory when Buffer is dropped. This is inconvenient when used in cross language environments such as jni.

@paddyhoran @andygrove @nevi-me @sunchao Please help to review.

The build failure is caused by deprecating the method. If we agree on this method, I will continue to remove usage of this deprecated method.

@sunchao Please help to review, I have fixed comments.


Changes to Margin Horizontal and Vertical

Both the properties, marginVertical and marginHorizontal do need single quotes, since their value is going to be a number.

fixed


OIDC Error message: "Not authenticated. Use the key on the server index page."}

Hi there,
Ive been trying to deploy ga4gh with oidc auth enabled through our own OIDC provider. However, I am encountering the following error after linking ga4gh server with our OIDC auth service
ga4gh server message upon successful oidc auth
{"errorCode":<PHONE_NUMBER>, "message": "Not authenticated. Use the key on the server index page."}

 I have tested this deployment against another sample web app and the authentication functions as expected.
Can anyone give me an idea where exactly is ga4gh giving me trouble regarding auth?
[Tue Jul 12 18:35:48.975621 2016] [wsgi:warn] [pid 6:tid<PHONE_NUMBER>97344] mod_wsgi: Runtime using Python/2.7.11+.
[Tue Jul 12 18:35:48.977661 2016] [mpm_event:notice] [pid 6:tid<PHONE_NUMBER>97344] AH00489: Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/2.7.11+ configured -- resuming normal operations
[Tue Jul 12 18:35:48.977682 2016] [core:notice] [pid 6:tid<PHONE_NUMBER>97344] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'

Thanks for the bug report @rudyzhou2. Is there a particular reason for not using https for the callback URL? I would have thought that using https from end-to-end would be a wise security precaution for any deployment using authentication. Otherwise, isn't it possible for an attacker to steal credentials?

Hi Jerome,
Oauth2 only requires https on the authentication server end, which I have enabled. I could use https for the callback url but Id have to make some changes as to how the containers are exposed to each other and have to setup apache redirect, this is in my plans once I can get basic authentication working.
Upon examining the frontend code, it seems like I am getting issues at oidcCallback function where flask session state does not match session state responded by the auth server. Looks like I may have to try a different OIDC provider to see if this issue persists. Will report back.

Oauth2 only requires https on the authentication server end, which I have enabled. I could use https for the callback url but Id have to make some changes as to how the containers are exposed to each other and have to setup apache redirect, this is in my plans once I can get basic authentication working.

This sounds good, but I'm curious: why not have it HTTPS only the whole way through? This would seem like the simpler (and safer) option.

Hi Jerome,
Mainly because for dev purposes, I just wanted it to work without worrying about tls and certificates yet. Would be great if you can point me to some documentation on how to add tls to ga4gh server, is it a simple apache redirect from 443 to 80?
Cheers,
Rudy

I think it'll be easier to tackle the https now rather than later. First you need to set up Apache to support https. I think I followed this guide to use a self-signed cert. This is a terrible idea for production use, but it's enough to get started with. You might want to look into let's encrypt as a better alternative (I haven't tested this).
Once you have a HTTPS site up and running, you just edit the config file (e.g. /etc/apache2/sites-enabled/default-ssl.conf) to include the same WSGIDaemonProcess stuff as the standard config. Once that's done, everything should be running over HTTPS.

o i see, sounds like a great idea! I will implement https and see if resolves the issue.
Upon more debug, it seems like the issue originates  from flask session state != state generated by OIDC provider, raising the not authenticated exception... Unfortunately I have no idea as to why the 2 states different though I could see the first login request from flask generates a random 24 character code., and access token request with oic. oauth2 successful by manually POSTing the oidc server. Gonna dig into it a bit more tomorrow.

Hi Jerome,
So applying HTTPS did not fix the issue; but I finally ended up finding out the issue after digging through the code and the OIDC providers I have used...
It seems that when everyone says that they are implementing OpenID connect compatible workflows, there is always things that is "non-standard" and causes incompatbility...
I tried 2 OIDC providers so far, Dex from CoreOS (Access token API not yet implemented) and UAA from Cloudfoundry (OpenID token appends number sign (#) tag right infront of POST result, which is non Werkzeug and HTTP GET request will ignore anything after (#) sign, so the flask server cant even receive this information after the login redirect...). Neither works, however, google does work while facebooks fail as testing (same issue as Cloundfoundry UAA).
My colleage told me he has a working OIDC provider using reference OpenID standard which has been tested working but he doesnt like it (MitreID Connect). I may likely just end up rewriting the authentication bit in the frontend server to make authentication Oauth2 compliant at least...
You can close this ticket in the main time!
Cheers,
Rudy

Thanks for the update @rudyzhou2. This is all a bit disappointing I have to say... do you think we would need to have to explicitly support different OIDC providers and have different code paths for each? Thanks very much for looking in to this and telling us about it!

Hi Jerome,
The current authentication workflow in ga4gh is via OpenID connect, which is giving us issues. Pyoidc seems to support Oauth2 as well so Im probably gonna see if I can rewrite the OIDC ga4gh authentication workflow to use Oauth2 standard instead of OpenID Connect.
The end result should be the same since a random session token generated by ga4gh server will be associated with an access token and be used to check for authentication success by ga4gh. The good thing is at least authentication is fairly modular in ga4gh so hopefully the changes I make wont affect the API and the client tool...
If pyoidc doesnt work, I may try using Flask-Rauth or Flask-Oauth packages instead and see if that can help with the issue.
Cheers,
Rudy

Hi Jerome,
I am very happy to report that I finally made some significant progress with regards to ga4gh authentication.
I ended up implementing OAuth2 instead of OpenID Connect workflow with rauth, and it seems to be working on my test flask server, the next task for me is probably to just rewrite the entire ga4gh authentication code to use rauth instead of pyoidc/oic.oauth2. Since the authentication code is quite independent, thank god it probably wont affect the API itself.
I still dont fully understand why oic.oauth2 does not work, but it could be related to the fact that it seems to use 'state' as part of its workflow during access token request, causing no grant found for state 'xxx' issue.
Will report back once I rewrite the thing and finally get ga4gh authentication working!

Great, thanks @rudyzhou2! Do you think it would be possible to structure what you're doing as working in parallel with OpenID Connect support rather than replacing it? For example, by having a different callback URL for OAuth2? It would be great if we could merge your work back in so that we can support OAuth2 properly, given that OIDC is such a pain to get working with providers other than Google!

Hi Jerome,
This is a great idea! Will make my work modifying the flow significantly easier as well! Will report back once I have a working prototype!
Cheers,
Rudy


Retain for stable graph

Lets try this again.

Hi, to be frank with you here I'd expect the PR to explain the thoughts behind the change.
I disagree with adding a method that does not have the same signature as the corresponding one on Graph.

It's my first public pull-request so I might do some things the wrong way. As for actual content:
I see your point. And considering this signature corresponds to the std::vec::Vec signature this should probably be reverted. I'll remove the output vector.
if you're curious for my thoughts:
First off, consider a non-clone node type. You can move them in the graph-node and when you remove them you get them back. If you don't use them they get dropped. However if you want to remove a lot at the same time. They either get destroyed or you need to remove them one-by-one (which is quadratic since you don't have an unsafe NodeIndex iterator.
I'd consider the Vec and Graph signature insufficient. However this needs to be measured against other concerns (which I did not do!):

What happens if the allocation is not needed, can this be optimized away?
How consistent is this signature?
What is the cost of working around it? (Fixed by Rc or Option + take)

StableGraph and Graph should have the same interface where it's possible. It may be insufficient but having the interfaces mismatch only means it's a halfway done API transition: one or the other will need to change to match, otherwise the library is a mess. There is no trade off here IMO; it's about fixing the signature or starting to plan the name and signature of the new API.
From your message it sounds like there is no pressing use case behind the choice to return a Vec, and then I think the choice of design is simple (don't return the Vec).
(We have the benefit that removing nodes in sequence is not quadratic with the stable graph, since nodes don't shift. Regular Graph can achieve this too by removing them in reverse order, which is how Graph::retain_nodes is implemented.)

To be sure: the tests fail because of an update to nightly. I think this is a compiler bug regarding scope. I opened an issue rust-lang/rust#40235
use petgraph::graph::node_index as n;
...
#[test]
fn filtered_post_order() {
    ...
    let mut dfs = DfsPostOrder::new(&gr, n(0));
    let f = NodeFiltered(&gr, map);
    while let Some(n) = dfs.next(&f) {
        po.push(n);
    }
    assert!(!po.contains(&n(1)));
}

Thank you! I'm sorry for the delay. I'll try out the squash merge button, then I don't have to ask you to do the squash.. See you on the other side..

Looks like it worked!


Performance loss when using iGibsonEnv?

Hey,
Iam looking for ways to improve the performance of my code and one thing I was wondering about, would it be faster using Simulator+ Scene import (+ render "seg" and "depth") manually as opposed to using the iGibsonEnv class ?
Thanks :)

yes, this may accelerate simulation! We do some extra processes within iGibsonEnv. The most important ones, the update of extended states (e.g., temperature, dirt level, wetness level...)., and the checking of logic predicates (is something on top of something? is something cooked?...). These are necessary for example for our BEHAVIOR tasks, which are defined in logic space.
If you do not need those, you may accelerate things without losing any relevant features.
We may consider a "kinematics-only" version of the environment in the future for cases like yours.


Broken md link

In the section "Onboarding devices into device management", last paragraph, the link is broken:
Follow the [With devices onboarded into Microsoft Defender for Endpoint procedure](endpoint-dlp-getting-started.md#with-devices-onboarded-into-microsoft-defender-for- endpoint)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1e0ac0e1-6f08-2f8b-10c7-a967e53886f8
Version Independent ID: f510237f-0ec9-d266-3ec6-0ad6b49e2522
Content: Get started with Microsoft 365 Endpoint data loss prevention - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/endpoint-dlp-getting-started.md
Service: o365-seccomp
GitHub Login: @chrfox
Microsoft Alias: chrfox

@brenle Thank you for your feedback. It was linking back to the same document. I have removed the reference link via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/3518
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @brenle Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Error getting module source

When trying this out on ipywidgets, I'm getting this error:
TypeError: dependencyTemplates.get is not a function
    at doDep (/[path]/ipywidgets/labextension/node_modules/webpack/lib/NormalModule.js:136:38)
    at Array.forEach (native)
    at doBlock (/[path]/ipywidgets/labextension/node_modules/webpack/lib/NormalModule.js:151:22)
    at DependenciesBlock.NormalModule.source (/[path]/ipywidgets/labextension/node_modules/webpack/lib/NormalModule.js:186:2)
    at JupyterLabPlugin._parseModule (/[path]/ipywidgets/labextension/node_modules/jupyterlab-extension-builder/lib/plugin.js:115:26)
    at /[path]/ipywidgets/labextension/node_modules/jupyterlab-extension-builder/lib/plugin.js:54:36
    at Array.forEach (native)
    at /[path]/ipywidgets/labextension/node_modules/jupyterlab-extension-builder/lib/plugin.js:48:27
    at Array.forEach (native)
    at JupyterLabPlugin._onEmit (/[path]/ipywidgets/labextension/node_modules/jupyterlab-extension-builder/lib/plugin.js:43:28)

In debugging this, I see that line https://github.com/jupyter/jupyterlab-extension-builder/blob/master/src/plugin.ts#L137 has a call source(), but that function in webpack, https://github.com/webpack/webpack/blob/v1.13.2/lib/NormalModule.js#L119, requires some arguments that get used when there are dependencies.
This is using https://github.com/ipython/ipywidgets/pull/727 (cloned to be sibling of the jupyterlab repo, and then running npm run build in the ipywidgets/labextension directory.

Changing the javascript of https://github.com/jupyter/jupyterlab-extension-builder/blob/master/src/plugin.ts#L137 to mod._source.source() gets rid of the error, but there still seems to be something wrong with the generated bundle - the requires don't use the jupyter require and aren't mangled. I'll keep digging...

Very weird, but I tried from a clean slate, and things seemed to work fine. Closing.

I think this is a matter of whether the cached source was availabke in that function or not.  We can either call the private _source() or provide the proper arguments to source().  The first two are attributes of the compilation .


Show info on screensaver

Goodmorning
It would be a nice feature show a personalized info like a sensor value, etc on a screensaver
thanks

Maybe, but instead of sensor, we could make something that shows 2-3 lines of text and user can post using MQTT whatever they want to display.   Someone needs to work on this feature though.


Use Generator Expressions Instead of List Comprehensions

In Python, when we use list comprehensions, it's like we've created the entire pile of apples and asked the interpreter to hold onto it. Sometimes, a better practice involves using generator expressions, which create iterators that yield objects one at a time. For large data sets, this can turn a slow, memory-intensive operation into a relatively fast one. What do you think?
Using generator expressions instead of list comprehensions can lead to better performance. This is especially true for functions such as anywhere it's not always necessary to evaluate the entire list before returning. For other functions such as max or sum it means that the program does not need to store the entire list in memory. These performance effects become more noticeable as the sizes of the lists involved grow larger.
This codemod replaces the use of a list comprehension expression with a generator expression within certain function calls. Generators allow for lazy evaluation of the iterator, which can have performance benefits.
The changes from this code look like this:
- result = sum([x for x in range(1000)])
+ result = sum(x for x in range(1000))

References:

https://pylint.readthedocs.io/en/latest/user_guide/messages/refactor/use-a-generator.html
https://docs.python.org/3/glossary.html#term-generator-expression
https://docs.python.org/3/glossary.html#term-list-comprehension

@all-contributors please add @denniszelada for code


Introduce menuxconfig (try 2)

Follow on from https://github.com/ulfalizer/Kconfiglib/pull/58
Introduce a variant of Sconf (https://github.com/CoryXie/SConf) which
provides an UI based option for projects that are a bit more UI
centric. Just tkinter dependency, and works on python2 and 3.

Updated about:

Updated help:

Signed-off-by: Nishanth Menon<EMAIL_ADDRESS>

Sorry, didn't notice the messages in the old PR until now. :)
Will take a look a bit later.

Sorry for the delay! Should take a look next week at the latest.

@ulfalizer Sorry for the delay, been a hectic few months at work. will look at this in the next few weeks.

@nmenon
No problem.
Just started looking into a tkinter-based menuconfig myself. Some other people have been requesting it too (EE types seem to be anti-command-line ;).
I'll give credit if I reuse something.

Coming along. Still a bunch of minor stuff to implement, and polishing to be done.
The (clickable) images are just placeholders from some random GIF pack I found. Will need images for [ ], [*], <M>, etc. I should probably find someone who knows how to draw. :P

This does look awesome :) Thanks @ulfalizer

Coming along. GUIs are so much work...
The menuconfig.py nits are for stuff I discovered as I go.

Almost done now... phew. See guiconfig.py in the guiconfig branch.
It's run in the same way as the terminal menuconfig (python2/3 guiconfig.py [Kconfig]). Testing would be very much appreciated, as I've only tested it on Linux so far (but I have Windows as well). Tell me if you find stuff you think could be improved in the interface too.
The icons are still super-ugly placeholders (and not even square... should be 16x16).

If you know someone who can draw nice icons (I can't) at Texas Instruments, you could hit me up with them btw. :)
Another guy already volunteered (though I don't know if he's still up for it), so there's some risk of duplicate work though.

@ulfalizer Thanks for the awesome work.. will try to give it a shot. I put a word out in TI's internal list + passed on the message on fediverse circles I am on https://linuxrocks.online/@nm/101989121364054319

@nmenon
Thanks for passing it on!
Here's some design ideas I had earlier btw:

Added code for setting the icon (along with an ugly placeholder).
Later on, all the .gifs will be embedded in guiconfig.py (maybe with a flag to load them as files instead), so that you don't have to carry a gazillion .gifs around.

I'll try to whip up some not-too-crappy looking icons in Inkscape. I remember it being pretty nice.

@nmenon
I've now pushed out a release with the GUI menuconfig (guiconfig.py). See commit https://github.com/ulfalizer/Kconfiglib/commit/9be6b7b91487470bd15895184c500a4771edd0c0 and the updated README.
Tell me if you spot any issues or have any suggestions/annoyances.

This PR is no longer relevant. Thanks @ulfalizer


Typescript definitions of IPublicClientApplication.getActiveAccount and IPublicClientApplication.logout do not match

Library

[ ]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[x]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[x]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Framework

[ ] Angular
[ ] React
[ ] Other

Description
Error Message
Type 'AccountInfo | null' is not assignable to type 'AccountInfo | undefined'.   Type 'null' is not assignable to type 'AccountInfo | undefined'.ts(2322)
MSAL Configuration
Not providing this, as it has no bearing on the bug!
Reproduction steps
This is a super simple issue. The definition of IPublicClientApplication.logout has its account key defined as AccountInfo | undefined, while the return type of IPublicClientApplication.getActiveAccount is AccountInfo | null. It seems like these two signatures should match, so that you can do the following:
() => instance.logout({ account: instance.getActiveAccount() });

Instead of having to do this:
() => instance.logout({ account: instance.getActiveAccount() ?? undefined });

Obviously not a game-breaker, but seems like a pretty simple QOL change.
Expected behavior
Identity Provider

[x] Azure AD
[ ] Azure B2C Basic Policy
[ ] Azure B2C Custom Policy
[ ] ADFS
[ ] Other

Browsers/Environment

[x] Chrome
[ ] Firefox
[ ] Edge
[ ] Safari
[ ] IE
[ ] Other (Please add browser name here)

Regression

[ ] Did this behavior work before?
Version:

Security

[ ] Is this issue security related?

Source

[ ] Internal (Microsoft)
[x] Customer request

@tcc-sejohnson Thanks for opening this! This is definitely something we can take a look at. I will try to push a fix for this shortly.

@pkanher617 Awesome! There are a few of these I've noticed. I'll see if I can catalogue them as I come upon them.


Trivial: Remove unused static function.

@vinniefalco
Causes warnings!

wut...dafunk is __WXMSW__?
https://wiki.wxwidgets.org/WxMSW_Issues
err....wxwidgets...this code is bizarre, nuke it.

If we can fold this in with something else it would be ideal.


[DNM] *: remove lifetime of snapshot

Remove lifetime of snapshot to make code more clean and make it easy to merge snapshot generation into snapshot manager later.
@ngaut @siddontang @disksing PTAL

LGTM

LGTM


add Kayak paper

Uploading Kayak paper. Fixes #33

You forgot to include a new conference definition in publications/index.md

Adding a new conference now. I closed my last PR, and can not reopen it so I had to create a new PR (even though I had force pushed).


Shouldn't users_info also return the "user_info" data inside "custom_data" dict?

I am trying to retrieve information of the users currently online in a chat room (users subscribed to a pusher channel).
When a user subscribes to the channel the following info is sent to pusher from the Django server:
channel_data
{
    'user_id': socket_id,
    'user_info': {
        'public_name': profile.public_name,
        'username': profile.username
    }
}

auth_response = pusher_object.authenticate(
    channel=chat_channel,
    socket_id=socket_id,
    custom_data=channel_data
)

I was expecting to be able to retrieve this data, also from my Django server. But the only method I see in this library is Pusher::users_info which only seems to fetch the a dictionary containing the user_id of each subscribed user. Is there any way to retrieve also the user_info for each user? whats the reason for including it in the authenticate method if not?

hi @diegopau
Are you still experiencing this error?
This error coincides with some issues we had on the service. See https://status.pusher.com/incidents/368yzqsk13xy

It is not related with this. I don't consider this an error, I am just asking about the implementation of both Pusher protocol and the python library. Can you confirm me if there is a way to retrieve the "user_info" dictionary, inside "custom_data" of each subscribed user in a presence channel? I am only able to retrieve the "user_id" field inside "custom_data" using Pusher::users_info, but not what is inside "user_info" (which is a python dictionary).

Hi @diegopau
No, it only returns the user ids. It's contacting this endpoint https://pusher.com/docs/rest_api#method-get-users
The idea is that you attach custom data to the user when you authenticate him/her so that it's visible on the client-side. It is assumed that you already have this data store on the server side.
I hope that helps,
Alex

@topliceanu thanks for the info. Makes sense, I am using now the user_id to get the rest of the data on the server side. I assume then that the custom data can be retrieved with any of the client libraries available.
I am closing the issue as it all seems clear now!

@diegopau Yes, at the very least the user data is available on all supported client libraries, I'm not sure about the others. You can see a list of pusher libs here: https://pusher.com/docs/libraries


[15.0] ISPN-16670 Retry server failed on client after timeout

https://issues.redhat.com/browse/ISPN-16670

Thanks, @wburns! Integrated into 15.0.x.


Jumping out of water

I've noticed that water is treated like air in terms of how many jumps you get.    Should it be treated more like ground?

Hi, sorry for the super-late reply. The easiest way to tweak stuff like this would be to override the movement component. Not by forking noa and editing it I mean, but at runtime by removing the default component and replacing it with your own. To do this safely just make sure you add the new component to any entities that had the old one - I do this thusly:
function overwriteComponent(noa, compName, compDef) {
	// list of ids having the old component
	var ids = noa.ents.getStatesList(compName).map(function (s) { return s.__id })
	// nuke old component
	noa.ents.deleteComponent(compName)
	// add new one
	noa.ents.names[compName] = noa.ents.createComponent(compDef)
	// add component to ids that had the previous one (with default state)
	ids.forEach(function (id) {
		noa.ents.addComponent(id, compName)
	})
}

Hope that's fairly clear. In your case, compDef would just be a copy of the default movement component, except with the system function changed with whatever jump rules you prefer.
Let me know if this works for you!

Closing this on the assumption that it worked ;)


Suggestion: release the Python SDK to the PyPI service

Background
Currently, it's pretty complex if someone wants to try the Python SDK. Usually, people might need. to handle many environment or version issues when they try to compile the source code. It might take 30 minutes or even more time during this process.
Suggestion
PyPI is a very popular python library center service. I highly recommend releasing the Python SDK there. Users will don't need to care about how to compile the Python SDK anymore.
I did some work on that. It should not be hard work. Please see also this tutorial

it is really a gool idear to make the sdk as pypi package, but  the python SDK is not ease as what we think, cause, some function is a wrapper to cpp code, so it is dependens on the operation system.
if you just want to use python sdk only, it is not necessary to compile all  target, just compile the python deps only.


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1748 ms

Resolved: Bofrost.at performance has improved in 1f35215 after 7 minutes.


PR: Adding Cobra templates for CLI app generation

@rustafariandev yeah go for it! You mean the make file and cobra root and stuff? Sure thing. It might not be the best way to showcase cobra since I made these after learning cobra this weekend haha. Glad they’re of use to you!

Yeah no worries, I can go ahead and close out the PR if you don't want blueprint to go in that direction. If you do in the future, feel free to reuse any of the templates and stuff.


Function cannot infer type when return a closure

Hi, this is a simple function that:
https://flow.org/try/#0FAMwrgdgxgLglgewgAhAUxlAFgHgCoBcA3hAIYC2aBAzjAE5wQDmAvgHwAUAHgXgJTIiyYMlFQktZHTTUwAGxjICyDnwC8bPMjUr1bLgG4Ro6TDB0U02QuAtgoSLEQpSEBDCxo6+YmUo16RlZOHn5lLSJjKQxzFHRMLG4+VVsgA
function fetch<T:{name:string}>(x:T) {
   const result : ()=>T = ()=>x;
   return result
}

function another<T:{name:string}>(x:T): T {
   return fetch(x)()
}

It gives an error that:
8:    return fetch(x)()             ^ Cannot return `fetch(...)()` because object type [1] is incompatible with `T` [2].
References:
3:    const result : ()=>T = ()=>x;
                         ^ [1]
7: function another<T:{name:string}>(x:T): T {
                                           ^ [2]

It is strange that the T in fetch function is thought differently from the T in another function.

You need to annotate return type explicitly: https://flow.org/try/#0FAMwrgdgxgLglgewgAhAUxlAFgHgCoBcA3hAIYC2aBAzjAE5wQDmAvgHwAUAHgXgJQFkHPgF42eZEWTBksqElrI6aamAA2MZIOFiJIoaLZcA3DNnKYYOimWqNwFsFCRYiFKQgIYWNHXzEyShp6RlZOHn5BCSIzJQwrFHRMLG4+YQcgA

Why does adding a type constraint on the return type change the behavior? This is pretty surprising to me tbh.


cast port to string when creating db connection

Cast db port number to string when creating database connection.

Seems like a good idea, merging


respect load balancer cookies

JerseyServices is currently only resending HostId cookies but should respect other session cookies for the duration of the transaction.  This will allow us to respect load balancer session affinity cookies so requests for the same transaction get automatically routed to the same host by the load balancer configured to use session affinity cookies.

We used to support all session cookies but cut back to just the HostId cookie for two reasons:

session lifecycle was undefined so cookies were shared promiscuously through the HTTP connection pool
we started talking to the /v1/eval endpoint which sent back transaction-related cookies which caused havoc with (1) above

I have not found any standard REST definition for the lifespan of a session cookie.  However, I'm thinking we can allow back in all session cookies (so we will respect any load balancer session cookies) as long as we define the lifespan of a cookie "session" to be the lifespan of a multi-statement transaction.

As discussed , assigning back to you while we decide on the RFE 3557

I thought it was #381 we discussed.  I'm taking that one back because I need to supply a hotfix we can ask the reporter to test rather than all the related changes I made for this issue.

Hello, can you please confirm if this fix is in java-client-api-3.0-5 ? we are facing this problem with a customer where AWS ELB is configured for session stickiness, and Java client api is used via marklogic sesame api to one a transaction and send multiple requests over that transaction, and we can see that requests are not going to same node, even though ELB is properly configured.

I can see that commit https://github.com/marklogic/java-client-api/commit/b7defc3f105ce790fba2ae0acee35a6279581e95 is tagged with 3.0.5.  So this fix is there.  Can you share the details of your AWS ELB configuration?  Have you confirmed that it is using session cookies?  If you look at the HTTP wire trace, this should be working if the HTTP requests coming from the Java client API pass the session cookies sent by the load balancer in the previous response that was part of the same transaction.

Did one round of tests with AWS ELB and found one issue, need further testing
With stickiness set to: LBCookieStickinessPolicy, noExpiration time explicitly set

We see that, DocumentManager write(set, transaction) and then a "readstatus" on that same transaction, the requests go to different hosts. This happens on the uberServer (port 8000).

On non-uber server (regular REST server), we do see that the stickiness works in the case of a multi-statement transaction. We tested on a transaction, a write, read and then delete documents.

We need to fix 1) and need more tests on 2)

One of the QA test class tested was TestDatabaseClientConnection, (found in the develop branch of test-complete)  with test method : testTransactionReadStatus
This reproduces in the issue reported by 1) in the above comment.


Include a sequence and combine alternative which is typed

I am interested in a typed version of parsy and would find it useful, the effort in typed-parsy so far is a nice improvement. I read this blog post on this topic and had an idea for an alternative to seq and combine for the *args synatax (not **kwargs unfortunately). I have something working with Pyright (I haven't tried mypy) - see the linked PR below
By using tuple type unpacking from PEP 646, it's possible to add type information to both of these functions which enable creating a sequence of parsers with a flat tuple result type:

A function which joins the results of two parsers into a tuple: Parser[A], Parser[B] -> Parser[Tuple[A, B]]. I've called this join for now. (This one doesn't need tuple type unpacking - it is just the Parser.__and__ function.)
A function which takes a tuple result and appends a second parser's result to the end: Parser[Tuple[A, B]], Parser[C] -> Parser[Tuple[A, B, C]]. I've called this append for now.

And it's also possible to create a combine method which expects function whose arguments have the same type as the parser's result tuple. The type signature is like this:
from typing import TypeVar

from typing_extensions import TypeVarTuple, Unpack

OUT2 = TypeVar("OUT2")
OUT_T = TypeVarTuple("OUT_T")

# ... in the Parser class
    def combine(self: Parser[Tuple[Unpack[OUT_T]]], combine_fn: Callable[[Unpack[OUT_T]], OUT2]) -> Parser[OUT2]:
        ...

The benefit is that Pyright will compare the Parser result type with the combine_fn arguments and show an issue when they don't match. It also doesn't need the extra step of indexing tuples in a lambda function as shown in the blog post.
I've made these changes in a fork and they seem to be working nicely with Pyright - it's showing me mismatches between a sequence of parsers' results and a function's arguments with useful messages.
For example, in the screenshot below, the demo function expects its first argument to have a type of str. A parser of type Parser[int, str, bool] can be made with the join and append functions. Then where combine is called, VSCode shows that there's a problem - the parser result type doesn't match demo's parameter type in the first argument.

Other comments:

I'm not sure having two functions join and append is the best interface, particularly if the sequence is short, but their different type signatures make it tricky to do something else.
I looked for an equivalent for unpacking **kwargs, hoping that seq with keywords and combine_dict could be typed, but found nothing. PEP 646 mentions that they don't know a use case for unpacking **kwargs, maybe parser libraries could be a good use case.
Pyright and mypy have some support for typing functools.partial which may be another route for supporting **kwargs sequences. A function being called via partial with one kwarg at a time, then finally being called as a complete function is very similar to creating a sequence of parsers and assigning their results to a keyword one at a time, then finally passing all those kwargs to a function.

Hi @robjhornby thanks for your input.
I currently have no plans to further develop this project, for the reasons I described in that blog post, and I'm afraid I'm not likely to have the bandwidth in the foreseeable future to look at your PR in anything like a timely fashion.
However, if you would like to continue work on it, I'm very happy for you to do so. I could make you an admin on it if you would like? My only request is that you make clear the status of the project, and the fact that it has a different maintainer

Hi @spookylukey, thanks for the quick response
I'm not sure I would have a clear goal for this project, so I'm happy to keep experimenting in a fork for now, and if I make some progress I will come back to this repo - thanks for the offer/suggestion.
If I make some progress, are you open to including more type annotations in parsy, even if you're not pursuing this fully typed version? The idea of annotations as "clear and concise documentation for humans that pop up in a code editor" is also what I'm aiming for, as opposed to a complete statically typed solution.

If I make some progress, are you open to including more type annotations in parsy, even if you're not pursuing this fully typed version? The idea of annotations as "clear and concise documentation for humans that pop up in a code editor" is also what I'm aiming for, as opposed to a complete statically typed solution.

Yes, I'm very interested in type hints along those lines. I already added quite a lot, covering all the main methods - https://github.com/python-parsy/parsy/pull/69  released in v 2.1 - but if there are things I missed or ways it can be improved please go ahead.


Document unreachable code purpose

Document unreachable code purpose since it's triggering "unreachable code after return statement" warning in Firefox when browserify-ied.
cf. https://bugzilla.mozilla.org/show_bug.cgi?id=1151931
cf.  http://stackoverflow.com/questions/24987896/how-does-bluebirds-util-tofastproperties-function-make-an-objects-properties
Note: The text of the comment is a copy of Benjamin Gruenbaum's original comment.

Is there a way to just suppress the warning instead?

@benjamingr not to my knowledge after having read all https://bugzilla.mozilla.org/show_bug.cgi?id=1151931 . Nothing like JSHint special comments.

Closing in favor of #884 (which is just the same but on current state of the repository).


Added clarification for npm3 and unmocking

Awesome, thank you so much. Our bot is going to ask you to sign the CLA :)

Signed this on Friday but it hasn't updated this pull request.

@facebook-github-bot shipit


[OAP-1583][oap-native-sql] Optimize ColumnarExchange partition id computation follow-up

What changes were proposed in this pull request?
A follow-up to #1584
How was this patch tested?
UT

@zhouyuan Could you check whether performance issues are resolved? I benchmark TPCH over sr247 cluster and performance is better than last time.


Create feature screencasts: git prompts

As per: https://trello.com/c/Z6rm05JG/10-create-feature-screencasts

[ ] Display basic git prompt (branch, days since commit, repo clean/dirty)
[ ] Display git conflicts

Optional

[ ] Long and short time format
[ ] 'No commits' message
[ ] Unpulled/unpushed

Heads up, expect v1 this weekend

v1 is here!

OK so this is more like alpha. 5s is too short. Want to reduce the total time to under 30s
improvements for beta

remove the nonzero exit code stuff
remove the incorrect git commit then git add
combine the "mkdir screencast && cd $_"
set the upstream so we see the conflict arrows asap

Nice work! Set up and speed is good. I agree regarding removing incorrect commands.
Keep up the good work!

I really like the inline explanations ❤
Agree with the improvements. I wonder if we can add a git rebase origin/master the rebase in progress symbol. Or even the conflict count. Or is that too much for a single screencast?

So new 'script', which will be about 60s long
# geometry git features
mkdir screencast
cd $_
git init
echo “#hi there” > readme.md
git add readme.md
git commit -m ‘initial readme’
# time is how long since last commit
git remote add origin git@github.com:jedahan/screencast.git
# up arrow means we have unpushed changes
git branch -u origin master
# down arrow means we have unpulled changes
git push -u origin master
# there are more indicators, like ◈ conflicts and  rebases
# ▲ thanks for watching ▲

Second version, much shorter

gif version that can just be embedded :)

Looking really good to me.
We'll have to do a bit of a recap as we've lost track of progress. @jedahan @fribmendes

hmm looks like the cool icons didnt render in the gif :/

Looks good!
Yeah, we should do a recap and regroup. Should we schedule a new gitter hangout?

@fribmendes I'm up for it. Just set up a date and I'll be there.

Is it possible this week for you guys? Let's say Wednesday 2.30Pm BST?

For me OK.

works fine for me

Final version: https://user-images.githubusercontent.com/32407/29006139-f93d2dc6-7ab7-11e7-9b34-a16ea909a1fd.gif