Significant performance difference of NNX relative to equinox

I decided to try the nnx vs. equinox for performance and am seeing significant differences (3'ish times slower for nnx).  Could be that I wrote a poor MLP implementation or made a collosal profiling mistake.
My apologies if the benchmarking itself is flaws or the MLP implementation is incorrect in some way.  But if it is the later, it shows that a documented MLP implementa`ton for NNX to copy/paste might help.
System information

latest released NNX
Tried on laptop (macos with CPU) as well as colab with an accelerator

Problem you have encountered:
The performance of my test suite on my CPU is
Time taken NNX: 0.00055 seconds
Time taken EQX: 0.00019 seconds

And on the colab T4 GPU runtime
Time taken NNX: 0.00220 seconds
Time taken EQX: 0.00066 seconds

Steps to reproduce:
Test Suite:
import typing as tp
import jax
import jax.numpy as jnp
from flax import nnx
from flax.nnx.nnx import rnglib
from flax.typing import Dtype, PrecisionLike
import equinox as eqx
import time

class MLP(nnx.Module):
    def __init__(
        self,
        in_features: int,
        out_features: int,
        *,
        width: int,
        depth: int,
        activation: tp.Callable,
        rngs: rnglib.Rngs,
        use_bias: bool = True,
        use_final_bias: bool = True,
        final_activation: tp.Optional[tp.Callable] = None,
        dtype: tp.Optional[Dtype] = None,
        param_dtype: Dtype = jnp.float32,
        precision: PrecisionLike = None,
    ):
        self.in_features = in_features
        self.out_features = out_features
        self.width = width
        self.depth = depth
        self.use_bias = use_bias
        self.use_final_bias = use_final_bias
        self.activation = activation
        self.final_activation = final_activation
        assert depth > 0  # skipping specialization of no hidden layers

        self.layers = []
        self.layers.append(
            nnx.Linear(
                in_features,
                width,
                use_bias=use_bias,
                dtype=dtype,
                param_dtype=param_dtype,
                precision=precision,
                rngs=rngs,
            )
        )
        for i in range(self.depth - 1):
            self.layers.append(
                nnx.Linear(
                    width,
                    width,
                    use_bias=self.use_bias,
                    dtype=dtype,
                    param_dtype=param_dtype,
                    precision=precision,
                    rngs=rngs,
                )
            )
            self.layers.append(self.activation)
        self.layers.append(
            nnx.Linear(
                width,
                out_features,
                use_bias=self.use_final_bias,
                dtype=dtype,
                param_dtype=param_dtype,
                precision=precision,
                rngs=rngs,
            )
        )
        if self.final_activation is not None:
            self.layers.append(self.final_activation)

    def __call__(self, x: jax.Array) -> jax.Array:
        for layer in self.layers:
            x = layer(x)
        return x

if __name__ == "__main__":
    rngs = nnx.Rngs(0)

    @nnx.jit
    def my_test(batch, model):
        @nnx.jit
        def loss_closure(f):
            return jnp.mean(jax.vmap(f)(batch))

        loss_val, loss_grad = nnx.value_and_grad(loss_closure)(model)
        return loss_val
    n_in = 64
    n_out = 1
    depth = 3
    width = 128
    activation = nnx.relu
    model = MLP(n_in, n_out, width=width, depth=depth, activation=activation, rngs=rngs)
    my_batch = jax.random.normal(rngs(), (20, n_in))

    # Time NNX
    out = my_test(my_batch, model).block_until_ready()
    start_time = time.time()
    out = my_test(my_batch, model).block_until_ready()
    end_time = time.time()
    print(f"Time taken NNX: {end_time - start_time:.5f} seconds")

    @eqx.filter_jit
    def my_test_eqx(batch, model):
        @eqx.filter_jit
        def loss_closure(f):
            return jnp.mean(jax.vmap(f)(batch))

        loss_val, loss_grad = eqx.filter_value_and_grad(loss_closure)(model)
        return loss_val
    equinox_model = eqx.nn.MLP(n_in, n_out, width_size=width, depth=depth, activation=activation, key=rngs())

    # Time Equinox
    out = my_test_eqx(my_batch, equinox_model)
    start_time = time.time()
    out = my_test_eqx(my_batch, equinox_model).block_until_ready()
    end_time = time.time()
    print(f"Time taken EQX: {end_time - start_time:.5f} seconds")

On colab you need to do ! pip install equinox

To add to this: the performance of linen seems to be similar to NNX.  Although I am even less clear how to profile there.  Here was my implementation
import typing as tp
import jax
import jax.numpy as jnp
import flax.linen as linen
from flax.core import freeze, unfreeze
from flax.training import train_state
from flax.typing import Dtype, PrecisionLike
import optax
import time

class MLPLinen(linen.Module):
    in_features: int
    out_features: int
    width: int
    depth: int
    activation: tp.Callable
    use_bias: bool = True
    use_final_bias: bool = True
    final_activation: tp.Optional[tp.Callable] = None
    dtype: tp.Optional[Dtype] = None
    param_dtype: Dtype = jnp.float32
    precision: PrecisionLike = None

    @linen.compact
    def __call__(self, x: jax.Array) -> jax.Array:
        x = linen.Dense(
            self.width,
            use_bias=self.use_bias,
            dtype=self.dtype,
            param_dtype=self.param_dtype,
            precision=self.precision,
        )(x)
        for _ in range(self.depth - 1):
            x = self.activation(x)
            x = linen.Dense(
                self.width,
                use_bias=self.use_bias,
                dtype=self.dtype,
                param_dtype=self.param_dtype,
                precision=self.precision,
            )(x)
        x = linen.Dense(
            self.out_features,
            use_bias=self.use_final_bias,
            dtype=self.dtype,
            param_dtype=self.param_dtype,
            precision=self.precision,
        )(x)
        if self.final_activation is not None:
            x = self.final_activation(x)
        return x

def create_train_state_linen(rng, model, learning_rate):
    params = model.init(rng, jnp.ones([1, model.in_features]))['params']
    tx = optax.adam(learning_rate)
    return train_state.TrainState.create(apply_fn=model.apply, params=params, tx=tx)

def compute_loss_linen(params, batch, model_apply_fn):
    logits = model_apply_fn({'params': params}, batch)
    loss = jnp.mean(logits)
    return loss

@jax.jit
def train_step_linen(state, batch):
    grad_fn = jax.value_and_grad(compute_loss_linen)
    loss, grads = grad_fn(state.params, batch, state.apply_fn)
    state = state.apply_gradients(grads=grads)
    return state, loss

if __name__ == "__main__":
    rng = jax.random.PRNGKey(0)
    n_in = 64
    n_out = 1
    depth = 3
    width = 128
    activation = linen.relu
    model = MLPLinen(n_in, n_out, width=width, depth=depth, activation=activation)

    state = create_train_state_linen(rng, model, learning_rate=0.001)
    my_batch = jax.random.normal(rng, (20, n_in))

    # Time Linen
    state, loss_val = train_step_linen(state, my_batch)
    jax.block_until_ready(loss_val)
    start_time = time.time()
    state, loss_val = train_step_linen(state, my_batch)
    jax.block_until_ready(loss_val)
    end_time = time.time()
    print(f"Time taken Linen: {end_time - start_time:.5f} seconds")

Hey @jlperla, can you use timeit or similar to report the results? A single step, specially the first one that involves compilation is not very meaningful.
That said, this is what I would expect:

Linen should be the fastest one as the params structure is a simple dictionary and you are using regular jax.jit. JAX has optimized code to traverse dicts.
Both NNX and Equinox suffer due to python being slow, see Low-overhead training loops.

@ASEM000 correct. Ideally we document how to overcome the overhead problem in the near future.

@cgarciae @ASEM000   Absolutely.  But the issue is comparing the relative overhead of NNX vs. Equinox for the same pattern? I find the timeit hard to use, but made sure things were compiled and retried multiple times?
Why the equinox code would be so much faster than NNX (which seems roughly similar to flax linen)?  What is the overhead that would be so much more significant there, using the same coding pattern?  If you look at my code I am isolating a single "value and grad" call, no optimizer overhead or training loop.  And precompiling it before timing.
So either
0) It looks like my two sets of code are doing the same thing, but they really aren't.

I implemented the MLP poorly in NNX, which is VERY likely, and the one in equinox is done correctly.
There is some sort of overhead in the filtering process which is significantly more expensive in NNX vs. equinox. Maybe a manual split and combine (which can be done in both) would make it disappear

We will add a guide on NNX transforms explaining how they work under the hood in the future.

Some documentation would be very useful, also ran into this when profiling nnx vs. linen.

Linen is already low-overhead, I'll try to add it to the benchmark.

@cgarciaethanks, this helps a lot. I don't feel like you need to compare to equinox in your docs. My main concern was that it seemed to be 3x slower for the same task. But if you are doing more bookkeeping, then it isn't really the same task.
and just to confirm: my MLP implementation is as high performance as possible? If so, maybe that is helpful to have in the docs for people to adapt.

I believe so. @jlperla do you want to contribute it as an NNX example?
While we don't let people directly import examples we can point to it on the documentation and it could serve as a reference implementation that people can easily copy into their codebase.

@cgarciae OK, here is my attempt comparing your code.  The summary is now:

equinox partition-combine vs. NNX split-merge has roughly the same performance
NNX filtering is roughly the same speed as linen (but that is a little unfair to linen, if you look at my code, since I couldn't decouple the gradient calculation from setting up an optimizer).
equinox filtering without manual splitting is roughly 2-3 times faster than NNX splitting.
I didn't do the equivalent to https://docs.kidger.site/equinox/tricks/#low-overhead-training-loops which does a full flatten to really speed things up, which might make sense in library code even if it is too ugly for most user code.  You might want to consider an example in your docs which does the equivalent full flattening, but I think lower priority.

At this point I am now convinced that there is nothing fundamentally different between NNX and Equinox that holds back performance, even if there is probably some performance tweaks that may occur in the future.  I feel like you could close out this issue and I could prepare a simple example for the docs (without the performance comparisons) if you are willing?  Maybe a simple nonlinear regression with an example MLP?
If you are interested, here was my code, which runs on my system as
Time taken NNX: 0.000358 seconds
Time taken NNX Split: 0.000054 seconds
Time taken EQX: 0.000130 seconds
Time taken EQX Split: 0.000051 seconds
Time taken Linen: 0.000394 seconds

import typing as tp
import jax
import jax.numpy as jnp
from flax import nnx
from flax.nnx.nnx import rnglib
from flax.typing import Dtype, PrecisionLike
import equinox as eqx
import time
import flax.linen as linen
from flax.core import freeze, unfreeze
from flax.training import train_state
from functools import partial
import optax

class MLPLinen(linen.Module):
    in_features: int
    out_features: int
    width: int
    depth: int
    activation: tp.Callable
    use_bias: bool = True
    use_final_bias: bool = True
    final_activation: tp.Optional[tp.Callable] = None
    dtype: tp.Optional[Dtype] = None
    param_dtype: Dtype = jnp.float32
    precision: PrecisionLike = None

    @linen.compact
    def __call__(self, x: jax.Array) -> jax.Array:
        x = linen.Dense(
            self.width,
            use_bias=self.use_bias,
            dtype=self.dtype,
            param_dtype=self.param_dtype,
            precision=self.precision,
        )(x)
        for _ in range(self.depth - 1):
            x = self.activation(x)
            x = linen.Dense(
                self.width,
                use_bias=self.use_bias,
                dtype=self.dtype,
                param_dtype=self.param_dtype,
                precision=self.precision,
            )(x)
        x = linen.Dense(
            self.out_features,
            use_bias=self.use_final_bias,
            dtype=self.dtype,
            param_dtype=self.param_dtype,
            precision=self.precision,
        )(x)
        if self.final_activation is not None:
            x = self.final_activation(x)
        return x

class MLP(nnx.Module):
    def __init__(
        self,
        in_features: int,
        out_features: int,
        *,
        width: int,
        depth: int,
        activation: tp.Callable,
        rngs: rnglib.Rngs,
        use_bias: bool = True,
        use_final_bias: bool = True,
        final_activation: tp.Optional[tp.Callable] = None,
        dtype: tp.Optional[Dtype] = None,
        param_dtype: Dtype = jnp.float32,
        precision: PrecisionLike = None,
    ):
        self.in_features = in_features
        self.out_features = out_features
        self.width = width
        self.depth = depth
        self.use_bias = use_bias
        self.use_final_bias = use_final_bias
        self.activation = activation
        self.final_activation = final_activation
        assert depth > 0  # skipping specialization of no hidden layers

        self.layers = []
        self.layers.append(
            nnx.Linear(
                in_features,
                width,
                use_bias=use_bias,
                dtype=dtype,
                param_dtype=param_dtype,
                precision=precision,
                rngs=rngs,
            )
        )
        for i in range(self.depth - 1):
            self.layers.append(
                nnx.Linear(
                    width,
                    width,
                    use_bias=self.use_bias,
                    dtype=dtype,
                    param_dtype=param_dtype,
                    precision=precision,
                    rngs=rngs,
                )
            )
            self.layers.append(self.activation)
        self.layers.append(
            nnx.Linear(
                width,
                out_features,
                use_bias=self.use_final_bias,
                dtype=dtype,
                param_dtype=param_dtype,
                precision=precision,
                rngs=rngs,
            )
        )
        if self.final_activation is not None:
            self.layers.append(self.final_activation)

    def __call__(self, x: jax.Array) -> jax.Array:
        for layer in self.layers:
            x = layer(x)
        return x

if __name__ == "__main__":
    rngs = nnx.Rngs(0)

    @nnx.jit
    def my_test(batch, model):
        def loss_closure(f):
            return jnp.mean(jax.vmap(f)(batch))

        loss_val, loss_grad = nnx.value_and_grad(loss_closure)(model)
        return loss_val

    @jax.jit
    def my_test_split(batch, graphdef, state):
        model = nnx.merge(graphdef, state)

        def loss_closure(model):
            return jnp.mean(jax.vmap(model)(batch))

        loss_val, loss_grad = nnx.value_and_grad(loss_closure)(model)
        return loss_val

    n_in = 64
    n_out = 1
    depth = 1
    width = 128
    activation = nnx.relu
    model = MLP(n_in, n_out, width=width, depth=depth, activation=activation, rngs=rngs)
    my_batch = jax.random.normal(rngs(), (20, n_in))

    # Time NNX
    out = my_test(my_batch, model).block_until_ready()
    start_time = time.time()
    out = my_test(my_batch, model).block_until_ready()
    end_time = time.time()
    print(f"Time taken NNX: {end_time - start_time:.6f} seconds")
    graphdef, state = nnx.split(model)
    out = my_test_split(my_batch, graphdef, state).block_until_ready()
    start_time = time.time()
    out = my_test_split(my_batch, graphdef, state).block_until_ready()
    end_time = time.time()
    print(f"Time taken NNX Split: {end_time - start_time:.6f} seconds")

    @eqx.filter_jit
    def my_test_eqx(batch, model):
        @eqx.filter_jit
        def loss_closure(f):
            return jnp.mean(jax.vmap(f)(batch))

        loss_val, loss_grad = eqx.filter_value_and_grad(loss_closure)(model)
        return loss_val
    @partial(jax.jit, static_argnums=2)
    def my_test_eqx_split(batch, params, static):
        model = eqx.combine(params, static)
        def loss_closure(f):
            return jnp.mean(jax.vmap(f)(batch))

        loss_val, loss_grad = eqx.filter_value_and_grad(loss_closure)(model)
        return loss_val
    equinox_model = eqx.nn.MLP(n_in, n_out, width_size=width, depth=depth, activation=activation, key=rngs())

    # Time Equinox
    out = my_test_eqx(my_batch, equinox_model)
    start_time = time.time()
    out = my_test_eqx(my_batch, equinox_model).block_until_ready()
    end_time = time.time()
    print(f"Time taken EQX: {end_time - start_time:.6f} seconds")

    params, static = eqx.partition(equinox_model, eqx.is_array)
    out = my_test_eqx_split(my_batch, params, static)
    start_time = time.time()
    out = my_test_eqx_split(my_batch, params, static).block_until_ready()
    end_time = time.time()
    print(f"Time taken EQX Split: {end_time - start_time:.6f} seconds")

    # Time Linen
    def create_train_state_linen(rng, model, learning_rate):
        params = model.init(rng, jnp.ones([1, model.in_features]))['params']
        tx = optax.adam(learning_rate)
        return train_state.TrainState.create(apply_fn=model.apply, params=params, tx=tx)

    def compute_loss_linen(params, batch, model_apply_fn):
        logits = model_apply_fn({'params': params}, batch)
        loss = jnp.mean(logits)
        return loss

    @jax.jit
    def train_step_linen(state, batch):
        grad_fn = jax.value_and_grad(compute_loss_linen)
        loss, grads = grad_fn(state.params, batch, state.apply_fn)
        state = state.apply_gradients(grads=grads)
        return state, loss

    model = MLPLinen(n_in, n_out, width=width, depth=depth, activation=linen.relu)

    state = create_train_state_linen(rngs(), model, learning_rate=0.001)
    my_batch = jax.random.normal(rngs(), (20, n_in))

    # Time Linen
    state, loss_val = train_step_linen(state, my_batch)
    jax.block_until_ready(loss_val)
    start_time = time.time()
    state, loss_val = train_step_linen(state, my_batch)
    jax.block_until_ready(loss_val)
    end_time = time.time()
    print(f"Time taken Linen: {end_time - start_time:.6f} seconds")

Sorry to bug you @cgarciae   but one more quetsion on this.  In the standard training loop, as in https://flax.readthedocs.io/en/v0.8.3/experimental/nnx/mnist_tutorial.html#training-step the optimizer updates the model implicitly with optimizer.update(grads)
If I need to repeatedly split the internal model before calling the optimized step, what is the best pattern to do so?  Do I adapt that code to do something like
@jax.jit
def train_step(state, graphdef, optimizer: nnx.Optimizer, metrics: nnx.MultiMetric, batch):
  """Train for a single step."""
  model = nnx.merge(graphdef, state)
  grad_fn = nnx.value_and_grad(loss_fn, has_aux=True)
  (loss, logits), grads = grad_fn(model, batch)
  metrics.update(loss=loss, logits=logits, labels=batch['label'])
  optimizer.update(grads)

Then update my training loop to something like
  for step, batch in enumerate(train_ds.as_numpy_iterator()):
    state, graphdef = nnx.split(optimizer.model)
    train_step(state, graph_def, optimizer, metrics, batch)

Is that what you had in mind?  If so, maybe I could get someone to put in a PR to extend that MNIST tutorial along those lines as proactice?
To be honest, I don't quite understand why any of this speeds things up so much.  I would have thought flattening things out and splitting at the boundary of the loss_fun would have been where things really made a difference... but JAX performance intuition is not for mortals.

Hey @jlperla ! The best way to do this is split all the objects together in a tuple and unpack them after merge, then do another split at the end:
graphdef, state = nnx.split((model, optimizer, metrics))
...

@nnx.jit
def train_step(graphdef, state, batch):
  """Train for a single step."""
  model, optimizer, metrics = nnx.merge(graphdef, state)

  grad_fn = nnx.value_and_grad(loss_fn, has_aux=True)
  (loss, logits), grads = grad_fn(model, batch)
  metrics.update(loss=loss, logits=logits, labels=batch['label'])
  optimizer.update(grads)
  # similar to split but only returns the state
  _, state = nnx.split((model, optimizer, metrics))
  return loss, state

If so, maybe I could get someone to put in a PR to extend that MNIST tutorial along those lines as proactice?

I think we should have a "performance" guide, or at least add it to a section in some other guide but its indeed an important topic.

Just to point out here that during nnx models training, the overall GPU usage do not cross above 20%. Will splitting into graphdef and state improve the performance?

For models that are computationally cheap and can run may update steps very quickly, the cost of crossing the python-jit boundary becomes very noticeable. A way I have been getting around this not only for nnx but also for jax in general is to write the entire training loop into a scan.
For example, if I have a typical update function and network
@nnx.jit
def train_step(state, data): return 0  # Optionally return a loss value

nn = Fcnn([2, 64, 1], rngs=nnx.Rngs(0))
opt = nnx.Optimizer(nn, optax.adam(2e-2))
state = (nn, opt)

Feeding data into train_step batch-by-batch is relatively slow because I can have many batches, and each time I will pay the overhead of calling into the function.
for epoch in range(3):
    rng, sub = jax.random.split(rng)
    order = jax.random.permutation(sub, len(xs)).reshape(-1, 128)
    loss_acc = 0
    for i, idxs in enumerate(prog := tqdm(order)):
        loss_acc += train_step(state, (xs[idxs], ys[idxs]))
        prog.set_postfix_str(f"Loss = {loss_acc / (i + 1):.4f}")
    print(f"{epoch=} loss={loss_acc / (i + 1)}")

Instead, I can do something like
train_multiple_steps_with_idxs = nnx.jit(
    lambda st, dat, idxs: nnx.scan(
        lambda st, idxs: (st, train_step(st, jax.tree.map(lambda a: a[idxs], dat)))
    )(st, idxs)
)
for epoch in range(3):
    rng, sub = jax.random.split(rng)
    order = jax.random.permutation(sub, len(xs)).reshape(-1, 128)
    start = time.time()
    _, losses = train_multiple_steps_with_idxs(state, (xs, ys), order)
    end = time.time()
    print(f"{epoch=} loss={losses.mean()} batches/sec={len(order) / (end - start)}")

This is usually sufficient, but a nice middleground if more real-time feedback like a progress bar is desired would look something like
train_multiple_steps = nnx.jit(nnx.scan(lambda st, dat: (st, train_step(st, dat))))
for epoch in range(3):
    rng, sub = jax.random.split(rng)
    order = jax.random.permutation(sub, len(xs)).reshape(-1, 128)
    order = jnp.array_split(order, len(order) // 32)
    losses_acc, losses_n = 0, 0
    for i in (prog := trange(len(xs) // 128)):
        if i % 32 == 0:
            idxs = order[i // 32]
            _, losses = train_multiple_steps(state, (xs[idxs], ys[idxs]))
            losses_acc, losses_n = losses_acc + losses.sum(), losses_n + len(losses)
            prog.set_postfix_str(f"Loss={losses_acc / losses_n:.4f}")
    print(f"{epoch=} loss={losses_acc / losses_n}")

The idea here is that we can split the data into batches, and then group the batches into batches of batches, to reduce the overall overhead costs. It is a compromise between the above ideas.
(I think), rather noticeably, each successive implementation unfortunately gets increasingly difficult to develop and understand. Overall, it seems to me to be an unavoidable inconvenience. Comparing this method to using Equinox, the performance is similar in all categories except the first (loop with 1 batch every time), which affirms the observations made by OP. For reference, I measure about 350, 15000, and 6700 batches/sec for the methods above.
Full script


Webview html content not fully displayed

Hi There,
I am facing a problem with Webview HTML content height. In my case, I set the style of Webview minHeight to 40 but the HTML content height is more than 40 pixel so the content not displayed fully on the screen. How would I set the WebView height according to the actual height of HTML content.
Please guide me to resolve this issue.

This issue looks like a question that would be best asked on StackOverflow.
StackOverflow is amazing for Q&A: it has a reputation system, voting, the ability to mark a question as answered. Because of the reputation system it is likely the community will see and answer your question there. This also helps us use the GitHub bug tracker for bugs only.
Will close this as this is really a question that should be asked on StackOverflow.


(#1008) Fixed HttpServletResponseFake implementation

This PR is for #1008

This pull request #1023 is assigned to @fabriciofx/z, here is why; the budget is 15 minutes, see §4; please, read §27 and when you decide to accept the changes, inform @paulodamaso/z (the architect) right in this ticket; if you decide that this PR should not be accepted ever, also inform the architect; this blog post will help you understand what is expected from a code reviewer; there will be no monetary reward for this job

@0crat assign me

@0crat assign me (here)

@paulodamaso @paulodamaso/z not enough funds available in the project, can't set budget of job #1023, see §21; @paulodamaso/z will get no money on completion; in order to fix that, add funds to the project and assign the job again

@0crat assign me (here)

@paulodamaso There is an unrecoverable failure on my side. Please, submit it here:
PID: 11@377a78bde909, thread: PQ-C3FFK3YAY
com.zerocracy.claims.ClaimIn[214] java.lang.IllegalArgumentException: Parameter "age" not found in "Order was canceled" among: [comment, job, issue, repo, cause, _parent_sig, flow, login]

0.51.0: CID: 7ec1d5df-455e-4ce6-b28a-0569727f48f3, Type: "Order was canceled"

Manual assignment of issues is discouraged, see §19: -5 point(s) just awarded to @paulodamaso/z

@paulodamaso Please review again

@paulodamaso Please have a look one more time.

@fanifieiev I'ts good now, thanks!

@rultor merge

@rultor merge

@paulodamaso OK, I'll try to merge now. You can check the progress of the merge here

@rultor stop

@rultor stop

@paulodamaso OK, I'll try to stop current task.

@rultor stop

@fanifieiev @paulodamaso Sorry, I failed to stop the previous command, however it has the following result: Oops, I failed.

Locales to be generated: 299c3d10e536640097845e3c3c17b95c5a2390cf310ddcdec1946da124b69ee7
Error response from daemon: Cannot kill container: 299c3d10e536640097845e3c3c17b95c5a2390cf310ddcdec1946da124b69ee7: Container 299c3d10e536640097845e3c3c17b95c5a2390cf310ddcdec1946da124b69ee7 is not running
container 299c3d10e536640097845e3c3c17b95c5a2390cf310ddcdec1946da124b69ee7 is dead
Thu Feb 13 19:41:07 CET 2020

Job #1023 is not in the agenda of @paulodamaso/z, can't retrieve data and time of add

Code review was too long (9 days), architects (@paulodamaso) were penalized, see §55

Order was finished: +15 point(s) just awarded to @paulodamaso/z

Payment to ARC for a closed pull request, as in §28: +10 point(s) just awarded to @paulodamaso/z


Minor improvements for the production application

This addresses the remaining points of issue #283: added functionality to printout the produced list of simulated corsika or sim_telarray files.
Closes #283

Hi Gernot. It looks good, though I was wondering if it would be more elegant to define a list with the choices for the "--task argument", i.e. "["simulate", "lists", "inspect", "resources"]" and then use a "for loop" through the "elif statements" instead of concatenating them in the code. Probably we would need another list with the texts to be printed too. what do you think?

Good point - I have simplified those lines a little bit - required to have a consistent naming of the functions call in the simulator model following the command line parameters (e.g., use simulate() instead of submit(). Please have another look.

All good, no comments from my side. I would suggest to change filelist to file-list or file_list, but that is very minor and can be ignored.

Do we actually have a logic when to use snake vs camel case? I am very confused by that right now.

We have a logic everywhere except for input arguments from the user. There we never discussed it and I would vote for snake case.


Can't get Spotify to work with SimpleDnsCrypt.

Can't get Spotify to work with SimpleDnsCrypt. Tried to set proxy in Spotify to: HTTPS <IP_ADDRESS> port 53 (or 443). But I can't get it to work. Spotify says "Offline, no internet connection". Everything else on my computer (Browser etc.) works just fine with SimpleDnsCrypt.
Operating system: Windows 10 (10.0.18363.1082)
Spotify version: <IP_ADDRESS>4.gc2c73ca7
CPU: Intel I7 (Intel64 Family 6 Model 158 Stepping 12 GenuineIntel ~3600 Mhz)

[UPDATE]: After following this: https://github.com/dnscrypt/dnscrypt-proxy/wiki/Installation-Windows#troubleshooting
and setting proxy in Spotify to "Auto Detect" it works. Problem solved!


bug in archiveFileName when skipping days

I am using 'archiveNumbering=Date',
with 'archiveFileName="{#}.txt"'
I used my soft on 11/06.
I do not use it on 12/06
I use it again today, 13/06.
the archive file name is "2014-06-12" whereas I would like to have "2014-06-11"

@Xharze, @cvanbergen According to issues #580 and #646, and the first comment in this issue, people do expect acrhived log file to have the same date in the filename as the date of events logged in that file.

@ilya-g I think that's also the most logical

I think it should be configurable.  Would be nice if we could do that in 4.0

same issue: https://github.com/NLog/NLog/issues/720


Update api-management-using-with-vnet.md

minor spelling change

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


Refactor: use declarative macro to implement formats

Trying out a declarative macro to reduce copy-and-paste between basic and send modules.

Very good idea and work, if you need/want help just ask.


Add status display for when the websocket connection is lost

The user is not notified if/when the websocket connection drops, perhaps add a visual warning?

Fixed in next release


Add 868 MHz versions of Flipper RF commands

Updated, RF Commands

Added Sub-Folder for 868 Mhz
Added modified all .sub files changing Frequency from 915 Mhz to 868 Mhz.

Updated, README's

Updated RF General README for 868 Mhz changes.
Updated 'Edited RF Commands' README for 868 Mhz changes.

Excellent, thank you for figuring out the European frequency, confirming the same commands work, and adding these files!

Hello @danielweidman , @sean1983
I cannot understand how to make them work with Flipper zero.
I have an European one but it doesn't work

work

Hi Mate,
First off,  What event was this from ?
I would suggest first to check the batteries are good,  These RF Models drain batteries fast.

Hello @sean1983,
thanks for your reply.
It was from Coldplay event in Milan on July 4th 2017.

Bracelet is Xyloband
Batteries were drained and has been substituted. Now when it starts just blink once so it seems ok

Thanks you

Hi @andoma93
Arhh!
Well, there is your problem!  Xylobands are completely different.
Same Frequencies but completely different modulation type and encoding.
At the moment, we are currently only working with Pixmob Bracelets that Coldplay use these days! Which are Infrared but recently Pixmob have started using RF too!
There is github project for controlling Xylobands out there,  But not for the Flipper Zero as of yet.
But saying that,  I have recently Posted a couple of Xyloband over to Dani the Author of this project.   And once he has some time to play around with them we might end up with some control of them some point in the future!


Spring Data Support (conversion?)

Is your feature request related to a problem? Please describe.
So I know currently this is a Spring Cloud project, however I find that FeignClients look like repositories. It would be cool if I could define Feign Repositories supporting the same interfaces as spring data

Hello, @xenoterracide, Spring Cloud OpenFeign has been announced as feature-complete as of 2022.0.0 in favour of Spring Interface Clients. We're not planning on adding on any major features at this point. Instead, we'll be concentrating on providing more feature


I have add footer

I have added footer and also made navbar sticky.
I have added a Footer.jsx file and also add some tailwind css.

problem no.-#6

please review it and merge it

Please be patient


(MODULES-2032) Fix Puppet.newtype deprecation warning

On Puppet 4 this module is throwing a deprecation warning because it is using Puppet.newtype to create the mounttab type.
This PR converts it to use Puppet::Type.newtype.

Great, thanks @roman-mueller !


Bug 2038934: Bump(library-go): to get leader election changes

CC @openshift/storage

/retest

/lgtm
/approve

CI failures look unrelated, but concerning

/override  ci/prow/e2e-azurestack-csi
There are issues with our AzureStackHub env.

/override e2e-azurestack-csi
See https://coreos.slack.com/archives/CEKNRGF25/p1643050388075300


Breaks inline script

Thanks for this package, pretty keen to use it but it seems to break inline script:
eg: this script to load livereload (from here)

comes out like this and gives browser errors (newline inside single quote string):

Also, I noticed css in

After:

Expected: leave the content alone
It looks like it's stripping whitespace like it would for a normal HTML text nodes but css has its own weird set of whitespace rules so I'm concerned something could easily break here.

 tags don't work correctly:
Before:

// This is my code
Please()
{
    leave it alone
}

After:

    // This is my codePlease(){ leave it alone}

In this case it's dropping whitespace between words too (eg: "codePlease").
Actually, it seems to be over aggressively removing new lines in other places too:

This
is
a
paragraph

giving:

Thisisaparagraph

Interestingly, <textarea> handles new lines differently but doesn't solve it as I expected:
<textarea>This
is
a
textarea

line1
line2
</textarea>

gives:
<textarea>This
 is
 a
textarea

line1
line2

 more</textarea>

This approach would also work for
, maybe work for


Audio feedback for navigation

Audio feedback during scrolling and button selection which can be activated or deactivated from the application settings

This would be on button presses.


Disconnections occurring frequently

being precise, since 2023/06/28 there have been disconnections of instances already connected, I use docker + redis... it was working perfectly, but since the last 3 days disconnections have occurred for no reason, without origin, the user has to go there and connect again.

This Api abstracts the features of the @whiskeysockets/baileys library, which is responsible for communication with WhatsApp, and encapsulates them into methods that are executed at the time a request is made. Failures in connection with WhatsApp, spontaneous reconnection, among other problems that are directly related to WhatsApp should be addressed here @whiskeysockets/baileys:issues.
Suggestions and pulls for the solution of this problem will be analyzed, and if viable, implemented.

I understand, but the post here would be for us to find a way for this not to happen, because the connection is "sleeping" and the user just needs to start the session again, then he doesn't even need to read the qrcode, it's back to working.... even to make matters worse, the webhook is cleared, having to define it again after it starts... is there no way to find out the reason for "sleeping" the connection and do some artifice for this not to happen?

I believe it is a new behavior of whatsapp, in sleeping the connection... wouldn't there be a way to keep the connection always on alert? The test is simple: connect your whatsapp to the api, and stay without interaction in the api for a few hours... then try to interact, from the INSTANCE NOT EXISTS message... then you start "INIT" and it works again.

being precise, since 2023/06/28 there have been disconnections of instances already connected, I use docker + redis... it was working perfectly, but since the last 3 days disconnections have occurred for no reason, without origin, the user has to go there and connect again.

O facing the same problem

@fhonline @grdamasceno see https://github.com/code-chat-br/whatsapp-api/issues/45

@fhonline @grdamasceno see https://github.com/code-chat-br/whatsapp-api/issues/45

Tks


Adding Terna Engineering College

@Abhayg444 Thank you for your patience while waiting for a review and processing your request. Pull request merged. Please start applying for JetBrains educational subscription at https://www.jetbrains.com/shop/eform/students in an hour, to allow the changes to propagate through JetBrains systems.


Formula defined options are broken

[x] ran brew update and can still reproduce the problem?
[X] ran brew doctor, fixed all issues and can still reproduce the problem?
[X] ran brew config and brew doctor and included their output with your issue?

What you were trying to do (and why)
The CI for the ARB formula which I provide here runs the following command every night:
brew install arb --HEAD --with-test-only --keep-tmp
This is done to ensure that the HEAD version of ARB can still be build as the ARB project itself does not have access to a Mac build environment.
What happened (include command output)
On August 2 (02:24am CEST) and 3 (02:23am CEST), Homebrew does not recognise the --with-test-only option anymore and does not build the formula. Verified the problem on my Mac, too.

Command output

brew install arb --HEAD --with-test-only --keep-tmp
Usage: brew install [options] formula
Install formula. Additional options specific to formula may be appended to
the command.
Unless HOMEBREW_NO_INSTALL_CLEANUP is set, brew cleanup will then be run for
the installed formulae or, every 30 days, for all formulae.
-q, --quiet                      Suppress any warnings.
-d, --debug                      If brewing fails, open an interactive
                                 debugging session with access to IRB or a
                                 shell inside the temporary build directory.
    --env                        If std is passed, use the standard build
                                 environment instead of superenv. If super
                                 is passed, use superenv even if the formula
                                 specifies the standard build environment.
    --ignore-dependencies        An unsupported Homebrew development flag to
                                 skip installing any dependencies of any
                                 kind. If the dependencies are not already
                                 present, the formula will have issues. If
                                 you're not developing Homebrew, consider
                                 adjusting your PATH rather than using this
                                 flag.
    --only-dependencies          Install the dependencies with specified
                                 options but do not install the formula
                                 itself.
    --cc                         Attempt to compile using the specified
                                 compiler, which should be the name of the
                                 compiler's executable, e.g. gcc-7 for GCC
                                 7. In order to use LLVM's clang, specify
                                 llvm_clang. To use the Apple-provided
                                 clang, specify clang. This option will
                                 only accept compilers that are provided by
                                 Homebrew or bundled with macOS. Please do
                                 not file issues if you encounter errors
                                 while using this option.
-s, --build-from-source          Compile formula from source even if a
                                 bottle is provided. Dependencies will still
                                 be installed from bottles if they are
                                 available.
    --force-bottle               Install from a bottle if it exists for the
                                 current or newest version of macOS, even if
                                 it would not normally be used for
                                 installation.
    --include-test               Install testing dependencies required to
                                 run brew test formula.
    --devel                      If formula defines it, install the
                                 development version.
    --HEAD                       If formula defines it, install the HEAD
                                 version, aka. master, trunk, unstable.
    --fetch-HEAD                 Fetch the upstream repository to detect if
                                 the HEAD installation of the formula is
                                 outdated. Otherwise, the repository's HEAD
                                 will only be checked for updates when a new
                                 stable or development version has been
                                 released.
    --keep-tmp                   Retain the temporary files created during
                                 installation.
    --build-bottle               Prepare the formula for eventual bottling
                                 during installation, skipping any
                                 post-install steps.
    --bottle-arch                Optimise bottles for the specified
                                 architecture rather than the oldest
                                 architecture supported by the version of
                                 macOS the bottles are built on.
-f, --force                      Install without checking for previously
                                 installed keg-only or non-migrated
                                 versions.
-v, --verbose                    Print the verification and postinstall
                                 steps.
    --display-times              Print install times for each formula at the
                                 end of the run.
-i, --interactive                Download and patch formula, then open a
                                 shell. This allows the user to run
                                 ./configure --help and otherwise
                                 determine how to turn the software package
                                 into a Homebrew package.
-g, --git                        Create a Git repository, useful for
                                 creating patches to the software.
-h, --help                       Show this message.

Error: invalid option: --with-test-only

What you expected to happen
Homebrew recognises the --with-test-only option and builds the command as it did before August 2.
Step-by-step reproduction instructions (by running brew commands)
brew tap arb-project/arb
brew cask install xquartz
brew tap denismm/gv
brew install arb --HEAD --with-test-only --keep-tmp

Output of brew config and brew doctor commands

brew config output

brew config
HOMEBREW_VERSION: 2.4.9-188-g36c10ed
ORIGIN: https://github.com/Homebrew/brew
HEAD: 36c10edf22ca0b739b6b18153a34dd2d2d1adb02
Last commit: 75 minutes ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: d8fbace52f193cc337e24936b16e050694fa2f26
Core tap last commit: 2 hours ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.2nnNgjskH3/org.macosforge.xquartz:0
HOMEBREW_MAKE_JOBS: 8
CPU: octa-core 64-bit skylake
Homebrew Ruby: 2.6.3 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/bin/ruby
Clang: 10.0 build 1000
Git: 2.27.0 => /usr/local/bin/git
Curl: 7.54.0 => /usr/bin/curl
Java: 1.8.0_152, 1.8.0_121, 1.6.0_65-b14-468
macOS: 10.13.6-x86_64
CLT: <IP_ADDRESS>.1.1539992718
Xcode: 10.1
XQuartz: 2.7.11 => /opt/X11

brew doctor output

brew doctor
Warning: Calling 'devel' blocks in formulae is deprecated! Use 'head' blocks or @-versioned formulae instead.
Please report this issue to the arb-project/arb tap (not Homebrew/brew or Homebrew/core), or even better, submit a PR to fix it:
  /usr/local/Homebrew/Library/Taps/arb-project/homebrew-arb/Formula/arb.rb:13
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs:
/usr/local/lib/libtcl8.6.dylib
/usr/local/lib/libtk8.6.dylib
Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected header files:
/usr/local/include/fakemysql.h
/usr/local/include/fakepq.h
/usr/local/include/fakesql.h
/usr/local/include/itcl.h
/usr/local/include/itcl2TclOO.h
/usr/local/include/itclDecls.h
/usr/local/include/itclInt.h
/usr/local/include/itclIntDecls.h
/usr/local/include/itclMigrate2TclCore.h
/usr/local/include/itclTclIntStubsFcn.h
/usr/local/include/mysqlStubs.h
/usr/local/include/odbcStubs.h
/usr/local/include/pqStubs.h
/usr/local/include/tcl.h
/usr/local/include/tclDecls.h
/usr/local/include/tclOO.h
/usr/local/include/tclOODecls.h
/usr/local/include/tclPlatDecls.h
/usr/local/include/tclThread.h
/usr/local/include/tclTomMath.h
/usr/local/include/tclTomMathDecls.h
/usr/local/include/tdbc.h
/usr/local/include/tdbcDecls.h
/usr/local/include/tdbcInt.h
/usr/local/include/tk.h
/usr/local/include/tkDecls.h
/usr/local/include/tkPlatDecls.h
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .pc files:
/usr/local/lib/pkgconfig/tcl.pc
/usr/local/lib/pkgconfig/tk.pc
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libtclstub8.6.a
/usr/local/lib/libtkstub8.6.a
Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run brew link on these:
minikube
<EMAIL_ADDRESS>Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so:
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.profile
Warning: Some installed formulae are missing dependencies.
You should brew install the missing dependencies:
brew install node
Run brew missing for more details.

Does
brew install arb-project/arb/arb --HEAD --with-test-only --keep-tmp

work?

The arb formula was recently added to homebrew-core, so I think arb now loads the one from homebrew-core instead of the one from your tap.

Dang! I missed that addition. You are right, Homebrew picks up the arb formula from core (which is for a different project). Fixed it by specifying the tap in the install command. Will close the ticket. Sorry!


Implement sys-mgmt-agent V2 API tests

Fix #454
Signed-off-by: Ginny Guan<EMAIL_ADDRESS>

Includes the changes in https://github.com/edgexfoundry/edgex-go/pull/3543


maestro-cloud-upload 1.4.0

What to do if the build fails?
At the moment contributors do not have access to the CI workflow triggered by StepLib PRs. In case of a failed build, we ask for your patience. Maintainers of Bitrise Steplib will sort it out for you or inform you if any further action is needed.
New Pull Request Checklist
Please mark the points which you did / accept.

[x] I will not move an already shared step version's tag to another commit
[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

cc @ArthurSav would be sweet if you could verify whether things look ok from our end

@axelniklasson Works as expected 👍

Hi there @tothszabi, hope you're the right person to ping here. Would you be able to help us get this PR merged? It's been waiting for a review since Dec 8. Thanks!

Hey @axelniklasson @ArthurSav, the step is now merged, apologies for the long delay.


Randomly failing requests and websocket authentication

Authenticated rest requests to the testnet randomly fail with the error message
{ ret_code: 10002,
  ret_msg: 'invalid request, please check your timestamp and recv_window param.',
  ext_code: '',
  result: null,
  ext_info: null,
  time_now: '1568636398.022206' }

Also websocket authentication fails randomly with a 401 response.

Hey @pixtron are you still using this? I've tried your wrapper and it generally works, but sometimes, rarely, I see this issue too:
{
  "ret_code": 10002,
  "ret_msg": "invalid request, please check your timestamp and recv_window param. req_timestamp:<PHONE_NUMBER>769 server_timestamp:<PHONE_NUMBER>587 recv_window: 5000",
  "ext_code": "",
  "result": null,
  "ext_info": null,
  "time_now": "1579005480.578442"
}

@tiagosiebler do you see that error on the livenet or on the testnet?

Livenet, I think it might only be immediately after instancing RestClient then calling getUserLeverage() immediately after, but I haven't implemented other parts of this yet, still hooking up websockets.

Are you using this live? Do you see it happen with livenet at all? In case it's useful, this module for binance hasn't seen any drift issues - not sure if that's thanks to binance or how this module handles it:
https://github.com/zoeyg/binance/blob/master/lib/rest.js#L83


Is there any CI?

I can't see any build status on commit, and https://travis-ci.org/ no longer works.

Hi @eregon The CI setup was not updated since the .org shutdown.
It's a good point, I'll update it soon.


Investigate and resolve 'Trying to access array offset on value of type null' warning [2h]

The reason for the warning is that we set person node label when creating / editing through Restful.

$field_info = field_info_field('label'); is NULL, and therfore, $field_info['type'] produces the warning.
To resolve this, we should move the logic of generating person node title to backend.


Document delete_branch_on_merge

Add proper documentation for the closed issue https://github.com/probot/settings/issues/134

View rendered README.md

thank you!


[Merge]PublicAPIAndMigration

Description:
Part of the effort of adding Merge support in Java SDK. Main working item: https://github.com/Azure/azure-sdk-for-java/issues/32131
Changes

Added SDK capabilities header support
Added public API handleLatestVersionChanges
For epk version changeFeedProcessor, added support to bootstrap from pk version leases

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-cosmos

closed this one as different PR will be created for public API(Discussed and agreed with team) and Migration (more discussion will be followed)


Can't run differential delete

I'm currently using the "upload" action; without any problem. When I try to perform a differential delete, I get the following error:
Fatal error: Differential delete needs a "cwd"
This is my Gruntfile.js
module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    aws_s3: {
      options: {
        region: 'eu-west-1',
        uploadConcurrency: 5,
        downloadConcurrency: 5,
      },

      dist: {
        options: {
          bucket: 'some-bucket-name',
        },
        files: [
          {
            expand: true,
            cwd: 'pages/',
            src: ['**'],
            dest: '/',
            differential: true,
            action: 'delete'
          }
        ],
      },
    },
  });

  grunt.loadNpmTasks('grunt-aws-s3');
  grunt.registerTask('deploy', [
    'aws_s3:dist',
  ]);
};

I briefly attempted to debug the issue, and noticed the following in aws_s3.js

Sorry! Only just seen this. Thanks for having a deeper look as well. Maybe this line should read filePair.differential && !filePair.orig.cwd? Can you try it that way. If it does work for you, I'm happy to take a PR or I can make the change if you prefer. Let me know!

I tried the change as suggested - and I get a different error:
Running "aws_s3:dist" (aws_s3) task
Deleting the content of https://s3-eu-west-1.amazonaws.com/xxxxxx/
Fatal error: Path must be a string. Received undefined

Hello i see in README file that (delete: will only delete the files which don't exist locally) but no example how it work, can anyone tell me how ?
Thanks.

j'ai trouvé il fallait que je rajoute un / a dest et mettre differential: true et cwd dans les options.
Merci.

Any updates about this?

@trioni do you have the same error as OP or something different?

@MathieuLoutre yes, this error Fatal error: Differential delete needs a "cwd".
Currently using npm-scripts and the aws cli to achieve the same thing:
AWS_PROFILE=myprofile aws s3 sync ./public/build-$npm_package_version s3://mybucket/public --delete --region some-region

Having tested a few ways it looks like slashes in dirs aren't to blame, but using expand:true where action is delete causes the problem.
Given that no src is needed where action = delete, expand presumably doesn't do anything anyway.
ie, this works unless I uncomment the expand line:
           {
                    action: 'delete', // remove any files not longer present locally
                    // expand: true,
                    // src: '**/*.png',
                    dest: 'domain_com/d/static-testing', /* s3 destination */
                    differential: true,
                    cwd: staticRootDir // does not end with '/'
                }


2004 mk4 golf didnt return skc

running the latest version 0.93
amazon vag kkl cable on port 3
C:\Users\mark\Desktop>.\kw1281test.exe COM3 10400 17 GetSKC
KW1281Test: Yesterday's diagnostics...Today.
 Block bytes:  0F F0 0F 01 F6 B1 4A 30 39 32 30 38 30 37 45 20
Unhandled exception: System.InvalidOperationException: Received block end $20 but expected $03. Block bytes:  0F F0 0F 01 F6 B1 4A 30 39 32 30 38 30 37 45 20
at BitFab.KW1281Test.KW1281Dialog.ReceiveBlock() in /Users/gmenounos/src/kw1281test/KW1281Dialog.cs:line 392
at BitFab.KW1281Test.KW1281Dialog.ReceiveBlocks() in /Users/gmenounos/src/kw1281test/KW1281Dialog.cs:line 351
at BitFab.KW1281Test.KW1281Dialog.Connect() in /Users/gmenounos/src/kw1281test/KW1281Dialog.cs:line 91
at BitFab.KW1281Test.Tester.Kwp1281Wakeup(Boolean ) in /Users/gmenounos/src/kw1281test/Tester.cs:line 39
What did I do wrong!  Thx

got this tonight..
C:\Users\mark\Desktop>.\kw1281test.exe COM3 10400 17 GetSKC
KW1281Test: Yesterday's diagnostics...Today.
 block
Sending Custom "Seed request" block
Block:  3A 46 7B CB 76 47 10 B2 01 00
Sending Custom "Key response" block
Sending Custom "Need Seed/Key?" block
Cluster is unlocked for ROM/EEPROM access.
Saving EEPROM dump to 9BWFR21J644018591_____VWZ7Z0C7083262_$0090_eeprom.bin
Sending ReadEeprom block (Address: $0090, Count: $10)
Caught: System.TimeoutException The operation has timed out.
Unhandled exception: System.TimeoutException: The operation has timed out.
at System.IO.Ports.SerialPort.ReadByte()
at BitFab.KW1281Test.KwpCommon.ReadComplement(Byte) in /Users/gmenounos/src/kw1281test/KwpCommon.cs:line 140
at BitFab.KW1281Test.KW1281Dialog.SendBlock(List1) in /Users/gmenounos/src/kw1281test/KW1281Dialog.cs:line 338    at BitFab.KW1281Test.KW1281Dialog.ReadEeprom(UInt16, Byte) in /Users/gmenounos/src/kw1281test/KW1281Dialog.cs:line 142    at BitFab.KW1281Test.Cluster.VdoCluster.DumpEeprom(UInt16, UInt16, Byte, String) in /Users/gmenounos/src/kw1281test/Cluster/VdoCluster.cs:line 715    at BitFab.KW1281Test.Cluster.VdoCluster.DumpEeprom(Nullable1, Nullable`1, String ) in /Users/gmenounos/src/kw1281test/Cluster/VdoCluster.cs:line 45
at BitFab.KW1281Test.Tester.DumpClusterEeprom(UInt16, UInt16, String ) in /Users/gmenounos/src/kw1281test/Tester.cs:line 879
at BitFab.KW1281Test.Tester.GetSkc() in /Users/gmenounos/src/kw1281test/Tester.cs:line 546
at BitFab.KW1281Test.Program.Run(String[]) in /Users/gmenounos/src/kw1281test/Program.cs:line 275
at BitFab.KW1281Test.Program.Main(String[]) in /Users/gmenounos/src/kw1281test/Program.cs:line 31

I'd recommend trying a few more times. Looks like it almost worked the 2nd time.

I got it, I was messing up the command prompt as I was copying in the line from the instructions...  Thank you for creating this...
tested it in vcds and all good!
I would like to swap a tuned ecu that i don't have pin for, is there a command that can pull the skc from the ecu like i believe tacho can?
complete nooby here!

The BEW ECU is an EDC16 and kw1281test only supports EDC15 right now. I'm going to close this issue. You should start a separate issue to request EDC16 support.


Remove support for python 3.6, add for 3.9

Python 3.6 has just reached its end of life and so is no longer receiving either bug or security fixes. Furthermore, we should probably add support for 3.9 (and maybe 3.10)
In practice, this just means changing the versions we run tests on, though it may require some small bugfixes to get it working with newer versions.

will require fixing #74

closed with #184


Error NETSDK1136: The target platform must be set to Windows (User32 only)

Describe the bug
After I upgraded Vanara.PInvoke.User32 from 3.3.0 to 3.3.2 (or any other version above 3.3.0) I get the error described in the title.
What code is involved
.Net 5 (default VS .Net Core library project). This only happens with Vanara.PInvoke.User32. It doesn't with  Vanara.PInvoke.Kernel32 (didn't tried other packages)
Expected behavior
No window runtime dependency, just like 3.3.0.

Thanks for bringing this to my attention. I have resolved it in the latest commit for 3.3.3. It will release in the next few days.

Thanks for bringing this to my attention. I have resolved it in the latest commit for 3.3.3. It will release in the next few days.

@dahall You're amazing! As always!


Fix typo in images guide

What kind of changes does this PR include?

Minor content fixes (broken links, typos, etc.)

Description
Fix one typo in the images page on the mdx integration. Uses @astrojs/image/component instead of @astrojs/image/components for importing <Image />.

This is wonderfully helpful, @kylebutts! Just the kind of thing that could confuse a reader, and great to get cleared up. Thank you for your contribution, and welcome to the Team Docs Face Pile!  🥳


[Bug]: Light mode

Give a brief about the bug ✍
In light mode, the website font is not visible and is not as beautiful as it is in dark mode
What is the expected behavior? 🤔
Change the font color
Provide step by step information reproduce the bug 📄
we can change the font color of the website in light mode or maybe remove the light mode altogether as I don't really see the need of light mode.
The game looks pretty in dark mode and I think most users would also prefer to play in dark mode only.
Just a suggestion.
Select program in which you are contributing
No response
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @avireet !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @avireet ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Slow performance on querying V class in 3.0.14

OrientDB Version: 3.0.14
Java Version: 1.8
Actual behavior
Querying the V class filtering by an Id property is very slow compared to how it was working on 2.2.14. The query itself looks like this:
select * from V  where Id = '2' skip 0 limit 1
This query was performing well enough on previous version but when running it in 3.0.14 takes 142 seconds when there are only 3K vertices in the V class.
Is this a bug on the new query engine?

Hi Ismael,
Are indexes involved in this query?
Thanks
Luigi

Mmm... 142 seconds is not a matter of indexes, there must be something wrong.
Did you export-import the DB from 2.2.x to 3.0.x or did you just copy/paste the directory?
Are you using a remote connection? Do the client and server have the same OrientDB version?
Thanks
Luigi

Hi Luigi,
The database is created on 3.0.X. We have an indexing process that creates the db and index the data through oetl.exe commands. All the classes have an Id property and all Id properties have a index.
Our product executes the query through the HTTP API. I also copied the query and executed it from OrientDB studio and got the same performance.
Let me know if you need any additional information

Hi @ismaelpernas
Any chance to have the DB with this problem?
Did you also try it with v 3.0.16?
Thanks
Luigi

Hi @ismaelpernas
I verified that in your case the query is actually fast, but the execution plan is huge (V has hundreds of subclasses with indexes on Id, all the indexes are used) and the serialization of the execution plan on the HTTP request is the real bottleneck.
At application level you can disable the serialization of the execution plan (see https://github.com/orientechnologies/orientdb/issues/8743) so it should not be a problem.
I'm closing this issue, please feel free to re-open if needed
Thanks
Luigi

Thanks @luigidellaquila
All good from our side.


Allow git reset as post task

It turned out that make force-dump alone is not enough. We need to git reset away what renovate did first to avoid leaking through transitive dependency bumps like k8s.io.
Related: OSPRH-8355

deployed the change to our renovate hosted runner.


feat: add ton sdk_js_usage

note: pyth-ton-js has to be released as an npm package first

Approving now. You can release the package and merge whenever ready.


Question on re-designing component

Please can you provide me with some resources on how you did this effect?

Hello there, I don't understand what you refer to.

I'm asking how you designed this piece of component?


[BUG] - CSS color variables not working as intended

NextUI Version
2.0.5
Describe the bug
When using the generated css variables for semantic colors as described in the documentation the colors won't show up.
It seems they are not interpreted as hex values, but instead as HSL colors. That is why they only work when used as hsl() values.
I wasn't able to get a running example in stackblitz so I tried to provide comprehensive screenshots. I think the last one makes it pretty clear, that all colors are provided as hsl values, which is contradictionary to the documentation. I'm not sure if this really is an NextUI issue or if it roots further down the line (tailwind? next?) I don't know.
Your Example Website or App
No response
Steps to Reproduce the Bug or Issue

Go to https://nextui.org/docs/customization/colors#css-variables
Apply configuration for nextui plugin in tailwind config
Try using on of the preset colors like in the example (i.e. background-color: var(--myapp-primary-500);)

Expected behavior
I expect the item I put that css on to show that background color.
Screenshots or Videos
Markup code:

Css module:

result in browser:

DOM in browser:

Colors in chrome dev tools:

Operating System Version
Windows 10
Browser
Chrome

I can see what can be done with it but isn't the documentation a bit off then? I would expect example code to work without any changes to it.


[Setup] Update the required .NET 5 version and ignore 1638 exit code

Summary of the Pull Request
What is this about:
What is included in the PR:
How does someone test / validate:
Quality Checklist

[x] Linked issue: #16203
[ ] Communication: I've discussed this with core contributors in the issue.
[ ] Tests: Added/updated and all pass
[ ] Installer: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Docs: Added/ updated
[ ] Binaries: Any new files are added to WXS / YML

[ ] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

fix for main https://github.com/microsoft/PowerToys/pull/16228


add ftp auto deploy and make audio file download synchronous

Resolves #861 and #871. In reference to #874 , only audio file download has been made synchronous as it gets things working.
Check the demo at http://shubhamp.in/ots2/ .
DO NOT MERGE
do not merge before the ftp link has been changed along with protocols.

Current coverage is 34.48% (diff: 14.14%)

Merging #875 into development will decrease coverage by 4.27%

@@           development       #875   diff @@
=============================================
  Files                6          6
  Lines              818        841    +23
  Methods             88        100    +12
  Messages             0          0
  Branches           138        138
=============================================
- Hits               317        290    -27
- Misses             501        551    +50
  Partials             0          0

Powered by Codecov. Last update 9c62eda...035827b

@shubh1m Thanks. Currently I cannot find an audio play or upload option on the sample site.

@mariobehling The audio play is working fine , e.g see http://shubhamp.in/ots2/tracks.html#desc-40.
And yeah wait for the page to load completely ( until the reload button appears on chrome )

Ok, thanks. Please also implement for other pages and let's think a bit about the design and/or position of the player.

Okay, cool :+1: , by other pages, which do you specificically mean

@shubham-padia  Please set

by other pages, which do you specificically mean , i'm not aware with how it was implemented earlier.

tracks, room, schedule page. Thank you.

Please also implement for other pages and let's think a bit about the design and/or position of the player.

@mariobehling

Audio tracks have been added to room and schedule ( expand to see the audio ) page also. Please check the above given link once again .
I'll open an issue about the design and position issues,  once this is merged and we can work on them from there.
Also #874 is a very high priority issue requiring significant changes to the code in order to get the webapp properly functioning and in order to maintain proper workflow, it is essential  that this PR is merged first.

Thank You .

@mariobehling kindly give your feedback :smiley:

Ok, good job! Keep it up.


Modify pagenation in Use, project name exist issue #4350 #4205 #4177

Coverage increased (+0.3%) to 60.183% when pulling e017f63103ca3aab59fd17609ec285acef497ac8 on pengpengshui:reptolib into 7bf277df6ebbc020134a72b73a7dcf91ac25d696 on vmware:master.


Code should not catch errors from callback - might call callback twice

In lines 11-16, if the callback throws an error, it will call the callback again.
Code should be something like:
try {
  process.kill(otherPid, 0)
} catch(e) {
  return callback(null, false)
}
return callback(null, true) // It's always safer to use the 'return callback(..)' pattern.

Thanks, I'd gladly accept a PR fixing this.

No need for credit, just fix it on the main branch and upload to npm.


Allow CI workflow to be triggered in different ways.

from pull request, if the appropriate label is applied
manual triggering via workflow_dispatch
part of a scheduled build

Prior to this change, manually triggering the CI workflow, or a scheduled run would be skipped because the ci:run label was not found.

closing this PR in favor of https://github.com/tensorflow/tflite-micro/pull/26


feat!: return response interface for success/error

For the parent issue: https://github.com/waku-org/js-waku/issues/1694, we want to structure all protocols to return error codes & enums over throwing exceptions.
This PR:

refactors Filter to return IFilterResponse which includes statusCode, message, requestId

Notes:

with this PR, Filter will currently use error codes and messages in tandem with the nwaku Filter implementation: https://github.com/waku-org/nwaku/blob/master/waku/waku_filter_v2/rpc.nim
[x] linked nwaku PR: https://github.com/waku-org/nwaku/pull/2236
reference: https://github.com/waku-org/docs.waku.org/pull/132#discussion_r1393600276

@danisharora099 Please ping me or reset my review when ready to re-review.

superseded by https://github.com/waku-org/js-waku/issues/1694


[$500]  Room invite email coming from the workspace owner, not the user sending the invite

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.4-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @MitchExpensify
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1701114268200809
Action Performed:

Create a free workspace with account A<EMAIL_ADDRESS>Invite account B<EMAIL_ADDRESS>to the free workspace
As account B, create a room tied to the workspace
As account B, Invite account C<EMAIL_ADDRESS>to the workspace room via the room's Members pane

Expected Result:
Email notification of the room invite should come from the person inviting (Account B in this example)
Actual Result:
Email notification of the room invite comes from the workspace admin / owner (Account A in this example)
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/38435837/1e939fe2-adf8-4c50-bb05-7ead19faaba5

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01d60f5aaf2ad05081
Upwork Job ID:<PHONE_NUMBER>790970880
Last Price Increase: 2023-11-27

IDEA: Use userId for the requesting user instead of group owner.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~0130267f27102ba5b8

Proposal
Please re-state the problem that we are trying to solve in this issue.
Email notification of the room invite comes from the workspace admin / owner (Account A in this example)
What is the root cause of that problem?
Investigated the payload for   https://dev.new.expensify.com:8082/api?command=InviteToRoom
I verified the actorAccountID and the lastActorAccountID are the Account B in the example/the user sending the invitation.
"actionName": "INVITETOROOM",
"actorAccountID": 16067392,
I also verified that that the recipient and member ID's included were correct for the payload.
I verified the account ID via the signIn call to get the accountID.
It appears that this is a backend bug.
What changes do you think we should make in order to solve the problem?
Backend dev should construct email to show the FROM email based on the actorAccountID instead of the workspace account holder.

This is a backend issue - it needs to be changed so that the sender address is pulled from the actor, and not the owner. This repo is the incorrect repo to fix this issue.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~016eed7df5fd3d25d0

Posted about whether we should fix this here. https://expensify.slack.com/archives/C01SKUP7QR0/p1701927181913129?thread_ts=1701921998.495289&cid=C01SKUP7QR0

Closing as a dupe of https://github.com/Expensify/App/issues/30919, as discussed here. https://expensify.slack.com/archives/C066HJM2CAZ/p1702237889252039?thread_ts=1702005653.812799&cid=C066HJM2CAZ


Load AnnData From Zarr

I am starting this out as a draft since I think there are a few open questions:

Do we want to formalize the options in a schema?  Do we expect this to work more generally than just anndata-zarr?  I think we would the json schema to operate on an enum of file type in this case but I don't know if this is possible (i.e for anndata-zarr, use a certain options schema as opposed to another one) - for example this is a schema for visualizing the habib data

Answered: Schema has been added

@keller-mark I am terrible at this sort o thing but we probably want to support a filtering operation for genes - what do you think we should call that? It would be good for the expression-matrix.zarr loader so that we can load obsm subsets of the cell x gene matrix.  I think the idea here would be allowing people to use the highly variable genes without subsetting X as I do below.

I went with genesFilter, open to other obtions

Right now, I am obeying the convention of dots in the schema instead of slashes for communicating paths since it is similar to how it is done in Python.  Should it be slashes?  They are paths after all...
Do we want some sort of defaults? Like X for the expression matrix?  My sense is no.
String parsing is pretty haphazard but seems to work.   I am going to try to put some more effort into this.

As far as what the PR does do, you can specify different parts of the AnnData store to be mapped to parts of the Vitessce configuration i.e X for expression matrix, or obsm.leiden for cell set labels.  This is all accomplished through the view configuration which has options for all of this.  We introduce a new set of loaders to handle this, anndata-cell-sets.zarr etc.
I also committed some example view configs which I will remove but the process for downloading/viewing them is as follows:

slide-seq: I can send you the data if you do not have it.  Then I ran

sc.pp.highly_variable_genes(adata, n_top_genes=200)
adata.obsm['X_top_200_genes'] = adata[:, adata.var['highly_variable']].X.copy()
adata.write_zarr('secondary_analysis_hvg_obsm.zarr')

before writing to zarr.

habib: I ran

sc.pp.highly_variable_genes(adata, n_top_genes=200, inplace=True, subset=True)
adata.write_zarr('habib_200_hvg.zarr')

before writing to zarr.  Demo is here

pbmc: No alterations.  I got this dataset from here

adata = sc.datasets.pbmc68k_reduced()
adata.write_zarr('pbmc.zarr')

Demo is here

pbmc_processed: No alterations.  I got this dataset from here

adata = sc.datasets.pbmc3k()
adata.write_zarr('pbmc3k_processed.zarr')

Demo is here

Was just thinking about something related and I think making separate schemas for the different kinds of options makes sense - no need for an enum, the options just have to be one of these schemas or none at all.  This would allow us to have an OME-TIFF loader directly.

Yes direct raster.ome-zarr and raster.ome-tiff loaders would be great to have!

Right now, I am obeying the convention of dots in the schema instead of slashes for communicating paths since it is similar to how it is done in Python. Should it be slashes? They are paths after all...

Is there any reason not to use an array of strings instead? Then you would not need to do setName.replace(".", "/") and instead could do setPath.join(".") or setPath.join("/") depending on what you need

Can we change genesFilter to geneFilter to match the geneFilter coordination type https://github.com/hubmapconsortium/vitessce/blob/master/src/app/state/coordination.js#L27

Right now, I am obeying the convention of dots in the schema instead of slashes for communicating paths since it is similar to how it is done in Python. Should it be slashes? They are paths after all...

I would use full paths with "/". All valid keys in a zarr store are posix-like paths, and since these are paths to arrays within the store, it makes sense to provide a path. This is what is done in the multiscale specification.
That's the point of being able to do:
await openArray({ store, path }); // path is a posix-like path with "/"

The "store" is what takes care of converting a path (if needed), (e.g. on windows: my/nested/array/path -> my\nested\array\path in a directory store)
import zarr
root = zarr.open('mydataset.zarr') # DirectoryStore('mydataset.zarr')
arr = root.get('my/nested/array/path') # opens an array from within hierarchy

@manzt Thanks for the comments on the zarr store.  @keller-mark I went with slashes on Trevor's recommendations only because I think the nested stuff can get a little hairy, and it is cleaner to not have to join or replace and split in our code.


Include style sheet change for matplotlib

Allow user to set the style sheet for those that like dark background. Would need to institute something like the following in the plot_*.py files:
with plt.style.context(('dark_background')):
    d.plot_ppi('reflectivity',0)

This could be added to the Display Options menu, while doing one must also allow a way of going back to white without resetting.
This would however means that display would always open in white, do you think it would be important to allow a change of default to open in black? there is no easy/clear way of doing this since we have no configuration setting.

As of right now, I don't think it's important in terms of configuration. Actually come to think of it, this type of configuration would be better suited to PyART if anything. What are your thoughts @jjhelmus to include something like this in the config file. Of course it would need to be added to the RadarDisplay and the like.

I disagree, I think this is the first example we have of a artview configuration not a pyart configuration. This can be done in pyart as an function argument if they want to.

Okay I'm open to exploring this. The cool thing is that the configuration could actually call a user's settings if they've set their own style sheet I think. I feel like a .cfg file could be loaded on startup with this any any future settings as yet to be determined.

I agree with @gamaanderson, this option does not belong in Py-ART.  The same functionality could be accomplished in Py-ART either using the context manager example you gave on a per call basis or globally by having a user set their matplotlib.rc file.  Since Py-ART target audience is writing scripts or IPython notebooks they can directly manipulate matplotlib settings using matplotlib's functionality.  ARTView need to provide a this functionality directly since users cannot directly manipulate these settings.

Alright, we'll explore adding this option to ARTView. It's low on the priorities, but just wanted to get this down in writing before I forgot.

Thanks @jjhelmus for the comment, it gave me the idea, this can be set in the script with
matplotlib.rcParams['axes.facecolor']='black'

As we do incentive user to write/modify scripts this a perfectly valid way of changing the default.  I have nothing against adding a config to artview, but if we can avoid it, I think it is better.

Will this only turn the face black though and not the adjust labels, etc.?
Another option if we wanted to "brand" ARTview would be to create our own stylesheet.
Here's an example script.
Just a thought, I'm not endorsing any ideas right now.

 matplotlib.style.use(('dark_background'))

also works

Yep that's the one that I used and it takes care of a multitude of settings (like axis font colors, etc.).


SSM Format not work for actions

After running start-ssm.sh -format, action table is not empty.

 Issue closed.


Window doesn't enter maximized state after being in fullscreen one

Window enters fullscreen mode when window placement is set dynamically to WindowPlacement.Fullscreen from maximized state, but not the other way around. However, window can enter the floating state after being in fullscreen one.
Affected platforms

Desktop

Versions

Kotlin version*: 1.9.21
Compose Multiplatform version*: 1.5.11
OS version(s)*: Fedora Linux 39
OS architecture: x86
JDK: corretto-18

Reproduction
The following code demonstrates the problem:
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.WindowPlacement
import androidx.compose.ui.window.application
import androidx.compose.ui.window.rememberWindowState

fun main() = application {
    val state = rememberWindowState(
        placement = WindowPlacement.Maximized
    )

    var isFullscreen by remember { mutableStateOf(false) }

    Window(onCloseRequest = ::exitApplication, state = state) {
        Button(
            onClick = {
                isFullscreen = !isFullscreen

                state.placement = if (isFullscreen) WindowPlacement.Fullscreen else WindowPlacement.Maximized
            }
        ) {
            Text("Toggle full screen")
        }
    }
}

Expected behavior
The window should enter maximized state after being in fullscreen mode.
Demonstration
https://github.com/JetBrains/compose-multiplatform/assets/91844722/14080707-80e6-44ac-a10a-dd9695785452

Thanks for the report. Fullscreen mode is known to be buggy on Linux, unfortunately.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Added test for cloning a bitmap

...and checking if pixel format is set correct.
Verification test for https://github.com/mono/libgdiplus/issues/541

The test is wrong...sorry. I'll close this one (and open a new one when I can come up with a fix).


Can't edit English content

Hi,
my default language in Bolt is Czech, I can create new entries with no problem. Everything is saved in database. But if I go to list of entries and try to open my English entry. I see only Czech texts.
Sorry for my English,
Martin

Hey @fojtcz,
So, both the default language (first in locales) and your bolt backend language is Czech, right? Is this on bolt 2.2 or 3.0?  Also, can you check in your browsers dev tools if you have any errors there?

Hi @SahAssar,
yeah, i set my default language to Czech. I am using latest Bolt 3.0. I don't see any errors in dev tools.

@fojtcz could you post your contenttypes.yml, your extension config (translate.animal.yml) and your config.yml so that I can reproduce the issue?
Thanks!

@fojtcz Oh, wait, you're using the latest stable 3.0? Cause this will only work in the dev version of bolt 3.0 until 3.0.10 is released...

@SahAssar yes, i am using stable version of Bolt 3.0.9.
my translate.animal.yml
locales:
    cs_CZ:
        label: Čeština
        slug: cs
    en_GB:
        label: English
        slug: en

routing_override: false
menu_override: false
translate_slugs: false

@fojtcz Well, then that's the issue... This extension will not work with 3.0.9 or earlier versions. It will only work with stable when the next bolt version is released. Please see #24.
If your interested in why, it's because there was a small bug in PRE_HYDRATE, so this callback basically does nothing in 3.0.9.
I'm closing this, please feel free open a new issue if you run into the same issue on a compatible bolt version! :)


UI/UX#0010: Pause Menu Layout

Please create a Pause Menu based on the layout above
In the Godot Engine, please refer to the layouts in Tscns/main_menu.tscn and Tscns/Options_scene.tscn
A node has already been created for you in Game_Manager/UI_Layer.tscn called "Control"  please rename it "Pause Menu"
Please refer to this to help you get started : https://www.youtube.com/watch?v=vsKxB66_ngw
Only the VISUAL PORTION of this menu needs to be completed.....no assets are necessary. For now, any backgrounds should be done by adding a child node to the original Control/"Pause Menu" node and adjusting the color in the inspector window.


Fix checksum failures

Fix checksum failures with new self-update process
This changes the update process in the following ways: the current
version is read from the server at /rustup/stable-release.toml; if the
version is different from the running version then rustup downloads
the new release from the archives at /rustup/archive/$version/.
Fixes #524
This is intended to be a temporary solution until the full solution detailed here is implemented.
r? @alexcrichton

I was pretty sleepy when I implemented this. Please read it closely.

Looks good to me! It's intentional right that the sha256 file isn't downloaded and checked though, right?
Other than that after the compile error is fixed r=me


Remove ubuntu groovy release.

The Release file in the repository is gone for the security updates, so the apt-get update seems to fail because of that. https://github.com/chipsalliance/verible/runs/4798055615?check_suite_focus=true
Unless there is a simpler work-around, given that Groovy is a short-term distribution and reached EOL last summer, not having a release seems fine.

Codecov Report

Merging #1138 (2cf5ae8) into master (b11c55c) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1138   +/-   ##
=======================================
  Coverage   92.84%   92.84%
=======================================
  Files         337      337
  Lines       22500    22500
=======================================
  Hits        20891    20891
  Misses       1609     1609

Continue to review full report at Codecov.

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


Integrate with AWS Distro for OpenTelemetry

Why AWS Distro for OpenTelemetry?

OpenTelemetry provides open source APIs, libraries, and agents to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) of distributed applications.

Because there is a few overlap between the lambda power tools and OpenTelemetry, it would be nice to see how the layer provided can be reused or merged:
https://github.com/open-telemetry/opentelemetry-lambda/tree/main/python
Another important aspect, although it has not been fully finalized yet, is to follow the Log Data Model defined in the OpenTelemetry spec so that the context can be later related to both metric and trace.

Hey @eduardomourar thanks a lot for the suggestion. This is something we'd like to consider for v2. I signalled this to the OpenTelemetry team to have a discussion on how to integrate in the future - I'll leave as Ideas until we have an initial chat with the OTel team on this in H2.
Following Log Data Model until it's finalized, stable, and in use for some time would be a good measure too besides customers +1 this feature request. In the medium term (v2, Q4), I can see us providing a better integration but not using it as the default yet.

It would be nice if we could change the logging backend between the open telemetry agent and the x-ray agent by setting some configuration values without any code changes.
There are currently two options for tracking data, each with pros and cons. And our main concern that is hesitating to do more custom instrumentation is code changes between logging backend changes. If there is a wrapper sdk, we will use it without hesitation.

I agree, this would be great. We want to be committed to Otel in the long run, but the native integration with lambdas is a winner. Having a switchable backend would let large organizations commit to this library knowing it could be used inline with longer term plans.

Sharing updates as we're discussing the Observability Provider feature in Python: https://github.com/awslabs/aws-lambda-powertools-python/issues/1433
As of now, we no longer intend to move entirely to OTel (ADOT included) for two main reasons:

Cold start increase is too significant because it requires a Daemon to be spun up (Java, .NET being the most impacted)
Logging is still in Draft status

Instead, we will focus on making it easier to bring any observability SDK/agent through observability providers (e.g., we have an undocumented TracingProvider today).

@Dilski Take a read of a similar thread with a more recent update on this: https://github.com/awslabs/aws-lambda-powertools-typescript/discussions/665#discussioncomment-3834638

... we won't be making any plans for moving to OTel at least in 2023.
We'll communicate with ample time if anything changes.

hey @Dilski thank you for flagging this inconsistency. I've pinged the X-Ray team as there is no confirmed plan to deprecate X-Ray SDK.
From our side, do you have ideas on where we can make this clearer? any specific place in the docs? FAQ?
Thanks a lot!! (@willfarrell too!)

Related to Tracing, there is a similar confusion with Metrics

aws-embedded-metrics
AWS Powertools TypeScript
Otel

I was planning to deprecate using aws-embedded-metrics within middy (https://github.com/middyjs/middy/tree/main/packages/cloudwatch-metrics). Then a major release happened.
The dream from my perspective is that powertools is an easier to use wrapper around otel.

Awesome, consider it done by EOW. If you don't mind, I'd appreciate a docs issue to help track this work: https://github.com/awslabs/aws-lambda-powertools-python/issues/new?assignees=&labels=documentation%2Ctriage&template=documentation_improvements.yml&title=Docs%3A+TITLE
Once we do in Python, we can easily transfer to other languages as the wording will be the same.

although it would be better if the X-Ray team were to update their warning/docs so we don't get the impression that we should just use adot/otel.

We'll pass that feedback along!

Happy to read this issue today. Some comments from my side after 21 days.

From there, if you want to use OTEL we should have an OTEL provider built-in, or if you want to use Provider X Y Z, you can bring their dependencies/config and plug that into our Tracer/Metrics/Logger pieces, keeping the same UX -- a thin-wrapper with our opinionated approach to handle 80% of use cases (20% being overrides, etc.).

Awesome @heitorlessa .
At the company i work for , the Teams in the modernization phase Serverless first strategy are now experimenting with Powertools (Python, Typescript, .NET) and in parallel with OTEL.
The Developer experience of powertools (best practices built-in) is great.
ADOT collector deployment strategy for serverless as the state of reality is today is not so developer friendly and has the domino effect in quality ;) Deploying a modified runtime as internal extension and and external extension for moving data from point A to point B gets complicated very fast.
The telemetry API announced recently is a better deployment approach in comparison to collector, however it is about moving telemetry data from Point A to Point B. ;)

(I'll write a RFC after re:Invent).

I am happy for the RFC moment after reinvent to read and also share experiences if needed.

We'll get there ;) I'm more hopeful than I was a year ago when looking at OTEL alone.

I like this statement


func azure storage fetch-connection-string <storage-account-name> clarification

Where the doc reads: Use Core Tools to download the connection string from Azure with one of the following commands: then - Get the Connection string for a specific storage account:...

User must first cd to the root directory of the function being created
Once the func azure storage fetch-connection-string "storage-account-name" command is run, the connection string will be written to the function's local.settings.json file.
This is awesome, but not lined out in the docs.
Not sure if this is of use, but here you have it :)

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

ID: b2646ad4-34b7-fc5e-dcc9-d53a061df394
Version Independent ID: bbff4fda-24e4-2b62-24b9-94cda5f53bed
Content: Work with Azure Functions Core Tools
Content Source: articles/azure-functions/functions-run-local.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

Thanks for the feedback! I have assigned the issue to the doc author to update appropriately.

I've clarified that the commands need to be run from the project root. Thanks!


Prerender timeout

When rendering http://www.swite.com/simone I get this error:
2015-06-25T09:15:30.321Z getting http://swite.com/simone
phantom stdout: INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable.
phantom stdout:   :45
phantom stdout:   :38 in c1
phantom stdout:   :38
phantom stdout:   http://maps.gstatic.com/maps-api-v3/api/js/21/5a/main.js:32
phantom stdout:   :38
phantom stdout:   http://maps.gstatic.com/maps-api-v3/api/js/21/5a/main.js:32
phantom stdout:   :44
phantom stdout:   http://maps.gstatic.com/maps-api-v3/api/js/21/5a/main.js:29
phantom stdout:   :44
phantom stdout:   :32
phantom stdout:   :68
2015-06-25T09:15:44.489Z Timed out. Sending request with HTML on the page
2015-06-25T09:15:44.510Z got 200 in 14189ms for http://swite.com/simone

You can try it here: http://prerender.herokuapp.com/http://www.swite.com/simone

prerender.herokuapp.com is deprecated and could be deleted any day now. Where did you find that URL? I'd like to remove any links to it.
I'll have to look into this issue and get back to you.

@thoop I found it here: https://github.com/prerender/prerender/issues/17#issuecomment-26592453
Please let me know if you found the cause of the issue
Thanks

Hey @thoop did you find something?
Prerender still hangs on rendering pages on our site like http://swite.com/simone
Even on prerender.io it takes more than 1 minute..
Thanks

Sorry! I'll look into this today. Been swamped. Thanks for your patience.

Hey @thoop I found the issue.. We were setting the flag window.prerenderReady = false; without resetting to true.. so prerender was waiting until timeout :)
Maybe a log console would have been useful ;)
Thanks anyway

Ah, ok :)


munin: switch to python3

Description of changes
#148779
Upstream has had Python 3 support for quite some time: https://github.com/munin-monitoring/munin/commit/3809849eb1174f5c6526791f44dc89609faf337f, https://github.com/munin-monitoring/munin/commit/43bf78e58e027d395e4c6861d177e75d06de96d2, ...

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 165184 run on x86_64-linux 1

1 package built:

munin

@ofborg test munin


Upgrade fontawesome to 5.2

Upgrade fontawesome css , js and webfonts to 5.2, this PR will need some testing before merge.

@KhadijaMahanga can we have this merged so we can upgrade TAKWIMU also?

@mtuchi Nice work mtuchi. You only missed updating the icons.yml

@KhadijaMahanga had already upgraded to 5.2.0 hence this PR wasn't needed


Change InitializeOLE to use a ProfferService to update the COM object rather than replacing it.

This is mostly for future reference once there is a good way to test the proxy service. Submitting a PR now so it isn't lost to the aether. Ref #51.

HI @tejacques, thanks for this I didnt know about IProfferService, not enough exposure to COM+ stuff until I started on this project.. useful stuff! :)


changed name of the boot() method to bootEncryptsAttributes() so that…

… it does not conflict with the boot() method of the Model that uses this Trait

Thanks, let me check.


Strange behavior of dot inside #each

Description:
In this sample the second column of numbers after few insertions has all numbers the same, but expected to work same as other columns
http://jsfiddle.net/Inversion/t0yf7sqx/
On v0.7 it works fine, as expected.
I do not get something about using . as a shortcut for this, or it's a bug?
Versions affected:
At least 0.8, 0.9

There was an uncovered corner case in reference expression handling and shuffles. This should be fixed in v0.8-dev and edge and will go out with 0.8.15 and 0.9.4 when they are cut. Thanks!

Thank you again for fast fix!
Just posted another strange case…