Data keys are static by default and it can't be changed with dynamic_items

Hi! I noticed strange behavior of DynamicItemDataset.
Problem 👩⚕
My dataset looks like this:
{
    "my_audio.wav": {
        "audio_path": "my_audio.wav",
        "ref": "example of speech",
        "length": 5
    }
}

I put it into DynamicItemDataset using some both audio and text pipelines which I put into dynamic_items.
But in text pipeline I'm doing text preprocessing and it looks like this:
@sb.utils.data_pipeline.takes("ref")
@sb.utils.data_pipeline.provides("ref")
def text_pipeline(ref):
    ref = hparams["preprocessor"].process(ref)
    yield ref

Main thing here that my input and output keys are the same. So I want my dataset to have ref key both in input and in ouput.
So the problem that I found that if key is in data then it will be considered as static item even if it will be in dynamic items.
Here is all data keys are considered as static keys. So this code don't check if this key is in dynamic_items.
https://github.com/speechbrain/speechbrain/blob/d9c37f4274a383107f972329a8cbe1b2d77a163a/speechbrain/dataio/dataset.py#L151
And after that here. All data keys are considered static by default and no preprocessing occurs.
https://github.com/speechbrain/speechbrain/blob/d9c37f4274a383107f972329a8cbe1b2d77a163a/speechbrain/utils/data_pipeline.py#L496
Workaround
Because of this issue I have to do some weirds workarounds like changing output key or doing preprocessing somewhere else. And I think that it's not ok.

The items' keys are meant to be unique. You should not both take and provide the same key. It might be cleanest to just change the key of your DynamicItem "ref". If you absolutely need the output to be called "ref", you can use a mapping in the output, see:
https://github.com/speechbrain/speechbrain/blob/d9c37f4274a383107f972329a8cbe1b2d77a163a/speechbrain/dataio/dataset.py#L195-L210
So for example, you can do something like:
@sb.utils.data_pipeline.takes("ref")
@sb.utils.data_pipeline.provides("ref_processed")
def text_pipeline(ref):
    ref = hparams["preprocessor"].process(ref)
    yield ref

dataset.add_dynamic_item(text_pipeline)
dataset.set_output_keys(
    {"id": "id",
     "audio": "audio",
     "ref": "ref_processed"}  # <- remap to "ref"
)

Perhaps we should implement some checks for duplicate keys, with appropriate error messages.

Yeah thanks, it wasn't clean until i started to dig deeper. So I think warnings or errors are super necessary here

@grazder noted your poke on warnings & errors -> agreeing there.
Hope we can get to work more on comfort-tools after the next 2+ major changes (or earlier).
Closing this issue as it seems "solved". Please feel free to reopen :)
If you like to contribute a PR on adequate warnings based on this issues, please go for it (we can continue discussing there).


Support multiple TLS certificates

Ambassador supports a single TLS certificate but I need to support multiple TLS certificates where we use different domains for different types of services.
*.kubernaut.io is for Kubernaut
scout.datawire.io is needed for another service.
We have other services coming down the pipeline that will also need to be able to be under a different domain and therefore require another TLS wildcard certificate.

Decided to do a little Googling... this might be a necessary prerequisite https://github.com/envoyproxy/envoy/issues/95

Is anyone working on this? If not I can take a look; need this feature before we can take ambassador into prod.

@adrianchifor #463 will be in Ambassador 0.36.0, which is coming up. If you want to take a look at SNI in Envoy, that would be wonderful. :smile: Are you in the Ambassador Slack already? https://d6e.co/slack

Is there any way to work around this for the time being? I didn't realise Ambassador couldn't handle more than one TLS certificate/domain.

SNI is a high priority item (we're doing a bunch of internal work on a branch which is a precursor to SNI, among other things). In the meantime, you can run multiple ambassadors (see https://www.getambassador.io/reference/running#multiple-ambassadors-in-one-cluster) and give each ambassador a unique secret.

I thought of something like that but didn't realise you had the ID system built in. I didn't go with this method because then I'd need an SNI reverse proxy to route to the correct Ambassador anyway, so I may as well just stick a TLS-terminating Nginx in front as a sidecar to handle port 443.
Or is the SNI reverse proxy not required if using the Ambassador ID? If traffic destined for https://example.com (ID 1) hits Ambassador with ID 2 (which has the cert for https://notexample.com), will it forward the traffic onto Ambassador with ID 1 to terminate the TLS appropriately?

Talking about the syntax to configure SNI via ambassador, we can let the end users to configure it using secrets or files, pretty similar to how they configure in the TLS module; just that they'd do it in mappings now.
This needs to be per mapping because the certs will tie themselves with the given envoy filter which is configured in a mapping.

Secret -

      ---
      apiVersion: ambassador/v0
      kind:  Mapping
      name:  httpbin-mapping
      prefix: /httpbin/
      service: httpbin
      tls:
        servers:
        - example.com
        - www.example.com
        secret: httpbin-secret

Filenames -

      ---
      apiVersion: ambassador/v0
      kind:  Mapping
      name:  httpbin-mapping
      prefix: /httpbin/
      service: httpbin
      tls:
        servers:
        - example.com
        - www.example.com
        cert_chain_file: /etc/certs/tls.crt
        private_key_file: /etc/certs/tls.key

Thoughts? @rhs @kflynn
References:

https://www.envoyproxy.io/docs/envoy/latest/faq/sni

Done in EA5. Further Kat work tracking in #814.


[Bug]: solid-router-integration: navigation to the same page causes duplication in the router

Telegram Application
Telegram Desktop
Describe the Bug
Click to link of the same page causes duplication of history entry (you need to press back button a lot of times without any visual change)
To Reproduce
const Component () => Link

//routing
<Router>
  <Route component={Component} path="/self" />
  <Route component={Component} path="*" />
</Router>

Expected Behavior
It must stay in the same history item

Here is workaround, I just added equality check to replaceAndMove. @heyqbnk I can provide pr if you want to
diff --git a/dist/index.js b/dist/index.js
index 185b386841dd6e7366403590da75419e7ccaf180..4711ec994aa2252267e3c8f49e9ba69ef29dac97 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -2562,6 +2562,10 @@ class Ye {
     if (!n && this.current === s)
       return;
     const r = this.current;
+    const isLikePrev = (prev, next) => prev.search === next.search && prev.pathname === next.pathname && prev.hash === next.hash
+    if (isLikePrev(s, r)) {
+      return
+    }
     if (this.index !== t) {
       const i = this._index;
       this._index = t, this.attached && i > 0 != t > 0 && this.sync();

I don't really remember how it works in browser. Let's imagine, we are currently at the page /page. This page has a link /page (to the same page). What will happen, if user clicks this link? I assume, a new same entry will be added.
We can probably make this behavior optional, providing some option like duplicates: boolean.

We can test it here
https://github.com/Telegram-Mini-Apps/tma.js/issues/303#issuecomment-2117437251

Seems like one more day in hookah bar should be spent. I will think about a better solution


Adapting partial code(file name start with O) to the sonar cloud rule

Codecov Report

Merging #2185 into dev will increase coverage by 29.87%.
The diff coverage is 43.56%.

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

Please re-merge the code and submit

Please re-merge the code and submit

done

Are you sure to rebase the dev code and push it again? there is only one commit in pr

Are you sure to rebase the dev code and push it again? there is only one commit in pr

Yes.

e2e running code is not up to date, can you try to close this pr and push again?


update the task status to failed if the task status is ready or stari…

…ng when creating new taskmanager of the task
When creating a new taskmanager, setting the task status to failed if the task status is ready or starting,so that the leader shutdown the task and recreate a task.
The container's NetworkSettings.Service is assigned by calling ctlr.Prepare when the task status.State is api.TaskStatePreparing, but don't  save it to tasks.db or related disk of the container. when the task state is api.TaskStateReady or api.TaskStateStarting, the host power down or restarts abnormally, and the container's NetworkSettings.Service is lost. When the agent init worker, the task state restores from the previous state, the container starts to run normally, but the NetworkSettings.Service information is lost,
there is no iptable rules and  the port of ingress network.
This problem is occasional,but we can add sleep when the task status is ready and power down the host of agent side.
(https://github.com/docker/swarmkit/blob/831df679a0b8a21b4dccd5791667d030642de7ff/agent/exec/controller.go#L343)
Signed-off-by: ZhiPeng Lu<EMAIL_ADDRESS>

It doesn't make a whole lot of sense to fail all tasks in the starting/ready state. I'd recommend you file a bug and describe the problem before sending out a PR.


date format 'mm/dd/yyyy' always yields '10' for day values between 13 and 19

What steps will reproduce the problem?
In Gridview - Editable column - Input-Widget->inputmask-
What is the expected result?
should be able enter 1-31 as per the month.
What do you get instead?
date format 'mm/dd/yyyy' always yields '10' for day values between 13 and 19
Additional info
worked prior - to composer update

Q
A

Yii version
2.0.12

PHP version
7.0.7

Operating system
windows

Editable column

what is that? we do not have that in Yii core.

Sorry I believe I posted in the wrong forum. Its from Kartik Gridview . I am closing this issue. Thank You


[ ERROR ] Model file .xml cannot be opened.

Hi Daniil-Osokin,
Thank you for your work. I have some issues when trying to run the C++ demo. I built the human_pose_estimation_demo using openvino documentation. Then, when I run this command :  ./human_pose_estimation_demo -m /home/Desktop/gitpackages/lightweight-human-pose-estimation.pytorch/human-pose-estimation.xml -i 0
I get the following error :
InferenceEngine: 	API version ......... 2.1 	Build ........... 2021.2.0-1877-176bdf51370-releases/2021/2 Parsing input parameters [ ERROR ] Model file /home/Desktop/gitpackages/lightweight-human-pose-estimation.pytorch/human-pose-estimation.xml cannot be opened!
I generated the .xxml and .bin files using your instructions, and it seems they were correctly generated. Here is the message I got after running python3 /opt/intel/openvino_2021/deployment_tools/model_optimizer/mo.py --input_model human-pose-estimation.onnx --input data --mean_values data[128.0,128.0,128.0] --scale_values data[256] --output stage_1_output_0_pafs,stage_1_output_1_heatmaps  :

Model Optimizer arguments:
Common parameters:
	- Path to the Input Model: 	/home/aladinedev2/Desktop/gitpackages/lightweight-human-pose-estimation.pytorch/human-pose-estimation.onnx
	- Path for generated IR: 	/home/aladinedev2/Desktop/gitpackages/lightweight-human-pose-estimation.pytorch/.
	- IR output name: 	human-pose-estimation
	- Log level: 	ERROR
	- Batch: 	Not specified, inherited from the model
	- Input layers: 	data
	- Output layers: 	stage_1_output_0_pafs,stage_1_output_1_heatmaps
	- Input shapes: 	Not specified, inherited from the model
	- Mean values: 	data[128.0,128.0,128.0]
	- Scale values: 	data[256]
	- Scale factor: 	Not specified
	- Precision of IR: 	FP32
	- Enable fusing: 	True
	- Enable grouped convolutions fusing: 	True
	- Move mean values to preprocess section: 	None
	- Reverse input channels: 	False
ONNX specific parameters:
Model Optimizer version: 	2021.2.0-1877-176bdf51370-releases/2021/2

[ SUCCESS ] Generated IR version 10 model.
[ SUCCESS ] XML file: /home/aladinedev2/Desktop/gitpackages/lightweight-human-pose-estimation.pytorch/./human-pose-estimation.xml
[ SUCCESS ] BIN file: /home/aladinedev2/Desktop/gitpackages/lightweight-human-pose-estimation.pytorch/./human-pose-estimation.bin
[ SUCCESS ] Total execution time: 4.24 seconds.
[ SUCCESS ] Memory consumed: 128 MB.

Do you have any Idea about from where my problem could come ?

I found one solution :
You can directly download some pre-trained models using openvino downloader : https://github.com/openvinotoolkit/open_model_zoo/blob/master/tools/downloader/README.md
I directly used the human-pose-estimation-0001 model and it worked wonderfully at 30 fps. Thank you Daniil-Osokin :-)


Update MainWindow.xaml

Hi, I fixed this issue in the WPF Example window with missing brackets.
Fixed on the fly conversion to km/h via toString
If the project is still maintained, please merge.
TIA,
Werner

thanks!


Width of individual Sizing seems to be incorrect

I tried your demo but I have some issues with the individual sizing. On the grid page you provide an example with the headline »Individual Sizing«. There are three lines, with the following Columns:
1/2 | 1/2
auto | 1/3
1/4 | auto | 1/3
Since 1/3 is always 1/3 of the row, the 1/3 columns should be the same size, but they are not. Please see my Screenshot from Chrome Version 44.0.2403.157 (64-bit).

What is that screen shot from? It doesn't look like it's from the site; when I look at that section on my demo site, it looks correct to me.

Looks good in these six browsers as well: https://www.browserstack.com/screenshots/17c62da1462db6347cb4c2625f70a507cdbcfc82

Aye, I am an Idiot. The local sourcecode was modified, sorry.

No worries. Glad you figured it out.


Exclude cloned CommonService CR from being copied in AllNamespace Mode

Issue: https://github.ibm.com/IBMPrivateCloud/roadmap/issues/57453
Reason: when there is only one namespace (operatorNs) in WatchNamespaces, skip copying CommonService CR into other namespaces.

Verify with simple deployment topology where WATCH_NAMESPACE: <operator-namespace> and AllNamespace Installation mode where WATCH_NAMESPACE: ''.
In both cases, there is no need to copy cloned CommonService CR to other namespace.


Epoch-ing too slow when #events is large..

So I have several ABR dataset where I have about 8000 trials.  Epoching is way too slow and I suspect that the issue is related to not pre-allocating memory in _get_data_from_disk and growing the _data array one epoch at a time. When I don't do preload=True,  when I eventually have to average, epochs.average() is too slow.
Am I missing something or is there room to speed things up?

The problem is peak-to-peak artifact rejection. 8000 trials is really big,
I think you're hitting the limits of the technology that's currently used.
We hava lots of looping and single-trial operations which don't scale well
if you have many trials. Not sure what we can do. Epochs.average is slow
because it's built in a memory-saving way, accumulating (sum VS std) over
trials and subsequently dividing by the number of trials instead of using
numpy array methods directly. Of course you can build yourself a work-aroud
based on RawArray and EpochsArray, if all fits into memory.
2015-05-01 3:51 GMT+02:00 Hari Bharadwaj<EMAIL_ADDRESS>
So I have several ABR dataset where I have about 8000 trials. Epoching is
way too slow and I suspect that the issue is related to not pre-allocating
memory in _get_data_from_disk and growing the _data array one epoch at a
time. When I don't do preload=True, when I eventually have to average,
epochs.average() is too slow.
Am I missing something or is there room to speed things up?
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/issues/2049.

Ah Ok.. the thing is the trials are really short (15 ms)...so memory is not really an issue at all. I'll play with EpochsArray.
That said, don't you think peak-to-peak based rejection can be vectorized?

That said, don't you think peak-to-peak based rejection can be vectorized?

Not sure this is in reach.

Ah Ok.. the thing is the trials are really short (15 ms)

Ah Ok ..... btw. what does  "long" mean, can you share benchmarks (time,
system environment).
2015-05-01 4:37 GMT+02:00 Hari Bharadwaj<EMAIL_ADDRESS>
Ah Ok.. the thing is the trials are really short (15 ms)...so memory is
not really an issue at all. I'll play with EpochsArray.
That said, don't you think peak-to-peak based rejection can be vectorized?
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/issues/2049#issuecomment-98029457
.

@haribharadwaj if you could share some minimal bad cases from the sample dataset, it would help us to tune into optimization targets. Iterating over 8000 things in Python doesn't have to be slow in principle, so we might be able to pull it off. You say you don't use preload=True, is it not an option in your case? If there were a .preload_data() you could call after instantiating your object, would it potentially fix your use case?

So I do have a raw object with preload=True. If I then construct epochs  = mne.Epochs(raw, preload=False) and then do epochs.get_data() or epochs.average(), either takes > 3 hours with Intel Quadcore Xeon(R) and 32 GB RAM running Ubuntu and Anaconda. Similarly if I do epochs  = mne.Epochs(raw, preload=True), then this step itself takes > 3 hours..
Not sure how I could get the sample data to run into this issue. I think it it is specific to ABR type data where n_events is large.

Just make a fake event list with 8000 events.

... Doesn't matter if epochs overlap

Ah ok.. will cook up a gist tomorrow! Thanks, @Eric89GXL, @dengemann

I agree > 3 hours is pretty rough, BTW. Hopefully if you use 8000 events and the same number of time points with the sample data (ABR is usually sampled at a much higher rate so you'll probably have to adjust tmin/tmax appropriately based on info['sfreq']) you'll see similar performance degradation.
For a second I wondered if the reallocations were taking a long time with get_data(), but .average() does no such reallocation so that shouldn't be the culprit. The degradation should end up be linear with the number of epochs at least for .average(), so maybe shoot for the number of events that takes 3 minutes instead of 3 hours, and hopefully it's 180/3=60 times fewer than the number of epochs you actually use, so ~130. Then we can look at it deeper. If you feel like trying to investigate, I'd suggest using line_prof / %lprun with IPython. But I'm always happy to optimize if you don't have time :)

Actually... here goes:
import numpy as np

import mne
from mne import io
from mne.datasets import somato

# Load real somatosensory sample data.
data_path = somato.data_path()
raw_fname = data_path + '/MEG/somato/sef_raw_sss.fif'
n_events, tmin, tmax = 8000, -0.002, 0.015

# Setup for reading the raw data
raw = io.Raw(raw_fname, preload=True)
# Pick some single channel and match ABR sampling rate
ch_names = ['MEG 1142', ]
raw.pick_channels(ch_names)
raw.resample(sfreq=16384.)

baseline = (-0.002, 0.001)
event_samps = np.random.randint(raw.first_samp + 100, raw.last_samp - 100,
                                n_events)

# Making many event_ids to pool across (just in case it matters)
events = np.c_[event_samps, np.zeros(event_samps.shape, dtype=np.int16),
               np.random.randint(1, 100, n_events)]

epochs = mne.Epochs(raw, events, np.unique(events[:, 2]).tolist(), tmin, tmax,
                    baseline=baseline, reject=dict(grad=4000e-13),
                    preload=True, verbose='WARNING', proj=False)

Replacing the last statement with preload=False and then extracting data during averaging runs into the same issues..
epochs = mne.Epochs(raw, events, np.unique(events[:, 2]).tolist(), tmin, tmax,
                    baseline=baseline, reject=dict(grad=4000e-13),
                    preload=Flase, verbose='WARNING', proj=False)
evoked = epochs.average()

cool, that should be good to get things started

sounds like a great profiling exercise !

@haribharadwaj let me know if you have time for it, otherwise I might be able to look today or Monday

@Eric89GXL I won't be able to get to it before Tuesday if I did..

I tried to make your example more minimal, but in doing so I made something that takes only 4 sec on my machine:
def test():
    # Load real somatosensory sample data.
    sfreq = 16384.
    n_events, tmin, tmax = 8000, -0.002, 0.015
    baseline = (-0.002, 0.001)

    data = np.zeros((1, int(sfreq)))
    info = mne.create_info(1, sfreq, 'eeg')
    raw = mne.io.RawArray(data, info)
    event_samps = np.random.randint(raw.first_samp + 100, raw.last_samp - 300,
                                    n_events)

    # Making many event_ids to pool across (just in case it matters)
    events = np.c_[event_samps, np.zeros(event_samps.shape, dtype=np.int32),
                   np.random.randint(1, 100, n_events)]
    epochs = mne.Epochs(raw, events, list(np.unique(events[:, 2])),
                        tmin, tmax, baseline=baseline, reject=dict(eeg=150e-6),
                        preload=False, verbose='WARNING', proj=False)
    epochs.average()

if __name__ == '__main__':
    import time
    t0 = time.time()
    test()
    print(time.time() - t0)

I'll gradually move back to the example you provided, but the speed of this one indicates that the problem is probably not in the Epochs machinery itself.

Did you try running my example to see if it indeed takes long?

Your example takes a long time, but I noticed it was hung up on the resampling. A few simple modifications of your script (to bypass the brutal resampling) is still fast for me (12 sec for 8000 epochs):
import numpy as np

import mne
from mne import io
from mne.datasets import somato

def test():
    # Load real somatosensory sample data.
    data_path = somato.data_path()
    raw_fname = data_path + '/MEG/somato/sef_raw_sss.fif'
    n_events, tmin, tmax = 8000, -0.002, 0.015

    # Setup for reading the raw data
    raw = io.Raw(raw_fname, preload=True)
    # Pick some single channel and match ABR sampling rate
    ch_names = ['MEG 1142', ]
    raw.pick_channels(ch_names)
    raw.info['sfreq'] = 16384.

    baseline = (-0.002, 0.001)
    event_samps = np.random.randint(raw.first_samp + 100, raw.last_samp - 300,
                                    n_events)

    # Making many event_ids to pool across (just in case it matters)
    events = np.c_[event_samps, np.zeros(event_samps.shape, dtype=np.int16),
                   np.random.randint(1, 100, n_events)]

    epochs = mne.Epochs(raw, events, np.unique(events[:, 2]).tolist(),
                        tmin, tmax,
                        baseline=baseline, reject=dict(grad=4000e-13),
                        preload=False, verbose='WARNING', proj=False)
    print(epochs.average().nave)

if __name__ == '__main__':
    import time
    t0 = time.time()
    test()
    print(time.time() - t0)

Is it possible that you were hitting a slowdown with the use of resample in your code? If that's not it, then changing the latest example I posted so that it does have a slowdown (without adding a raw resample) should allow me to continue debugging.

Ah.. yes... Your example is past for me too... Is there anything in the EDF case that would make it slower than the FIFF case? We don't have sample EDF data, do we?

(My ABR dataset is all BDF files)

Yeah, can you try to reproduce using a file from mne/io/edf/tests/data/?

You can just use a bunch of events occurring at the same time since the file will be too small to actually spread them out. And instead of changing the sample rate, getting the same number of samples by adjusting tmin and tmax should work.

@haribharadwaj I have tried with FIF, EDF, and BDF and always get the same result (quick loads) with 8000 epochs:
import numpy as np
from os import path as op

import mne
from mne import io
from mne.datasets import sample

edf_dir = op.join(op.dirname(mne.__file__), 'io', 'edf', 'tests', 'data')

def test(name='edf'):
    if name == 'fif':
        raw_fname = op.join(sample.data_path(), 'MEG', 'sample',
                            'sample_audvis_raw.fif')
        raw = io.Raw(raw_fname, preload=True)
        ch_names = ['MEG 1142']
    elif name == 'edf':
        raw = io.read_raw_edf(op.join(edf_dir, 'test.edf'), preload=True)
        ch_names = ['C2']
    else:
        raw = io.read_raw_edf(op.join(edf_dir, 'test.bdf'), preload=True)
        ch_names = ['Cz']

    ratio = 16384. / raw.info['sfreq']
    n_events = 8000
    tmin, tmax = -0.002 * ratio, 0.015 * ratio
    bmin, bmax = -0.002 * ratio, 0.001 * ratio

    raw.pick_channels(ch_names)
    events = np.zeros((n_events, 3), int)
    events[:, 2] = 1
    events[:, 0] = raw.first_samp + 100
    epochs = mne.Epochs(raw, events, 1, tmin, tmax, baseline=(bmin, bmax),
                        reject=dict(eeg=150e-6), preload=False, verbose=False, proj=False)
    if epochs.average().nave != n_events:
        raise RuntimeError

if __name__ == '__main__':
    import time
    t0 = time.time()
    test()
    print(time.time() - t0)

Any idea what's going on at your end?

You might try swapping in one of your files into the test above to see if it works or not.

Hmm.. So with my ABR file things are pretty slow.  Even if I just iterate over the epochs object from above as in:
for k, epoch in enumerate(epochs):
    print k

Each print takes about a second! Because epochs.average() iterates, you get the kind of delays I talk about. I think I am going to give you guys the file to play with :P

Sure, I think I mentioned before you can record ~1 sec of data and then replicate with that, it will make the transfer less annoying. But the full file is also okay :)

So I pre-processed the data (essentially just filtering) and wrote a fif file:
http://nmr.mgh.harvard.edu/~hari/ABR_EPOCHING_WOES/I14L_3levels_ABR_raw.fif
Try the following on it
import mne

# Load pre-processed data from fif file
raw = mne.io.Raw('I14L_3levels_ABR_raw.fif', preload=True, proj=False)
eves = mne.find_events(raw)  # Should read about 30,000 events
cond = [3, 6]  # A condition of interest (2 polarities), about 10,000 events

epochs = mne.Epochs(raw, eves, cond, tmin=-0.001, proj=False,
                    tmax=0.014, baseline=(-0.001, 0.001),
                    reject=dict(eeg=25e-6), verbose='INFO')
abr = epochs.average()

Thanks!

Wow, all caps on the folder name! This must be keeping you up at night...

I think I might have found the problem in reconstructing raw.times on every access. In making the code more DRY I might have slowed it ... I'll try to fix it tonight or tomorrow morning. @dengemann @agramfort we might want to get this one into 0.9 since it is a pretty brutal slowdown.

@dengemann @agramfort we might want to get this one into 0.9 since it is a pretty brutal slowdown.

Can we somehow consider this as a bug? ;)

Ahh! I see.. Thanks for the catch @Eric89GXL

Limiting the events to [:1000] took 42 seconds on my laptop, and with #2126 made it take 0.1 seconds. Sheesh. Sorry @haribharadwaj... can you see if the PR fixes your code?

Woah! With #2126, 10,000 trials got done in like a second! Awesome! Thanks @Eric89GXL

Welllll I did introduce the slow down in the first place so don't thank me too heartily

I think the speed up is way more than 400x


Create outputs programmatically or at runtime

Hello,
In R I can create outputs with string ids like this:
setup_output <- function(chart_id){
  output[[paste0("chart_", chart_id)]] <- renderUI({
    return(some_function(chart_id))
  })
}

and then call setup_output("1"), setup_output("2") etc. in a loop.
How could I do that in Python? Not only for outputs but also for reactives and observers?

Hi @uzpaka, it's much the same in Shiny for Python. You can pass an id parameter to @output if you want to use a dynamic name; if you do that, then the function name is ignored.
def setup_output(chart_id):
    @output(id=f"chart_{chart_id}")
    @render.ui
    def _():
        return some_function(chart_id)

Reactives and observers don't need to be uniquely named beyond their local scope, so you can just create them as you normally would--no need for dynamic naming.
(But also, this is made so much easier if you use modules instead...)

This is great, thanks!


How to customize/override the some functions of the plugin?

I followed up the strapi plugin guide on how to override.
I've copied the original functions.js to /extensions/comments/services/utils/functions.js,
and tried to modify checkBadWords function.
But nothing changes.
Is override only apply to default strapi plugins?
How can I override checkBadWords function? Thanks for help!

@loongmxbt  I think you've to extend also the service file to use your new function. Strapi is supporting auto extensions only for the core files of services, controllers etc. All that is in addition (like this util) is not supported by default.
Just extend the service file and use your updated function. That should work.


Feat: Create a Detailed page

Describe the feature
@arghadipmanna101
we can create detailed page for product that will redirect us to seperate route /:product-id/:product-name
Add ScreenShots

we can add seperate page somethig like this

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@arghadipmanna101
thank you

@arghadipmanna101
please add level lable

@arghadipmanna101
please add lable so i can procede and start working


uno wifi cant insert data

Arduino IDE version: 1.8.13
Arduino UNO WIFI rev 2
full spec. https://store.arduino.cc/arduino-uno-wifi-rev2
OS: windows 10
MariaDB 10 (on synology NAS)
Arduino connect with wifi but cant insert sample data to database.
Update code with WIFI ssid/ password. Sql user/password/ip adress/ports/database/

Create sample database (code from sample code)
update sketch with wifi /DB
compiling without problem
connect to wifi -OK
connect to database -OK
insert data - false

I tray to insert data without fefatult table/valuet. I put full Insert string. without result.

I borrowed arduino boart with espp8266 (clone of wemos d1) - all code works grate.
Where is the problem.
And in advance I apologize for mistakes, I am a beginner

Hi @komargm
Thanks for your interest in the library.

I am a beginner

Your issue report is so good for a beginner, and your approach is also great by testing with an ESP8266 to be sure at least some part of the library and your NAS MariaDB installation are all working.
As you can see in the supported list, UNO WiFi Rev 2 has not been supported yet, even the compilation is OK. That's why you've seen the Starting Basic_Insert_WiFiNINA on Unknown Board
I currently don't have this outdated but expensive UNO WiFi Rev 2 to test, and also have no intention to buy one to test and add support to that board, I just can only suggest the following :

Buy a different cheaper, more powerful and popular board, such as ESP8266/ESP32 or even WT32_ETH01
Turn on better debug level in defines.h

#define _MYSQL_LOGLEVEL_        4
...
#define _WIFININA_LOGLEVEL_     1

then post the debug terminal output here, hopefully someone can help and fix the issue.
As I said earlier, I have no hope to add support to this board because I have no such a board to debug. I'll close the issue now and will reopen when actually working on it.
Good Luck,


Unable to authenticate using an account with a all numeric radius password

Issue reported where a user was unable to login when authenticating an account with an all numeric radius password.
Error is raised by the utility when using the Connect-Vault function:
C:\bin\vault\Pacli.exe : parse error, expecting `__PACLI_STRING'
At line:1 char:1
Fix identified (confirmed as working but not implemented here yet):
The Connect-Vault function requires the below edit for this scenario, which will add quotes around the values passed to the utility:
Old Value:
$pacliLogon = (Invoke-Expression "$pacli LOGON $($PSBoundParameters.getEnumerator() | ConvertTo-ParameterString)" -ErrorAction SilentlyContinue) 2>&1
New Value:
$pacliLogon = (Invoke-Expression "$pacli LOGON $($PSBoundParameters.getEnumerator() | ConvertTo-ParameterString -quoteOutput)" -ErrorAction SilentlyContinue) 2>&1
Testing required before release to see if this adversely affects other logons at all.

Connect-Vault now updated


Install instructions reference Connext 5.3.1

Our install instructions for RTI Connext refer to installing 5.3.1, but this does not seem to be available from RTI's website. Only 6.0.0 is available for download, which affects instructions for macOS and Windows.
Places where our instructions are out-dated:

macOS binary installation
macOS source installation
Windows  binary installation
Windows source installation

If you have a RTI Connext account, you can download 5.3.1 binaries. But, as far as I see, the 30 days trial download for 5.3.1 it's not more available. We can update the tutorials for making it clear.


Feature/add epg

Closes: #17

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@cbfdd71). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             main       #23   +/-   ##
========================================
  Coverage        ?   100.00%
========================================
  Files           ?         3
  Lines           ?       111
  Branches        ?         0
========================================
  Hits            ?       111
  Misses          ?         0
  Partials        ?         0

Continue to review full report at Codecov.

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


Member sep update

Update member list & logos
Pre-submission checklist:
Please check each of these after submitting your pull request:

[ ] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[ ] Is your project closed source or, if it is open source, does your project have at least 300 GitHub stars?
[ ] Have you picked the single best (existing) category for your project?
[ ] Does it follow the other guidelines from the new entries section?
[x ] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[ ] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[ ] Does your project/product name match the text on the logo?
[ x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~5 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Build failed because of:
Membership subcategory "Premier" does not have corresponding entry in settings.membership
Membership subcategory "End User" does not have corresponding entry in settings.membership

Build failed because of:
No cached entry, and Testlio (member) has issues with logo: testlio-logo-blue.svg, ENOENT: no such file or directory, open '/opt/build/repo/hosted_logos/testlio-logo-blue.svg'
No cached entry, and Testlio has issues with logo: testlio-logo-blue.svg, ENOENT: no such file or directory, open '/opt/build/repo/hosted_logos/testlio-logo-blue.svg'
Item Testlio has no image_data
Item Testlio (member) has no image_data


Add scope to columns

Open questions, not for merge
This PR is a way for me to discuss open question - not for merge.
1. How will we coordinate separate PRs of the "scopes epic"?
If you look at commits of this PR, you will notice, that it includes commits of my previous PR, plus commits of my new PR. I don't see a clean way in Github to create a new PR, if my previous PR is not merged.
Q: Do you have an idea, how we could resolve it?
2. In the DataFrames, should "scope" be a part of a column, or a part of a row (index)?
In the new PR, i started adding "scope" to projections. Projections are added to DataFrames with index=['company'] and columns=['year']. Scope could be a 3rd dimension, but DataFrames work only with 2d. There were 2 easy way, how i could proceed:

add scope to index, making a DataFrame of format index=['company_scope'] and columns=['year'], example: ['US00130H1059_S1S2']['2019']
add scope to columns, making a DataFrame of format index=['company'] and columns=['year_scope'], example: ['US00130H1059']['2019_S1S2']

Looking through the code, i came to a conclusion, that DataFrame in ITR are designed to be of index=['company'], and i went with a 2nd option of columns=['year_scope']. You may see in my code, how it works. But, i could misunderstand.
Q: Should scope be a part of index, or a part of columns?
3. How to handle companies with target scope S1, when calculations work with default scope S1S2?
If you try to run this branch, you will notice, that calculations don't match with the develop branch. The mismatch comes from companies, which in the .xls file set their target scope to S1. In the output table of ITR_GUI, the Target score cells for such companies are empty, and Weighted temperature score is incorrect.
However, if i modify those companies to target scope of S1S2, on both develop branch and my branch, - then the calculations change on both branches, but match between each other.
Q: What is a proper way, to handle companies with target scope S1?

Hello @MichaelTiemannOSC,
i have 3 questions about scopes. I asked them in this PR, to have a real code, as an illustration.
Hopefully you could answer them. We may discuss them here

To answer your first question: I didn't learn git the first time around, and it's a constant struggle for me to get expected results.  Nevertheless, fully separate features should live in separate branches.  I think your trouble begins when you create a PR, which though a branch, is really a special kind of branch that one does not want to branch from.  What I've done in the past is create hierarchies of features of named branches (like develop, develop-pint, develop-pint-steel) and then either collapse them down (when steel worked well enough I merged it with pint) or create PRs that contain the changes you want.  But I think that creating PRs branched from PRs will make nobody happy.  And thus it's probably not a good idea to start a PR until you are really ready to merge, whereas you can start a branch any time you have a new idea.
For question #2, recall that in the pandas world, we can talk about "wide" data (columns create a series) or "long" data (columns are strictly dimensions and series are always in rows).  You can look at pd.wide_to_long, pd.melt, and pd.pivot to see that explained.  I would not merge two things into a compound column.  Let the year be the year and the scope be the scope, and find it either using wide or long idioms.
At present the tool treats unreported scope data as zero, so if you present only S1 data, it will presume that all the S2 values are zero.  Presently, to make the GUI and other things happy, we promote single-scope data to values labeled as S1+S2 even when we have no S2 data (and treat S2 as zero).

Thank you, Michael!
For Q1, I prefer to work with small PRs, because it gives us a more focused development and review, which could result in higher SW quality. I pay attention to clean commits, which will makes maintaining and troubleshooting in future easier for us, that's why I also would like not to squash.
Could you create a feature branch for me, - and I will open all my PRs to it, instead of develop branch? This way, we could easier review and merge smaller PRs into it, w/o impacting develop branch, until we finish the epic.
This seems to satisfy interests of both of us

For Q2 and Q3, I will try your proposals

we resolved the questions, i close the PR now, and will try out the proposals


Unable to chat in LOOC as downed borg

Description
On Salamander today as a Borg I was able to chat normally for the first part of the round. Later, I was shot and downed and was no longer able to chat in LOOC. I could select the channel and type messages to send in LOOC but when submitting/hitting enter for the message it would simply not appear in chat.
Reproduction
Join game as borg, get downed, attempt to chat in LOOC.

Additional context
Possibly this has something to do with the odd half dead / half alive state of a downed borg? I wouldn't expect it to effect chat in this way.

If crit bodies can't use LOOC by design, I think it makes sense for downed borgs to be unable to do so as well.

but crit borgs can speak

Also, this quasi crit state prevents the borg from stating laws as it's an action. Since you can't explain this bug in LOOC you just kinda have to hope they already know this and don't instantly think you're valid.


Service unavailable errors (cache too!)

hey @danger89 ! It looks like we are hitting some previous errors with the server, you can see here: https://github.com/rocky-linux/documentation/actions/runs/3713744520/jobs/6296764864
WARNING:fake_useragent:Error occurred during loading data. Trying to use cache server file https://useragent.melroy.org/cache.json
Traceback (most recent call last):
  File "/opt/conda/lib/python3.9/site-packages/fake_useragent/utils.py", line 64, in get
    urlopen(
  File "/opt/conda/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/opt/conda/lib/python3.9/urllib/request.py", line 523, in open
    response = meth(req, response)
  File "/opt/conda/lib/python3.9/urllib/request.py", line 632, in http_response
    response = self.parent.error(
  File "/opt/conda/lib/python3.9/urllib/request.py", line 561, in error
    return self._call_chain(*args)
  File "/opt/conda/lib/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/opt/conda/lib/python3.9/urllib/request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/conda/lib/python3.9/site-packages/fake_useragent/utils.py", line 139, in load
    browsers_dict[browser_name] = get_browser_user_agents(
  File "/opt/conda/lib/python3.9/site-packages/fake_useragent/utils.py", line 100, in get_browser_user_agents
    html = get(
  File "/opt/conda/lib/python3.9/site-packages/fake_useragent/utils.py", line 87, in get
    raise FakeUserAgentError("Maximum amount of retries reached")
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
WARNING:fake_useragent:Error occurred during loading data. Trying to use cache server file https://useragent.melroy.org/cache.json
Traceback (most recent call last):
  File "/opt/conda/lib/python3.9/site-packages/fake_useragent/utils.py", line 64, in get
    urlopen(
  File "/opt/conda/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/opt/conda/lib/python3.9/urllib/request.py", line 523, in open
    response = meth(req, response)
  File "/opt/conda/lib/python3.9/urllib/request.py", line 632, in http_response
    response = self.parent.error(
  File "/opt/conda/lib/python3.9/urllib/request.py", line 561, in error
    return self._call_chain(*args)
  File "/opt/conda/lib/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/opt/conda/lib/python3.9/urllib/request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

and reported here to link the issues. https://github.com/urlstechie/urlchecker-action/issues/99
Is this ephemeral (should they try again?) and I wanted to ask - should we explore ways to provide the data that do not need a server? E.g., I'm an ORAS Python developer, and I use oras to store random blobs of data in GitHub packages. I could help with this idea if you are interested!

So Yea, you were hitting my server to hard. I needed to change the code again to avoid my server from being ddos (mostly not on purpose but still).
Please update the pip package once again, it should now have the json file locally installed. Meaning the user agent strings are now part of the pypi package. Update using:
pip install --upgrade fake-useragent

Thanks! I'll pass this on. So question - why do we need a server for the data? Doesn't that make it harder to manage, long term?

We don't use a server for data anymore. Again it's stored locally within the pypi package.

Woot! That's great :)


Fix Rollbar issue

We’re accumulating rollbar issues at a rate of a couple hundred per day and are at 70% of quoate (renewing on July 28).

Production
Critical
455 occurrences: https://rollbar.com/finestructure/SPI-server/items/16/
server: duplicate key value violates unique constraint "idx_repositories_owner_name" (_bt_check_unique)
Status: Active
2 occurrences: https://rollbar.com/finestructure/SPI-server/items/20/
Abort.500: Internal Server Error
Status: Active

This started last Sunday around around 1pm UTC. I think it’s related to the bulk import. We may have had a number of those in the db under different urls and they clash once the current owner/repo are resolved.
Need to investigate and resolve this soon or we’ll use up our Rollbar quota.

We may have had a number of those in the db under different urls and they clash once the current owner/repo are resolved.

So we do now have prevention against URLs which redirect to another, but that was done after the bulk import.
Do we have any way of running a query to detect all the broken URLs?
Also do you have any ideas about how we could introduce some sort of auto-fix resolution? In this particular instance it's more complicated because the URL storage is in a git repo, not a database.
If we had a query which returned all the duplicates, we could have some sort of API which returned this list? We might be able to then create a CI job which periodically checks, and as it'd be a trusted source it could automatically create the merge request for us using the GitHub API.

We don't have any of that yet, it's a manual process for now. I thought I had fixed the dupes manually after the import, but I had not. 🙄
Sven and I had a quick chat about this issue today and it's something we'd like to improve. I can include you in that group chat if/when we continue talking if you'd like?

For sure invite me in, I just slipped momentarily into my work's resiliency brain 😅  "Auto-fixes for everything!"

Oop

Housekeeping - this has long been fixed :)


high_volubility.py: using only sad

When using the sad and not diar parameter, high_volubility.py seems to crash on my end. I ran
python utils/high_volubility.py data/ACLEW_high_volubility/0256.wav --sad NoisemesSad &> log.txt
and got the log.txt file that I am attaching here.
log.txt
Since it crashes, the temp files still exist at the end of the run (which may or may not be something to fix)

So, I am not able to reproduce the first error
Traceback (most recent call last):
File "yunified.py", line 159, in
for feat in readHtk(INPUT_DIR+"/"+file, HTK_CHUNKSIZE, preSamples):
File "G/coconut/fileutils/htk.py", line 43, in readHtk
f.seek(-(preSamples * sampSize), 1)
OSError: [Errno 22] Invalid argument
without access to 0256.wav - please provide the file if you want me to look into this.
I can reproduce the second error
Traceback (most recent call last):
File "utils/high_volubility.py", line 604, in
main()
File "utils/high_volubility.py", line 571, in main
sorted_files = read_analyses(temp_abs, args.sad, nb_chunks*3, args.diar, args.mode)
File "utils/high_volubility.py", line 344, in read_analyses
"to increase the size of the chunks.")
ValueError: No moments for the {} mode has been found.
Try to decrease the step parameter or to increase the size of the chunks.
and this seems to be a problem in the fundamental way the high_volubility.py script is written - the script crashes, if no segments of the target type are being found in a "chunk". It seems @alecristia is the original author, maybe she can look into this.


Implementing scroll to top feature

@SaranshBangar I would like to add the scroll to top feature, could you please assign me this under gssoc-ext, hacktoberfest-accepted and level2

@AswaniBolisetti Sure, you can add them after the Contact section. Please remember to -

Send a photo here of the final look before raising a PR
Follow the proper file structure
Star the repo :)

All the best!


Complexity algorithm should work with fragments

Get fragment tests to pass

Added tests for fragments in #75.
To close this issue both fragments and inline fragments should be handled.

We will need to reassess how fields are stored for union types. Currently, the typeWeight object does not store any fields directly on the union type. Instead all fields are stored on the type comprising the union type. When analyzing complexity inline fragments are used do differentiate between fields unique to one or more of the types in the union. We should be able to use the type specified in the inline fragment to resolve this field.
However for types that are common to the all types in the union, they complexity algo will search for the field on the Union type which currently throws an undefined error. In the below case heroUnion resolves to SearchResult which is a union of Human and Droid types. The below query throws and undefined error when getting the complexity of name which does not exist in the list of fields for SearchResult on the typeWeight object
 query {
  heroUnion(episode: EMPIRE) {
    name
    ... on Droid {
      primaryFunction
    }
    ... on Human {
      homePlanet
    }
 }
}

A potential approach would be two look for common fields when we parse the schema and add these to both the Union type SearchResult and the individual types Droid and Human.
@evanmcneely thoughts?


Categories

There's seems to be no way to add default app for everything inside a mime category like video/

Yeah, this is really useful if you have one app you use for every picture, another for every text file, etc. Looking at other applications that replace xdg-open, I see mimi's readme mentions it.

@Svadkos @Mrfiregem this is implemented on master now :)


Fix check for Microsoft Azure CLI substring

Microsoft Azure CLI (32-bit) and similar strings will no longer match the check. Modified to check for the substring instead.
This is a patch.
Needs someone to double-check testing that this works correctly when Azure CLI is installed, and when it is uninstalled.

/azurepipelines run

Looks like linux is failing because it's already using node v20 and the dependency we have on teams package (and it's nested dependencies) creates a warning on install which fails the tests.  This change is specific to Win32 (an needed) so I'm going to merge it any way.


Updated logrotate frequency to allow for an override

To use this feature add additional file/file groups (via wildcard) and times to AdditionalLogrotateFile.

🚢

🚢

🚢


Project Not Created (Despite confirmation)

The screenshot shows my attempt to create a project using a template using the Azure DevOps Demo Generator

I get this error when I click the 'Navigate to project' button:

I also confirmed that the project was not created in my selected organization.

Used solution provided in this comment in issue #1040


Regarding building with source

We are building vernemq using source as per the instruction provided here : https://vernemq.com/downloads/
Initially, Erlang OTP was installed using binary and we faced the same issue so again we installed using the repository way as mentioned here https://www.erlang-solutions.com/downloads/#
We followed the instructions, installed necessary libraries and the build was successful.
We ran the vernemq and it worked fine.
Next step, we tried to containerize so that we could deploy on a server. We used the alipne version mentioned here : https://github.com/vernemq/docker-vernemq/blob/master/Dockerfile.alpine
Below is the content
FROM alpine:3.20.0

RUN apk --no-cache --update --available upgrade && \
    apk add --no-cache ncurses-libs libstdc++ snappy-dev nano && \
    addgroup --gid 10000 vernemq && \
    adduser --uid 10000 -H -D -G vernemq -h /vernemq vernemq && \
    install -d -o vernemq -g vernemq /vernemq

# Defaults
ENV DOCKER_VERNEMQ_KUBERNETES_LABEL_SELECTOR="app=vernemq" \
    DOCKER_VERNEMQ_LOG__CONSOLE=console \
    PATH="/vernemq/bin:$PATH"

WORKDIR /vernemq

# copy the release files. this is instead of the binary
COPY . .

# Note that the following copies a binary package under EULA (requiring a paid subscription).
RUN chown -R 10000:10000 /vernemq && \
    ln -s /vernemq/etc /etc/vernemq && \
    ln -s /vernemq/data /var/lib/vernemq && \
    ln -s /vernemq/log /var/log/vernemq

# Ports
# 1883  MQTT
# 8883  MQTT/SSL
# 8080  MQTT WebSockets
# 44053 VerneMQ Message Distribution
# 4369  EPMD - Erlang Port Mapper Daemon
# 8888  Health, API, Prometheus Metrics
# 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109  Specific Distributed Erlang Port Range

EXPOSE 1883 8883 8080 44053 4369 8888 \
       9100 9101 9102 9103 9104 9105 9106 9107 9108 9109

VOLUME ["/vernemq/log", "/vernemq/data", "/vernemq/etc"]

HEALTHCHECK CMD vernemq ping | grep -q pong

USER vernemq

CMD ["vernemq", "start"]

The image is built fine. When we try to run the image it throws below error

/vernemq/bin/vernemq: line 189: /vernemq/bin/../erts-14.2.1/bin/run_erl: not found
vmq_cluster_node_sup

The run_erl file is present at the mentioned location but for some reason shows not found.
Similarly, when we try to execute vernemq console it throws below error

/vernemq/bin/vernemq: line 139: /vernemq/bin/../erts-14.2.1/bin/escript: not found

Here again escript file is present.
Any help is greatly appreciated to resolve this error. Thanks.

Apologies, I cannot help with build issues.

👉 Thank you for supporting VerneMQ: https://github.com/sponsors/vernemq
👉 Using the binary VerneMQ packages commercially (.deb/.rpm/Docker) requires a paid subscription.


Identify testing library and practices followed

Identify libraries used for the Vue app testing and practices followed
Jest is one of the options

Not required for now. Closing


I/O error because OAuth 2.0 token expires

Now that OAuth 2.0 is required, I've been having the occasional issue where my token expires and Drive fails to mount properly. When it's happened, removing ~/.gdfuse and reauthenicating works. Below are snippets from the logs.
gdfuse.log
[0.378510] TID=4: Error during request: Unexpected error response: {
  "error": "invalid_grant",
  "error_description": "Token has been expired or revoked."
}

curl.lorg
[0.201252] curl: data in: {
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "errors": [
      {
        "message": "Invalid Credentials",
        "domain": "global",
        "reason": "authError",
        "location": "Authorization",
        "locationType": "header"
      }
    ],
    "status": "UNAUTHENTICATED"
  }
}

[0.375038] curl: data in: {
  "error": "invalid_grant",
  "error_description": "Token has been expired or revoked."
}

I've been reviewing the Google Cloud docs and found that this should work:
gcloud secrets update "SECRET_ID"  --remove-expiration
However, it turns out I need to set up a billing account; I'd rather not if I can help it.
...
ERROR: (gcloud.secrets.update) FAILED_PRECONDITION: Billing account for project 'REDACTED' is not found. Billing must be enabled for activation of service(s) 'secretmanager.googleapis.com' to proceed.
...
  reason: UREQ_PROJECT_BILLING_NOT_FOUND

Is there a best method of removing the expiration time or automatically refreshing tokens? Thanks!

Did you figure out a way to solve this? I ended up setting up a script with my secret in it and I run it every week when I can't access the folder. I don't have a billing account either.

Ok. I added a description of this in the wiki.


Bump OSA to head of liberty

OSA has removed pywbem as it is not needed and wheels were failing to
build. This commit bumps the OSA SHA to include that fix.
Related: #910

+1

recheck_swift
recheck_ceph

recheck_ceph

git lg 0306a5f1e7c41b4476341d3de058de25389ec725^..4e89921b9d35fbb27b2cdd733c75d30b0e61e957
4e89921 - (HEAD, origin/liberty) Remove broken package "pywbem" (19 hours ago) <Kevin Carter>
c4e35cc - Gate: Allow jenkins user access to logs (19 hours ago) <Jesse Pretorius>
af7bc88 - Updates all repo SHAs to open up work on 12.0.9 (4 days ago) <Jesse Pretorius>
0306a5f - (tag: 12.0.8) Disable Neutron port security driver on upgrades (4 days ago) <Nolan Brubaker>

Until rpc-repo has a built repository with the 12.0.9 tag this will not work as this gate job does a clone from rpc-repo. Either there needs to be a request to OSA to tag so that the current jenkins job to build the repo may be activated, or the jenkins job needs to be modified to allow it to build from something other than a tag.


autorest is not supporting a not required query parameter on swagger

hi,
my team and I are trying to add a new query parameter that is not required. On the client's generation, the function signature on the function in the class is changing, but on the interface, it is not.
that causes a barking of the code because the class does not implement the interface correctly.
we wanted to make sure that the fact that the parameter isn't required is the problem so we changed it from ' "required": false '  to ' "required": true ' and the issue was resolved.
Could you advise on how to solve this issue, which blocks us and therefore is the highest priority?
thank you!

the function signature on the function in the class is changing, but on the interface, it is not.

V3 doesn't generate interfaces. Can you provide a code example or a reference to the project?

thank for the quick answer!
sure:

Ok, this is a management plane issue. @m-nash @ArcturusZhang @Yao725 - can you please take a look?

Hi @noahadashMS, it seems that you are talking about track 1 code, right? We are going to deprecate track 1 management plane SDK soon, so the release will not be allowed without special justification. Maybe you could take a look at track 2 and have a try.


⚠ ClamAV has degraded performance

In 49ad0bd, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 77 ms

Resolved: ClamAV performance has improved in 093da2c after 5 minutes.


Add australia east to list of Azure replication regions

Description of the change
Added the australiaeast region to the list of Azure regions that the image is replicated to. This is needed by us as we don't provision infrastructure in any of the Azure regions that are currently configured for replication therefore we are unable to use the image without this change.
Type of change

[x] Bug fix (non-breaking change that fixes an issue);
[ ] New feature (non-breaking change that adds functionality);
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected);
[ ] Documentation (a documentation or example fix not affecting the infrastructure managed by this module);

Checklists
Development

[ ] All necessary variables have been defined, with defaults if applicable;
[ ] The HCL code is formatted;
[ ] An AMI has been created in some AWS account, and the AMI is working as expected;

Code review

[ ] This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached;
[ ] This pull request is no longer marked as "draft";
[ ] Reviewers have been assigned;
[ ] Changes have been reviewed by at least one other engineer;

@daniel-edwards-nz as the GitHub action jobs contain secrets, they won't run because you are an outside contributor.
Opened https://github.com/spacelift-io/spacelift-worker-image/pull/71 to merge your change.
🙏 Thanks for the contribution, I'll get this out ASAP!


Plugin？  Relu or PRelu

The original version of yolo uses LRelu. Why does your plugin use PRelu, which will have a little impact on the accuracy of the results, and now many caffe-yolov3 use Relu

The repo applied LRelu, too.The comment in NvInferPlugin.h header which figures out the createPReLUPlugin function actually implemented as LeakyRelu not PRelu .I am not sure it is correct in recently version.


v18 branch: util undefined

Was looking at the diff for v18. It seems like this:
https://github.com/ssbc/secure-scuttlebutt/blob/8832edd88c9348bb76198d26fbe5401b1fac37c5/indexes/links.js#L97
needs to be u.rebox

thanks, the tests must not hit that case. fixed!