text:
LoRA Fine Tuning

This is just the first draft so we can start building this feature.

Added dataloader.py, which loads data for training
Added train.py, with the current training loop
Added lora.py, for LoRA wrapper of the stage 1 Transformer
Added dummy_dataset folder with 25 data samples to work with when testing (VCTK-->p311)
Commented out the initial inference code when stage 1 model is built.

There is no batch processing in the training loop currently (was getting some dimension mismatching in the KVCache.update function, probably not that difficult to solve).
The dataloader works fine, but everything else requires work. This is just a dirty initial draft so we can start working on this thing together! :-)
Hope to hear some insights! I have time to put into this feature, so any pointers would be great! Am not super well-versed in AI, so bear with me.

I'm going to try getting a very basic thing to run. Currently, there are a couple issues:

LoRA parameter sizes don't match properly with the token embeddings and output layers. This causes tensor dimensions mismatch error. Also, not sure if these are the two layers we actually want to add LoRAs to. Probably need to test a lot, including figuring what the rank value should be.
def _train_infer_stage_one breaks

Can make it clean once we've got a basic loop running successfully

I'm going to try getting a very basic thing to run. Currently, there are a couple issues:
LoRA parameter sizes don't match properly with the token embeddings and output layers. This causes tensor dimensions mismatch error. Also, not sure if these are the two layers we actually want to add LoRAs to. Probably need to test a lot, including figuring what the rank value should be.
def _train_infer_stage_one breaks
Can make it clean once we've got a basic loop running successfully

Got you. Are you not currently having to load all the models onto GPU VRAM though? Given the constraints of a 16GB VRAM, I would probably:

only work with the first stage (this should reduce memory usage significantly as the diffusion model is ~5GB itself)
swap out the Adam optimiser with a SGD optimiser (just to get things running - this should reduce memory usage significantly)
finetune only the first layer, ignore the token embeddings/logit output layer

I'm going to try getting a very basic thing to run. Currently, there are a couple issues:
LoRA parameter sizes don't match properly with the token embeddings and output layers. This causes tensor dimensions mismatch error. Also, not sure if these are the two layers we actually want to add LoRAs to. Probably need to test a lot, including figuring what the rank value should be.
def _train_infer_stage_one breaks
Can make it clean once we've got a basic loop running successfully

Got you. Are you not currently having to load all the models onto GPU VRAM though? Given the constraints of a 16GB VRAM, I would probably:

only work with the first stage (this should reduce memory usage significantly as the diffusion model is ~5GB itself)
swap out the Adam optimiser with a SGD optimiser (just to get things running - this should reduce memory usage significantly)
finetune only the first layer, ignore the token embeddings/logit output layer

Hey @vatsalaggarwal, these are all very helpful insights - much appreciated!
I will implement the points you mentioned:

Only work with first stage
Modify dataloader to return the first two hierarchies of the encodec tokens
Swap over to SGD optimizer to save on memory
Only fine tune the first layer of the first stage to adapt to new speakers (the use case)

Makes sense to just work with stage 1 with cross entropy loss, I just wasn't able to get there - so thanks for that insight.
Should be able to commit these changes later today or tomorrow!

I just wasn't able to get there

Not sure what you mean, but does https://github.com/karpathy/nanoGPT/blob/master/model.py#L184 help?

Makes sense to just work with stage 1 with cross entropy loss, I just wasn't able to get there - so thanks for that insight.

Not sure what you mean, but does https://github.com/karpathy/nanoGPT/blob/master/model.py#L184 help?

It massively helped - I've not worked with transformer networks before (only diffusion & GANs), so studying nanoGPT after you sent it today was very helpful!
Am just making a few more changes for today, then I'm pushing an update :-)

Just committed - here's an overview:

Switched from Adam to SGD optimizer
Modified DataLoader to return first two Encodec token hierarchies as a flattened interleaved tensor (let me know if that looks ok to you?)
Modified LoRA wrapper to only fine tune speaker_cond_pos layer

In nanoGPT-LoRA they fine tune the causal attention layer (https://github.com/danielgrittner/nanoGPT-LoRA/blob/master/model.py#L128). Would it be worth trying something similar with the attention layer here?

Modified training loop

Forward pass entire batch at a time
Wasn't able to format input_pos as (B, T) due to tensor dimension mismatch in KVCache. Unsure if this causes downstream effects or if that's fine?
Loss function call causes error right now. We need to match the GT labels with the model probs. I need some direction here, because I'm not quite sure about what the "unit" of the model's raw output is and what format we need the labels and model outputs to have to correctly calculate the loss. I assumed that the model would output something like a probability distribution of (B, S, V), B=batch_size, S=gen_encodec_tokens_count, V=vocab_size. But it's (B, T, V), with T=text_prompt_token_count. Not sure exactly how to get the data into the right format here for loss calculation, but the remainder of this implementation should be straightforward once this works.

I might start understanding.
Would the idea be to generate a single token at a random location by giving the model:
 +  as the input
E.g. concat (B, P) and (B, T_random) and use to generate (B, V) probs logits for B tokens per batch?
Then input_pos = torch.arange(0, P+T_rand)
with input_pos determined based on the prompt + random number of encodec tokens.
This would then give us B prediction tensors (B, V), for which we will calculate the loss for that batch.
Then the GT labels would be (B, 1), where we take (P+T_rand) on the 2nd dimension (eg the next token in the sequence)?
Is that the right intuition?

I've modified the training loop to be as I described above, and it seems to work.
Somewhere I have made a mistake, causing tensors to be retained in the computational graph across batches, which leads to:
"RuntimeError: Trying to backward through the graph a second time"
Let me know any thoughts! :-)

Still some work to do in dataloader to ensure proper windows (aka blocks in nanoGPT) of X,Y data is prepared for good training.
Haven't been able to solve the error which occurs when calling .backward for the 2nd time:
"RuntimeError: Trying to backward through the graph a second time (or directly access saved tensors after they have already been freed)."
I'm sure it's a very obvious error I've made, but I have not been able to isolate it.

I think I've isolated the backward error (see above) to the caching mechanism in the model. Will work on a solution today and then we should be able to have something training

in the middle of finishing something, haven't had time to look at this, will do it soon, sorry!

in the middle of finishing something, haven't had time to look at this, will do it soon, sorry!

Completely understand, no pressure! I'm just posting updates for whenever you have the time :-)

the updates are super helpful though!
meanwhile I think @lucapericlp and @kaushal07wick are also both keen to make finetuning work, maybe they can help

I have the model training the LoRA layers now, but the data preparation process is currently garbage.
Gonna draw some inspiration from nanoGPT and improve the data preparation, and then we're getting close to running some tests.

@vatsalaggarwal Whenever you have the time, would you be able to help me clear up my current misunderstanding? Solving this last piece would help me finish the PR quickly as the model is training, but I am not properly understanding the meaning behind some of the variables we're working with.
def sample(
    logits,
    guidance_scale: torch.Tensor,
    temperature: torch.Tensor,
    top_p: Optional[torch.Tensor] = None,
    top_k: Optional[torch.Tensor] = None,
):
    # (b, t, vocab_size) <--- is b batch size here? or is it the 2 predicted encodec hierarchies?
    logits = logits[:, -1]
    logits_cond, logits_uncond_spkemb = logits.split(logits.size(0) // 2, dim=0)
    logits = guidance_scale * logits_cond + (1 - guidance_scale) * logits_uncond_spkemb
    probs = logits_to_probs(logits[0], temperature=temperature, top_p=top_p, top_k=top_k)
    idx_next = multinomial_sample_one_no_sync(probs)
    return idx_next, probs

For this input (b, t, vocab_size), would b be the 2 predicted hierarchies of encodec tokens and not the batch size? One hierarchy conditioned on the speaker, and one not conditioned on the speaker? If b represents the number of predicted hierarchies and not the batch size, then I'm completely with you. If that is not the case, could you help me understand this?
Moving on, during inference-time I would like to understand what happens during forwarding of a batch of size B:
def forward(self, idx: Tensor, spk_emb: Tensor, input_pos: Tensor, targets: Tensor = None, debug_mode = False) -> Tensor:
    mask = self.causal_mask[None, None, input_pos]

    x = (
        self.tok_embeddings(idx)
        + self.pos_embeddings(input_pos)
        + self.speaker_cond_pos(spk_emb) * self.spk_cond_mask
    )

    for layer in self.layers:
        x = layer(x, input_pos, mask)
    x = self.norm(x)
    logits = self.output(x)

    if targets is not None:
        # dummy variables for testing
        top_p = 0.95
        guidance_scale = 3.0
        temperature = 0.25
        temperature = torch.tensor(temperature, device=self.device, dtype=self.precision)
        top_k = None
        top_p = torch.tensor(top_p, device=self.device, dtype=self.precision)
        guidance_scale = torch.tensor(guidance_scale, device=self.device, dtype=self.precision)
        # logits is (B, T, V)
        # We need to swap the 2nd and 3rd dimensions to calculate loss
        # (B, T, V) -> (B, V, T)

        # Generate output token idx just for testing
        out_idx, probs = sample(
            logits,
            guidance_scale,
            temperature,
            top_p,
            top_k,
        ) # out_idx is 1 number from 0 to 2561 (vocab size).

        # Swap the 2nd and 3rd dimensions but keep same value positions
        logits_tmp = logits.permute(0, 2, 1)

        if debug_mode:
            print("prompt last idx: ", idx[:, -1]) # (B, 1)
            print("last target idx: ", targets[:, -1]) # (B, 1)
            print("out_idx: ", out_idx) # (1)? Would expect (B, 1) here, like the inputs.

        loss = F.cross_entropy(logits_tmp, targets)
        return logits, loss

    return logits, None

Here, the input arguments I pass to the model forward during training are:
# Prompt, representing tokenized text prompt + random number of flattened interleaved encodec tokens
idx --> (B, S)

# Speaker embedding, isn't causing any trouble
spk_emb --> (B, 1, 256)

# Input position, representing the number of predictions to make
input_pos -->(S,) # Setting this to (B, S) causes the KVCache and Attention layers to fail during inference (dimension mismatch)

# Targets, or GT labels used to calculate loss. This is the same as X, but with the random window of Encodec tokens shifted forward by 1 (eg the next token in the sequence)
targets --> (B, S)

My intuition is wrong here, and the output of the model is (2, S, V) where I would expect (B, 2, S, V). But I am clearly missing something, given that we're supposed to process B tokens in parallel for the batch. Could you help me understand?
My gut feeling is that input_pos is supposed to be (B, S) for the model to predict B tokens. I tried this, but it causes dimension mismatch in KVCache and Attention.
I will work on making KVCache and Attention compatible with a (B, S) input_pos, but you know much more about this than me, so maybe you could share your insight on this?

For this input (b, t, vocab_size), would b be the 2 predicted hierarchies of encodec tokens and not the batch size?

b is batch size, t is timesteps, vocab_size is vocab_size... the hierarchies are flattened and interleaved into one for the first stage model

My intuition is wrong here, and the output of the model is (2, S, V) where I would expect (B, 2, S, V)

does my previous comment help?

I tried this, but it causes dimension mismatch in KVCache and Attention
I will work on making KVCache and Attention compatible with a (B, S) input_pos, but you know much more about this than me, so maybe you could share your insight on this?

KVCaching isn't relevant during training, that should be switched off...

I think I've isolated the backward error (see above) to the caching mechanism in the model.

this shouldn't be used during training

Haven't been able to solve the error which occurs when calling .backward for the 2nd time

Do you mean for the second iteration? Have you zeroed gradients?

I might start to understand a little bit here.
Would the idea be to generate a single token at a random location for each batch by giving the model:
(prompt) + (random number of GT encodec tokens) as the input?
So we would concat (B, P) and (B, T_random) prompt and encodec tokens respectively, and then use that to generate (B, V) tensor logits for B tokens per batch?
Then input_pos = torch.arange(0, P+T_rand) for a given T_rand ∈ [0, T_max - 1].
This would then give us prediction tensor for the batch (B, V), for which we would calculate the loss.
Then the GT labels would be (B, 1), where we take (P+T_rand) on the 2nd dimension from the GT encodec tokens (the next GT token in the sequence that the model is supposed to predict)?
Is that the right intuition?

Didn't get this... best thing might be to work through the NanoGPT training loop... but rough idea is to create a row of (B, S) which contains all the text and audio tokens concatenated together. Then, you apply next-token pred. This does the right thing because of causal masking.

I think I've isolated the backward error (see above) to the caching mechanism in the model.

this shouldn't be used during training

Haven't been able to solve the error which occurs when calling .backward for the 2nd time

Do you mean for the second iteration? Have you zeroed gradients?

I might start to understand a little bit here.
Would the idea be to generate a single token at a random location for each batch by giving the model:
(prompt) + (random number of GT encodec tokens) as the input?
So we would concat (B, P) and (B, T_random) prompt and encodec tokens respectively, and then use that to generate (B, V) tensor logits for B tokens per batch?
Then input_pos = torch.arange(0, P+T_rand) for a given T_rand ∈ [0, T_max - 1].
This would then give us prediction tensor for the batch (B, V), for which we would calculate the loss.
Then the GT labels would be (B, 1), where we take (P+T_rand) on the 2nd dimension from the GT encodec tokens (the next GT token in the sequence that the model is supposed to predict)?
Is that the right intuition?

Didn't get this... best thing might be to work through the NanoGPT training loop... but rough idea is to create a row of (B, S) which contains all the text and audio tokens concatenated together. Then, you apply next-token pred. This does the right thing because of causal masking.

Thanks for explaining, that makes sense. I've implemented it, similar to NanoGPT. Pushing momentarily.

The LoRA layer (1st layer in model) is 98k trainable parameters. Will try training now to validate the current code.

Currently sweeping learning rate and LoRA rank, alpha, dropout. Graphs look like this so far:

I'm unsure whether the data is fed into the model properly @vatsalaggarwal. I measure very high loss on the frozen foundational model (loss 8 - 12) when evaluating the model, but the audio sounds just fine. During training of LoRA layers I can reduce loss down to 4-5.
The data is prepared like in nanoGPT but with audio added after the tokenized text:

Loop through all text & wav files of dataset
Tokenize text, extract encodec tokens from wav, take only first 2 hierarchies of encodec tokens
Sequence = <tokenized text + encodec tokens + EOS> concatted. Here, I have tried EOS=1024 and EOS = 2048, but it didn't make a big difference on loss measurements. I also tried appending EOS between the tokenized text and encodec tokens, but this also made little difference in the loss evaluation on the foundational model.
Concat Sequence to the FULL dataset tensor (eg one huge 1-dimensional tensor)

During Training:

A sliding window of block_size length randomly selects a window from the full dataset tensor, feeds it into the model and performs next-token pred.
Loss is calculated with Cross Entropy on the raw logits, and the target idx obtained from shifting the input window +1 to the right to get the next window that the model is expected to predict, like in nanoGPT.

Is this the same way that the foundational model was trained @vatsalaggarwal? I would just expect the loss to start out very low, given its ability to generalize extremely well. Were there any nuances in the way you trained the model?

I think @lucapericlp is close to turning this into a working solution (without LoRA), so might be better to add LoRA to that... hopefully should be out by EOD.
The way you mentioned works for training text-only model, but we had some trouble training text+audio models that way... so the data formats etc were slightly differently, hopefully upcoming PR should clarify!

I think @lucapericlp is close to turning this into a working solution (without LoRA), so might be better to add LoRA to that... hopefully should be out by EOD.
The way you mentioned works for training text-only model, but we had some trouble training text+audio models that way... so the data formats etc were slightly differently, hopefully upcoming PR should clarify!

That is great to hear! I am very interested to see how the solution looks.
Should quickly be able to follow up with added LoRAs to @lucapericlp's solution once pushed. Can run some sweeps to find us the best configuration as well :-)
Thanks!

@danablend / @makorihi check out https://github.com/metavoiceio/metavoice-src/pull/93#pullrequestreview-1934338050

@danablend I think the main thing to keep in mind is: each row is composed of "text tokens | audio tokens | padding"... I think you were taking arbitrary segments of these (per NanoGPT) as that's what they do in the text-LLM trainings, but it doesn't work so great for text->speech training..

@danablend I think the main thing to keep in mind is: each row is composed of "text tokens | audio tokens | padding"... I think you were taking arbitrary segments of these (per NanoGPT) as that's what they do in the text-LLM trainings, but it doesn't work so great for text->speech training..

looking at the README in the other PR, I see
audio_files|captions
./data/audio.wav|./data/caption.txt

but you mention there's a | padding necessary in the finetune dataset as well?

@vatsalaggarwal

@danablend I think the main thing to keep in mind is: each row is composed of "text tokens | audio tokens | padding"... I think you were taking arbitrary segments of these (per NanoGPT) as that's what they do in the text-LLM trainings, but it doesn't work so great for text->speech training..

looking at the README in the other PR, I see
audio_files|captions
./data/audio.wav|./data/caption.txt

but you mention there's a | padding necessary in the finetune dataset as well? or is that post-ingestion within the system

I believe padding is appended in the data preparation step here. Padding token is 2048 as set here

I have gotten LoRAs to train based off of @lucapericlp's awesome work.
Gonna clean it up and prepare for review. Probably going to happen in the weekend.

I have gotten LoRAs to train based off of @lucapericlp's awesome work.
Gonna clean it up and prepare for review. Probably going to happen in the weekend.

NICE! what sort of losses are you getting, and audio?
Did you use https://github.com/huggingface/peft, or did you wrap your own as in this PR in the end?

I have gotten LoRAs to train based off of @lucapericlp's awesome work.
Gonna clean it up and prepare for review. Probably going to happen in the weekend.

NICE! what sort of losses are you getting, and audio?
Did you use https://github.com/huggingface/peft, or did you wrap your own as in this PR in the end?

I've seen losses down at around 0.42 with 15m parameters, just on the last block's attention layer. I haven't actually written the code that loads the model with added LoRA layers yet, so I'm going to get some audio samples once that's there.
I took the LoRA from earlier, which is an adaptation of the one from nanoGPT-LoRA. Would you prefer if I used the Peft library from HF? Could probably change it without too much hassle. It's no so much extra code, now that the fine tuning & data loading has been cracked.

@lucapericlp is the LoRA "master"... what do you think we should?

Re LoRA suggestions, from my experience, the two most impactful factors when comparing vs a full param finetune were:

adapting all layers
training for longer (increasing batch_size with any newly freed VRAM from decrease in learnable params makes this more feasible)

With those insights, I was able to get within a < 1.0pp "accuracy" degradation on the task I was training on.
Increasing rank does improve performance (we started with 8) but, I had found, has diminishing returns & results in marginal gains vs the others levers. Alpha, in that case, was kept static as per the paper (iirc) and we found following heuristic of alpha = 2*rank wasn't particularly helpful in moving the needle.
Might be useful, I had posted this thread that has articles I found helpful (even though, some were published after & replicated my private findings).

@lucapericlp i think we were wondering if it’s worth integrating with PEFT or is the current way of doing things fine?

I'd say using PEFT is preferable purely from standpoint of reducing codebase footprint for "standard" ops where possible.

@danablend any news?

authors: danablend lucapericlp makorihi vatsalaggarwal

repo: metavoiceio/metavoice-src


text:
Facebook login buttons take a long time to load

When the page loads, the normal form fields are there but it takes a while for the facebook button to appear. I think its something true for OAuth related services. Any ideas on how to fix this?

Yeah, that's it!
The thing is that the list of available/configured services come from a meteor collection which takes a bit of time to reach the client at first load...
The only solution I might suggest to investigate is about using fast-render
Let me know how it goes!

source: gharchive/issue

authors: fardeemmunir splendido

repo: meteor-useraccounts/core

license: MIT

license_type: permissive

license_source: github-api


text:
Bug! 非常严重! 在不同环境中加载无效！

在hexo+uikit+jquery在127.0.0.1运行时失败，通过连接监视显示并没有对api的请求
在同环境保存html文件到本地后可以执行，有对api的请求。

F12，观察开发者工具 Console 中是否有报错信息。

无报错。已自行解决，问题在于引入js时async，建议在readme中提示不要开async.。
建议对metingjs等待页面加载完成后再运行。
建议监视页面改动（可能动态加入标签）
谢谢

repo: metowolf/MetingJS


text:
Bias in the accuracy

For figures except for the Wasserstein figure, the accuracy reaches 90% tops.

@shak360 you mentioned that the seed is set constant. Let's try changing that.

repo: meyer-lab/tHMM


text:
Latest Items

Added ability to scrape recent item additions to the Emby library.  Could be used to show recent library changes in Home-Assistant.
Let me know of any possible changes, etc, as this is my first time doing this.
Thanks!

Thanks for the PR!  Looks OK from a quick look.  I'll get a chance to test and hopefully merge this weekend.

Requested changes have been made.  Thanks for pointing out all the lint errors.  I ran it by pylint and I think I have them all corrected.

Once you get those changes taken care of it looks good to merge.

source: gharchive/pull-request


text:
Inconsistent behavior with Solver::SetPreconditioner

Let us assume two simple cases
CGSolver M_solver(M.GetComm());
HypreParaSails M_prec(M);

M_solver.SetPreconditioner(M_prec);
M_solver.SetOperator(M);

does not work. While
CGSolver M_solver(M.GetComm());
HypreParaSails M_prec(M);

M_solver.SetOperator(M);
M_solver.SetPreconditioner(M_prec);

works. It is necessary for e.g. HypreSmoother to set the preconditioner before setting the operator (first case). This is inconsistent behavior, because you get an error if you set a preconditioner which does not support SetOperator (illustrated in the second case).

Hi @juan42,
Yes, we are aware of the inconsistency you describe. This affects all classes derived from HypreSolver except HypreBoomerAMG.
Since the first approach works fine, it has not been a big priority for us to fix this. Do you have a specific use case, where you need to use the second approach?
Veselin

Not a specific use case, just an inconvenience while testing some configurations. I thought it could be misleading for new users.

repo: mfem/mfem


text:
Fix for reusing HypreSmoother

Closes #1795

PR
Author
Editor
Reviewers
Assignment
Approval
Merge

#1802
@tzanio
@v-dobrev
@v-dobrev + @vladotomov
10/06/20
⌛due 10/20/20
⌛due 10/27/20

LGTM

GitLab failure is due to timeout on Lassen. This will be fixed with #1803.

Merged in next for testing...

authors: tzanio v-dobrev


text:
How to actually use? (not duplicate)

I have the controllers connected, and Mario theme and gyro works fine. However, I cannot figure out how to use this with a game. (The game is ssf2: https://www.mcleodgaming.com/games/ssf2/downloads(the controller compatibility is not enabled in browser))
On Windows 10  Intel Pretty sure I'm 64 bit (x86)
P.S. Sorry if this post looks horrible.
Edit: Also, I do not see anything in Vjoy monitor

Also, fairly sure it is not combining l and r joy cons right

Do I need UCR?

(the controller compatibility is not enabled in browser)

Pretty much wrecks everything here.

I know but the downloaded version allows controllers.

My question wasn't about that specific game, just in general

My question wasn't about that specific game, just in general. Also, the downloaded version supports controllers, but not combined ones.

Did you possibly forget to check the "Combine JoyCons" box?

No

Did you set VJoy to 32 buttons?

Yes

I don't know then, sorry.

Thanks. Have you gotten it working for any of your games? I'm pretty sure I just don't know how to integrate it with a game.

authors: Aidoboy Variable-X

repo: mfosse/JoyCon-Driver


text:
UnityEngine.Vector3 serializes but does not deserialize (with fix!)

Here's the error (which was reported previously, but nobody actually solved):
InvalidProgramException: Invalid IL code in (wrapper dynamic-method) FakeVector3:_cgm (object): IL_0013: ret

System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method, System.Boolean throwOnBindFailure, System.Boolean allowClosed) (at <695d1cc93cca45069c528c15c9fdd749>:0)

Here is some simple test code that shows it broken:
public struct FakeVector3
{
	public float x;
	public float y;
	public float z;

	public static FakeVector3 right { get { return new FakeVector3() { x=1,y=2,z=3 }; } }
}

FakeVector3 v = new FakeVector3() { x=0, y=1, z=2 };
string json = fastJSON.JSON.ToJSON(v);
FakeVector3 newV = fastJSON.JSON.ToObject<FakeVector3>(json);

Basically what is happening is the Reflection.CreateGetMethod() was doing the wrong thing for static getters in structs.  Here's how I modified it to work, which does deserialize properly:
        internal static GenericGetter CreateGetMethod(Type type, PropertyInfo propertyInfo)
        {
            MethodInfo getMethod = propertyInfo.GetGetMethod();
            if (getMethod == null)
                return null;

            DynamicMethod getter = new DynamicMethod("_cgm", typeof(object), new Type[] { typeof(object) }, type, true);

            ILGenerator il = getter.GetILGenerator();

            if (!type.IsClass) // structs
            {
                var lv = il.DeclareLocal(type);
		if (!getMethod.IsStatic)
		{
			il.Emit(OpCodes.Ldarg_0);
			il.Emit(OpCodes.Unbox_Any, type);
			il.Emit(OpCodes.Stloc_0);
			il.Emit(OpCodes.Ldloca_S, lv);
			il.EmitCall(OpCodes.Call, getMethod, null);
		}
		else  // call a static method on a struct type
		{
			il.Emit(OpCodes.Call, getMethod);
		}
		if (propertyInfo.PropertyType.IsValueType)
			il.Emit(OpCodes.Box, propertyInfo.PropertyType);
            }
            else
            {
                if (!getMethod.IsStatic)
                {
                    il.Emit(OpCodes.Ldarg_0);
                    il.Emit(OpCodes.Castclass, propertyInfo.DeclaringType);
                    il.EmitCall(OpCodes.Callvirt, getMethod, null);
                }
                else
                    il.Emit(OpCodes.Call, getMethod);

                if (propertyInfo.PropertyType.IsValueType)
                    il.Emit(OpCodes.Box, propertyInfo.PropertyType);
            }

            il.Emit(OpCodes.Ret);

            return (GenericGetter)getter.CreateDelegate(typeof(GenericGetter));
        }

Since I'm giving you code, here's an updated version of WriteString() that is table driven and significantly faster than what's there.  I was profiling today and this was coming up a lot for long documents.  It removes the vast majority of the comparisons using a simple lookup table.
In my version, I also removed all the ToLowerInvariant() support, because that creates a lot of allocations whether you enable the write-as-lower feature or not.
Enjoy!
        static private bool[] escapedUnicodeSet = null;
        static private bool[] normalSet = null;
        private void WriteString(string s)
        {
            // Build lookup tables
            if (escapedUnicodeSet==null)
            {
                escapedUnicodeSet = new bool[256];
                normalSet = new bool[256];
                for (int c=0; c<256; c++)
                {
                    escapedUnicodeSet[c] = (c >= ' ' && c < 128 && c != '\"' && c != '\\');
                    normalSet[c] = (c != '\t' && c != '\n' && c != '\r' && c != '\"' && c != '\\' && c != '\0'); // && c != ':' && c!=',')
                }
            }

            _output.Append('\"');

            bool[] setToUse = _useEscapedUnicode ? escapedUnicodeSet : normalSet;  // table-driven removes almost all the comparisons
            int runIndex = -1;
            int l = s.Length;
            for (var index = 0; index < l; ++index)
            {
                var c = s[index];

                if (setToUse[c])
                {
                    if (runIndex == -1)
                        runIndex = index;
                    continue;
                }

                if (runIndex != -1)
                {
                    _output.Append(s, runIndex, index - runIndex);
                    runIndex = -1;
                }

                switch (c)
                {
                    case '\t': _output.Append('\\').Append('t'); break;
                    case '\r': _output.Append('\\').Append('r'); break;
                    case '\n': _output.Append('\\').Append('n'); break;
                    case '"':
                    case '\\': _output.Append('\\'); _output.Append(c); break;
                    case '\0': _output.Append("\\u0000"); break;
                    default:
                        if (_useEscapedUnicode)
                        {
                            _output.Append("\\u");
                            _output.Append(((int)c).ToString("X4", NumberFormatInfo.InvariantInfo));
                        }
                        else
                            _output.Append(c);

                        break;
                }
            }

            if (runIndex != -1)
                _output.Append(s, runIndex, s.Length - runIndex);

            _output.Append('\"');
        }

Thanks!
I will check and let you know.

repo: mgholam/fastJSON


text:
🛑 Merchant APP (Terms & Conditions API) is down

In 9ec0f97, Merchant APP (Terms & Conditions API) (https://gateway.wavemoney.io/v2/merchant-api/merchant-term-and-condition-content/get-latest) was down:

HTTP code: 403
Response time: 23 ms

Resolved: Merchant APP (Terms & Conditions API) is back up in 38eb640 after 58 minutes.

repo: mgmgpyaesonewin/strapi-upptime


text:
add DEBUG_TB_ENABLED setting which overrides app.debug check

Useful when you don't want to run your app in debug mode but do want to have the toolbar enabled.

Nice, but maybe this should also override app.debug if it is explicitly set to False.

authors: joeshaw mgood

repo: mgood/flask-debugtoolbar


text:
chore(docs): add fselect as user in README

✔ Checklist:

[ ] Commit messages have been written in Conventional Commits format;
[ ] Tests for the changes have been added (for bug fixes / features).

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (06355b1) 93.83% compared to head (908ff4f) 93.99%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #125      +/-   ##
==========================================
+ Coverage   93.83%   93.99%   +0.16%
==========================================
  Files          13       12       -1
  Lines         649      633      -16
==========================================
- Hits          609      595      -14
+ Misses         40       38       -2

see 8 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

authors: codecov-commenter mgrachev

repo: mgrachev/update-informer


text:
Uncaught Error: EEXIST: file already exists, mkdir 'C:\Users\VOXIWEB\Documents\FTP\indicatifs'

[Enter steps to reproduce below:]

Create a file named "indicatifs" in the project directory
Create a new folder named "indicatifs" in the remote FTP
Open this folder from the remote tree view

Atom Version: 1.7.3
System: Unknown Windows Version
Thrown From: Remote-FTP package, v0.8.1
Stack Trace
Uncaught Error: EEXIST: file already exists, mkdir 'C:\Users\VOXIWEB\Documents\FTP\indicatifs'
At C:\Users\VOXIWEB\AppData\Local\atom\app-1.7.3\resources\app.asar\node_modules\fs-plus\node_modules\mkdirp\index.js:76

Error: EEXIST: file already exists, mkdir 'C:\Users\VOXIWEB\Documents\FTP\indicatifs'
    at Error (native)
    at fs.mkdirSync (fs.js:842:18)
    at Object.fs.mkdirSync (ATOM_SHELL_ASAR.js:592:16)
    at Function.sync (C:\Users\VOXIWEB\AppData\Local\atom\app-1.7.3\resources\app.asar\node_modules\fs-plus\node_modules\mkdirp\index.js:55:12)
    at Object.fsPlus.makeTreeSync (C:\Users\VOXIWEB\AppData\Local\atom\app-1.7.3\resources\app.asar\node_modules\fs-plus\lib\fs-plus.js:343:23)
    at C:\Users\VOXIWEB\.atom\packages\Remote-FTP\lib\connectors\ftp.js:447:8
    at Object.cb (C:\Users\VOXIWEB\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:1017:13)
    at Parser.<anonymous> (C:\Users\VOXIWEB\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:117:20)
    at emitTwo (events.js:87:13)
    at Parser.emit (events.js:172:7)
    at Parser._write (C:\Users\VOXIWEB\.atom\packages\Remote-FTP\node_modules\ftp\lib\parser.js:59:10)
    at doWrite (_stream_writable.js:292:12)
    at writeOrBuffer (_stream_writable.js:278:5)
    at Parser.Writable.write (_stream_writable.js:207:11)
    at Socket.ondata (C:\Users\VOXIWEB\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:273:20)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at readableAddChunk (_stream_readable.js:146:16)
    at Socket.Readable.push (_stream_readable.js:110:10)
    at TCP.onread (net.js:523:20)

Commands
     -0:32.8.0 remote-ftp:delete-selected (span.name.icon.icon-file-directory)
     -0:25.1.0 remote-ftp:refresh-selected (div.header.list-item)
     -0:23.7.0 remote-ftp:add-folder (div.header.list-item)
  3x -0:20.7.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -0:14.7.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:11.4.0 remote-ftp:add-file (span.name.icon.icon-file-directory)
     -0:08.2.0 core:confirm (atom-text-editor.editor.mini.is-focused)

Config
{
  "core": {
    "packagesWithKeymapsDisabled": [
      "tag"
    ],
    "themes": [
      "one-light-ui",
      "one-light-syntax"
    ]
  }
}

Installed Packages
# User
autocomplete-php, v0.3.7
drunken-php, v0.2.1
linter, v1.11.4
linter-php, v1.2.0
minimap, v4.23.2
minimap-cursorline, v0.1.0
minimap-find-and-replace, v4.5.1
php-getters-setters, v0.5.5
Remote-FTP, v0.8.1
selector-to-tag, v0.4.1

# Dev
No dev packages

Also getting this error.

I encountered the same issue. I found that a file without an extension was in my local directory which is a minor-problem within windows itself. I removed the local file, disconnected and reconnected the ftp connection, and it worked like a charm.
Other symptoms includes:
File will not download, because its unable to create a local directory in windows.
Un-able to create remote file without this Uncaught error.
Hope this helps.

Duplicate to #112

authors: Keeland jpxd natinusala nmanley

repo: mgrenier/remote-ftp

license: mit

license_source: bigquery


text:
🛑 Traffic Dashboard Mediahuis Nederland is down

In 368bce6, Traffic Dashboard Mediahuis Nederland (https://traffic-tmg.mediahuis.nl/api/system/status) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Traffic Dashboard Mediahuis Nederland is back up in 6b633bd.

repo: mh-data-science/upptime


text:
🛑 Traffic Dashboard Mediahuis België is down

In f76011d, Traffic Dashboard Mediahuis België (https://traffic.mediahuis.be/api/system/status) was down:

HTTP code: 503
Response time: 680 ms

Resolved: Traffic Dashboard Mediahuis België is back up in 7c7fcd8.


text:
🛑 Traffic Dashboard Mediahuis Nederland is down

In ef9725e, Traffic Dashboard Mediahuis Nederland (https://traffic-tmg.mediahuis.nl/api/system/status) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Traffic Dashboard Mediahuis Nederland is back up in 3969bc3.


text:
Color 'MUDANÇA' Classic Theme

The color of this text \textcolot{mracula}{MUDANÇA} is too ligth for the theme classic. The background of the slide is already light, so the text has almost no emphasis, I suggest supressing this \textcolor, so that the text has a darker and more fittable color to this theme.

Hello. Thanks for your observation point.
I fixed with a new color, but you can change the function (\textcolor) in whatever way is best for you. It's just an example frame.
This is the way

repo: mhar-vell/mharvellous-beamer


text:
Which Ubuntu version should I use to run the program on AWS?

At first, thanks for your wonderful work. Despite a lot of effort, I still can’t reproduce your work on AWS EC2.
I successfully ran the original reflex program on the Ubuntu16 system of AWS i3 series instances. But when I run reflex4arm on the aws-ec2 branch, I have encountered some problems on both the Ubuntu16 and Ubuntu18. My deployment is basically based on the README.md on the aws-ec2 branch.
So I would like to ask whether the current README.md is out of date? What kind of system environment is needed to run the program successfully? Thank you!
ubuntu 16 error message
ubuntu@ip-172-31-8-120:~/elune/reflex4arm$ sudo ./ix
11:25:18 <4>: init: starting IX
11:25:18 <4>: init: cpu phase
11:25:18 <4>: cpu: detected 8 cores
11:25:18 <4>: init: module CPU        SUCCESS
11:25:18 <4>: using config :'./ix.conf'
11:25:18 <4>: init: module cfgcpu     SUCCESS
11:25:18 <4>: init: module cfgmem     SUCCESS
Starting SPDK v19.04 / DPDK 19.05.0 initialization...
[ DPDK EAL parameters: reflex --no-shconf -c 3 -n 1 --log-level=lib.eal:6 --base-virtaddr=0x200000000000 --match-allocations --file-prefix=spdk_pid7783 ]
EAL: No available hugepages reported in hugepages-1048576kB
EAL:   Invalid NUMA socket, default to 0
EAL:   Invalid NUMA socket, default to 0
PMD: LLQ is not supported. Fallback to host mode policy.
PMD: Placement policy: Regular
11:25:18 <4>: init: module dpdk       SUCCESS
11:25:19 <4>: timer: detected 2300 ticks per US (dpdk: 2300)
11:25:19 <4>: init: module timer      SUCCESS
mempool_datastore: pending_pkt     elem_len:56 nr_elems:1024
mempool_datastore: arp             elem_len:80 nr_elems:65536
11:25:19 <4>: init: module net        SUCCESS
11:25:19 <4>: no static arp entries defined in config
11:25:19 <4>: ------------1CFG.num_ethdev 1
11:25:19 <4>: ------------2CFG.num_ethdev 1
11:25:19 <4>: NVMe device model: sample-aws-ec2.devmodel
11:25:19 <4>: I/O Scheduler: ON
11:25:19 <4>: net: using the following configuration:
11:25:19 <4>:   host IP:        172.31.1.119
11:25:19 <4>:   broadcast IP:   172.31.15.255
11:25:19 <4>:   gateway IP:     172.31.0.1
11:25:19 <4>:   subnet mask:    255.255.240.0
11:25:19 <4>: init: module cfg        SUCCESS
11:25:19 <4>: init: module cp         SUCCESS
CPU 00| 11:25:19 <4>: cpu: started core 0, numa node 0
CPU 00| 11:25:19 <4>: init: module firstcpu   SUCCESS
mempool_mbuf_datastore: mbuf            elem_len:9128 nr_elems:20480
CPU 00| 11:25:19 <4>: init: module mbuf       SUCCESS
mempool_datastore: pbuf            elem_len:48 nr_elems:786432
mempool_datastore: pbuf_payload    elem_len:4096 nr_elems:262144
mempool_datastore: tcp_pcb         elem_len:272 nr_elems:262144
mempool_datastore: tcp_seg         elem_len:32 nr_elems:262144
CPU 00| 11:25:20 <4>: init: module memp       SUCCESS
mempool_datastore: pcb             elem_len:64 nr_elems:524288
mempool_datastore: ip              elem_len:16 nr_elems:524288
CPU 00| 11:25:20 <4>: init: module tcpapi     SUCCESS
We have 1 nb_ports now.
TX TCP checksum offloading is enabled
WARNING: RX Timestamp offloading not supported
nb_tx_queues is 0
nb_rx_queues is 0
PMD: Set MTU: 9000
Enable jumbo frames. MTU size is 9000
max_tx_queues is 8
max_rx_queues is 8
CPU 00| 11:25:20 <4>: Setting up TX queues for core 0... at socket 0
CPU 00| 11:25:20 <4>: Setting up TX queues for core 1... at socket 0
CPU 00| 11:25:20 <4>: Setting up RX queues for core 0... at socket 0
CPU 00| 11:25:20 <4>: Setting up RX queues for core 1... at socket 0
started device at port 0
nb_tx_queues is 2
nb_rx_queues is 2
eth:    link up - speed 0 Mbps, half-duplex
CPU 00| 11:25:20 <4>: Ethdev on port 0 initialised.
CPU 00| 11:25:20 <4>: Adding FDIR rules:
CPU 00| 11:25:20 <2>: This device does not support Flow Director (Error -95).
CPU 00| 11:25:20 <2>: Adding FDIR rules failed. (Error -95)
CPU 00| 11:25:20 <4>: init: module ethdev     SUCCESS
mempool_datastore: nvme_ctx        elem_len:104 nr_elems:1048576
mempool_datastore: nvme_swq        elem_len:16448 nr_elems:32768
DEVICE PARAMS: read cost 100, write cost 700
CPU 00| 11:25:21 <4>: init: module nvmemem    SUCCESS
Each SSD will be processed by 2 cores.CPU 00| 11:25:21 <4>: init: module nvmedev    SUCCESS
CPU 00| 11:25:21 <4>: init: percpu phase 0
CPU 00| 11:25:21 <4>: init: module timer      on 0: SUCCESS
CPU 00| 11:25:21 <4>: init: module mbuf       on 0: SUCCESS
CPU 00| 11:25:21 <4>: init: module memp       on 0: SUCCESS
CPU 00| 11:25:21 <4>: init: module tcpapi     on 0: SUCCESS
The size of RTE_ETH_TX_BUFFER_SIZE (eth_rx_max_batch) is 536
.tx_buffer: size-64, len-0.
CPU 00| 11:25:21 <4>: init: module ethdev     on 0: SUCCESS
CPU 00| 11:25:21 <4>: init: module nvmemem    on 0: SUCCESS
CPU 00| 11:25:21 <4>: init: module migration  on 0: SUCCESS
ix: drivers/nvmedev.c:352: init_nvmeqp_cpu: Assertion `percpu_get(qpair)' failed.
Aborted (core dumped)
ubuntu 18 error message
ubuntu@ip-172-31-7-111:~/elune/reflex4arm$ make -sj64 -C deps/dpdk install T=x86_64-native-linux-gcc DESTDIR=deps/dpdk/x86_64-native-linux-gcc
...
/home/ubuntu/elune/reflex4arm/deps/dpdk/mk/rte.sdkroot.mk:98: recipe for target 'all' failed make[2]: *** [all] Error 2 /home/ubuntu/elune/reflex4arm/deps/dpdk/mk/rte.sdkinstall.mk:60: recipe for target 'pre_install' failed make[1]: *** [pre_install] Error 2
/home/ubuntu/elune/reflex4arm/deps/dpdk/mk/rte.sdkroot.mk:77: recipe for target 'install' failed make: *** [install] Error 2

@adamqqqplay Thanks for your attention to our latest progress on deploying reflex4arm on EC2 instances. The image I used to run ReFlex4ARM is Amazon Linux 2 and any i3 machine should work with it. I chose this because it supported better automatic networking configurations for inter-VPC accesses. And you need to attach at least two elastic network interfaces (ENI) to the machine because one of them will be using the DPDK ENA driver.
The most recent commit should have granted ReFlex4arm the ability to run as a systemd service and start automatically at boot time. In the script folder, the configure.sh will configure with the sample models, and the run_reflex_server.sh will configure the IP, the ENA driver, SPDK, and hugepages for you.
We are still actively working on this branch so the README is not up-to-date and redundant to ec2 deployment.

The latest pull request #2 should have fixed the build issue on the Ubuntu image. Please run Ubuntu 20.04 LTS on AWS EC2 instances to verify.

Thanks a lot! I will test it soon.

For possible connection issues, please refer to this AWS document.

Dear @mhxie ,
When I deployed reflex4arm on the ubuntu 20 system of the i3.large server again, a floating point exception was triggered.
Server side works normally, but when the client executes the following command, an error occurs.
~/reflex4arm$ sudo ./build/dp -s 172.31.9.19 -p 1234 -w rand -T 1 -i 100000 -r 100 -S 0 -R 4096 -P 0

Can you help me solve this problem? Thanks!

@adamqqqplay Could you show me how does your ix.conf look like?

@mhxie Sure, and I upload more context in new issue #6. Please take a look at your free time. Thank you!

authors: adamqqqplay mhxie


text:
Logspout is running but doesn't send any logs

Hi,
I have some docker containers running, including:

Graylog2 (with db and elastic search)
Reverse proxy
Ghost
...

Starting logspout
I create the logspout container with this command:
name="logspout"
image="micahhausler/logspout:gelf"

docker run -d -t \
        --name="$name" \
        --restart=unless-stopped \
        --volume /etc/localtime:/etc/localtime:ro \
        --volume /var/run/docker.sock:/var/run/docker.sock \
        --env 'DEBUG=true' \
        $image gelf://log.myserver.tld:12201

Logspout output
docker logs -f logspout
# logspout v3-master by gliderlabs
# adapters: syslog gelf raw udp tcp
# options : debug:true persist:/mnt/routes
# jobs    : http[routes,logs]:80 pump
# routes  :
#   ADAPTER     ADDRESS                 CONTAINERS      SOURCES OPTIONS
#   gelf        log.myserver.tld:12201                          map[]
2017/05/28 18:18:06 pump: c1c61d8de09d ignored: tty enabled
2017/05/28 18:18:06 pump: d8659f537712 started
2017/05/28 18:18:06 pump: 6af7e91b25c9 started
2017/05/28 18:18:06 pump: da77573215a9 started
2017/05/28 18:18:06 pump: 2bb6c6ace64d started
2017/05/28 18:18:06 pump: 76866516422e started
2017/05/28 18:18:06 pump: d60895c07b63 started
2017/05/28 18:18:06 pump: 0f8ec902cb7f started
2017/05/28 18:18:06 pump: f78ac681c652 started
2017/05/28 18:18:06 pump: 4de96fdda29e started
2017/05/28 18:18:06 pump: 4eb8685d6a70 started
2017/05/28 18:18:06 pump: 4cf8bed13869 started
2017/05/28 18:18:06 pump: 96cb78fccbc1 started
2017/05/28 18:18:06 pump: f1c510f38c9e started
2017/05/28 18:18:06 pump: d0fd409685f8 started
2017/05/28 18:18:06 pump: a00eabd16cf7 started
2017/05/28 18:18:06 pump: 6f2556f08009 started
2017/05/28 18:18:06 pump: bc2176dbb585 started
2017/05/28 18:18:06 pump: c712b85d8a26 started
2017/05/28 18:18:06 pump: 26ed952b1d5f ignored: tty enabled
2017/05/28 18:18:06 pump: 25b8755a1fb7 ignored: tty enabled
2017/05/28 18:18:06 pump: 468497e4c38c started
2017/05/28 18:18:06 pump: 2c883d00ca1d started
2017/05/28 18:18:06 pump: cca8cae49377 started

Graylog
Graylog doesn't receive any logs on the GELF UDP input. however if I use netcat to send a test GELF log, it is working.
echo -e '{"version": "1.1","host":"example.org","short_message":"Short message","full_message":"Backtrace here\n\nmore stuff","level":1,"_user_id":9001,"_some_info":"foo","_some_env_var":"bar"}\0' | nc -u -w 1 log.myserver.tld 12201

Any idea to resolv this problem?
Thanks.

It seems that this is a firewall issue, I am searching why.

repo: micahhausler/logspout-gelf


text:
What shall be used for a smaller image?

In our cases, most of the image size is about 112x112, Shall we use 4 corners and 1 center or just use the whole image to infer?
Thanks.

Hi @quanqigu!
I would suggest you use the whole image for inference. In general, even for bigger images, the results using the whole image or 4 corners + 1 center are very similar, so it shouldn't be a problem.

authors: LorenzoAgnolucci quanqigu

repo: miccunifi/ARNIQA


text:
Expand exit-if syntax to include error message

The handy exit script if... syntax would be even more handy if it allowed me to output an error message (whispered to the player executing the script, either in debug style or otherwise if there is a difference -- this is for hard errors only, so style doesn't matter very much).

Once #85 has graced us with short-circuiting and and or, you'll be able to write this:

Line
Command

1
!mmm exit script if foo and whisperback("I pity the foo!")

(Subject to whisperback() and chat() returning something true, but that'll be easy enough to arrange.)

authors: michael-buschbeck phylll

repo: michael-buschbeck/mychs-macro-magic


text:
Compatibility with the HD subtitle font in HD GUI 2

It works mostly fine, but the text shows up even when its opacity is supposed to be zero. Admittedly getting this to work required a lot of hacks on vanilla DX as well.

The subtitle letters are drawn like this:
SetMaterialAndSpriteColor_Float(GlobalSpriteColor.a, SubtitleFontColorR / 255.0f, SubtitleFontColorG / 255.0f, SubtitleFontColorB / 255.0f); njDrawSprite2D_DrawNow(sprite, index, -1.0f, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR);

Looks like this is no longer an issue with the latest generic build!


text:
Handle new native reddit videos/gifs

Reddit is rolling out their native video/gif hosting services.
Example link: https://v.redd.it/24bqk13lf5fz/
By appending DASHPlaylist.mpd the link can be handled by youtube-dl/mpv:
mpv --autofit 640x480 https://v.redd.it/24bqk13lf5fz/DASHPlaylist.mpd
However, I assume, this is not the case with many media players.
The .mpd (MPEG-DASH) format is an xml document containing data about the media file. In the above example the video and audio can easily be extracted (the numbers 9 and 6 may vary):
video: https://v.redd.it/24bqk13lf5fz/DASH_9_6_M
audio: https://v.redd.it/24bqk13lf5fz/audio
In the case of gifs the audio stream will not be present and we can simply pass the direct link to the video.
In the case of video I see the following options:

Assume anyone with video/x-youtube in their mailcap will be using youtube-dl or mpv
Pass the direct link of the video only stream
Open these video links in a graphical browser

Thanks for the write-up. Clearly they're trying to pull traffic back from Imgur, which has gotten really aggressive at redirecting Reddit users to their own platform. The mod's comment about exposing videos through their API makes me optimistic that there might be simpler way to do this in the future.
https://www.reddit.com/r/changelog/comments/6jo5it/reddit_change_introducing_video_uploading_beta/djfrix0/

Assume anyone with video/x-youtube in their mailcap will be using youtube-dl or mpv

I think that's fair for 95% of users. We can always implement it for now and see if anyone complains.

authors: michael-lazar woorst

repo: michael-lazar/rtv


text:
How set or unset "Send replies to my inbox" for posts and comments?

In RedReader (Android app) there is an checkbox option before submitting each post or comment.
How do same in rtv?

Unfortunately this feature is not currently exposed through RTV.
It looks like there's a Reddit API endpoint (https://www.reddit.com/dev/api/#POST_api_sendreplies), so it's definitely something that could be added in the future.


text:
Can't Reblog Posts

Using the following:
t.post('post/reblog', params={'id':someid,'reblog_key':somereblog_key})

I get:
Invalid ID or reblog_key specified

I have double checked the reblog key on the post and the id, these are correct, however no matter what I do I get that result, I even built my own module to reblog posts in request_oauthlib!

Can you send over the reblog key and the blog you're trying to post to?

@michaelhelmick
'id': '148261317949'
'reblog_key': 'AmhAWZ1X'

I really wonder if it has to do with the fact that the api documentation say it wants a number for the reblog key, but you can only get a str/int mix from the posts endpoint

@MaxLFarrell Hm, that really could be it. :/ Have you tried reaching out to any Tumblr (API?) devs on TwitteR?

authors: MaxLFarrell michaelhelmick

repo: michaelhelmick/python-tumblpy


text:
Using the filter with Pipewire

Hi, thank you for developing this LASDPA filter, it has been really useful.
I have got it running on Pipewire 0.3.60, modifying a bit the istructions in werman's noise suppression:

Create config directory: ~/.config/pipewire/pipewire.conf.d/
Create config for plugin: ~/.config/pipewire/pipewire.conf.d/99-input-notch-harmonics.conf
Paste configuration:

context.modules = [
{   name = libpipewire-module-filter-chain
    args = {
        node.description =  "Notch Harmonics source"
        media.name =  "Notch Harmonics source"
        filter.graph = {
            nodes = [
                {
                    type = ladspa
                    name = notch_harmonics
                    plugin = /usr/local/lib/ladspa/notch_harmonics_5761.so
                    label = notch_harmonics
                    control = {
                        "Base frequency" = 1000
                        "Number of harmonics" = 12
                    }
                }
            ]
        }
        capture.props = {
            node.name =  "capture.notch_harmonics"
            node.passive = true
        }
        playback.props = {
            node.name =  "notch_harmonics"
            media.class = Audio/Source
        }
    }
}
]

Restart PipeWire: systemctl restart --user pipewire.service
Now you should be able to select Notch Harmonics source as input device

If I find the time, I could try to mix your notch harmonics with werman's noise suppression in one source, it just needs some modifications to the conf file...

Hi. That's great, thanks a lot for posting! May I copy these instructions into the README file?

Yeah absolutely! If I get around on doing the double filtering with rnnoise I will add another comment here.

Thanks @SantX27! I added your description to the README.md and will close this issue for now. If the double filtering turns out useful, please add a comment so that we can revisit the description.

it read internal ALC1150 audio as input. How to set pipewire for external USB microphone?
`
wpctl status
PipeWire 'pipewire-0' [0.3.74, bb@xx, cookie:1504784592]
└─ Clients:
32. pipewire                            [0.3.74, bb@xx, pid:16124]
33. WirePlumber                         [0.3.74, bb@xx, pid:16125]
34. WirePlumber [export]                [0.3.74, bb@xx, pid:16125]
68. wpctl                               [0.3.74, bb@xx, pid:23466]
Audio
├─ Devices:
│      42. Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000 Series] [alsa]
│      43. Meteor condenser microphone         [alsa]
│      44. Built-in Audio                      [alsa]
│
├─ Sinks:
│      46. Meteor condenser microphone Analog Stereo [vol: 0.65]
│  *   48. Built-in Audio Analog Stereo        [vol: 0.75]
│
├─ Sink endpoints:
│
├─ Sources:
│  *   36. Notch Harmonics source              [vol: 1.00]
│      47. Meteor condenser microphone Analog Stereo [vol: 1.00]
│      49. Built-in Audio Analog Stereo        [vol: 1.00]
│
├─ Source endpoints:
│
└─ Streams:
35. capture.notch_harmonics
62. input_FL        < ALC1150 Analog:capture_FL	[paused]
63. monitor_FL
64. input_FR        < ALC1150 Analog:capture_FR	[paused]
65. monitor_FR
Video
├─ Devices:
│
├─ Sinks:
│
├─ Sink endpoints:
│
├─ Sources:
│
├─ Source endpoints:
│
└─ Streams:
Settings
└─ Default Configured Node Names:
0. Audio/Sink    alsa_output.pci-0000_00_1b.0.analog-stereo
1. Audio/Source  notch_harmonics
`

I found solution how to force plugin use external USB microphone intead mainboard internal audio. define target.object in capture.props part
        capture.props = {
            node.name =  "capture.notch_harmonics"
            node.passive = true
            target.object = "alsa_input.usb-Samson_Technologies_Samson_Meteor_Mic-00.analog-stereo"
        }

maybe this will help someone

Thanks a lot @jakoprd for providing the solution! I will add that line with a comment to the README.

authors: SantX27 jakoprd michaellass

repo: michaellass/ladspa-notch-harmonics


text:
Debug toolbar integration

Not really an issue but how about just advising users to include the HTMX Ajax-header extension and set hx-ext=“ajax-header” to body tag then you don’t have to change Toolbar::prepare and create a services::Toolbar function to make it work as it is supposed to?

Of course, in theory, you can definitely do it with the mentioned extension, but the reason to do it the way it is done now was to differentiate an AJAX request from an HTMX request.
In the variant proposed by you, $this->request->isAJAX() would return true every time even for an HTMX request. And that was something I was hoping to avoid.

repo: michalsn/codeigniter-htmx


text:
Support arrays

Hi,
So i have a lang file called "common.php" that contains something like this
return [
    'month_names' => [/*An array of the month names*/]
];

When i do
Lang.get('common.month_names')

I get common.month_names instead of the array or object

Hi @shadoWalker89 ,
only strings and objects are supported, e.g.
return [
    'month_names' => { /*months object*/ }
];

See #9 for reference.
Best Regards.


text:
ignore NAs when pseudocount is TRUE

Ignore NAs and perform calculation automatically.
ping: #489

The unit test should test the actual calculation and compare it to cases that are calculated manually, checking that the real use scenarios work properly. Can you add that?

repo: microbiome/mia


text:
move issues from nmdc-metadata

Use the github issue mover to move schema related issues from nmdc-metadata to nmdc-schema

We still have a https://github.com/microbiomedata/nmdc-metadata repo. How can we tall if the necessary content has been migrated?
If we do that, then we can archive https://github.com/microbiomedata/nmdc-metadata

https://github.com/microbiomedata/nmdc-metadata/issues

I am interested in this and also curious about this. Looking at the issues they're a combination of schema and ingesting ./ fixing metadata.
@cmungall what was the metadata repo for? The docs say its deprecate. but there's still issues.

authors: mslarae13 turbomam wdduncan

repo: microbiomedata/nmdc-schema


text:
"Add file" -> "Create file"

Update related text.
Closes https://github.com/microbit-foundation/python-editor-next/issues/761

@microbit-matt-hillsdon Should we also change the addFile function in project-actions to createFile. There is also a logging event in this function which is add-file but maybe that's better left alone from an analytics point of view.

@microbit-matt-hillsdon Should we also change the addFile function in project-actions to createFile. There is also a logging event in this function which is add-file but maybe that's better left alone from an analytics point of view.

Changed both.

authors: microbit-matt-hillsdon microbit-robert

repo: microbit-foundation/python-editor-next


text:
Publish artifacts to central/jcenter/sonatype

It would ease up integration (or even testing) when artefacts would be available from well known repositories, like central, jcenter or sonatype.
Jitpack (https://jitpack.io/#microg/android_external_GmsLib/) wrongly advertised it as being build, but it wasn’t, and frankly I don’t like how they do not honour naming (and not opening up their build system). I found an old and crufty play-services-api version at sonatype (https://oss.sonatype.org/content/repositories/snapshots/org/microg/) but I havent even bother trying that.

I pushed a snapshot from the current master to https://oss.sonatype.org/content/repositories/snapshots/org/microg/
Releases will go into maven central.


text:
Write blog post about session management in the front-end service

The sock-shop service relied on IP based sticky session provided by K8s and ECS to maintain sessions to the correct front-end instance. We recently switched to a more standard session management strategy where the front-end service stores and reads sessions using a centralised database like Redis. Write a blog post about this change and how it helped with load testing and autoscaling.

@nustiueudinastea in my team we are using jwt which is stateless, you don't need to store the token in Redis since the client is in charge of saving and sending the token in each request to the api gateway

authors: juliocanares nustiueudinastea

repo: microservices-demo/microservices-demo


text:
Update README.md

Fix typo of 'layouts'

thank you :)

authors: ryanrandhawa wobba


text:
Un-maintainable logic behind the XLF trans-unit IDs

Is your feature request related to a problem? Please describe.
The logic under XLF trans-unit IDs is un-maintainable in the context of day to day updating our business code in our Business Central OnPremise instance.
For example, I have a Label inside a Table with its translation from English to Spanish...
After a revision, I refactor this Label to a Codeunit where I had others translated Labels inside a couple of procedures...
The result is that all the other Labels inside Codeunit have now a different ID in .g.xlf file, and therefore, this translations don't work anymore unless I recode all this too.

Describe the solution you'd like
The trans-unit IDs shouldn't change never because breaks any previous translations you have.
Our native language is Spanish, but, because the compiler sets "en-US" by default in .g.xlf we can't set Captions and Labels in .AL files in Spanish hoping to translate the strings into English in an additional way from time to time without our users being affected.
It would be interesting to be able to indicate "es" as the native language of the App in app.json so that the Captions, Labels and other strings could be written in Spanish in AL code and the compiler would automatically generate a file .es.xlf instead of the file .g.xlf that now generates irremediably.
In this way, we would translate the translations from Spanish to other languages like English and not vice versa.
Additional context
AL Language: 2.0.48254
Business Central: ES Dynamics NAV 13.0 (24630) OnPremise

Hi @JavierFuentes !
The unit-id is composed by concatenating the (Type + Hash(Name)) of all the symbols from the containing application object to the label location. This means that if you rename the codeunit, the ID will change, if you rename the method containing a label as a local variable, the ID will change, if you rename the label, the ID will change.
We completely agree that this can be improved and we are planning on working on this in the future!
Your second point is also valid. I will mark this thread so that we consider it for future enhancements.

We are a Spanish software development company (Innova Advanced Consulting) and we have created a solution to translate the translations in a simple way.
The behavior that you detail we found when we started to create solutions and decided to create a solution for translations.
If you are interested in the application you can search it in the Microsoft source app. It's BC Translate.
https://appsource.microsoft.com/es-es/product/dynamics-365-business-central/PUBID.innovationconsulting|AID.bctranslate|PAPPID.1b726e7f-61e4-47cd-8097-996641e97fb4?tab=Overview
It is also available to install in dockers on the portal https://www.innovaonline.es.

Hi @atoader,
thanks for considering the idea of making changes to avoid this problem and also for hosting the idea of being able to configure our language as the primary language of the app and then translate it from it.
@crodriguezinn,
I've seen your translation solution for BC and it looks very good... I congratulate you for the quality of your development and we may get to use it if at any time we use BC for a real project in my company in the future, because at the moment translations are a pain in OnPremises environment.

Hi @JavierFuentes ,
Thank for your comments.
The OnPremise and Cloud version use the same xliff files. Our solution has been create for BC Cloud and BC Docker, so you can use a BC Docker and create your translations files for OnPremise. This is our recomendation, use BC Docker for create your translations for Cloud, OnPremise, etc.
You can install BC docker ant donwload the solution from portal https://www.innovaonline.es.

Hi, @atoader!

The unit-id is composed by concatenating the (Type + Hash(Name)) of all the symbols from the containing application object to the label location.

Could you please specify, what exactly do you mean by Hash() function? I want to be able to generate unit-ids on my own, is that even possible?

I am also interested, someone who knows what hash function is used to generate the "trans-unit"?

I am also interested, someone who knows what hash function is used to generate the "trans-unit"?

I also have the problem because it difficult to mapping translatation line with object

@garyguo1986
@cr998
@domelche
I believe they use a hash method used in the .NET compiler platform Roslyn. https://github.com/dotnet/roslyn/blob/main/src/Compilers/Core/Portable/InternalUtilities/Hash.cs
Written in typescript:
export function HashObjectName(objectName: string): number {
  const buffer = Buffer.from(objectName, "utf16le");
  let hash = 0x811c9dc5; // 2166136261
  for (let i = 0; i < buffer.length; i++) {
    hash = hash ^ buffer[i];
    hash += (hash << 24) + (hash << 8) + (hash << 7) + (hash << 4) + (hash << 1);
  }
  hash = hash & 0xffffffff;
  return hash + 2147483647;
}

authors: AwesomeKPIPenguin JavierFuentes atoader cr998 crodriguezinn garyguo1986 sigurpallviggo

repo: microsoft/AL


text:
dotnet issues onPrem since update to AL .5.0.254558

Describe the bug
Working code with AL extensions 4.0. does no longer work with AL extension 5.0.
Code in question. dotnet assembly definition and usage.
To Reproduce
Steps and to reproduce the behavior:

use mentioned AL extensions . AL:Go - Version 4.0
change your setting to use the probingpath
    "al.assemblyProbingPaths": [      "./.netpackages",      "c:/windows/assembly/"  ]
add a dotnet object with the following content:

dotnet
{
    assembly("System")
    {
        Version = '4.0.0.0';
        Culture = 'neutral';
        PublicKeyToken = 'b77a5c561934e089';

        // will not work
        type("System.Collections.Queue"; "Queue") { }
        type("System.Convert"; "SystemConvert") { }

        // will work
        type("System.Security.Cryptography.X509Certificates.StoreName"; "StoreName") { }

    }
}

Expected behavior
The System is able to find the assemblies and use them.
5. Versions:

AL Language: 5.0.254558

Hi! There are a few things at play here:

System.Collections.Queue is not in the System assembly https://docs.microsoft.com/en-us/dotnet/api/system.collections.queue?view=netframework-4.8
It used to work in older versions of the VSIX due to a but in the .NET Interop system implementation when the compiler was running on the .NET Framework
The bug might still be there if you "al.useLegacyRuntime":true and restart your enlistment. If that works, keep in mind that the legacy runtime is about 2-3 times slower than the new one.

Considering that the assembly is not part of System, at least not according to the public docs, I would recommend fixing the code.

That's interesting! so you moved away from the old .Net framework? Isn't that worth to mention somewhere?! :D
Apart from that: it was just an example on the things we have problems with. the list is a bit longer... i will check those if they are also not (any)longer part of the assembly we used to use.
I have tested with "al.useLegacyRuntime":true - this "fixes" all the errors we got! Time to do some homework (literally). Thanks for the quick answer!
Will this introduce some compatibility problems with using al 5.0 against newer BCs (v.16) v5 apps vs older BC (v3, v4 ?) or is it just for VS Code? So when the App gets published - v15 was happy to compile and run it - will v16 now fail as it will not be able to handle the assemblies? do I need to set BC v16 also in "legacy" mode?

booomer  - I was to fast - it did not help :/
all those do not work:
         type("System.Collections.Queue"; "Queue") { }         type("System.Convert"; "SystemConvert") { }         type("System.DateTime"; "SystemDateTime") { }         type("System.Environment"; "Environment") { }         type("System.Text.UTF8Encoding"; "UTF8Encoding") { }         type("System.AppDomain"; "AppDomain") { }         type("System.Net.ICredentials"; "ICredentials") { }         type("System.Reflection.Assembly"; "Assembly") { }         type("System.Object"; "Object") { }         type("System.Collections.Generic.IList1"; "IList_Of_T") { }
type("System.Collections.Generic.ICollection1"; "ICollection_Of_T") { }         type("System.Nullable1"; "Nullable_Of_T") { }
type("System.Collections.Generic.List1"; "List_of_T") { }         type("System.Collections.Generic.Dictionary2"; "Dictionary_Of_T_U") { }
type("System.Collections.Generic.IEnumerable1"; "IEnumerable_Of_T") { }         type("System.Collections.Generic.KeyValuePair2"; "KeyValuePair_Of_T_U") { }
`

Moving them to the assembly mscorlib helped! (while legacy is enabled...)
turning it off seems also to work but no I get "ambiguous" references. Wasn't that allowed in the past to have the same reference and name...so this is no longer ok it seems ...

What do you mean by ambiguous reference?

like this guy here:
type("System.Environment"; "Environment") { }  that is in our extensions dotnet.al but it is also part of SystemApplications dotnet.al ...

Hi Kristof! Coming back after a long vacation: can you provide a self-contained project that we can use to reproduce this problem? Maybe there's something else on top of the transition from .NET Framework to .NET Core.

Hi Alex,
i will try and let you know.

In case anyone else like me ends up here and is super confused at what the resolution is, you have to know what parts are for what assemblies.
For example, if you are using OnPrem and DotNet to generate files, and your older code has a batch of types like:
assembly(System)
{
    type(System.IO.File; FTPFileStream) { }
    type(System.IO.FileStream; RealFileStream) { }
    type(System.Text.Encoding; dotEncoding) { }
}

Then those, despite the name, don't go under the assembly(System).  You would instead reference them like assembly(mscorlib).
This can be a little challenging for a novice to sort out, since Microsoft's site on System.IO says the assembly is "System.Runtime" (which does not work here) but almost every 3rd party reference site gives more clarity as to the proper 'assembly' name.
Your dotnet wrapper can have multiple assembly nodes, so a wrapper like this is perfectly valid:
dotnet
{
    assembly(System)
    {
        type(System.Net.FtpWebRequest; FTPRequest) { }
        type(System.Net.FtpWebResponse; FTPResponse) { }
        type(System.Net.NetworkCredential; Credentials) { }
        type(System.Net.FtpStatusCode; StatusCode) { }
        type(System.Text.RegularExpressions.Regex; dotRegex) { }
    }
    assembly(mscorlib)
    {
        type(System.IO.Stream; ResponseStream) { }
        type(System.IO.StreamWriter; dotStreamWriter) { }
        type(System.IO.File; FTPFileStream) { }
        type(System.IO.FileStream; RealFileStream) { }
        type(System.Text.Encoding; dotEncoding) { }
        type(System.Collections.ArrayList; FilesList) { }
    }
}

authors: JeremyVyska KristofKlein atoader


text:
[Event Request] Codeunit 22 Item Jnl.-Post Line - OnAfterInsertCapValueEntry

Hi, would it be possible to get an event OnAfterInsertCapValueEntry in codeunit 22 Item Jnl.-Post Line, procedure InsertCapValueEntry, like this :

?
Thanks

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz VMotin

repo: microsoft/ALAppExtensions


text:
[Event Request] Codeunit::"VendEntry-Apply Posted Entries" - Function CollectAffectedLedgerEntries - OnCollectAffectedLedgerEntriesOnAfterSetFilters

Please add event to codeunit "VendEntry-Apply Posted Entries" identical to existing event in codeunit "CustEntry-Apply Posted Entries".
    local procedure CollectAffectedLedgerEntries(var TempVendorLedgerEntry: Record "Vendor Ledger Entry" temporary; DetailedVendorLedgEntry2: Record "Detailed Vendor Ledg. Entry")
    ...
    begin
        ...
            SetRange("Vendor No.", DetailedVendorLedgEntry2."Vendor No.");
            SetRange(Unapplied, false);
            SetFilter("Entry Type", '<>%1', "Entry Type"::"Initial Entry");

            OnCollectAffectedLedgerEntriesOnAfterSetFilters(DetailedVendLedgEntry, DetailedVendLedgEntry2);

            if FindSet then
        ...
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCollectAffectedLedgerEntriesOnAfterSetFilters(var DetailedVendLedgEntry: Record "Detailed Vendor Ledg. Entry"; DetailedVendLedgEntry2: Record "Detailed Vendor Ledg. Entry")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz sergeyol


text:
[Event Request] Table 5093 "Opportunity Entry" - OnBeforeStartWizard

Please add the event OnBeforeStartWizard() in Table 5093 "Opportunity Entry" like this:
local procedure StartWizard()
var
    CloseOpportunityPageId: Integer;
begin
    CloseOpportunityPageId := PAGE::"Close Opportunity";
    OnBeforeStartWizard(Rec, CloseOpportunityPageId); // <- new event
    if CloseOpportunityPageId <> 0 then begin
        Insert;
        if Page.RunModal(CloseOpportunityPageId, Rec) = Action::OK then;
    end;
end;

The new event:
[IntegrationEvent(false, false)]
local procedure OnBeforeStartWizard(var OpportunityEntry: Record "Opportunity Entry"; var CloseOpportunityPageId: Integer)
begin
end;

Thanks!

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 40859.

authors: JesperSchulz papillon


text:
[EventRequest] Codeunit 31019 "PurchAdvLetterManagement CZZ".InitGenJnlLineFromVendLedgEntry

Please add new event
    local procedure InitGenJnlLineFromVendLedgEntry(var VendorLedgerEntry: Record "Vendor Ledger Entry"; var GenJournalLine: Record "Gen. Journal Line"; GenJournalDocumentType: Enum "Gen. Journal Document Type")
    begin
        GenJournalLine.InitNewLine(
            VendorLedgerEntry."Posting Date", VendorLedgerEntry."Document Date", VendorLedgerEntry.Description,
            VendorLedgerEntry."Global Dimension 1 Code", VendorLedgerEntry."Global Dimension 2 Code",
            VendorLedgerEntry."Dimension Set ID", VendorLedgerEntry."Reason Code");
        GenJournalLine."System-Created Entry" := true;
        GenJournalLine.CopyDocumentFields(GenJournalDocumentType, VendorLedgerEntry."Document No.", VendorLedgerEntry."External Document No.", VendorLedgerEntry."Source Code", '');
        GenJournalLine."Account Type" := GenJournalLine."Account Type"::Vendor;
        GenJournalLine."Account No." := VendorLedgerEntry."Vendor No.";
        GenJournalLine."Source Currency Code" := VendorLedgerEntry."Currency Code";
        GenJournalLine."Currency Factor" := VendorLedgerEntry."Original Currency Factor";
        GenJournalLine."Sell-to/Buy-from No." := VendorLedgerEntry."Buy-from Vendor No.";
        GenJournalLine."Bill-to/Pay-to No." := VendorLedgerEntry."Vendor No.";
        GenJournalLine."IC Partner Code" := VendorLedgerEntry."IC Partner Code";
        GenJournalLine."Salespers./Purch. Code" := VendorLedgerEntry."Purchaser Code";
        GenJournalLine."On Hold" := VendorLedgerEntry."On Hold";
        GenJournalLine."Posting Group" := VendorLedgerEntry."Vendor Posting Group";
        GenJournalLine.Validate("VAT Date CZL", VendorLedgerEntry."VAT Date CZL");
        GenJournalLine.Validate("Original Doc. VAT Date CZL", VendorLedgerEntry."VAT Date CZL");
        GenJournalLine."System-Created Entry" := true;
        //---------------------------------------OnAfterInitGenJnlLineFromVendLedgEntry:BEGIN
        OnAfterInitGenJnlLineFromVendLedgEntry(VendorLedgerEntry, GenJournalLine)
        //---------------------------------------OnAfterInitGenJnlLineFromVendLedgEntry:END
    end;

//---------------------------------------OnAfterInitGenJnlLineFromVendLedgEntry:BEGIN
[IntegrationEvent(true, false)]
OnAfterInitGenJnlLineFromVendLedgEntry(var VendorLedgerEntry: Record "Vendor Ledger Entry"; var GenJournalLine: Record "Gen. Journal Line")
begin
end;
//---------------------------------------OnAfterInitGenJnlLineFromVendLedgEntry:END

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 42392.

authors: JesperSchulz fridrichovsky


text:
[Event Request] Table 5080 "To-do" - AssignDefaultAttendeeInfo

Can you please add a publisher event at the end of procedure AssignDefaultAttendeeInfo()
        InteractionTemplateSetup.Get();
        if (InteractionTemplateSetup."Meeting Invitation" <> '') and
           InteractionTemplate.Get(InteractionTemplateSetup."Meeting Invitation")
        then
            UpdateInteractionTemplate(
              Rec, TempTaskInteractionLanguage, TempAttachment, InteractionTemplate.Code, true);

        OnAfterAssignDefaultAttendeeInfo(); // new

    [IntegrationEvent(false, false)]
    local procedure OnAfterAssignDefaultAttendeeInfo()
    begin
    end;

Usually, we do not add events without parameters. How you are going to use it?

Seems not needed anymore, feel free to open a new issue with explanation if you still want it.


text:
Code unit "Item Jnl.-Post Line"

🕮 Describe the request
On Codeunit 22 "Item Jnl.-Post Line"
Proposal to change the CheckItem function :
local procedure CheckItem(ItemNo: Code[20])
begin
if GetItem(ItemNo, false) then begin
if not CalledFromAdjustment then
Item.TestField(Blocked, false);
OnCheckItemOnAfterGetItem(Item, ItemJnlLine, CalledFromAdjustment);
end else
Item.Init();
end;
By :
Proposal to change the CheckItem function :
local procedure CheckItem(ItemNo: Code[20])
begin
if GetItem(ItemNo, false) then begin
CheckIfItemIsBlocked();
OnCheckItemOnAfterGetItem(Item, ItemJnlLine, CalledFromAdjustment);
end else
Item.Init();
end;

Hi @skanderbenkheder,
Please add more details. I guess you need new event suppress Item.TestField(Blocked, false);?

Hi @JakovljevicDusan
Thank you for your reaction.
Yes exactly, by using CheckIfItemIsBlocked(); as it contain the test Item blocked and we can avoid it bi the IsHandled variable.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 13270.


text:
[Event Request] codeunit 5988 "Serv-Documents Mgt." function: FinalizeDeleteItemLines

could you please add a publisher in codeunit 5988 "Serv-Documents Mgt." function: FinalizeDeleteItemLines
  local procedure FinalizeDeleteItemLines()
    begin
        // delete Service Item Lines persistent and temporary
        PServItemLine.Reset;
        PServItemLine.SetRange("Document Type", ServHeader."Document Type");
        PServItemLine.SetRange("Document No.", ServHeader."No.");
        // New Event
        SetFilterOnFinalizeDeleteItemLinesBeforeDeletePServItemLine(PServItemLine);

        PServItemLine.DeleteAll;

        ServItemLine.Reset;
        ServItemLine.DeleteAll;
    end;

[IntegrationEvent(false, false)]
local procedure SetFilterOnFinalizeDeleteItemLinesBeforeDeletePServItemLine(var TempServItemLine: record "Service Item Line" temporary);
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

authors: Schnieringer bc-ghost


text:
[Event Request] CU 13638 OIOUBL-Exp. Issued Fin. Chrg

Requesting a new event in OnRun trigger to allow editing the xml Document before it’s written to stream.
We would like to fill some optional tags in the document, like embed pdf.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

authors: ThomasRonn bc-ghost


text:
LoggingSeverity isn't exposed in @microsoft/applicationinsights-core-js

[!] Error: 'LoggingSeverity' is not exported by node_modules@microsoft\applicationinsights-core-js\browser\applicationinsights-core-js.min.js
https://rollupjs.org/guide/en#error-name-is-not-exported-by-module-
node_modules@microsoft\applicationinsights-common\dist-esm\Telemetry\Common\DataSanitizer.js (3:9)
1: // Copyright (c) Microsoft Corporation. All rights reserved.
2: // Licensed under the MIT License.
3: import { LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';
^

@studioab Which version are you using? How are you initializing the SDK? AFAIK is it exposed, but may be missing for some specific uncommon scenarios.
https://github.com/microsoft/ApplicationInsights-JS/blob/558ae6ec913e4f13e209400be80b0c6e6f6c78df/vNext/shared/AppInsightsCore/src/applicationinsights-core-js.ts#L15

Closing this as I'm unsure if this is still an issue. Please reopen if this hasn't been resolved

I also ran into this as well. Here's a minimal recreation of the issue:https://github.com/sawyerh/applicationinsights-web-issue-856
I was able to resolve it by manually specifying the named exports in my rollup configuration. Not ideal, but it got past the error:
...
plugins: [
    resolve({
      browser: true
    }),
    commonjs({
      namedExports: {
        "@microsoft/applicationinsights-core-js/browser/applicationinsights-core-js.min": [
          "_InternalMessageId",
          "AppInsightsCore",
          "CoreUtils",
          "DiagnosticLogger",
          "LoggingSeverity"
        ]
      }
    })
  ]

@sawyerh Thanks for the repro. Out of curiosity, do you have a requirement to use browser: true?

@markwolff No, but my understanding was that using the browser bundle would be best for file size? FWIW, I ended up moving away from RollUp and back to Webpack, so this isn't necessarily an issue for me anymore.

authors: markwolff sawyerh studioab

repo: microsoft/ApplicationInsights-JS


text:
Issue with appinsights in nodejs version > 14.15.4

Hi,
We're encountering a strange issue with appinsights lib and it seems to be related to Node.js versions when used in conjunction with mongodb lib.

Cannot add property Symbol(async_id_symbol), object is not extensible

Probably related to https://github.com/nodejs/node/issues/42229
In Node.js version 14.15.4 it works just fine, when we use a higher version we get the error above.
Any ideas as to how we can fix this? Is this a known issue?
Thanks!

@ArtemisMucaj can you include the full error message here?, which file is generating the error?

authors: ArtemisMucaj hectorhdzg


text:
getting error

Error while creating release definition: Tasks with versions 'Replace variables in Ansible script to deploy Azure resources:4., Run playbook to deploy Azure resources:0.' are not valid for deploy job 'Agent job' in stage Azure Dev.

@beginner-academy kindly provide more info on the template that you are using.

authors: aksh-h beginner-academy

repo: microsoft/AzureDevOpsDemoGenerator