JITing loss function causes erroneous results

Description
The below snippet causes drastically different results if the loss function is JIT'd vs not compiled. This results in a bad optimization where the version with the JIT'd loss function never converges. This error is probably with the calculation of the gradients, JITing any of the individual components doesn't cause the issue. Additionally, this bug only appears on systems with GPUs, in a TPU environment the issue doesn't appear. The bug is unrelated to my use of Equinox, the bug was originally observed in Flax. The flag --xla_disable_hlo_passes=algsimp will prevent the bug from appearing. I'm unsure what the jax equivalent of --tf_xla_parallel_checking is so that I can compare the XLA-HLO computational graphs and narrow down the bug further. My guess would be something to do with the top-k gating in the decoder's interaction with jit'd grad (a version of this without a sparsity aware decoder didn't have this bug).
import jax
import jax.numpy as jnp
import os
import equinox as eqx
import treescope
treescope.basic_interactive_setup(autovisualize_arrays=True)

eps = 1e-6

def leaky_offset_relu(x, negative_slope=1e-2, offset=0):
    return jnp.where(x >= offset, x, negative_slope * x)

def gram_matrix_regularizer(weights):
    weights = weights / (jnp.linalg.norm(weights, axis=0, keepdims=True) + 1e-6)
    gram_matrix = jnp.dot(weights.T, weights)
    off_diagonal_elements = gram_matrix - jnp.diag(jnp.diag(gram_matrix))
    dim = off_diagonal_elements.shape[0]
    regularization_penalty = jnp.sum(off_diagonal_elements ** 2) / (dim**2 - dim)
    return weights.shape[0] * regularization_penalty

class Autoencoder(eqx.Module):
    encoder: eqx.nn.Linear
    decoder: eqx.nn.Linear
    bias: jnp.ndarray
    use_bias: bool

    def __init__(self, latent_dim: int, input_dim: int, use_bias: bool = True, key=None):
        encoder_key, decoder_key = jax.random.split(key)
        self.encoder = eqx.nn.Linear(input_dim, latent_dim, key=encoder_key)
        self.decoder = eqx.nn.Linear(latent_dim, input_dim, key=decoder_key)
        self.bias = jnp.zeros(input_dim) if use_bias else None
        self.use_bias = use_bias

    def encode(self, x):
        x = x - self.bias if self.use_bias else x
        codes = self.encoder(x)
        codes = leaky_offset_relu(codes, negative_slope=0., offset=1.96/jnp.sqrt(self.encoder.in_features))
        return codes

    def decode(self, z):
        return self.decoder(z) + (self.bias if self.use_bias else 0)

    def top_k_decode(self, top_k_indices, top_k_values):
        decoder_weights = self.get_decoder()
        # top_k_indices is now 1D after vmap, so we don't need [:, :, None]
        selected_decoder_weights = decoder_weights[top_k_indices]
        # Adjust the sum operation to match the new shape
        return jnp.sum(top_k_values[:, None] * selected_decoder_weights, axis=0) + (self.bias if self.use_bias else 0)

    def get_decoder(self):
        return self.decoder.weight.T / jnp.linalg.norm(self.decoder.weight.T, axis=-1, keepdims=True)

    def get_encoder(self):
        return self.encoder.weight

    def __call__(self, x):
        z = self.encode(x)
        return self.decode(z)

def fwd_pass(model: Autoencoder, batch: jnp.ndarray):
    top_level_latent_codes = jax.vmap(model.encode)(batch)
    top_k_values, top_k_indices = jax.lax.top_k(top_level_latent_codes, 8) # Top-k gating
    x_hat = jax.vmap(model.top_k_decode)(top_k_indices, top_k_values)
    return x_hat, top_level_latent_codes

def recon_loss(x_hat: jnp.ndarray, batch: jnp.ndarray):
  return jnp.mean(jnp.sum(jnp.square(batch - x_hat), axis=-1))

def l1(top_level_latent_codes: jnp.array, batch_size: int):
  return (jnp.sum(jnp.abs(top_level_latent_codes))) / batch_size

@eqx.filter_value_and_grad
def loss_fn(model: Autoencoder, batch: jnp.ndarray, l1_penalty: float, ortho_penalty: float) -> float:

    x_hat, top_level_latent_codes = fwd_pass(model, batch)
    reconstruction_loss = recon_loss(x_hat, batch)

    batch_size = batch.shape[0]
    l1_loss = l1_penalty * l1(top_level_latent_codes, batch_size)

    top_ortho_loss = gram_matrix_regularizer(model.get_encoder())

    ortho_loss = top_ortho_loss

    total_loss = reconstruction_loss + l1_loss + ortho_penalty * ortho_loss

    return total_loss
model = Autoencoder(
    input_dim=3072,
    latent_dim=2**11,
    use_bias=False,
    key=jax.random.key(0)
)
batch = jax.random.normal(jax.random.key(42), (4096, 3072))
batch = batch / jnp.linalg.norm(batch, axis=1, keepdims=True)
l1_penalty = 1e-3
ortho_penalty = 1e-2
loss, grads = loss_fn(model, batch, l1_penalty, ortho_penalty)
jit_loss, jit_grads = eqx.filter_jit(loss_fn)(model, batch, l1_penalty, ortho_penalty)

print(jit_loss) # 1.015691
print(loss) # 1.0234939

diff = jax.tree.map(lambda x, y: x - y, grads, jit_grads) # will show a big difference in the grads

System info (python version, jaxlib version, accelerator, etc.)
This bug has been observed on the latest jax version with an A100 as well. This is the colab environment where this isolated example was created
jax:    0.4.26
jaxlib: 0.4.26
numpy:  1.26.4
python: 3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0]
jax.devices (1 total, 1 local): [cuda(id=0)]
process_count: 1
platform: uname_result(system='Linux', node='2fb653a068c6', release='6.1.85+', version='#1 SMP PREEMPT_DYNAMIC Thu Jun 27 21:05:47 UTC 2024', machine='x86_64')

$ nvidia-smi
Sat Aug 24 21:33:45 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.104.05             Driver Version: 535.104.05   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA L4                      Off | 00000000:00:03.0 Off |                    0 |
| N/A   67C    P0              32W /  72W |  17247MiB / 23034MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

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

Bumping this with some more testing/further narrowing down. Here's a snippet that is much shorter/hopefully easier to understand. Both check grads always fail (I suspect that this is just a too small tolerance). But importantly, the inclusion of any ReLU (leaky or otherwise) causes the JIT'd absolute difference to be a factor of 2 or more bigger than non-JIT'd, in my last test JIT had a max absolute difference of 0.10245637 vs 0.04284701 without JIT (notably without an activation, they remain the same but out of tolerance).
latent_dim = 2**11
input_dim = 3072
initializer = jax.nn.initializers.he_uniform()
encoder = initializer(jax.random.key(0), (latent_dim, input_dim), jnp.float32)
decoder = encoder.T

def encode(x):
    codes = encoder @ x
    return jax.nn.relu(codes)
    #return leaky_offset_relu(codes, negative_slope=0., offset=1.96/jnp.sqrt(encoder.shape[0]))

def top_k_decode(top_k_indices, top_k_values):
    decoder_weights = (decoder / jnp.linalg.norm(decoder, axis=-1, keepdims=True)).T
    # top_k_indices is now 1D after vmap, so we don't need [:, :, None]
    selected_decoder_weights = decoder_weights[top_k_indices]
    # Adjust the sum operation to match the new shape
    return jnp.sum(top_k_values[:, None] * selected_decoder_weights, axis=0)

def fwd_pass(batch: jnp.ndarray):
    top_level_latent_codes = jax.vmap(encode)(batch)
    top_k_values, top_k_indices = jax.lax.top_k(top_level_latent_codes, 8)
    x_hat = jax.vmap(top_k_decode)(top_k_indices, top_k_values)
    return x_hat

def recon_loss(batch: jnp.ndarray):
    x_hat = fwd_pass(batch)
    return jnp.mean(jnp.sum(jnp.square(batch - x_hat), axis=-1))
example_batch = jax.random.normal(jax.random.key(42), (4096,3072))
example_batch = example_batch/jnp.linalg.norm(example_batch, axis=-1, keepdims=True)
from jax.test_util import check_grads
check_grads(jax.jit(recon_loss), args=(example_batch,), order=1)
check_grads(recon_loss, args=(example_batch,), order=1)

I think the issue here is that your gradients are very close to zero, so very small absolute deviations become relatively large relative variations:
grad_jit_result = jax.grad(jax.jit(recon_loss))(example_batch)
grad_result = jax.grad(recon_loss)(example_batch)
np.testing.assert_allclose(grad_jit_result, grad_result)

AssertionError:
Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 2554069 / 12582912 (20.3%)
Max absolute difference: 7.275958e-12
Max relative difference: 0.3
 x: array([[-6.417103e-06,  1.638319e-05, -2.042344e-06, ...,  2.303527e-05,
         2.817694e-06, -6.996353e-06],
       [-3.996819e-06, -8.903306e-06,  7.238759e-08, ..., -2.694251e-06,...
 y: array([[-6.417103e-06,  1.638319e-05, -2.042344e-06, ...,  2.303527e-05,
         2.817694e-06, -6.996353e-06],
       [-3.996818e-06, -8.903306e-06,  7.238714e-08, ..., -2.694251e-06,...

The gradients match in an absolute sense to 1 part in 10^12, but in a relative sense only match to 1 part in 3. The latter is likely causing check_grads to report an error, but it's not an error that will be numerically significant in the full computation.

That makes sense, but I still encounter the bug where JITing causes optimization to work in one case and totally fail in the other (and this behavior doesn't happen on a TPU platform, which makes me think there's some XLA bug, not a code bug). Removed the leaky ReLU since it doesn't do anything except add a threshold when there's a top-k activation and after that change JIT'd training on GPU fails and removing the JIT (or turning off algsimp) causes it to succeed (i.e. at step 400 a JIT'd trainer still has loss above 1 and an eager optimization is ~0.8)

Hmm, that's strange indeed. In general we don't expect JIT-compiled versions of functions to have bitwise-identical outputs to the non-compiled versions: any time you rearrange or fuse floating point operations, you'll change the details of the numerics, but it should be to within normal floating-point precision.
Can you try running it again while setting jax_default_matmul_precision=highest?

That didn't help. Here's the code as it is being run right now (and the first 1000 steps of training)--sorry that it's no longer fully self-contained. Contrary to what I said earlier, substituting the leaky_offset_relufor either a normal relu or no activation fixes the issue (my other comment was testing a more complicated version of this model 🥲). There's no actual negative slope in how the leaky offset ReLU is called, just a thresholded ReLU; I suspect that a decent number of the activations end up below the threshold at the beginning of training and that causes issues.
import jax
import jax.numpy as jnp
import equinox as eqx
import treescope
from jax.experimental import sparse
treescope.basic_interactive_setup()
from typing import Tuple
import optax
from jax.experimental import mesh_utils
from jax.sharding import PositionalSharding
jax.config.update('jax_default_matmul_precision', "highest")

def leaky_offset_relu(x, negative_slope=1e-2, offset=0):
    return jnp.where(x >= offset, x, negative_slope * x)

class Autoencoder(eqx.Module):
    encoder: jnp.ndarray
    decoder: jnp.ndarray
    bias: jnp.ndarray
    use_bias: bool

    def __init__(self, latent_dim: int, input_dim: int, use_bias: bool = True, key=None):
        initializer = jax.nn.initializers.he_uniform()
        self.encoder = initializer(key, (latent_dim, input_dim), jnp.float32)
        self.decoder = self.encoder.T
        self.bias = jnp.zeros(input_dim) if use_bias else None
        self.use_bias = use_bias

    def encode(self, x):
        x = x - self.bias if self.use_bias else x
        codes = self.encoder @ x
        #return codes
        return leaky_offset_relu(codes, negative_slope=0., offset=1.96/jnp.sqrt(self.encoder.shape[0]))

    def top_k_decode(self, top_k_indices, top_k_values):
        decoder_weights = self.get_decoder()
        # top_k_indices is now 1D after vmap, so we don't need [:, :, None]
        selected_decoder_weights = decoder_weights[:, top_k_indices]
        return selected_decoder_weights @ top_k_values + (self.bias if self.use_bias else 0)

    def get_decoder(self):
        return self.decoder / jnp.linalg.norm(self.decoder, axis=0, keepdims=True)

    def get_encoder(self):
        return self.encoder

    def __call__(self, x):
        z = self.encode(x)
        return self.decode(z)

def fwd_pass(model: Autoencoder, batch: jnp.ndarray):
    top_level_latent_codes = jax.vmap(model.encode)(batch)
    top_k_values, top_k_indices = jax.lax.top_k(top_level_latent_codes, 8)
    x_hat = jax.vmap(model.top_k_decode)(top_k_indices, top_k_values)
    return x_hat, top_level_latent_codes

def recon_loss(x_hat: jnp.ndarray, batch: jnp.ndarray):
    return jnp.mean(jnp.sum(jnp.square(batch - x_hat), axis=-1))

@eqx.filter_value_and_grad
def loss_fn(model: Autoencoder, batch: jnp.ndarray, l1_penalty: float, ortho_penalty: float) -> float:
    x_hat, top_level_latent_codes = fwd_pass(model, batch)
    return recon_loss(x_hat, batch)

def update_model(model, grads, opt_state, optimizer):
    updates, new_opt_state = optimizer.update(grads, opt_state)
    new_model = eqx.apply_updates(model, updates)
    return new_model, new_opt_state

@eqx.filter_jit
def train_step(model: Autoencoder, batch: jnp.ndarray, opt_state, l1_penalty: float, ortho_penalty: float, optimizer) -> Tuple[Autoencoder, optax.OptState, float]:
    loss, grads = loss_fn(model, batch, l1_penalty, ortho_penalty)
    model, opt_state = update_model(model, grads, opt_state, optimizer)
    return model, opt_state, loss
# omitted dataloader stuff
model = Autoencoder(
    input_dim=3072,
    latent_dim=2**12,
    use_bias=False,
    key=jax.random.key(0)
)

learning_rate = 1e-4
optimizer = optax.adam(learning_rate)
opt_state = optimizer.init(eqx.filter(model, eqx.is_array))

l1_penalty = 1e-3
ortho_penalty = 1e-2

num_steps = 10000

for step in range(num_steps):
    batch = next(train_loader)
    model, opt_state, loss = train_step(model, batch, opt_state, l1_penalty, ortho_penalty, optimizer)

    if step % 50 == 0:
        print(f"Step {step}, Loss: {loss:.4f}")

No JIT
Step 0, Loss: 0.9761
Step 50, Loss: 0.9737
Step 100, Loss: 0.9722
Step 150, Loss: 0.9705
Step 200, Loss: 0.9687
Step 250, Loss: 0.9664
Step 300, Loss: 0.9630
Step 350, Loss: 0.9590
Step 400, Loss: 0.9531
Step 450, Loss: 0.9460
Step 500, Loss: 0.9373
Step 550, Loss: 0.9309
Step 600, Loss: 0.9174
Step 650, Loss: 0.9082
Step 700, Loss: 0.8965
Step 750, Loss: 0.8895
Step 800, Loss: 0.8821
Step 850, Loss: 0.8753
Step 900, Loss: 0.8647
Step 950, Loss: 0.8614
Step 1000, Loss: 0.8555

JIT on
Step 0, Loss: 1.0394
Step 50, Loss: 1.0389
Step 100, Loss: 1.0383
Step 150, Loss: 1.0381
Step 200, Loss: 1.0375
Step 250, Loss: 1.0372
Step 300, Loss: 1.0372
Step 350, Loss: 1.0367
Step 400, Loss: 1.0362
Step 450, Loss: 1.0357
Step 500, Loss: 1.0356
Step 550, Loss: 1.0353
Step 600, Loss: 1.0350
Step 650, Loss: 1.0346
Step 700, Loss: 1.0342
Step 750, Loss: 1.0341
Step 800, Loss: 1.0339
Step 850, Loss: 1.0333
Step 900, Loss: 1.0333
Step 950, Loss: 1.0331
Step 1000, Loss: 1.0325

Hi, what is happening is that the layout of top_level_latent_codes is changing the top_k algorithm and it looks like to me that there are a lot of near-zero values in the top_level_latent_codes and the top_k algorithm is struggling to choose the top_k consistently. If I add a layout constraint into your code (or return top_level_latent_codes as an aux output) then everything becomes consistent between jit and without_jit.
def fwd_pass(model: Autoencoder, batch: jnp.ndarray):
    top_level_latent_codes = jax.vmap(model.encode)(batch)
    custom_dll = jax._src.layout.DeviceLocalLayout(major_to_minor=(0, 1)) # switch to (1, 0) to get 'jit_loss'
    s = jax.sharding.SingleDeviceSharding(jax.devices()[0])
    top_level_latent_codes = jax.lax.with_sharding_constraint(top_level_latent_codes, jax._src.layout.Layout(custom_dll, s))
    top_k_values, top_k_indices = jax.lax.top_k(top_level_latent_codes, 8) # Top-k gating
    x_hat = jax.vmap(model.top_k_decode)(top_k_indices, top_k_values)
    return x_hat, top_level_latent_codes, top_k_indices

Slight update on the usage of layout API: Use the experimental endpoint: from jax.experimental.layout import Layout, DeviceLocalLayout

This makes sense, but I'm still curious as to why this happens with leaky_offset_relu but not otherwise. The offset means that with leaky_offset_relu turned on, there's no values in top_level_latent_codes below ~.03. With no offset (i.e. regular ReLU or no activation), values go as low as 1E-5 but the bad training doesn't happen (sort of the opposite of what you'd expect if near zeroes are the issue). There's not any ties, nor any near ties (the mean distance between the activation values among the nonzero elements is ~0.01). The only other difference between the various activations is that there's only ~340 nonzero elements in the offset case and ~2048 without an offset. All these numbers are from step 10 of optimization, but the same is true at initialization.

You can debug these things by adding an aux output and print the intermediate results: @functools.partial(eqx.filter_value_and_grad, has_aux=True)
I think the simple explanation is that top_k_indices with relu + jit are ordered like so:
Array([[1793, 1338,    0, ...,    3,    4,    5],
       [1074,    0,    1, ...,    4,    5,    6],
       [   0,    1,    2, ...,    5,    6,    7],
       ...,
       [   0,    1,    2, ...,    5,    6,    7],
       [   0,    1,    2, ...,    5,    6,    7],
       [ 591, 1829,    0, ...,    3,    4,    5]], dtype=int32)

And everything else (nojit relu, jit norelu, nojit norelu) is more random like so:
  Array([[ 985, 1273,  579, ...,  386, 1756,  390],
       [1213,  402, 1652, ...,   59, 1665,  597],
       [1275, 1131, 1073, ..., 1615, 1034, 2030],
       ...,
       [ 570, 1460,  101, ...,    0,    1,    2],
       [1546, 1519, 1748, ..., 1644,  902, 1482],
       [1059,  430, 1778, ...,  732, 1034,  344]], dtype=int32)

Printing the intermediate values for leaky_relu, there are a lot of zeros in the results. Anyways, looking more closely, it might actually be a bug in how XLA does top-k. I'll look into that.

Thanks! Another thing I don't understand is why major-minor ordering helps regardless of batch size? Even if the batch dimension is larger than the latent dimension, your layout fix works--but isn't the batch dimension in that case major and latent minor? Is it just that the vmap means that the batch dimension will always be treated as the minor dimension since the ops are vectorized across it?

Thanks! Another thing I don't understand is why major-minor ordering helps regardless of batch size? Even if the batch dimension is larger than the latent dimension, your layout fix works--but isn't the batch dimension in that case major and latent minor? Is it just that the vmap means that the batch dimension will always be treated as the minor dimension since the ops are vectorized across it? (these runs were before I was adding in the aux output)

Was making modifications to code today and noticed that adding the line codes += 0 re-introduces the buggy top-k optimization

This should be fixed with: https://github.com/openxla/xla/commit/474036b950cbb934f09f5485633997fb379e6364 . This should show up in the nightlies soon: https://jax.readthedocs.io/en/latest/installation.html#jax-nightly-installation .


Migrate to notarytool

This is currently untested and is mainly to discuss the needed API changes.
I didn't forget about processUploadToolOutput and will update it, once I got to try it on a MAC and can take a look at the actual output
Fixes #3208

Thanks!

discuss the needed API changes.

We should replace all properties for which we find a replacement, and deprecate others.
Let us know when the PR is ready for review.

You can review the API changes, those shouldn't change, it's just that I can't test the response parser yet

The current API change ascProvider -> teamId looks good to me.
And if it is possible to keep ascProvider working, we should do that (now it throws an exception).
Is it in the same format as the new parameter teamId?

The current API change ascProvider -> teamId looks good to me.
And if it is possible to keep ascProvider working, we should do that (now it throws an exception for existing usages).
Is it in the same format as the new parameter teamId?

Not at all if I understood the docs correctly, that's why I disabled it

If it is not possible to convert asc-provider to team-id, then an exception is fine.

The alternative is still use altool if ascProvider is provided to give people seamless transition for a few month until it stops working in 11.2023

Is that really worth it? Most people probably don't use that option anyways and this will require adding two seperate implementations of the task to delay a change the have to do anyw

Sounds reasonable, let's just throw an exception

Ig I need to update the tests as well

Superseded by #3642


cherrypick pick some exception handleing pr in page io

Proposed changes
pick
https://github.com/apache/doris/pull/39536
https://github.com/apache/doris/pull/39913
https://github.com/apache/doris/pull/39964
https://github.com/apache/doris/pull/40020

run buildall


Support for ByteAddressBuffer.Load(uint64_t) to allow loading beyond 2 or 4GiB buffers

A problem with the current spec is that BAB loads in DXIL are marked as a i32. This means that it's ultimately up to the driver to decide to do either the "safe" or the "logical" thing. If the user inputs -1 then the driver has to make the decision if they mean 0xFFFFFFFF or -1. Some vendors in the wild choose to safeguard and discard negative values, while others (such as WARP) reinterpret it as u32 instead.
Load2 has a similar issue, but this one is marked in the spec as uint even though according to Jesse, it behaves the same under the hood (so it's an i32/ambiguous too).
The proper solution imo is to add a 64-bit BAB.Load which will allow not just 4GiB buffers, but also beyond that (up to 40 bit).

Agree. uint64_t index also helps to achieve an equivalent feature to Vulkan buffer reference. We just need to set 0 VA to a root UAV slot.


HADOOP-18198. patch chain for Hadoop 3.3.3

Description of PR
The chain of patches for 3.3.3 release, in the same order as the 3.2.3 release
How was this patch tested?
will see what yetus says first
For code changes:

[X] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
[ ] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

tagged as as draft as it is not to be merged as is, but instead with the chain of changes


doc: Deprecation reason of settled on Invoice

This documents how to deal with settled being deprecated. It took me quite a bit of digging without such documentation.
Change Description
Description of change / link to associated issue.
Steps to Test
Steps for reviewers to follow to test the change.
Pull Request Checklist
Testing

[ ] Your PR passes all CI checks.
[ ] Tests covering the positive and negative (error paths) are included.
[ ] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[ ] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[ ] Commits follow the Ideal Git Commit Structure.
[ ] Any new logging statements use an appropriate subsystem and logging level.
[ ]  There is a change description in the release notes, or [skip ci] in the commit message for small changes.

📝 Please see our  Contribution Guidelines for further guidance.

@kixunil, remember to re-request review from reviewers when ready

@kixunil, remember to re-request review from reviewers when ready

I'm getting "Protos not properly formatted or not compiled with v3.4.0" from make rpc-check even after running make rpc. Isn't the version supposed to be handled by docker?

Yes, the error message is outdated. You need to run make rpc and commit the diff. Then make rpc-check won't complain anymore.


convert non-native arrays to native arrays

This is primarily for typed arrays. The modified version just essentially converts any non-array (but array-like) object to native arrays

Great, thank you!


Line wrap?

Simple question: How I can enable or add line wrap for console?
Why? Look at this:

Oh sorry! I solved by adding white-space: normal; to screen container.


Untie Remote Configuration db from API Key value

To allow changing the API Key at runtime the remote configuration service is not storing data in the database in a trying it together with API keys.
When the key is rotated it will not invalidate the buckets, but at restart it will detect that the key has changed and reset the database
New Metadata
{
  "version": "7.54.0-devel",
  "api-key-hash": "....",
  "creation-time": "2024-04-03T11:35:49.104193+02:00"
}

QA

Agents and tracers should receive configurations function as normal
Verify that the the database metadata now contains a hash of the key and the creation date
Verify that the agent starting up with a database configured for a different datacenter (different roots) will recover by wiping the database and restarting

/merge


Add light and switch for RFXCOM component

Good job!

Can you exclude the new files from testing by adding them to .coveragerc ?

This looks very good. I had some minor comments, mainly cosmetic.


chore(deps): update module gopkg.in/yaml.v2 to v3

This PR contains the following updates:

Package
Type
Update
Change

gopkg.in/yaml.v2
require
major
v2.4.0 -> v3.0.1

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, click this checkbox. ⚠ Warning: custom changes will be lost.

This PR has been generated by Renovate Bot.

:tada: This PR is included in version 5.3.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


VALUE ERROR in Server.dome

Dyalog APL/W-64 Version 17.1.36563
Serial No : 001296
Unicode Edition
Beta release
Thu Aug  1 13:47:40 2019
  )clear

clear ws
⎕PW←1000
)ns Zodiac
#.Zodiac
]load /devt/JSONServer/Sample/* -target=Zodiac
  ⎕VR 'Zodiac.GetSign'

  Zodiac.GetSign 10 31

VALUE ERROR: Undefined name: GetSign
Zodiac.GetSign 10 31
∧
It looks like as the problem is the path specified in the ]load command.

I'm going to close this issue because it's not a problem with JSONServer.
Make sure that your path is correct and the .dyalog files actually exist.  The ]load should display a list of all the loaded objects.
      )clear
clear ws
      ⎕PW←1000
      )ns Zodiac
#.Zodiac
      ]load /git/JSONServer/Sample/* -target=Zodiac
 GetSign  GetSignObject  GetSignWithRequest  Reverse

]SALT.list can list the contents of the folder
      ]SALT.list /git/JSONServer/Sample/*
 Type   Name                Versions  Size  Last Update
        GetSign                        360  2019/07/26 11:08:06
        GetSignObject                  139  2019/07/26 11:08:06
        GetSignWithRequest             498  2019/07/26 11:08:06
 <DIR>  Utils                               2019/07/26 11:08:06


Use Google Maps Place data in templates

I really like this plugin and I've been using Templater to query the Google Maps Place API and automatically fill in details like:

the type of place (restaurant, cafe, etc ...)
the rating
the place_id so I can build a direction URL and a search URL (https://developers.google.com/maps/documentation/urls/get-started)
the more human friendly name attribute.
address

Same issue as https://github.com/esm7/obsidian-map-view/issues/173
Solution
A template can contain paths to data returned in the full .
It would be easy to extend the solution to OSM.
Example
With this template:
---
place_id: "{{google_maps_place_data.place_id}}"
---

main type of place: {{google_maps_place_data.types.0}}
non existant: {{google_maps_place_data.types.99}}
non existant: {{google_maps_place_data.types.99.asdasd}}
all types: {{google_maps_place_data.types}}
opening_hours: {{google_maps_place_data.opening_hours.open_now}}
opening_hours: {{google_maps_place_data.opening_hours.open_non_existant_key}}
opening_hours: {{google_maps_place_data.opening_hours.open_non_existant_key.asdasd}}

A query to Katz's Delicatessen results in this note:

Drafting for now for feedback and before final testing.

Updating current notes without `place_id`
I'm using Templater to update my old geo tagged places that don't have this extra information. In my startup template I have:
templaterPlugin.registerEvent(tp.app.workspace.on('file-open', async (file) => {

    let needs_gmaps_place_id = false;
    let encodedCoords;
    await tp.app.fileManager.processFrontMatter(file, (frontmatter) => {
        needs_gmaps_place_id = ("location" in frontmatter) && !(("gmaps_place_id" in frontmatter));
        if (needs_gmaps_place_id) {
            encodedCoords = encodeURIComponent(frontmatter["location"]);
        }
    });

    if (needs_gmaps_place_id) {
        // Set gmap_place_id if we dont have it set:
        const googleMapsPlacesUrl = `https://maps.googleapis.com/maps/api/geocode/json?latlng=${encodedCoords}&key=[MY API KEY HERE]`
        const googleMapsJsonPlaceId = await tp.web.request(googleMapsPlacesUrl, "results.0.place_id");
        if (googleMapsJsonPlaceId && (googleMapsJsonPlaceId.length > 0)) {
            await tp.app.fileManager.processFrontMatter(file, (frontmatter) => {
                frontmatter["gmaps_place_id"] = googleMapsJsonPlaceId;
            });
        }
    }

    await tp.app.fileManager.processFrontMatter(file, (frontmatter) => {
        if ("location" in frontmatter) {
            const encodedCoords = encodeURIComponent(frontmatter["location"]);

            frontmatter["directions"] = "https://www.google.com/maps/dir/?api=1&destination=" + encodedCoords;
            frontmatter["location_link"] = "https://www.google.com/maps/search/?api=1&query=" + encodedCoords;
            if ("gmaps_place_id" in frontmatter) {
                // We can improve the search!
                const encodedPlaceId = encodeURIComponent(frontmatter["gmaps_place_id"]);
                // frontmatter["directions"] = `${frontmatter["directions"]}&destination_place_id=${encodedPlaceId}`;
                // if you use the coords, google maps doesnt show the name of the place when looking for directions
                frontmatter["directions"] = `https://www.google.com/maps/dir/?api=1&destination=null&destination_place_id=${encodedPlaceId}`;
                frontmatter["location_link"] = `${frontmatter["location_link"]}&query_place_id=${encodedPlaceId}`;
            }
        }
    });
}))

Thank you for this contribution, users will love it.
I added a few minor comments.
Except these, can you add documentation in the README?

Sure!

Thank you for this contribution, users will love it. I added a few minor comments. Except these, can you add documentation in the README?

Let me know your comments, I cant see them atm

Thank you for this contribution, users will love it. I added a few minor comments. Except these, can you add documentation in the README?

Let me know your comments, I cant see them atm

So sorry, I forgot to submit the comments after writing them :facepalm:

I've added the google maps typing package so I can type annotate with google.maps.places.PlaceResult

Looks great, thank you!
I'm currently aiming to not make a 5.2.0 feature release, but a very big 6.0.0 release which I'm working on. So it means it will take at least a couple of weeks until users get this, hope you can do with a local build for now.

I was about to ask if anyone had done this.
Question, will this template always create a new note, or could you use it to add to existing note? For example, if I had a note for restaurants, could add multiple businesses/locations on the one note?


requires mapblox-gl which doesn't have a standard license?

We noticed that this package requires mapblox-gl: https://www.npmjs.com/package/mapbox-gl
which doesn't have any standard license, so inside Microsoft, it gets flagged in Component Governance as "missing legal info"
Is mapblox-gl required for this wrapper?  or could it be made an optional component?

Version 1 of the Azure Maps Web SDK uses and older version of the Mapbox SDK. Version 2 of the Azure Maps Web SDK (which this library is based on) uses MapLibre: https://maplibre.org/
So with that in mind, mapbox-gl likely isn't needed for this library. I suspect it might have been added when this library was initially created and just ignored since. Strangely it looks like the only other reference to Mapbox in this project is loading its CSS here: https://github.com/Azure/react-azure-maps/blob/907b2ddf44120a9d55c4ca2c53fb00dc4bc64004/src/components/AzureMap/AzureMap.tsx which is more likely to create an issue in the future.

react-azure-maps@next (1.0.0) has removed the CSS import. Please refer to MIGRATION.md for more details.


fix: [lw-11765] show network error toast

Checklist

[x] JIRA - LW-11765
[ ] Proper tests implemented
[ ] Screenshots added.

Proposed solution
Explain how does this PR solves the problem stated in JIRA ticket.
You can also enumerate different alternatives considered while approaching this task.
Testing
Describe here, how the new implementation can be tested.
Provide link or briefly describe User Acceptance Criteria/Tests that need to be met
Screenshots

Allure Report
allure-report-publisher generated test report!

processReports: ❌ test report for b3f45f38

passed
failed
skipped
flaky
total
result

Total
31
1
4
0
36
❌


Update links to cpp sdk.

OS
Windows
Programming Language
c++
VPK Version
n/a
Library Version
n/a
What happened?
https://docs.velopack.io/getting-started/cpp needs to be redirected to https://github.com/velopack/velopack/tree/develop/src/lib-cpp
Relevant log output
None

https://github.com/velopack/velopack.fusion/blob/master/for-cpp/Velopack.hpp is archived.

The new C++ library has been released and the documentation has been updated


Fresco Images opactiy cannot be animated

I use to be able to do this..
<Image #element class="mark" width="40" height="40"></Image>
@ViewChild("element") element: ElementRef;
element.nativeElement.animate({
                    opacity: 1,
                    duration: 200
                });

Since switching these image tags to fresco, this no longer works.
Also noticed I am no longer able to change the opacity of Fresco tags with CSS as well.
Is there a solution to this?

Hi @9thwall ,
I tested the described scenario of animating the opacity of the FrescoDrawee instance and styling it via css and was not able to observe any issues. Both scenarios work correctly.
I added an example that showcases how to do both scenarios and you can take a look at it here:

XML file - https://github.com/NativeScript/nativescript-fresco/blob/master/demo/app/examples/opacity.xml
TypeScript code - https://github.com/NativeScript/nativescript-fresco/blob/master/demo/app/examples/opacity.ts
CSS file - https://github.com/NativeScript/nativescript-fresco/blob/master/demo/app/examples/opacity.css

You can find thee entire examples application here.
Also tested this in NativeScript + Angular 2 application where again was not able to reproduce such an issue. I updated the Angular 2 part of the demo application to include this scenario and you can find it here: component code and html.
Can you try to run the demo app and let me know if you continue to experience issues.

Closing the issue for now since I was not able to reproduce the mentioned issue. If anyone continues to experience similar issues let me know.


Review is_dict_signature_valid()

https://github.com/thenewboston-developers/Core/pull/78/files#diff-b1a7c97f5393563e7f757cbb89d91fe929acb855e931f724b2571b430f4fc2e6R44

https://github.com/thenewboston-developers/Core/pull/91


Action Reference Serialization Bug

Something is causing action references in my project to not save properly. You can set the value in the inspector, but it doesn't stick. This is new behavior - my project works fine with the plugin version that is available on the Unity Asset Store, meaning this bug is new to the beta release that I got from the releases tab.
Repro steps:

Get set up with HandshakeVR.
Open up the /HandshakeVR/Scenes/InteractionExamples/Basic Interactions scene.
Expand the InteractionManager object.
Click on Interaction Controller(Left).
Try assigning the Grab action with GrabGrip.
Select another object.
Re-select Interaction Controller(Left).
Notice the assignment has failed or possibly been reverted.

Doesn't look like it fixed the issue. GitHub says the release is 9 days old. Maybe that has something to do with it?


Fix return type for Vix.Vips.concurrency_get/0, support Kino.Render protocol

Add support for the Kino.Render protocol to render image metadata and the image in a Livebook.
Fix the return type for Vix.Vips.concurrency_get/0 to avoid dialyzer errors

As of kino 0.7.0 the Kino.Render protocol can be implemented to render custom types. This PR adds support for Vix.Vips.Image.t images.  It produces two tabs: One with image metadata and the second with the image itself
Metadata tab

Image tab

@kipcole9 thanks again for the contribution! Supporting Kino render is my backlog from sometime now.
One concern I have with render is that it forces the image pipeline to execute as soon as we return any image in any cell. In some cases, render intermediate stages can be an expensive operation. I am not sure if this is okay or not from user point of view. Maybe it is not a big concern, and we can have an option to turn it off. Just thinking out loud to get your view on this.
And, should we resize the image to an appropriate size while rendering? So it works well for a big image. I am comparing this with how generally image preview works in image processing context. And how inspect(binary) truncates the output for large binaries.

Good thoughts @akash-akya. I think given the interactive nature of Livebook that executing the render pipeline is ok.  Especially since there are ! and non-! versions of most functions. Meaning that a user can control the expectation - non-! versions won't trigger the Kino.Render protocol for Vix.Vips.Image.t.
I had also thought about resizing automatically and concluded that is should be a user operation if they want to resize. But I can equally understand the other point of view.
In my own work I'm finding this output really useful for showing intermediate results during various image transforms. I haven't found any issues with execution time, nor yet from image size rendering. But I accept that others may feel differently.
Given Vix is still not at 1.x its reasonable to go ahead without resizing and get further community feedback and preferences?

Good points @kipcole9. Rationale around non-! variant perfectly makes sense.
Let's merge and see from there based on feedback then

@kipcole9 on second thought, I am thinking of keeping @spec concurrency_get() :: integer() and fixing the return value instead, since this value can never return error.
I'll push that change, let me know if you have any concern on that

@akash-akya , looks great and works as expected in my testing.  No issue at all on changing the return type of concurrency_get/0. With that change (and a lot of persuasion) dialyzer is now green on Image.  Very release-ready in my opinion :-)

That's nice! released v0.14.0 🎉


Explorer screen too small during RDP session from 4K monitor

I have a laptop with a 4K (3840x2160) display, and I often RDP into a workstation that has a 1920x1080 display. When I open a folder after launching VSCode, the resulting Windows File Explorer screen is not scaled and the text and icons are extremely small, making them unreadable.
I've attached a screenshot.

How is this related to VSCode? Looks to me that it's rather a problem if the RDP window?

I don't think so. During the same RDP session, if I open the same Explorer view via another text editor like Notepad++, it scales it up before displaying. Opening File Explorer by itself also scales correctly. I'm seeing this only with VSCode.

Is it the Reveal in Explorer command that you are using?

*Reveal in Explorer *seems to work fine, but Open Folder does not
On Fri, Apr 12, 2019 at 8:01 PM Martin Aeschlimann<EMAIL_ADDRESS>wrote:

Is it the Reveal in Explorer command that you are using?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/72129#issuecomment-482596006,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aczy3ypJ2uYajocnBJmdQNHw4s0-gAYGks5vgJi6gaJpZM4cpc__
.

Reveal in Explorer seems to work fine but Open Folder does not.


Slack notification sometime has empty text

Hi,
The alert sent to slack sometime have empty description text below
AlertManager APP [10:21 AM]
Status: FIRING
Description:
My slack config is
slack_configs:
- send_resolved: true
api_url:
title: '{{ .CommonAnnotations.summary }}'
pretext: 'Status: {{ .Status | toUpper }}'
text: 'Description: {{ .CommonAnnotations.description }}'
I wonder if was something wrong related to .CommonAnnotations.description when multiple alerts with the same description are firing at the same time?  If so, how can I address it?

I fixed this issue by using
text: 'Description: {{ range .Alerts }}{{ .Annotations.description }}\n{{ end }}'


Correct EOL date for 2014 SP2

Type of Change

[X] Bug fix (non-breaking change, fixes #5060)
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose

Correct SupportedUntil for SQL Server 2014 SP2
Approach

Update build reference with correct date from documentation

My VSCode settings reformatted everything, hold on merging this until I can fix that

It looks like the previous commit, 489845a312122dedf22c11a95342ed85f3c4e979, also did a wide-scale reformat. I think the workspace settings that tag along w/ the project were applied by VSCode on my end tonight, but at this point I'm not sure if I did something wrong here or what.

Your commit seems to have proper indentation, it's all good 👍

thank you both 🙇


make build-dev exec failed

make build-dev exec failed

Error log
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

go install<EMAIL_ADDRESS># if replace nebula-go, need to change nebula-go path
# /root/nebula-bench/gopath/bin/xk6 build v0.45.1 --with<EMAIL_ADDRESS>\
#       --replace github.com/vesoft-inc/nebula-go/v3=/home/Harris.chu/code/nebula-go;
/root/nebula-bench/gopath/bin/xk6 build v0.45.1 --with<EMAIL_ADDRESS>;
2024/09/23 23:29:55 [INFO] Temporary folder: /tmp/buildenv_2024-09-23-2329.3161005839
2024/09/23 23:29:55 [INFO] Initializing Go module
2024/09/23 23:29:55 [INFO] exec (timeout=10s): /root/nebula-bench/go/bin/go mod init k6
go: creating new go.mod: module k6
2024/09/23 23:29:55 [INFO] Replace github.com/vesoft-inc/k6-plugin => /root/nebula-bench/temp/k6-plugin/../k6-plugin
2024/09/23 23:29:55 [INFO] exec (timeout=0s): /root/nebula-bench/go/bin/go mod edit -replace github.com/vesoft-inc/k6-plugin=/root/nebula-bench/temp/k6-plugin/../k6-plugin
2024/09/23 23:29:55 [INFO] exec (timeout=0s): /root/nebula-bench/go/bin/go mod tidy -compat=1.17
flag provided but not defined: -compat
usage: go mod tidy [-e] [-v]
Run 'go help mod tidy' for details.
2024/09/23 23:29:55 [INFO] Cleaning up temporary folder: /tmp/buildenv_2024-09-23-2329.3161005839
2024/09/23 23:29:55 [FATAL] exit status 2
make: *** [build-dev] Error 1
mv: cannot stat ‘k6’: No such file or directory

Your Environments (required)

Version: v1.1.6
GO: 1.16.6
OS: CentOS 7

ok, I find Go lang version should be 1.19.x in go.mod, that's will be ok


Post update

I think you can close this PR made against the master repo.

I think you can close this PR made against the master repo.

Sorry, my bad.


colorScheme in a profile does not apply the selected scheme

Environment
Windows build number: Version 10.0.18922.1000
Windows Terminal version (if applicable): 0.2.1715.0

Steps to reproduce

Open profiles.json
In the "cmd" profile, change the value of colorScheme from "Campbell" to "Solarized Dark" (ensure this scheme exists in the built-in schemes list)
Close and reopen Terminal
Open the "cmd" profile

Also reproducible with WSL profiles (e.g. "Ubuntu").

Expected behavior

According to doc/cascadia/SettingsSchema.md, colorScheme selects the color scheme to use for the profile, so I would expect to see Solarized colors in my terminal.

Actual behavior

cmd profile:

ubuntu profile (output of color-test.sh):

Would you mind sharing a copy of your profiles.json? This feature definitely works for most people.

Also, Terminal has live reloading!

I noticed the live reloading, but no chance unfortunately.
Make a new GUID using whatever mechanism you want. In powershell, New-Guid...  Or just google "uuid generator", or change 0caa0dad to 1caa0dad or whatever!


Travis && Development's CI with surge

Travis automatic deployment: https://staging-6-pr-gnosis-team-safe-gnosis.surge.sh


Add visual feedback to the screen of the NFC reading state

When the tag is read
When the tag is written to

Added


Opening Webmin from Cloudmin should open in a new tab

In the old Virtualmin Framed theme, when clicking on the "Open Webmin" link in the left pane in Cloudmin, the Webmin of the selected server would open in a new tab.
But with authentic-theme it opens in the same window, which looks a little bit odd with two sidebars, plus it results in layout problems.
Is it possible to make it open in a new tab?

Be kind posting a screenshot! I am planning to release an update tonight, 13.04.

Waiting for more details. Update 13.04 is about to be pushed.

Sorry for not making it on time.
Here is the screenshot

Why do you need Webmin link inside of there?
What is the URL that you set in Custom Links?

This is link is coming from Custom Links module, right?

You can switch to Webmin useing Alt+W hotkey

How did you get Open Webmin? What is the URL there, on that link?

Actually in order to open Webmin in the new tab, all you need to do is to set custom link with full URL, like https://localhost:10000. In case you set it like /, yes you will get what you get and it's obvious.
So just use full location.href and it will work. Not an issue! Closing.

It is not a custom link, this is a built-in feature of Cloudmin.
The "Link to Webmin" opens Webmin in a new tab and works fine.
The "Open Webmin" also opens Webmin in a new tab, but in already logged in state. It works via javascript.
This is an example:

 Open Webmin

I don't have this link?! How do you login?

Can you go to Custom Links and see if it's defined there?

It's not in custom links. I go there this way: Cloudmin tab -> List managed systems -> then click on a managed system (or actually select one from the dropdown in the left pane) -> links should appear like in my screenshot, related to the selected managed system.

Oh, I forgot, the managed system must have Webmin installed and be registered with Cloudmin probably, so that the link displays there.

any news on this? :)

:) OK. Can you control what link is set there or it's hardcoded? Are you sure it's not from custom links? Do you use custom links? I don't see this link and can not reproduce it. I need more detailed info on how did you make it appear!? I don't have it showing in Cloudmin?
What is the link's URL and what is the selector? Can you open dev tool and debug this link and attaching the screenshot.

:) OK. Can you control what link is set there or it's hardcoded? Are you sure it's not from custom links? Do you use custom links? I don't see this link and can not reproduce it. I need more detailed info on how did you make it appear!? I don't have it showing in Cloudmin?
What is the link's URL and what is the selector? Can you open dev tool and debug this link and attaching the screenshot.

That link appears automatically if the managed system has Webmin installed and it is configured in Cloudmin. So basically, if a managed system (be it kvm, xen, openvz, or even physical, whatever) has Webmin installed on it, in Cloudmin you have to configure access to the Webmin.
When adding a managed system to Cloudmin, it will ask you if it has Webmin and you can provide details. On an existing system, I am not so sure where you can add the information. I guess under "Change password" or "Edit system", see my original screenshot at the top left.
In the Authentic theme, the link is like this:

 Open Webmin

In the Virtualmin Framed theme, the link is like this:

Open Webmin

As you can see, for some reason in the Authentic theme that links gets the target "page", whereas in the Virtualmin Framed theme it gets target _blank, which is correct behavior.

Alright, now it's very clear. I am at vacation right now and don't have access to my debug server. I will try making a fix while I'm here if I can and provide you with the fix which I'll add to the next release in the end of the month, as I remember there were some other reported bugs for Cloudmin.
Thanks for clearing that up.

Alright! I have fixed it before as I just found and commented this out as that was causing some issues in other parts of the theme. Now it seems alright and should add target blank attribute to the link! Please be kind testing with updated default.min.js.
https://rostovtsev.ru/pub/src/authentic/13.05-patches/issue185/default.min.js

https://rostovtsev.ru/pub/src/authentic/13.05-patches/issue182/default.min.js

Hmmm somehow the theme is broken now, just see the loaders. But don't have time to test further, will try again in 12 hours.

This is very unlikely. Clear cache please and try again.

I cleared cache and reloaded everything, unfortunately the link has still target="page"

Ahh. Ok. I missed that Webmin devs provided a trigger for links that should be opened in new page. It should have been done using server-side. Added couple of strings to .lib file. Please upload and test:
https://rostovtsev.ru/pub/src/authentic/13.05-patches/issue182/authentic-lib.cgi
Working now, right??

Nope. Strangely, now target is _blank, but somehow the browser ignores it and still opens in the right frame. Tested with Chrome and Firefox

Ahh..Ok, I got it. This one should work. Please test:
https://rostovtsev.ru/pub/src/authentic/13.05-patches/issue182/1/authentic-lib.cgi

Unfortunately, now when I click on the link nothing happens :(

Can you please make a screenshot of it debugging in browser's console?

Uncaught Error: Syntax error, unrecognized expression: ../servers/link.cgi/1378123456781040/
ga.error @ jquery.min.js?1305:2
ga.tokenize @ jquery.min.js?1305:2
ga.select @ jquery.min.js?1305:2
ga @ jquery.min.js?1305:2
n.fn.extend.find @ jquery.min.js?1305:2
n.fn.init @ jquery.min.js?1305:2
n @ jquery.min.js?1305:2
(anonymous function) @ default.min.js?1305:6

There are ticks next to (anonymous function) @ default.min.js?1305:6 what is on the inside? There should be the function name?
It has started happening after I made a fix for you can you please update your JS again with working (check with other guys) and try again?
https://rostovtsev.ru/pub/src/authentic/13.05-patches/issue191/default.min.js

Tried with Firebug this time, it just says this:
Error: Syntax error, unrecognized expression: ../servers/link.cgi/1371234567891012/
I also tried updating the default.min.js with the one you provided, but the same error happens.

Funny. The link really doesn't work. But it shouldn't return any issue on javascript part.. ok. I will do my best to fix it by next release, 13.10 very soon. Please stay in touch after installing updated version. Clear browsers cache, test it and in case it still doesn't work, just let me know here again!

Can you please again send me the link of how it looks now, like you did, example:

 Open Webmin

Ahh. Nevermind, I got it.

Installed 13.10. Unfortunatelly it is still not fixed. The good thing is, a new tab is actually opened, the bad thing is that the link changes to the hostname without the :10000 port, resulting in a 403 forbidden error.
The way this works in the Virtualmin Framed theme is that it opens the Webmin of the managed system in the new tab, already logged in, using the cloudmin system's hostname, not the managed one. Now I actually see that https://cloudmin.blabla.tld:10000/servers/link.cgi/1234561234567890/ is being opened, but then it redirects to the hostname. Maybe you need to pass something on in post or something? No idea...

Only port is missing in opened URL? How the link looks now and how it should be?

..and what should be opened? URL you specified looks good!?

In Authentic the link looks like this

 Open Webmin

In the Virtualmin Framed theme it looks like this

Open Webmin

So the link looks fine. If I click on it in the Virtualmin Framed theme, it opens fine. If I click on it in the Authentic theme it opens the new tab, but then the url gets a 302 redirection from https://cloudmin.myhost.tld:10000/servers/link.cgi/1234567890123456/ to https://blabla.myhost.tld. Could not say what the problem could be, as the links are identical...

Can you hover on that link (in left menu), click right with your mouse and choose to Copy link address in both themes and then compare them. Are they the same?

Yes, they are identical

Can you please also paste the way links look like after they are opened in tab, both in default theme and Authentic Theme?

After they open they look like that:
Virtualmin Framed: https://cloudmin.mydomain.tld:10000/servers/link.cgi/1234567890123456/
Authentic: https://virtualhost.mydomain.tld/

Ok, I finally got it. I reproduced the bug completely and made it go away. It will be fixed in version 14 in couple of days. Let me know how it works for you after so many tries. ;) Clear cache if you face an issue (shouldn't be necessary really).

Here is the little prewview that shows of how  version 14 makes it work. It replaces ../servers/link.cgi/ with full URL and makes it open as you expect.
Tested in Chrome and Firefox.
Take a look:
https://rostovtsev.ru/pub/src/authentic/14.00/issue182/made_url_being_full_and_showing_how_it_works.webm

Here is the little preview that shows of how version 14 makes it work. It replaces ../servers/link.cgi/ with full URL and makes it open as you expect.
Tested in Chrome and Firefox.
Take a look:
https://rostovtsev.ru/pub/src/authentic/13.10/issue182/made_url_being_full_and_showing_how_it_works.webm

yaaaay, it works now! :)

Ouhhh! Finally!!  :open_mouth:

Actually, there is another problem now... it only shows the Webmin tab and only the Webmin Servers Index and System and Server status in the menu, that's it... but that system also has Virtualmin Pro on it, it should show all of that... :|

You mean another problem like not opening ../servers/link.cgi/... links?

No sure I understand? Clear cache and restart Webmin... I tested it on both Virtualmin+Cloudmin GPL/Pro. All was fine.

Did that, did not help.

That's all I see when opening Webmin from Cloudmin...

Please create separate issue for that. When I tested it, I also saw Cloudmin there. Where is yours?
Why you never told me about this bug before? Cause link didn't open it? What is configuration on that user? Does it show in default theme?

...and in case you have created Cloudmin User.. When I do the same, both themes reproduce the same result. Are you expecting Virtualmin to be shown? Is it in Virtualmin theme?

I will open a separate issue for this and provide details. Sorry for the delay.

Actually, I tested by changing to Virtualmin Framed theme, same issue there... must be some new issue with Cloudmin, nothing to do with your theme this time I guess... Will open an issue at the Webmin folks :)

Alright, super! Thanks!

I actually found the above 'nested frames' to be extremely useful.  Having the cloudmin menu helped me quickly 'remember' which system I was looking at when I walked away or took a phone call.  I also find it easier to be 'framed' than digging through multiple browser tabs that shrink to just say 'webmin'.
For anyone like me the solution to get the frames back is to

edit /usr/libexec/webmin/server-manager/server-manager-lib-funcs.pl

search for "edit_webmin2" (you can find this ref in /lang/en) and remove target from array code.

I know this is a virtulmin/cloudmin issue but this thread comes up high on the search rankings.  Thanks to team Webmin and Team Authentic for making such sweet code!


Please clarify if client aad requirement is for remote desktop or all authentication to VM

It is clear from the article that RDP clients must be azure ad domain joined or registered, however it is not clear if this is a requirement to all authentication to the virtual machine.
For example, if such a VM were to host a file share, would SMB clients also need to have a relationship with AAD, or could they authenticate as Azure AD users from a stand-alone (workgroup) computer?

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

ID: c946fe0f-e18d-2529-2fbf-bce04759fbca
Version Independent ID: 885a61d1-6096-5aa0-fe8d-f1ec8d55e542
Content: Sign in to Windows virtual machine in Azure using Azure Active Directory
Content Source: articles/active-directory/devices/howto-vm-sign-in-azure-ad-windows.md
Service: active-directory
Sub-service: devices
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@Mike-Crowley Thank you for your feedback . We will investigate and update the thread.

Pending feedback from PM.

@subashsivaji & @MicrosoftGuyJFlo I'm wondering if there is any update here?

Looks like its not limited to RDP. Readers may assume this case, so perhaps no doc update is needed.
I was able to test SMB access from an AADJ workstation (Win 11 Ent. 10.0.22621.1344) and was able to connect to an Azure VM SMB share via UNC and it worked fine. Though my laptop is enabled for Azure Kerberos, I don't believe this was used (There was no ticket shown in klist.exe), and it looks like the PRT was used via SPNEGO.
https://mikecrowley.files.wordpress.com/2023/03/kerb.png


Remove extra angle brackets

Just some minor typos.

@awkoren : PR passes checklist review. Fixes are straightforward, but assigning to you because they appear in example code.


Replace json.Marshal with json.Encoder

On the foundation -> web -> response.go we have:
// Convert the response value to JSON.
	jsonData, err := json.Marshal(data)
	if err != nil {
		return err
	}

Wouldn't be this version better? Could be considered  an over-optimization?
// Convert the response value to JSON.
	e := json.NewEncoder(w)
	err := e.Encode(data)
	if err != nil {
		return err
	}

I don't know why I didn't use this form, thought it would be all in one line
if err := json.NewEncoder(w).Encode(data); err != nil {
I think I like what I have because it breaks up the marshalling from the write. In some projects I like to use MarshalIndent to make the output more easy to read. If you wanted to do this, I would do it after the call to w.WriteHeader

I ran a test and I lost some control over the response. I don't know enough to understand the API again and I really don't have time. I think I will keep those two parts separated.


Support using zprint as an as-you-type formatter

Hello,
I know we have discussed this in various places before, and I think I have dropped the ball a bit. Don't even remember what was the last thing we said on the issue. So starting aa discussion here.
I think that with the latest release, 0.5.3, and it's :indent-only setting, I could use it for Calva's indenting-while-editing functionality. But there is one thing I'd like for zprint to do, that I currently have a rather ugly hack for doing: keeping track of the cursor as the text re-formats.
My hack seems solid enough, but I am always a bit worried that it will cause trouble somewhere.
Cheers!

Thank you for re-starting this conversation.  I think we were having it in some rather more public forum, and this seems like a much better venue to work out the technical details!
I have this in my notes from out previous discussion (venue unknown):

In order to keep the formatting as you type snappy enough Calva
only formats the current enclosing (by some type of brackets)
form. The issue with newlines keeps me from trying out if zprint
is fast enough so that the current top level form could be used.
In any case I can feed the formatter with any form and deal
with padding the needed indent on it, I guess. With cljfmt I
can do this, however:

(cljfmt/reformat-string "    (fn []\nbar\nbaz)"
                       {:remove-surrounding-whitespace? false
                        :remove-trailing-whitespace? false
                        :remove-consecutive-blank-lines? false})
=> "    (fn []\n      bar\n      baz)"

It pads the indent from the first line on the following ones,
which is sort of necessary with cljfmt, because it indents some
things, but not others so I can’t do the padding myself. Doing
the same thing with zprint, for reference:

(zprint-str "    (fn []\nbar\nbaz)"
            {:style :community
             :parse-string-all? true})
=> "(fn [] bar baz)"

For what it is worth, here is the current output:
(zprint-str "    (fn []\nbar\nbaz)" {:parse-string-all? true :style [:community :indent-only]})
"(fn []\n  bar\n  baz)"

which is more what you want, though I understand about the initial indent being nice the way cljfmt does it.
This isn't about the cursor so much as just how to use zprint (or any pretty-printer) on a subset of an entire expression.  So, that may or may not be a problem in addition to the cursor issue that you have brought up, above.
Is this (how the initial indent is handled) still an issue that needs to be solved by zprint before you could use it?

Now let's talk about the cursor.   One thing that is obvious -- it will not change lines with :indent-only, because nothing changes lines with :indent-only.  So that part is easy.
The issue is, where does the cursor move on the line.  Some questions:

Can the cursor be on whitespace?  If yes, and the white space goes away, I presume that you would want it to stay on some adjacent white space.   In most cases there would be adjacent white space, but in some cases, the white space would go away completely.  For instance:

     (a b c   )
            ^

If the cursor is on the space pointed to by the ^, that space will not only go away, there will
be no spaces there at all!
    (a b c)

So, where would you want the cursor now?

Can the cursor be on some random character inside an "element"?  For example, can it be on the "e" in "let": (let [a b c d] e)?

The answer to these questions will help me come up with some ideas for an answer on how to handle the cursor.

To sum up, I think there are two potential issues:

How are leading spaces handled by zprint and :indent-only.

How can the location of the cursor be determined after formatting with :indent-only

Thanks!

Good that you dug up that thing with initial whitespace. I had forgotten about that. It would make it easier for me if zprint had an option for padding it on all lines, yes. If I remember correctly the problem this solved for me with cljfmtwas that it doesn't indent;and;;` text. So, for instance, if I let it indent this text:
    '(foo
 ;; foo
     ;; bar
    ; foo
; bar
bar
)

It will become:
    '(foo
 ;; foo
     ;; bar
    ; foo
; bar
      bar)

And I do not need to wonder which lines as should pad, and which not.
This hanging indent happens often since most formatting in Calva is  just some form and not the whole file. What I do today is figure out the cursor column of the start of the text I am formatting and then make a string of spaces that long, and tuck it at the start of the text.
About cursor positioning. What my hack today does is that I match all text from the cursor to the end of the form, disregarding whitespace, in the text before reformatting on the text after formatting, and then place the cursor at the beginning of that match. So, in your example there, the cursor will stay inside the closing paren.
There are of course some more cases with this. I recorded this gif, which I think covers it:

One more thing you can see there is that there are two modes to the reformatting. One happens as enter new lines in the form. Then no lines are removed. The other happens when I issue the reformat command (shortcut for that istab in Calva). Then I want the formatter to fold the bracket trail.
Yet another thing is that the cursor gets placed correctly indented on empty newlines. Both when they are created by pressing enter and when that reformat command is used.  I have an even uglier hack for that, and would really want the formatter to take care of that instead.
I forgot to include, in the gif, the question about if the cursor could be inside let in that form. But yes it can. Heck, I'll record a gif for that too. 😄

Cheers!

Wow.
Initial Whitespace:
zprint is going to indent any comments that are not at the top level to be at the "right" place, regardless of the number of ";" or whatever.  This reflects my coding style, and I rather think it reflects most peoples.  Not indenting comments just seems strange to me.
I'll see what I can do about keeping the initial whitespace, though my "solution" might well be "notice the white space at the start and just add that to every line before output", which is what you can do (are doing?) as well.
Cursor Position:
If you are using :indent-only, then zprint will never bring a closing paren (or anything) onto a different line.  Everything stays on its line, period.   If you are thinking of using :indent-only for the mode where you are entering lines into a form, then we can probably make it work.   Note that :indent-only doesn't just indent -- it also regularizes the spaces on the rest of the line.  So if two elements are separated by two spaces, after :indent-only they are separated by one space.
If you need to have the text reformatted (the tab shortcut), then you can get that with classic zprint.
If your two modes don't map into zprint :indent-only and classic zprint, then we don't need to figure out how to do the cursor until and unless we figure out how to get your two modes to work.
Regarding the cursor, I think that the way that we might communicate about cursor position is to use [line-number character-position].  You would specify that on input and I would return it on output.  If the position was in white space, it would probably move to the character before the next non-whitespace element on output (assuming that there is any whitespace before the element after  the whitespace).   It wouldn't stay in some random place inside the whitespace, because the only whitespace longer than one space on output is in the indent, which will get all different (in general).
I think I could do that without resorting to a hack similar to yours, if that sounds like it might be useful.
But first, let's ensure that your modes map into zprint's capabilities.

zprint is going to indent any comments that are not at the top level to be at the "right" place, regardless of the number of ";" or whatever.

That's cool with me. 😄 Then I don't need the help with initial whitespace. I can pad it on myself. (But I'll take the help, if you give it to me.)

If your two modes don't map into zprint :indent-only and classic zprint, then we don't need to figure out how to do the cursor until and unless we figure out how to get your two modes to work.

I think it will fit. I certainly don't mind it being a bit of a fuller formatting than what I have today. I will give the users the choice to use zprint or cljfmt, and different formatting results would be one reason to choose one over the other.

we might communicate about cursor position using [line-number character-position]

Works for me. Or index, whichever is easier for you.
Also, I think the cursor position after formatting sounds good. Caveat: I might be overlooking something, but what you describe makes sense to me.
What's importan is that in the entering-lines mode, the cursor ends up correctly indented on the new line. (Though I have a hack for that, so in case it is tricky on your end, I'll keep using the hack.)
One thing though:

the only whitespace longer than one space on output is in the indent

There is the case when things inside a map, bindings box and similar get aligned (I believe I'v seen that feature mentioned for zprint). But I still think the general strategy you mention, for repositioning the cursor, will work.
There are two more things I come to think of now.

VS Code has awesome multi-cursors. My hacks do not suffice for supporting this today. If zprint could deal with that, it would be a vast improvement over today's situation.
If there is a selection when the command to format the current list is performed, it would be nice to have that selection retained. (And multi-cursors means we can have multiple selections.)

I'll try to make some experimentation with the two modes now. This will be fun!

Didn't know about this issue and it sounds super cool, especially because we adopted zprint and use many of our devs use Calva we naturally are very interested in having the two working seamlessly!


[fix] POP3 is Still Down

Received the email about 3 hours ago:
We're fixing a bug right now with POP3 moving of messages - should be
fixed within an hour.

POP3 is still not working:

@titanism - Yes, it seems to be working ok now, thank you.


Test fails when unit testing

Hi everyone. I have a problem when I am running unit test 21_ngspice_delay_test. The tech scn4m_subm can pass the test but freepdk45 cannot. According to the sram.log file, the error is
ERROR: file delay.py: line 708: Timed out, could not find a feasible period.
Is there any way I can get the relative accurate delay under freepdk45 ?

This is an issue that the PTM models from FreePDK45 aren't included by default. It can't find the models and so simulations fail with whatever default device models are in ngspice.

Thanks for your help!
I have successfully passed that unit test under freepdk45.


fix win32 api requirement, fix sizing, make host/port configurable

I have updated the package and now there is no more dependency on win32api.


Import failing with remote backend

Provider Version
v0.23.2
Terraform Version
v0.12.31
Describe the bug
Run terraform import (I've tried with schemas and with storage integrations) and while the planning portion of the import, the refreshing state portion fails to pass the account information to the
Expected behavior
Expect the existing resources to be imported
Code samples and commands
terraform import 'module.datapipeline-snowflake.snowflake_storage_integration.aws_export[0]' CUST_PROD_AWS_INGEST

Acquiring state lock. This may take a few moments...
module.datapipeline-snowflake.snowflake_storage_integration.aws_export[0]: Importing from ID "CUST_PROD_AWS_INGEST"...
module.datapipeline-snowflake.snowflake_storage_integration.aws_export[0]: Import prepared!
  Prepared snowflake_storage_integration for import
module.datapipeline-snowflake.snowflake_storage_integration.aws_export[0]: Refreshing state... [id=CUST_PROD_AWS_INGEST]

Error: could not build dsn for snowflake connection: 260000: account is empty
Error: could not build dsn for snowflake connection: 260000: account is empty

From the debug logs, the portion that seems to fail is running query stmt SHOW STORAGE INTEGRATIONS LIKE 'CUST_PROD_AWS_INGEST' which never authenticates and raises the error
Additional context
We're using an s3 backend and successfully running terraform applies in multiple places.

It turns out that this was a problem with configuration related to new versions of terraform. We were defining providers in a module which is being deprecated. It should still be supported in v0.12 but we want to switch over to be v0.13 compliant anyway so won't raise any concerns with terraform developers here.


Analyzer process stderr/out debug info

When an analyzer process exits with a non-zero code, return an error message
that contains the (truncated) output from stderr and stdout.
Also include a StderrPath and StdoutPath in the analyzer configuration, that
outputs the analyzer process stderr/stdout to the specified path.
Also:

Add ability to read analyzer configuration from a yaml file. This useful
functionality was required for tests.

Part of #16

I understand the spirit of what's being achieved here and the test makes sense. However, it's unclear to me what's meant by an "analyzer process" beyond the kind of single script as it's being used in the test. I'd guess that this is what would allow a user to do things like point at alternate Zeek/Suricata or add additional processes in the pipeline beyond the current combo of pcap index + Zeek/Suricata + reading the logs via the Zed platform, but I can't tell from the test example if that's already possible, and if so, how. My primary motive for asking is that I'd like to take the verification a step further by doing something like pointing at an intentionally broken Zeek/Suricata and seeing how this compares to the prior debug experience.

However, it's unclear to me what's meant by an "analyzer process" beyond the kind of single script as it's being used in the test.

@philrz all brimcap analyze really does is:

Execute a list of processes (creates a tempdir for each process)
Tee a pcap file into stdin for each process
Tail a the log files that are emitted

I've called them analyzers because they're really just performing analysis on a stream of pcaps. The generalization helps make it more flexible over just hardcoding in zeek and suricata. Indeed this is helpful for writing tests (which is important) but I believe there are other good things about this approach. For starters it makes the code simpler, it's just configs based on the three steps above, no specialized logic like we have in zqd. Once we get rid of the runners I imagine it would be useful to users to see the default config, for instance how we run zeek by basically feeding it zeek -C -r -, and see that it's easy for them to customize themselves. Additionally you could add analyzer processes, though I'm not sure if other ones exist, but for instance for brimcap index is an analyzer process in its own right, we could have this as part of the configuration.


chore(deps): update common-dev-assets digest to 909dabb

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
ddd4511 -> 909dabb

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

:tada: This PR is included in version 1.8.9 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Watch URL for changes

If anything in the URL gets changed, these values should be reloaded in the dashboard. For example on change of a var.<template var>.

I can't detect simply changing attrs in the location bar and updating the UI. I can detect changes if you hit "enter" after making your changes.
is that good?

Yes, that sounds fine.
Duplicate of #204.


cannot use EventEmitter.call(···)

for:
EventEmitter.call(this);

the error message:
15:     EventEmitter.call(this);
         ^^^^^^^^^^^^^^^^^^^^^^^ call of method `call`
 15:     EventEmitter.call(this);
                      ^^^^ property `call`. Property not found in
465:   declare class EventEmitter extends events$EventEmitter {}
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ statics of EventEmitter. See: /private/tmp/flow/flowlib_2ed57059/node.js:465

because technically EventEmitter isn't ES6 class, and not only use exclusively with class inherit i think it's fully legally to use EventEmitter.call(···)

Found this while searching for the answer myself....leaving here for future searches.
use instanceof to tell flow what you're doing.
if (EventEmitter instanceof Function) {
  EventEmitter.call(this);
}

This is from the  Flow, meet Underscore case study.

It looks like this works now 😊
https://flow.org/try/#0JYWwDg9gTgLgBAbwKIDcCmA7GSTBjNKAXzgDMoIQ4ByNdLagbgChnVNtd9CA6AYwCGAGyEAKGAAtgAZwCULIA


Update index.html

added analog clock besides of digital clock
Title and Issue number

Close Enhancing user Experience #1159

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

Follow PR template properly


Error in documentation regarding ItemDefinitionGroup metadata

Hi @Sarabeth-Jaffe-Microsoft, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Sarabeth Jaffe). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

@rainersigwald @andygerlicher @rainers

Thanks for clarification, it's much clearer now.


Add Magic Leap SDK and build tools

Tool information

Tool name: Magic Leap SDK
Tool license:  https://id.magicleap.com/terms/developer
Add or update? Add
Desired version: latest
Approximate size:
If this is an add request:

Brief description of tool: Magic Leap SDK tools for building to the Magic Leap One device
URL for tool's homepage: https://developer.magicleap.com/downloads/lab

Area for Triage:

Packages
Question, Bug, or Feature?:

Feature
Virtual environments affected

[x] macOS 10.15
[ ] Ubuntu 16.04 LTS
[ ] Ubuntu 18.04 LTS
[ ] Ubuntu 20.04 LTS
[x] Windows Server 2016 R2
[x] Windows Server 2019

Can this tool be installed during the build?

No, it cannot.

Download The Lab from the developer page
Login
Download SDK and build tools from the embedded package manager
Add MLSDK to environment path

Tool installation time in runtime

Are you willing to submit a PR?

No, as I'm unsure how to add this tool without manual steps.

Hello, @StephenHodgson
Sorry, but we can pre-installed Magic Leap SDK on Windows/macOS images due to policy license agreement - https://www.magicleap.com/en-us/legal/software-eula
2. RESERVATION OF RIGHTS AND RESTRICTIONS
2.1
The Lumin Software is licensed and not sold. Magic Leap and its licensors retain all right, title and interest in and to the Lumin Software, and all intellectual property rights therein, including any Updates and improvements, copies, translations, adaptations, modifications, derivations and enhancements of the Lumin Software. Magic Leap does not transfer to you any right, title or interest in or to the Lumin Software.
2.2
You may not, nor allow a third party to do any of the following: (a) make any archival copies of the Lumin Software; (b) work around, interfere with, exceed, or circumvent any technical limitations or software protection measures in the Lumin Software; (c) modify, adapt, alter, rent, lease, loan or distribute the Lumin Software or use the Lumin Software in the operation of a service bureau or for the benefit of a third party; (d) reverse engineer, decompile, translate, disassemble or otherwise attempt to derive any source code of the Lumin Software (except as and only to the extent permitted by applicable law); (e) create derivative or merged works of the Lumin Software or separate the component parts of the Lumin Software; (f) input, upload, transmit or otherwise provide to or through the Lumin Software any unlawful or malicious information, materials or code;
(g) alter or remove any proprietary rights notices or legends on or in the Lumin Software; (h) use the Lumin Software in hazardous environments requiring fail-safe performance, including, without limitation, the operation of nuclear facilities, aircraft navigation, or communication systems, air traffic control, direct life support machines or weapons systems (collectively, “Restricted Use”); or (i) use the Lumin Software for thedevelopment, provision or use of a competing software service or product.

Ah I understand. Than for looking into this.


ja: Make docs/tasks/service-catalog/install-service-catalog-using-helm.md follow v1.18 of the original text

This is a Feature Request

What would you like to be added
Update docs/tasks/service-catalog/install-service-catalog-using-helm.md to follow v1.18 of the original (English) text.
Why is this needed
content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md is outdated.
Comments
/language ja
/good-first-issue
File to update
https://github.com/kubernetes/website/blob/dev-1.18-ja.1/content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md
Original
https://github.com/kubernetes/website/blob/fb6364d/content/en/docs/tasks/service-catalog/install-service-catalog-using-helm.md
diff between translated and v1.18
https://gist.github.com/0ba3b1088774539af0ccf4f8d846a568
Note
Currently, we use dev-1.18-ja.1 branch. Please open a PR targeting the branch.
ref
https://kubernetes.io/ja/docs/contribute/localization/
If you have a question, feel free to ask us at slack.k8s.io #kubernetes-docs-ja channel

/assign

/close


Update config.go

Adding a new line break, please accept it.

Please 👍

🧯💨

I would add 4 lines, just to trigger your dad's OCD.

@theoniedbalski now deal with this; 1 reviewer thinks is a bad idea, the other says "looks good to me".


Implemented scoped bindings

This PR adds support for scoped bindings. It adds a new ScopeBindings attribute which may be used on controllers or controller methods.
Usage
Following the Laravel documentation, the following example...
Route::get('/users/{user}/posts/{post}', function (User $user, Post $post) {
    return $post;
})->scopeBindings();

...can now be implemented using route attributes as well:
class PostsController
{
    #[Get('/users/{user}/posts/{post}')]
    #[ScopeBindings]
    public function getUserPost(User $user, Post $post)
    {
        return $post;
    }
}

Grouped routes
As the attribute may be used on controllers, this also covers the grouped example case:
Route::scopeBindings()->group(function () {
    Route::get('/users/{user}/posts/{post}', function (User $user, Post $post) {
        return $post;
    });
});

becomes:
#[ScopeBindings]
class PostsController
{
    #[Get('/users/{user}/posts/{post}')]
    public function getUserPost(User $user, Post $post)
    {
        return $post;
    }
}

@freekmurze Tests seem to be failing on Laravel < 8.70, because implicit scoping was just added then. If you'd still want to accept the PR, what's your policy on backwards compatibility here? Inline checks, a raised minimum version requirement?

Feel free to raise the minimum requirements.

This is a quality PR! Thanks!


Chap3:handing missing values of categorical variables

hey guys:
I was doing ex3,and I met some problems. when dealing with categorical variable,
Hope somebody can help
Best wishes.And appreciated if you can help.
class MostFrequentImputer(BaseEstimator, TransformerMixin):     def fit(self, X, y=None):         self.most_frequent_ = pd.Series([X[c].value_counts().index[0] for c in X],                                         index=X.columns)         return self     def transform(self, X, y=None):         return X.fillna(self.most_frequent_)
class MostFrequentImputer(BaseEstimator, TransformerMixin):     def fit(self, X, y=None):         self.most_frequent_ = pd.Series([X[c].value_counts().index[0] for c in X],                                         index=X.columns)         return self     def transform(self, X, y=None):         return X.fillna(self.most_frequent_)
cat_pipeline = Pipeline([         ("select_cat", DataFrameSelector(["Pclass", "Sex", "Embarked"])),         ("imputer", MostFrequentImputer()),         ("cat_encoder", OneHotEncoder(sparse=False)),     ])
cat_pipeline.fit_transform(train_data)
 in (.0)
1 class MostFrequentImputer(BaseEstimator, TransformerMixin):
2     def fit(self, X, y=None):
----> 3         self.most_frequent_ = pd.Series([X[c].value_counts().index[0] for c in X],
4                                         index=X.columns)
5         return self
IndexError: arrays used as indices must be of integer (or boolean) type

Sorry for that ,i found the mistakes that in the code,sorry for that


s3FileTransfer progress never reaches 1.0

When observing a progress value of an upload or download progress number stops at. 0.98 or 0.99
`
let _ = s3FileTransfer.copy(
from: inputFolder,
to: S3File(url: zipUrl)!){ progress in
self.uploadingProgress = progress
print(progress)
if progress > 0.98{
print("Scan Images zip uploaded successfully")
        }
    }`

I can add a call at the end to ensure the progress callback is called with 1.0 but you shouldn't be using the progress value as an indication the copy has finished. Use whenComplete on the EventLoopFuture returned by the function.


Update sys-dm-pdw-exec-requests-transact-sql.md

Total_elapsed_time = end_time - submit_time

@tomfalkowski : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@sign-off

@XiaoyuMSFT - Thanks for reviewing the PR.
Publishing is suspended until Tuesday, May 19. Merging will resume 7:00 AM PT Tuesday.
This PR is ready for merge.


Turn off Mobile Commons subscriptions for the 26+ Club

As specified in #4058, this PR turns off Mobile Commons subscriptions for persons older than 26 years old.

CC @DeeZone

Based on https://github.com/DoSomething/dosomething/blob/dev/lib/modules/dosomething/dosomething_user/dosomething_user.module#L494 looks good.
+1


Update ALZ-Corp-Default.jsonc

Added the missing role display name

Please see the Discussion I opened. This was missing so I added it but it does yet not fix a minor thing as described over there.


Update README to Reflect Some Example Users

Add new example users

@swift-ci Please test

Cool! Could you also add a "users" section in https://github.com/apple/indexstore-db 🙂?

Cool! Could you also add a "users" section in https://github.com/apple/indexstore-db 🙂?

Sure, PR is here: https://github.com/apple/indexstore-db/pull/59


Build is Broken

git clone https://github.com/remkop/picocli.git && cd picocli && ./gradlew build fails.
https://github.com/remkop/picocli/actions is all red.
https://github.com/remkop/picocli/commits/main/ has "red cross" since the changes on Nov 12 (was still green on Sep 18).
#2148 broke it.
#2172 fixes it for me locally, but is still red (37 cancelled and 3 failing checks) on GitHub; I haven't looked more closely into why.
@remkop

It seems to have gotten a bit better now, but I think the build on Java 6 is still broken and fails on the main branch?
Note https://github.com/remkop/picocli/actions?query=branch%3Amain
Let's see what's green and red e.g. on Test #2177 ...
The failures on #2176 and #2170 may be due to this, not caused by the changes in those PRs.
@remkop

Okay I will merge your outstanding PRs, then we can see if any problems remain...
Thank you for your help!

see #2177


VPP Not Starting On Recent Releases

Hi,
After building container image (BUILD_TYPE=release make image) from using release 1.6.0 and above (including the latest pull from master), upg-vpp is not able to start:
root@vpp-upf-dpdk-84d4d8b8ff-xgglm:/# vpp -c /etc/vpp/startup.conf
vpp: Relink `/lib/x86_64-linux-gnu/libhs_runtime.so.5' with `/lib/x86_64-linux-gnu/libhs.so.5' for IFUNC symbol `dbIsValid'
perfmon              [warn  ]: skipping source 'intel-uncore' - intel_uncore_init: no uncore units found
0: tls_init_ca_chain:609: Could not initialize TLS CA certificates
0: tls_mbedtls_init:644: failed to initialize TLS CA chain
0: tls_init_ca_chain:976: Could not initialize TLS CA certificates
0: tls_openssl_init:1050: failed to initialize TLS CA chain
Aborted

startup-config:
unix {
  nodaemon
  log /tmp/vpp.log
  full-coredump
  gid vpp
  interactive
  cli-listen /run/vpp/cli.sock
  exec /etc/vpp/init.conf
}

cpu {
  main-core 0
  corelist-workers 18
}
dpdk {
 dev 0000:00:06.0 {name n3}
 dev 0000:00:07.0 {name n4}
 dev 0000:00:08.0 {name n6}
}

api-trace {
  on
}

api-segment {
  gid vpp
}

plugins {
    path /usr/lib/x86_64-linux-gnu/vpp_plugins/
    plugin dpdk_plugin.so { enable }
    plugin gtpu_plugin.so { disable }
    plugin upf_plugin.so { enable }
}

ip table add 1
ip table add 2

set interface ip table n3 1
set interface mtu 9001 n3
set interface ip address n3 <IP_ADDRESS>/24
set interface state n3 up

set interface ip table n4 0
set interface mtu 9001 n4
set interface ip address n4 <IP_ADDRESS>/24
set interface state n4 up

set interface ip table n6 2
set interface mtu 9001 n6
set interface ip address n6 <IP_ADDRESS>/24
set interface state n6 up

ip route add <IP_ADDRESS>/0 table 2 via <IP_ADDRESS> n6
ip route add <IP_ADDRESS>/0 table 1 via <IP_ADDRESS> n3
ip route add <IP_ADDRESS>/8 table 2 via <IP_ADDRESS> n6

upf pfcp endpoint ip <IP_ADDRESS> vrf 0

upf nwi name access vrf 1
upf nwi name internet vrf 2

upf gtpu endpoint ip <IP_ADDRESS> nwi access teid 0x000004d2/2

When I disabled the upf plugin, vpp was able to start without any issue, wanted to confirm if there are some changes in the config or any other dependencies with regards to the recent releases?

@.***:/# vpp -c /etc/vpp/startup.conf
vpp: Relink /lib/x86_64-linux-gnu/libhs_runtime.so.5' with /lib/x86_64-linux-gnu/libhs.so.5' for IFUNC symbol `dbIsValid'
perfmon              [warn  ]: skipping source 'intel-uncore' - intel_uncore_init: no uncore units found
0: tls_init_ca_chain:609: Could not initialize TLS CA certificates
0: tls_mbedtls_init:644: failed to initialize TLS CA chain
0: tls_init_ca_chain:976: Could not initialize TLS CA certificates
0: tls_openssl_init:1050: failed to initialize TLS CA chain
Aborted

To your startup-config, try adding this line:
heapsize 2G

Thanks @mitmitmitm, works now

Hi，Could you share the soultion about the docker-compose and dockerfile？I build it by source code ,and move the upf._plugins.so to the vpp's plugins directory，then I would like to integrate it into OAI.
Looking forward to your reply！Thank you！


transfer ownership of repo

Need to transfer ownership of repo:

[ ] Eric transfers ownership to Jeremy
[ ] Jeremy gives Eric maintain permission
[ ] Check that GitHub secrets get transferred
[ ] Eric & Jeremy check that workflow with pins and Posit Connect still works

AZMET organization created, transferred azmetr.  Next step is to transfer this repo.


--client-cert-path option doesn't work

Describe the bug
Using --client-cert-path option in jfrog rt rc command returns the following error [Error] Failed loading client certificate: open : no such file or directory
To Reproduce
run the following command JFROG_CLI_LOG_LEVEL=DEBUG jfrog rt rc --server-id <server-id> --client-cert-path server.pem --url <Artifactory URL> template.json
Expected behavior
The requested repo to be created and jfrog CLI to connect to the Artifactory instance using the certificate provided.
Versions

JFrog CLI version: 2.1.1
JFrog CLI operating system: MacOS Big Sur 11.5
Artifactory Version: 7.21.8

Additional context
I had to use jfrog rt curl --cacert server.pem ... instead as a workaround and my curl command got executed successfully with a few warnings
[Warn] Attempt 0 - Failure occurred while sending GET request to https://<URL>/artifactory/api/system/version - Get "https://<URL>/artifactory/api/system/version": x509: certificate signed by unknown authority
[Warn] Attempt 1 - Failure occurred while sending GET request to https://<URL>/artifactory/api/system/version - Get "https://<URL>/artifactory/api/system/version": x509: certificate signed by unknown authority
[Warn] Attempt 2 - Failure occurred while sending GET request to https://<URL>/artifactory/api/system/version - Get "https://<URL>/artifactory/api/system/version": x509: certificate signed by unknown authority
[Warn] Attempt 3 - Failure occurred while sending GET request to https://<URL>/artifactory/api/system/version - Get "https://<URL>/artifactory/api/system/version": x509: certificate signed by unknown authority

Thanks for reporting this, @EslamElHusseiny.
According to your description, it appears that you are also missing --client-cert-key-path.
I will change the error message to make it more clear.

Is this still an outstanding bug?
The cert file exists and is in PEM format.
But I am getting an error that the file does not exist.


mask file question

Hi,
First time user to image analysis and processing. I've used both dcm2niix as well as 3DSlicer to export dicom images to imaging formats that pyradiomics can use. However, it's not clear to me from the documentation what the "mask file" that must be included when running the utility.
I'm using DICOM image files from https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI
Thanks

The mask file is an image with the same size/geometry as the input image you've obtained from the DICOM image files. However, instead of pixel intensities, values of the individual pixels denote to which region of interest the corresponding pixel belongs, by assigning it a label value. Value of '0' denotes background (no ROI).
See also here on the slicer wiki:

label map volume is a 3D scalar volume node where each voxel is a number indicating the type of tissue at that location. A label volume is associated with a Color Node that maps the numbers into colors and text strings.

These mask files are needed to allow PyRadiomics to determine which voxels should be part of the calculation of the features and which should be ignored.

For further reading, I can recommend the IBSI document, which details a lot of the steps for Radiomic feature extraction (section 2.3 details segmentation).
Moreover, this paper gives a very nice overview of Radiomics and the challenges that may arrise:
Kumar V, Gu Y, Basu S, et al. Radiomics: the process and the challenges. Magn Reson Imaging. 2012;30(9):1234-1248. doi:10.1016/j.mri.2012.06.010.

Specifically for the LIDC collection, it is already accompanied by the segmentations ("masks") of the nodules. Those are available in multiple representations, and you can learn more details from this preprint:
Fedorov A, Hancock M, Clunie D, Brochhausen M, Bona J, Kirby J, Freymann J, Pieper S, Aerts H, Kikinis R, Prior F. 2018. Standardized representation of the LIDC annotations using DICOM. PeerJ Preprints 6:e27378 https://doi.org/10.7287/peerj.preprints.27378


Updated Login and Register functionality

Updated Login.js for Login and Register functionality

Removed unused files

looks good


carpetplot without scientific notation

Coverage decreased (-0.5%) to 69.226% when pulling 4e9d6378a06e4d32832b505bca4fa4a30968dcdd on kdebrab:develop into aa994e71a9b36f2c726f966e38ffec261136542a on opengridcc:develop.

Coverage decreased (-0.2%) to 69.493% when pulling 4e9d6378a06e4d32832b505bca4fa4a30968dcdd on kdebrab:develop into aa994e71a9b36f2c726f966e38ffec261136542a on opengridcc:develop.


Update Site settings “info”

Automatically generated by Netlify CMS

:construction_worker: Deploy Preview for silly-jackson-2a5498 processing.
:hammer: Explore the source changes: a61d1bef26e5d4d60365a2a0af5ba5f5571b57b3
:mag: Inspect the deploy log: https://app.netlify.com/sites/silly-jackson-2a5498/deploys/60eba91bc6e30400082b8d16