Force tensor evaluation inside while-loop, scan and others.

Hello everyone,
I had big plans for tf.while_loop until I discovered that it is impossible to re-evaluate tensor inside it. Let's dive into the the issue and potential useful feature:
In [13]: import tensorflow as tf
    ...: import numpy as np
    ...:
    ...: def cond(i, _x, _sq):
    ...:       return tf.less(i, 10)
    ...:
    ...: def gen_body(v):
    ...:     def body(i, x, sq):
    ...:         x = tf.Print(x, [x, sq], "x and sq: ")
    ...:         v_assign = v.assign(x + 1)
    ...:         v_assign = tf.Print(v_assign, [v_assign], "v_assign: ")
    ...:         with tf.control_dependencies([v_assign]):
    ...:             sq_neg = tf.negative(sq)
    ...:         sq_neg = tf.Print(sq_neg, [i, sq_neg], message='i and sq_neg:')
    ...:         return tf.add(i, 1), sq_neg, sq
    ...:     return body
    ...:

In [14]: sess = tf.InteractiveSession()

In [15]: i = tf.Variable(0)
    ...: v = tf.Variable(2)
    ...: sq = tf.square(v)
    ...: l = tf.while_loop(cond, gen_body(v), (i, v, sq))
    ...: sess.run(tf.global_variables_initializer())
    ...: sess.run(l)
    ...:
2017-10-10 22:59:44.819271: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [2][4]
2017-10-10 22:59:44.819405: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [3]
2017-10-10 22:59:44.819466: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[0][-4]
2017-10-10 22:59:44.819553: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.819615: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.819680: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[1][-4]
2017-10-10 22:59:44.819827: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.819885: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.819932: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[2][-4]
2017-10-10 22:59:44.820034: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.820094: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.820111: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[3][-4]
2017-10-10 22:59:44.820162: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.820250: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.820265: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[4][-4]
2017-10-10 22:59:44.820315: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.820379: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.820408: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[5][-4]
2017-10-10 22:59:44.820428: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.820438: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.820446: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[6][-4]
2017-10-10 22:59:44.820464: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.820490: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.820500: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[7][-4]
2017-10-10 22:59:44.820519: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.820532: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.820542: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[8][-4]
2017-10-10 22:59:44.820559: I tensorflow/core/kernels/logging_ops.cc:79] x and sq: [-4][4]
2017-10-10 22:59:44.820580: I tensorflow/core/kernels/logging_ops.cc:79] v_assign: [-3]
2017-10-10 22:59:44.820593: I tensorflow/core/kernels/logging_ops.cc:79] i and sq_neg:[9][-4]
Out[15]: (10, -4, 4)

I created v variable and tensor sq which equals to v^2. In fact, we don't have control over them, they are our input as x and y and we know that y depends on x. I would like to assign new value inside TensorFlow loop to x (equavalent to v at example) and evaluate fresh y (sq inside example) at each iteration of the loop. Meanwhile we can do other evaluations inside while_loop, but most important is that I need to update x and get updated y. Currently, assigning operation doesn't propagate updates down to the dependant nodes and it shouldn't, but when someone calls tensor depending on value which were updated via assign inside while_loop, I suppose the tensor node must detect this change and evaluate new tensor value again.
Thanks!

@skye Can you comment on this?

Let me make sure I understand what you're requesting: you would like a tensor computed from variables to have a new updated value every time it's executed in a while loop.
This is a reasonable expectation. However, I don't think we'll change this behavior. Right now, only tensors defined inside the loop will be evaluated every loop iteration. All tensors defined outside a loop will be evaluated exactly once. So you would have to write something like:
import tensorflow as tf
import numpy as np

def cond(i, _x):
      return tf.less(i, 10)

def gen_body(v):
    def body(i, x):
        x = tf.Print(x, [x], "x: ")
        v_assign = v.assign(x + 1)
        v_assign = tf.Print(v_assign, [v_assign], "v_assign: ")
        with tf.control_dependencies([v_assign]):
          sq = tf.square(v)  # <---- put 'sq' definition inside loop
          sq = tf.Print(sq, [sq], "sq: ")
          sq_neg = tf.negative(sq)
        sq_neg = tf.Print(sq_neg, [i, sq_neg], message='i and sq_neg:')
        return tf.add(i, 1), sq_neg
    return body

sess = tf.InteractiveSession()

v = tf.Variable(2)
l = tf.while_loop(cond, gen_body(v), (1, v))
sess.run(tf.global_variables_initializer())
sess.run(l)

Note that I moved the sq = ... inside the loop (and also made it depend on v_assign, to make sure we pick up the new assignment).
Does this help?

@ebrevdo @mrry FYI

I believe if you want a variable to be evaluated at each value of the loop, you should access it using variable.ref

or perhaps if you use a ResourceVariable (get_variable(..., use_resource=True)) it may do the right thing.
you may need to also set parallel_iterations=1, but probably not.

This is an optimization that we turned on because you don't want a Variable sitting on a parameter server elsewhere in the datacenter to be accessed at each iteration of an RNN.  you want to access it only once and cache it.  in this case you have an assign inside the while_loop and converting a Variable to a Tensor doesn't look to see if an assign has been performed just prior to this, to know it must refresh the value.  @mrry should we reset the caching identity tensor of a Variable after each assign?

@skye also, wdyt?

You're more familiar with these semantics than I am, but changing this might break (or at least regress) existing models, no?

Not sure.  Depends how many users perform a tf.assign/tf.assign_{add,sub} inside a while_loop (including applying an optimiser) and read the new value inside the while loop -- and what behavior they expect; and may be getting silent errors or models not converging because of this issue.
If this already just "works" with ResourceVariable, then that's a sign that the Variable semantics are just broken.

should we reset the caching identity tensor of a Variable after each assign?

I think this gets tricky because (from the perspective of a tf.Variable object) only some subset of the Variable.assign() (etc.) calls run in an any particular step, and so you can't use control dependencies to ensure that the identity is ordered after an assign. (Perhaps I am being too pessimistic and you have a more cunning solution in mind?)

If this already just "works" with ResourceVariable, then that's a sign that the Variable semantics are just broken.

+1. I'd strongly encourage people to switch to ResourceVariable in new code, and it's more compatible with other recent features like tf.data and some of the Estimator variants. I'm not sure what it would take to switch the default, however.

Thank your for your responses. Here is some clarifications to the task:

There are a variable x and a tensor y - the result of computation upon x. y = tf.square(x). They created outside of the loop.
I pass implicitly to the while_loop both tensors - x and y
I assign new value to x inside loop (let's say x.assign(x + 1)) and expect y gets evaluated with new x value (x + 1) when it is used somewhere after assigning. So, the aim is to re-evaluate y at each iteration along with x assigning.

I can be wrong, but in example below I never got different values for assign operation b and a variable outputs. I'm sure it can be a coincidence. Anyway, I got different values for c, and it is obvious because control_dependencies does work in that case. I guess, that it would be useful to be able to construct an operation like read_value(), but for any tensor, so that whenever it is called it would re-evaluate that tensor.
In [91]: tf.reset_default_graph()
...: a = tf.get_variable('a', initializer=2, use_resource=True)
...: c = a + 1
...: b = a.assign(a * 10)
...: with tf.control_dependencies([b]):
...:     c = c # <<<<<<<<<<<<<<<
...:              # here should be c.eval_tensor() or c.read_tensor(),
...:              # which constructs an operation being equivalent
...:              # to read_value() for variables.
...: sess = tf.InteractiveSession()
...: sess.run(tf.global_variables_initializer())
...: sess.run([a, b, c])
...
Out[91]: [20, 20, 3]   # <<< 3
...
Out[92]: [20, 20, 21]   # <<< 21

@skye, @mrry, @ebrevdo I'm sorry for bombarding you with multiple messages, here is an example that assigning inside loop is not a problem:
import tensorflow as tf
import numpy as np

def cond(i, _x):
      return tf.less(i, 10000)

def gen_body(x):
    def body(i, xa_prev):
        xa = x.assign(xa_prev + 1)
        with tf.control_dependencies([xa]):
            with tf.control_dependencies([tf.assert_equal(x, xa)]):
                i = tf.add(i, 1)
        return i, xa
    return body

tf.reset_default_graph()
i = tf.get_variable('i', initializer=0, use_resource=True)
v = tf.get_variable('v', initializer=0, use_resource=True)
sess = tf.InteractiveSession()
loop = tf.while_loop(cond, gen_body(v), [i, v])
sess.run(tf.global_variables_initializer())
sess.run([loop])

Out[203]: [(10000, 10000)]

The issue is that there is no way to recompute tensors which depend on it and were constructed outside of the while_loop. :)

I faced the same problem,
def body(rawstate,x,v,coef):
    rawstate.assign_add(tf.matmul(x[v],coef[v]))
    v.assign_add(1)
    return [rawstate,x,v,coef]

calrawstate=tf.while_loop(cond,body,[rawstate,x,v,coef])
And I faced this error,
AttributeError: 'Tensor' object has no attribute 'assign_add'
Here rawstate and v are two variables created using tf.get_variable()
Although this problem is trivial, and can be done without using assign or assign_add inside body
but sometimes it's needed in some case or in some custom model

@dchatterjee172, I think you have different issue. rawstate is a tensor, and by definition you can't assign value to it. If you expected to see same variable at each iteration, then it is not true.
@ebrevdo what is variable.ref?

@dchatterjee172, I don't think that you have

After playing with this for a bit, I reached two conclusions:

ResourceVariable has the same problem as Variable.
Variable.ref has been hidden from view; but you can access it using a hidden API (wherein your code will break in the future) via Variable._ref() or Variable._variable.

Here's code that does what I think you want it to do:
def cond(i, _x, _sq):
  return i < 5

def gen_body(v):
  def body(i, x, sq):
    x = tf.Print(x, [x, sq], "x and sq: ")
    with tf.control_dependencies([v.assign(x + 1)]):
      v_assign = v._ref()
    v_assign = tf.Print(v_assign, [v_assign], "v_assign: ")
    with tf.control_dependencies([v_assign]):
      sq_neg = tf.negative(sq)
      sq_neg = tf.Print(sq_neg, [i, sq_neg], message='i and sq_neg:')
      return tf.add(i, 1), sq_neg, sq
  return body

sess = tf.InteractiveSession()

i = tf.get_variable("i", initializer=0)
v = tf.get_variable("v", initializer=2)
sq = tf.square(v)
l = tf.while_loop(cond, gen_body(v), (i, v, sq))
sess.run(tf.global_variables_initializer())
sess.run((l, v))

@alextp any suggestions on how one would force accessing the updated value of a ResourceVariable within a calculation?  This has implications not only for while loops but also other distributed computations where one wants to access a new value from another machine after waiting for a bit.

@alextp perhaps a stateful read operator is in order?

It is possible to force a resource variable read to happen after an assignment, and indeed it will happen. @ebrevdo , why did resource variables not work? Do you have an example with them?
(I do not fully understand why we're using variables at all here instead of the regular while loop variable mechanism)

@alextp, @ebrevdo Hello, you snippet doesn't do what I need, I simplified it a bit below. Let me explain what it does.
There is function f and variable x. At each iteration step I increment x and want to re-evaluate f and take negative of it. What's good: if I take assign operation and pass it to the next iteration (even if I'm not using it), I can successfully increment external variable x. What's bad the function - f evaluated only once, but must be evaluated as many times as number of iterations with freshly assigned x. Check example below:
Here f(x) = x^2, and f_neg=-f(x):
def cond(i, _x_prev, _f_prev):
  return i < 3

def gen_body(x, f):
  def body(i, _x_prev, _f_prev):
    x_assign = x.assign(x + 1)
    # with tf.control_dependencies([x.assign(x + 1)]):
    #   x_assign = x._ref()
    with tf.control_dependencies([x_assign]):
      f_neg = tf.negative(f)
      i = tf.add(i, 1)
      i = tf.Print(i, [i], message='>>> Iteration ')
      i = tf.Print(i, [x], message='x = ')
      i = tf.Print(i, [x_assign], message='x_assign = ')
      i = tf.Print(i, [f], message='f = ')
      i = tf.Print(i, [f_neg], message='f_neg = ')
      return i, x_assign, f_neg
  return body

tf.reset_default_graph()
sess = tf.InteractiveSession()
i = tf.get_variable("i", initializer=0)
v = tf.get_variable("v", initializer=0)
func_v = tf.square(v)
l = tf.while_loop(cond, gen_body(v, func_v), (i, v, func_v))
sess.run(tf.global_variables_initializer())
sess.run((l, v))

Output. x is incremented sucessfully from 0 to 3, but f remains non-updated!
... >>> Iteration [1]
... x = [1]
... x_assign = [1]
... f = [0]
... f_neg = [0]

... >>> Iteration [2]
... x = [2]
... x_assign = [2]
... f = [0]
... f_neg = [0]

... >>> Iteration [3]
... x = [3]
... x_assign = [3]
... f = [0]
... f_neg = [0]

@alextp,

(I do not fully understand why we're using variables at all here instead of the regular while loop variable mechanism)

The task is update the variable and the depending on it function which are defined outside of while_loop. In example above, the f is func_v tensor and x is v variable, both passed to gen_body.

Right. If you want the function to be computed inside the while loop you need to call it inside the while loop. Something like
def cond(i, _x_prev, _f_prev):
  return i < 3

def gen_body(x, f):
  def body(i, _x_prev, _f_prev):
    x_assign = x.assign(x + 1)
    # with tf.control_dependencies([x.assign(x + 1)]):
    #   x_assign = x._ref()
    with tf.control_dependencies([x_assign]):
      f_neg = tf.negative(f(x_assign))
      i = tf.add(i, 1)
      i = tf.Print(i, [i], message='>>> Iteration ')
      i = tf.Print(i, [x], message='x = ')
      i = tf.Print(i, [f(x_assign)], message='x_assign = ')
      i = tf.Print(i, [f(v)], message='f = ')
      i = tf.Print(i, [f_neg], message='f_neg = ')
      return i, x_assign, f_neg
  return body

tf.reset_default_graph()
sess = tf.InteractiveSession()
i = tf.get_variable("i", initializer=0)
v = tf.get_variable("v", initializer=0)
func_v = lambda v: tf.square(v)
l = tf.while_loop(cond, gen_body(v, func_v), (i, v, func_v(v)))
sess.run(tf.global_variables_initializer())
sess.run((l, v))

When you define func_v as a tensor outside the loop it has a fixed value which will stay fixed forever. If you want it to be recomputed you need to actually recompute it.

@alextp, that's right. In fact, it was a feature request - to be able to recompute the tensor and introduce property which generates this operation. I'm sorry if it wasn't clear from previous messages  That would be super useful in while_loop-like flow statements.
The solution which you proposed doesn't work for me, as I do have control on input tensors x and f, and I do not know what's inside f.
How hard is it to implement re-computation operation for tensor?

With the current graph semantics it's essentially impossible.
On Fri, Oct 13, 2017 at 7:51 AM, Artem Artemev<EMAIL_ADDRESS>wrote:

@alextp https://github.com/alextp, that's right. In fact, it was a
feature request - to be able to recompute the tensor and introduce property
which generates this operation. I'm sorry if it wasn't clear from previous
messages That would be super useful in while_loop-like flow statements.
The solution which you proposed doesn't work for me, as I do have control
on input tensors x and f, and I do not know what's inside f.
How hard is it to implement re-computation operation for tensor?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/13616#issuecomment-336474085,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAATxcKI_k6pTejahsF7TvgFWFYvTgyCks5sr3j5gaJpZM4P0qPF
.

--

Alex

@alextp. oh, that's bad. Okay, I managed to pass f(x) as python function and at each iteration I construct new tensor y = f(x), does it mean that the size of the graph will grow linearly with number of iterations? Can an unwise usage of while_loop lead to the graph "overflow", taking into account that graph size is limited?

No, the size of the graph is constant even if you call f(x) in each
iteration, because tensorflow's while loop is symbolic and only creates the
body graph once.
On Fri, Oct 13, 2017 at 8:43 AM, Artem Artemev<EMAIL_ADDRESS>wrote:

@alextp https://github.com/alextp. oh, that's bad. Okay, I managed to
pass f(x) as python function and at each iteration I construct new tensor y
= f(x), does it mean that the size of the graph will grow linearly with
number of iterations? Can an unwise usage of while_loop lead to the graph
"overflow", taking into account that graph size is limited?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/13616#issuecomment-336488570,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAATxXr6HKksKduSmuWFS3-emCehda_tks5sr4UrgaJpZM4P0qPF
.

--

Alex

@alextp, last question: If I create c++ operation, which will accept x variable and f tensor, will I be able to manipulate execution of f depending on changes in x. In other words, will I be able to execute f tensor each time when I change x. Thanks!

You need to explicitly include this C++ operation in the graph in all the
places where you'd want it to run. There's no way to trigger it running
only when x is modified.
On Fri, Oct 13, 2017 at 1:35 PM, Artem Artemev<EMAIL_ADDRESS>wrote:

@alextp https://github.com/alextp, last question: If I create c++
operation, which will accept x variable and f tensor, will I be able to
manipulate execution of f depending on changes in x. In other words, will
I be able to execute f tensor each time when I change x. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/13616#issuecomment-336560051,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAATxUGGup22k2UCOAs2An65SDeEfn6fks5sr8mYgaJpZM4P0qPF
.

--

Alex

Thanks all for your responses!

A year later, did anything change on that? @alextp, is it still impossible? I find that it somehow works and am confused about why it does/does not (I write here as the previous discussion is basically the same thing as I try to accomplish):
Basically, the re-evaluation works outside of a loop, that's confusing for me
Pseudo-code
x = <Tensor depending on var>

var_assign = tf.assign(var, value)
with tf.control_dependencies([var_assign])
	sess.run(x)  # prints with the old value, of course

but adding an identity before

var_assign = tf.assign(var, value)
with tf.control_dependencies([var_assign])
	x_2 = tf.identity(x)
	sess.run(x_2)  # prints with the new value!

So in the second case, sess.run reevaluates the whole Tensor X. But this does not work in a while loop (of course, we cannot have a sess.run). So why does x_2 get's re-evaluated here but not in a while-loop? I did not expect this way to work

Reevaluation does not work outside of a loop; a tensor is only evaluated a
single time within a single call to session.run.
Try to have more than one update per call to session.run and you'll see
things breaking.
(your example also relies on the lack of a memory model for legacy tf
variables but this is not relevant)
On Sat, Nov 3, 2018 at 11:32 AM Jonas Eschle<EMAIL_ADDRESS>wrote:

A year later, did anything change on that? @alextp
https://github.com/alextp, is it still impossible? I find that it
somehow works and am confused about why it does/does not (I write here as
the previous discussion is basically the same thing as I try to accomplish):
Basically, the re-evaluation works outside of a loop, that's confusing
for me
Pseudo-code
x =
var_assign = tf.assign(var, value)
with tf.control_dependencies([var_assign])
sess.run(x)  # prints with the old value, of course
but adding an identity before
var_assign = tf.assign(var, value)
with tf.control_dependencies([var_assign])
x_2 = tf.identity(x)
sess.run(x_2)  # prints with the new value!
So in the second case, sess.run reevaluates the whole Tensor X. But this
does not work in a while loop (of course, we cannot have a sess.run). So
why does x_2 get's re-evaluated here but not in a while-loop? I did not
expect this way to work
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/13616#issuecomment-435610487,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAATxfWbCkETnuov7i73C5uTctP_vaXXks5ureFJgaJpZM4P0qPF
.

--

Alex

Ah, I see (so it's actually independent of a loop): one sess.run -> zero (if can be cached) or one evaluation of a tensor.
Thanks, @alextp!


jdk version

Is EXACTLY jdk 1.6  needed?
Why is this not compiling on a higher version?

I'll fix the readme. It must compile on any version starting with 1.6. If it isn't please attach the errors.

mvn package assembly:single command does not seem working

It, indeed, seems that assembly plugin is not even added in pom.xml file
Also,
jdbc:clickhouse:localhost:8123
This is given as an example connection string but it seems
jdbc:clickhouse://localhost:8123 this is the semantics you are using in tests also regExp checks against this.
Could you also add some documentation about the usage because  it is not really clear even how to execute the simplest queries on the database.
I would be really happy to write a documentation and make a pull request provided you give me some working implementation of this lib with Clickhouse or explain the basic structure of class hierarchy.

Thanks for pointing out. The readme was quite obsolete. I've updated it with correct urls and updated build configuration.
To see basic examples of querying data you now can check this https://github.com/yandex/clickhouse-jdbc/blob/master/src/test/java/ru/yandex/clickhouse/integration/OnTime.java
It would be great if you write some documentation.
The basic structure is this:
ClickHouseDriver is a driver class that actually can make connections.
ClickHouseDataSource also can make connections.
All of this is just an implementation of JDBC interfaces.
ClickHouseConneection is basically a apache http client with some properties. When you execute a query you actually send an http request through this client.
To configure the connections one can use ClickHouseProperties object that contains values for two predefined Enums with properties: ClickHouseConnectionSettings, ClickHouseQueryParam.
The first are for connections in whole. The properties defined in the second are actually passed to every query as url parameters of a request. All this logic can be seen in ClickHouseStatementImpl.
I hope this helps.

@Ngalstyan4 If you have any questions left you can comment or reopen this issue.


Testing pipeline cleanup on failure

@dsx1123 Let me know if you like this approach and if you do we can consolidate both mine and your way of cleaning up the VMs/ACI config in case of failures.


feat: Hunger games: a better loading view + we finally support errors…

Hi everyone,
I've reworked a bit the Hunger game page, with:

A loading view with some Text instead of a vague Progress Bar
We now catch errors 💥
… and we can even retry the request 👍
There are some minor tweaks for the question page and the congrats Widget
With the need to retry requests, there's no more a FutureBuilder, hence needing a bit more code
Some Dart 3 code (sealed classes, enhanced switch)

Some screenshots:
Loading:

Question card:

Error:

Codecov Report

Merging #4448 (569226f) into develop (13e6d54) will decrease coverage by 0.03%.
Report is 1 commits behind head on develop.
The diff coverage is 2.91%.

@@             Coverage Diff             @@
##           develop    #4448      +/-   ##
===========================================
- Coverage    10.17%   10.14%   -0.03%
===========================================
  Files          295      295
  Lines        15087    15154      +67
===========================================
+ Hits          1535     1538       +3
- Misses       13552    13616      +64

Files Changed
Coverage Δ

...pp/lib/cards/product_cards/product_title_card.dart
0.00% <0.00%> (ø)

...ric_lib/buttons/smooth_large_button_with_icon.dart
0.00% <0.00%> (ø)

...es/smooth_app/lib/pages/hunger_games/congrats.dart
1.44% <0.00%> (-0.03%)
:arrow_down:

...ooth_app/lib/pages/hunger_games/question_card.dart
0.00% <ø> (ø)

...ooth_app/lib/pages/hunger_games/question_page.dart
2.28% <3.14%> (+1.39%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

I wonder why we try to make Hunger Games an overlay vs a dedicated screen. (I do understand it when the widget is shown on a product)

You're totally right and would be interesting to also use the onboarding from the website, to clarify that's another feature from the main app. I note this for next "sprint".


PowerPC compilation error

It is mentioned in the repo docs that the pip installs is available for x86 architectures, and that the source code has to be compiled on other architextures.
On ppc64le, we get the following error on compiling: (gcc 10)

Thank you @bab2min

@bab2min  any feedback on this as yet?

@marcelned
It seems that some dependent also have issues with PowerPC, which will require more time to troubleshoot.
I'm sorry, but please wait a little longer.


Share Maps Between Program Types

As a user of bpfd, I want to design an application comprising of many tracepoints.
These tracepoints each send a generic payload over a BPF_MAP_TYPE_RINGBUF:
typedef event {
    u64 event_id;
    i64 value;
}

Sharing a single ringbuf among my probes would result in a simpler userspace application
Potentially related to #331

This is now supported with the map sharing API. It's not perfect, but it's functional.
Closing so we can add more targeted enhancments to the issue tracker.


Support Order by

In the select many functions, it's seems there's no where to specify order by. This is usually important, especially if you want to display most recently added entities at the top of a list.
Is this something that fits in the scope of pg-entity?

Yes absolutely, I'm going to take care of this this week-end. :)


Multiple calls to a generic function with nested generic functions generates a type error

There is a bug with nested generic functions.
Given this Sway code:
script;

use std::assert::*;
use std::revert::*;

fn third_match<V>(value: V) -> u8 {
  match value {
    foo => 5u8,
  }
}

fn second_match<U>(value: U) -> bool {
  match third_match(value) {
    1u8 => false,
    2u8 => false,
    3u8 => false,
    4u8 => false,
    5u8 => true,
    _ => false,
  }
}

fn first_match<T>(value: T) -> u64 {
  match second_match(value) {
    false => 2u64,
    true => 3u64,
  }
}

fn third_if<V>(value: V) -> u8 {
  if true {
    5u8
  } else {
    revert(0);
  }
}

fn second_if<U>(value: U) -> bool {
  let third = third_if(value);
  if third == 1u8 || third == 2u8 || third == 3u8 || third == 4u8 {
    false
  } else if third == 5u8 {
    true
  } else {
    false
  }
}

fn first_if<T>(value: T) -> u64 {
  let second = second_match(value);
  if second == false {
    2u64
  } else {
    3u64
  }
}

fn generic_match<T>(value: T) -> u64 {
  match value {
    foo => 3u64,
  }
}

fn generic_if<T>(value: T) -> u64 {
  if true {
    3u64
  } else {
    1u64
  }
}

fn main() -> u64 {
  let a = first_match(true);
  assert(a == 3);

  let b = first_match(1u8);
  assert(b == 3);

  let c = first_if(true);
  assert(c == 3);

  let d = first_if(1u8);
  assert(d == 3);

  let e = generic_match(6);
  assert(e == 3);

  let f = generic_match(false);
  assert(f == 3);

  let g = generic_if(6);
  assert(g == 3);

  let h = generic_if(false);
  assert(h == 3);

  1
}

this errors on the second usage of both first_match and first_if:
  --> match_expressions_inside_generic_functions/src/main.sw:76:23
   |
74 |
75 |
76 |   let b = first_match(1u8);
   |                       ^^^ Mismatched types.
expected: bool
found:    u8.
help: The argument that has been provided to this function's type does not match the declared type of the parameter in the function declaration.
77 |   assert(b == 3);
   |
____

error
  --> match_expressions_inside_generic_functions/src/main.sw:82:20
   |
80 |
81 |
82 |   let d = first_if(1u8);
   |                    ^^^ Mismatched types.
expected: bool
found:    u8.
help: The argument that has been provided to this function's type does not match the declared type of the parameter in the function declaration.
83 |   assert(d == 3);
   |
____

The repro is here: https://github.com/FuelLabs/sway/blob/606a6002248d2e8a036d887752956b811d0f7f03/test/src/e2e_vm_tests/test_programs/should_pass/language/match_expressions_inside_generic_functions/src/main.sw

Potentially related: a recurring issue where unwrap() can't be found when trying to call result.unwrap(). Turns out this can be worked around by explicitly annotating the type:
let sender: Result<Sender, AuthError> = msg_sender(); // if you remove `: Result<Sender, AuthError>` this doesn't work!
sender.unwrap();

Turns out the bug you pointed out wasn't immediately related @adlerjohn , but #1746 fixes the bug at the top of this issue, so I'll be closing this issue when that PR goes in, and I made a new issue with your bug #1747


Convert jpeg or png to Dicom (.dcm)

Hi, how to convert jpeg to dicom file ? .jpeg to .dcm
If you have not that class, do you know how to convert that with other tools in javascript or node js ?
Thanks for reply.

Related: https://github.com/dcmjs-org/dcmjs/issues/85


MDX Extravaganza!

Learn section is done
Docs section is done
Smart Contracts is done
Reference is done
Tools is done

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr457.previews.kube001.services.stellar-ops.com


MAINT: Add Python 3.11 classifier and upgrade to GEOS 3.11.1; other CI upgrades

Add a Python 3.11 classifier.
This follows on from #1596 to test Python 3.11 for the "dev" builds (although presumably 3.12-dev could be considered), and also bump NumPy to 1.23.4.

Those lines need to be updated:
https://github.com/shapely/shapely/blob/e027985cef648c5ce07c26a06dbd986c222e107e/tests/test_locale.py#L38-L42
resetlocale is deprecated starting with Python 3.11. The message says "Use locale.setlocale(locale.LC_ALL, "") instead", so what we already do for windows.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
10 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.03%) to 84.843%

Files with Coverage Reduction
New Missed Lines
%

shapely/geometry/linestring.py
2
92.73%

shapely/constructive.py
3
81.6%

shapely/geometry/polygon.py
5
91.98%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
2211

Relevant Lines:
2606

💛  - Coveralls

Also upgrading GEOS 3.11.1 released earlier today.

Thanks!


App icon on grunt prepare

Hi developers,
I've been testing TOAST for some applications that will run on orsay, tizen 15 models and 16 models.
I tried to generate the app icon using cordova tutorial (see the next url: https://cordova.apache.org/docs/en/5.0.0/config_ref/images.html) and did not work, so I need to do this manually on each config file.
Will be awesome if this task is added automatically on grunt prepare task.
Regards.

I am really appreciate for your good suggest to make TOAST better.
We will try to consider and apply soon. Thanks.


Allow the creation of a Client without any API Key

Currently, we can’t create a Client without any API Key.
But when you’re using meilisearch in development you can totally launch your instance without any API Key.
There is no reason to not support that.

What would the default behavior be for instantiating the client in regards to the api_key field on the Client struct be?
I might be able to take this issue.

I think we should change the Client struct to take an Option<String> for the API key.
And then, for every request, when we send a request, we check if an API key is defined, and if there is none, we don't send the Authorization field at all.

alright, I'll take this.

So, is this issue still up for grabs?


Use gofmt and golint

The go report of A+ is a lie. :)
One of Gos most approachable and best feature is a GLOBALLY standardized way of formatting the source code.
Not using that standard closes you off from people contributing who are using the global standard.

Can you please provide some examples where we do not follow the go standard. We use GolangCI for linting, gofmt and golint are explicitly turned on, so if there is any examples that must be a bug somewhere.
We totally want people to contribute to this project, so we are fully committed to fixing this issue. :)

Hey @sagikazarmark.
Just open your A+ Go Report Card which tells you what issues you are having. :)
https://goreportcard.com/report/github.com/banzaicloud/pipeline
Also, normally the standard indentation is 4 spaces / tabs / bunnies / space stations. So seeing 2 is weird for me. But that's REALLLYYY stretching it. :)

For example, small things like these:
/*
AuthApiService Delete an API token
Delete an API token
 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
 * @param tokenId Token identification
*/

Go comments aren't Java comments. :)

@Skarlso my bad, I haven't actually opened Go Report Card. I'm not sure if you realized that, but the code under the client package is generated and excluded from our lint checks on purpose. Generated code is not for humans to read, although you kind of have to in order to use it, but you certainly don't need to modify it, so if this was keeping you from contributing to the project then I think you are safe from having to modify code that doesn't follow Go standards.
The rest of the warnings are also not really reliable on Go Report Card (for example go vet complains about an unknown format verb which can be used because of a custom implemented string formatter. With GolangCI we can safely ignore these "violations", but with Go Report Card we obviously can't.
As for the indentation size: honestly I also prefer tab size 4, I'm not exactly sure why we use size 2 tabs. But thanks to EditorConfig (which is also a standard tool these days) you don't have to pay attention, your IDE will take care of this and I don't think readability is much of an issue here.
I hope I addressed all of your concerns and nothing keeps you from sending a few PRs ;)
Feel free to close the issue if I did.


support user build-arg

What type of PR is this?

[ ] bug
[x] feature
[ ] enhancement

What problem(s) does this PR solve?
Issue(s) number:
Description:
How do you solve it?
Special notes for your reviewer, ex. impact of this fix, design document, etc:


pastebinit: change upstream to maintained fork, add tests, and manpage

Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[ ] 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/)
23.11 Release Notes (or backporting 23.05 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

[x] Fits CONTRIBUTING.md.

@raboof I made a mistake whilst trying to fix the merge conflict and accidentally ended up deleting the branch of my fork. I didn't seem to have an option to reopen this pull request now that the branch exists again, so I opened #270974 which contains the same changes, but can merge correctly.


Sync preserve doesn't exclude files from fingerprinting

Current Behavior
We have a Sync task for setting up some directory structure, which is used by some other process. The process outputs very large logs (10 log files x 1GB each) into that directory, which we do not want the Sync task to delete, so we use preserve to exclude the logs directory, like so:
          // don't delete the logs directory
          syncTask.preserve(filter -> {
            filter.include("logs/**");
          });

When we run the Sync task, according to the build scan, the task executes in 0.03s, but "Fingerprinting inputs" takes ~24s if the logs are present. If you delete the logs and run it again, "Fingerprinting inputs" takes 0.004s.
Expected Behavior
Using preserve should exclude those files from being fingerprinted. Essentially I want that entire  logs subdirectory to not be counted as part of the task output.
Context (optional)
No response
Steps to Reproduce
Created a repro here:
https://github.com/scottjasso/preserveFingerprinting

./gradlew runProcess - takes 8s on my machine.
./gradlew runProcess again -- takes 29s.
rm -rf build/destinationDir/logs/*
./gradlew runProcess takes 8s again.

Gradle version
7.6.2, 8.3
Build scan URL (optional)
No response
Your Environment (optional)
No response

Thank you for providing a valid report.
The issue is in the backlog of the relevant team, but this area of Gradle is currently not a focus one, so it might take a while before a fix is made.


Implement find_first(pos)

See #80 for motivation.
This closes #80.

The build failures are expected since GitHub broke the ecosystem, again, today.


Converting .jpeg to .exr

The jpeg to exr conversion does not work.

The mexximpExrTools has a parameter 'dockerImage'. This parameter is normally called 'exrtoolsImage'
There are some flaws in logic handling paths to different directories. This becomes apparent when the model is placed in a directory in the working folder.

Could you attach a specific example to help me reproduce the problem you're seeing?  That would make it easier for me to fix the bug.

I've created a separate branch to work in this issue (exrFix).

I've fixed the parameter naming conversion in mexximpExrTools.m.
I modified the code in mexximpRecodeImage so that texture files stored in multi-level sub directories are correctly read and converted, but:

I'm not sure this fix is generic enough
The converted exr files are saved in the working directory rather than the sub-directory where they came from. This is to allow RTB4 to automatically copy all the necessary files to the resources folder in the directory with rendering outputs.

Thanks for the branch!  I will look soon and also run some tests to make sure existing code works with the change.
Could you make a PR for this branch?  I think that will be a nice way to handle comments and revisions, and merging.

Hi Ben,
I don’t want to create a PR just yet. Still working on some details.
Also, I’ve come across a mesh that uses textures in .TGA format. I’ll update the mexximpExrTools function to support this file type as well. I’ll probably create a new docker container with the relevant tools.
Cheers,
Henryk
On Nov 16, 2016, at 7:50 AM, Ben Heasly <notifications<EMAIL_ADDRESS>wrote:
Thanks for the branch! I will look soon and also run some tests to make sure existing code works with the change.
Could you make a PR for this branch? I think that will be a nice way to handle comments and revisions, and merging.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/RenderToolbox/mexximp/issues/3#issuecomment-260981652, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEDRKf5cXR7ONKBXX4Lowqc6c-uHe5Dhks5q-yZRgaJpZM4KvQgt.

Hi @hblasins -- I made a PR to help me look at the changes.  But you can still make changes to the branch and the PR should update itself.

For the parameter name in mexximpExrTools.m, I think you're right.  Thanks for making the change.  I think we should likewise change all occurrences in the comments and variables.  Maybe with find and change dockerImage -> exrtoolsImage?
For .tga support, I think this is great.  I assume this new "convert" operation will only work with imagemagic, and not plain old exrtools?  If so, I think we should update the comments to say that "convert" is special and has a different dependency.
For locating image files in mexximpRecodeImage, I think we want to be able to locate files in multi-level subdirectories, like you say.  But I think the current code at line 85
    originalPath = fullfile(workingFolder, sceneFolder, imageFile);

will produce a bad path when workingFolder and sceneFolder both have their default value of pwd().
I think sceneFolder is the input and workingFolder is the output.  In that interpretation, I think the way to locate files in multi-level subdirectories would be to do a search within the sceneFolder.  How about that?

@benjamin-heasly

I'll have a look and the naming and change dockerImage to exrtoolsImage for consistency.

The new docker image I've been using also has exrTools installed, so it is backwards compatible. I was thinking about using imagemagic for all conversion operations, but I have yet to test it on .exr image conversion. In addition the new docker image is substantially larger; 1GB vs 400MB or so. But maybe for simplicity and consistency we should move to imagemagic? What do you think?

Yep, the file location code was not fully tested...

Hi @hblasins --

Sweet.

I think if imagemagic does the job with exr files, then we should go ahead and move to it.  I agree the simplicity would be good, and worth the image size.  Do you want to do some EXR tests?

Cool.  Fair enough.  Do you want to have a short Skype chat this week to figure out what to do with sceneFolder and imageFolder and who should make the next changes?

Hi Ben,
how about chatting on Skype on Wednesday at 12 (noon) PST?
Best,
Henryk
Wiadomość napisana przez Ben Heasly <notifications<EMAIL_ADDRESS>w dniu 05.12.2016, o godz. 09:00:
Hi @hblasinshttps://github.com/hblasins --

Sweet.

I think if imagemagic does the job with exr files, then we should go ahead and move to it. I agree the simplicity would be good, and worth the image size. Do you want to do some EXR tests?

Cool. Fair enough. Do you want to have a short Skype chat this week to figure out what to do with sceneFolder and imageFolder and who should make the next changes?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/RenderToolbox/mexximp/issues/3#issuecomment-264910899, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEDRKTecJoZtNk5JVMJ81gnUj2Ia83d4ks5rFEMmgaJpZM4KvQgt.

@hblasins OK, see you tomorrow at noon aka 3pm.

Hi Ben,
just wanted to let you know that I may be a few minutes late…
Also, so I don’t forget; I’m working with a very large mesh right now (its a model of a city) and it takes RTB4 hours to generate a PBRT file. To give you the idea of the size, about 75k geometry files are being generated during the export. Is this time constraint something I’ll have to live with, or could things be accelerated?
Henryk
Wiadomość napisana przez Ben Heasly <notifications<EMAIL_ADDRESS>w dniu 06.12.2016, o godz. 11:29:
@hblasinshttps://github.com/hblasins OK, see you tomorrow at noon aka 3pm.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/RenderToolbox/mexximp/issues/3#issuecomment-265247887, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEDRKQ4IKwJ1417okvcjfq3cULToFsCiks5rFbengaJpZM4KvQgt.

I don't know if we can speed that up or now.  I haven't tried working with large scenes like that before.  I suggest you make a separate issue about that.

Merged PR #9 to close this.


Sentinel Training Lab, module 2 Anomali TAXII feed end of life

Module 2, Exercise 3
https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Training/Azure-Sentinel-Training-Lab/Modules/Module-2-Data-Connectors.md#exercise-3-enable-threat-intelligence-taxii-data-connector
To Reproduce
Follow steps in Module 2, Exercise 3 to configure Anomali's Limo TAXII feed
Expected behavior
Expect to connect to feed.
Additional context
Anomali indicates the Limo feed went EOL 8/14/2022
There is a sales type link to get notified when the new and improved free TAXII feed is available.
https://www.anomali.com/resources/limo

Facing similar issue.


How to extract voxel features rather than SimpleVoxel?

The SECOND paper use the "voxel feature encoding (VFE) layer", as the code in "VoxelFeatureExtractor" in "voxel_encoder.py". However, in all config files, the "voxel_feature_extractor" is set to "SimpleVoxel", and when I change the "SimpleVoxel" to "VoxelFeatureExtractor" in config files, there are some errors, so how could I use the VFE layer to extrat features?

I also encountered  the same question.Have you solved the problem?

@yizhengfeng-jj Yes. here is my setting in car.fhd.config
    voxel_feature_extractor: {
      module_class_name: "VoxelFeatureExtractor"
      num_filters: [32,128]
      with_distance: false
      num_input_features: 4
    }
    middle_feature_extractor: {
      module_class_name: "SpMiddleFHD"
      # num_filters_down1: [] # protobuf don't support empty list.
      # num_filters_down2: []
      downsample_factor: 8
      num_input_features: 128
    }

This works for me in training step.

@3bobo  what is the SPmiddleFHD ?? can you share the link of that definition


9836-abci-add-vote-extension

PR checklist

[ ] Tests written/updated
[x] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments

Ali, please change the base branch to v0.38.x


overload setter Feature Proposal

I think lombok.javac.handlers.JavacHandlerUtil.methodExists should check the type of param.
Now I need to write an overload set method to cast some type into the original type of a field, then I have to write that method and the original setter method as well.
eg: String egField  I need to write public void setEgField(int egField) which will cast int to String and I also want the public void setEgField(String egField)
Does this make sense?

I think lombok.javac.handlers.JavacHandlerUtil.methodExists should check the type of param.

I'm afraid this isn't done as it'd be too complicated due to generics and resolution.

Now I need to write an overload set method to cast some type into the original type of a field, then I have to write that method and the original setter method as well.

No, you don't. Just mark your method with @lombok.Tolerate. Your case is exactly the motivation behind this annotation.

@Maaartinus thank you


Accept a boolean from Harmony to set cut= parameter when run as part of service chain

We've been tracking down a newly discovered bug that occurs when running the l2ss>Batchee>StitchEE>CONCISE chain in UAT.
It seems like the unexpected condition may have been hidden because of a discrepancy in arguments being passed to L2SS's high-level subset()  function, between command-line invocations and Harmony invocations... cut=False by default in the cli; and no argument is given in the Harmony adapter so it uses the default of cut=True in the function definition.
In effect, I think l2-subsetter services have been  (and probably want to continue)  using cut=True, but for the batchee>stitchee>concise chain, we want cut=False.
It seems like to address this we might need a service- (or collection-) specific argument/configuration to be passed from Harmony to L2ss-py.

Previous discussions about this feature can be found in
https://bugs.earthdata.nasa.gov/browse/PCESA-1528
https://bugs.earthdata.nasa.gov/browse/TRT-22
https://bugs.earthdata.nasa.gov/browse/TRT-13


build(deps): bump pgx/v4 to pgx/v5

Just a version bump, want to see if some new v5 mapping features could improve the query code.

Whoops need to take a look on these updates.

 Nevermind, cheers!

Ah failed to push on my side, you won. Congrats.


Using attrs to set default x and y for gridded outputs

After #173 went in, I realized that there is more info in the coords attrs that can be used to set better defaults.
This PR:

For reference, this is the output of the same call on master:

Great! Feel free to merge if it's ready.


watch

Problem encountered on https://dotnet.microsoft.com/learn/aspnet/hello-world-tutorial/run
Operating System: windows
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.

Hi @danyagluhov35 - can you provide details about the problem you are experiencing? Which step did you take? What was the error message? etc.


Dark mode > WFH Request popup > UI issues: it's hard to see the text color

Pre-Condition

User logins successfully and is on the W2 homepage
User has selected the Dark Mode option

Steps to reproduce the problem

Click on "WFH Request" option at the sidebar
Click on "New task" button
Observe the WFH popup

Expected Result
The text color should be changed so that user can find it easy to see all the information of the popup
Actual Result
It's hard too see the text color
Screenshots

Note: this issue happens on 2 other popup too (Change office & Device Request)

done


TZ issue

hello,
i'm not able to figure out how to set different time zones. for me it just doesn't work as expected:
cargo run -- --latitude 55.7558N --longitude 37.6173E  report # Moscow
LOCATION
--------
Latitude: 55.7558N
Longitude: 37.6173E

DATE
----
2022-01-18 12:00:00 +03:00

Solar noon is at:         2022-01-18 12:39:53 +03:00
The day length is:        7h 48m 15s

Sunrise is at:            2022-01-18 08:45:46 +03:00
Sunset is at:             2022-01-18 16:34:01 +03:00
...

so good so far,
TZ=EST cargo run -- --latitude 40.7128N --longitude 74.0060W  report # New York
LOCATION
--------
Latitude: 40.7128N
Longitude: 74.0060W

DATE
----
2022-01-18 12:00:00 -05:00

Solar noon is at:         2022-01-18 12:06:29 -05:00
The day length is:        9h 40m 11s

Sunrise is at:            2022-01-18 07:16:24 -05:00
Sunset is at:             2022-01-18 16:56:35 -05:00
...

ok
cargo run -- --latitude 40.7128N --longitude 74.0060W  -t -05:00 report # New York
LOCATION
--------
Latitude: 40.7128N
Longitude: 74.0060W

DATE
----
2022-01-18 12:00:00 +03:00

Solar noon is at:         2022-01-18 20:06:23 +03:00
The day length is:        9h 39m 38s

Sunrise is at:            2022-01-18 15:16:34 +03:00
Sunset is at:             2022-01-19 00:56:12 +03:00
...

doesn't work -t -05:00 option
TZ=PST cargo run -- --latitude 37.7749N --longitude 122.4194W  report # San Francisco
LOCATION
--------
Latitude: 37.7749N
Longitude: 122.4194W

DATE
----
2022-01-18 12:00:00 +00:00

Solar noon is at:         2022-01-18 20:20:05 +00:00
The day length is:        9h 54m 43s

Sunrise is at:            2022-01-18 15:22:43 +00:00
Sunset is at:             2022-01-19 01:17:26 +00:00
...

doesn't work even with TZ set to seemed correct PST time zone
could you please point me to where what i missed something? Thanks!

I can't explain the behaviour with some of the TZ values working, whilst others do not... I don't explicitly depend on TZ anywhere in the code... It's also giving some pretty incorrent calculations. I'll need to look into that later.
I have, however, identified the bug which means the -t flag is not being honoured: the program is only parsing the -t flag if -d is also set on the command line. See here: https://github.com/mfreeborn/heliocron/blob/5eb266f3632932a929b5b9f8babc0963c3b6c807/src/config.rs#L176-L182

I've now fixed this in #50, which will be part of a new release likely later today.
Specifically, code block #3 in your original post is now fixed.
As for code block #4, that's to do with valid values for the TZ environment variable. If you use tzselect and work your way through the options for west coast USA, it'll tell you the time zone America/Los_Angeles.
Replacing TZ=PST with TZ=America/Los_Angeles gives  you the behaviour you are expecting in code block #4.

Super! Thanks a lot 👍


Simple tag system

I just download the mails, so It's important re-tag all mails again with a general system for all your mails.

I saw a problem using the class, need to fix. Temporally commented.

It needs a global check to fix some errors.

More or less checked.


IOS issue

the plugin does not work at all in iOS, I diid all configs required  but when start the task uploader.progress.listen start listening for a few seconds then it stop or hangs on

@AshrafLP hi! Please share more details on your environment, flutter version, plugin versions and on the integration code.
Also, please note that the plugin is currently undergoing significant improvements which should also help with issues such as the one you reported.
For the moment, please test the master branch of this repository as well as the PR in #70  - which will eventually become mainline. Thank you.

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, 1.21.0-1.0.pre, on Mac OS X 10.15.6 19G73, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Android Studio (version 4.0)
[✓] Connected device (2 available)
• No issues found!

this is what happening when am trying to upload any file.
any advise??
flutter: progressing.......
flutter: progressing.......
flutter: progressing.......
flutter: progressing.......
flutter: progressing.......
flutter: progressing.......
flutter: exception: taskId: chillisource.flutter_uploader.upload.background.7, status:UploadTaskStatus(4), statusCode:500, code:upload_error, message:The operation couldn’t be completed. Protocol error}, tag:tag
flutter: stacktrace: 16  libsystem_pthread.dylib             0x00007fff522b2b77 start_wqthread + 15
15  libsystem_pthread.dylib             0x00007fff522b39f7 _pthread_wqthread + 220
14  libdispatch.dylib                   0x00007fff5209e46a _dispatch_worker_thread2 + 102
13  libdispatch.dylib                   0x00007fff5209dcc5 _dispatch_root_queue_drain + 350
12  libdispatch.dylib                   0x00007fff5209030f _dispatch_async_redirect_invoke + 739
11  libdispatch.dylib                   0x00007fff52090c36 _dispatch_continuation_pop + 440
10  libdispatch.dylib                   0x00007fff5208e8cb _dispatch_client_callout + 8
9   libdispatch.dylib                   0x00007fff5209b344 _dispatch_block_async_invoke2 + 83
8   Foundation                          0x00007fff25942540 __NSOQSchedule_f + 182
7   Foundation                          0x00007fff25942a20 NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION + 17
6   Foundation                          0x00007fff2593e3ee -[NSOperation start] +<…>
flutter: exception: taskId: chillisource.flutter_uploader.upload.background.6, status:UploadTaskStatus(4), statusCode:502, code:upload_error, message:<!doctype HTML>

pybius.nfshost.com: Bad Gateway

pybius.nfshost.com: Bad Gateway

pybius.nfshost.com: Bad Gateway

pybius.nfshost.com: Bad Gateway

<img alt="NearlyFreeSpeech.NET Logo" border="0" src="data:image/gif;base64,
R0lGODlhFgFQALMPAAEBAWOPWf///5+jm2NgYM/Xyubp5Dp/PUSBQTMyMbO9q/H08cfNwoGRe9nf
<…>
flutter: stacktrace: 16  libsystem_pthread.dylib             0x00007fff522b2b77 start_wqthread + 15
15  libsystem_pthread.dylib             0x00007fff522b39f7 _pthread_wqthread + 220
14  libdispatch.dylib                   0x00007fff5209e46a _dispatch_worker_thread2 + 102
13  libdispatch.dylib                   0x00007fff5209dcc5 _dispatch_root_queue_drain + 350
12  libdispatch.dylib                   0x00007fff5209030f _dispatch_async_redirect_invoke + 739
11  libdispatch.dylib                   0x00007fff52090c36 _dispatch_continuation_pop + 440
10  libdispatch.dylib                   0x00007fff5208e8cb _dispatch_client_callout + 8
9   libdispatch.dylib                   0x00007fff5209b344 _dispatch_block_async_invoke2 + 83
8   Foundation                          0x00007fff25942540 __NSOQSchedule_f + 182
7   Foundation                          0x00007fff25942a20 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 17
6   Foundation                          0x00007fff2593e3ee -[NSOperation start] +<…>

same issue here, it works on android but doesn't work on ios
flutter_uploader:     git:       url: git://github.com/BlueChilli/flutter_uploader.git       ref: master
`Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.17.0, on Mac OS X 10.15.6 19G73, locale zh-Hant-TW)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
[✓] Android Studio (version 4.0)
[✓] Connected device (1 available)
• No issues found!
`

Not sure if it will help your case, but I was about to get ios to work by

enabling 'background processing' in the signing capabilities section
adding this to the info.plist

<key>BGTaskSchedulerPermittedIdentifiers</key> 	<array> 		<string>com.your.app.identifier</string> 	</array>

@AshrafLP this looks like a server issue from the logs:
<style type="text/css"></style> <title>pybius.nfshost.com: Bad Gateway</title>
NearlyFreeSpeech.NET Logo <style type="text/css"></style> <title>pybius.nfshost.com: Bad Gateway</title>

NearlyFreeSpeech.NET Logo <style type="text/css"></style> <title>pybius.nfshost.com: Bad Gateway</title>

NearlyFreeSpeech.NET Logo <style type="text/css"></style> <title>pybius.nfshost.com: Bad Gateway</title>

Please open a new ticket if the issue is rooted in this plugin.


Thumbnails are not displayed when running on iPads (at iPhone resolution)

From @dzolnjan on April 22, 2016 15:58
Please take a moment to fill out the following (change to preview to check or place x in []):
This is a

[x] Bug
[ ] Feature Request

Which plugin does this impact:

[ ] Battery
[ ] Connectivity
[ ] Contacts
[ ] DeviceInfo
[ ] ExternalMaps
[ ] Geolocator
[x] Media
[ ] Permissions
[ ] Settings
[ ] Text To Speech
[ ] Vibrate
Other:

Version Number of Plugin:
Device Tested On: none
Simulator Tested On: iPad Air, iPad Retina, iPad Pro
Expected Behavior
When running on iPad (at iPhone resolution) then photo picker is not displaying album and photo thumbnails (only placeholders)
This functionality is required for apps that are targeting only iPhones.
2.10 - iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Actual Behavior
Album and Photo thumbnails are displayed.
Steps to reproduce the Behavior
Simply start debugging MediaTest.iOS project with any of iPads simulators listed above and tap on 'Pick P' option.
Copied from original issue: jamesmontemagno/Xamarin.Plugins#290

So this looks to be an Apple issue. https://forums.developer.apple.com/thread/43400
here is the radar: http://openradar.appspot.com/25813088
I never had an iPad until recently. If you build in universal mode then it works fine.


Open executable file with administrative rights

Like mentioned in #128 and #244, executable files can't be opened with administrative rights, but this should definitely be a feature. Thanks

@duke7553 I believe this is going to be fixed with 0.7, can you confirm?

@yaichenbaum Indeed! This behavior is corrected with v0.7. Please reopen if you can reproduce after the next release.

Still waiting for that v0.7 ^^

@KaKi87 v0.7 includes many changes and some of them are not ready, perhaps we should keep issues open until the changes are actually sent out.

You can download v0.7.0 here.


EBI ontology lookup service endpoints have migrated

Tests for the OLS endpoints have been marked as expected failures, until such time as support for the new endpoints is implemented.

Hi Bryan, there shouldn’t be any breaking changes in the OLS API on our end. Which URLs are failing?

The root endpoint looks like it is currently configured as:  http://www.ebi.ac.uk/ols/api
It might just be a temporary disruption in service.  I haven't had much opportunity to investigate yet.

Hmm seems like it only works with a trailing slash now:
http://www.ebi.ac.uk/ols/api/


fix: Add local hugo templates

Incorporate pending fixes to upstream template:

https://github.com/fybrik/crdoc/pull/239
https://github.com/fybrik/crdoc/pull/240

So I think something is missing in the template.
If i push deployment in the middle of the page

I will get http://localhost:1313/docs/api/grafanaspecdeployment which is a 404.
While if I push on the sidebar on Grafana.spec.deployment I will get
http://localhost:1313/docs/api/#grafanaspecdeployment
This is the same way it currently works.
Could you take a second look, it might be a fundamental error in the tool itself.
One option would of course be to change tool, but when I looked a few years ago, I couldn't find a better option.

@NissesSenap I cannot reproduce the problem you mentioned clicking on Deployment.  Can you make sure that you checkout the latest version of this branch and try again?  I pushed one more small fix to the template this morning.

Nether can I, either some strange cash or I checkout the wrong branch.
LGTM


Cant attach existing volumes after network and node issues: GRPC error: rpc error: code = Internal desc = Action [attach] not available on

Issue reared its head after nodes were down for some time and there were some transient Network connectivity issues, routing problems etc.
It has happened before but I just created new volumes, this time I would like to see if it's possible to reattach them.
Environment:

Longhorn version:  1.1.0
Kubernetes version:  1.2.x
Node config

OS type and version:  K3S Latest/Test 1.2.5
CPU per node: 4vcpu
Memory per node: 12G
Disk type: ext4
Network bandwidth and latency between the nodes:  300-500Mbit

Underlying Infrastructure (Virtual Machines / Proxmox):

Additional context
Had network problems and now can't seem to attach existing longhorn volumes to two pods.  I can only create new ones and attach.
I looked in the filesystem location and I can see that all the folders seem to be there and intact but I don't know what I'm looking at and haven no idea what is stopping the attaching.  I'm guessing it could be some kind of cluster race condition or split brain that it cant recover from, although It does allow creating new volumes and attaching them.
I am also unable to get to the longhorn UI to aid t-shooting but thats a different issue
Any ideas where I can start to troubleshoot or run any force recovery commands?
Many thanks,
Jon.
Various errors:
AttachVolume.Attach failed for volume "pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700" : rpc error: code = Internal desc = Action [attach] not available on [&{pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700 volume map[self:http://longhorn-backend:9500/v1/volumes/pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700] map[salvage:http://longhorn-backend:9500/v1/volumes/pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700?action=salvage]}]

csi attacher logs
I0325 09:49:58.929165       1 connection.go:183] GRPC request: {"node_id":"kube2.wizznet.co.uk","volume_capability":{"AccessType":{"Mount":{"fs_type":"ext4"}},"access_mode":{"mode":1}},"volume_context":{"baseImage":"","fromBackup":"","numberOfReplicas":"2","staleReplicaTimeout":"30","storage.kubernetes.io/csiProvisionerIdentity":"1616427639514-8081-driver.longhorn.io"},"volume_id":"pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700"}
I0325 09:49:58.958803       1 connection.go:185] GRPC response: {}
I0325 09:49:58.959350       1 connection.go:186] GRPC error: rpc error: code = Internal desc = Action [attach] not available on [&{pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700 volume map[self:http://longhorn-backend:9500/v1/volumes/pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700] map[salvage:http://longhorn-backend:9500/v1/volumes/pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700?action=salvage]}]
I0325 09:49:58.959394       1 csi_handler.go:559] Saving attach error to "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b"
I0325 09:49:59.039710       1 controller.go:158] Ignoring VolumeAttachment "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b" change
I0325 09:49:59.088097       1 csi_handler.go:570] Saved attach error to "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b"
I0325 09:49:59.088135       1 csi_handler.go:219] Error processing "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b": failed to attach: rpc error: code = Internal desc = Action [attach] not available on [&{pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700 volume map[self:http://longhorn-backend:9500/v1/volumes/pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700] map[salvage:http://longhorn-backend:9500/v1/volumes/pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700?action=salvage]}]
I0325 09:50:01.831360       1 leaderelection.go:283] successfully renewed lease longhorn-system/external-attacher-leader-driver-longhorn-io
I0325 09:50:07.088365       1 controller.go:198] Started VA processing "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b"
I0325 09:50:07.088396       1 csi_handler.go:209] CSIHandler: processing VA "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b"
I0325 09:50:07.088406       1 csi_handler.go:236] Attaching "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b"
I0325 09:50:07.088413       1 csi_handler.go:396] Starting attach operation for "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b"
I0325 09:50:07.088471       1 csi_handler.go:329] PV finalizer is already set on "pvc-9e6f1da9-f714-430f-a5a4-38e3fa95c700"
I0325 09:50:07.088490       1 csi_handler.go:689] Found NodeID kube2.wizznet.co.uk in CSINode kube2.wizznet.co.uk
I0325 09:50:07.088509       1 csi_handler.go:289] VA finalizer is already set on "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b"
I0325 09:50:07.088525       1 csi_handler.go:303] NodeID annotation is already set on "csi-a9b52b3f1de4b146e0078ebfa471b2f26ffaedf4439d25614e3db8985a1a947b"
I0325 09:50:07.088540       1 connection.go:182] GRPC call: /csi.v1.Controller/ControllerPublishVolume
I0325 09:50:07.088544       1 connection.go:183] GRPC request: {"node_id":"kube2.wizznet.co.uk","volume_capability":{"AccessType":{"Mount":{"fs_type":"ext4"}},"access_mode":{"mode":1}},"volume_context":{"

I0325 09:50:43.645135       1 leaderelection.go:247] failed to acquire lease longhorn-system/external-attacher-leader-driver-longhorn-io
I0325 09:50:57.112125       1 leaderelection.go:352] lock is held by csi-attacher-5dcdcd5984-kg2mk and has not yet expired
I0325 09:50:57.112154       1 leaderelection.go:247] failed to acquire lease longhorn-system/external-attacher-leader-driver-longhorn-io
I0325 09:51:07.901273       1 leaderelection.go:352] lock is held by csi-attacher-5dcdcd5984-kg2mk and has not yet expired
I0325 09:51:07.901306       1 leaderelection.go:247] failed to acquire lease longhorn-system/external-attacher-leader-driver-longhorn-io
I0325 09:51:17.425405       1 leaderelection.go:352] lock is held by csi-attacher-5dcdcd5984-kg2mk and has not yet expired
I0325 09:51:17.425431       1 leaderelection.go:247] failed to acquire lease longhorn-system/external-attacher-leader-driver-longhorn-io
I0325 09:51:22.675469       1 leaderelection.go:352] lock is held by csi-attacher-5dcdcd5984-kg2mk and has not yet expired
I0325 09:51:22.675486       1 leaderelection.go:247] failed to acquire lease longhorn-system/external-attacher-leader-driver-longhorn-io
I0325 09:51:33.588010       1 leaderelection.go:352] lock is held by csi-attacher-5dcdcd5984-kg2mk and has not yet expired
I0325 09:51:33.588035       1 leaderelection.go:247] failed to acquire lease longhorn-system/external-attacher-leader-driver-longhorn-io
I0325 09:51:42.190493       1 leaderelection.go:352] lock is held by csi-attacher-5dcdcd5984-kg2mk and has not yet expired
I0325 09:51:42.190518       1 leaderelection.go:247] failed to acquire lease longhorn-system/external-attacher-leader-driver-longhorn-io

# Default values for longhorn.
# This is a YAML-formatted file.
 This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #  cpu: 100m
  #  memory: 128Mi
  # requests:
  #  cpu: 100m
  #  memory: 128Mi
  #

ingress:
  ## Set to true to enable ingress record generation
  enabled: false

  host: xip.io

  ## Set this to true in order to enable TLS on the ingress record
  ## A side effect of this will be that the backend service will be connected at port 443
  tls: false

  ## If TLS is set to true, you must declare what secret will store the key/certificate for TLS
  tlsSecret: longhorn.local-tls

  ## Ingress annotations done as key:value pairs
  ## If you're using kube-lego, you will want to add:
  ## kubernetes.io/tls-acme: true
  ##
  ## For a full list of possible ingress annotations, please see
  ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/annotations.md
  ##
  ## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set
  annotations:
  #  kubernetes.io/ingress.class: nginx
  #  kubernetes.io/tls-acme: true

  secrets:
  ## If you're providing your own certificates, please use this to add the certificates as secrets
  ## key and certificate should start with -----BEGIN CERTIFICATE----- or
  ## -----BEGIN RSA PRIVATE KEY-----
  ##
  ## name should line up with a tlsSecret set further up
  ## If you're using kube-lego, this is unneeded, as it will create the secret for you if it is not set
  ##
  ## It is also possible to create and manage the certificates outside of this helm chart
  ## Please see README.md for more information
  # - name: longhorn.local-tls
  #   key:
  #   certificate:

# Configure a pod security policy in the Longhorn namespace to allow privileged pods
enablePSP: true

## Specify override namespace, specifically this is useful for using longhorn as sub-chart
## and its release namespace is not the `longhorn-system`
namespaceOverride: ""

A quick look makes me think that your volume might require salvage, are you running a single replica on the node that went down?
If it requires salvage normally auto salvage should take care of it, when it's enabled. But we are working on some fixing in that area.
If salvage is indeed required you can initiate it via the longhorn ui.

Hi,
As far as I'm aware I set replicas to 2 when installing longhorn from rancher UI (Apps).
its a 3 node k3s cluster for quorum but the 3rd node is a raspberry pi running noExecute so is only there to stop split-brain from happening.
I'm struggling to actually access the UI, every time I try and create a LoadBalancer entry for it with metal LB I have to set a port of say 30000 which I think maps internally to port 80.  I then see the address is advertised by metalLB <IP_ADDRESS> and I hit port 30000 but there is nothing?  Is there any easy way to expose the UI?

I use the L7 ingress via rancher for my dev environment.
You might be able to set this up then look at the underlying rules.

Thanks! I'll try that now.

Strange I still get a blank page.  I'm sure I've had this working in the past
I pointed longhorn.wizznet.co.uk at one of my kube host ip addresses

longhorn-frontend                          ClusterIP   <IP_ADDRESS>     <none>        80/TCP      30m

This is not working because 10.43 isn't routable and there is no nat mapping to that internal port. Also when I try L4 using metalLB, nothing happens I don't get a new IP advertised for some reason. :-(

even trying a port forward isn't working
kube2:/# kubectl port-forward longhorn-ui-9748dc57d-wmqsg 8000:80 -n longhorn-system --address <IP_ADDRESS>
Forwarding from <IP_ADDRESS>:8000 -> 80
Handling connection for 8000
E0325 13:05:36.831412 1039484 portforward.go:400] an error occurred forwarding 8000 -> 80: error forwarding port 80 to pod d6f1ac9eb81db525f47ac780723349855176a40c6c5ae6a201faf25a3be1a762, uid : failed to execute portforward in network namespace "/var/run/netns/cni-4be57df0-83fe-77d8-b3f8-551b77a96099": failed to dial 80: dial tcp4 <IP_ADDRESS>:80: connect: connection refused

Is there any way that I can run these salvage commands from the cli ?

Cant seem to get to the longhorn frontend service, even traefik is saying its down by the looks of it

ok got it working following this: https://forums.rancher.com/t/longhorn-ui-with-traefik/16742/2

Looking better now after salvage!

All working again now thanks :)
I'm pretty sure auto salvage is already turned on yet they didn't salvage themselves?
Cheers,
Jon.

@bodleytunes I am currently working on some fixes for the auto salvage, since the issue was solved I am closing for now. If you encounter another salvage issue once v1.1.1 is release please reopen.

@joshimoo : Is there an open bug I can watch for the auto salvage stuff?
Cheers,
Jon.


Upgraded project to nextra latest

Did you get test it @Tineshnehete ?
Giving it a try, if it has resolved the issue.
Can you Have a look at the CLoudFlare logs if 404 has completely gone?


Ashe: B.O.B. Prefers Attacking who Ashe’s Attacking

Created by: DpsDoomMain
• Currently B.O.B. now prefers to shoot at enemy targets that Ashe damages with her rifle
• Previously B.O.B. chose enemy targets by himself with no influence
(You could do this by spawning in another Ashe from the exact same Vectors and having them use their Ultimate instead, that way the player Ashe has zero effect on his target. I don’t know what you’ll do about damage and kill/assist credit).

moved from ow1_emulator_backup#500


Move AskInInteractiveAction to a better location

Already a TODO, just wanted to file to not forget:
https://github.com/microsoft/vscode/blob/b21e8804ee1b1fb7c6e966b4354caefd8e4d84c5/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.ts#L302-L303

this was done


loading when uploading

why i see loading when choosing an image and then crop and right after i check it its load for 1 seconds even if my internet is so fast? is there a timeout on the plugin? thank you so much for this great plugin also!

Hi @glennmichaelmejias,
I guess this happens because of some delays during the firebase storage upload.
I don't see this as issue of this plugin.
Anyhow, if you find out that it is really an issue with this plugin, feel free to create a PR.
Best,
Christoph


[RFC] Periodically run CI pipeline

... to be able to catch dependent package updates sooner.
Sometimes the CI pipeline breaks due to dependent package updates. #592 #667
This is especially a problem for new contributors.
By running GH Actions build workflow periodically(such as daily/weekly), we can catch those breakages sooner.
The downside is notifications will be annoying.
What do you think? @ksaur @interesaaat

Absolutely, good idea.  This is something we talked about in the past, but I think we should actually do it now. :-D
We find that lots of new releases happen on Fridays, and I usually have some time Friday afternoons (PST) to fix things, so maybe we could setup a Friday mid-day run.  I think we just need to add this? Any objections Matteo?

No objection, this is a really good idea. Even better if we could add some sort of condition, like run on Friday afternoon if we have no previous run this week (or something along this line).

I can work on implementing this on Friday, or if someone else wants to start, that is fine as well! :)

I think we just need to add this?

Maybe we can add a schedule trigger event.
https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule

We can retrieve the start time of the last workflow by the command below.
$ curl https://api.github.com/repos/microsoft/hummingbird/actions/workflows/pythonapp.yml/runs 2>/dev/null | jq -r '.workflow_runs[0].run_started_at'
2023-02-06T18:40:27Z

Or maybe we can use this.
https://github.com/actions/github-script


241119 Testing Procedure as Template

Testing:

run testing for unit-testing, integration-testing, scenario-testing

Framework examples:
mocha
jest
ava

https://raygun.com/blog/javascript-unit-testing-frameworks/

Further discussion HERE later.
FYI.
@edge-config , @aaronNGJ5


Move performance-analyzer-rca to its final location

Description
The performance-analyzer-rca is installed with the performance-analyzer-plugin, and installed inside its folder. However, a dedicated folder for the performance-analyzer-rca is created, and kept empty upon final package creation.
We need to update the RPM assembly script to move fill this folder with the proper content.

Fixed in #76


[WFCORE-4094] Upgrade parent pom to 29

https://issues.jboss.org/browse/WFCORE-4094

Core - Full Integration Build 7936 outcome was FAILURE using a merge of 5bd9fd5771ba399f35888016dada252d75e3e651
Summary: Exit code 1 (Step: Build & test full (Maven)) (new) Build time: 00:03:07


apache configuration error

In the apache configuration there is a line which says "AddType aplication/wasm .wasm" which is misspelled and should be "AddType application/wasm .wasm"

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

ID: 89b4d6a1-1436-7ba8-a5c5-8dcb6a955bb0
Version Independent ID: 4a6a13b4-fe5c-a9fb-5d7d-33d5aa0fbac3
Content: Host and deploy ASP.NET Core Blazor WebAssembly
Content Source: aspnetcore/host-and-deploy/blazor/webassembly.md
Product: aspnet-core
Technology: aspnetcore-hostdeploy
GitHub Login: @guardrex
Microsoft Alias: riande

Thanks @olabacker! I'll patch that up right now.


Multi-line string breaks highlighting in python code

Interactive example:
https://codepen.io/mailtodevnull/pen/RBXxJz
Code that is highlighted by highlight.js:
import fnmatch
import os

images = ['*.jpg', '*.jpeg', '*.png', '*.tif', '*.tiff']
matches = []

for root, dirnames, filenames in os.walk("C:\"):
    for extensions in images:
        for filename in fnmatch.filter(filenames, extensions):
            matches.append(os.path.join(root, filename))

As you can see below, everything after "C:" is treated as one string with line breaks:

Nevermind, the code is just wrong.


[Tool] Add kwok tool for K8s load testing

KWOK - KWOK (Kubernetes WithOut Kubelet) is a tool for creating large "virtual clusters" where Pods are never really created and run, but are simulated instead.
https://github.com/kubernetes-sigs/kwok/#kwok-kubernetes-without-kubelet
It's useful for testing operators and controllers with large amounts of nodes or Custom Resources.
Expected Behaviour

Add as a new download option using:
https://github.com/kubernetes-sigs/kwok/releases

kwokctl is also required which is in the same repo, this is the client for interacting with kwok.


No toolsversion message when one is not mentioned in the project

A log message is generated when the toolsversion specified in the project differs from the one msbuild chooses. Now that toolsversion is not required anymore, suppress this message when there is no explicit toolsversion reference in the project file.

Mention closes #1558 in the commit please.


[Removal]:

Hotspot Name
Upbeat Cyan Cat
Hotspot b58 Address
11jeRTZRZpCZhbzhDf75nU7oEV6Xt98KyNFfZdhfgS8p5K2wmkK
Discord Handle
alanWoz#7541
Hotspot Manufacturer
panther
Removal Reason
I thought the network was blocked by GFW, so I used a VPN. It has now been corrected
Modifications
Yes
Extra forwarders
No
Extra antennas
No
Additional Information
I thought the network was blocked by GFW, so I used a VPN. It has now been corrected

We have taken into account this removal request in the next iteration of the denylist. It may take some time before it's processed. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


Add quality code platform

If you want some help to setup Codacy or any other platform that manages code quality and coverage, feel free to ask !

Hi @serut just to folloup on your issue I tried many times to get travis to run but it wont fix chromedriver and selenium webdriver :-/
On local everything runs fine and I think it is not related to the coverage. I will refer here to the already opened #10
However, until the Travis issue resolves I will leave this open.


Does not compile well with grails 3.3.0

Spring Boot plugin's support for Gradle 2.3 is deprecated. Please upgrade to Gradle 2.9 or later.

FAILURE: Build failed with an exception.

* Where:
Build file '/home/chka/NetBeansProjects/grails3-animals/build.gradle' line: 19

* What went wrong:
A problem occurred evaluating root project 'grails3-animals'.
> org.codehaus.groovy.runtime.DefaultGroovyMethods.leftShift(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1 mins 4.133 secs
Received result DaemonCommandResult[type=CommandFailure, value=org.gradle.launcher.exec.ReportedException: org.gradle.internal.exceptions.LocationAwareException: Build file '/home/chka/NetBeansProjects/grails3-animals/build.gradle' line: 19
A problem occurred evaluating root project 'grails3-animals'.] from daemon DaemonInfo{pid=6078, address=[f2a5d37c-1f4b-4854-83bd-7341cb14840c port:35295, addresses:[/0:0:0:0:0:0:0:1%lo, /<IP_ADDRESS>]], idle=false, context=DefaultDaemonContext[uid=a91377b2-8786-4d98-bdb2-eac546969d57,javaHome=/usr/lib/jvm/java-8-openjdk-amd64,daemonRegistryDir=/home/chka/.gradle/daemon,pid=6078,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=IE,-Duser.language=en,-Duser.variant]}.

Gradle daemon stopped.

| Error Error initializing classpath: org.codehaus.groovy.runtime.DefaultGroovyMethods.leftShift(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List; (Use --stacktrace to see the full trace)

Actually the same error happens with 3.2.11. Maybe it's something with my setup but I can't run your demo:
$ grails -version
| Grails Version: 3.2.11
| Groovy Version: 2.4.11
| JVM Version: 1.8.0_131

Hi,
witch gradle Version do you use?
"Spring Boot plugin's support for Gradle 2.3 is deprecated. Please upgrade
to Gradle 2.9 or later."
Bye
Gero
2017-09-05 10:53 GMT+02:00 Christopher Karatzinis<EMAIL_ADDRESS>:

Actually the same error happens with 3.2.11. Maybe it's something with my
setup but I can't run your demo:
$ grails -version
| Grails Version: 3.2.11
| Groovy Version: 2.4.11
| JVM Version: 1.8.0_131
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/gklinkmann/grails3-animals/issues/1#issuecomment-327113690,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABldhqJye0X2pwietH2NHqsejxdPOlVzks5sfQwKgaJpZM4PMPJd
.


Breakpoint moves with copy line up/down action

Version:

VSCode Version: 1.35.0
OS Version: Windows 10.0.17134.799

Steps to Reproduce:

Create a new code file (of any supported language).
Write a few lines of code.
Place a break-point on a line.
Copy the line using Copy Line Up or Copy Line Down actions.

Bug:
The break-point moves with the copied line. It should stay.
Does this issue occur when all extensions are disabled? Yes

This is as designed... The copy line down action is implemented by inserting the line text above it, so that's why the breakpoint moves. We will not reimplement the action just to accommodate this case, and it is IMHO not clearly wrong...

@alexandrudima This really doesn't seem to be as designed but rather a clear oversight, and for multiple reasons:

It's a copy action -- not a move action -- and the normal copy+paste action doesn't move any breakpoints around. Even cutting a line doesn't move the breakpoint.
The are more bugs produces by this behavior; for instance, after completing the reproduction steps  described in this issue, if one deletes said line the breakpoint will move to the next (non duplicated) line instead of the original one, and if one then tries to undo these steps, the breakpoint will remain on the next line which has nothing to do with the original one.
Both IntelliJ and Eclipse -- two of the most popular IDEs out there -- do not exhibit this behavior.
Copying a line via the Copy Line Up/Down action is intended to create a new line which is similar to the original one. It's a means of creating new content which looks like old content. It is not meant to alter the original content, which goes for its state as well.
This behavior actually goes further than just breakpoints. For instance, the bookmark of a line marked with the bookmarks extension will behave similar to how a breakpoint does, which makes no sense. Duplicating a line definitely shouldn't move the bookmark around, as it belongs to the original line which is not about to be modifies (unlike the newly duplicated line).

I wouldn't say that keeping the breakpoint, bookmark, or any other decoration/data in the original line is correct either, because the command is Copy Line Up/Down, so users could expect that it should copy the breakpoint/bookmark/etc to the next/previous line, duplicating it.
I'm not sure if copying/cutting the entire line shouldn't bring its breakpoint/bookmarks (sometimes I hoped it should). But to this, the API should be updated to describe the original
Line/Range.
IMHO, I prefer the way it works today, even with this naming conflict. The Bookmarks extension, at least, should remain this way.

Yes, the Bookmarks extension has its own storage, and a custom sticky algorithm to update the Bookmark position (line) when the user changes the file.
Technically speaking, I guess (not in front of my computer) it works this way because the Copy Line Down command, in fact, doesn't add a copy of the current line, in the next line (down). Instead, it adds the copy above the current line, moving the current line, one line below. Doing so, the Bookmark follows the original line, going one line below, just like it does when you hit Return at the beginning of the current line.


Ajv 7

Unfortunately upgrading isn't a straight no-brainer because Ajv 7 adds compatibility with draft-2019-09 but drops support for draft-04. Need to do a bit of research: Which are there more of on schemastore? Schemas using draft-2019-09 or draft-04 ?

Schemastore does have external links, but in https://github.com/SchemaStore/schemastore/tree/master/src/schemas/json
there are 2 schemas that use draft-2019-09 and ~200 that use draft-04 so sticking on Ajv6 is clearly the way forward for now

There's probably an inflection point somewhere down the line where this stops being a no-brainer.
One possible option here might be to make ajv a peer dependency and support both. Then the user can make the choice, but that complicates everything (including setup for users).

There's probably an inflection point somewhere down the line where this stops being a no-brainer.
One possible option here might be to make ajv a peer dependency and support both. Then the user can make the choice, but that complicates everything (including setup for users).

Another possibility would be to switch out ajv for another library that supports both draft-2019-09 and draft-04. e.g: https://github.com/hyperjump-io/json-schema-validator or https://github.com/ExodusMovement/schemasafe
Ajv is a  much more widely used library, but one advantage of https://github.com/ExodusMovement/schemasafe is that this is the library used in the schemastore repo for their tests. Given this project is heavily tied to schemastore, that might be a better choice to ensure more compatibility between the most commonly used schemas and the validation library. That would probably help reduced the issues noted in #18 too.

Another possibility would be to switch out ajv for another library that supports both draft-2019-09 and draft-04. e.g: https://github.com/hyperjump-io/json-schema-validator or https://github.com/ExodusMovement/schemasafe
Ajv is a  much more widely used library, but one advantage of https://github.com/ExodusMovement/schemasafe is that this is the library used in the schemastore repo for their tests. Given this project is heavily tied to schemastore, that might be a better choice to ensure more compatibility between the most commonly used schemas and the validation library. That would probably help reduced the issues noted in #18 too.

Hmm. It looks like ajv might be back in the game.
https://ajv.js.org/json-schema.html#json-schema-versions

draft-04

You can use JSON Schema draft-04 schemas with Ajv from v8.5.0 and the additional package ajv-draft-04 (both ajv and ajv-draft-04 should be installed).

const Ajv = require("ajv-draft-04")
const ajv = new Ajv()

Did a spike on this. Ajv >=8.5 is looking promising so far..

0.7.0 released using ajv 8


Filter buttons move

Per Filter Change Call on 3/23/2015
Move the “Filter apply” and “Clear Filter” buttons below the last filter option (Ensure, that this is scroll-able. AKA supportable on tablets if many filters exist)

Android\iPad\Ct Chrome
Both LG SG
Scrolling works well on Tablets


Prevent itemscontrol items to be reloaded too many times

GitHub Issue (If applicable): Fixes #382
PR Type
What kind of change does this PR introduce?
Bugfix
What is the current behavior?
When using an ItemsControl, item templates are created multiple times.
What is the new behavior?
Item container is reused if possible, which limit reload.
PR Checklist

[X] Tested code with current supported SDKs
[ ] Docs have been added/updated which fit documentation template. (for bug fixes / features)
[ ] Tests for the changes have been added (for bug fixes / features) (if applicable)
[X] Contains NO breaking changes
[X] Updated the Release Notes
[X] Associated with an issue (GitHub or internal)

Other information
None
Internal Issue (If applicable):
https://nventive.visualstudio.com/Umbrella/_workitems/edit/139686

PR closed as it will require more investigation


Un-checking "verifiable" on taxon page map removes all observations from map

eg https://www.inaturalist.org/taxa/82096-Magnolia

Is this a bug? The checkbox defines a layer on the map, in this case a layer of all verifiable observations. If you uncheck it, you remove that layer... so no verifiable observations will appear.

Gotcha. Here's a possible solution: https://forum.inaturalist.org/t/change-taxon-page-map-verifiable-unverifiable-functionality/571

That seems like a proposed solution to a different problem (showing captive stuff on taxon maps), so I'm going to close this, b/c it's working as intended


Alternate file in split

I can open the alternate file by typing ':vsp#'
Is it possible to do this in vwm?

Currently no. However, that sounds like a good idea and I may implement in the future.


Add Fireball to TPRedirection

Yes since getting damaged makes speed check kinda dumb, adding fireball to TPRedirection will be cool.

First comment

🧠 ❌


Action Fails if plugin doesn't exist on .org repository

Describe the bug
Action fails if you don't have a WordPress.org svn repository for your plugin.
ℹ SLUG is my-super-cool-plugin
➤ Checking out .org repository...
svn: E170000: URL 'https://plugins.svn.wordpress.org/my-super-cool-plugin' doesn't exist
Error: Process completed with exit code 1.

Steps to Reproduce
Deploy the action for a plugin with a slug that isn't on the WordPress.org directory.
Expected behavior
Don't checkout .org repository.
Additional context
None.

I totally misunderstood this plugin. Anyways, I think it's useful for those that want to publish plugins as pre-releases on github for people to download and test versus pushing to the WordPress.org SVN.
I've made some minor changes on my fork to enable this, it might not be perfect but I think it would help.
https://github.com/jordantrizz/action-wordpress-plugin-build-zip


Remove the FIREFOX build flag, since it's completely unused and simplify a couple of PDFJSDev checks

Remove the FIREFOX build flag, since it's completely unused
After PR 9566, which removed all of the old Firefox extension code, the FIREFOX build flag is no longer used for anything.
It thus seems to me that it should be removed, for a couple of reasons:

It's simply dead code now, which only serves to add confusion when looking at the PDFJSDev calls.
It used to be that MOZCENTRAL and FIREFOX was almost always used together. However, ever since PR 9566 there's obviously been no effort put into keeping the FIREFOX build flags up to date.
In the event that a new, Webextension based, Firefox addon is created in the future you'd still need to audit all MOZCENTRAL (and possibly CHROME) build flags to see what'd make sense for the addon.

Simplify, and tweak, a couple of PDFJSDev checks
This removes a couple of, thanks to preceeding code, unnecessary typeof PDFJSDev checks, and also fixes a couple of incorrectly implemented (my fault) checks intended for TESTING builds.

/botio-linux test

/botio-windows test


Getting ANSI output from arbitrary commands

Hi!
I haven't wrapped my head around how assigning a TTY works, but I have a goal of running arbitrary commands in a way that makes the commands think a TTY is assigned and output ANSI color codes in their output (in a way that allows me to collect that output and store/display it).
It seems like this package would allow that, but all the examples I've found have had more complicated use cases. I wondering if I'm correct in that this package can help me there?
Thanks!

Looks like this will do it:
package main

import (
	"bufio"
	"fmt"
	"github.com/creack/pty"
	"io"
	"log"
	"os"
	"os/exec"
)

func main() {
	// Run a command that would output ansi when isatty
	cmd := exec.Command("phpunit")
	cmd.Env = os.Environ()
	tty, err := pty.Start(cmd)
	if err != nil {
		panic(err)
	}

	defer tty.Close()

	go func() {
		buf := bufio.NewReader(tty)

		for {
			line, _, err := buf.ReadLine()

			if err == io.EOF {
				break
			}

			if err != nil {
				log.Fatalf("Error on buf.ReadLine: %v", err)
			}

			fmt.Println(string(line))
		}
	}()

	cmd.Wait()
}

Yeah, your code looks pretty reasonable. Thanks for posting that follow-up! Closing this issue now since it seems like you've answered your own question, so there's nothing left to do here.