Plugin installed but config tab isn't shown in under  plugin options

Tried to reinstall both obsidian & obsidian-git.
It used to be working with auto updates but since then it does not auto push and pull with commits.
May you advise what I can do to fix this?

After first installation I had to restart obsidian. Maybe you reinstalled both but didnt try a restart afterwards?

Looks like this is probably the same as the details covered by this issue whereby the plugin is not getting initialised correctly - https://github.com/denolehov/obsidian-git/issues/27

I have the same issue.
I just installed Obsidian 0.10.6 on Windows 10 (with Git 2.30.0 installed).
I enable Obsidian Git 1.5.0 but the option tab is not showing up (currently it's the only plugin installed).
The repository is already initialized and I manually did a first commit to GitHub.
On the bottom-right corner of Obsidian I can see the git:ready status, but it doesn't seem to commit/push new changed. I tried creating a new test file, but it just doesn't get committed even after more than 30 mins.

I have the same issue.
I just installed Obsidian 0.10.6 on Windows 10 (with Git 2.30.0 installed).
I enable Obsidian Git 1.5.0 but the option tab is not showing up (currently it's the only plugin installed).
The repository is already initialized and I manually did a first commit to GitHub.
On the bottom-right corner of Obsidian I can see the git:ready status, but it doesn't seem to commit/push new changed. I tried creating a new test file, but it just doesn't get committed even after more than 30 mins.

Nevermind, I had just installed Git on Windows (I normally use Git inside WSL so I didn't have it installed on Windows).
With a logout/login it all got solved, now the option tab is visible! :)

Nevermind, I had just installed Git on Windows (I normally use Git inside WSL so I didn't have it installed on Windows).
With a logout/login it all got solved, now the option tab is visible! :)

wow thank you @stefanoginella for your comment.
I've already installed git on my macOS, but I tried to update to the latest version after seeing your comment.
Magically, I don't know why it helps.
For some unknown reasons, git 2.28.0 don't work well with obsidian git on Mac OS.
Upgrading to git 2.30.0 solved the problem.
Thank you for your feedback @stefanoginella !

wow thank you @stefanoginella for your comment.
I've already installed git on my macOS, but I tried to update to the latest version after seeing your comment.
Magically, I don't know why it helps.
For some unknown reasons, git 2.28.0 don't work well with obsidian git on Mac OS.
Upgrading to git 2.30.0 solved the problem.
Thank you for your feedback @stefanoginella !


High Confidence Spam

Hi!
I have discovered that the action you have on the "high confidence spam" in anti spam policy is the action for the blacklist you have in Defender for Office365. Am I correct? Why is this not presented anywhere?
Br,
Robar

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

ID: 372a5793-33b9-b7a4-d965-aa4237470b17
Version Independent ID: 1242ce47-2528-3446-8d95-9a17f7022749
Content: Manage your blocks in the Tenant Allow/Block List - Office 365
Content Source: microsoft-365/security/office-365-security/manage-tenant-blocks.md
Product: m365-security
Technology: mdo
GitHub Login: @Dansimp
Microsoft Alias: dansimp

@RatulaC Please help in resolving this issue. Thanks

There is a note added to the Manage your blocks in the Tenant Allow/Block List article:

When adding senders to the block list, will they get 9 SCL score or less?


Change Event Listener

For a project that I'm currently working on I use the cropbox, and I'm really loving it so far.
On little problem that I do have, is that whenever the plugin is enabled, the on(change) event listener behaves strangly on my select box, it has a size attribute, and once it has that, the on change does not register mouse clicks anymore, this problem is over when I desable the loading of this plugin.
Does somebody have a  work around for this, ore a fix?

Hi! yii2-widget-cropbox it wrapper of jquery-cropbox. All questions by work of plugin you need send to jquery-cropbox.

Hm.. Which version of yii2-widget-cropbox you uses?

Thank you for you response, I'm currently on 4.0.0

@bvanleeuwen1995 You need open issue to jquery-cropbox and generate it situation via https://jsfiddle.net/


support symbolic shape codegen

part of #1353 , adding codegen support for a simple example
(Tensor.rand(3, 4).reshape(vi, 4) + 1).realize() generates this kernel
void E_s0(float* restrict data0, const float* restrict data1, const int* restrict SYM_i) {
int i = SYM_i[0];
for (int gidx0 = 0; gidx0 <= ((i*4)+-1); ++gidx0) {
    float val1_0 = data1[gidx0];
    float acc2_0 = 1.0f;
    float alu0 = (acc2_0+val1_0);
    data0[gidx0] = alu0;
  } /* global+local */
}

add a helper function sym_rename to change the symbolic part in the function name to s0, s1, s2,...
add a temporary flag TEST_COMPILE_ONLY to keep this for compile only. Will remove in the next PR that will add exec support.
also temporarily exclude CI because I was hit by this outstanding pytest-xdist issue and given that I will support exec soon that has no issue on CI. Hope this is fine
running locally with DEBUG=4 CLANG=1 python test/test_symbolic_ops.py looks like this

Changes made in tinygrad/:
------------------------------------------------------------
files                             insertions       deletions
------------------------------------------------------------
tinygrad/codegen/cstyle.py                 4               4
tinygrad/codegen/linearizer.py            10               5
tinygrad/codegen/wgsl.py                   1               1
tinygrad/ops.py                            3               2
tinygrad/shape/symbolic.py                 4               0
------------------------------------------------------------
total                                     22              12
------------------------------------------------------------
lines added in the tinygrad folder: 10

How many more PRs are you thinking?
I'm thinking we should put merging more on hold until LLaMA actually runs jitted on the GPU. This is becoming a lot of effort to review, you should be finding these things, not me.


Add http_parser_parse_url().

Add an http_parser_parse_url() method to parse a URL into its
constituent components. This uses the same underlying parser
as http_parser_parse() and doesn't do any data copies.
Re-add the URL components in various test.c structures; validate
them when parsing.

I updated the API slightly to allow using this with CONNECT : "url"s. If nobody has any objections, I'll merge this this weekend.

This looks good to me

LGTM.


Updating documentation

Updated the Pytest-Splunk-Addon documentation:

Added to Release History page
Added Sphinx Panels to shorten long code blocks to dropdowns.

:tada: This PR is included in version 1.3.13-develop.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.6.0-develop.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

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


Can build-in terminal supports t_Co=256 or termguicolors?

Is your feature request about something that is currently impossible or hard to do? Please describe the problem.
It's seems that build-in terminal only support t_Co=16?
OS: windows 10 64bit
vim:
VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Jan  5 2024 23:07:59)
MS-Windows 64-bit console version
Included patches: 1-15
Compiled by appveyor@APPVEYOR-VM
Huge version without GUI.  Features included (+) or not (-):
vimrc:
set nocompatible
set t_Co=256
set termguicolors
set runtimepath^=$VIM/vimfiles/plugged/vim-airline
set runtimepath^=$VIM/vimfiles/plugged/vim-airline_theme
set showtabline=0

vim in vim's build-in terminal:

vim in gvim's build-in terminal:

Describe the solution you'd like
Support for displaying more colors.

The reason is colors are not correctly maped?  I found some related issues:
https://github.com/vim/colorschemes/issues/150
https://github.com/vim/vim/issues/9836


ByteBuffers/Strings with onNext(T item) and request(int n)?

What type and aggregations should be used to use reactive streams for a byte or character IO?
So for example, if I wanted a Subscriber, does request(n) refer to the number of byte buffers (of unknown size) or to the number of bytes in one or more byte buffers?   What if my subscriber wanted to control both the number of bytebuffers and their total size?
I really don't want to do Subscriber unless there was a way to have an onNext(byte[] item) to receive bytes in bulk.
Ditto for String and characters, or arrays of anything

Hi @gregw,
demand-element relation is explained here: https://github.com/reactive-streams/reactive-streams-jvm#subscriber-controlled-queue-bounds
Sadly, Java (or the JDK rather) does not have a standard representation for an immutable chuck of bytes (just as String is a representation for an immutable chunck of unicode code points). An acceptable solution for your use case may be to send asReadOnly() versions of ByteBuffer?

Hi @viktorklang ,
Thanks for the response... firstly is this the right place to discuss this kind of thing.  Please point me to the appropriate forum if not.
The link you gave makes it clear that the value passed in request(int n) will translate to the invocation count of onNext(), which is exactly the problem I don't know how to get around?
If I have a Subscriber and do a request(1), then I do know that onNext() will be called once and only once, but I don't know if it will be called with a ByteBuffer that contains a single byte or one that contains 4GB!   Considering that onNext has to fully consume the content passed, that is a big problem.
What we are trying to do is to provide the Flow semantics directly from the Jetty servers asynchronous IO streams, so that developers don't have to deal with the complexities of Servlet API's async callbacks.

I put together the https://github.com/ReactiveX/RxJavaString/ project to help with some of the issues with splitting and encoding across different chunks of UTF8 bytes.  Not sure any of it would be directly useful for ByteBuffers.  If you want maybe that project would be a good place for a ByteBuffer specific operations if not then maybe it could be used as a template for your own custom operators.

George,
I can see that such concerns as splitting/encoding of byte streams that
contain UTF8 characters will indeed be important for solutions in this
space.    I'm new to these APIs but my initial thought is that I would
expect to see something like:
class ITF8Processor implements Flow.Processor<ByteBuffer,CharSequence>
which could be used to convert bytes collection to characters sequences and
such a class would indeed need to handle the problem of multi-byte
characters splitting over byte buffers.
However, looking at your code I can't see that you've addressed the issue
of what unit to express back pressure control in. I can see your
onNext(byte[]) method doing the conversion, but I can't see it calling
Subscriber.request to communicate that it is able to receive more bytes?
It is that question I need resolved so I can get over the initial hump and
start using these APIs and perhaps trying out things like integration to
RxJava.
cheers
On 29 May 2015 at 12:44, George Campbell<EMAIL_ADDRESS>wrote:

I put together the https://github.com/ReactiveX/RxJavaString/ project to
help with some of the issues with splitting and encoding across different
chunks of UTF8 bytes. Not sure any of it would be directly useful for
ByteBuffers. If you want maybe that project would be a good place for a
ByteBuffer specific operations if not then maybe it could be used as a
template for your own custom operators.
—
Reply to this email directly or view it on GitHub
https://github.com/reactive-streams/reactive-streams-jvm/issues/270#issuecomment-106663715
.

--
Greg Wilkins<EMAIL_ADDRESS><EMAIL_ADDRESS>- an Intalio.com
subsidiary
http://eclipse.org/jetty HTTP, SPDY, Websocket server and client that scales
http://www.webtide.com  advice and support for jetty and cometd.

You'll either have to have the Producer generate reasonable sized ByteBuffers or have an intermediate step that slices them into smaller parts.
Might I also suggest you take a look at https://github.com/ReactiveX/RxNetty.

Ah I've seen that this has been briefly discussed before in https://github.com/reactive-streams/reactive-streams-jvm/issues/47 and closed because it was too hard to solve simply!
Sorry but that seams like a bit of a cop out to me and will make the most simple of processors impossible to write asynchronously.
For example, if I want to write a processor the does UTF9 conversion of ByteBuffer to CharSequence, then it is possible for onNext to be called with a massive memory mapped file as a ByteBuffer, which will never ever fit into memory.  So the processor will have no choice but to block and slice off a buffer of characters at a time, feeding them to its downstream subscriber until all have been consumed.
It is not even possible to write a non-blocking fragmenting Processor whose only role is to chop a big buffer into smaller ones that might avoid this problem downstream.
I don't think this is not a too hard problem and I can see two basic approaches:

do a bit of work around defining ownership of an Item beyond the return of onNext(). ie if a processor was able to hold onto a reference to ByteBuffer item and return from onNext(), then at least asynchronous processing could be achieved.

Add a request(long items, long size) method to the Subscription with the semantics that a call to request(long n) is equivalent to request(items,Long.MAX_VALUE).     There would also need to be a generic way of determining the size of an arbitrary T item.   If a producer had an Item that was too large for the requested size, it could either: wait for more size to be requested; slice the item if it knows how; or simply call onError(new InsufficientSizeException).

It would be a real pity if this semantic is put into the too hard basket.  The whole point of APIs like this is that async is hard and needs to be simplified.  Having a single async Flow abstraction that can handle bytes, chars, frames, objects, more complex objects etc.   while keeping the same semantic and backpressure mechanism would be awesome!

@abersnaze
Surely at one end of a Producer chain their might be a user who is not going to be constrained by reasonable sizes.  They are just going to memory map the biggest file they can find as a ByteBuffer and feed it into a Flow and want it to work.
You can write a Processor that slices large items into smaller items, but I can't see how it can be written asynchronously because the large item will arrive in an onNext call which can't return until the entire item has been consumed.
OK so maybe this can be done in a Producer, but to do so would require another asynchronous API and isn't the whole point of this exercise to give a nice portable async reactive API that users can know love and use?    If we have to switch to another API when we hit uncontrolled user code, then it kind of defeats the point! No?
Also, even if the initial Producer creates right sized chunks, who is to say that they are right-sized all the way through a chain of Producers and Subscribers.  If you are to use the Processor model then it needs to be able to asynchronously slice big items into small items.  The current API does not allow this in a non blocking way, so the model will fail for an arbitrary chain of Processors with differing size limitations within the chain.

Here are two examples of splitting potentially oversized byte[]/ByteBuffers into smaller ones:
public class ByteArraySplitting {
    public static void main(String[] args) {
        int maxSize = 300;

        Observable.just(new byte[1024]).repeat(2)
        .flatMap(a -> {
            int capacity = (a.length + maxSize - 1) / maxSize;
            List<byte[]> chunks = new ArrayList<>(capacity);
            int i = 0;
            int remaining = a.length;

            while (remaining != 0) {
                int len = Math.min(maxSize, remaining);
                byte[] chunk = Arrays.copyOfRange(a, i, i + len);

                chunks.add(chunk);
                i += len;
                remaining -= len;
            }
            return Observable.from(chunks);
        })
        .subscribe(b -> System.out.println(b.length));

        ByteBuffer bb = ByteBuffer.allocate(1024);
        bb.put(new byte[1024]);
        bb.flip();

        Observable.just(bb)
        .flatMap(a -> {
            int capacity = (a.limit() + maxSize - 1) / maxSize;
            List<ByteBuffer> chunks = new ArrayList<>(capacity);
            int i = 0;
            int remaining = a.limit() - a.position();

            while (remaining != 0) {
                int len = Math.min(maxSize, remaining);
                ByteBuffer chunk = a.slice();

                chunk.position(i);
                chunk.limit(i + len);

                chunks.add(chunk);
                i += len;
                remaining -= len;
            }
            return Observable.from(chunks);
        })
        .subscribe(b -> System.out.println(b.position() + " .. " + b.limit()));
    }
}

Cutting down on the size is straighforward, but if you want to combine smaller chunks up to the limit and split larger chunks down to the limit, that is more complicated.

@akarnokd
I can't relate the examples you've give to an asynchronous implementation of a Flow.Processor<ByteBuffer,ByteBuffer>, where the big buffers will arrive in an onNext(ByteBuffer item) call and have to be fed to another Subscriber, who may only have done a request(1) and another request call may be some time in coming.   Thus once the big buffer has been split, the processor can only calls its subscribers onNext(ByteBuffer) with a small buffer and then has to wait until another call to request(n) is made - hence it becomes blocking?

In RxJava all of the non blocking backpressure logic is in the last line return Observable.from(chunks); The chunks are computed eagerly but they are parcelled out as request(n) calls come in.
Here is the implementation of the from
    private static final class IterableProducer<T> implements Producer {
        private final Subscriber<? super T> o;
        private final Iterator<? extends T> it;

        private volatile long requested = 0;
        @SuppressWarnings("rawtypes")
        private static final AtomicLongFieldUpdater<IterableProducer> REQUESTED_UPDATER = AtomicLongFieldUpdater.newUpdater(IterableProducer.class, "requested");

        private IterableProducer(Subscriber<? super T> o, Iterator<? extends T> it) {
            this.o = o;
            this.it = it;
        }

        @Override
        public void request(long n) {
            if (REQUESTED_UPDATER.get(this) == Long.MAX_VALUE) {
                // already started with fast-path
                return;
            }
            if (n == Long.MAX_VALUE) {
                REQUESTED_UPDATER.set(this, n);
                // fast-path without backpressure
                while (it.hasNext()) {
                    if (o.isUnsubscribed()) {
                        return;
                    }
                    o.onNext(it.next());
                }
                if (!o.isUnsubscribed()) {
                    o.onCompleted();
                }
            } else if(n > 0) {
                // backpressure is requested
                long _c = BackpressureUtils.getAndAddRequest(REQUESTED_UPDATER, this, n);
                if (_c == 0) {
                    while (true) {
                        /*
                         * This complicated logic is done to avoid touching the volatile `requested` value
                         * during the loop itself. If it is touched during the loop the performance is impacted significantly.
                         */
                        long r = requested;
                        long numToEmit = r;
                        while (it.hasNext() && --numToEmit >= 0) {
                            if (o.isUnsubscribed()) {
                                return;
                            }
                            o.onNext(it.next());

                        }

                        if (!it.hasNext()) {
                            if (!o.isUnsubscribed()) {
                                o.onCompleted();
                            }
                            return;
                        }
                        if (REQUESTED_UPDATER.addAndGet(this, -r) == 0) {
                            // we're done emitting the number requested so return
                            return;
                        }

                    }
                }
            }

        }
    }

@abersnaze OK I'm going to need to play with your code a bit more to see if I can understand how you are avoiding blocking.   Is this code against:
<dependency>
	<groupId>com.netflix.rxjava</groupId>
	<artifactId>rxjava-core</artifactId>
	<version>0.20.7</version>
</dependency>

@gregw You are better off with the latest:
<dependency>
    <groupId>io.reactivex</groupId>
    <artifactId>rxjava</artifactId>
    <version>1.0.11</version>
</dependency>

@abersnaze's example seems to be an older one because it has a concurrency bug in its fast-path.

Thanks @akarnokd and @abersnaze, I've got the code running and understand it better (I'm still getting my head around that code style).
I can see that example can be kind of thought of as asynchronous, as it holds the chunks until a request(n) call comes in from a subscriber, in which case it hands out n chunks.   If the subscriber was remote or truly asynchronous (which it is not in this example), then there would be no thread waiting to hand out the next chunk.
However, this is essentially just a producer that slices a big buffer into lots of smaller buffers and hands them out as requested.   This is not the Flow.Processor case that I'm concerned with where the big buffer has itself been delivered by an asynchronous callback.
Firstly pre computing the chunks may not always be possible.  OK for ByteBuffers that can be sliced, but if it was being converted to a CharSequence, then precomputing would triple the memory commitment, which is kind of against the whole purpose of slicing it up in the first place.
Even if you solve this by taking a single slice as demanded, you still need to hold onto the source ByteBuffer while all the slices are taken.  If that source ByteBuffer has been provided by a onNext call from a truly async source, then I don't see how this can work.  It works in this example because the ByteBuffer is not recycled/reused for the duration of the test.  But in a real usage, the ByteBuffer passed in an onNext call is likely to be reused immediately after the onNext returns - thus any slices taken subsequently will point to the wrong data.
Anyway, let me get my head a bit more into this style of code and I'll write a unit test that demonstrates the async semantic I'm trying to achieve... this could take me a few days.

In Rx we like to use Observable.from because it hides some complicated logic but it requires data to be precomputed. We've been experimenting with an AnstractOnSubscribe that hands the back pressure and delegates to a closure to produce just enough data when needed.

@abersnaze It is not so much the use of Observable.from that is the issue for me.  If the task is slicing a ByteBuffer into small slices, then it is fit for purpose.       The problem is not preslice or slice as you go, the problem is the scope of the big buffer that you are slicing from.   If that big buffer is passed in from an onNext call as part of a chain of processors, then that onNext call cannot return while slices are current (as it backs them) or there is more slicing to do.    Thus that onNext call becomes blocking not asynchronous.

You can apply observeOn before the flatMap or subscribeOn after from so the stream gets asynchrony and your source is not held back that much.

Sorry for the late reply, I didn't have the cycles to read through the whole thread, so forgive me if this has already been said:
There is absolutely no problem going from Collection as element type to T, nor the other way around,
demand is signalled on a per-element basis so that if you want to limit the size of the Collection then you should expose that when creating the Publisher:
someSource.strictChunkedPublisher(size = N).subscribe(subscriber)

the reason for this is simple—since the Collection has already been created, it is not occupying variable subscriber buffer space.
Perhaps you want to allow for "read as much as you have but don't send me more than N per chunk":
someSource.lenientChunkedPublisher(size = N).subscribe(subscriber)

The reasons for not messing around with specifying byte sizes are, but not limited to:
A) Given a type T what is its size?
B) Given type T and a max size of N, what do you do with Ts larger than N?
C) Do you allow for sending less than N?
D) What happens with the last data if it is less than N?
E) What does "demand N of size X" mean in practice?
…
Given that we can create types that reflect intent. (You could create a ByteBuf256 if you want to be explicit about capacity and optimization opportunities).
Given that we can transform chunks into their contents in a non-blocking and backpressured way (by peeling off elements and emitting their contents as requested)
Given that we can take elements and chunk them. (classing windowing)
===>
What would, if any, be the benefits of changing to include for chunking.
(Benchmarks are encouraged)
(Worth noting is that currently the RS spec allows for implementations that push ~175 million elements a second (point-to-point).)

There was a previous discussion that might also be of interest: #47

FWIW we're dealing with this issue in the reactive-ipc project. [1]
The problem really becomes one of translation. By that I mean: Subscriber has capacity for X bytes but can't request bytes directly from the Publisher, only buffers. That means the Subscriber has to communicate to the Publisher (dynamically and not at CTOR/creation time) its current capacity in a unit that the Publisher understands but does not overrun the capacity of the Subscriber.
In short, I think there has to be additional information similar to what TimeUnit does for the long associated with time. Either a DemandUnit type abstraction or some other way to set an additional limit other than just the long associated with request(long).
[1] - https://github.com/reactive-streams/reactive-streams-jvm/issues/270

@viktorklang
I understand that this is not an issue in a Publisher and it can fragment a large collection it already has in memory easy enough.   The use-case I'm concerned with is if the memory limitation is in a Processor.     Two examples come to mind:

an async output stream is internally implemented with ReactiveStreams that use Processers to send the stream over a HTTP2 connection.  So you will have Processors that compress the data, fragment it into HTTP2 frames and yet another Processor that TLS encrypts those frames.  At each of these steps there will be either a maximum or optimum fragment size to deal with for compression, protocol frame size or encryption processing and the origin Publisher does not know what they are and has no means of discovering them.     If the protocol frame size is smaller than the size of data published, then the Processors will have to block until they get no back pressure from their subscribers.

To illustrate this problem I've written an example (against the reactive streams API rather than rxJava), that includes a long README about the problems I can't get my head around:
https://github.com/jetty-project/jetty-reactive/tree/FragmentingProcessor
Again it is the Processors that I'm most concerned with. The origin publisher and ultimate subscriber have a lot more flexibility to deal with these kinds of issues.   If an ecosystem of utility processors is to be developed (eg compressors, encryptors, encoders etc.) then they need to be able to operate asynchronously within the API provided.   That is what I'm not currently seeing.

@rkuhn yes #47 is essentially the same issue.... problem is that it was closed as being too hard to fix!
I'm evaluating this API against a real asynchronous use-case that is in need of a better API (Servlet async IO) and I think it reasonable that an API proposed for java 9 can handle such use-cases at least as good as callbacks.    Hence I'd like to open the discussion again to see if there are techniques within the API as proposed that can help or if there are some possible changes to the API.  As without one or the other, reactive streams do not look suitable for these use-cases.
See the README in https://github.com/jetty-project/jetty-reactive/tree/FragmentingProcessor for more detailed description of the use-cases I'm concerned with.
cheers

@viktorklang ooops I didn't give my second example.... never mind, it is the same as the first one.

@jbrisbin

The problem really becomes one of translation. By that I mean: Subscriber has capacity for X bytes but can't request bytes directly from the Publisher, only buffers. That means the Subscriber has to communicate to the Publisher (dynamically and not at CTOR/creation time) its current capacity in a unit that the Publisher understands but does not overrun the capacity of the Subscriber.

The memory has already been allocated for the chunk, so I don't see how the Subscriber's buffer would be overrun? (The Subscriber's buffer is in Ts, no matter if T is composite or not)

@viktorklang Surely you don't think the only significant measure of a subscriber's capacity is an often unmeasurable (at the least unknowable) impact on RAM usage? There are other kinds of constraints that have nothing to do with RAM usage.

@jbrisbin

@viktorklang Surely you don't think the only significant measure of a subscriber's capacity is an often unmeasurable (at the least unknowable) impact on RAM usage? There are other kinds of constraints that have nothing to do with RAM usage.

Hmm, how do you mean in this case?
To illustrate my point, let's say we have a ByteBuf256 type which, unsurprisingly, holds up-to 256 bytes.
Now, as a Subscriber<ByteBuf256> the question is what your demand pattern ought to look like: if you only want to buffer at most 256 bytes you issue a demand of 1 and wait for the next piece of data before issuing more. I.e. your input buffer is of size 1 and your element type can carry at most 256 bytes.
Am I missing something?

Actually.... I think I'm about to answer my own question.....
A Processor that receives a ByteBuffer in onNext that is larger than it can process without blocking (do to lack of backpressure) can just keep a reference to it and return from the onNext call... provided that:

It didn't have more than request(1) outstanding, so the Publisher will not call onNext again
The Publisher understands the contract that just because onNext() returns does not mean that the passed buffer has been fully handled and can be reused.
The Publisher will wait (threadlessly) for a subsequent request(1) to inform it that processing of it's last onNext has now completed and the passed buffer may be recycled.
The Publisher will wait (threadlessly) for a request(1) before call onCompleted() so that it does not try to complete while a previously passed buffer is still being processed.

Hmmm  I'll give that a go in my repo tomorrow (1am here now) and report back if that approach solves my issues.

@gregw
I'm opportunistically answering your answer instead of your previous comments (let me know if I should)

Actually.... I think I'm about to answer my own question.....

A Processor that receives a ByteBuffer in onNext that is larger than it can process without blocking (do to lack of backpressure) can just keep a reference to it and return from the onNext call... provided that:

It didn't have more than request(1) outstanding, so the Publisher will not call onNext again

If a processor decides to issue more demand upstream than is signalled downstream, it (by design) needs to be willing to buffer that itself. This does not entail any blocking in the "parking a Thread"-sense of the word.

The Publisher understands the contract that just because onNext() returns does not mean that the passed buffer has been fully handled and can be reused.

Exactly. Think of onNext as sending the element asynchronously to the Subscriber, it could technically "live" on another machine. This is why the term signal is used in the spec.

The Publisher will wait (threadlessly) for a subsequent request(1) to inform it that processing of it's last onNext has now completed and the passed buffer may be recycled.

No, this is faulty. request is never to be assumed to be an Ack. As per the spec the Subscriber is free to issue requests whenever it likes. (barring things like cancellation, onComplete/onError etc).

The Publisher will wait (threadlessly) for a request(1) before call onCompleted() so that it does not try to complete while a previously passed buffer is still being processed.

See previous answer.

Hmmm I'll give that a go in my repo tomorrow (1am here now) and report back if that approach solves my issues.

What you'll need to do in this case is to control the pipeline:
YourPublisher -> CustomerProcessor<ByteBuffer, ByteBuffer> -> YourSubscriber
So you can collect the ByteBuffers as they are passed through.
Keep in mind that anything in between could in theory retain a reference to your buffer and mess around with it after they should.
Does that help?
Let me know if there's anything I can clarify further or if I have misunderstood something.

@viktorklang regarding your comment to @jbrisbin
Consider a GzipInflatorProcessor implements Processor<byte[],byte[]>
It's subscriber calls request(1) on the inflator, so it calls request(1) on it's publisher, which responds by calling inflator.onNext(byte[]) with a 256 byte array.
But it is an inflator, so that 256 byte array can expand to an almost arbitrary large byte[].    There are several possibilities:

inflator just inflates to a single huge byte[] and has unlimited memory commitment.
inflator interates inflating chunks of bytes[] and blocks while waiting for request(n) calls so that it can call onNext with each chunk on its subscriber
inflator returns from onNext without having completely inflated the 256 bytes.  The processor knows that it cannot mess with that byte array until it sees a request(n>0) from the inflator (as per my previous comment)

@gregw FWIW in Reactor we had to implement his "remainder" functionality for our Codec facility. That sounds very similar.

@viktorklang replying to your message that crossed mine.
See my inflator example to understand why I'm concerned with collecting buffers as they pass through. That can result in an arbitrary memory commitment.
Surely a Processor is a Subscriber, so it is free to without its subsequent request(n) calls until it has finished handling a previous onNext call.
I understand that using a request(1) as an ack is not exactly correct, but I do not see how else a publisher can recycle a buffer it has previously passed to onNext.    It's not acceptable to say that it can't recycle it as servers will just not scale if they create that kind of garbage for each message.
So without the request as ack, how else can a Publisher (or Processer) recycle a buffer?

@gregw
@viktorklang regarding your comment to @jbrisbin

Consider a GzipInflatorProcessor implements Processor

It's subscriber calls request(1) on the inflator, so it calls request(1) on it's publisher, which responds by calling inflator.onNext(byte[]) with a 256 byte array.

But it is an inflator, so that 256 byte array can expand to an almost arbitrary large byte[]. There are several possibilities:

inflator just inflates to a single huge byte[] and has unlimited memory commitment.
inflator interates inflating chunks of bytes[] and blocks while waiting for request(n) calls so that it can call onNext with each chunk on its subscriber
inflator returns from onNext without having completely inflated the 256 bytes. The processor knows that it cannot mess with that byte array until it sees a request(n>0) from the inflator (as per my previous comment)

I'll try simplify the example:
Let's say that you have a processor that given a T can produce an unbounded number of Ts.

Now, if the routine that possibly creates an unbounded number of Ts doesn't have a means to control the number of Ts it produces, nothing Reactive Streams can do will ever be able to fix that. It is equivalent to a Publisher that cannot be controlled-> you'll have to decide to buffer and drop.

@viktorklang replying to your message that crossed mine.
See my inflator example to understand why I'm concerned with collecting buffers as they pass through. That can result in an arbitrary memory commitment.

Surely a Processor is a Subscriber, so it is free to without its subsequent request(n) calls until it has finished handling a previous onNext call.

Sure, but only if you control the implementation, i.e. you know more about the pipeline than the RS spec can know. I'm talking from the general perspective of what you can and can't assume wr.t. arbitrary Publishers, Subscribers and Processors given the spec and tck.

I understand that using a request(1) as an ack is not exactly correct, but I do not see how else a publisher can recycle a buffer it has previously passed to onNext. It's not acceptable to say that it can't recycle it as servers will just not scale if they create that kind of garbage for each message.

So without the request as ack, how else can a Publisher (or Processer) recycle a buffer?

Safest strategy is to add a collector stage at the end that ferries the buffer back to the publisher.
Does that make sense?

@viktorklang
I think a collector that ferries the buffer back to the publisher is also dependent on controlling the implementation beyond what the RS spec tells you.  You wont be able to develop utility processors as they will not know how to return the buffers passed to them from arbitrary publishers (which may be removed by several processors).
However, it is probably a better solution than the request as ack idea as it at least allows for request(n>1) to be sent to the Publisher to avoid possible latency issues.
I'll experiment further.

@gregw
You'll be able to hook in any processor you like as long as you control where the buffers are injected and where they are collected. Or?
Let me know what your experimentation reveals, this is an interesting topic.
Looking forward to see what comes out of it.

OK I think I'm understanding RS better and will close this issue.
The problem that I was having is that I wanted to implement a Processor that was async, bounded memory and acknowledging (so callers could recycle buffers).    I've worked out that you can have only 2 of those 3 attributes.  I've been able to implement an async & bounded memory process so long as I don't attempt to use the return of onNext or a subsequent request(n) call to indicate acknowledgement (so that buffers can be recycled or the demo exit after completion).
You can see the results of this revelation here.
While I think acknowledgement is an important attribute, it is not the subject of this issue and I'll move the discussion of it to the list.   My demo achieves acknowledgement only by going outside the standard RS API.
Two other things I'll note of interest here:  Firstly the demo contains an abstract IteratingProcessor that is based on the Jetty IteratingCallback.  This is a useful pattern to avoid arbitrarily deep recursion (onNext(item) calls request(n) calls onNext(item) calls request(n)....) which is a common problem with async frameworks.
The other is that I've noticed that RS are similar to a scheduling strategy that we've implement in Jetty called Eat What You Kill.   EWYK achieves mechanical sympathy by implementing the ethos of a thread should not produce a task unless it is able to immediately consume it. This avoids queues, dispatch delays and allows tasks to be consumed with hot tasks.
RS style encourages similar mechanical sympathies by requiring publishers to not publish until there is demands that originates from the ultimate subscriber. This can allow a single thread to call through a chain of onNext calls, keeping it's cache hot while avoiding queues and dispatch delays.

@gregw
Just passing by and looking at your problem. What would be if you copied the 256 bytes buffer when you received it in your GzipInflatorProcessor to a private buffer and then decompress incrementally from the private copy when the downstream requests more. So you don't retain a reference to buffer passed to you. Surely this will mean more memory copying, but that's an alternative if you don't want to manage byte[] arrays ownership. You treat byte[] arrays as value types. Does that make any sense?

Hi @gregw,
I can't see any tests in the project—I'd strongly recommend applying the TCK to your processor, it will assist you in ironing out potential spec violations.
Speaking of the spec, I'd love to get your feedback on it, is there things that need improvement, what was good etc?

@plevart Sure copying data get's around some of the issues and copying 256 bytes in that example is not a big deal.  But copying data passed in that can be of arbitrary size is not a good general solution as it is hard to enforce memory bounds.
cheers

@viktorklang Thanks for the suggestion of applying the TCK.  I think it is probably a bit early for our experiments, but we will certainly look at it soon.
With regards to the spec, it is also a bit early for me to say anything too definitive... specially as I think I've just spent the best part of a week barking up the wrong tree with it :)   Although I guess that might mean that some of the documentation and examples could be improved.
But now that I've adjusted my head to think more in line with how the API is intended to be used, I can give you some initial feedback.    It is definitely a lot simpler to work with than other async APIs, so while I think there is a lot of good in the Servlet async IO API, it is a very tricky API to use and we are very interested in wrapping it as RS's to make it easier to use.  That is where our focus has shifted in our experimental repo.
The other thing I like is the mechanical sympathy that results from RS, with a single thread able to call all the way through a chain of onNext calls with a hot CPU cache and no dispatch.  The IteratingProcessor model we've implemented should be good at stopping any recursion problems and is much simpler to use than the IteratingCallback we use with our callback model.
However, we still do have some concerns with the lack of acknowledgement, so a publisher does not know if it can recycle an item, can't get exceptions in some circumstances and doesn't know if an onCompleted() has progressed to completion all the way through a chain.
But give us a few more days to get our heads more into it and also try out some more real use cases, perhaps with some other implementations.  But so far its pretty good!
cheers

@gregw
I assume you saw these? https://github.com/reactive-streams/reactive-streams-jvm/tree/master/examples/src/main/java/org/reactivestreams/example/unicast
You may want to inspect other implementations (implementing it is non-trivial just because the problem has inherent complexity) but the end-user will not be implementing it themselves but use an implementation. It may also be interesting for you to leverage an already existing implementation to prototype with.
Looking forward to your feedback.


TST: Remove pytest.raises.match for back-compat.

As I noted on gitter, dask tests are odd in that they check for Python 3.3 in order to provide compatibility with dask 2.7.2, but then they use pytest.raises.match, which came out in pytest 3.0. This PR removes the latter in order to support (at least) pytest 2.9.2, which is what's in Fedora at the moment.

That failure does not appear to be my fault 😕.

cc @TomAugspurger , who wrote this code originally.  What are your thoughts to staying back at pytest <= 2.9?
Alternatively @QuLogic , what are your thoughts on making Fedora slightly more modern here?

Seems fine in this case, since it's not using any regular expressions. But in general I don't think we should limit our testing to what's available on older systems. Why does the pytest that's installed with Fedora matter here?

I think that @QuLogic handles packaging for Fedora.  From time to time he comes through and checks that the Dask test suite runs on their systems.  This is generally pretty useful for flushing out bugs in 32-bit and other settings that we don't test on travis.ci.

Well, not officially, but I try to get everything packaged on a copr at least. I assume current Fedora is not using latest pytest because it breaks some compatibility somehow, but I've never asked the maintainer about it.


Document coverage + add params

Documents support for coverage listing and adds tolerance and device ID parameters.

Stale? Maybe worth closing and if we want to re-visit we'll make a new issue and add it to a work cycle.

yeah, stale, sorry. I have implemented these things in the coverage PR. Forgot about this one.


SDD-804: Migrate SDD to 6.x

StrengthService fixes carried over via 48235723eac660b59f706e950bc960f4fdbddde1, closing this PR.


Asm misses some of the instructions

e.g. ROL is missing (though I see it in Felix's source). I think there's an issue with the docenizer parsing the combined pages.
Also, ideally the docenizer should output everything in sorted order to minimize the git diffs when only a few things change.

Similarly all the vector instructions aren't being picked up, probably as they have suffixes (like vbroadcastss etc : https://godbolt.org/g/ftSycN

Would a solution like yours on prefixes work?

I don't think so. There are many suffixes and prefixes and they're noted in the x86 asm reference so we should try and parse them out and use them as aliases of possible

Missing cmpltpd (from https://godbolt.org/g/M9aRB4)

also seto https://godbolt.org/g/TsoS5B

https://github.com/StanfordPL/x64asm/blob/develop/src/x86.csv might be a better solution

Noticed it's missing cltq the other day

See also #1072

shr and movbe was mentioned in #695
also #362

Whoops; the /g/ links here are mostly broken as they point to xania.org (my old "staging" setup). Will update with fixed links (or visit goo.gl/BLAH and fix up the url)


replaced missing transparent viewkey panic with handled error

Should prevent rust panics. However, this may not prevent human panics.

I notice that this PR is into dev, but isn't this a hot-fix?   That should go into stable?


Version control. Please debug tomorrow.

👷 Deploy Preview for yunrui-zhang processing.

Name
Link

🔨 Latest commit
f05447ff8d977aa0a98c52a92cf8ea0570d8a6d3

🔍 Latest deploy log
https://app.netlify.com/sites/yunrui-zhang/deploys/650f90f33093340008a1b342


[bug] disable No targets to run based on touched files when running moon ci

Is there a way to disable No targets to run based on touched files and always run all targets when running moon ci. I have noticed that usually when I use git tag to publish a new release, moon ci doesn't do anything due to No targets to run based on touched files.

moon ci is powered entirely by touched files. You probably just want to use moon run in this case.

Yeah the more I think about this, I think moon run or moon check is a better choice here.
If you're using GH actions, you can control this with the if: ${{ }} statement.


Common React Native code for multiple iOS app projects?

I’ve added React Native to an existing iOS app following these instructions - https://facebook.github.io/react-native/docs/embedded-app-ios.html
However the existing app is not a simple single-project iOS app (like the instructions are written for), the app is architected in such a way that there are multiple (more than a dozen) iOS app projects that all share common code from an Objective-C static library project. The directory structure is like this:
|-MainDirectory
|  |-CommonStaticLibraryProjectDirectory
|  |-iOSAppProject1Directory
|  |-iOSAppProject2Directory
|  |-...
|  |-iOSAppProject15Directory
Instead of having a separate copy of the ReactComponent directory (contains index.ios.js and all the other React Native JS files) under each iOSAppProjectDirectory it would be much better to have a single ReactComponent directory (similar to the Objective-C static library project) in a common location such as:
|-MainDirectory
|  |-CommonStaticLibraryProjectDirectory
|  |-ReactComponent
|  |-iOSAppProject1Directory
|  |-iOSAppProject2Directory
|  |-...
|  |-iOSAppProject15Directory
If I move the ReactComponent directory to this common location one level above the iOS apps root directories the node dev server starts OK but get React Native error in simulator: "Unable to resolve module apsl-react-native-button from : Unable to find this module in its module map or any of the node_modules directories under /Users/node_modules/apsl-react-native-button and its parent directories. This might be related to https://github.com/facebook/react-native/issues/4968…"
The 3 suggested steps to resolve issue #4968 does not work. Only removing references to 3rd party components makes it possible to use a ReactComponent directory outside of the iOS apps root directories.
I also tried a symbolic link in the iOS apps root directories to the ReactComponent directory in the common location. The node dev server starts OK but get React Native error in simulator: "Cannot find entry file index.ios.js in any of the roots: [“","/ReactComponent”]”
The only way I’ve got this to work (aside from not using any 3rd party components) is to copy the ReactComponent directory from the common location to within the iOS apps root directories.
Is there any way make this React Native code reusable from a common directory without resorting to a hack of creating a script to copy the ReactComponent common code to each dozen+ iOS app root directories?
I have tried React Native versions 0.21.0, 0.24.1, 0.25.1, 0.27.2 and 0.28.0 and all have this issue.
Thanks.

After moving the directory, did you redo the pod install step and change where the pod is located?
Likewise, you'll need to change the command you run to point to where your new react code lives:
(JS_DIR=<new react code directory>; cd node_modules/react-native; npm run start -- --root $JS_DIR)

Thanks for responding @Lokeh
I did do both of the things you specified previously - this is how I got it working in the common location, but only without 3rd party references. Once I add 3rd party references in that configuration the "4968 error" appears.

Hi there! This issue is being closed because it has been inactive for a while.
But don't worry, it will live on with ProductPains! Check out its new home: https://productpains.com/post/react-native/common-react-native-code-for-multiple-ios-app-projects
Product Pains has been very useful in highlighting the top bugs and feature requests:
https://productpains.com/product/react-native?tab=top
Also, if this issue is a bug, please consider sending a pull request with a fix.


[SR-10011] [Lexer] Raw Strings escape character sequence resembling multiline delimiter

Summary
The Lexer currently treats triple-quotes as a multiline delimiter for Strings. This PR allows the multiline delimiter (""") to be escaped in raw Strings when a valid closing custom delimiter (e.g. #) is found before a newline.
Problem
The Lexer does not register some strings that are technically valid according to the documented regex on string literals.
For example: #"""#
Gives the errors: Multi-line string literal content must begin on a new line & Unterminated string literal
Impact
This change does not impact any Strings that are already valid, rather, this PR enables a new set of String literals to be considered valid.
After merging this PR:
#"""# is now equivalent to "\""
#"""text"# equates to "\"\"text"
#""" is still the beginning of a multiline raw string.
Links

Resolves SR-10011.
Replaces my previous PR attempt: #23115
Tagging @rintaro and @xwu from activity in my previous PR #23115.

@swift-ci Please smoke test

Error from the CI:
/Users/buildnode/jenkins/workspace/swift-PR-osx-smoke-test/branch-main/swift/test/Interop/Cxx/templates/class-template-variadic.swift:17:18: error: missing arguments for parameters #1, #2 in call
14:46:22   var pair = Pair()
14:46:22                  ^
14:46:22                   <#IntWrapper#>, <#IntWrapper#>
14:46:22 ClassTemplateVariadic.__CxxTemplateInst5TupleIJ10IntWrapperS0_EE:3:12: note: 'init(_:_:)' declared here
14:46:22     public init(_ t: IntWrapper, _ ts: IntWrapper)
14:46:22            ^
14:46:22
14:46:22 --

This doesn't seem to be related to my PR. On my machine, the compiler builds and passes all tests using ninja. Did a recent merge break the compiler? Or, is this from my PR?

A recent merge; should be reverted now. Let's try again:
@swift-ci Please smoke test

@swift-ci Please test Windows

@swift-ci Please test Windows


feat: batch check

Description

This PR implements the BatchCheck API. The maximum allowed size of the batch and the maximum allowed concurrent  check operations are configurable with the env vars OPENFGA_MAX_CHECKS_PER_BATCH_CHECK and OPENFGA_MAX_CONCURRENT_CHECKS_PER_BATCH_CHECK (or with flags passed into the run command, see flags.go).
There are currently no tests in this branch, as those are being added in a separate PR based off of the feat/batch-check branch. When all sub-branches have been merged into this one, I will update this description and request an additional round of reviews.
References

There are no test in this PR, but there are two additional PRs based off of this branch which contain tests:
#2065 - Batch Check Unit tests
#2066 - Batch Check Integration tests
Review Checklist

[ ] I have clicked on "allow edits by maintainers".
[ ] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[ ] The correct base branch is being used, if not main
[x] I have added tests to validate that the change in functionality is working as expected

If you haven't done so yet, we would appreciate it if you could star the OpenFGA repository. :)

example trace since some people have asked. This was a batch of 4 where one check was invalid:

BatchCheck specific info:


When I run python lstm_classifier.py I get error: No such file or directory: 'embeddings/saved_200d_word_embeddings.pkl

Do I need to add some files for word embedding to your code?

Hi @ZahraAskarzadeh
Sorry for the delayed response.
Can you provide more details about this like your directory structure or files already generated? You are probably missing an embeddings folder in the required directory. If not, try deleting the vocab.pkl file, and run the lstm_classifier.py again. Ideally, you only need to download the original 6B glove vector file of the required dimension from here, and those embedding files should be created automatically.

Now it works, thanks

Hi @ZahraAskarzadeh
Thanks for letting me know. I am closing this issue. Feel free to open up a new one if you hit up on something.

Gaurav.

When I run python lstm_classifier.py I get error:  Can't get attribute 'Vocabulary' on <module 'main' from 'lstm_classifier.py'>


trackingNtuple: added used cluster masks and merge final track collection

added used cluster masks
(correspond to skipClusters for a given track building interation), read all available cases by default: detached and lowPt Quad (pixel seeds) ; highPt,lowPt, and detached Triplet (pixel seeds); pixelPair; mixedTriplet, pixelLess and tobTec
add a customiseTrackingNtupleMergeIters method to save details for tracks from all iterations for which seeds are available. This should allow separate per-iteration validation.

@makortel @cerati
please check the implementation if it roughly makes sense to you.
Thank you.

roughly it does make sense...

Looks reasonably to me.
My only concern is that the index of each iteration is set in the configuration as a number (IIUC), which could lead to easy mistakes. Using the track iteration name in the configuration, and mapping that to index in the constructor would be safer in that respect, but it would be less flexible. Certainly fine for now.


[webportal doc] webportal doc broken link

need fix broken link and direct to specific version doc

Potential proposal:

replace the doc here with the accordingly MD files of each release
Or just embed the GIT document into this page to avoid diverge
How about click  this Getting Started button is directly open a new page of specific version of pai job md page (such as, https://github.com/Microsoft/pai/blob/v0.8.1/docs/job_tutorial.md), and not render it in pai webportal.

The root cause is that GitHub auto generated anchor is difference from marked generates. So we should clarify the anchor generating logic of the whole doc.

currently this doc will use some relative path for refer's pai's other doc.
such as:

and table of content also not work:


Add font setting

Type: Feature Request

 It would be nice to have a font selector.

Our font is based on the editor font setting that has a setting ID of editor.fontFamily. You should be able to use this and modify the font!
Thanks! Closing the issue for now, but please re-open, or open another issue, if this doesn't meet your needs.

Our font is based on the editor font setting that has a setting ID of editor.fontFamily. You should be able to use this and modify the font!
Thanks! Closing the issue for now, but please re-open, or open another issue, if this doesn't meet your needs.

I think we should have some settings that independent from vscode editor.fontFamily, maybe a different font in serial monitor.


For suggestion purposes.

I think the feature should be added for OBS. -----> Stream Proof

Unfortunately due to the way the trainer is setup as an internal trainer it can't be made stream proof. We are drawing directly to the game view and not to an external layer that can be hidden from screen capture.

See #494


Add "Replace ALL" option to Quick Fix menu

Adds "[woke] Click to replace ALL with ..." option to the Quick Fix menu to replace all occurrences of the violation with the selected alternative.

Released in https://github.com/get-woke/vscode-woke/releases/tag/v0.1.0


Shutdowner: Support calling from fx.Invoke

App.Start nils out the "last" signal recorded by signalReceivers,
which it otherwise broadcasts to waiters if it was already received.
This is unnecessary especially because there's a discrepancy in behavior
of using App.Start vs App.Run when shutting down from fx.Invoke.
Given a program that calls Shutdown from fx.Invoke,
when we do:
app := fx.New(...)

The shutdowner has already sent the signal, and signalReceivers has
already recorded it.
At that point, whether we call App.Start or App.Run changes behavior:

If we call App.Run, that calls App.Done (or App.Wait after #1075),
which gives it back a channel that already has the signal filled in.
It then calls App.Start, waits on the channel--which returns
immediately--and then calls App.Stop.
If we call App.Start and App.Wait, on the other hand,
Start will clear the signal recorded in signalReceivers,
and then App.Wait will build a channel that will block indefinitely
because Shutdowner.Shutdown will not be called again.

So even though App.Run() and App.Start()+App.Wait() are meant to be
equivalent, this causes a serious discrepancy in behavior.
It makes sense to resolve this by supporting Shutdown from Invoke.
Refs #1074

Opened upstream: https://github.com/uber-go/fx/pull/1076


removeAction doesn't work if the active state is singular (not an array)

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request
[ ] Other... Please describe:

Current behavior

When trying to remove an entity that has been previously marked as active, the following error occurs:
ERROR TypeError: state.active.filter is not a function
I think the issue lies in that the code (found in the subsequent link) assumes that the state stores the active property as an array.
https://github.com/datorama/akita/blob/master/akita/src/entityStore.ts#L457
Below is a screenshot of what my store looks like the line above where the error occurs. As noted above, the active property is singular here, and not an array, and therefore does not have the filter method on its prototype.

Expected behavior
The entity store properly removes the active status from the entity that has the passed in id.
Minimal reproduction of the problem with instructions

Mark an entity as active with setActive(...) (after extendingActiveState)
Try to call removeActive(...)

What is the motivation / use case for changing the behavior?
It seems to be a valid use case as the active property supports both a singular id and an array of ids.
Environment

Angular version: 8.1.1

Browser:
- [x] Chrome (desktop) version 76.0.3809.100
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX

For Tooling issues:
- Platform:  Windows

@jkossis Basically this function was only supported for multi-active (as mentioned in the docs) but in order to be consistent, I added support for singe active as well.
Available from v4.9.6

@shaharkazaz I'm experiencing the same issue in 5.2.2, any idea why?

I'm in this versions:
    "@datorama/akita": "^5.2.2",
    "@datorama/akita-ng-entity-service": "^5.0.0",
    "@datorama/akita-ngdevtools": "^5.0.3",


Etcd attempts to listen on unavailable, non-loopback IP address by default

When running etcd in an environment where DNS host resolution is preferred over /etc/hosts, or when localhost is not defined in /etc/hosts, the default listen URLs defined in embed/config.go prevent etcd from starting correctly.
For example, this issue occurs with the official kubernetes etcd image and kubeadm:
# docker run -it --rm gcr.io/google_containers/etcd-amd64:3.1.11 etcd --listen-client-urls=http://<IP_ADDRESS>:2379 --advertise-client-urls=http://<IP_ADDRESS>:2379 --data-dir=/var/lib/etcd --debug=true
2017-12-28 16:41:51.630402 I | etcdmain: etcd Version: 3.1.11
2017-12-28 16:41:51.630451 I | etcdmain: Git SHA: 960f4604b
2017-12-28 16:41:51.630455 I | etcdmain: Go Version: go1.8.5
2017-12-28 16:41:51.630459 I | etcdmain: Go OS/Arch: linux/amd64
2017-12-28 16:41:51.630464 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4
2017-12-28 16:41:51.631377 C | etcdmain: listen tcp <IP_ADDRESS>:2380: bind: cannot assign requested address

<IP_ADDRESS> is the IP address for localhost.<search-path-domain>. I am currently working around this by specifying --listen-peer-urls=http://<IP_ADDRESS>:2380 myself, but I would imagine that <IP_ADDRESS> is strictly better.

Hi @andremarianiello can you please explain what you are attempting to accomplish? I think that will help us help you.

@hexfusion I am using kubeadm to create a kubernetes cluster. Kubernetes uses etcd to persist state, but etcd fails to start correctly because of the described issue, thus my cluster doesn't work without the workaround I mentioned.

If you know exactly what interface/ip you want to listen on, why not
provide it explicitly? Also can you investigate where the ip comes from and
why etcd tries to bind on it
On Thu, Dec 28, 2017 at 2:42 PM andremarianiello<EMAIL_ADDRESS>wrote:

@hexfusion https://github.com/hexfusion I am using kubeadm to create a
kubernetes cluster. Kubernetes uses etcd to persist state, but etcd fails
to start correctly because of the described issue, thus my cluster doesn't
work without the workaround I mentioned.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/coreos/etcd/issues/9070#issuecomment-354346347, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AERby2MIWeidYEDD5RKnWgneTVxG6jeFks5tE-82gaJpZM4ROfDi
.

@xiang90  As I mentioned in the issue, I am working around this problem by explicitly providing the IP.
The IP comes from my DNS server. There is a record that maps "localhost.<search-path-domain>" -> <IP_ADDRESS>. etcd tries to bind to it because "localhost" is the default peer URL https://github.com/coreos/etcd/blob/master/embed/config.go#L55.

what I am saying is that if you know the ip you should provide it
explicitly. Also you always want to do that for clustered etcd, which is
the most common use case. In terms of local host binding, I do not feel
strong feeling about it, defaulting it to <IP_ADDRESS> might be ok. But I
remembered there is something we ended up with using localhost. I do not
think we would spend the effort to check the feasibility to select which to
bind though.
On Thu, Dec 28, 2017 at 2:55 PM andremarianiello<EMAIL_ADDRESS>wrote:

@xiang90 https://github.com/xiang90 As I mentioned in the issue, I am
working around this problem by explicitly providing the IP.
The IP comes from my DNS server. There is a record that maps
"localhost." -> <IP_ADDRESS>. etcd tries to bind to it
because "localhost" is the default peer URL
https://github.com/coreos/etcd/blob/master/embed/config.go#L55.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coreos/etcd/issues/9070#issuecomment-354348769, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AERbyxIpfNRxfoGw-OT__XfRwkCIOstzks5tE_IvgaJpZM4ROfDi
.

@xiang90

what I am saying is that if you know the ip you should provide it explicitly

I already stated that I'm doing that, so I guess I am misunderstanding what you are trying to say.

I do not feel strong feeling about it, defaulting it to <IP_ADDRESS> might be ok.

This is what I want.

But I remembered there is something we ended up with using localhost.

If you remember the reasoning for that I would be interested in hearing it.

@andremarianiello thanks for your details.  It seems to me that localhost is a flexible default. Assuming IPv4 in my opinion is no saner and less flexible then the current localhost. As you have shown localhost can mean many things.
https://tools.ietf.org/html/rfc6761#section-6.3
Users may assume that IPv4 and IPv6 address queries for localhost
names will always resolve to the respective IP loopback address.

Changing that assumption would certainly cause backwards incompatability. In the case you outlined I think that overriding your ENV's localhost with <IP_ADDRESS> is a reasonable one.
Defer to @xiang90

@hexfusion Thanks for looking at this. I will report this issue to the parties responsible for the docker image I am using instead.


Add missing createsuperuser in local VM instructions

This is correctly present in the developer installation instructions.

Motherfuck I already told u not to message me ain’t i?
Why u irritating me..
Plz stop messaging me.
From: Dan Blanchard<EMAIL_ADDRESS>Sent: Friday, February 05, 2016 1:20 AM
To: rtfd/readthedocs.org
Subject: [readthedocs.org] Add missing createsuperuser in local VM instructions (#1976)
This is correctly present in the developer installation instructions.

You can view, comment on, or merge this pull request online at:
https://github.com/rtfd/readthedocs.org/pull/1976
Commit Summary

Add missing createsuperuser in local VM instructions

File Changes

M docs/custom_installs/local_rtd_vm.rsthttps://github.com/rtfd/readthedocs.org/pull/1976/files#diff-0 (1)

Patch Links:

https://github.com/rtfd/readthedocs.org/pull/1976.patch
https://github.com/rtfd/readthedocs.org/pull/1976.diff

—
Reply to this email directly or view it on GitHubhttps://github.com/rtfd/readthedocs.org/pull/1976.

Thanks!


Waltz feature 3936 future flows

merge from master

This pull request introduces 1 alert when merging 0b66384c879ca119806a8aba75298364c26c31d6 into 037eb912e743fd34958be35eeeb12a19627a948a - view on LGTM.com
new alerts:

1 for Unused variable, import, function or class

Comment posted by LGTM.com


[Flixel] Volume doesn't follow application volume

When a video is playing, adjusting it in volume mixer will have the video volume adjust for a split second before going back to Flixel's set volume.
https://github.com/MAJigsaw77/hxvlc/assets/15317421/037bc916-5cef-4214-ace9-cd3a8f408536

As you can see, on the flixel backend we are automatically handling the volume according to flixel's sound global volume.

But you can prevent that by setting autoVolumeHandle to false.

Maybe there might be a issue with the mute variable.

Try the latest commit on the repo and see if it works now.

Try the latest commit on the repo and see if it works now.

It's kinda odd to me tbh, i never seen something like this before.

Ok so, after doing some research, this issue might actually be impossible to fix as we are constantly setting the volume of the libvlc media player to the flixel sound global volume.

Ok so, after doing some research, this issue might actually be impossible to fix as we are constantly setting the volume of the libvlc media player to the flixel sound global volume.

Apparently it might be related to this issue https://forum.videolan.org/viewtopic.php?t=142860

https://github.com/MAJigsaw77/hxvlc/commit/7e1f85bcb9271d686588572ee98d6c777d58b8cb

This ended up fixing this issue.


Question about (onError) property

Hi there,
Can you give an example of using this property? Is it possible for example to write some error message if consumer doesn't enter anything in the input? (e.g. min="1")

For anyone searching for this, I came up with this - rather crude but worked for me -
<inline-editor
  (onSave)="column.hasError = false; saveEditable($event)"
  (onError)="column.hasError = true"
  max="10">
</inline-editor>

<span *ngIf="column.hasError">ERROR! Max is 10</span>


[ConstraintSystem] Fix mistake involving comparison to extension.

We need to compare the Decl for the nominal we're extending, not the
extension decl itself.

@swift-ci Please smoke test and merge


12 Sep 2024 - A11y Theme Builder Meeting Minutes

Date
2024-09-12 - 09:15am EDT
Zoom info

Meeting link: https://zoom.us/j/91013899295?pwd=Qnh5UVN1aUZ4ak9tODgvMVNLNUg5Zz09
Meeting id: 910 1389 9295
Password: 123225
Call-in: +1<PHONE_NUMBER> US (New York) (Check calendar for more options)

Untracked attendees

Fullname, Affiliation, (optional) GitHub username
...

Meeting notices

FINOS Project leads are responsible for observing the FINOS guidelines for running project meetings. Project maintainers can find additional resources in the FINOS Maintainers Cheatsheet.

All participants in FINOS project meetings are subject to the LF Antitrust Policy, the FINOS Community Code of Conduct and all other FINOS policies.

FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact<EMAIL_ADDRESS>with any questions.

FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

Agenda

[x] Convene & roll call (5mins)
[x] Display FINOS Antitrust Policy summary slide
[x] Review Meeting Notices (see above)
[x] Approve past meeting minutes
[x] Community WG Update (@PaulaPaul)
[x] Mentorship project update (@omesh-omg)
[x] AOB, Q&A & Adjourn (5mins)

Minutes

No Community WG update available
Omesh discussed mentorship project

starting to feel the limitations of the SDK on UI implementation

we need to start opening issues on the SDK to better understand what functionality doesn't exist that we need
much of this already in Lise's proposals on the Discussions pages

Omesh had questions on user flows and some of the wireframes

discussed with Aaron and Lise after Theme Builder agenda completed

Discussed merits, priorities on new issues from new contributors in project board

Action Items

[ ] (from last week) Lise to get Omesh and Aaron CSS and responsive breakpoints and behaviors for #820 design

will provide CSS for framework only for now

[ ] (from last week)Aaron and Evan need to break the Epic that will be worked on by the mentee into detailed and digestable issues
[ ] (from last week) Lise to work with Aaron to update video in mkdocs documentation
[x] (from last week) we need to find a location to keep Keith's recording.  Waiting on FINOS.
[ ] (from last week) Lise and Paula to meet re: Theme Builder at Grace Hopper Open Source Day
[ ] (from last week) Cody to look at pre-push hook
[x] Aaron to follow up with author of #1025
[ ] Aaron to follow up with author of #1026

the 09/12 call was attended by:
Kathleen Burkhardt - Black Rock
Lise Noble - DFS
Aaron Reed - DFS
Omesh Kumawat

Approved in today's call


Fix docker image

Fix #1099

@chevdor i'm not following how this fixed the build issue that you were seeing. i am pretty sure downloading cargo from the edge repo would functionally equivalent to using alpine:edge for this case.


Constrain and validate published & created years in work edit form

Add validation on the client-side backed with a server-side validation such that only four-digit years are allowable.

Years should be constrained between 1000 and the current year. Future years should not be allowed.


Loading a saved Bidirectional LSTM is broken in latest version

Here is some code to reproduce:
from keras.models import Sequential, load_model
from keras.layers import Bidirectional, Dropout, Dense, LSTM
import numpy as np
import keras

print(keras.__version__)

SEGMENT_TIME_SIZE=10
N_FEATURES=10
N_CLASSES=10
N_HIDDEN_NEURONS=10

model = Sequential()
model.add(Bidirectional(LSTM(N_HIDDEN_NEURONS,
                        return_sequences=True,
                        activation="tanh",
                        input_shape=(SEGMENT_TIME_SIZE, N_FEATURES))))
model.add(Bidirectional(LSTM(N_HIDDEN_NEURONS)))
model.add(Dropout(0.5))
model.add(Dense(N_CLASSES, activation='sigmoid'))
model.compile('adam', 'binary_crossentropy', metrics=['accuracy'])

model.fit(np.random.rand(10, SEGMENT_TIME_SIZE, N_FEATURES), np.random.randn(10, N_CLASSES))

model.save('model.h5')
model = load_model('model.h5')

Everything works perfectly up to load_model(), which throws ValueError: You are trying to load a weight file containing 3 layers into a model with 0 layers. Right now it seems this error only happens when using Bidirectional()

You should probably pass input_shape to Bidirectional, not to LSTM, as can be seen from the examples on this page.
I.e.,
model = Sequential()
model.add(Bidirectional(LSTM(N_HIDDEN_NEURONS,
                        return_sequences=True,
                        activation="tanh"),
                        input_shape=(SEGMENT_TIME_SIZE, N_FEATURES)))

That's from an older version of keras.


[Styles] Foundation of proxy approach for the expressive theme

User Story

As a [user role below]:
IBM.com Library developer

I need to:
have the footprint/facility for proxying carbon's styles

so that I can:
begin applying the expressive theme across all IBM.com Library components/patterns and Carbon Components within my application

Additional information

after working with the Carbon team, the initial approach of theming within Carbon core has more fundamental issues which will require more strategy in approach
Carbon team suggested a way to "proxy" the carbon packages within IBM.com Library, where the theme can be applied through our library before adopters begin using carbon components. This is essentially an override layer, but within IBM.com Library
#709 has been created to bring in the carbon packages as package dependencies, which will aid in locking down carbon versions that will be proxied
Will need to tap Josh Black from Carbon team for consultation/support to ensure that the approach is aligned with eventually "ejecting" and going with the core approach with Carbon once that is ready
Can possibly choose an example component that can be themed using this approach
May want to consider a separate storybook of carbon components using the expressive theme, perhaps a separate section within the react storybook rather than a new one

Acceptance criteria

[ ] Foundation approach for the proxied style theme
[ ] Storybook of Carbon components, ready to take in the expressive theme

@joshblack pinging you here to track based on what we discussed, I added some additional thoughts on this after our meeting.
cc: @RobertaJHahn @wonilsuhibm @ljcarot


Z-Way improvements (thermostat etc.)

follow up of this https://github.com/SphtKr/homebridge/commit/656a8057acbd177995f5a3dd9b63262082387d2b
and
https://github.com/nfarina/homebridge/pull/191
and
json of stellaZ radiator valve thermostat
https://gist.github.com/luxus/3232fbedc09e8f1eff09#file-devices-json-L82
@SphtKr
the:
        "thermostat",
        "switchBinary",
        "sensorBinary.Door/Window",
        "sensorMultilevel.Temperature",
        "switchMultilevel"

works as well

now it shows even the battery level :dancer:
eve understands all characteristics
there is still one metric i don't see.
      {
        "creatorId": 1,
        "deviceType": "switchMultilevel",
        "h": -1703465104,
        "hasHistory": true,
        "id": "ZWayVDev_zway_11-0-38",
        "location": 1,
        "metrics": {
          "icon": "multilevel",
          "title": "Wohnzimmer Ventil",
          "level": 44
        },

if i am in heat mode i can't even change it. but it would nice if could see it because it shows how open the valve is.
i don't have any additional z-wave items(sending back my lc-13 thermostat from danfoss). so thats the only one i can test!

Aha! Well I think you have the Eve app update that came out today to thank for the battery status...finally! I've been trying to get that to work for weeks. I guess it wasn't me!
What...on earth does that switchMultilevel do? Is that fan speed? My German is very rough.

hi @SphtKr,
sorry for the late answer.
i see you did a lot work on the z-way integration. the wiki sounds awesome..
i wish there would be such a integration in home-assistant.io (i learn to program at the moment to do just this)
back to topic.
the switchMultilevel change the level of the valve that controls how much heated water go trough
![german heater]
(http://www.heizsparer.de/wp-content/uploads/images/heizkoerper-glieder-irina-fischer-fotolia.jpg)
for the stellaz it just works in the right operation mode
Operating the device
The device does not allow any local operation on the device itself but control via Z-Wave radio from a Z- wave controller only. The thermostat has four operating modes. They are switched wirelessly as well:
1. Frost Protection: The temperature in the room will be regulated to about 6 °C.
2. Comfort: The temperature in the room will be regulated to a comfortable level. On factory default this is 22 °C but the value can be adjusted by the respective Z-Wave command 'Thermostat Setpoint' to a
value between 0 °C and 50 °C. This mode is active on factory default.
3. Energy Saving: The temperature in the room will be regulated to a energy saving level. On factory
default this is 18 °C but the value can be adjusted by the respective Z-Wave command 'Thermostat
Setpoint' to a value between 0 °C and 50 °C.
4. Direct Valve Control: This mode allows the direct control of the valve as percentage value of
opening using the Z-Wave command class 'Switch Multilevel'. The regulation of a temperature within the device is deactivated.
Additionally to regulating the temperature the valve control is reporting the measured temperature on request (using the command class 'Sensor Multilevel' implementing communication pattern 3). It may happen that the reported temperature will remain 0 °C for some minutes due to calibration.
After the first regular wakeup the temperature value will however be correct. Switching between the four modes is accomplished using the Z-Wave command classes 'Thermostat Mode' and 'Basic'.
The following mappings apply

Frost Protection: BASIC SET 0x01, THERMOSTAT MODE SET 0x00
Energy Saving: BASIC SET 0x00, THERMOSTAT MODE SET 0x0b
Comfort: BASIC SET 0xff, THERMOSTAT MODE SET 0x01
Direct Control: BASIC SET 0xfe, THERMOSTAT MODE SET 0x1f

http://manuals.zwaveeurope.com/make.php?lang=en&type=&sku=EUR_STELLAZ&pdf=1
comfort mode is default(HEATING) i just set a set point temp. and done.
in the direct control mode it would allow me to change switchMultilevel and just activate heating until i say stop (0-100%)

@luxus Glad you like what I've got so far! Here's what I'd recommend trying:
Go to the Z-Way web UI and add the following tag to the switchMultilevel device (not the thermostat!):
Homebridge.Accessory.Id:StellaZValve1

I think that will be sufficient. It will cause the valve control to be split off into its own Accessory, which should then be recognized as a Lightbulb, which will allow you to control the value--even with Siri. (Careful, if you say "turn on the lights", it may get set to full open! I don't know for sure.) Which is not ideal, but it should at least get it bridged and let you control it.
Right now the Z-Way server doesn't expect a switchMultilevel to be included in a Thermostat, and the only type of switchMultilevel it knows about is a Lightbulb/dimmer. I could potentially add it but it might be tricky...without some tracing and debugging, it might break the bridge's compliance and without one of the StellaZ's of my own, it's hard to test. Part of the trick is, when it encounters a switchMultilevel it adds two characteristics--the Brightness and an On Characteristic--which might cause a problem with the Thermostat. I can give it a try, but try the above and see if it works for your use-case.
If that doesn't do it, you might try adding the following two tags and see if they help:
Homebridge.Service.Type:Lightbulb
Homebridge.IsPrimary

But both of those things should be inferred. You can also try:
Homebridge.Homebridge.Characteristic.Description:Valve Control

...which might make it be labeled as such instead of "Brightness", but I haven't actually observed this value being displayed in any HomeKit app.

i was able to add it as a additional lightbulb accessory with the first tag, the 3. tag don't change anything
without being able to change the mode of the of the thermostat it makes no sense at the moment.
for now i just try to add the valve value as a additional info to the grouped thermostat(like battery level)..
.. i thought i can use the Homebridge.Accessory.Id: tag to add it to the existing accessory, but i don't get it working yet. i will try it tomorrow again

Ah, I see. Well, making it possible to control the mode is harder, for two reasons.
First is that HomeKit doesn't natively have a Characteristic for that kind of mode setting, it has only TargetHeatingCoolingState and CurrentHeatingCoolingState, which have only really 3 values: off = 0, heat = 1, and cool = 2. And you can't really create a custom Characteristic that is an "enum" type like this because your app (Insteon+ for instance) won't know what the values mean--custom Characteristics like that are most useful when you are making your own iOS app for the device. In theory, I could make a custom Characteristic that was just a number, and you could just remember which numeric values are what and you could set the number value you want. Unfortunately, I tried a custom Characteristic over in the YamahaAVR platform and none of my iOS apps really knew what to do with it--those that would even show it could not set it, for instance.
Second is that I'm not certain that Z-Way's VDev API would let me set the value either. The API Documentation says that there is a setMode parameter you can send to a thermostat, but I'm not 100% sure that would send commands to the StellaZ's mode parameter--but it might. On the other hand, I've read things in the RaZBerry forums about that parameter not working as expected :-/. It might work though, and you could try it. Try making the following HTTP calls to your Z-Way server...something like this:
http://yourzwayaddress:port/ZAutomation/api/v1/devices/ZWayVDev_zway_8-0-67-1/command/setMode?mode=0

(Note: you will need to hit that address from the browser where you have already logged into the Z-Way Web UI...unless you want to do the authentication manually with curl or something.)
In theory, hitting the above address should set your thermostat to "Frost Protection" mode. Changing mode=0 to mode=1 should set "Comfort" mode, and 11 and 31 should be "Energy Saving" and "Direct Control".
If that works, I may be able to hack something in to support that mode, but using it from iOS won't be pretty (probably no Siri control and you'd have to remember to set the number "31" to get direct control). Might be worth it though if it works, I know this is a popular device.


[FIX] Avoid using shell variable names that are likely to clash

Is there an existing issue for this?

[X] I have searched the existing issues

New feature
The current README instructions expect variables in the shell to be called USERNAME and PASSWORD for configuring the docker compose environment. That's not a good idea, because these shell variable names are likely to be already set by some other configuration, leading to the need to first unset them (as outlined as well in the readme).
For example, in the z-shell, USERNAME is set to $USER by default (see https://linux.die.net/man/1/zshparam).
A better solution would be to use variable names that are less likely to clash in this way (or find some other way to override the shell primacy for these variables).
E.g.:
GRAPH_USERNAME and GRAPH_PASSWORD
Unclear documentation
When fixed, update the corresponding warning in the documentation: https://www.neurobagel.org/documentation/start/#launch-the-api-and-graph-stack

Suggest explicitly setting NEUROBAGEL_* prefixes

Updated the spec following @gdevenyi's suggestion


Create an HTTP Service in SAP BTP ABAP Environment

Tutorials: https://developers.sap.com/tutorials/abap-environment-create-http-service.html
Write here how you think we can improve the tutorial ...
Hi there. Thanks for the tutorial.
I think there is a really minor issue.
For this line of code,  |
 Today, the date is:  { get_system_date }| &&, it should be system_date rather than get_system_date.
  METHOD get_html.

    DATA(user_formatted_name) = cl_abap_context_info=>get_user_formatted_name( ).
    DATA(system_date) = cl_abap_context_info=>get_system_date( ).

    ui_html =  | \n| &&
    | \n| &&
    |<title>General Information</title> \n| &&
    |
 Hello there, { user_formatted_name }
 \n | &&
    |
 Today, the date is:  { get_system_date }| &&
    |
 | &&
    | \n| &&
    | | .

  ENDMETHOD.

Hi Nov05,
I think you're right. I'll just check this and update accordingly.
Thanks for getting in touch.
Best wishes,
Julie.


Problem with data persistance, noupdates to the underlying textarea

Hi, I'm encountering some issues with the TinyMCE plugin.
I'm using Ajax to submit the form, but in this case, the underlying textarea is never updated. Additionally, I created a tinymce.yaml file in the packages folder, but the configurations there seem to be completely ignored.
How can I update the plugin configuration to ensure it's applied properly?
How can I modify the TinyMCE JavaScript initialization to customize its behavior, such as ensuring the content is saved to the textarea on change? For example, I want to do something like this:
 tinymce.init({
        setup: function(editor) {
            editor.on('change', function() {
                editor.save();  // This ensures the content of TinyMCE is saved to the textarea
            });
        },
    });

Hi there!
For the tinymce.yaml config file, I'll quote what I just replied in #16 :

I have two suggestions here.
First one would be to try switching to emileperron/tinymce-bundle - it is a fork of this bundle with some bugfixes and improvements (for context, I am the original author of this here bundle as well, but left the organisation and it is now not really being maintained as an open-source project anymore).
Second thing, which might seem obvious but could be the issue if you only recently created the tinymce.yaml config file: try clearing your cache with a good old bin/console cache:clear.

For the other issue regarding data persistence, you should be able to trigger a save of every TinyMCE instance on the page by calling tinymce.triggerSave(), at which point the textarea should be updated.
Alternatively, If you just want to retrieve the value in Javascript, you can get the value property on the <tinymce-editor> element at any time, without needing to trigger a save first. Ex.:
const editor = document.querySelector('tinymce-editor');
const myContent = editor.value;

console.log(myContent);

Hope that helps!


Updating price for ... "player"

Hello, i have a problem with still updating price for some player. I tried many players, but error occurs in every case. Thanks for help.
from logs:
[17:59:45] Updating unassigned...
[17:59:45] Updating watchlist...
[17:59:49] Updating tradepile...
[17:59:54] Updating price for Cesc Fàbregas...

Most likely a temp ban from searching auctions.  Are you able to search on the web app?


Chart crashes

Describe your bug here.
Crashes every time I try to load a chart If anyone knows how to fix the problem, please reply with how to fix the issue.

Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
nothing

Probably because the chart ur trying to load doesnt exist, or u made some kind of typo when loading the json, can u send it?


Minimal test cases don't have #includes

The inclusion of an #include means that the test case

is not minimal, and
is harder to reproduce the bug with, since not everyone has the same headers (or versions of headers) on their system.

r? @emilio

:pushpin: Commit 1f323cf has been approved by emilio

@bors-servo r+
Thanks!

:hourglass: Testing commit 1f323cf9795bef5fb5861ef299015af3eedb8ae9 with merge 3bb248ba247c2b8b3433c03102276b925b5025d0...

:sunny: Test successful - status-travis
Approved by: emilio
Pushing 3bb248ba247c2b8b3433c03102276b925b5025d0 to master...


fix(extension): update chevron icon in user menu [LW-100045]

Checklist

[x] https://input-output.atlassian.net/browse/LW-10045

Proposed solution
This task ensures that the chevron icon in user menu is updated to reflect its state correctly.

Changes unknown
when pulling 0e6c7aeb9c2b12bf2f863b39ce0c09f46b339132 on fix/lw-100045-chevron-icon-in-user-menu-not-updated
into ** on main**.


MAN-3694 -- Add a waitUntilSettled function that waits for an element to finish updating

https://desire2learn.atlassian.net/browse/MAN-3694
This PR adds a public waitUntilSettled function that more reliably waits for an element to finish updating. Our team intends to use this in multiple repos to help reduce vdiff flake.

Going to just copy paste it in d2l-outcomes instead


c10::CUDAError happens Occasionally

`terminate called after throwing an instance of 'c10::CUDAError'
what():  CUDA error: driver shutting down
Exception raised from query at /opt/pytorch/pytorch/aten/src/ATen/cuda/CUDAEvent.h:95 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) + 0x6c (0x7f3c125c863c in /opt/conda/lib/python3.8/site-packages/torch/lib/libc10.so)
frame #1: c10d::ProcessGroupNCCL::WorkNCCL::finishedGPUExecutionInternal() const + 0x11d (0x7f3c161b911d in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #2: c10d::ProcessGroupNCCL::WorkNCCL::isCompleted() + 0x78 (0x7f3c161bc9b8 in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #3: c10d::ProcessGroupNCCL::workCleanupLoop() + 0x158 (0x7f3c161bed68 in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #4:  + 0xd6de4 (0x7f3c69049de4 in /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
frame #5:  + 0x9609 (0x7f3cab101609 in /usr/lib/x86_64-linux-gnu/libpthread.so.0)
frame #6: clone + 0x43 (0x7f3caaec3293 in /usr/lib/x86_64-linux-gnu/libc.so.6)
terminate called after throwing an instance of 'c10::CUDAError'
what():  CUDA error: driver shutting down
Exception raised from query at /opt/pytorch/pytorch/aten/src/ATen/cuda/CUDAEvent.h:95 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) + 0x6c (0x7f00ebf6f63c in /opt/conda/lib/python3.8/site-packages/torch/lib/libc10.so)
frame #1: c10d::ProcessGroupNCCL::WorkNCCL::finishedGPUExecutionInternal() const + 0x11d (0x7f00efb6011d in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #2: c10d::ProcessGroupNCCL::WorkNCCL::isCompleted() + 0x78 (0x7f00efb639b8 in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #3: c10d::ProcessGroupNCCL::workCleanupLoop() + 0x158 (0x7f00efb65d68 in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #4:  + 0xd6de4 (0x7f3c69049de4 in /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
frame #5:  + 0x9609 (0x7f3cab101609 in /usr/lib/x86_64-linux-gnu/libpthread.so.0)
frame #6: clone + 0x43 (0x7f3caaec3293 in /usr/lib/x86_64-linux-gnu/libc.so.6)
terminate called after throwing an instance of 'c10::CUDAError'
what():  CUDA error: driver shutting down
Exception raised from query at /opt/pytorch/pytorch/aten/src/ATen/cuda/CUDAEvent.h:95 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) + 0x6c (0x7f00ebf6f63c in /opt/conda/lib/python3.8/site-packages/torch/lib/libc10.so)
frame #1: c10d::ProcessGroupNCCL::WorkNCCL::finishedGPUExecutionInternal() const + 0x11d (0x7f00efb6011d in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #2: c10d::ProcessGroupNCCL::WorkNCCL::isCompleted() + 0x78 (0x7f00efb639b8 in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #3: c10d::ProcessGroupNCCL::workCleanupLoop() + 0x158 (0x7f00efb65d68 in /opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
frame #4:  + 0xd6de4 (0x7f01429f0de4 in /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
frame #5:  + 0x9609 (0x7f0184aa8609 in /usr/lib/x86_64-linux-gnu/libpthread.so.0)
frame #6: clone + 0x43 (0x7f018486a293 in /usr/lib/x86_64-linux-gnu/libc.so.6)
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: -6) local_rank: 2 (pid: 116818) of binary: /opt/conda/bin/python
Traceback (most recent call last):
File "/opt/conda/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/opt/conda/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/opt/conda/lib/python3.8/site-packages/torch/distributed/launch.py", line 191, in
main()
File "/opt/conda/lib/python3.8/site-packages/torch/distributed/launch.py", line 187, in main
launch(args)
File "/opt/conda/lib/python3.8/site-packages/torch/distributed/launch.py", line 173, in launch
run(args)
File "/opt/conda/lib/python3.8/site-packages/torch/distributed/run.py", line 688, in run
elastic_launch(
File "/opt/conda/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 131, in call
return launch_agent(self._config, self._entrypoint, list(args))
File "/opt/conda/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 259, in launch_agent
raise ChildFailedError(
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:

       examples/train_gpt.py FAILED

==================================================
Root Cause:
[0]:
time: 2022-12-07_05:33:08
rank: 2 (local_rank: 2)
exitcode: -6 (pid: 116818)
error_file: <N/A>
msg: "Signal 6 (SIGABRT) received by PID 116818"
Other Failures:
[1]:
time: 2022-12-07_05:33:08
rank: 3 (local_rank: 3)
exitcode: -6 (pid: 116819)
error_file: <N/A>
msg: "Signal 6 (SIGABRT) received by PID 116819"

`
torch version: 1.10
cuda version: 11.4
Have u ever meet this problem when use merak train gpt2? Any ideas would be appreciated

Thanks for using merak! This looks like related to NCCL, which we think could be network issue. We meet this kind of issue rarely but it indeed exits.

Thanks for quickly reply!
I will leave this issue open if the problem is figured out in the future，since it happens quite frequently here. I have tried to run the program in anthoer A100 machine，the problem still exists.

I was mostly able to eliminate this idea by sleeping three seconds before I terminate training. I was guessing these errors were from CUDA/NCCL resources not perfectly cleaned up at some layer of the code.