Numpy Argmax Rewrite

fixes https://github.com/apache/incubator-mxnet/issues/11061.
fixes https://github.com/apache/incubator-mxnet/issues/19362
This PR includes a rewrite of the mxnet.np.argmax operator to reuse our axes reduce kernels on both cpu and gpu. Before it was using a mshadow expression implementation. This should work on all the data types. Note that this rewrite can be applied to np.argmin as well, but I am keeping the old implementation for argmin for now so that we can compare the run time. So the basic idea is to create a new struct IndexedNum to store both the number and index of the values in the tensor and use a custom reducer mshadow_op::argmax to update both num and idx.
template <typename IType, typename DType>
struct IndexedNum {
  IType idx;
  DType num;

  IndexedNum& operator+=(const IndexedNum& rhs){
    return *this;
  }
};

/*! \brief arg max reducer */
struct argmax {
  /*! \brief do reduction into dst */
  template<typename AType, typename DType>
  MSHADOW_XINLINE static void Reduce(volatile AType& dst,  volatile DType src) { // NOLINT(*)
    if (dst.num < src.num) {
      dst.num = src.num;
      dst.idx = src.idx;
    }
  }
  }
  /*! \brief combine the results of two reducers */
  template<typename DType>
  MSHADOW_XINLINE static void Merge(volatile DType& dst_val, volatile DType& src_val) { // NOLINT(*)
    Reduce(dst_val, src_val);
  }
  /*!
   *\brief set the initial value during reduction
   */
  template<typename DType>
  MSHADOW_XINLINE static void SetInitValue(DType &initv) { // NOLINT(*)
    initv.num = mshadow::red::limits::NegInfValue<decltype(initv.num)>();
    initv.idx = 0;
  }
};

This brings about a considerable speed improvement on GPU when the dimension of the axis to be reduced is large. Specifically, when dim=30000 the improvement is ~60x; dim=300000 improvement is ~130x; dim=3000000 improvement is ~180x. When the reduced axis has a small dim (e.g 64), the run time is slightly longer (~1.8x) due to the added memory overhead. However this is probably fine as in such cases the magnitude of the run time is very small.
On CPU we are sort of seeing the opposite as on GPU: the run time will get significantly improved when the reduced dim (M) is small and the number of the reduced axes (N) is large. This is probably due to the fact that we are adding cpu parallelism on N but not M. I think we should probably parallelize M instead? There should be room to optimize the cpu kernel and this by itself can be another pr of impact as many ops use this reduce kernel (e.g. sum). (ref: https://github.com/apache/incubator-mxnet/blob/master/src/operator/tensor/broadcast_reduce-inl.h#L270 and https://github.com/apache/incubator-mxnet/blob/master/src/operator/tensor/broadcast_reduce-inl.h#L315)
I used this script to time the runs:
import time
import mxnet as mx
import numpy as np
import os
def test(shape, xpu, axis, dtype, op):
    tmp = mx.np.random.normal(-1, 1, shape, dtype=dtype,ctx=xpu)#.as_nd_ndarray()
    tic = time.time()
    for i in range(20):
       if (i == 5):
            begin = time.time();
       elif (i == 15):
            end = time.time();
       tic = time.time()
       out = op(tmp, axis=axis)
       mx.nd.waitall()
       toc = time.time() - tic
       #print ("used time %f:"%toc)
    avg = (end - begin) / 10
    print(shape, xpu, "axis:"+str(axis), dtype, op)
    print("avg time %f"%avg)

shapes = [(64, 300000)]
axes = [1, 0]
xpus = [mx.gpu(), mx.cpu()]
ops = [mx.np.argmin, mx.np.argmax]
dtypes = ['float32', 'float64', 'float16', 'int32', 'int64', 'int8']

import itertools
for s, x, a, d, o in list(itertools.product(*[shapes, xpus, axes, dtypes, ops])):
    test(s, x, a, d, o)
#test((64, 300000), mx.gpu(), axis=1, dtype='float32', op=mx.np.argmax)

results:
ubuntu@ip-172-31-38-169:~/incubator-mxnet/build$ python ../sxj.py
a[22:45:40] ../src/storage/storage.cc:199: Using Pooled (Naive) StorageManager for GPU
(64, 300000) gpu(0) axis:1 float32 <function argmin at 0x7f098421e320>
avg time 0.367691
(64, 300000) gpu(0) axis:1 float32 <function argmax at 0x7f098421e290>
avg time 0.002094
(64, 300000) gpu(0) axis:1 float64 <function argmin at 0x7f098421e320>
avg time 0.373724
(64, 300000) gpu(0) axis:1 float64 <function argmax at 0x7f098421e290>
avg time 0.006975
(64, 300000) gpu(0) axis:1 float16 <function argmin at 0x7f098421e320>
avg time 0.347810
(64, 300000) gpu(0) axis:1 float16 <function argmax at 0x7f098421e290>
avg time 0.001983
(64, 300000) gpu(0) axis:1 int32 <function argmin at 0x7f098421e320>
avg time 0.324442
(64, 300000) gpu(0) axis:1 int32 <function argmax at 0x7f098421e290>
avg time 0.001897
(64, 300000) gpu(0) axis:1 int64 <function argmin at 0x7f098421e320>
avg time 0.354146
(64, 300000) gpu(0) axis:1 int64 <function argmax at 0x7f098421e290>
avg time 0.005937
(64, 300000) gpu(0) axis:1 int8 <function argmin at 0x7f098421e320>
avg time 0.326005
(64, 300000) gpu(0) axis:1 int8 <function argmax at 0x7f098421e290>
avg time 0.002361
(64, 300000) gpu(0) axis:0 float32 <function argmin at 0x7f098421e320>
avg time 0.001255
(64, 300000) gpu(0) axis:0 float32 <function argmax at 0x7f098421e290>
avg time 0.002032
(64, 300000) gpu(0) axis:0 float64 <function argmin at 0x7f098421e320>
avg time 0.001961
(64, 300000) gpu(0) axis:0 float64 <function argmax at 0x7f098421e290>
avg time 0.007079
(64, 300000) gpu(0) axis:0 float16 <function argmin at 0x7f098421e320>
avg time 0.001491
(64, 300000) gpu(0) axis:0 float16 <function argmax at 0x7f098421e290>
avg time 0.001987
(64, 300000) gpu(0) axis:0 int32 <function argmin at 0x7f098421e320>
avg time 0.001174
(64, 300000) gpu(0) axis:0 int32 <function argmax at 0x7f098421e290>
avg time 0.001968
(64, 300000) gpu(0) axis:0 int64 <function argmin at 0x7f098421e320>
avg time 0.001406
(64, 300000) gpu(0) axis:0 int64 <function argmax at 0x7f098421e290>
avg time 0.005828
(64, 300000) gpu(0) axis:0 int8 <function argmin at 0x7f098421e320>
avg time 0.001173
(64, 300000) gpu(0) axis:0 int8 <function argmax at 0x7f098421e290>
avg time 0.002448
[22:46:23] ../src/storage/storage.cc:199: Using Pooled (Naive) StorageManager for CPU
(64, 300000) cpu(0) axis:1 float32 <function argmin at 0x7f098421e320>
avg time 0.036137
(64, 300000) cpu(0) axis:1 float32 <function argmax at 0x7f098421e290>
avg time 0.076985
(64, 300000) cpu(0) axis:1 float64 <function argmin at 0x7f098421e320>
avg time 0.036389
(64, 300000) cpu(0) axis:1 float64 <function argmax at 0x7f098421e290>
avg time 0.075778
(64, 300000) cpu(0) axis:1 float16 <function argmin at 0x7f098421e320>
avg time 0.072825
(64, 300000) cpu(0) axis:1 float16 <function argmax at 0x7f098421e290>
avg time 0.117842
(64, 300000) cpu(0) axis:1 int32 <function argmin at 0x7f098421e320>
avg time 0.032637
(64, 300000) cpu(0) axis:1 int32 <function argmax at 0x7f098421e290>
avg time 0.075707
(64, 300000) cpu(0) axis:1 int64 <function argmin at 0x7f098421e320>
avg time 0.033149
(64, 300000) cpu(0) axis:1 int64 <function argmax at 0x7f098421e290>
avg time 0.075667
(64, 300000) cpu(0) axis:1 int8 <function argmin at 0x7f098421e320>
avg time 0.032188
(64, 300000) cpu(0) axis:1 int8 <function argmax at 0x7f098421e290>
avg time 0.074256
(64, 300000) cpu(0) axis:0 float32 <function argmin at 0x7f098421e320>
avg time 0.712089
(64, 300000) cpu(0) axis:0 float32 <function argmax at 0x7f098421e290>
avg time 0.082273
(64, 300000) cpu(0) axis:0 float64 <function argmin at 0x7f098421e320>
avg time 0.802298
(64, 300000) cpu(0) axis:0 float64 <function argmax at 0x7f098421e290>
avg time 0.087749
(64, 300000) cpu(0) axis:0 float16 <function argmin at 0x7f098421e320>
avg time 1.252073
(64, 300000) cpu(0) axis:0 float16 <function argmax at 0x7f098421e290>
avg time 0.118619
(64, 300000) cpu(0) axis:0 int32 <function argmin at 0x7f098421e320>
avg time 0.627230
(64, 300000) cpu(0) axis:0 int32 <function argmax at 0x7f098421e290>
avg time 0.078799
(64, 300000) cpu(0) axis:0 int64 <function argmin at 0x7f098421e320>
avg time 0.722380
(64, 300000) cpu(0) axis:0 int64 <function argmax at 0x7f098421e290>
avg time 0.085350
(64, 300000) cpu(0) axis:0 int8 <function argmin at 0x7f098421e320>
avg time 0.547371
(64, 300000) cpu(0) axis:0 int8 <function argmax at 0x7f098421e290>
avg time 0.071751

@sandeep-krishnamurthy @sxjscience @szha

Great.
Apart from the individual argmax kernel, can you talk about performance (+ve or -ve) on end to end customer use case?
Where is argmax used commonly?
Also, this will help make judgement call if 1.8x increase which 80% regression on existing behavior on GPU with small dim (<64).

Great.
Apart from the individual argmax kernel, can you talk about performance (+ve or -ve) on end to end customer use case?
Where is argmax used commonly?
Also, this will help make judgement call if 1.8x increase which 80% regression on existing behavior on GPU with small dim (<64).

@sxjscience Would you suggest a model to test this operator on?

I think it's a very basic op. For example, it's used in calculating the accuracy. Also, if we find that the new kernel is worse for some specific workloads, we can always fall back to the old kernel for these workloads.
In addition, try to also use nvprof to profile the performance. Directly measuring the performance via python timing is not accurate and will also count the overhead. We can also compare with the performance of PyTorch.

In addition, I think the previous code may dispatch the reduce op to multiple kernels based on the shape and we may just extend the logic on top of this.

In addition, I think the previous code may dispatch the reduce op to multiple kernels based on the shape and we may just extend the logic on top of this.

By previous code do you mean the previous implementation of argmax? Could you elaborate more on this

I mean the kernel for sum.

I mean the kernel for sum.

Do you mean the GPU reduce kernel https://github.com/apache/incubator-mxnet/blob/master/src/operator/tensor/broadcast_reduce-inl.cuh#L273 ? Yeah my implementation is calling into this function. There maybe we can add a new branch/kernel for when the dim to be reduced is small

Update:
I just found that even if the dim of the axis to be reduced is small, as long as it's the last dim, my implementation is still much faster than the old implementation.
test((300000, 64), mx.gpu(), axis=1, dtype='float32', op=mx.np.argmin)
test((300000, 64), mx.gpu(), axis=1, dtype='float32', op=mx.np.argmax)

gives this result:
[02:02:22] ../src/storage/storage.cc:199: Using Pooled (Naive) StorageManager for GPU
(300000, 64) gpu(0) axis:1 float32 <function argmin at 0x7fabb9521320>
avg time 0.014822
(300000, 64) gpu(0) axis:1 float32 <function argmax at 0x7fabb9521290>
avg time 0.002667

I think reducing the last dim is the most common use case?

@Zha0q1 Usually reducing over the last dim is called "Contiguous Reduction" and reducing over another axis is called "NonContiguous Reduction". Both cases are important and I think our reduction op has been optimized for both scenarios.

@mxnet-bot run ci [unix-cpu]

@mxnet-bot run ci [windows-gpu]

@mxnet-bot run ci [unix-cpu]

A brief recap of contiguous and non-contiguous reduction results on GPU:
Contiguous:

(300000, 64) float axis=1
before: 14.0549
now: 3.1830

(64, 300000) float axis=1
before: 376.1702
now: 2.9527

Non-contiguous:

(300000, 64) float axis=0
before: 14.0549
now: 3.1830

(64, 300000) float axis=0
before: 268.1024
now: 3.5889

The results are straight out from our mx.profiler

CPU results:
Contiguous:

(300000, 64) float axis=1
before: 38.3453
now: 66.3917

(64, 300000) float axis=1
before: 35.6059
now: 62.8450

Non-contiguous:

(300000, 64) float axis=0
before: 994.6203
now: 147.3643

(64, 300000) float axis=0
before: 711.3664
now: 73.1802

@mxnet-bot run ci [unix-cpu]

I cleaned up the code and did more benchmarks. Would you review @sxjscience @leezu @szha

The performance numbers look good and we may try to later accelerate the CPU version.

Just added a large (in general sense) tensor test. This test will trigger the old argmin/max implementation to fail on float16 (I created issue https://github.com/apache/incubator-mxnet/issues/19362). However now with my new implementation this issue has been resovled

@mxnet-bot run ci [clang, miscellaneous, unix-gpu]

@mxnet-bot run ci [clang]

@mxnet-bot run ci [unix-cpu]

@mxnet-bot run ci [unix-cpu]

@ptrendx Thanks for reviewing! I have updated the pr accordingly. I have run the benchmark again and it was basically the same as my previous commits so no regression from those changes

If this pr gets merged I will next apply the same implementation for argmin

@mxnet-bot  run ci [edge]

Great contribution @Zha0q1 . Thank you @ptrendx and @sxjscience @access2rohit for your help and review.


Trying to fix #134

Not sure if this will work

@rmshaffer AFAIK the purpose of those GitHub IDs in the metadata is for when a user fills an issue through the docs platform to tag the GitHub ID automatically to warn the person that might know how to help. For pragmatism, we tend to put the people that wrote the article or that know better about the topic discussed so they can help with the issue.
I don't know what is the standard for automated docs tho. I've been looking to the rest of the API docs and since the documentation is generated directly from the .yml documents it works differently (I think it tags the author that made the last commit that modified the file or something like that, but sometimes it doesn't tag anyone).
Anyways, I don't have any strong preference, we can leave it with microsoftopensource. It will lose the purpose of it since nobody will get the notification but it will avoid future annoyances to you in case more people use this script to create documents that you don't know about.
Maybe @cgranade knows what is the standard in these cases.

Got it, so there is a functional reason for it. In that case, sure, feel free to leave my ID there!

@geduardo to test this, I made a draft PR here containing the auto-generated docs with your fix:
https://github.com/MicrosoftDocs/quantum-docs-pr/pull/963
Looks the validation succeeded without warnings, and the generated .md looks correct, so I think (if you agree) this is good to go! Thanks again for doing this!
(Note: I won't merge that PR; instead, these docs will be updated with the next release of the API docs which should happen sometime around July 20.)


Bulk broken link updates

This PR contains fixes to broken links - User story 168849crosoftDocs/biztalk-docs

@ecfan This pull request is ready for review. Couple notes for this. There does not seem to be a Microsoft hosted download link for the WCF LOB adapter SDK, but there is a bunch of documentation related to it, so I wonder if I've just missed it somewhere in my search. Also the SAP client links in software-prerequisites-for-biztalk-adapter-pack-2016.md might be hosted behind the SAP download center, but I don't have an account to verify.


Crashes permanently

Crashes with:
panic: interface conversion: interface {} is uint32, not int64

goroutine 35 [running]:
main.(*Relay).Init.func1()
        /app/cmd/rsslay/main.go:144 +0xac7
created by main.(*Relay).Init
        /app/cmd/rsslay/main.go:113 +0x1cd
2023/02/04 21:40:21 Running VERSION 0.3.1:
 - DSN=
 - `DB_DIR=/db/rsslay.sqlite

Could be a Pleroma account. Are we able to delete accounts?

I think the issue its located in the following block of main.go:
last, ok := r.lastEmitted.Load(entity.URL)
if !ok || time.Unix(last.(int64), 0).Before(evt.CreatedAt) {
	_ = evt.Sign(entity.PrivateKey)
	r.updates <- evt
	r.lastEmitted.Store(entity.URL, last)
	events = append(events, replayer.EventWithPrivateKey{Event: evt, PrivateKey: entity.PrivateKey})
}

As you can see, we are storing the last variable in the original format, so when we load it and convert it to int64 it may crash due to this error.
I will change the implementation to the following:
last, ok := r.lastEmitted.Load(entity.URL)
if !ok || time.Unix(last.(int64), 0).Before(evt.CreatedAt) {
	_ = evt.Sign(entity.PrivateKey)
	r.updates <- evt
	r.lastEmitted.Store(entity.URL, last.(int64))
	events = append(events, replayer.EventWithPrivateKey{Event: evt, PrivateKey: entity.PrivateKey})
}

Storing and loading always with int64 should resolve the problem... Nevertheless, can you share the feed causing the problem?
And also try with latest version to see if there is any problem...

We currently only delete accounts that are detected as invalid when processing the feed.

I manually deleted the suspicious feed from the sqlite, but the crashes still ocurred.
I'm trying 0.3.3 now, but it crashed again:
`
2023/02/05 19:27:01 checking for updates; 16 filters active
panic: interface conversion: interface {} is uint32, not int64
goroutine 5 [running]:
main.(*Relay).Init.func1()
/app/cmd/rsslay/main.go:145 +0xb34
created by main.(*Relay).Init
/app/cmd/rsslay/main.go:113 +0x1cd
`

Thanks for the info @mdebus , I'm reviewing this with priority. I will update with any progress

Hey @mdebus , just released a new version with a fix related with this error... Hope this solves this problem.
I think the crash came because of storing in some cases times as uint32 and in other cases in int64. I'm now saving all in uint32 and converting safely to int64 when neccessary.
Please let me know if it still crashes for you 🙏

Thanks for looking, @piraces !
Seems the uint32 problem is gone, but it stll crashes. :(
Here you go:
panic: interface conversion: interface {} is nil, not uint32

goroutine 23 [running]:
main.(*Relay).Init.func1()
        /app/cmd/rsslay/main.go:148 +0xa46
created by main.(*Relay).Init
        /app/cmd/rsslay/main.go:113 +0x1cd

Well it's something! Maybe with a simple null check we are ok...
Will continue debugging the problem 🤙

Hey @mdebus ! Sorry to bother you with this tricky bug... But I think now may be solved...
Can you try to reproduce with the latest version v0.3.5?
Thanks! 🤙

Heyhey, no problem! Thanks for trying to fix this! :)
Crashed again, sorry:
2023/02/08 07:12:07 Running VERSION 0.3.5:
 - DSN=
 - DB_DIR=/db/rsslay.sqlite

2023/02/08 07:12:07 dsn required is not present... defaulting to DB_DIR
2023/02/08 07:12:07 database opened at /db/rsslay.sqlite
2023/02/08 07:12:07 rsslay: listening on [::]:8080
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5fc6bc]

goroutine 225 [running]:
net/url.validEncoded({0x0, 0xc000032808}, 0xc0003e3258?)
        /usr/local/go/src/net/url/url.go:720 +0x3c
net/url.(*URL).EscapedPath(0xc0008d8d00)
        /usr/local/go/src/net/url/url.go:698 +0x3b
net/url.(*URL).ResolveReference(0xc0008d8d00, 0xc000990d80)
        /usr/local/go/src/net/url/url.go:1110 +0x265
github.com/mmcdole/gofeed/internal/shared.(*XMLBase).push(0xc000398080, {0x0?, 0x18?})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/internal/shared/xmlbase.go:148 +0x5d
 github.com/mmcdole/gofeed/internal/shared.(*XMLBase).NextTag(0xc0006e1d40?, 0xc00057e7e0)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/internal/shared/xmlbase.go:109 +0x1a8
github.com/mmcdole/gofeed/rss.(*Parser).parseItem(0xc000014288, 0xc00057e7e0)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/rss/parser.go:330 +0x125
github.com/mmcdole/gofeed/rss.(*Parser).parseChannel(0xc000014288, 0xc00057e7e0)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/rss/parser.go:254 +0xd4c
github.com/mmcdole/gofeed/rss.(*Parser).parseRoot(0xc000014288, 0xc00057e7e0)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/rss/parser.go:67 +0x311
github.com/mmcdole/gofeed/rss.(*Parser).Parse(0xc000014288, {0xc301c0?, 0xc0004235d8?})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/rss/parser.go:28 +0xa5
github.com/mmcdole/gofeed.(*Parser).parseRSSFeed(0xc0002918f0, {0xc301c0?, 0xc0004235d8?})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/parser.go:159 +0x33
github.com/mmcdole/gofeed.(*Parser).Parse(0xc000186a20?, {0x7fe80c30f8c0?, 0xc0004d2390})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/parser.go:86 +0x1c5
github.com/mmcdole/gofeed.(*Parser).ParseURLWithContext(0xc0002918f0, {0xc00029a120?, 0x22?}, {0xc340e8?, 0xc000032040?})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/parser.go:141 +0x3de
github.com/mmcdole/gofeed.(*Parser).ParseURL(...)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/parser.go:97
github.com/piraces/rsslay/pkg/feed.ParseFeed({0xc00029a120, 0x22})
        /app/pkg/feed/feed.go:84 +0x85
main.store.QueryEvents({0xc000181500?}, 0xc00015c4e0)
        /app/cmd/rsslay/main.go:224 +0x330
github.com/fiatjaf/relayer.(*Server).handleWebsocket.func1.3({0xc00031c000, 0x13fa, 0x1500})
        /go/pkg/mod/github.com/fiatjaf/relayer@v1.7.0/handlers.go:229 +0x12bc
created by github.com/fiatjaf/relayer.(*Server).handleWebsocket.func1
        /go/pkg/mod/github.com/fiatjaf/relayer@v1.7.0/handlers.go:109 +0x46a
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5fc6bc]

goroutine 117 [running]:
net/url.validEncoded({0x0, 0xc000032808}, 0xc0006b5258?)
        /usr/local/go/src/net/url/url.go:720 +0x3c
net/url.(*URL).EscapedPath(0xc0008d8d00)
        /usr/local/go/src/net/url/url.go:698 +0x3b
net/url.(*URL).ResolveReference(0xc0008d8d00, 0xc000928240)
        /usr/local/go/src/net/url/url.go:1110 +0x265
github.com/mmcdole/gofeed/internal/shared.(*XMLBase).push(0xc000398080, {0x0?, 0x7fe833a67f18?})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/internal/shared/xmlbase.go:148 +0x5d
github.com/mmcdole/gofeed/internal/shared.(*XMLBase).NextTag(0xc00057e120?, 0xc00057e120)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/internal/shared/xmlbase.go:109 +0x1a8
github.com/mmcdole/gofeed/rss.(*Parser).parseItem(0xc000014288, 0xc00057e120)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/rss/parser.go:330 +0x125
github.com/mmcdole/gofeed/rss.(*Parser).parseChannel(0xc000014288, 0xc00057e120)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/rss/parser.go:254 +0xd4c
github.com/mmcdole/gofeed/rss.(*Parser).parseRoot(0xc000014288, 0xc00057e120)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/rss/parser.go:67 +0x311
github.com/mmcdole/gofeed/rss.(*Parser).Parse(0xc000014288, {0xc301c0?, 0xc000592000?})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/rss/parser.go:28 +0xa5
github.com/mmcdole/gofeed.(*Parser).parseRSSFeed(0xc0002918f0, {0xc301c0?, 0xc000592000?})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/parser.go:159 +0x33
github.com/mmcdole/gofeed.(*Parser).Parse(0xc000186a20?, {0x7fe80c30f8c0?, 0xc0006f8fc0})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/parser.go:86 +0x1c5
github.com/mmcdole/gofeed.(*Parser).ParseURLWithContext(0xc0002918f0, {0xc0003c4a20?, 0x22?}, {0xc340e8?, 0xc000032040?})
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/parser.go:141 +0x3de
github.com/mmcdole/gofeed.(*Parser).ParseURL(...)
        /go/pkg/mod/github.com/mmcdole/gofeed@v1.2.0/parser.go:97
github.com/piraces/rsslay/pkg/feed.ParseFeed({0xc0003c4a20, 0x22})
        /app/pkg/feed/feed.go:84 +0x85
main.store.QueryEvents({0xc000280000?}, 0xc00015c1a0)
        /app/cmd/rsslay/main.go:224 +0x330
github.com/fiatjaf/relayer.(*Server).handleWebsocket.func1.3({0xc00031ea00, 0x13fa, 0x1500})
        /go/pkg/mod/github.com/fiatjaf/relayer@v1.7.0/handlers.go:229 +0x12bc
created by github.com/fiatjaf/relayer.(*Server).handleWebsocket.func1
        /go/pkg/mod/github.com/fiatjaf/relayer@v1.7.0/handlers.go:109 +0x46a

Ohh... I think I should try to reproduce the bug via tests and then fix it... I have been doing hotfixes before and I don't think is the correct way. I will try to do as soon as possible 🤙

Hey @mdebus , it's there any chance you could pass me the links you have in your database? I'm finding it hard to reproduce this bug... Nevertheless, I'm working in increasing the test coverage and others. There is a new version v0.4.0 if you want to try it out also...

Have a look here: https://rsslay.data.haus
It didn't crash in the last 24 hours. Maybe the last version fixed it.
BTW: 0.4.0 docker shows 0.3.6 as version.

Awesome! Let's keep this issue open then to keep track of the issue and I will try to keep focusing on stability 🤙

Closing this due to inactivity... I cannot reproduce the problem but if keeps happening please feel free to reopen this issue or comment in it @mdebus 🤙


Move wait-longer logic to VideoDevice

Currently, the VideoStreamDecoder waits longer before decoding a frame. It does make sense for a camera or display stream as they have to be decoded live in synchronization with the framerate. However, it makes less sense for an eventual video stream. Were we planning to support such a thing in the future, making this move is necessary.

Has been tested and the CPU usage is not affected, so the logic remains correct


Example of how to use library

Hey @iamtheburd,
this is exactly what I was searching for all day, cheers!
Do you mind adding an example snippet of how to use the library to the README? I'm kind of struggeling to get it running (I must admit that I'm fairly new to C++ though)

Sure thing! I'll add a section to the README as soon as possible. In the meanwhile, take a look at my other repo, combigen, and you can see some of the ways I used the library (:

I updated the README to show some of the examples, this provides a more straight-forward view than digging through the source code of the combigen program.


Update PyTorch version in environment.yml

Description

PyTorch 1.3 doesn't work yet. So set PyTorch version to 1.2.0 in environment.yml
Related Issues

https://github.com/microsoft/computervision-recipes/issues/465
Checklist:

[x] I have followed the contribution guidelines and code style for this project.
[x] I have added tests covering my contributions.
[x] I have updated the documentation accordingly.
[x] This PR is being made to staging and not master

@konabuta Thanks a lot for submitting this PR! We just recently update the environment.yml file in staging. Have a look at this PR - I guess your PR is then not needed anymore?
https://github.com/microsoft/computervision-recipes/pull/460/files

@PatrickBue I missed it. Yes, no need anymore. Thanks.

@konabuta No worries, you didn't "miss" anything, impossible to know of every accepted PR. Please close this PR if it is obsolete now. Thanks again and Happy Holidays!


[TASK] Allow Bayesian Optimization to use Pre-trained GP ROM

Issue Description
Is your feature request related to a problem? Please describe.
For experimental design, utilize existing dataset from experiment to guide the future exploration and exploitation will benefit optimal experimental design.
Describe the solution you'd like
Allow pre-trained GP ROM to be used in the Bayesian Optimization
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[x] 1. Is it tagged with a type: defect or task?
[x] 2. Is it tagged with a priority: critical, normal or minor?
[x] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[x] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[x] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[x] 1. If the issue is a defect, is the defect fixed?
[x] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[x] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[x] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
[x] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?

Approved to close via #2280


Problem with UA limitation in fingerprint generation.

Describe the bug
Hello everyone!
I'm having problems with the UA limitation in fingerprint generation.
On some occasions it returns an incorrect UA from another browser, more specifically these:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> YaBrowser/<IP_ADDRESS>0 Yowser/2.5 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.114 YaBrowser/<IP_ADDRESS>5 Yowser/2.5 Safari/537.36
I do this about 10,000 times a day and the number of errors is around 50.
The site that I scrape is delicate and does not allow me to falsify the browser model with which I have errors and complications.
To Reproduce
const fpGen = new FingerprintGenerator({
    devices: ['desktop'],
    browsers: [{name: 'chrome', minVersion: 100}],
});

Expected behavior
What I'm trying to do is limit the generation to chrome, minimum version 100 and no other one.
System information:

OS: Linux Debian 11 bullseye
Node.js version 16.20.0

Hello and thank you for submitting this issue! Indeed, some lesser-known browsers were getting registered as Chrome, which resulted in returning these inconsistent user-agent strings on Chrome query.
The linked PR should solve this in the code - but I'll still have to regenerate the model, which might take longer (eta today-tomorrow).
However again, thanks for submitting this!


Use redux for selected HAs in intersection logic

Description:
This PR updates the intersection logic to load the list of selected health authorities from redux instead of fetching the full list of available HAs on every intersection check cycle.

How to test:

Select one of available HAs from the list
Home screen should perform the intersection check on the data from the newly selected HA

You might need to mock the store for the unit tests


Error when starting game

I also need to know the callable method so I can call it in my playfablogin script. But anyways I get this error when starting up the game:
DllNotFoundException: ovrplatform assembly:<unknown assembly> type:<unknown type> member:(null) Oculus.Platform.StandalonePlatform.AsyncInitialize (System.UInt64 appID, System.String accessToken) (at ./Library/PackageCache/com.meta.xr.sdk.platform@60.0.0/Scripts/StandalonePlatform.cs:42) Oculus.Platform.StandalonePlatform.InitializeInEditor () (at ./Library/PackageCache/com.meta.xr.sdk.platform@60.0.0/Scripts/StandalonePlatform.cs:37) Oculus.Platform.Core.AsyncInitialize (System.String appId) (at ./Library/PackageCache/com.meta.xr.sdk.platform@60.0.0/Scripts/Platform.cs:69) EasyPlayfab.Login.LoginHandle.Login () (at Assets/EasyPlayfab/LoginHandle.cs:54
What does it mean and how do I fix it?
I have the new Meta All-in-One SDK installed.

this error happens to me and i have no idea how to fix it, its not related to easyplayfab. it should work on a build, just not in the editor.
the method name (which you couldve found yourself by going in the script) is LoginHandle.Login() assuming youve made it a callable method


Extend Colly so pages with traditional error codes can be scraped

Most of the time Colly's logic in colly.go line 798 will be correct (if err == nil && response.StatusCode < 203). However, when trying to scrape sites which are either misconfigured or pages which are correctly giving error codes where the contents are interesting, Colly exits early.
I hit this on a real world site which is (I'm guessing) misconfigured. Google Chrome still renders the page contents even though the server is returning a 500 with the content. It would be useful if Colly could be used in these situations.
Example page in question:  https://aquicore.com/dictionary-posts/greenhouse-gas-emissions/
And on a separate topic, thanks for the useful tool!

@raylee I've added a ParseHTTPErrorResponse bool argument to Collector. You can parse HTTP 500 responses by setting c.ParseHTTPErrorResponse = true.


Recent files list below the app buttons like the Office app?

There would be a way to dismiss that file list, but it could be helpful. It would be recent files as mentioned in #196. Maybe there could be two lists, one local and one MS Graph-powered.
Those two lists could be either in tabs or just one below the other one, but tabs would be better so people can make the lists as long as they want (within reason) and not have them impact each other. When one tab is off, the tab should be hidden if possible, but if that's too hard, hiding all the controls and leaving a "this feature is off" message could work. The top-right of the Graph tab would have a refresh button in case it doesn't refresh often enough (which should be configurable).
The Graph list should be updated when a file is opened from the Graph list, and the local list should push the most-recently-used from that list back to the top.
The main window should be resizable to make this easier to use.

Partially copied from #196:
Eventually I want this to allow for getting a list of recent documents tied to a Microsoft account by using Microsoft Graph. This would be optional, and this list would be in a separate menu so the user can have both on, one on and one off, or both off.
...
The Microsoft Graph one would have the option to have it on or off, an option to sign in to get the list (and a sign out option as well), maybe a way to say how many files to get if the API allows (otherwise it'll just be 10 or something, but I assume it would allow saying how many to get), and a way to clear the list (again, if the API allows it). Probably would have to have a privacy policy since the user is signing in to a third-party application. Preferably this would allow multiple accounts at once, but at the moment I'm not sure how that would work for this as I don't think even the official Office app allows that.
Refreshing the local/offline recently used list could be done after successfully opening a file as described above, but the Microsoft Graph one would have to refresh on a different schedule. Maybe on startup and every time that menu is opened? There would have to be an async thing to make sure it didn't lock up during the refresh.
Storing login stuff would be done with a hash of some kind stored somewhere safe. Would need to look into that more.


multiple generation lines

Is there a way to use multiple lines in prompts.txt or have different prompt.txt files and have that randomly chosen with | as well? Sometimes I would like to see "A (happy | sad)(dog | cat)" other times I would like to see a "(winter | summer) (cabin | landscape)".

Hi commo,
This should be working out of the box. The prompts generator should always
pick a random line. See the readme for more information on formatting.
On Tue, 19 Mar 2024 at 07:20, commo11 @.***> wrote:

Is there a way to use multiple lines in prompts.txt or have different
prompt.txt files and have that randomly chosen with | as well? Sometimes I
would like to see "A (happy | sad)(dog | cat)" other times I would like to
see a "(winter | summer) (cabin | landscape)".
—
Reply to this email directly, view it on GitHub
https://github.com/jezs00/pycasso/issues/66, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUTEK7BUBD6LLPWDWEKQ4S3YY5D73AVCNFSM6AAAAABE4JBU3OVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE4TGMRRGYZTMNA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I think I have it figured out, it all had to do with spaces and or lack of them, before a typical line would look like this "A (|angry|happy|sad) (|dog|cat|bird) (|eating|swimming|playing)". Sometimes this would work and I would get an image of A happy cat swimming with the correct text on the image, other times I would just get a random image back that had nothing to do with the words and a save name of just A .pycasso.png going to my NAS with absolutely no text on the display. Now I added spaces between the words and the | more like "A (| angry| happy| sad) (| dog| cat| bird) (| eating| swimming| playing)" and it seems to be working every time.
Another question came up though, is it possible to save the file with the current date in it so they don't get over written if it does pick the same prompts?

Another question came up though, is it possible to save the file with the current date in it so they don't get over written if it does pick the same prompts?

Should be relatively painless. I will add a new config item and put the functionality in.

Confirmed working on pi. Update minimally, migrate config, make sure save_date is set to True. This will add a date string to the start of your file names. On by default on new version


Improve text viewer performance & plugin interface

fix issue #59

[x] Use a minimal, but fast text viewer.

[ ] Switch the text viewer depending on the source file's mime type.

[x] Plugin windows always have the application window as parent.
[x] Use native "delete-on-close".
[ ] Resolve parent of warning messages.

@VioletGiraffe This is :construction: WIP (work in progress), but compilable to check things out. Can you please check, if ...

... the plugin window appears centered to the main window?
... the 14M test file displays fast on Windows?

Further the methods need to become more atomic. That means, the following code needs to be split up:
CPluginWindow * CTextViewerPlugin::viewCurrentFile() {
    CTextViewerWindow* w = new CTextViewerWindow;

    /* This method should actually ONLY return the created widget instance.
       The following code causes a lot of headaches, as it aggressively tries to hide the widget and shows messages through complex code paths - and this is one reason, why every message/dialog is misplaced on screen (e.g. main window position suddenly becomes P(0,0) instead of the actual position) etc. */

    if (!load(/*fileName*/)) {
        delete w; w = nullptr;
    }

    return w;
}

Ideas?

Nice!

the plugin window appears centered to the main window on WIndows - check
the 14M test file displays fast on Windows - check
closing the window does NOT cause a 14 seconds freeze of the application - check! I wonder what was with that.

I'm a little lost as to how to merge and accept this pull request. Let me read the manuals.


Had to mount a /tmp folder when mounting /data

Docker container started normally when not mounting any volumes. When mounting /data I got the following error:
/opt/bedrock-entry.sh: line 38: /tmp/restify.out: Permission denied
So I mounted /tmp and the docker container started again.
My server is a synology NAS 918+ with DSM 6.2.3-25426 Update 2 running docker 18.09.0-0513

The runs as the user that owns /data, so I'm guessing it created that temp file as root, left it behind, and then when running as non-root with new /data mount it couldn't overwrite.
I'll fix the code to remove that temp file so that a change in user is handled correctly.

The latest image on Docker Hub now includes this fix.

I just verified, the fix works. Thanks!!


Add shop=laundry to POIs

My neighborhood dry cleaner is on the map, but the laundromat  is missing. Should probably come in at zoom 17 by default.
http://wiki.openstreetmap.org/wiki/Tag:shop=laundry

With #322:
Before

After

Verified.


Update releases doc for 1.1 release

Fix some wording and status of 1.1 release.
Note we have some unreleased stuff on the 1.1 branch. We can do a 1.1.8 release when needed with more than just a security fixes. Also I think we should keep that branch open for in flight fixes and allow a last update from CRI if needed. However after 1.1.8, we should deny any non-security patch.
Note: do not merge until tomorrow.

Codecov Report

Merging #3445 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3445   +/-   ##
=======================================
  Coverage   44.11%   44.11%
=======================================
  Files         124      124
  Lines       13760    13760
=======================================
  Hits         6070     6070
  Misses       6759     6759
  Partials      931      931

Flag
Coverage Δ

#linux
47.87% <ø> (ø)
:arrow_up:

#windows
39.76% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


question: policy/schedule for tagging a git release

Related to #37 , apologies if this is documented somewhere and I missed it.
I'm looking forward to getting the changes from #45 into a tagged git release so that I can use a dep constraint other than branch = master, which is not great for consumers of my package.
Do you have a policy for when to tag a new release, based on time or the number/size of changes since the last tagged release?
It has been just over 6 months from 0.1 so I'm wondering if you'd consider a 0.2.
Thanks for this package!

The cmp project isn't one that I foresee undergoing continual development. There are few features to add here and there, but I don't think a release cycle every N months makes sense. A release every N commits makes more sense, but isn't the best policy either. Ideally, we tag it based upon when major features or bug fixes are done. Also, I would like to see dependency management become an official feature of Go before we formalize our own release "schedule".
For the time being we'll hold to an informal policy of tagging a new release based upon a user request (as you are doing) or when we believe sufficient features has accumulated to justify a new tag. I'll tag a new release tomorrow when I'm back in the office.

Done.
https://github.com/google/go-cmp/releases/tag/v0.2.0

Awesome, thank you!


Stack navigation no longer working after migrating to new observation tools (v1.4.0 -> v1.13.0)

Description
I migrated an application from TCA 1.4 to 1.13.0. I followed each of the migration guides and have gotten the project building and fixed most of the warnings I want to deal with right now. I was also able to set the min iOS version to iOS 17, so I don't need to use the backport of the observation tools. The root navigation of the app is a stack, like so:
@Reducer
public struct AppReducer {
    @ObservableState
    public struct State {
        @Presents public var alert: AlertState<Action.Alert>?
        public var path = StackState<Path.State>()
        public var splash = Splash.State()
        // Details elided
    }

    public enum Action {
        case alert(PresentationAction<Alert>)
        case path(StackActionOf<Path>)
        case splash(Splash.Action)
        case initializeSDKSuccess(shouldResetStack: Bool)

        // Details elided

        public enum Alert: Equatable {}
    }

    @Reducer(state: .equatable, action: .equatable)
    public enum Path {
        case about(About)
        case home(Home)
        case welcome(Welcome)
        // Details elided
    }

    public var body: ReducerOf<Self> {
        Scope(state: \.splash, action: \.splash) {
            Splash()
        }

        Reduce { state, action in
            case let .initializeSDKSuccess(shouldResetStack: shouldResetStack):
                if shouldResetStack {
                    state.path = StackState([.home(.init())])
                }
                return .none
            // Details elided
        }
        .ifLet(\.$alert, action: \.alert)
        .forEach(\.path, action: \.path)

        // Other delegate reducers, etc
    }
}

The view setup is:
public struct AppView: View {
    @Bindable var store: StoreOf<AppReducer>

    public var body: some View {
        NavigationStack(
            path: $store.scope(
                state: \.path,
                action: \.path
            )
        ) {
            SplashView(
                store: store.scope(
                    state: \.splash,
                    action: \.splash
                )
            )
        } destination: { store in
            switch store.case {
                case let .about(store):
                    AboutView(store: store)
                        .toolbarColorScheme(.dark, for: .navigationBar)
                case let .home(store):
                    HomeView(store: store)
                        .navigationTitle("")
                        .toolbar(.hidden, for: .navigationBar)
                case let .welcome(store):
                    WelcomeView(store: store)
                        .navigationTitle("")
                        .toolbar(.hidden, for: .navigationBar)
                // Other views
            }
        }
        .tint(.white)
        .alert(
            $store.scope(
                state: \.alert,
                action: \.alert
            )
        )
    }
}

The problem is that the app never continues past the splash screen. I've set a breakpoint in the reducer handler for initializeSDKSuccess and it runs, and the stackState gets set, but the navigation never happens. I'm not sure if I missed something in the migration guide or the documentation, but I've read both multiple times and have made sure I set it up properly. Hoping I'm just missing something silly.
Checklist

[ ] I have determined whether this bug is also reproducible in a vanilla SwiftUI project.
[ ] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue or discussion.

Expected behavior
When setting the path to a new stack state, I expect the UI to push a new view onto the stack
Actual behavior
No view is pushed to the stack and the app just hangs on the root view of the stack.
Steps to reproduce

Pull the code from here
Run the app in Xcode
See described result

The Composable Architecture version information
1.13.0
Destination operating system
iOS 17 and iOS 18
Xcode version information
15.4
Swift Compiler version information
Apple Swift version 5.10 (swiftlang-<IP_ADDRESS> clang-15<IP_ADDRESS>)
Target: arm64-apple-darwin23.6.0

Of course immediately after opening this issue, I realize this seems like it is a threading issue, not an issue with my TCA setup, so I am closing until I confirm. If someone sees an obvious issue, please let me know 😅

Threading issue was a red herring. I'm pretty sure it's something with the new observation tools, but I'm not sure what.

CPU is running over 100%, main thread completely choked out.

Hi @tw0po1nt, it’s hard to say with the information provided. It could be any number of things. Can you try reproducing the problem in a small project that you can share?

Getting a repro in a simpler app might be tough. I am honing in on a specific view, so I may have a more precise area of the code to share here shortly. Thanks for the quick response!

@mbrandonw Just as a follow up, I seem to have pinpointed the issue. It had to do with the fact that we were using an older approach to shared state pre @Shared property wrapper. Like this:
var wallet: Wallet.State {
        get {
            var state = walletState
            // Copy over shared fields...
            return state
        }

        set {
            self.walletState = newValue
            // Copy over shared fields...
            self.walletEvents = newValue.walletEvents
        }
    }

This apparently was not playing nicely with the observation framework, and was resulting in a loop that locked up the main thread.


Removed bad formatting and fixed a spelling error.

Fixed spelling error.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/rendering-in-directx.md
:white_check_mark:Succeeded
View

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


Heap Manager: Two Way Marshaling Of WASM Types

Create a heap manager to handle the two way marshaling of types. The following cases must be supported for all WASM High Level Types (HLTs):

WASM <-> Host
Host <-> WASM
Host <-> WASM <-> Host

This is something that NEAR has developed a nice solution using @nearBindgen, maybe we can replicate what they're doing.
We could setup a pipeline for:

Defining types in GraphQL
Create type definitions for all base types (including structured types) in GraphQL, describing what those types look like in the various language runtimes (client & WASM).
Create a memory manager that can marshal data to/from memory spaces given a type definition. It would use the getter from the source, and the setter from the destination.
Replicating those types in all supported WASM & client languages.

At the end of the day, we'll have a generic process for:

defining types in GraphQL
seralizing & deseralizing them on-the-fly

This has been implemented in prealpha-dev

This has been implemented in prealpha-dev


Patient Source

Includes Patient Source and Test Cases
Submitter:

[x] This pull request describes why these changes were made.
[x] Internal ticket for this PR: https://jira.mitre.org/browse/TACO-6
[x] Internal ticket links to this PR
[x] Code diff has been done and been reviewed
[x] Tests are included and test edge cases
[x] Tests have been run locally and pass

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

@holmesie Are you good with this PR, if we browserify in a future PR?

@okeefm yeah, that's fine, but we will have to do it before we start experimenting with this and bonnie

@holmesie if you're good, can you approve?


added cyclonedds

added Eclipse Cyclone DDS ROS middleware

Hey @joespeed.
cyclonedds is already part of the list.
https://github.com/joespeed/awesome-robotic-tooling#network-and-middleware
We have a complete section on network and middleware.


[E2E Test 24.08] Not possible to view documents when approving requests in Credential Request Overview menu

Current Behavior
Logged in Portal as Company CX-Operator, in menu "Credential Request Overview" https://portal.int.catena-x.net/admin-credential
it is possible to select the relevant request and approve (confirm) or deny it it. It is later also possible to revoke it.

However I was not able to open and validate the uploaded/linked file when clicking the icon or icons in the "Document" column for the respective request. Error message in a popup "Something went wrong. Please contact your administrator."

This seems true regardless of the type of request or file type.
Expected Behavior
When approving actual requests in a productive environment, the Operator should be able to review the supporting documents for a credential request.
Steps To Reproduce
Trying to review any document in menu "Credential Request Overview" (pending, active, revoked, inactive).
Tested with deployed version for release 24.08 (2.1.0-RC2)

Response:
{
    "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3",
    "title": "Access to requested resource is not permitted.",
    "status": 403,
    "errors": {
        "Org.Eclipse.TractusX.SsiCredentialIssuer.Service": [
            "Not allowed to access document of another company"
        ]
    },
    "errorId": "2e2217cd-d9d7-4cd0-811d-b114c61cab3d",
    "details": [
        {
            "errorCode": "DOCUMENT_OTHER_COMPANY",
            "type": "CredentialErrors",
            "message": "Not allowed to access document of another company",
            "parameters": []
        }
    ]
}


No reward -> PledgeFragment

What ❓
Selecting a no reward reward takes user to PledgeFragment.
Delivery info is hidden.
Tests.
How to QA? 🤔
Back a project with no reward and verify the Pledge screen is shown and the estimated delivery is gone.
Story 📖
We discussed but where's the card? I don't know 👀
See 👀

 Delivery Information


Added telemetry for MSBuildV1 task

Task name: MSBuildV1
Description: Added telemetry for several input fields of MSBuildV1 task, added measurement of MSBuild command execution time to telemetry.
Documentation changes required: N
Added unit tests: (Y/N) N
Attached related issue: (Y/N) N
Checklist:

[X] Task version was bumped - please check instruction how to do it
[X] Checked that applied changes work as expected

Could you please add the same for VSBuild?

Could you please add the same for VSBuild?

Added the same logic for the VSbuild task


Not convinced githubPullRequests.pullRequestTitle and githubPullRequests.pullRequestDescription are needed

Refs: https://github.com/microsoft/vscode/issues/114967
Just creating this to share feedback. I am not convinced githubPullRequests.pullRequestTitle and githubPullRequests.pullRequestDescription. I think here we should just behave like github and try to preserve Title and Descirption if the user canceld the PR creation.
Does GitHub have settings to control this, if yes can we somehow get it from the user profile, it they do not have it then I think we do not either.
I think we can find a smart default value, and add these settings later only if they are needed

This is a good point, previously we had these settings because you weren't really able to edit the title and description when creating.
GItHub doesn't have any user setting for this. Currently, when it is set to "ask", it should try to copy GitHub's behavior for filling these fields. (Title is based on last commit if there's only one, or the branch name. Description comes from template if there is one, or the commit if it has a body)
So, I think it would be reasonable to deprecate them.

This is a good point, previously we had these settings because you weren't really able to edit the title and description when creating.
GItHub doesn't have any user setting for this. Currently, when it is set to "ask", it should try to copy GitHub's behavior for filling these fields. (Title is based on last commit if there's only one, or the branch name. Description comes from template if there is one, or the commit if it has a body)
So, I think it would be reasonable to deprecate them.

I get a nice warning (because it is deprecated) but nowhere does it say "deprecated"
Still adding verified and you can let me know if you would like me to create a new issue, or this is something regarding JSON schema in the settings

I get a nice warning (because it is deprecated) but nowhere does it say "deprecated"
Still adding verified and you can let me know if you would like me to create a new issue, or this is something regarding JSON schema in the settings


Logger not Working in Jar

Logger is not working in executable jar file as the configuration file path is not set properly, it should be outside jar somewhere.
This issue is resolved, just creating to send the pr by @nmnambiar

the jar doesnt seem to package the resources/infrastructure_logger.xml in all cases (it worked fine for me but not for few others)
I'll add an external location from where an xml can be kept like $HOME/.config/KoraKaagaz/infrastructure_logger.xml
it would be better for normal user testing too, I guess

Also update the location of log files in your Spec. @nmnambiar

@Rahul-R5 @convict-git PR ready at L2


Shell highlighter triggers keybase notification showing invalid user

EDIT: See comment 3. This may not be due to a shell plugin after all.
When in /keybase/public or /keybase/private my shell highlighter seems to trigger Keybase to think I'm trying to entire a user's directory.
Video playback of the issue.
I realize that there might be a limited set of things that can be done since it might be an issue with the highlighter tool, but the error notification from Keybase seemed very misleading at first until I figured out the cause.
my log id: 25d5b2afd2a64bb2a47c2e1c
STR

Open shell using the below configuration.
cd /keybase/public or /keybase/private.
When in either directory, press a single keystroke followed by a space.
Observe the notification that shows up.

Alternative STR:

cd into /keybase/public or /keybase/private
Enter keybase search [any_user_id]
Observe.

Expected

This shouldn't kick off a keybase error notification.

Setup
Shell: zsh 5.0.5 (x86_64-apple-darwin14.0)
Syntax highlighter: zsh-users/zsh-syntax-highlighting
Notes: Also using oh-my-zsh.
Keybase GUI Version: 1.0.14-20160305214119+a203551

Thanks for the report!  Sigh.  Unfortunately from a file system perspective we can't tell the difference between your highlighter looking up /keybase/private/p vs. you doing it.
@malgorithms: what do you think?  It seems like this error notification is more trouble than it's worth.  I don't really know how to find the right balance.

Scratch that. I just disabled shell completion, and I'm still seeing this. Still trying to figure out what's causing it..
New video.

Hmm, yeah, very annoying. The videos are very helpful. It appears something is looking at the first item in your shell command to see if it's a file in the pwd...(btw, out of curiosity, when you run commands in your current directory do you need to prefix with "./" ? I'm curious otherwise why your shell cares.)
@strib - tough q. Since we have no way of distinguishing between this and someone trying to open /keybase/public/badusername from other legit channels. I feel like we should maybe monitor for other complaints about this for a little while and try to get a feeling for how common it is. For example, once the GUI is further along, we could assume "normal" users will use the GUI to pop up these folders, and do the check then rather than in KBFS. Hmm.  In any case, yeah, let's see how many people are affected by this.
@jonalmeida  - this really only happens when you're inside /keybase, /keybase/public, or /keybase/private, right, but not inside any legit subfolders?

@malgorithms Specifically, /k/public and /k/private but not /k
I tried this again with the default OS X bash and Terminal.app, and I'm still seeing this issue.
A simpler set of STR that I'm not using:

cd into /keybase/public or /keybase/private
Enter keybase search [any_user_id]
Observe.

bash-3.2$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14)
Copyright (C) 2007 Free Software Foundation, Inc.

Version 2.5.3 (343.7)

(btw, out of curiosity, when you run commands in your current directory do you need to prefix with "./" ? I'm curious otherwise why your shell cares.)

Forgot to answer your question earlier: yes, I have to add the ./ if it's an executable in the local directory and not in my PATH.

I can repro this on my Yosemite box as well.  Seems like there are two separate things going on:

Bash tab completion in Terminal.app does a lookup in $CWD, even if "." is not in the path.
Running the keybase app seems to cause a lookup of "keybase" in $CWD.

I can repro the second one on Linux, as well.
So when you do these either of these under /keybase/private or /keybase/public, you end up seeing the popup notification.  This is intentional, because we are trying to provide you extra context to teach you about the directory layout.  Unfortunately, it's confusing when programs are doing stuff on your behalf.
We might be able to solve the second one if we can figure it out, but I don't think there's anything we can do about the first one other than dropping the error message entirely.
cc: @malgorithms

Starting tomorrow, keybase binaries will no longer trigger bug 2 above.
Still have no idea about bug 1, but haven't investigated it much.

I am running into this issue using zsh on Linux. Thanks to #3503, I was able to confirm that zsh-syntax-highlighting is the thing that triggers this popup for me. All I have to do is cd into /keybase/private, and then just typing anything up to my username triggers a notification for not having access to that directory.


Instructions for integrating Power BI report in Project Accelerator

The instructions for adding the power BI reports into Project Accelerator are not correct.  As PA is a managed solution, neither of these options will work, creating new items in web resources for example, is not possible.

This is how it worked for me:

choose the 2nd option - "Updating the report menu via Web resource (full frame)"
While creating the Web Resource use the exact values given in the step 9,
Set
Display Name: Accelerator Power BI report
Name: Accelerator_report
Type: Webpage HTML

I have this same exact issue, though the solution posted here did not work for me.  I tried both options from the instructions to modify the Project Accelerator to include the Power BI report.  In both cases it is not possible to add objects to the Accelerator app, because it is a managed solution.  And it's not possible to export the managed solution to edit later either.  I found that you can create a new, blank managed solution and add a dashboard or embedded report there, and then add the site map object for the Accelerator report and publish it, but those changes do not reflect on the actual app.
Does anyone have the Power BI reports displaying in the Reports section of the Accelerator?  Can step-by-step instructions be shared here?  I had opened a ticket with Microsoft Premier Support on the issue and was directed to post my issue here instead.


LoadingController message does not accept HTML

Bug Report
Ionic Info
Run ionic info from a terminal/cmd prompt and paste the output below.
Ionic:

   ionic (Ionic CLI)          : 4.1.1
   Ionic Framework            : @ionic/angular 4.0.0-beta.5
   @angular-devkit/core       : 0.7.5
   @angular-devkit/schematics : 0.7.5
   @angular/cli               : 6.1.5
   @ionic/ng-toolkit          : 1.0.7
   @ionic/schematics-angular  : 1.0.5

Cordova:

   cordova (Cordova CLI) : 7.1.0
   Cordova Platforms     : android 6.4.0
   Cordova Plugins       : cordova-plugin-ionic-webview 2.1.3, (and 6 other plugins)

System:

   Android SDK Tools : 26.1.1 (/Users/rc101077/Library/Android/sdk)
   ios-deploy        : 2.0.0
   ios-sim           : 7.0.0
   NodeJS            : v8.11.4
   npm               : 6.4.1
   OS                : macOS High Sierra
   Xcode             : Xcode 9.4.1 Build version 9F2000

Describe the Bug
Per the notes of https://github.com/ionic-team/ionic/issues/15429 , the create method of the LoadingController now uses the message parameter in place of content.  The old content parameter used to take HTML and render it as such. Now, putting HTML in the message shows only the actual HTML markup and not the rendered version.
Steps to Reproduce
Steps to reproduce the behavior:

Use the following code:

private async showLoading(): Promise<void> {
    this.spinner = await this.loadingController.create({
      cssClass: 'ati-loading-spinner',
      duration: 3000,
      message: `<div style="font-weight: bold;">Test</div>`
    });
    await this.spinner.present();
}

This pops up a "spinner" that shows
Test
 in it.
It should show only "Test" in bold font.

Any progress on this one?

Me too need it!

Me too need it!

Any update on this

I think this is implemented now?
https://github.com/ionic-team/ionic/blob/36f98eda1b68863ee262f5dffe72510465cd8f88/core/src/components/loading/loading.tsx#L204
Can somebody check if this is still a Issue?

Thanks for the issue. I am going to close this as this was fixed in Ionic Framework v4.4.1: https://github.com/ionic-team/ionic/pull/18242.


log locations

I think these log locations might be out of date as I cannot find anything in most of the suggested places despite ATP being installed and working.

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

ID: 9cbd5a7f-77eb-bc4c-d696-e834ac108be0
Version Independent ID: 164d99ad-3ecc-0031-b722-75533f8348f1
Content: Troubleshooting Azure Advanced Threat Protection using the logs
Content Source: ATPDocs/troubleshooting-atp-using-logs.md
Service: azure-advanced-threat-protection
GitHub Login: @mlottner
Microsoft Alias: mlottner

@bradrush Thanks for taking the time to comment here. Default sensor and deployment log locations haven't changed. What may have happened is that when you installed the sensors, you chose to install outside the default location (perhaps on another drive). Try a full drive search to locate them.

@bradrush I should have asked if you meant deployment or sensor logs. If you can't locate runtime logs, there is another possibility, which is that due to hardened permissions on the default folder or a security product you have protecting that location, it may have blocked it.
If that is your scenario, check the permissions on the default folder.  Local system and AzureATPSensor virtual service accounts should have write permissions to this folder.
If that doesn't help, please log a support call so that our engineering team can check for write errors with your instance and help you resolve the issue.

Thanks mlottner, perhaps you are right but after deploying via intune with no other customisations, no logs or folders were present in these locations.


HoloAnim on TF2 sentry

Enabling the fire animation not only flips the holo by 90 degrees, but also resets the facing set by holoSetPose, which makes it basicly pointless to use.
holoCreate(1,entity():pos(),vec(1,1,1),ang())
holoModel(1,"models/buildables/sentry3.mdl")
holoAnim(1,"fire")

(This affects all 3 levels of the sentry, but not all animations)
Is this something that can be fixed here, or is it how the model gets read by GMod? In TF2 it obviously works.

Been working on this very briefly, but it seems that even with using AddGesture/AddGestureSequence poses still don't work as the gesture still overrides them.
I'm really not experienced much in GLua so I don't know if there's something that I've missed, but I get the nasty feeling that this is a limitation within Garry's Mod and the way it handles animations and poses rather than just using Gestures instead of Sequences.
Using AddGesture instead of ResetSequence yields the same results; the animation overrides the poses, regardless if the pose is set before,  during or after the animation has played.

There's a glua addon for Tf2 turrets that I read the code from. I'd suggest looking at that to see how it's done.

I can't seem to find anything like that addon you mentioned after a fair amount of digging - most addons I can find are just based off a generic standing turret NPC base and just have a remodel or visual change or whatever.
I had a quick look at Valve's own turret code, and whilst that is in CPP, the basic functionality is that it uses SetActivity which handles all the animations and sequences for the base turret NPC, a function which naturally is only callable on NPCs, though internally it should use the same functions for playing sequences so I don't see how it shouldn't work the same


Documentation design update

This PR does a few things, increasingly more ambitious/contentious!

Fixes the logo in the header now that we need to support the new v5 way of doing things
Removes the inverse styles that are no longer needed as supplied by v5
Uses the Masthead component styles from the GOVUK Prototype Components project
Adds a modifier class to the header on the index page to account for the masthead
Increases the overall width of the page container, and adds sub-navigation to all pages

Happy to break apart into separate PRs, but hopefully noting in here is too contentious.
And if you’re happy with these changes, I’ll go off and do the same for the Form Builder docs. 🎁

This looks amazing! Nothing contentious at all. I'll take a closer look soon but really happy to see this, early Christmas present 🎁


Unmounting

Hi there! Thanks for creating this awesome, easy-to-use, and accessible accordion component! Extremely handy.
One major issue though that would prevent me from actually using this in a project is the lack of an "unmount" method. Most of the sites I build use a PJAX library such as Barba to create fluid transition animations between pages. In order to avoid memory leaks, I would need some way to "unmount" badger accordion (i.e. remove event listeners) before navigating to a new page. I looked at the documentation and read over the source and I can't seem to find a way to do this.
Please let me know if there is a solution, or if you would consider adding this feature, or perhaps I could take a stab at it and submit a PR.
Thanks!

Hi Mike,
Thanks for getting in touch and your kind words.
I had a PR raised for a similar kind of feature - https://github.com/stuartjnelson/badger-accordion/pull/26 - I haven't merged this in yet.
Would having a setting like this allow you to do what you'd like? I was thinking of calling it disableListenersOnLoad.

I'm not sure that's what I'm looking for. This is the API I'm looking for:
const accordion = new BadgerAccordion(node)

// Later, before page transition, I could call this method to remove all event listeners (aka unmount)
accordion.unmount()


play2-maven with nonplay submodules

So I tried to create project with 3 submodules one is play and 2 are normal java modules and I made the main POM file as in play24/multimodule example .. Whenever I try to execute mvn play2:run it fail to execute run on other submodules. I added the plugin to all submodules but I get this mvn error
Failed to execute goal com.google.code.play2-maven-plugin:play2-maven-plugin:1.0.0-rc1:run (default-cli) on project fact-spotting: ?: play.docs.BuildDocHandlerFactory -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.google.code.play2-maven-plugin:play2-maven-plugin:1.0.0-rc1:run (default-cli) on project fact-spotting: ?
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: ?
        at com.google.code.play2.plugin.Play2RunMojo.internalExecute(Play2RunMojo.java:529)
        at com.google.code.play2.plugin.AbstractPlay2Mojo.execute(AbstractPlay2Mojo.java:139)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        ... 20 more
Caused by: java.lang.ClassNotFoundException: play.docs.BuildDocHandlerFactory
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at com.google.code.play2.provider.play25.Play25Runner.runInDevMode(Play25Runner.java:100)
        at com.google.code.play2.plugin.Play2RunMojo.internalExecute(Play2RunMojo.java:509)
        ... 23 more

How can I fix that?

Hi. Can you create test project? This will help me find the bug faster.

@mhmgad you can add following section to your non play submodules pom.xml to fix it.
    <build>
        <plugins>
...
            <plugin>
                <groupId>com.google.code.play2-maven-plugin</groupId>
                <artifactId>play2-maven-plugin</artifactId>
                <version>1.0.0-rc1</version>
                <configuration>
                    <playVersion>${play2.version}</playVersion>
                    <runSkip>true</runSkip>
                </configuration>
            </plugin>
...
        </plugins>
    </build>

@gslowikowski Sorry for not setup a test project .. I just got busy! .. I will try to simulate the senario
@lukoyanov I added it but when I use mvn play2:run on the main project it gives success messages for all sub-modules as well as the play one and the server is not starting.
So my hierarchy is :
Parent (Maven)
|-- commons (java maven NOT play)
|--core (java maven NOT play)
|-- web-app (java maven play)
All of them has pom files that have Parent specified and core has depends on commons and they compile together peacefully. Finally, I added web-app and it has core as dependency and added it as module to Parent and declared it to be the main play2 module.
When I follow example multimodel in play24 test projects and use play2:run from the Parent, it just gives success messages and do not start the server as expected.
On the other hand, when invoking play2:run from inside web-service directory it searches for the core and commons in the local repository instead of compiling/packaging them from the Parent project. So, I have to install them first into my repo.
Thank you for your suggestion, I tried it but the result is the same

The problem is resolved ... <mainModule> is a misleading property name.. it should be main artifactID (play module artifactId) something like that because maven uses the folder names as for <module>.

@mhmgad Hello, I seem to be facing the same issue. How did you resolve it ? I dont find any  property in the pom.xml. Any help is appreciated.


Spanish Translation

Hi, I would be interested in collaborating with this project, are there still things to be translated into Spanish? Where can I find the files that need translation?

Hi @dbucci24 thank you for being interested in this!
Spanish translations were deployed to https://andcards.com/ yesterday, if browse through the web site and find something weird, please, feel free to send a PR.

Hi @rtkhanas
Do you mean that the translation is already finished?

Hi @dbucci24 ,
No really, there are couple phrases that need to be translated. I will add below the folder names with untranslated files.

That would be great! I wait for the name of the folders :)

@dbucci24 Hi! I created issuse #20 - it is a list of all folders in which translation is missing. Thank you for helping us!

Hi @vacilagodzila! Thank you again for helping us with translation into Spanish. We still improving our product and with that, there are new phases that need to be maintained. Can you help again with translation?

Hi, @Rybachello , I'll be on it in a few days, hope this is ok. Thank you for reaching out and letting me know!

@vacilagodzila Thank you for helping, I hope it will not take too much for you ;)


Does this build warning cause any problems?

Ask your Question
For react native windows projects, there is an MSBuild warning that happens for all projects that consume this library (including the example project in this repo).
How to reproduce

Open example solution in Visual Studio
Build and watch output logs

Error is below (and occurs several times)
1>C:\code\react-native-slider\example\node_modules\react-native-windows\PropertySheets\External\Microsoft.ReactNative.Cpp.ProjectReferences.props(12,5): warning MSB4011: "C:\code\react-native-slider\example\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems" cannot be imported again. It was already imported at<EMAIL_ADDRESS>(80,5)". This is most likely a build authoring error. This subsequent import will be ignored.*
Build started at 2:55 PM...
1>------ Build started: Project: example, Configuration: Debug x64 ------
NuGet package restore failed. Please see Error List window for detailed warnings and errors.
Error occurred while restoring NuGet packages: File C:\code\react-native-slider\example\windows\example\packages.config does not exist.
1>Determining projects to restore...
1>C:\code\react-native-slider\example\node_modules\react-native-windows\PropertySheets\External\Microsoft.ReactNative.Cpp.ProjectReferences.props(12,5): warning MSB4011: "C:\code\react-native-slider\example\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems" cannot be imported again. It was already imported at<EMAIL_ADDRESS>(80,5)". This is most likely a build authoring error. This subsequent import will be ignored.
1>Done building project "SliderWindows.vcxproj".
1>All projects are up-to-date for restore.
1>Determining projects to restore...
1>C:\code\react-native-slider\example\node_modules\react-native-windows\PropertySheets\External\Microsoft.ReactNative.Cpp.ProjectReferences.props(12,5): warning MSB4011: "C:\code\react-native-slider\example\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems" cannot be imported again. It was already imported at<EMAIL_ADDRESS>(80,5)". This is most likely a build authoring error. This subsequent import will be ignored.
1>Done building project "example.vcxproj".
1>C:\code\react-native-slider\example\node_modules\react-native-windows\PropertySheets\External\Microsoft.ReactNative.Cpp.ProjectReferences.props(12,5): warning MSB4011: "C:\code\react-native-slider\example\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems" cannot be imported again. It was already imported at<EMAIL_ADDRESS>(80,5)". This is most likely a build authoring error. This subsequent import will be ignored.
1>- Checking auto-linked files...

Does this warning have any impact, and should it be fixed?
It sounds like perhaps removing line 80 in SliderWindows.vcxproj may do this

Hello @luisnaranjo733, good question!
No, this will not impact any development experience, nor the application/lib in any way. This is the matter of dependencies being downloaded for each.
I don't want to dive into details, but what I will suggest is to check if other libs has the same warning, and if yes - reach out to React Native Windows team from Microsoft, Their knowledge is huge and I'm sure they'll be much more helpful 💪
If that does not happen for any other lib you try, reach out to me again so I can take a look if this is something I can improve in the Windows-related build of this package.
I will close this issue just to keep it clean, but Thank you for reaching out and let me know.


Add option to override callback url

Description:
Add ability to override callback/notification url.
Related issue (if applicable): fixes https://github.com/StevenLooman/async_upnp_client/issues/33 (non-home assistant.)
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#8797
Example entry for configuration.yaml (if applicable):
media_player:
  - platform: dlna_dmr
    url: http://<IP_ADDRESS>:1936/
    callback_url_override: http://<IP_ADDRESS>:8080/notify

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.io

Nope, tested with 0.94.0b4 and I still get UPnP errors:
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.loader] Loaded upnp.sensor from homeassistant.components.upnp.sensor2019-03-17 19:49:01 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.upnp2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_bytes_sent
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_bytes_received
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_packets_received
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_packets_sent
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_kbyte_sec_sent
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_packets_sec_received
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_packets_sec_sent
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_kbyte_sec_received2019-03-17 19:49:01 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.loader] Loaded upnp.sensor from homeassistant.components.upnp.sensor
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.upnp
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_bytes_sent
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_bytes_received
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_packets_received
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_packets_sent
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_kbyte_sec_sent
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_packets_sec_received
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_packets_sec_sent
2019-03-17 19:49:01 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.upnp entity: sensor.huawei_home_gateway_kbyte_sec_received
2019-03-17 19:49:01 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 352, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 248, in _async_write_ha_state
    tate = self.state
  File "/usr/src/app/homeassistant/components/upnp/sensor.py", line 144, in state
    return format(self._state, 'd')
TypeError: unsupported format string passed to NoneType.__format__

Here is a full log:
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 352, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 248, in _async_write_ha_state
    state = self.state
  File "/usr/src/app/homeassistant/components/upnp/sensor.py", line 144, in state
    return format(self._state, 'd')
TypeError: unsupported format string passed to NoneType.__format__
2019-03-17 20:00:22 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 352, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 248, in _async_write_ha_state
    state = self.state
  File "/usr/src/app/homeassistant/components/upnp/sensor.py", line 144, in state
    return format(self._state, 'd')
TypeError: unsupported format string passed to NoneType.__format__
2019-03-17 20:00:22 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 352, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 248, in _async_write_ha_state
    state = self.state
  File "/usr/src/app/homeassistant/components/upnp/sensor.py", line 144, in state
    return format(self._state, 'd')
TypeError: unsupported format string passed to NoneType.__format__
2019-03-17 20:00:22 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 352, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 248, in _async_write_ha_state
    state = self.state
  File "/usr/src/app/homeassistant/components/upnp/sensor.py", line 144, in state
    return format(self._state, 'd')
TypeError: unsupported format string passed to NoneType.__format__

Please open an issue if you suspect a bug. If you need help please use our help channels:
https://home-assistant.io/help/#communication-channels
Merged PRs should not be used for support or bug reports. Thanks!


[FEATURE REQUEST] Adding the Date section in Table of contents

As title, I think we can consider adding the Date section to learn about simple date manipulation in 30-seconds with PHP.
@sohelamin, what do you think about this?

Yeah, that will be great

Closing due to inactivity.

I'm back and I will track this issue again :).

@peter279k how about this feature ?

Seems like this is still not progressing. I am closing this yet again, please do not reopen unless there are PRs adding snippets for this section.


Transparent mode and DNS resolution

Problem Description
Intercepted flow URLs contain IP, not a DNS name.
Steps to reproduce the behavior:

Install mitmproxy on a local Linux machine acting as an AP and a router for wireless devices (i.e. Rpi3)
Tell the Android device to use Rpi3 as an AP
Configure iptables et.al as per instructions on mitmproxy docs
Start mitmproxy in transparent mode on Rpi3
Observe the URLs of the flows

System Information
root@raspberrypi:/home/pi# mitmproxy --version
Mitmproxy: 5.3.0
Python:    3.7.3
OpenSSL:   OpenSSL 1.1.1d  10 Sep 2019
Platform:  Linux-5.10.17-v7+-armv7l-with-debian-10.9
I've been using DNS names in my scripts while in proxy mode with much success. Now I'm playing with the transparent mode and are seeing that URLs captured by the request(flow: http.HTTPFlow)  all holds just IPs on which I can not apply my script logic anymore.
Is this expected or am I missing a configuration / cli switch here?

You want to use flow.request.pretty_host and flow.request.pretty_url if you want to consider HTTP host headers as well. This is not considered by default as the host header could be spoofed. To enable the same in the mitmproxy UI, set the showhost option to true.

Nice. That works as expected. Thanks!


osx builds are failing

from what I see in the logs, the problem is that the dependency r-nloptr is being installed from defaults instead of conda-forge channel.
but I don't understand why that is because r-nloptr is available on conda-forge.

This is normally because r-nloptr needs to be rerendered.

I just tried to rerender r-nloptr but it says:
No changes made. This feedstock is up-to-date.

I think I solved this already, but now the error is different :(

Build is noarch these days, so the PR can be closed.


provide Hbar wrapper which applies tinybar conversions

overload all methods which take tinybar amounts to accept Hbar
closes #45
Signed-off-by: Austin Bonander<EMAIL_ADDRESS>

cc https://github.com/launchbadge/eslint-config-launchbadge/pull/2


Logo.svg => Location / Configuration

Hi, really basic here.  In the book you mention adding logo.svg.  The book only mentions pulling the one that was created but not where to put it in the project.
The sample solutions do not have this logo in them.  Where should this logo be placed so that it gets propagated into the built application?
The image source in the app.component.html file referenced ./dist/res/img/logo.svg so that's where I put it.  Obviously, I don't think WebPack knows to build/copy it over to the final wwwroot.
Where should it go and what needs to be configured to copy it into the final site build?
Thanks.

Hi there,
manually placing in wwwroot/dist/res/img/logo.svg does the trick. It goes without saying that you can also place it in a /ClientApp/app/res/img/logo.svg folder and then add a Webpack rule that will copy such folder in /wwwroot/dist/ using CopyWebpackPlugin in the following way:
...
...
var CopyWebpackPlugin = require('copy-webpack-plugin');
...
...
module.exports = {
    ....
    ...
    plugins: [
        ...
        ...
        new CopyWebpackPlugin([
            {from:'ClientApp/app/res',to:'dist/res'}
        ]),
    ...
    ]
...


Kapacitor 1.5.7

Closes https://github.com/influxdata/docs-v2/issues/1460
Add 1.5.7 release notes.
Add docs for URL templating to httpPost and alertPost nodes.
Hi @psteinbachs,
Updated the release notes with new changes and added a doc for the new ServiceNow event handler.

Please see question about custom recovery action for OpsGenie...would like to update the example to reflect how folks use this method in their script.
Is ServiceNow supported in Chronograf?

Thank you!

Thank you, @docmerlin!


Feature: Default TTLs

Closes: https://github.com/NerdWalletOSS/apollo-invalidation-policies/issues/4
Adds support for a default timeToLive value that will be applied to all types in the cache. It can be specified as a top level field on the invalidation policies:
const cache = new InvalidationPolicyCache({
  typePolicies: {...},
  invalidationPolicies: {
    timeToLive: Number;
    types: {
      Typename: {
        timeToLive: Number,
        PolicyEvent: {
          Typename: (PolicyActionCacheOperation, PolicyActionEntity) => {}
        },
      }
    }
  }
});

A timeToLive on a particular type overrides the top level timeToLive.
The policies for types have been moved under a types key to group them separately from the new top-level config property space similarly to how the typePolicies from Apollo group the policies for fields under a fields key: https://www.apollographql.com/docs/react/caching/cache-configuration/#typepolicy-fields
This is a breaking change, but given the lib is in beta, it is expected that during this period breaking changes can be made.

@scottgonzalez is this sufficient for your use case?

Yes, this is exactly what I was looking for. Thanks!


Generic note and hush?

Our prelude has these two things:
-- | Generic version of 'hush' from Control.Errors
hush :: Alternative m => Either e a -> m a
hush (Left _)  = empty
hush (Right x) = pure x

-- | Generic version of 'note' from Control.Errors
note :: (MonadError e m) => e -> Maybe a -> m a
note err = maybe (throwError err) pure

They are inspired by functions of the same name in the errors package, except more generic so I don't have to remember which spelling I want when.
I guess the former could be:
hush = either (const empty) pure

What do you think?

tryIO is an extremely useful function in that library, though throwing an ExceptionT.

All seems sensible, see if the current patch meets your needs.

Looks good to me. Thanks.


ARROW-13190: [C++] [Gandiva] Change behavior of INITCAP function

The current behavior of the INITCAP function is to turn the first character of each word uppercase and remains the other as is.
The desired behavior is to turn the first letter uppercase and the other lowercase. Any character except the lowercase letters, uppercase letters and decimal numbers ones should be considered as a word separator.
That behavior is based on these database systems:
- Oracle
- Postgres
- Redshift
- Splice Machine

@augustoasilva, please, could you review the PR?

@augustoasilva about the group of characters you mentioned, I made some tests in Oracle and they are considered as spaces, so I will no include them in the check. I added a test here https://github.com/apache/arrow/blob/9a2c010706f1822cac3156a3b594206f07f656e6/cpp/src/gandiva/gdv_function_stubs_test.cc#L540
Please, can you take another look in the PR after the changes I made?

Also, please take a good look where Projjal mentioned in the code.

@anthonylouisbsb Appveyour test failing

@projjal I applied the changes and the tests are fine, could you look if everything is fine now?


Postman collections generated from Swagger specs (2020-04-21_13-32)

Changes appear to be changes to Documentation links (adobe.io to docs.adobe)

/cc @tsilver  for review/merge


Unit-testing with track 2 SDK

Hi,
In the latest Azure SDK, there are no interfaces unlike the previous versions, e.g
(https://github.com/Azure/azure-sdk-for-go/blob/v63.4.0/services/preview/eventgrid/mgmt/2021-06-01-preview/eventgrid/eventgridapi/interfaces.go)
These were quite helpful in unit-testing/mocking.
Going forward, what's the recommendation for writing unit-tests for clients that consume the SDK in the absence of these interfaces?
Also, is there a way to inject a mock server while initialising clients with the latest SDK ?

Our current POR is to generate fakes alongside the SDK.  This is not an interface-based mock solution like in our previous versions.  You can find further info in https://github.com/Azure/azure-sdk-for-go/issues/16613 which is tracking this work (closing this as duplicate).

@jhendrixMSFT any tentative timeline when fakes would be available?


Use generic type for precision

http://rust-num.github.io/num/num_traits/float/trait.Float.html

I'm interested in taking this on, it looks like the implementation would be the similar to geojson?

Yep, exactly! Pull in num-traits as a dependency, and use num_traits::Float everyewhere