Buttons on the top of the page

Hey, I really love what you did here and I have been trying to implement parts of the setup into my own vault. However, I can't get the MOC buttons at the top to work. No matter what I do they are shown as a list even when I download the example vault and open it without changing anything.
Does somebody have an idea as to what the issue is? I really like that specific part of the setup

Open the example vault with Obsidian and take a screenshot of the homepage. I'll have a look.

This is what the homepage looks like for me, without having changed anything

Hmmm strange. try downloading another vault in Chinese and see.

I tried with some of the other vaults now, but either get the same issue or it can't even find the homepage file when pressing the homepage button in the sidebar.
Where would I need to enable the css snippet? Maybe that really is the issue and I just haven't found the right setting yet

I just found it. My lack of experience with snippets held me back. I didn't know about the page within the settings in which you can enable/disable specific snippets. Thank you for trying to help this quickly and sorry that it was my mistake in the end 😅

ok solved then


Crowdsourcing site

This might be useful:

shows latest tweets with very high and very low score
users can click +/-
stuff with many votes into one direction and nearly none into the other comes into the rating DB

As it would also provide quite some entertainment, I guess you'd get enough users for this. :)

This actually started out as a twitter bot, and I do have an account that I plan on automating (@thats_wss). But I would prefer to keep use-case suggestions out of github issues, thanks. :)


feat: i3 wm color scheme

@andis-sprinkis - Can you check the conflict?

@Mofiqul I have resolved the conflict now.


Updated binance market data using script provided in PR #1550 by @cmroche

Fix for #1678
Updated binance market data using the script provided in PR #1550 by @cmroche

Can binance market data using the script be done automatically when using import option form the Gekko UI? I think that would be great. If it hasn't been done, l'd love to do it myself.

No, you have to manually run the update file.
The reason we do it like this is so that we can make sure Gekko only works with markets that we have tested and seen. We could also dynamically look up markets whenever you start Gekko, but that defeats the purpose.

What do you mean by tested and seen? Binance keeps adding new coins to the exchange, Gekko should support those trading pairs isn't it? I thought that was the purpose of the script.
It's not a ideal to run it every time we use the importer but perhaps, a "sync currency pairs" button in the import page definitely helps.

The problem is that there are differences in how they report their markets
and how they actually are. We are not handling it yet but we will, see
https://github.com/askmike/gekko/pull/1805
On 7 Feb 2018 18:03, "nissimpradhan"<EMAIL_ADDRESS>wrote:

What do you mean by tested and seen? Binance keeps adding new coins to the
exchange, Gekko should support those trading pairs isn't it? I thought that
was the purpose of the script.
It's not a ideal to run it every time we use the importer but perhaps, a
"sync currency pairs" button in the import page definitely helps.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/askmike/gekko/pull/1700#issuecomment-363718426, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7MDzlELbsktCe1oJCRuRlWAtC0c95Tks5tSXUEgaJpZM4Rfs7K
.

And honestly using gekko on brand new coins does not make sense. Gekko is
for trendwatching and momentum reversal. You can't do that on brand new
markets imo.
On 7 Feb 2018 18:28, "Mike van Rossum"<EMAIL_ADDRESS>wrote:

The problem is that there are differences in how they report their markets
and how they actually are. We are not handling it yet but we will, see
https://github.com/askmike/gekko/pull/1805
On 7 Feb 2018 18:03, "nissimpradhan"<EMAIL_ADDRESS>wrote:

What do you mean by tested and seen? Binance keeps adding new coins to
the exchange, Gekko should support those trading pairs isn't it? I thought
that was the purpose of the script.
It's not a ideal to run it every time we use the importer but perhaps, a
"sync currency pairs" button in the import page definitely helps.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/askmike/gekko/pull/1700#issuecomment-363718426, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7MDzlELbsktCe1oJCRuRlWAtC0c95Tks5tSXUEgaJpZM4Rfs7K
.

I am new to Gekko. This discussion is very confusing. I would like to see more coins available in Gekko for trading listed by Bianance. If an update has been prepared that will accomplish this I would like to know how to install the update. Thanks

jbghub, here's a way to update for more coins without having to use any other tools:
-Make a backup copy of gekko/exchanges/binance.js
-Then open your current file, copy the contents of this into it, and save:
https://github.com/askmike/gekko/blob/c3de6f653930b1a8a58ef5071cfd0537664dc7d3/exchanges/binance.js

Thank you so much. I will implement later this evening.
Sent from my iPhone

On Feb 27, 2018, at 7:31 PM, stereohelix<EMAIL_ADDRESS>wrote:
jbghub, here's a way to update for more coins without having to use any other tools:
-Make a backup copy of gekko/exchanges/binance.js
-Then open your current file, copy the contents of this into it, and save:
https://github.com/askmike/gekko/blob/c3de6f653930b1a8a58ef5071cfd0537664dc7d3/exchanges/binance.js
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

I updated the binance.js file as stated. However, I am still only seeing the same 5 coins in the Gekko app. Any suggestions?

Stop and restart gekko?

Yes, Stopped, Restarted Gekko; also rebooted PC. Any other ideas?

I am using the Admin Command window to start Gekko:
node gekko --ui
then going to http://localhost:3000/#/home in Chrome browzer.

Hi jbghub,
Sorry, now I'm confused about this. I don't know how you could only show five coins after restarting, since the binance.js file is the only file where that information is read from. This might be beyond my ability to hack. Are you sure you edited the correct file? The only other thing I could suggest is restoring the files, pulling gecko again fresh (using git pull) and then trying again.
Good luck, hope that helps.

I found this code in the package-lock file:
"binance": {      "version": "1.3.1",      "resolved": "https://registry.npmjs.org/binance/-/binance-1.3.1.tgz"
Could this have anything to do with the binance file not working for me?

I'm not sure. But that is a little out-of-date.
You could try
npm uninstall binance
npm install binance
But I should really add a disclaimor that I'm in over my head here -- if this causes some other conflict, you might end up having to reinstall gekko. Which might be fine, and might actually solve whatever issue is happening.

I believe I found my problem. I was only looking at the USDT pairs. Their are many more coins for other currencies (coins) instead of USDT.

Thanks for all your help.

Great!

Quesion: How did you determine the Precision of each coin?

The easiest way is to look on the Binance website. The precision is the least significance digit of the price.

@stereohelix @jbghub Right now it happens to be the least significant digit of each coin, but Binance does publish somewhere in their documents and official list, and it is queryable through their API for official values as there is no guarantee of this relationship in the future.

Here's the official document (it's actually pretty up-to-date, not 8 months old)
https://support.binance.com/hc/en-us/articles/115000594711-Trading-Rule


How to perform per-channel pat?

Hi, I check the QAT model based on tinynn and it seems that the QAT is done with per-tensor schema. I am very concerned with less accuracy loss, so I wonder if there's any way to do per-channel QAT. Thanks.

You can switch to per-channel QAT by switching the backend to fbgemm. But current model converter does not support converting per-channel quantized models to tflite.
quantizer = QATQuantizer(model, dummy_input, work_dir='out', config={'backend': "fbgemm"})

I tried 3 approaches to achieve per channel QAT:

backend: qnnpack
Minor modifications to following code lines:
if not self.asymmetric:
sym_fq = torch_q.FakeQuantize.with_args(observer=torch_q.MovingAverageMinMaxObserver, quant_min=-128, quant_max=127, dtype=torch.qint8, qscheme=torch.per_channel_symmetric, reduce_range=False)

Errors rise up during the conversion:
File "out/movenet_qat.py", line 158, in forward
backbone_body_0_1 = self.backbone_body_0_1(backbone_body_0_0)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 725, in _call_impl
result = self._slow_forward(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 709, in _slow_forward
result = self.forward(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/quantized/modules/conv.py", line 332, in forward
input, self._packed_params, self.scale, self.zero_point)
RuntimeError: expected scalar type QUInt8 but found QInt8

backend: qnnpack
if not self.asymmetric:
sym_fq = torch_q.FakeQuantize.with_args(observer=torch_q.MovingAverageMinMaxObserver, quant_min=0, quant_max=255, dtype=torch.quint8, qscheme=torch.per_channel_symmetric, reduce_range=False)

Different errors reporting:
File "/usr/local/lib/python3.6/dist-packages/TinyNeuralNetwork-0.1.0+3135b58d66119d4580663dcaad444b7809afeaab-py3.6.egg/tinynn/converter/base.py", line 264, in convert
self.init_operations()
File "/usr/local/lib/python3.6/dist-packages/TinyNeuralNetwork-0.1.0+3135b58d66119d4580663dcaad444b7809afeaab-py3.6.egg/tinynn/converter/base.py", line 231, in init_operations
converter.parse(node, attrs, args, self.common_graph)
File "/usr/local/lib/python3.6/dist-packages/TinyNeuralNetwork-0.1.0+3135b58d66119d4580663dcaad444b7809afeaab-py3.6.egg/tinynn/converter/operators/torch/aten.py", line 479, in parse
self.elementwise_unary(tfl.QuantizeOperator, graph_converter)
File "/usr/local/lib/python3.6/dist-packages/TinyNeuralNetwork-0.1.0+3135b58d66119d4580663dcaad444b7809afeaab-py3.6.egg/tinynn/converter/operators/torch/base.py", line 244, in elementwise_unary
outputs = self.to_tfl_tensors(self.output_names, self.output_tensors)
File "/usr/local/lib/python3.6/dist-packages/TinyNeuralNetwork-0.1.0+3135b58d66119d4580663dcaad444b7809afeaab-py3.6.egg/tinynn/converter/operators/torch/base.py", line 155, in to_tfl_tensors
t = tfl.Tensor(t, n, has_buffer=non_existent_as_buffer, asymmetric=self.asymmetric)
File "/usr/local/lib/python3.6/dist-packages/TinyNeuralNetwork-0.1.0+3135b58d66119d4580663dcaad444b7809afeaab-py3.6.egg/tinynn/converter/operators/tflite/base.py", line 166, in init
assert tensor.q_zero_point() == 128

backend: fbgemm
Fails with following error:
File "main.py", line 196, in main_quant
qat_model = torch.quantization.convert(qat_model)
File "/usr/local/lib/python3.6/dist-packages/torch/quantization/quantize.py", line 414, in convert
_convert(module, mapping, inplace=True)
File "/usr/local/lib/python3.6/dist-packages/torch/quantization/quantize.py", line 459, in _convert
reassign[name] = swap_module(mod, mapping)
File "/usr/local/lib/python3.6/dist-packages/torch/quantization/quantize.py", line 485, in swap_module
new_mod = mapping[type(mod)].from_float(mod)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/quantized/modules/conv.py", line 368, in from_float
return cls.get_qconv(mod, activation_post_process, weight_post_process)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/quantized/modules/conv.py", line 153, in get_qconv
weight_post_process(mod.weight)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/torch/quantization/fake_quantize.py", line 100, in forward
self.ch_axis, self.quant_min, self.quant_max)
RuntimeError: dimensions of scale and zero-point are not consistent with input tensor

My question is:

These above errors could be thought of as "known issues", right?
Do you have milestone to support per-channel QAT conversion to tflite?
Is there any alternative way to perform the conversion (QAT pytorch pth to tflite)?

Thanks for your time.

All of the above tests are int8 quantized.

The fbgemm mode of pytorch only supports uint8, so the first configuration does not work properly
The second configuration can complete model training, but the current model converter does not support it.
The third configuration can be run in our code, there may be problems in use

We have understood your needs, if no serious problems are encountered, we can support this feature within two weeks :)

Got it. Thanks for your comments. Look forward to your support for this feature.

@liamsun2019 Per-channel quantization is supported now. Maybe you could have a try.


paired end vdj reconstruction

Is it possible to use TRUST4 on paired end data with separate index files (as in 10X 5' TCR and BCR sequences)?
Thank you!

Yes, you can use grep -A 1 --no-group-separator ">TR" IMGT+C.fa > tcr.fa and  "grep -A 1 --no-group-separator ">IG" IMGT+C.fa > bcr.fa" to get the reference files for TCR and BCR respectively, and then use it as the -f/--ref input (suppose your sequencing data is in fastq).
By default, TRUST4 should be able to reliably distinguish reads from TCRs and BCRs, just out of curiosity, is there a particular application that you need to separate index/reference files? Thanks.

Hi thank you for getting back to me so quickly!
I think I hadn't phrased my question clearly enough: I think the 10x pipeline separates the index from the actual sequence already (The fastq are named R1, R2, I1, I2 from a single lane). So I am wondering how those read will go as input to trust4 and if I need more information about the technology to tell for sure.
Thanks a lot!

Do you mean the index is the lane index? You can use "*" or comma-separated list for options -1, -2, --barcode in TRUST4 as https://github.com/liulab-dfci/TRUST4#10x-genomics-data .

Great thanks!!!


Update README installation instructions from -c omnia to -c conda-forge.

It looks like conda-forge is the intended method of installation for this package, based on the docs. This PR updates the README to use conda-forge instead of omnia. (I just happened to check for a conda-forge package before installing.)
Users installing from omnia would get an outdated version 3.0.3 instead of conda-forge's 3.0.5. I also updated the badge URLs. The conda-forge download count is much higher! 😄

Thanks!
We are releasing pymbar4  and 3.0.6 soon. I think those branches include these changes, so I'll leave it to the other maintainers whether we merge this or not!
We might copy the conda-forge packages to omnia in the meantime as a compromise to avoid the misleading versions.
Thoughts @Lnaden @mrshirts @jchodera ?

We might copy the conda-forge packages to omnia in the meantime

I would not. We want to steer people away from the omnia channel if we can, and backporting I feel will encourage that. pymbar has been one of the first packages we ported off of Omnia way back, lets keep it off there. The old versions are still on Omnia for reproducibility, but will slowly stop being fetched on accident since we stopped building them for newer python versions some time ago.

Any holdup on merging this PR?

There shouldn't be. I'll merge it.

Thank you @mikemhenry @Lnaden!


Make volume a function of frequency

higher pitches have a higher volume (it's a perceptual thing).
can we change that so if the majority of notes are higher (due to a low outlier) we can avoid hurting peoples ears?
where m1 is minimum note/freq, and m2 is maximum note/freq... this equation should suffice for volume.
http://www.wolframalpha.com/input/?i=m1%3D34%2C+m2%3D64%2C+cos((x-m1)%2F(m2*pi))

We'll talk about this friday in more detail, before we implement or do anything, and then decide is it's a feature worth approaching.

I've done some more research into this subject and I think it is actually far more complicated than we initially thought. On this wiki page for Equal-Loudness Contour you can find this graph
This graph is the tip of the iceberg for determining the proper sound pressure level (decibel) for a frequency for it to have the same perceived volume as another frequency. I also found many references to ISO-226 which appears to be a method that is an international standard for calculating these things. The problem is that the ISO seems to own the rights to these methods and they must be purchased to be used. I am going to attempt to implement the fix Ethan suggested but I doubt that it will properly adjust volume based on frequency.

There doesn't appear to be any easy solution to this. I decided to lower the volume slightly so that higher notes aren't quite as painful. I also increased the lower bounds of the frequency range so that there would be less high frequency notes.


Function signature

This PR starts calling contracts using the hash of function signatures.
The new test testing_00b is not quite working, but I think I should try something simpler first.

testing_00b test will be continued in: https://github.com/pirapira/bamboo/issues/39


@SqsListener scaling

Type: Bug
Component:
SQS
Describe the bug
I am using @SqsListener to read messages from SQS using the below config. I pushed 100 test messages to SQS and ran my SpringBoot application. What I observed is that after reading the first batch of 10 messages the listener was waiting for those 10 messages to be processed (which is simulated by 30 seconds of sleep) before reading in the next batch of 10 messages. I was expecting that given the core pool size it would keep reading messages and keep delegating to workers until it reads all 100 messages from the queue. Please advice what I am missing.
POM dependencies
...
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-aws</artifactId>
            <version>2.2.1.RELEASE</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-aws-messaging</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>
...

SQS Listener custom config
package com.coxauto.dataplatform.s3manager.rest.configs;

import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.sqs.AmazonSQSAsync;
import com.amazonaws.services.sqs.AmazonSQSAsyncClientBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.aws.messaging.config.QueueMessageHandlerFactory;
import org.springframework.cloud.aws.messaging.listener.QueueMessageHandler;
import org.springframework.cloud.aws.messaging.listener.SimpleMessageListenerContainer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

@Configuration
public class SqsListenerConfiguration {

  @Bean
  @Primary
  public AmazonSQSAsync amazonSQSAsync() {
    return AmazonSQSAsyncClientBuilder.standard().
        withCredentials(new DefaultAWSCredentialsProviderChain()).
        withRegion(Regions.US_EAST_1).
        withClientConfiguration(clientConfiguration()).
        build();
  }

  @Bean
  @ConfigurationProperties(prefix = "aws.configuration")
  public ClientConfiguration clientConfiguration() {
    return new ClientConfiguration();
  }

  @Bean
  @ConfigurationProperties(prefix = "aws.queue")
  public SimpleMessageListenerContainer simpleMessageListenerContainer(AmazonSQSAsync amazonSQSAsync) {
    SimpleMessageListenerContainer simpleMessageListenerContainer = new SimpleMessageListenerContainer();
    simpleMessageListenerContainer.setAmazonSqs(amazonSQSAsync);
    simpleMessageListenerContainer.setMessageHandler(queueMessageHandler());
    simpleMessageListenerContainer.setMaxNumberOfMessages(10);
    simpleMessageListenerContainer.setTaskExecutor(threadPoolTaskExecutor());
    return simpleMessageListenerContainer;
  }

  @Bean
  public QueueMessageHandler queueMessageHandler() {
    QueueMessageHandlerFactory queueMessageHandlerFactory = new QueueMessageHandlerFactory();
    queueMessageHandlerFactory.setAmazonSqs(amazonSQSAsync());
    return queueMessageHandlerFactory.createQueueMessageHandler();
  }

  @Bean
  public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
    ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
    //Tune core pool size to max out capacity so that if the load reaches a point that requires >= 80% of CPU, it can
    // spin up new tasks
    executor.setCorePoolSize(500);
    executor.setQueueCapacity(0);
    executor.setThreadNamePrefix("TaskExecutor");
    executor.initialize();
    return executor;
  }

}

SQS Listener
package com.coxauto.dataplatform.s3manager.rest.daemon;

import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.aws.messaging.listener.SqsMessageDeletionPolicy;
import org.springframework.cloud.aws.messaging.listener.annotation.SqsListener;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class SQSDaemon {

  @SqsListener(value = "${sqs.name}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
  public void receiveMessage(String rawMessage) {

    TimeUnit.SECONDS.sleep(30)
    log.debug("Received message: {}", rawMessage);

  }

}

@sudiptad2017 this is by design - listener fetches more messages once all messages from the batch are processed. We can come up with better design likely, but what is there right now is not a bug.
Also, please use the latest version - 2.3.1. Lots of small internal things have been improved between 2.2 and 2.3 versions.

@maciejwalkowiak Thank you for explaining that, also for pointing me to the updated version. I too was not quite sure whether it was a bug or designed that way.
I haven't gone through the code. But the improvement I can imagine would be to implement a config that can be turned up or down that controls the number of listener threads. So for a very busy queue it can read and delegate more batches to the worker threads.
For future reference, if I have a similar question what would be the right channel to reach out?

We have moved to a new repo - https://github.com/awspring/spring-cloud-aws. We have there "Discussions" options enabled, so for questions it would be the best place.


New Stats Epic

New Display statistic (From history issue to latest one)

[ ] [#121] Growth of contracts deployed
1. method: get total amount of deployed contracts
2. puzzle :
a. contract that deployed multi times shoud be count or not
b. contracts that coming from function call instead deploy (cross contract call ? )
3. difficulty: 3

[ ] [#189] NEAR Price (USD)

method: get the NEAR price from Binance for daily chart
puzzle: need to search for Binance API
difficulty: 3

[ ] [#189] Total supply over time (supply breakdown: Liquid tokens, Staked tokens, Locked tokens, Circulating supply [requested by partners], unclaimed / etc tokens)
1. method: query from indexer and staking pool contract function call
2. puzzle :
a. Liquid tokens -- not sure how to measure
b. Staked tokens -- get id from staking pool and aggregate amount
c. Locked tokens -- need to discuss (maybe fix in the #504 already)
d. Circulating supply ( PR in #504)
3. difficulty: 3

[ ]  [#189] Epoch reward for given epoch [measured in NEAR tokens]
1. method: get the epoch height block and the previous one, aggregate balance_burnt and minis the two.
2. puzzle: get all epoch height ( see this : https://github.com/frol/near-delegations-tracker-hack/blob/f5e24c9db7696f3a0517a28cca23862cfda8264e/index.js#L6)
3. difficulty: 2

[ ]  [#189] Amount of fees burnt over time [measured in NEAR tokens]
1. method: fee is the gas amount times gas price, already have total gas amount
2. puzzle: gas price may change in the future, how to aviod future work for this?
3. difficulty: 1

[ ] [#189] State size over time [measured in bytes/megabytes/etc] (also across shards)
1. method: need to discuss
2. puzzle: need to discuss -- unique ID
3. difficulty: need to discuss

[ ] [#350] Weekly Active Accounts over time (can be a breakdown of the total number of accounts)
1. method: query from indexer like daily one
2. puzzle: none
3. difficulty: 2

New Display for partners

[ ] [private] Active user amount for each partner accounts
1. method: query from indexer with partners list
2. puzzle
3.difficulty: 3

@frol


Approach radio buttons state not being passed to search API

This issue is for a: (mark with an x)
- [x ] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

azd auth login
azd up

go to static web app
select any of the default search questions and click the search buttoon
open the though process
verify there is text like "[DynamicTool]" in there
Open the Developer Settings in upper right corner
Notice the "Retrieve-Then-Read" is selected

The ask-read-retrieve-read is the approach that uses the Dynamic Tool.
You can try changing the approach in the Developer Settings, but it does not seem to work.
Also the OneShot.tsx file does have the rrr hard-coded.
Expected/desired behavior

Change the approach being used when the Developer Setting is changed

This can be closed, it was fixed this week.


Clarify the behavioral differences between a dense matrix and a multivector

The current Dense matrix can be used simultaneously as a regular dense matrix and as multiple column vectors combined (multivector/MV). In the class documentation, the case of multiple column vectors is even highlighted as a common use case. For most methods, there is no difference in the behavior of a dense matrix and a multivector. However, I think for the following methods some differences exists (impl marks the currently implemented version):

method
Dense behavior
MV behavior

apply
matrix * vector product (impl)
-

scale&add_scaled
Apply the scaling row wise (corresponds to diag(alpha)*A, could also support alpha as column vector)
Apply the scaling column-wise (impl)

dot
Compute sum_ij a_ij * b_ij, i.e. the dot product of the flat vectors
Compute a column-wise dot product (impl)

norm
Compute the appropriate (frobenius, l1, l_inf, ...) matrix norm
Compute a column-wise norm (impl)

Sidenote: The documentation of each method already specifies which behavior is used, but I don't think that is sufficient. I guess most users won't consult the documentation for these methods, which could cause some confusion if the dense behavior is assumed.
IMO, as the name already suggest the Dense class should model a dense matrix and the methods should have the expected behavior. If the behavior of a MV is wanted, e.g. for computing the norm of multiple vectors simultaneously, the name of the method should reflect that behavior. Since this change would break interface, it needs to be put on hold until ginkgo 2.0. Nevertheless, I propose the foilowing changes:

add new methods with more descriptive names
add a deprecation warning to the current methods stating that their behavior will change with the next major release and that the methods from 1. should be used.
for the 2.0 release, the behavior of the current methods is changed to the one corresponding to a dense matrix.

Stealing a bit of MATLAB's notation, we could also add a (defaulted) parameter to compute_norm2 that for a nxm matrix specifies whether we want column norms (output 1xm), row norms (output nx1) or frobenius norm (output 1x1).
With the Diagonal matrix, we already have a representation of row and column scaling we could use there.
Do you have any use cases in mind for dot products of flattened matrices?

compute_norm2 can relay on the output size, so we do not need to introduce another parameter

I'm open to having such a parameter, although I'd personally prefer different function names. I would also change the signature (in the dense case) to
ValueType compute_norm2()

as I think that's more natural.
The dot product for matrices appears in some finite element computations, I lastly remember it from some elasticity problem. It should be noted that in these cases the matrices are quite small, n~10. Also, this operation has a proper mathematical name (which I can't remember right now) and is denoted with A:B.

I think add_scale and scale should be consider A x diag(alpha)?
the diag(alpha) * A is represented by Diagonal as @upsj  said.
dot should be the same behavior as MV behavior if we consider dot<A, B> = A^T B no matter it is MV or Dense.
the operation you mention is like dot_multiple (.*)

compute_norm2 can relay on the output size, so we do not need to introduce another parameter
Hm... while that is true, I am not sure whether that makes for readable/understandable code. For example

A->compute_norm2(result);
x->add_scaled(result, y);

What does this do? Does it scale all values of y by the same value, or does it scale individual columns by different values? You can not tell from this piece of code alone, which might be an issue. Of course the same is true for add_scaled, but at least that does not propagate.
I guess we could add a zero-parameter overload for compute_norm2, which would then be unambiguous, but since all other functions write into Dense, that would be a bit of a break with our current patterns. I would only add it as an alternative, not as the only option.
 The result of the dot operation, which is also called scalar product, should be a scalar.
BTW, the A:B operation I mentioned is called Frobenius inner product and can also be written as A:B = trace(B^T A) similar to what @yhmtsai mentioned, except with an additional reduction at the end.

For scale, add_scaled the scaling A * diag(alpha) doesn't make sense for me. Both operations are basically BLAS operations. In the scalar case, scale is defined as y <- alpha * y and add_scaled as y <- alpha * x + y. As these operations are not standardized for non-scalar alpha, I would prefer sticking to the ordering of the scalar operations.

All of these operations are heavily motivated by the solver design, and most of the uses of Dense right now are solver-related as multivectors, so I think we need to keep those in mind -- column-wise operations are most common in the solver setting.
Related to the concept of dot products, for multivectors you would probably expect something like x'*y, of which we only compute the diagonal entries, since we don't have interaction between different columns in a solver run.
I do agree though that we need a better balance between correct naming and practical considerations.

BLAS operation provides the scalar version, but in the scaler sense, the operation is commutative.
and it is different from apply if we A->apply(b, x) : A * b -> x the be is on the right.
but it is same in the adcvance_apply alpha * A * x + beta y
definitely, we need to provide different behavior for them

As I'm also in favor of keeping the current behavior, this boils down to the question, what should be the default behavior?

Pros and Cons of the default behaviors
Keeping Multivector
Pros:

no changes necessary
matches the needs of the solvers

Cons:

class is called Dense not multivector
necessary to read documentation for simple functions

Changing to Dense
Pros:

matches the 'standard' linear algebra meaning
class name suggest behavior of dense matrix

Cons

need to add new implementations
the currently common use cases need to be adjusted (calling another method or passing an additional parameter)
breaks interface (-> can only be fully implemented in next major release)

Feel free to add, change pros and cons.

I agree that there is a semantic difference between Dense and Multivector. Currently while we use these interchangeably, we definitely should not do that and there are implications for example, in a distributed setting. I wanted to add on some points which we should think about before adding the functionalities.

Storage layouts. How would you store a Dense matrix and how would you store a Multivector ? Both row-major, or one of them in column major ? I think we should take this opportunity to allow for different storage layouts in both.
Creating sub-matrices. From a semantic perspective, does it makes sense to create a sub-matrix of a multi-vector ?
In some cases, I think we need to have capabilities of both Dense and Multivector. For example, the hessenberg matrix is a combination of multiple Dense matrices (one for each right hand side) and we need to perform matrix operations with it (eg. triangular solves).

Points considered for the meeting on multivector/dense:

Conceptually it makes sense to separate multivector and dense, eg.: (i) column-wise dot products don't make sense for Dense matrices in general, only for multivectors, (ii) transpose does not make much sense for multivectors, only for "general" Dense matrices.
For distributed functionality, it is technically untenable to support "dense matrix" operations (such as matrix multiply and transpose) on multivectors. Otherwise, these operations on multivectors imply we need separate partition schemes and internal representations for the transposed "short fat" matrices.
Outcomes:
It makes sense to separate multivector and dense into separate class hierarchies. Multivector will not be a LinOp. LinOp's apply will take multivectors as arguments (and perhaps a separate apply that takes other LinOps, which is somewhat a separate discussion). This also means almost everywhere we use Dense will need to be replaced by MultiVector, a heavy interface break.
A transition to multivectors will need to happen towards the end of a release cycle, where we provide both interfaces LinOp LinOp::apply(const LinOp, LinOp) as well as LinOp LinOp::apply(const MultiVector, MultiVector). We mark the former as deprecated (assuming they will not be supported in the future, depending the advanced apply issue).
View mechanics could be implemented to enable "viewing a multivector as a Dense matrix" and vice-versa. This could also help with the transition.


[UUID-Generator] fix: default action

Description
Fix  https://github.com/raycast/extensions/issues/6294
Screencast
N/A
Checklist

[X] I read the extension guidelines
[X] I read the documentation about publishing
[X] I ran npm run build and tested this distribution build in Raycast
[X] I checked that files in the assets folder are used by the extension itself
[X] I checked that assets used by the README are placed outside of the metadata folder

The generatev5 command doesn't have the logic, maybe you should also add it to that command


SyntaxError: Running the command python ./pox.py forwarding.l3_detection

Facing issue while running this command. Can you please tell what am I doing wrong?

l3_detection is not a component that ships with POX; I don't know where it came from or who wrote it.
But the problem is certainly that it was written for Python 2.  It's using the old Python 2 print statement.
POX, starting with the "gar" version (which you're using) uses Python 3.
You have two options: Fix the component to work with Python 3, or downgrade to POX fangtooth (which uses Python 2).
Fixing the component may just mean you rewrite the print to use the print function instead of the print statement.  If you also do from __future__ import print_function at the top of the file, it may run in both gar and older versions of POX as well.


How to finetune action recognition?

Hi. first of all, I appreciate your working. It is awesome!! I always think that your idea, there are many task but difference format and units. I wondered if combining them could lead to better performance.
Now I wanna finetuning with my own datasets which has own classes. Due to my limited knowledge, I struggled to apply the concepts effectively. I found other question #23 , but it is also lack of information to me.
and then I also wanna finetuning with my own dataset for 3Dpose, but It would be next step, after when I success to finetuining action-recognition.
your action recognition is trained by NTU-RGBD, then do I need same format dataset to finetuing?
I understand that this question is relatively basic, so I am aware that answering it might be a bit bothersome.
However, it must be helpful for beginner.
Thanks!
<EMAIL_ADDRESS>

Hi.
I also wondering about combination performance.
Did you get the result of it ?
Thank you!


Added a possibility to sort and renumber all motions in a category (closes #2259)

In the category list view is a new link "sort" to reorder the motions with drag and drop.
What should be displayed, if there is no motion or only one motion in the category?

Thanks for your work. Some remarks.

Retested with fresh bower_components:
Works now for me.


[WIP] CNV-37814: Upgrade to PFv5

📝 Description
Upgrading Patternfly to version 5.1.1
Upgrading SDK packages to 1.0.0 as they support PFv5

/retest

/retest

/test images

managed to reproduce. trying to make a solution

ok, I managed to figure it out; now it's working for me locally, but my laptop has 64 GB ram; I don't know the ci ram, lets hope its more then 8
let's try

u can remove this added line form package.json scripts.build

/test images

/hold
cypress failing due to a warning coming from SDK packages.

/lgtm


Are we meeting Tommarow?

I assume we are meeting as a group.
But I cant remember if we are meeting with you as well.
If we dont meet with you. we will meet at COOR. Same time.

no need, unless you have specific questions you would like to ask in person. We do need to set a date for your team to practice the presentation.


Add Project documentation

This PR adds documentation for the Project API.

This looks great! Thank you! I wonder if we really need the append=True. Should that be actually a permanent state? Why? Why not? Can you pls clarify that somewhere?

The only reason to have this behaviour is so that the user is aware that tasks will be appended to a project if a project is open. It doesn't need to be that way, but at least it provides some sort of security check to ensure that the user is aware of what is going on. This is explained in the Adding a Task to a Project section, right at the top.
We can change this behaviour, though.


Update for Windows 10 look-and-feel?

The documentation for this class includes specific instructions for how to work with the now outdated and obsolete Aero Glass UI in Windows Vista and Windows 7. The look-and-feel has changed significantly in Windows 8, and again in Windows 10. This API is still supported as far as I can tell, but I do not know how to make it work, and make it look good, under the Windows 10 theme with the existing information. Thanks for looking into this!

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

ID: 51b688a4-ceb5-6e73-78c1-45e7a4c37ab8
Version Independent ID: 56918f97-3d7a-eac5-7141-3064ca392b98
Content: WindowChrome Class (System.Windows.Shell)
Content Source: xml/System.Windows.Shell/WindowChrome.xml
Product: .net
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

Thanks for your feedback, @wjk! It's been added to the backlog.

@sambent can you help with this feedback?

This is a feature request.  I've shared it with management for awareness.

Ok, thanks for the prompt reply. Is there a better place to move this feedback to?


 It seems to have worked for me.

I haven't been able to reproduce this bug, so I'm closing this issue, if you can, you can open a new one


Support for multiple hosts

As https://docs.aws.amazon.com/ivs/latest/userguide/release-notes.html#mar23-23 says, iOS and Android SDK 1.8.0 began to support the feature.
Do you have any plan to support it on your RN SDK?
Cheers!

As https://docs.aws.amazon.com/ivs/latest/userguide/release-notes.html#mar23-23 says, iOS and Android SDK 1.8.0 began to support the feature.
Do you have any plan to support it on your RN SDK?
Cheers!

Hi, there.
No exact plans at the moment.


can't block ip after setvar:ip.blocked=1

I use this one https://github.com/coreruleset/modsecurity-crs-docker/blob/master/nginx/Dockerfile  build a new image , add the lmdb support(line50:./configure --with-lmdb --with-yajl --with-ssdeep --with-geoip --with-pcre2 --enable-silent-rules; ), MODSEC_VERSION=3.0.10 LMDB_VERSION=0.9.29  platform: linux nginx
my custom rules:

Rule 1: Detect a 403 response and flag the IP address
SecRule RESPONSE_STATUS "@streq 403"
"id:12345,phase:5,pass,nolog,
setvar:ip.blocked=1,expirevar:ip.blocked=3600"
Rule 2: Check for flagged IP addresses and block them
SecRule ip.blocked "@eq 1"
"id:12346,phase:1,deny,status:403,nolog"

Subsequently, I made two requests. The first request triggered a 403 response, while the second request was a normal one (expected to return 403). However, the second request did not trigger a 403 response.
Afterwards, I checked the data in modsec-shared-collections:

key: 0x7f5ed1f3dfbc myip_23caa51e7f6e1ea054a79ac5576c7f07712ac2f9::::blocked, data: 0x7f5ed1f3dfff 1.

Indeed, the IP has been recorded in the lmdb.
But why wasn't the second request detected and subsequently blocked?
Below is the debug log:
rule 12345:

[169449429075.432313] [/.env] [9] This phase consists of 57 rule(s).
[169449429075.432313] [/.env] [4] (Rule: 12345) Executing operator "StrEq" with param "403" against RESPONSE_STATUS.
[169449429075.432313] [/.env] [9] Target value: "403" (Variable: RESPONSE_STATUS)
[169449429075.432313] [/.env] [9] Matched vars updated.
[169449429075.432313] [/.env] [4] Running [independent] (non-disruptive) action: setvar
[169449429075.432313] [/.env] [8] Saving variable: IP:blocked with value: 1
[169449429075.432313] [/.env] [4] Rule returned 1.
[169449429075.432313] [/.env] [9] Running action: nolog
[169449429075.432313] [/.env] [9] Running action: expirevar
[169449429075.432313] [/.env] [4] Running (disruptive)     action: pass.
[169449429075.432313] [/.env] [8] Running action pass
16944942919.760660] [/] [9] This phase consists of 57 rule(s).
[16944942919.760660] [/] [4] (Rule: 12345) Executing operator "StrEq" with param "403" against RESPONSE_STATUS.
[16944942919.760660] [/] [9] Target value: "200" (Variable: RESPONSE_STATUS)
[16944942919.760660] [/] [4] Rule returned 0.
[16944942919.760660] [/] [9] Matched vars cleaned.

rule 123456:

[16944942919.760660] [/] [9] Running action: nolog
[16944942919.760660] [/] [4] Running (disruptive)     action: pass.
[16944942919.760660] [/] [8] Running action pass
[16944942919.760660] [/] [4] (Rule: 12346) Executing operator "Eq" with param "1" against IP:blocked.
[16944942919.760660] [/] [4] Rule returned 0.
[16944942919.760660] [/] [9] Matched vars cleaned.
169449429075.432313] [/.env] [8] Running action pass
[169449429075.432313] [/.env] [4] (Rule: 12346) Executing operator "Eq" with param "1" against IP:blocked.
[169449429075.432313] [/.env] [4] Rule returned 0.
[169449429075.432313] [/.env] [9] Matched vars cleaned.

Hi!
I tested your rules and this variant here should work. At least it works on my machine:
# initcol
SecAction phase:1,id:109,initcol:ip=%{REMOTE_ADDR},nolog

# Rule 1: Detect a 403 response and flag the IP address
SecRule RESPONSE_STATUS "@Streq 403" \
"id:12345,phase:5,pass,setvar:ip.blocked=1,expirevar:ip.blocked=3600,msg:'Status 403 returned, blocking ip.'"

# Rule 2: Check for flagged IP addresses and block them
SecRule ip:blocked "@eq 1" "id:12346,phase:1,deny,status:403,msg:'This ip has been blocked before.'"

Can you test with these rules?
I had to rename the variable name to ip:blocked in rule 12346 and also add an initcol SecAction.
I also removed the nolog so that we have more info in the error.log.

@franbuehler  Thanks for your reply!!
I have already test the rules you give me.
initcol
SecAction "phase:1,id:109,initcol:global=global,initcol:ip=%{REMOTE_ADDR},log"
Rule 1: Detect a 403 response and flag the IP address
SecRule RESPONSE_STATUS "@Streq 403" "id:12345,phase:5,pass,nolog,setvar:ip.blocked=1,expirevar:ip.blocked=3600,msg:'Status 403 returned, blocking ip.'"
Rule 2: Check for flagged IP addresses and block them
SecRule ip.blocked "@eq 1" "id:12346,phase:1,deny,status:403,nolog,msg:'This ip has been blocked before.'"
Still not work.
modsec-shared-collections:
# ./lmdbread tmp/modsec-shared-collections
key: 0x7fa08cab4fbc myid_23caa51e7f6e1ea054a79ac5576c7f07712ac2f9::::blocked, data: 0x7fa08cab4fff 1
debug log:
rule 197:

[169458424753.095332] [/.env] [4] Starting phase REQUEST_HEADERS.

After test above I grep the rules with 'initcol' from owasp-crs/
I noticed the ip key in modsec-shared-collections with the  suffix "_%{tx.ua_hash}", so I changed the rule(901321) in REQUEST-901-INITIALIZATION.conf
from
initcol:ip=%{remote_addr}_%{tx.ua_hash},\
to
initcol:ip=%{remote_addr},\
and removed rule 197,  ip key in modsec-shared-collections changed to myip without suffix "_%{tx.ua_hash}" but rule 12346 still not block.
here is the log:
modsec-shared-collections:
./lmdbread tmp/modsec-shared-collections
key: 0x7f5cc57b3fe4 myip::::blocked, data: 0x7f5cc57b3ffe 1
debug log:
rule 901321:

[169458509449.036270] [/.env] [4] (Rule: 901321) Executing unconditional rule...
[169458509449.036270] [/.env] [4] Running [independent] (non-disruptive) action: setvar
[169458509449.036270] [/.env] [8] Saving variable: TX:real_ip with value: <IP_ADDRESS>
[169458509449.036270] [/.env] [9] Running action: log
[169458509449.036270] [/.env] [9] Saving transaction to logs
[169458509449.036270] [/.env] [9] Running action: tag
[169458509449.036270] [/.env] [9] Rule tag: modsecurity
[169458509449.036270] [/.env] [9] Running action: nolog
[169458509449.036270] [/.env] [9] Running action: initcol
[169458509449.036270] [/.env] [5] Collection global' initialized with value: global [169458509449.036270] [/.env] [9] Running action: initcol [169458509449.036270] [/.env] [5] Collection ip' initialized with value: myip
[169458509449.036270] [/.env] [4] Running (disruptive)     action: pass.
[169458509449.036270] [/.env] [8] Running action pass
[169458509629.879483] [/] [4] (Rule: 901321) Executing unconditional rule...
[169458509629.879483] [/] [4] Running [independent] (non-disruptive) action: setvar
[169458509629.879483] [/] [8] Saving variable: TX:real_ip with value: myip
[169458509629.879483] [/] [9] Running action: log
[169458509629.879483] [/] [9] Saving transaction to logs
[169458509629.879483] [/] [9] Running action: tag
[169458509629.879483] [/] [9] Rule tag: modsecurity
[169458509629.879483] [/] [9] Running action: nolog
[169458509629.879483] [/] [9] Running action: initcol
[169458509629.879483] [/] [5] Collection global' initialized with value: global [169458509629.879483] [/] [9] Running action: initcol [169458509629.879483] [/] [5] Collection ip' initialized with value: <IP_ADDRESS>
[169458509629.879483] [/] [4] Running (disruptive)     action: pass.
[169458509629.879483] [/] [8] Running action pass

rule 12345:

[169458509449.036270] [/.env] [4] (Rule: 12345) Executing operator "StrEq" with param "403" against RESPONSE_STATUS.
[169458509449.036270] [/.env] [9] Target value: "403" (Variable: RESPONSE_STATUS)
[169458509449.036270] [/.env] [9] Matched vars updated.
[169458509449.036270] [/.env] [4] Running [independent] (non-disruptive) action: setvar
[169458509449.036270] [/.env] [8] Saving variable: IP:blocked with value: 1
[169458509449.036270] [/.env] [4] Rule returned 1.
[169458509449.036270] [/.env] [9] Saving msg: Status 403 returned, blocking ip.
[169458509449.036270] [/.env] [9] Running action: nolog
[169458509449.036270] [/.env] [9] Running action: expirevar
[169458509449.036270] [/.env] [4] Running (disruptive)     action: pass.
[169458509449.036270] [/.env] [8] Running action pass
[169458509629.879483] [/] [4] (Rule: 12345) Executing operator "StrEq" with param "403" against RESPONSE_STATUS.
[169458509629.879483] [/] [9] Target value: "200" (Variable: RESPONSE_STATUS)
[169458509629.879483] [/] [4] Rule returned 0.
[169458509629.879483] [/] [9] Matched vars cleaned.

rule 12346:

[169458509449.036270] [/.env] [4] (Rule: 12346) Executing operator "Eq" with param "1" against IP:blocked.
[169458509449.036270] [/.env] [4] Rule returned 0.
[169458509449.036270] [/.env] [9] Matched vars cleaned.
[169458509629.879483] [/] [4] (Rule: 12346) Executing operator "Eq" with param "1" against IP:blocked.
[169458509629.879483] [/] [4] Rule returned 0.
[169458509629.879483] [/] [9] Matched vars cleaned.

And this is my setup.conf:

Include /etc/modsecurity.d/customize/test.conf
Include /etc/modsecurity.d/modsecurity.conf
Include /etc/modsecurity.d/owasp-crs/crs-setup.conf
Include /etc/modsecurity.d/owasp-crs/rules/*.conf

I want to know why ModSecurity didn't load the value set in modsec-shared-collections. Is there any way to see the process of loading variables or to determine at which step a problem occurred? I currently don't know how to debug this.
Thanks again!

I hope this isn't too off-track, but to offer some general advice: be very cautious if using or relying on ModSecurity's persistent collections functionality. It has a history of poor performance, unusual errors, race conditions, memory problems, and more. It is also very tricky to write correct rules and even trickier to troubleshoot.
There are almost always better places to maintain stateful information than within ModSecurity itself.

@franbuehler

initcol
SecAction "phase:1,id:109,initcol:ip=%{REMOTE_ADDR},nolog"
Rule 1: Detect a 403 response and flag the IP address
SecRule RESPONSE_STATUS "@Streq 403" "id:12345,phase:5,pass,setvar:ip.blocked=1,expirevar:ip.blocked=3600,msg:'Status 403 returned, blocking ip.'"
Rule 2: Check for flagged IP addresses and block them
SecRule ip:blocked "@eq 1" "id:12346,phase:1,deny,status:403,msg:'This ip has been blocked before.'"

Because my rule before Include /etc/modsecurity.d/owasp-crs/rules/*.conf  , so I changed the REQUEST-901-INITIALIZATION.conf
from

initcol:ip=%{remote_addr}_%{tx.ua_hash},\

to

initcol:ip=%{remote_addr},\

and it works,  thank you very much!

Besides maintaining variables internally in ModSecurity, any others suggestions I can look into?

@alex16999 Quite often, ModSecurity is sandwiched by or integrated with proxies, load balancers, web servers, etc. These are usually better equipped and well designed to handle stateful connection information at high speeds and at great scale.
For one example, I like using HAProxy, with its "stick tables", to handle the storing and updating of stateful information, and to communicate between HAProxy and ModSecurity using request and response headers. The same mechanism also allows for things like easy request rate limiting. There are many similar possible ideas :slightly_smiling_face:

@RedXanadu

and to communicate between HAProxy and ModSecurity using request and response headers.

Combining other tools and leveraging their different features to meet my needs, thank you for your response, it's very helpful to me. I appreciate it!


Mysterious failure when performing concurrent config.getString calls

System information

node version: 8.11.1
npm or yarn version: yarn 1.12.3
OS/version/architecture: Windows 10 64-bit
Applicable nodegit version: 0.25.1

Short summary
The following code fails when config setting core.somevar is unset:
const writeRepo = await NodeGit.Repository.open('my-repo-path');
const readRepo = await NodeGit.Repository.open('my-repo-path');
const writeConfig = await writeRepo.config();
await writeConfig.setString('core.somevar', 'hello');
const readConfig = await readRepo.config();
const values = await Promise.all([ // This Promise.all is what fails
  readConfig.getString('core.somevar'),
  readConfig.getString('core.somevar')
]);

The error thrown is:
{ Error: config value 'core.somevar' was not found errno: -3, errorFunction: 'Config.getStringBuf' }. However, the config was written successfully, and future attempts to read that config value will generally succeed.
Experiments I've tried
It is not necessary to read the same variable twice. This failure happens as long as multiple getStrings are run concurrently on the same config. I originally found this problem by doing sequential setString calls on one config, followed by concurrent getString calls on the other config. By setting many unset values and then trying to read them all, I can see that it usually throws an error on the first getString call, and occasionally on the 2nd call. I have not had it fail on any elements of Promise.all beyond the first 2. This means the failure is pretty reliable, but also somewhat nondeterministic.
It is necessary that the readRepo be opened before the setString is run on the writeRepo. When readRepo is opened after setString, the error does not occur. That's probably because there's a fresher cache somewhere, but it's possible that it's also just avoiding the timing issue because of how long it takes the computer to open another nodegit repo.
LibGit2
This seems like it's probably not a libgit2 issue. The underlying version of libgit2 does not reproduce the issue with the following test:
void test_config_write__no_stale_data_between_repos(void)
{
	git_repository *readRepository;
	git_repository *writeRepository;
	git_config *readConfig;
	git_config *writeConfig;
	git_buf buf = {0};

	writeRepository = cl_git_sandbox_init("testrepo.git");
	cl_git_pass(git_repository_open(&readRepository, "testrepo.git"));

	cl_git_pass(git_repository_config(&writeConfig, writeRepository));
	cl_git_pass(git_config_set_string(writeConfig, "core.somevar1", ""));
	cl_git_pass(git_config_set_string(writeConfig, "core.somevar2", ""));

	cl_git_pass(git_repository_config(&readConfig, readRepository));
	cl_git_pass(git_config_get_string_buf(&buf, readConfig, "core.somevar1"));
	cl_assert_equal_s("", buf.ptr);
	cl_git_pass(git_config_get_string_buf(&buf, readConfig, "core.somevar2"));
	cl_assert_equal_s("", buf.ptr);

	git_buf_dispose(&buf);
	git_config_free(writeConfig);
	git_config_free(readConfig);
	git_repository_free(readRepository);
	cl_git_sandbox_cleanup();
}

Single read
Single getString calls never seem to reproduce the issue, even if wrapped in a Promise.all([ ]).
Sequential read
readConfig.getString('core.somevar').then(() => readConfig.getString('core.somevar')) does not lead to any promise rejections. It seems that multiple readConfig.getStrings must be called synchronously in order for any of them to fail.

Is this not because you await write() then try to read? Your comment about opening up another repo seems to suggest that.
Why not write .then() read?


function slideTo() does not work for swiper with slidesPerView>1

Hi Vladimir, thanks for your great job.
I have a swiper with slidesPerView=3. Now I need to change active slider programmatically using function slideTo(index). However I found it does not work, the active index of the slider is always the first slider. While I set slidesPerView=1, it works as expected. watchSlidesProgress and watchSlidesVisibility are all set to true. Attached is the sample code. thanks
        var galleryThumbs = new Swiper('#makeupImgSwiper', {
            loop: false,
            spaceBetween : 10,
            slidesPerView : 3,
            watchSlidesProgress : true,
            watchSlidesProgress : true
        });

        $(".test").click(function(){
            var v = $(this).val();
            galleryThumbs.slideTo(v, 0, true);
            alert(">>" + galleryThumbs.activeIndex); // always 0

            return false;
        });

how to slove

i have same problem


Fix NoClassDefFoundError for org.xerial.snappy.Snappy

PR description
Update docker images to use Ubuntu 22.04 so that a newer version of glibc is used. This fixes an issue with snappy library where the library cannot be loaded.
Related to update to the snappy library https://github.com/xerial/snappy-java/issues/417#issuecomment-1513916298
Fixed Issue(s)

Probably doesn't use snappy, but reckon we should do https://github.com/hyperledger/besu/blob/main/ethereum/evmtool/src/main/docker/Dockerfile for completeness?

Probably doesn't use snappy, but reckon we should do https://github.com/hyperledger/besu/blob/main/ethereum/evmtool/src/main/docker/Dockerfile for completeness?

Seems like a sensible thing to do. Will update it.


Use ReflectionCLass getFileName of App\Controllers\App::class to dete…

Instead of using strtolower() of the namespace, utilize ReflectionClass::getFileName to get the full path of the App class in whatever namespace has been defined.

This would resolve #66

Thanks so much for these PRs @rorymcdaniel
It's been a busy week so really appreciate these.


Revert azure-core-test back to released version

Running the pipeline manually as this PR only has pom.xml changes - https://dev.azure.com/azure-sdk/public/_build/results?buildId=3815017&view=results
We should be able to override the check enforcer after the pipeline completes successfully.

/check-enforcer override


Setup: add corresponding parameters to the commands for easier setup

Hey @justinccdev, for setting up the crawler I think that we should also add the parameters that each program file takes, in the README.md.
For example:

Queue URLs for Bioschemas JSON-LD extraction by adding them directly and crawling sitemaps

cd ..
./bsbang-crawl.py <path-to-crawl-db> <location-of-site-map-to-crawl>

Extract Bioschemas JSON-LD from webpages and insert into the crawl database.

./bsbang-extract.py <path-to-crawl-db>

Run Solr setup

cd $BSBANG/setup
./bsbang-setup-solr.py <path-to-bsbang-config-file>

Index the extracted Bioschemas JSON-LD in Solr

cd ..
./bsbang-index.py <path-to-crawl-db>

This will make setting it up easier.

Since the path to db is hardcoded in the setup/bsbang-setup-sqlite.py as crawl.db file, I don't see the point of keeping it as the arg. @justinccdev  Is there a purpose for it?
I found the same issue and edited the readme file - https://github.com/innovationchef/bsbang-crawler/tree/ChangeREADME in my fork.

Hey @innovationchef, I know that the path to DB file is hard coded. But we could have different databases for different sites that we crawl. So I suggested that rather than keeping the same hard-coded value for the DB path we should supply it as a parameter every time we run the file. @justinccdev any thoughts on this?

@aswanipranjal @innovationchef Yeah, bsbang-setup-sqlite.py should really take a crawl db path parameter like the other scripts, rather than be hard-coded.

@aswanipranjal Yes, the README should be like that, it's currently a bit out of date as that's how it used to be when absolutely everything was hard-coded :).  @innovationchef You've got the right idea with the changes I think, though I would rather the README used placeholders as @aswanipranjal has above.  However, actually examples of invocation are very useful as well, perhaps we could have both.

Ooops, accidentally closed this issue so re-opened it.


Crash when conditionally rendering ViroARSceneNavigator

Hello!

[x] Review the documentation: https://docs.viromedia.com/
[x] Search for existing issues: https://github.com/viromedia/viro
[x] Use the latest ViroReact release: https://docs.viromedia.com/docs/releases

Environment
Please provide the following information about your environment:

Development OS: Mac
Device OS & Version: iOS version 12.0
Version: ViroReact 2.10.0 and React Native 0.57.0
Device(s): iPhone SE

Description
When I render ViroARSceneNavigator first time - all OK. When I conditionally remove ViroARSceneNavigator and render null for that scene it Crashes.

Hi @kesha-antonov, we haven't tested Viro with React Native Version 0.57 yet. If you downgrade to React Native 0.55 do you still see this issue? We are hoping to support 0.57 shortly.

Hi @kesha-antonov, we haven't tested Viro with React Native Version 0.57 yet. If you downgrade to React Native 0.55 do you still see this issue? We are hoping to support 0.57 shortly.

I'll wait for release with ARKit 2.0 next week. I hope you will use 0.57 there


Show webcam feed

Hi,
Is it possible to show the webcam feed while the countdown is running so that you can see what's in frame when taking a photo?

It should be possible. I'll look into adding that as a feature. Good idea!On Oct 21, 2020 18:23, ShadowofArya<EMAIL_ADDRESS>wrote:
Hi,
Is it possible to show the webcam feed while the countdown is running so that you can see what's in frame when taking a photo?
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.

Thank you!

I looked into this a bit and I don't think I can do it. The current module works by setting the background of the module window to the location of the stored image on disk. I don't think I can open up a live stream without getting a video player involved and judging by the RTSP module, that's a non-trivial task.
Sorry to disappoint, but I don't have the chops for this.


[Bug]:

What happened?
[06:16:03] [udemy-downloader] [_get:1113] ERROR: Failed request https://xxxx.udemy.com/api-2.0/courses/1272410/cached-subscriber-curriculum-items?fields[asset]=results,title,external_url,time_estimation,download_urls,slide_urls,filename,asset_type,captions,media_license_token,course_is_drmed,media_sources,stream_urls,body&fields[chapter]=object_index,title,sort_order&fields[lecture]=id,title,object_index,asset,supplementary_assets,view_html&page_size=10000
[06:16:03] [udemy-downloader] [_get:1114] ERROR: 403 Forbidden, retrying (attempt 9 )...
Today  , i use has  a problem, tomorrow download normal
Expected Result
please check
Branch
master/main
What operating systems are you seeing the problem on?
No response
Relevant log output
No response
Other information
No response

use feat/refactor and you haven't provided any useful information. it could be any number of reasons for the error you get


Unable to Compile with Webpack

I have a NodeJs webserver that currently utilizes Webpack 5.75.0. Due to the way this library dynamically requires/imports the needed dll file, I receive a warning from Webpack
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
./node_modules/node-api-dotnet/init.js
@ ./node_modules/node-api-dotnet/index.js 1:19-36
This ends up with a runtime error when I try to require node-api-dotnet An unknown error occurred: Error: Cannot find module '....WebServer/win-x64/Microsoft.JavaScript.NodeApi.node'
From what I've read it sounds like it's generally bad practice to dynamically require files since it can cause issues like this, though I'm not sure what a better approach would be. I've been trying to figure out a way to work around the issue and didn't see anything in your documentation or tracked issues about this. Any help would be appreciated.

There is some discussion of a similar issue at https://github.com/microsoft/node-api-dotnet/issues/264#issuecomment-2042115327
I think the code could be changed to use non-dynamic requires, it would just be more verbose.

I thought that as well, but it is a bit different or potentially a different solution dealing with Electron.
I think perhaps a switch statement to include the correct library based on the different variables might work better, but as you said would be much more verbose.

Fixed by https://github.com/microsoft/node-api-dotnet/pull/303


Player testing: host app setup

Description

To enable running integration tests, we need an application to run on our supported platforms.
Changes

Created a new application using the react native command line tools and manually adapted it to have the same extra changes as we have for the example app.
No other changes were made.
Also updated ignore files accordingly.
I went for creating a new application and keeping the example application untouched as I wanted to have the example application's changes and test host app changes separated.
Note: further changes to enable player testing come in upcoming PRs.
Checklist

[x] 🗒 CHANGELOG entry - not applicable, we should add a single entry once everything gets merged for integration testing

Interestingly that we need another "app", but kinda makes sense given the setup RN is following.

@matamegger we don't "need", BUT I chose to, in order to avoid additional changes to the example app for the sake of testing. Especially as we reference it in our guides, it could confuse readers.

Interestingly that we need another "app", but kinda makes sense given the setup RN is following.

@matamegger we don't "need", BUT I chose to, in order to avoid additional changes to the example app for the sake of testing. Especially as we reference it in our guides, it could confuse readers.

I very much approve the separation of example and test setup here (well done 👍 ).
My interest was towards the need for an actual app with UI, instead of something more low profile like it can be done in the native android ecosystem for instance. But as said, it makes sense in the context of RN.

Interestingly that we need another "app", but kinda makes sense given the setup RN is following.

@matamegger we don't "need", BUT I chose to, in order to avoid additional changes to the example app for the sake of testing. Especially as we reference it in our guides, it could confuse readers.

I very much approve the separation of example and test setup here (well done 👍 ). My interest was towards the need for an actual app with UI, instead of something more low profile like it can be done in the native android ecosystem for instance. But as said, it makes sense in the context of RN.

To be complete, I add more details here:
For Google IMA we need a UI stack, as the iOS Google IMA SDK needs a view to host the ad contents and UI. Additionally, DRM playback also requires a view stack where it renders, as we have seen failures in the past with DRM playback and no UI.


How to convert speech to Text using Watson services in C#?

I got code for Questionanswer service of IBM in C# from https://developer.ibm.com/bluemix/2015/01/07/leveraging-watson-service-desktop/  . Its working perfectly.But i don't know the format of speech which we need to send for speech to Text convertion. Kindly help me in writing the code.

Hi@inforich, this is not the place to ask that question. If you are having difficulties calling the IBM Watson Speech services in C#, please ask a question on dW Answers or Stack Overflow.
Issues here should be related to the nodejs wrapper.


[Bug]: Disabling padEnds affects center item alignment and breaks expected carousel preview behaviour

Contact Details
No response
What happened?
Upon disabling padEnds, for middle elements of the carousel, the partial view of previous element is removed. Partial view of only the next element is maintained.
Steps
In example app's Carousel with Custom Indicator Demo.

Set viewportFraction 0.8.
Set padEnds false.

Expected Result
For first element, no padding is there on left. On right, the next element is partially visible.
For last element, no padding is there on right. On left, the previous element is partially visible.
For middle elements, next and previous elements are partially visible.
Actual Result
For first element, as expected.
For last element, as expected.
For middle elements, the left element is not partially visible. It looks like the first element with no padding on left.
Image

Version
3.1.0
What devices are you seeing the problem on?
Android
OS
Android Any
Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hello Nikhil (@nixrajput ),
The proper fix on this may take time, so any quick workarounds would be appreciated.

Hi @ThisIsSidam,
Thank you for bringing this to my attention. I'll review the issue when I have time and keep you updated on the progress.
Best regards,
Nikhil

@nixrajput Did you check this out, facing this same issue. If you know the reason why this is happening then it would be great so that I can implement the fixes and push the changes into a PR for others to use and merge into this package.

Hi @sagnik-sanyal,
I haven't had the time to test this issue yet. I'll try to test and fix it this week if possible. If it turns out to require more time, I'll share the reason for the issue here so that anyone else can work on fixing it.
Thanks and regards,
Nikhil


Control applied z-index in <Modal /> 👔

Addresses #36.
Adding a layer prop to <Modal.Styles /> to control the z-index applied on the rendered modal,
for example:
<NavBar /> // this is fixed and internally applies a `z-index` value of `100`
<Modal.Styles layer={200} /> // ensures `<Modal />` will always render on top of `<NavBar />`

Added some tests covering the global styles applied through <Modal.Styles />

:tada: This PR is included in version 1.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


maintaining scroll position when loading older messages

I've recently implemented paging in my chat view. I'm currently in the process of trying to get an infinite scroll feature implemented to go along with paging. The issue I'm having is with maintaining scroll position when loading new messages at the top of the collectionview. When I load my messages and call reloadData on the collectionview the collectionview's contentOffset needs to be adjusted. It's easy enough to do the following:
let oldContentOffsetFromBottomY = collectionView.contentSize.height - collectionView.contentOffset.y

dataSource.loadMore()
collectionView.reloadData()
collectionView.layoutIfNeeded()

let newContentOffset = CGPointMake(collectionView.contentOffset.x, collectionView.contentSize.height - oldContentOffsetFromBottomY)
collectionView.setContentOffset(newContentOffset, animated: false)

but setting the contentOffset in this way makes the collectionview stop scrolling (in the scenario that the user flicked their finger to make the chat scroll quickly). I'm trying to go for a Facebook Messenger type infinite scroll. Therefore-
How can I adjust the contentOffset of my collectionview to maintain scroll position and preserve scrolling velocity after adding more cells to the top of the collectionview?

This is how I ended up achieving this:
class WPMessagesCollectionViewFlowLayout: JSQMessagesCollectionViewFlowLayout {
    private var oldContentSizeHeight: CGFloat = 0.0
    private var contentSizeDelta: CGFloat?

    override func invalidateLayoutWithContext(context: UICollectionViewLayoutInvalidationContext) {
        if let contentSizeDelta = contentSizeDelta {
            context.contentOffsetAdjustment = CGPointMake(context.contentOffsetAdjustment.x, contentSizeDelta)
        }
        contentSizeDelta = nil

        super.invalidateLayoutWithContext(context)
    }

    override func collectionViewContentSize() -> CGSize {
        let newContentSize = super.collectionViewContentSize(),
        newContentSizeHeight = newContentSize.height

        if newContentSizeHeight != oldContentSizeHeight {
            contentSizeDelta = newContentSizeHeight - oldContentSizeHeight
        }
        oldContentSizeHeight = newContentSizeHeight

        return newContentSize
    }
}

Basically, I take the old content size of the collectionview before it changes, the new content size after it changes, and use those two values to calculate a delta. I then use that delta to construct a CGPoint for the contentOffsetAdjustment property of the context in invalidateLayoutWithContext:

@vshahpledge I just wanted ask you that If I create Subclass of JSQMessagesCollectionViewFlowLayout then all the default logic to handle the size of bubble again we have to write in our own class. Because I tried your lmplementation in my project but the bubble size calculation is getting messed up. So do you have a wayout where I can use the above implementation to existing JSQMessagesCollectionViewFlowLayout class only without disturbing the existing implmentation?

Sorry my bad, wrong question I asked!! Thanks for the solution @vshahpledge

@vshahpledge Thank you for your suggestion above. It worked well for maintaining the scroll position after loading more messages. But there is a small issue I am facing, (only for the first time) If my local db doesn't have anything then it calls an api, get the data and store it in db, again fetches from the db and load the messages. So at this moment collectionView content offset is going beyond the frame. So no messages showing, but when I scroll down, my messages are showing properly. And If I am loading messages from db without calling api then it works fine.
Did you face this issue as well and if not, anything you could point me to so I can debug this?


font-family: heading?

// latest rebass
import { Heading } from 'rebass';
//index.jsx
<Heading>{name}</Heading>
//inspect css styles
font-family: heading;
font-weight: heading;
line-height: heading;

Is this expected?

The Heading component looks for font properties defined in the theme, you'll need to add values to theme.fonts.heading, theme.fontWeights.heading, and theme.lineHeights.heading to apply these styles -- you can also use the preset as a starting point: https://rebassjs.org/theming#preset

I've tried adding a theme. Still getting same result.
https://codesandbox.io/s/rebass-and-styled-components-v4-zzr9r?file=/src/Test.js
Is there something I'm missing for Heading to pick up the theme font family?

I'm not sure this is the place to post this or not but if I style a Heading like so:
const HeroHeader = styled(Heading)`
  font-weight: 900;
  line-height: 90%;
  background: linear-gradient(${theme.textGradientAngle}deg, #53f 20%, #05d5ff 90%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;

  > span {
    display: inline;
  }
`;

and implement it like so:
            <HeroHeader
              fontSize={[50, 80, 95, 110]}
              px={[0, 0, 3]}
              textAlign={["left", "left", headingAlignment]}
              as="h1"
            >
              {title}
              {title2 && (
                <>

 {/* necessary for sarafi */}
                  {title2}
                </>
              )}
            </HeroHeader>

the px, textAlign, and fontSize aren't respected when I've got as="h1" in place. If I remove the as="h1", all the styles render as they should but the element is an h2.

@chandlervdw : I've been hit by the same issue you describe. Solution for this discussed in #571 .

Is there a fix for this yet? I still seem to get it.


Allow long press delay duration for LongPressDraggable to be adjustable

This PR adds a delay parameter (of type Duration, defaults to kLongPressTimeout) to the LongPressDraggable widget, allowing configurable a long-press activating duration for the dragging motion to initiate. There are no breaking changes.
Issue this PR is fixing
Previously the long press activation duration is not configurable. It was using the default value of DelayedMultiDragGestureRecognizer, which was kLongPressTimeout. This certainly works, but sometimes users may want a shorter duration of draggable activation. This PR allows the activation duration to be configurable.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test exempt.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I signed the CLA.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Re-ran tests and all passed.

Re-ran tests and all passed.

Hmm I'm not sure what's happening with the windows tool tests, but I don't think I've changed code regarding that. Can you check this, please? @shihaohong

Looking at the logs, it seems unrelated to your change, which means that it might either be a CI flake or caused by an actual failure unrelated to your PR. You may need to rebase with the master branch to pick up the potential fix.


Test metrics better, more flag handling checks

Coverage increased (+0.6%) to 92.891% when pulling 64d5d5af545f7dea6a8c5b3605662ad9397bfc0d on cs/extra-tests into c8dba8ee5cc4748ddb1c70e0dae5e6cafedc69d6 on master.


etcdctl cluster-health  are not consistent

I run  two members of etcd cluseter on centos7. one of cluster run "etcdctl cluster-health" getting cluseter status is health, but another "etcdctl cluster-health" getting cluster status is unhealth. the cluster health is ok when etcd started.
test-0-1:
# etcdctl cluster-health
cluster is unhealthy

test-0-2:
#etcdctl cluster-health
cluster is healthy
member 6fafd2d770d2396 is healthy
member f2882b486b73afb9 is healthy

the etcd version is 2.0.3, the config file is as follow:
test-0-1:/etc/etcd/etcd.conf:
[member]
ETCD_NAME=test-0-1
ETCD_SNAPSHOT_COUNTER="10000"
ETCD_HEARTBEAT_INTERVAL="100"
ETCD_ELECTION_TIMEOUT="1000"
ETCD_LISTEN_PEER_URLS="http://<IP_ADDRESS>:2380,http://<IP_ADDRESS>:7001"
ETCD_LISTEN_CLIENT_URLS="http://<IP_ADDRESS>:4001,http://<IP_ADDRESS>:2379"
ETCD_MAX_WALS="0"

[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://<IP_ADDRESS>:2380"
# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
ETCD_INITIAL_CLUSTER="test-0-1=http://<IP_ADDRESS>:2380,test-0-2=http://<IP_ADDRESS>:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="test-etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001"

test-0-2:/etc/etcd/etcd.conf:
[member]
ETCD_NAME=test-0-2
ETCD_SNAPSHOT_COUNTER="10000"
ETCD_HEARTBEAT_INTERVAL="100"
ETCD_ELECTION_TIMEOUT="1000"
ETCD_LISTEN_PEER_URLS="http://<IP_ADDRESS>:2380,http://<IP_ADDRESS>:7001"
ETCD_LISTEN_CLIENT_URLS="http://<IP_ADDRESS>:4001,http://<IP_ADDRESS>:2379"
ETCD_MAX_WALS="0"

[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://<IP_ADDRESS>:2380"
# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
ETCD_INITIAL_CLUSTER="test-0-1=http://<IP_ADDRESS>:2380,test-0-2=http://<IP_ADDRESS>:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="test-etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001"

thanks

etcdctl needs to reach the leader to verify the cluster information. My best guess is the etcdctl on machine 1 cannot reach etcd running on machine 2 for some reason.

@xiang90 how to check the cluster info for the client? I found the cluster leader info not exists on local etcd. why etcd cluster data is not consistent? thanks
test-0-1
# curl -L http://<IP_ADDRESS>:4001/v2/stats/leader
{"message":"not current leader"}

test-0-2
curl -L http://<IP_ADDRESS>:4001/v2/stats/leader
{"leader":"f2882b486b73afb9","followers":{"6fafd2d770d2396":{"latency":{"current":0.033491,"average":0.03256292351481814,"standardDeviation":0.11327880677627736,"minimum":0.004243,"maximum":217.301155},"counts":{"fail":37315,"success":10272082}}}}

I am seeing a very similar problem with 2.0.10. (CoreOS 675) and the machines can access each other fine (they are running locally on VirtualBox on OS X).
Situation:
node 1 started with
coreos:
  etcd2:
    name: unittest-1
    initial-advertise_peer_urls: http://<IP_ADDRESS>:2380
    listen_peer_urls: http://<IP_ADDRESS>:2380
    initial_cluster_token: unittest
    initial_cluster: unittest-1=http://<IP_ADDRESS>:2380

node 2 started with:
coreos:
  etcd2:
    name: unittest-2
    initial-advertise_peer_urls: http://<IP_ADDRESS>:2380
    listen_peer_urls: http://<IP_ADDRESS>:2380
    initial_cluster_token: unittest
    initial_cluster: unittest-2=http://<IP_ADDRESS>:2380,unittest-1=http://<IP_ADDRESS>:2380
    initial_cluster_state: existing

then on node 1 I run etcdctl member add unittest-2 http://<IP_ADDRESS>:2380
at this point, node 1 reports "cluster healthy" and lists both members. node 2 reports "cluster unhealthy" but etcdctl member list lists both members. Also I can set data on one node and see it on the other.
So it seems just that etcdctl cluster-health on node 2 is reporting things incorrectly.

@holmes86 @SpencerBrown You need to set correct client URLs to make it work well. Here are details(https://github.com/coreos/etcd/issues/2567#issuecomment-101812525):

The problem comes from that the -advertise-client-URLs are not set correctly on each etcd member. Internally, cluster-health first finds the leader ID, then gets the leader member's clientURLs, then use that urls to make requests. So it needs the correct client URLs registered in the cluster.

In your case, it is actually saying that 'i fetched leader stats from leader, but i failed to do that, so the cluster must be unhealthy'. It may need a better log to let users know what is actually happening.

@yichengq You are absolutely correct, and the doc is incomplete in its example. I will submit a PR for the doc. (btw was good to see you at CoreOS Fest)
I added advertise-client-urls and listen-client-urls parameters to the nodes and everything works perfectly now in my scenario.
Node 1:
coreos:
  etcd2:
    name: unittest-1
    initial-advertise_peer_urls: http://<IP_ADDRESS>:2380
    listen_peer_urls: http://<IP_ADDRESS>:2380
    listen_client_urls: http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:2379
    advertise_client_urls: http://<IP_ADDRESS>:2379
    initial_cluster_token: unittest
    initial_cluster: unittest-1=http://<IP_ADDRESS>:2380
    initial_cluster_state: new

Node 2:
coreos:
  etcd2:
    name: unittest-2
    initial-advertise_peer_urls: http://<IP_ADDRESS>:2380
    listen_peer_urls: http://<IP_ADDRESS>:2380
    listen_client_urls: http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:2379
    advertise_client_urls: http://<IP_ADDRESS>:2379
    initial_cluster_token: unittest
    initial_cluster: unittest-2=http://<IP_ADDRESS>:2380,unittest-1=http://<IP_ADDRESS>:2380
    initial_cluster_state: existing

@SpencerBrown I think your PR is a good one. Could you send it to upstream?

Thank you for this info. I've added -advertise-client-urls and this problem went away.


Customize or remove Loading blank page

Hi guys!
Im trying to find out how to customize the blank page with a centered "loading" at the app opening (probably the Qlevar router startup), but I couldnt found.
I liked a lot this package.
Can you help me with that?
Thanks in advance

Hi @henriquetroiano,
To do so
QR.settings.initPage = // The page you want to show

I am glad you liked it :)


Support old glibc and musl

When running blink.cmp on Ubuntu 18, I get the following error:
Error detected while processing TextChangedI Autocommands for "*":
Error executing lua callback: ...al/share/nvim/lazy/blink.cmp/lua/blink/cmp/fuzzy/ffi.lua:102:/home/user/.local/share/nvim/lazy/blink.cmp/lua/blink/cmp/fuzzy/../../../../target/release/blink_cmp_fuzzy.so: cannot open shared object file: No such file or directory
stack traceback:
  [C]: in function 'load'
  ...al/share/nvim/lazy/blink.cmp/lua/blink/cmp/fuzzy/ffi.lua:102: in main chunk
  [C]: in function 'require'
  ...l/share/nvim/lazy/blink.cmp/lua/blink/cmp/fuzzy/init.lua:8: in main chunk
  [C]: in function 'require'
  .../.local/share/nvim/lazy/blink.cmp/lua/blink/cmp/init.lua:42: in function 'update_completions'
  .../.local/share/nvim/lazy/blink.cmp/lua/blink/cmp/init.lua:57: in function 'on_show'
  ...nvim/lazy/blink.cmp/lua/blink/cmp/trigger/completion.lua:172: in function 'show'
  ...nvim/lazy/blink.cmp/lua/blink/cmp/trigger/completion.lua:51: in function <...nvim/lazy/blink.cmp/lua/blink/cmp/trigger/completion.lua:29>

Trust me, I do not want to be on Ubuntu 18, but as it stands my hands are tied. Not sure what could be causing this error. I dont want to arbitrarily dump information in this issue which is not relevant, so I can add details which are relevant as requested.

Seems like your cargo build --release failed, you're not on a version tag (v0.*), or the prebuild binaries download failed. Share your config and try reinstalling the plugin to double check

None of that is the case, afaict. There is actually a .so file present, Im pinned to a version, and I have tried reinstalling many times, as well as manually purging the files.

Do you run into the same error on main? It's possible this was fixed with the switch to mlua but that hasn't gone out in a release yet

Well since there aren't any prebuilt binaries I cant really test it.

You should be able to install a rust toolchain via https://rustup.rs/ and then build the plugin with build = "cargo build --release" (deltails in the readme)

Yeah, I guess I was trying to avoid having to set up another tool chain on Ubuntu 18, but I'll give it a shot. Thanks for the tips.

New pre-built releases are available @xyven1 if you want to give this another go on a more recent commit?

Absolutely

Now it just a glibc version error (which i get with pretty much any application, tbh). So i guess the main issue was fixed.

That's odd. AFAIK Neovim v10 requires a relatively recent version of glibc. What version of nvim are you running? Chances are certain functionality is already broken.

That's odd. AFAIK Neovim v0.10 requires a relatively recent version of glibc. What version of nvim are you running? Chances are certain functionality is already broken.

I am using a statically linked version against musl :/

The binaries should be statically linked so that sounds like a bug on our end

Actually, that doesn't make sense, you can't have a cydlib that's statically linked :smile: I'll look to pin against an old version of glibc and support prebuild musl binaries

Wow, that would be great! I feel like only supporting modern libc and musl is a good option.

With the upcoming release, there's pre-built musl binaries but the detection logic is at the OS level (and specifically for alpine), so you'll have to force you can specify `fuzzy.prebuilt_binaries.force_system_triple = 'x86_64-unknown-linux-musl'

So cool! Thanks for supporting such a niche use case!

Maybe this isn't quite fixed yet...
20:24:40 msg_show Error executing vim.schedule lua callback: .../.local/share/nvim/lazy/blink.cmp/lua/blink/cmp/init.lua:46: loop or previous error loading module 'blink.cmp.fuzzy'
stack traceback:
  [C]: in function 'require'
  .../.local/share/nvim/lazy/blink.cmp/lua/blink/cmp/init.lua:46: in function 'callback'
  ...e/nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/init.lua:84: in function 'on_completions_callback'
  ...vim/lazy/blink.cmp/lua/blink/cmp/sources/lib/context.lua:60: in function 'fn'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:86: in function 'cb'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:44: in function 'cb'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:44: in function 'resolve'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:93: in function 'cb'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:44: in function 'resolve'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:163: in function 'resolve_if_completed'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:169: in function 'cb'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:44: in function 'resolve'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:93: in function 'cb'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:44: in function 'cb'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:44: in function 'resolve'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:93: in function 'cb'
  .../nvim/lazy/blink.cmp/lua/blink/cmp/sources/lib/async.lua:44: in function ''
  vim/_editor.lua: in function <vim/_editor.lua:0>```

and

failed to get completions with error: error loading module 'blink_cmp_fuzzy' from file '/home/babruell/.local/share/nvim/lazy/blink.cmp/lua/blink/cmp/fuzzy/../../../../target/release/libblink_cmp_fuzzy.so':
/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header

LMK if you need any other info. Again thanks for taking this use case seriously, so many other projects I use just hit you with the classic "user issue, they need to update their system"

I'm having the same issue. My company has un old server, and unlikely it will be updated anytime soon as so many people's work depends on it. It will be great to have blink.cmp work on that machine.


Add ability to specify modmail mute duration

Feature Summary and Justification
This feature provides the ability to specify a mute duration.

Hmm, I don't know why CI seems to expect a Python 3.5 test. Oh well — merged! Thanks for adding this!


Fixes #1931 - Flag for reviveOffers and offer reject duration

--revive_offers_for_new_apps if true, revive offers is called when a new app
is added to the TaskQueue or if a task of an app with constraints dies. The
latter is necessary, for example, if there is a constraint that only allows
one task per host. In this case, we might accept an offer that we rejected
previously, simply because no task is running on the host anymore.
Also note, that Mesos only filters offers that are a strict sub set of
a rejected offer.
--reject_offer_duration allows configuring the duration for which offers
are declined if not matched in mesos.
--min_revive_offers_interval if --revive_offers_for_new_apps is specified,
do not call reviveOffers more often than this interval. It defaults to 5 seconds.

LGTM :+1:


iCloud3 v3, Release Candidate 2 - fails to load, bootstrap.py:531

Upgraded to iCloud3 v3, Release Candidate 2
It fails to load
Logger: homeassistant.bootstrap
Source: /usr/src/homeassistant/homeassistant/bootstrap.py:531
First occurred: 10:52:18 (1 occurrences)
Last logged: 10:52:18

Error setting up integration icloud3 - received exception
asyncio.exceptions.CancelledError

Home Assistant 2023.8.1
Supervisor 2023.08.1
Operating System 10.4
Frontend 20230802.0 - latest

Yes, I am using the iOS app and the mobile_app integration.
I changed the line to
 "after_dependencies": ["recorder", "ios", "device_tracker", "sensor"],
and restarted HA
Still fails to start with error
2023-08-10 17:14:56.987 ERROR (MainThread) [homeassistant.setup] Setup of device_tracker is taking longer than 300 seconds. Startup will proceed without waiting any longer
2023-08-10 17:14:57.033 ERROR (MainThread) [homeassistant.bootstrap] Error setting up integration icloud3 - received exception
asyncio.exceptions.CancelledError

Maybe this is obvious to you, but if I go into the Integrations menu and choose to Configure, I get an error too:
Config flow could not be loaded: 500 Internal Server Error Server got itself in trouble
I will try to disable some of the other integrations and see if I can resolve it this way.  The setup worked fine before upgrading to the RC2.

I’d like to see your home_assistant.log and the icloud3_0.log files. Can’t you email them to<EMAIL_ADDRESS>Try reinstalling iCloud3 again. Either from HACS or unzipping the icloud3 zip file and restarting HA.

Removing the dependency for "device_tracker" seems to have done the trick.  By removing it from RC2 starts again and is working as before.
The icloud3/manifest.json now looks as:
"after_dependencies": ["recorder", "ios", "device_tracker", "sensor"],
and now RC2 is starting up.
I will email you the logs.

Did you mean removing "mobile_app"? or "device_tracker"?
I added "mobile_app" because HA runs the code through some type of verifier when creating a release. It kept coming up with "mobile_app" needed to be added as a dependency (which it is not) or an after_dependency (which is not needed by mee).
thanks for the logs. That may tell something.

I had to remove both mobile_app and device_tracker
The working line is when both are gone,
"after_dependencies": ["recorder", "ios", "sensor"],
When I add device_tracker OR mobile_app OR both back, i get the error that Setup of device_tracker takes longer than 300 seconds and that icloud3 has received an exception.
I hope you can figure out something from the logs.  My config might just need cleaning up, it is getting old now with lots of upgrades over the years.  At the same time, this will be the case for many others too, so I suppose it is good to gracefull handle such problems.

And I'm running with both of them in the list. There must be some conflict somewhere and I hope the logs will help figure it out.
Do you have a known_devices.yaml file? I'm reworking the code to remove any iCloud3 devices from it to preserve anything else that is in it. I think it's just a text file but I'm getting an HA error and want to verify the format.

I do have a known_devices.yaml file
The format is basic
joes_ipad:
  hide_if_away: true
  icon:
  mac: BT_8C:FA:FF:31:1E:2A
  name: Joe's iPad
  picture:
  track: true

Each such device entry seems to be separated by one or more empty lines.

I'm also seeing the same error. Happy to provide logs or other files if you need another set

Also have problems with this version I'm reverting to the previous one

@d-d
I finally had a chance to review your log files and found this:

There was an error setting up the Samsung TV. This was followed by the following 5-secs later:

2023-08-10 17:14:56.987 ERROR (MainThread) [homeassistant.setup] Setup of device_tracker is taking
longer than 300 seconds. Startup will proceed without waiting any longer
2023-08-10 17:14:57.033 ERROR (MainThread) [homeassistant.bootstrap] Error setting up integration
 icloud3 - received exception asyncio.exceptions.CancelledError

iCloud3 had an 'device_tracker' after_dependency in the manifest.json file which tells HA that iCloud3 has to be set up after the device_tracker. When the device_tracker failed, HA aborted iCloud3. I have removed those dependencies from the manifest.json.
That HA failure to load iCloud3 caused another error later on when you opened the Devices & Services > iCloud3 Configure Settings since the configuration file had not been opened and loaded.

You are getting a message indicating there is still a platform: icloud3 in your configuration.yaml file. It is being ignored but you can remove it and config_ic3.yaml if you are using it.

There was a network/internet error and iCloud3 could not get location data from your iCloud account. That dumped error messages to the log file, along with a 'communication/network response error'. I have changed to error reporting so the internal error messages are not displayed. Only the 'friendly' error message will be displayed in the logs and the Event Log.

The real problem was #1 when HA failed to start the device_tracker and iCloud3. The manifest.json file is changed ot what it was in rc3

Here is a prelease of iCloud3 v3 rc3 with the fixes to your issues noted above.
Download the zip file and unzip it into the iCloud3 directory. Let me know if you see anything else and I'll address it before the release. Thanks for testing it on your system.
icloud3_v3-rc3.zip
Change Log:

Reverted the 'manifest.json' file to prevent iCloud3 from hanging on an HA startup if there is a problem starting some of the HA components.
Added a 'Restart HA, Reload iCloud3' to the Configure Settings > Actions list. You can now restart HA or reload only the iCloud3 component if the is a problem.
Fixed some v2 to v3 configuration migration issues.

@gcobb321 sorry for the delay, I've only just been able to install the prerelease version. So far I can confirm it starts up fine with no errors but will let you know if anything else pops up

@gcobb321 I can also confirm the prerelease starts up without issues on my system and tracking is working.  I will let you know if there are issues later.

I just posted an updated rc3.
Find it here. Scroll to the bottom.


Rename master to main

Because main is shorter than master and protects fingers.

that's fine by me, let's do it before v0.1 ?

Yes, before v0.1 would be better.

this is complete


TII-261 - TurnitinOC - retry delay algorithm improvements

A couple constants are defined:
private static final int TURNITIN_OC_MAX_RETRY_MINUTES = 240; // 4 hours
private static final int TURNITIN_MAX_RETRY = 16;
Following through the retry delay algorithm:
Σ(retry = 1..16) min(2^retry, 240)
2+4+8+16+32+64+128+240*9=2414 minutes
The delays sum to ~40 hours
In our experience there are situations where Turnitin servers are unresponsive, or a change is required on our side, and the retry automatically corrects it. But in many cases it takes more than 40 hours before these situations are resolved.
Add configuration to modify the behaviour of how we delay between retries

LGTM

I've been documenting the OC integ properties within the README: https://github.com/sakaiproject/sakai/blob/master/content-review/impl/turnitin-oc/README.md  Maybe it makes sense to add it here instead

Committed 001b17e - I've moved the sakai.properties documentation into the README.md, and left a note in default.sakai.properties that TurnitinOC configuration can be found there

LGTM