Russia, Spain, France, UK, Netherlands weird infected cases & death cases predictions

Summary

For Russia and Spain, there are strange confirmed cases and death cases predictions plots. Predictions for confirmed and death cases are totally off by far. Weird triangular prediction curves behavior.

(for Spain phase analysis gap after mid-May see #270).
Same weird triangular curves behavior as in #271 for Russia and Spain. Please further investigate.

For France, predictions for confirmed and death cases are generally off by far as well.

UK and Netherlands have weird only deaths predictions (off by far). They seem to exhibit though the same weird triangular curves behavior as in #271 as well:

Codes and outputs:
Typical kaggle notebook countries analyses code:
<country>_scenario = cs.Scenario(jhu_data, pop_data, "<country>")
<country>_scenario.records().tail()
_ = <country>_scenario.trend()
<country>_scenario.summary()
<country>_scenario.estimate(cs.SIRF)
<country>_scenario.summary()
_ = <country>_scenario.history_rate()
<country>_scenario.clear()
<country>_scenario.add(days=7)
<country>_pred = <country>_scenario.simulate() -> observe <country>_pred
Environment

CovsirPhy version: 2.9.1
Python version; 3.8
Installation: Anaconda, Spyder, pip
OS: Windows

Please help with me to try Scenario.estimate(cs.SIRF, timeout=120) mentioned in #274 to find the cause.

I have rerun with v2.11 some tests for Russia and UK:
The estimated confirmed (Russia, UK) and deaths cases (UK) are totally incorrect. And UK recovered data are very low (until now only 3100, while there are 2.500.000 confirmed).
Also why the score() for Russia for example gives only something small? I mean the difference between the actual and the simulated confirmed cases is huge: i.e. for 14Nov20 -> confirmed_actual = 1887836, confirmed_simulated = 2820574 => diff = 932.738 which is 49.4% error.

Russia:
snl.score(metrics="RMSLE", variables=["Confirmed"]) gave me 3.13. This is not a small error.
S-R trend analysis does not show errors, but parameter estimation failed.
The last figures with for phase in snl.summary().index:    snl.estimate_accuracy(phase) indicates that Fatal is accurately estimated, but Infected and Recovered are not. When parameter estimation, we may need to emphasize the error of Infected than Fatal. (At this time, we use RMSLE score as error and this treats the all variables equally.)
https://gist.github.com/lisphilar/48ad567ed09206eecf644c3eb4618eb8#file-russia_20201116-ipynb
UK:
This will be discussed in #340.

The results with version 2.13.1-alpha are in https://gist.github.com/lisphilar/8f64aca428a3eb065c8c39ef827b3fc5
We move forward to #354 (and new issues) to improve the accuracy of parameter estimation.


changing sdk version due to issue with the new version

Context
An automatic upgrade in the aws version has led to ClassNotFoundException being thrown. Details: https://github.com/aws/aws-sdk-java-v2/issues/5127
Scope of the PR:

This PR aims to bring back the version to previous table version.

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

Project coverage is 0.00%. Comparing base (59551e4) to head (ae2d72e).
Report is 817 commits behind head on master.

:exclamation:  There is a different number of reports uploaded between BASE (59551e4) and HEAD (ae2d72e). Click for more details.
HEAD has 48 uploads less than BASE

Flag
BASE (59551e4)
HEAD (ae2d72e)

integration
7
2

integration2
3
2

temurin
12
2

java-21
7
2

skip-bytebuffers-true
3
1

skip-bytebuffers-false
7
1

unittests
5
0

unittests1
2
0

java-11
5
0

unittests2
3
0

integration1
2
0

custom-integration1
2
0

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #13736       +/-   ##
=============================================
- Coverage     61.75%    0.00%   -61.76%
=============================================
  Files          2436     2480       +44
  Lines        133233   137137     +3904
  Branches      20636    21353      +717
=============================================
- Hits          82274        0    -82274
- Misses        44911   137137    +92226
+ Partials       6048        0     -6048

Flag
Coverage Δ

custom-integration1
?

integration
0.00% <ø> (-0.01%)
:arrow_down:

integration1
?

integration2
0.00% <ø> (ø)

java-11
?

java-21
0.00% <ø> (-61.63%)
:arrow_down:

skip-bytebuffers-false
0.00% <ø> (-61.75%)
:arrow_down:

skip-bytebuffers-true
0.00% <ø> (-27.73%)
:arrow_down:

temurin
0.00% <ø> (-61.76%)
:arrow_down:

unittests
?

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

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

Closing this PR as it didn't fix the issue.


How can we specify a smaller batch size for GPU with 8GB memory or less?

Hi Team,
Thanks for the great software. Is it possible to have batch size as a parameter?
I am trying to run the example with a NVIDIA GeForce GTX 1080.
It is a rather old GPU so it is not as powerful. When running the example code, it always fail with the following error:
---------------------------------------------------------------------------
OutOfMemoryError                          Traceback (most recent call last)
Cell In[8], line 8
      2 from IPython.display import Audio
      4 text_prompt = """
      5      Hello, my name is Suno. And, uh — and I like pizza. [laughs]
      6      But I also have other interests such as playing tic tac toe.
      7 """
----> 8 audio_array = generate_audio(text_prompt)
      9 Audio(audio_array, rate=SAMPLE_RATE)

File ~\workspace\bark\bark\api.py:77, in generate_audio(text, history_prompt, text_temp, waveform_temp)
     60 def generate_audio(
     61     text: str,
     62     history_prompt: Optional[str] = None,
     63     text_temp: float = 0.7,
     64     waveform_temp: float = 0.7,
     65 ):
     66     """Generate audio array from input text.
     67
     68     Args:
   (...)
     75         numpy audio array at sample frequency 24khz
     76     """
---> 77     x_semantic = text_to_semantic(text, history_prompt=history_prompt, temp=text_temp)
     78     audio_arr = semantic_to_waveform(x_semantic, history_prompt=history_prompt, temp=waveform_temp)
     79     return audio_arr

File ~\workspace\bark\bark\api.py:23, in text_to_semantic(text, history_prompt, temp)
      8 def text_to_semantic(
      9     text: str,
     10     history_prompt: Optional[str] = None,
     11     temp: float = 0.7,
     12 ):
     13     """Generate semantic array from text.
     14
     15     Args:
   (...)
     21         numpy semantic array to be fed into `semantic_to_waveform`
     22     """
---> 23     x_semantic = generate_text_semantic(
     24         text,
     25         history_prompt=history_prompt,
     26         temp=temp,
     27     )
     28     return x_semantic

File ~\workspace\bark\bark\generation.py:404, in generate_text_semantic(text, history_prompt, temp, top_k, top_p, use_gpu, silent, min_eos_p, max_gen_duration_s, allow_early_stop, model)
    402 tot_generated_duration_s = 0
    403 for n in range(n_tot_steps):
--> 404     logits = model(x, merge_context=True)
    405     relevant_logits = logits[0, 0, :SEMANTIC_VOCAB_SIZE]
    406     if allow_early_stop:

File ~\workspace\bark\venv\lib\site-packages\torch\nn\modules\module.py:1501, in Module._call_impl(self, *args, **kwargs)
   1496 # If we don't have any hooks, we want to skip the rest of the logic in
   1497 # this function, and just call forward.
   1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
   1499         or _global_backward_pre_hooks or _global_backward_hooks
   1500         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1501     return forward_call(*args, **kwargs)
   1502 # Do not call functions when jit is used
   1503 full_backward_hooks, non_full_backward_hooks = [], []

File ~\workspace\bark\bark\model.py:168, in GPT.forward(self, idx, merge_context)
    166 x = self.transformer.drop(tok_emb + pos_emb)
    167 for block in self.transformer.h:
--> 168     x = block(x)
    169 x = self.transformer.ln_f(x)
    171 # inference-time mini-optimization: only forward the lm_head on the very last position

File ~\workspace\bark\venv\lib\site-packages\torch\nn\modules\module.py:1501, in Module._call_impl(self, *args, **kwargs)
   1496 # If we don't have any hooks, we want to skip the rest of the logic in
   1497 # this function, and just call forward.
   1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
   1499         or _global_backward_pre_hooks or _global_backward_hooks
   1500         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1501     return forward_call(*args, **kwargs)
   1502 # Do not call functions when jit is used
   1503 full_backward_hooks, non_full_backward_hooks = [], []

File ~\workspace\bark\bark\model.py:100, in Block.forward(self, x)
     98 def forward(self, x):
     99     x = x + self.attn(self.ln_1(x))
--> 100     x = x + self.mlp(self.ln_2(x))
    101     return x

File ~\workspace\bark\venv\lib\site-packages\torch\nn\modules\module.py:1501, in Module._call_impl(self, *args, **kwargs)
   1496 # If we don't have any hooks, we want to skip the rest of the logic in
   1497 # this function, and just call forward.
   1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
   1499         or _global_backward_pre_hooks or _global_backward_hooks
   1500         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1501     return forward_call(*args, **kwargs)
   1502 # Do not call functions when jit is used
   1503 full_backward_hooks, non_full_backward_hooks = [], []

File ~\workspace\bark\bark\model.py:82, in MLP.forward(self, x)
     81 def forward(self, x):
---> 82     x = self.c_fc(x)
     83     x = self.gelu(x)
     84     x = self.c_proj(x)

File ~\workspace\bark\venv\lib\site-packages\torch\nn\modules\module.py:1501, in Module._call_impl(self, *args, **kwargs)
   1496 # If we don't have any hooks, we want to skip the rest of the logic in
   1497 # this function, and just call forward.
   1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
   1499         or _global_backward_pre_hooks or _global_backward_hooks
   1500         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1501     return forward_call(*args, **kwargs)
   1502 # Do not call functions when jit is used
   1503 full_backward_hooks, non_full_backward_hooks = [], []

File ~\workspace\bark\venv\lib\site-packages\torch\nn\modules\linear.py:114, in Linear.forward(self, input)
    113 def forward(self, input: Tensor) -> Tensor:
--> 114     return F.linear(input, self.weight, self.bias)

OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 8.00 GiB total capacity; 7.33 GiB already allocated; 0 bytes free; 7.35 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Try https://github.com/JonathanFly/bark with  --use_smaller_models should fit even in 6GB.

What are the memory / VRAM requirements? And is quantization possible?
It would be great if a table with memory requirements could be added to the Readme and/or Docs.

added another simple option using the env var SUNO_USE_SMALL_MODELS=True to get smaller models that will prob fit on an 8gb card. Qw haven't implemented quantization yet. As for requirements would love it if people confirm who have the relevant cards (since it also depends on eg bf16 support etc) but i believe the small models work on an 8gb card and the large models work on a 12gb card.

added another simple option using the env var SUNO_USE_SMALL_MODELS=True to get smaller models that will prob fit on an 8gb card. Qw haven't implemented quantization yet. As for requirements would love it if people confirm who have the relevant cards (since it also depends on eg bf16 support etc) but i believe the small models work on an 8gb card and the large models work on a 12gb card.

where and how do I add? SUNO_USE_SMALL_MODELS=True

added another simple option using the env var SUNO_USE_SMALL_MODELS=True to get smaller models that will prob fit on an 8gb card. Qw haven't implemented quantization yet. As for requirements would love it if people confirm who have the relevant cards (since it also depends on eg bf16 support etc) but i believe the small models work on an 8gb card and the large models work on a 12gb card.

Thanks setting this environment variable worked for me!
Steps I took:
On Windows:
set SUNO_USE_SMALL_MODELS=True
jupyter lab

still getting the error
from bark import SAMPLE_RATE, generate_audio, preload_models
from IPython.display import Audio
import os
preload_models(use_gpu=False)
os.environ['SUNO_USE_SMALL_MODELS'] = 'True'

text_prompt = """
    Hello.
"""
audio_array = generate_audio(text_prompt)
Audio(audio_array, rate=SAMPLE_RATE)

CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 4.00 GiB total capacity; 3.46 GiB already allocated; 0 bytes free; 3.47 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
  File "C:\Users\smast\OneDrive\Desktop\Code Projects\Johnny Five\audio test.py", line 12, in <module>
    audio_array = generate_audio(text_prompt)
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 4.00 GiB total capacity; 3.46 GiB already allocated; 0 bytes free; 3.47 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

you have to set the environment variable before the model load. but also you can now more easily specify the model size in the preload function, see also here: https://github.com/suno-ai/bark/issues/51

but also you can now more easily specify the model size in the preload function, see also here: #51

No, you can't. It's bugged. The model size you specify in the preload function isn't respected. generate_audio will reload the large models when you call it. I couldn't get out why I was getting CUDA out of memory errors when I specified small and CPU for all the models and CUDA usage should have been zero. lol.

oh yikes sorry, lemme check. feel free to also PR if you find the bug

works fine for me on a quick test, can anyone else confirm its borked?

works fine for me on a quick test, can anyone else confirm it's borked?

The bug was in this line:
model_key = str(device) + f"__{model_type}"

It has since been fixed.

Ah on great ya just made some fixes there


opentsdb emitter occupy 100% core

We use opentsdb emitter to transfer metrics to opentsdb. But we found that the OpentsdbSender occupied 100% of one core.

when the eventQueue is empty, a loop will happen.

add Thead.sleep(INTERVAL) logic may fix the prob.

Thanks for your report, I will fix this problem in a few days.


Not each(or so it seems) operator is also available as a subroutine

https://docs.perl6.org/language/operators.html#Operator_classification

Each operator is also available as a subroutine

Seems to be false, see
> m: circumfix:«( )»('a', 'b', 'c')
> rakudo-moar c98b3a: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared routine:␤    circumfix:<( )> used at line 1. Did you mean 'circumfix:<{ }>', 'circumfix:<:{ }>', 'circumfix:<[ ]>'?␤␤»

And the example
m: circumfix:«( )»('a', 'b', 'c'); # same as ('a', 'b', 'c')

doesn't work. Needs investigation, clarification and fixing! @zoffixznet++.

there is no circumfix:<( )> operator.
fixed with 02a3832889


Payment scenarios where IRR returns None

First off, I wanted to say that I LOVE this library. I tested moving from 0.6.4 -> 0.7.2 and it seems like the IRR calcs are somehow twice as fast as they were. So thats incredible. I was hoping that it would reduce None results as well, but it does not. I was able to come up with ~1700 situations where pyxirr returns None and numpy financial returns a value. (There were 1707 in 0.6.4 and the same 1707 fail in 0.7.2) NPF is rather slow as you know and it'd be awesome to not have to fallback to NPF at all.
I wanted to get in and see if I could figure out what the issue is but I don't have any r experience - yet.
Here is a file containing the payment info of the ~1700 scenarios
failed-irr.txt
I just had a quick script like this:
import json
from pyxirr import irr

with open("failed-irr.txt", "r") as file_object:
    bad_payments_list = json.loads(file_object.read())

fail_count = 0
success_count = 0

for bad_payment in bad_payments_list:
    monthly_irr = irr(bad_payment)
    if monthly_irr is None:
        fail_count += 1
    else:
        success_count += 1

print('Successful: ', success_count)
print('Failed: ', fail_count)

It takes a bit to run through all 1700 calcs. I realize this is open source and you likely have limited time to look at this. Let me know if theres anything else I can provide to help.

@CliveCleaves, first of all, thank you so much for preparing so many examples. It's a lot of work.
By definition, the Internal Rate of Return is the interest rate that makes the Net Present Value zero.
So, the result of npv(irr(payments), payments) must be close to zero.
I checked the first 100 cases from the file and as a result did not get a value close to zero (the results are in the table below).
Here is the code snippet I used:
import numpy_financial as npf

for i, bad_payment in enumerate(bad_payments_list[:100], start=1):
    monthly_irr = irr(bad_payment)
    if monthly_irr is None:
        rate = npf.irr(bad_payment)
        print(i, " ", rate, "\t", npf.npv(rate, bad_payment))

As you can see, npf calculates the wrong rate in most cases. In some cases, the rate is close to 0.01, but the default tolerance in pyxirr is 0.001.
My suggestion: add a parameter to control the tolerance. This will allow for rate close to 0.01 (as in lines 1, 31, 61) instead of None.

row
npf.irr(payments)
npf.npv(npf.irr(payments), payments)

1
-0.8936246934946801
-0.015625

2
-0.7990327261002742
-2560.0

3
-0.7158083244273705
3670016.0

4
-0.6425367523140351
-738197504.0

5
-0.45306129910967397
-6912.0

6
-0.27943531109758235
-16128.0

7
-0.05894303425691705
-226.9128818511963

8
-0.062069116554579806
-791.8739314079285

9
-0.06130802108808808
345.1872525215149

10
-0.05933842038265813
-1688.7603859901428

11
-0.05461159904197255
-978.9646096229553

12
-0.052236780965806084
28.20184588432312

13
-0.04993411223184674
105.46152472496033

14
-0.04771710604071966
-659.4393312931061

15
-0.11313290374336471
-2.1179680285957706e+17

16
-0.12380011736813235
-8.303599304799997e+20

17
-0.12148983904900423
-8.399282265207042e+20

18
-0.11351942509378687
-1.0985608755409074e+19

19
-0.10971825180743133
3.970466888300542e+19

20
-0.10617590512106323
-2.591060111004934e+19

21
-0.10288417295784236
-3.5182019461365e+18

22
-0.09982373039333636
-4.272342621694098e+18

23
-0.096974859077675
-1.0566482529556257e+19

24
-0.0942605713520277
-3.554631715430676e+18

25
-0.09160441776867478
2.0985123094762243e+18

26
-0.08638409596484464
2691025437610568.0

27
-0.08375016974399507
2.1768153108064202e+17

28
-0.07813769007643134
-3.1658335976152216e+16

29
-0.07496610539028381
-6260952040811012.0

30
-0.07135299331973177
-2587482753078264.0

31
-0.8936246934946801
-0.015625

32
-0.7998321714433255
1024.0

33
-0.35834923940077545
-11264.0

34
-0.3201477883422911
-25600.0

35
-0.06178150788719028
-1188.607373714447

36
-0.06479969725043433
-3342.7869114875793

37
-0.0639511124405634
-5621.257207870483

38
-0.06193347593420073
1884.1013813018799

39
-0.059586994349779654
-2328.552409172058

40
-0.057170549931088055
-4020.973428249359

41
-0.05478806692913096
-295.99726915359497

42
-0.05247866453616756
-2035.0299735069275

43
-0.0502534326425359
-405.5948085784912

44
-0.12092730577360811
-9.852461598033881e+18

45
-0.13088050883528168
-7.42961726435428e+22

46
-0.12832189961437568
-5.703403052118493e+22

47
-0.12433446914135182
1.0904007085940357e+22

48
-0.12035878161468416
-1.0133329081812726e+22

49
-0.11662953054938607
-2.735239229801871e+20

50
-0.1131766136006368
4.9687771080854576e+20

51
-0.1070419042505083
-6.538533176600873e+20

52
-0.10173330034181949
-3.403131881079792e+20

53
-0.09919648188532759
-2.0014840980656613e+20

54
-0.09668812782631997
-7.85954229262796e+18

55
-0.09417677384893142
-1.1776497112587638e+20

56
-0.0916133564870083
7.990358787247078e+19

57
-0.0889298995123946
1.0533573271899357e+19

58
-0.08603514212123309
4.1335453872802186e+18

59
-0.08279861201389727
-1.682472576693933e+18

60
-0.07903993184061098
4.056002572715154e+17

61
-0.8936246934946801
-0.015625

62
-0.40678912033617265
13312.0

63
-0.36271295591593067
-34816.0

64
-0.29319483223699905
-67584.0

65
-0.048873335750406754
-1.586534470319748

66
-0.06423297770524161
-1867.2682104110718

67
-0.06714763445396643
-4781.858381271362

68
-0.06622229055758766
-18794.263805389404

69
-0.06416275576541774
-51622.113845825195

70
-0.061794893125661665
-30779.593170166016

71
-0.059365765722609765
7436.420125007629

72
-0.05697382260635797
2957.5482454299927

73
-0.05465487196079233
-5706.3660707473755

74
-0.12749121493063642
-1.8105029574469603e+21

75
-0.1368043670031981
-5.094417497900866e+23

76
-0.1300269706616849
5.339293325272833e+22

77
-0.12607739717808297
6.23260729465026e+23

78
-0.12239718999773586
4.815888797973269e+22

79
-0.11900718071444105
-2.393781977084619e+22

80
-0.11302986834685591
4.4430147946035843e+21

81
-0.11040106061107957
-6.636981947398056e+22

82
-0.1079109580094878
2.1342333723921393e+21

83
-0.10546226382208324
7.911211341279792e+21

84
-0.10058576940085195
-3.615519782716349e+21

85
-0.09806843841170787
-4.0271933527674276e+21

86
-0.09540414560153032
-1.5542887407623744e+21

87
-0.09249112617613864
-7.51720377758537e+20

88
-0.08918507501300055
2.073024456663685e+20

89
-0.08527891420665845
5.904417979139076e+19

90
-0.6945652270960949
-1.5

91
-0.4554753414952092
-30.0

92
-0.18407373777942015
-385.1511790752411

93
-0.16742490338378802
-363.22283458709717

94
-0.14680347997793708
-21.146135687828064

95
-0.12905888338688876
0.4194630980491638

96
-0.11416158249887243
-11.897696077823639

97
-0.10165908399892021
-1.1505871415138245

98
-0.09108732540593278
-1.263539344072342

99
-0.0820965521945235
-0.27379148453474045

100
-0.07440695784995799
-0.2943432182073593

Awesome, thank you very much for looking into it. I was certainly taking for granted the idea that NPF was correct or close to correct! It was no trouble at all preparing the examples. I'll look into tolerance locally 😄


Support for Shaarli

Hey there!
Love this extension! Somehow Linkding still has a couple of issues that doesn't make it production ready for me.
I've use Shaarli for years and I would love a similar extension compatible with it.
I've looked at your code (even though I'm not versed in building browser extensions) and it looks like it would be fairly simple to transpose API calls from Linkding to Shaarli API calls.
Only difference is around auth, Shaarli works on a JWT token: https://github.com/shaarli/api-documentation/blob/master/api-authentication.md
API call for search is fairly classic: https://bookmark.example.com/api/v1/links?searchterm=linux&limit=10
Output:
[
	{
		"id": 4956,
		"url": "https:\/\/addons.mozilla.org\/en-GB\/firefox\/addon\/blah\/",
		"shorturl": "PJJIcg",
		"title": "the title",
		"description": "the description",
		"tags": [
			"extension",
			"firefox"
		],
		"private": false,
		"created": "2022-12-18T22:13:45+01:00",
		"updated": "2022-12-18T22:14:00+01:00"
	}
]

I can spin up a Shaarli instance if needed.

Hey @sebw!
A few thoughts:

Yeah, looks like most of the work would probably be on the configuration side (user UI for choosing linkding or Shaarli API and configuring that).

This is likely not relevant to you personally but would probably mean the extension should be renamed to bookmark-injector or similar down the line.

Of course the injected results would still be styled like linkding, but theming support is not essential and not something I'm willing to tackle for now.

Is this a feature request only or do you intend to make a PR? In case of the latter I would ask you to wait until the next release. I'm in the process of changing the extension to support manifest v3 and that will include changes in a lot of files.

Hey @Fivefold

one extension covering multiple bookmarking services would be even better!
agree bookmark-injector would make sense
I like the theme as it is!
as much as I'd love to help out, I have never built an extension before and never wrote anything in node but I can definitely test, document or translate stuff! I actually gave a shot to building the extension, but the resulting ZIP wouldn't load (firefox reporting it corrupted, but can still install in debug mode, but quickly fail at the configuration step... I see the testConnection and get a 200 but get an error still).

Maybe you can write and test a JavaScript function for encoding/generation of the JWT token as shown for PHP at the shaarli docs https://github.com/shaarli/api-documentation/blob/master/api-authentication.md#php
You can do this completely outside of the extension context.
This would take some of the work off me. It will still most likely take weeks until I can actually get to implement it though.

Here's a working example using jsonwebtoken library.
let jwt = require('jsonwebtoken');
let now = Math.floor(Date.now() / 1000)

const shaarli_api_secret = 'shaarli-api-secret';
const payload = {
  "iat": now
};

let token = jwt.sign(payload, shaarli_api_secret, { algorithm: 'HS512'});

console.log(token)

Thank you very much, @sebw! Looks good and easy.
Unfortunately I just found out using node modules in browser extensions requires bundling them with the extension. I'm using rollup as a bundler, mostly because I started from the code of the official linkding extension and it seemed to do the job well. I'm very inexperienced with rollup. It can probably bundle node modules too but it would likely take a lot of time for me to set it up just for encoding the JWT token. I might take a shot at it nontheless.
Ideally, I'm looking for a vanilla JavaScript solution, although I'm not sure if JavaScript supports base64 encoding or sha512 hashing out of the box or how much trouble it would be to implement them.
If you do know rollup that would be even better and cleaner though.

Just checking out the project and though I might be of help

plain JS base64 https://stackoverflow.com/a/45844934/28290
browser crypto sha512 https://stackoverflow.com/a/55926440/28290

Thank you @gingerbeardman, this looks good! I wasn't aware of the subtlecrypto API. Will try it out the next time I take a shot at this.
In the meantime I tried to get rollup to bundle node modules with the help of ChatGPT but even then I was unable to get the bundling working properly. Apparently it should be enough to add preferBuiltins: false to the resolve Plugin in rollup.js.
https://github.com/Fivefold/linkding-injector/blob/a66b0e883d6df9ef37a8290d23a7b20025902507/rollup.config.js#L56
https://github.com/Fivefold/linkding-injector/blob/a66b0e883d6df9ef37a8290d23a7b20025902507/rollup.config.js#L81
The resolve plugin itself is from @rollup/plugin-node-resolve and is specifically there to bundle node modules. Unfortunately I still got ReferenceErrors when trying to access stuff from imported node modules.


webpack production  url-loader  limit   path error

webpack.config.renderer.prod.js  modify
{
        test: /\.(?:ico|gif|png|jpg|jpeg|webp)$/,
        use: {
          loader: 'url-loader',
          options: {
            limit: 10000,
          }
        }
      }

Home.js  modify
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import styles from './Home.css';
import logoIcon from './images/logo.png';

export default class Home extends Component {
  render() {
    return (

Home

          <Link to="/counter">to Counter</Link>

    );
  }
}

console log
Failed to load resource: net::ERR_FILE_NOT_FOUND
file:///D:/Documents/Desktop/electron-react-boilerplate/dist/7b83e16ed2ae3841129ae710997b48eb.png

but,The correct should be
 file:///D:/Documents/Desktop/electron-react-boilerplate/app/dist/7b83e16ed2ae3841129ae710997b48eb.png

Try changing this line from publicPath: '.,/dist/', to publicPath: './dist/',

@amilajack  publicPath: '../dist/', to publicPath: './dist/'，I tried it，but  it  will  bring more problems.
All other‘s image will  throw  exceptions，

Set the public path like so for extract css

it's working ,thank you very much


DynamicDiscoverySharedInformerFactory.discoverTypes does not scale

It currently iterates through all ClusterWorkspaces, gets discovery from each one, and constructs a union of all the GVRs. This will not scale as the number of ClusterWorkspaces increases.
We should be able to do a more efficient implementation based on the distinct set of GVRs from:

built-in types
all CRDs in the lister

Replaced with more details in #1350


Cargo.lock

The Cargo.lock file should either be committed or added to .gitignore.
I would personally commit it since this is a binary project and not a library recent guidelines aren't as strict (https://blog.rust-lang.org/2023/08/29/committing-lockfiles.html) so a decision on the matter may be needed.

I obvoiusly did something weird here. It is committed and this is a non-issue. Closing


Initial condition with a step

Hello,
I have modified ex18 to solve for the explosion test case which consists in setting a step initial condition (density varies from 3 to 1). When I set the polynomial order to 0, the initial density looks fine. However, when I set the polynomial oder to 1, the initial profile of the density shows peaks higher than 3. I added two figures to illustrate what I see.
Initial density with polynomial order set to one:

Initial density with polynomial order set to zero:

I doubt this is a visualization artifact. I also tried to smear the initial discontinuity which seems to help. Any help would be appreciated.
Thanks,
Marco

This should be a visualization effect. You probably interpolate the mixed 0/1 zones, but then there's an L2 projection when you plot them. The interpolated DG dofs are inside the zone, so you get some overshoots at the ends.
After the projection, you can do a GridFunction::Print( ) to see the actual dof values.

Vladimir,
thank you for your email.
What do you mean by '0/1 zones'?
I did a GridFunction::Print() to see the values and they look ok. So what
is the correct way of visualizing the data without the under/overshoots?
Thanks,
Marco
On Thu, Sep 27, 2018 at 5:06 PM Vladimir Tomov<EMAIL_ADDRESS>wrote:

This should be a visualization effect. You probably interpolate the mixed
0/1 zones, but then there's an L2 projection when you plot them. The
interpolated DG dofs are inside the zone, so you get some overshoots at the
ends.
After the projection, you can do a GridFunction::Print( ) to see the
actual dof values.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mfem/mfem/issues/614#issuecomment-425243261, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AEfDCo91Q6QzTTVqv8Mt_5IAGv8_nBLBks5ufT3hgaJpZM4W9YGr
.

--
Marc-Olivier Delchini

By mixed zones I meant zones where some dofs are set to 1 and some to 3 (I should've said mixed 1/3 zones). In such zones the values at the dofs are 1 or 3, but some quadrature points have undershoots or overshoots. When we're concerned having all quadrature values between 1 and 3, we usually use Bernstein polynomials, see for example the third argument in the constructor of L2_FECollection. Choosing the positive (Bernstein) basis should fix the oscillations.

So I replaced DG_FECollection fec(order, dim); with DG_FECollection
fec(order, dim, BasisType::Positive); in ex18.cpp and it does compile but I
get an error message when I run the code:
FiniteElement::Project (...) (vector) is not overloaded !
Abort trap: 6
I assume it is not that simple. What am I getting an error message and what
should I do to fix it?
Thanks,
Marco
On Sun, Sep 30, 2018 at 2:56 AM Vladimir Tomov<EMAIL_ADDRESS>wrote:

By mixed zones I meant zones where some dofs are set to 1 and some to 3 (I
should've said mixed 1/3 zones). In such zones the values at the dofs are 1
or 3, but some quadrature points have undershoots or overshoots. When we're
concerned having all quadrature values between 1 and 3, we usually use
Bernstein polynomials, see for example the third argument in the
constructor of L2_FECollection. Choosing the positive (Bernstein) basis
should fix the oscillations.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mfem/mfem/issues/614#issuecomment-425699418, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AEfDCslHkwvgfuN-EkMoPFbwRRW0NLXfks5ugGsAgaJpZM4W9YGr
.

--
Marc-Olivier Delchini

Have a look at the changes in branch pos-vector-basis-dev.  I tried this with ex18 modified to use BasisType::Positive and it seemed to work.  If you run into further trouble please let us know.

Hi,
I wanted to look at the branch and it seems it was either deleted to merged. Is there a way to access another branch with the same modifications?
Thanks,
Marco

Hi @delcmo,
the branch was successfully merged from PR #629 to master. If you checkout the newest master branch these changes are included.

Julian,
thanks for your reply. It does work now.
Marco
On Wed, Oct 31, 2018 at 1:02 PM Julian Andrej<EMAIL_ADDRESS>wrote:

Hi @delcmo https://github.com/delcmo,
the branch was successfully merged from PR #629
https://github.com/mfem/mfem/pull/629 to master. If you checkout the
newest master branch these changes are included.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mfem/mfem/issues/614#issuecomment-434764241, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AEfDCnaDIQK9fW-TW0aja_5JnRhvBTIyks5uqdehgaJpZM4W9YGr
.

--
Marc-Olivier Delchini


pip install from github

Hi @chrisyeh96 and team,
Thanks for your work and this comprehensive Github repository. And congratulations on the NeurIPS data track acceptance.
I wanted to install the repository directly in pip via pip install git+https://github.com/sustainlab-group/sustainbench.git but ran into the following issue (posted below). This is a convenience issue, but being able to import directly from pip may be a nice addition.
Thanks again,
Marc
❯ python -m pip install git+https://github.com/sustainlab-group/sustainbench.git
Collecting git+https://github.com/sustainlab-group/sustainbench.git
  Cloning https://github.com/sustainlab-group/sustainbench.git to /tmp/pip-req-build-mzsr5qc0
  Running command git clone -q https://github.com/sustainlab-group/sustainbench.git /tmp/pip-req-build-mzsr5qc0
    ERROR: Command errored out with exit status 1:
     command: /home/marc/anaconda3/envs/elects/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-mzsr5qc0/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-mzsr5qc0/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-qaax5_2s
         cwd: /tmp/pip-req-build-mzsr5qc0/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-mzsr5qc0/setup.py", line 7, in <module>
        from version import __version__
    ModuleNotFoundError: No module named 'version'
    ----------------------------------------
WARNING: Discarding git+https://github.com/sustainlab-group/sustainbench.git. Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Edit: I got the same error after cloning and pip install .. I changed out the following in setup.py fix
sys.path.insert(0, os.path.join(here, 'sustainbench')) # used to be SustainBench

Thanks for posting your fix @MarcCoru. With that I was able to pip install, but I still had to manually add the location of sustainbench/ to my path.
Note that the package is labeled SustainBench. So this means that, for example, the import line in the dataset download script needs to be changed from sustainbench to SustainBench. Or the name in setup.py needs to be changed.


Handling EXTRUDE_MAXLENGTH

I am assuming this plugin is not working for me because my EXTRUDE_MAXLENGTH is 200mm
Can you detect the error Ill have to check exactly what it says,  it comes through terminal
In settings allow extrude settings to be multiple moves, so 200mm x 2
Could be done with 1 extra input with a default of 1
And the code would have to handle this of course, and issue 2+ commands and calculate the time somehow ?( I mean we should be able to guess via the feedrate ) unless there is a way to ask in marlin for this settings and do it all automatically maybe....

refs
#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
too long extrusion prevented

it seems M302 can disable something, looking into if it does both cold and lengthy flags in marlin.
I was thinking it disables PREVENT_DANGEROUS_EXTRUDE which covers both.

The way this plugin is made, there isn't a way for it to read or interpret values returned from the printer. In your special case, you could set the unload/load length to half what you really want, and simply click the button twice.
If it becomes a more widespread issue I could maybe work around it some other way, like perhaps supporting comma-separated values in the fields and running multiple commands. For example, setting the unload length to 150,150 would result in a total of 300 issued as two commands.

Good idea

Hi, I was coming onto report the same issue and had the same idea of being able to set the extrude lengths - however could it be possible to also set a multiplier in the plugin i.e. extrude "100" multiplied by "5" and it just repeats to give you "500" full unload - likewise for load?
Possibly also adding in a box to define the pause duration between repeating extrude commands as you can see that being the next issue.

(Posting for content on this thread from #21)
The maximum I have managed to have my Ender 3 Pro unload is 100mm, and the full filament unload length is 475mm (slightly shorter Bowden tube fitted than the factory 500mm)
Is it possible to have the plugin feature filament unload length and maximum machine retract length, and then manage the retract from there with multiple commands?

But then you are asking the user to fill out 2 inputs, seems cumbersome, it would be cool if you could query marlin for EXTRUDE_MAXLENGTH but you cannot afaik

Yes, two inputs, which are entered once and set and forget after that...

I second this. 👍

I'm new to this stuff, I just started editing marlin for my 3D printer, can someone explain to me what EXTRUDE MAXLENGTH means and how to set it up


[API CHANGE] feat: implement DNS spoofing

This diff implements DNS spoofing. To this end, we restructure how RST injection works first. We drop the FrameFlagRST flag, which implemented RST injection, and we replace it with FrameFlagSpoof. We introduce in DPIPolicy and Frame the possibility of indicating spoofed IP packets. A DPI rule that matches and wants to spoof packets will need to set the FrameFlagSpoof and prepare the packets to spoof. The router will honor the FrameFlagSpoof and spoof all indicates packets before forwarding the Frame with the FrameFlagSpoof set.
Once we have implemented this change, we write a new DPI rule that spoofs DNS responses when it sees a query containing an offending domain name. The implementation just uses FrameFlagSpoof.
While testing this diff, we realized that all rules using FrameFlagSpoof require some delay in the router<->server path to ensure that the spoofed packets arrive earlier. Hence, we updated the documentation and the integration tests to make sure this need to add extra delay on the router<->server path is documented and reflected by tests.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

122 of 144 (84.72%)  changed or added relevant lines in 7 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 82.236%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

dissect.go
46
52
88.46%

dpiblock.go
54
70
77.14%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
2060

Relevant Lines:
2505

💛  - Coveralls


typo in login page (German)

just one exclamation mark, not two. there is one in the translation. must be removed. see screenshots:

fixed in 2.3.0


Discussion: How to run memlab on a test suite.

It's all in the title, we are running tests with Testing Library + MSW on Jest and with some legacy jest mocks. The pipeline looks a bit flaky on the CI and we'd like to rule out memory leaks by running memlab on the existing test suite as opposed to creating a scenario and re-write all the test base.
Is there any chance to achieve this with the current implementation? The get started doc seemed that you need to boot up the app and run scenario to find leaks by headlessly browsing the app as opposed to running existing tests.

@SimonGodefroid Can you share an example of what your current test looks like, does your test create its own Puppeteer page object and interact with it?

Hey @JacksonGL so I don't have an example to share unfortunately because our company's code is closed source but essentially we run tests with Jest + React Testing Library. I guess my question is outside of the current working principles of Memlab essentially I'm asking whether there'll be a way to for instance:
$ memlab "yarn test"

Where yarn test is your test script command e.g. react-scripts test and then Memlab would be able to track down leaks by relying on the test suite rendering the app as opposed to going through Puppeteer.
Essentially finding a memory leak on a repo would be something that you run against an existing test base (if possible) as opposed to having to setup a new tool. Then it might not be doable. I kinda thought Memlab would do what --detectOpenHandles does but super charged and without having to setup anything new.

@SimonGodefroid --detectOpenHandles  in Jest was using async_hooks from node.js. E2E test framework like puppeteer doesn't seem to provide a callback to instrument navigation in SPA (let me know if there is one). Navigation and interaction in SPA is often application specific, MemLab doesn't know when and how to take heap snapshots (without the puppeteer page object). Curious to hear if there is any ideas.


xSQLServerMemory: code improvements

I had this for some time as a fork.
I think the code looks better and fixes some of the logic around the min/max checking.
I removed DyamicAlloc from being a key (default value false)
This code doesn't fix any particular issue.

This change is

Hi @gigi81, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, 16 unresolved discussions.

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 21 [r1] (raw file):

    )

    if(!$SQL)

Does this validation need to be here? It is never set before this.

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 23 [r1] (raw file):

    if(!$SQL)
    {
        $SQL = Connect-SQL -SQLServer $SQLServer -SQLInstanceName $SQLInstanceName

Can we change $SQL to $sql (lowercase)?

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 62 [r1] (raw file):

        [System.Int32]
        $MaxMemory =<PHONE_NUMBER>,

Could we use [System.Int32]::MaxValue instead of the hardcoded value in all places it is used? Would that work?

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 68 [r1] (raw file):

    )

    if(!$SQL)

Whitespace after if  ìf (`. Please change this in all places

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 75 [r1] (raw file):

    If($SQL)
    {
        switch($Ensure)

Whitespace after switch switch ($Ensure)

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 79 [r1] (raw file):

            "Absent"
            {
                $MaxMemory =<PHONE_NUMBER>

Could you add a comment in the code here that this is the default settings for min and max memory? So it's understood why precisely these values are sent when absent.
Also, could we use [System.Int32]::MaxValue here instead?

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 88 [r1] (raw file):

                {
                    $MaxMemory = Get-MaxMemoryDynamic $SQL.PhysicalMemory
                    $MinMemory = 128

Could make comment in the code here why this is set to precisely 128.

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 131 [r1] (raw file):

        [System.Int32]
        $MaxMemory = 0,

Should the default here be 0 (zero). That differ from the other methods.

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 152 [r1] (raw file):

        "Absent"
        {
            if ($getMaxMemory -ne<PHONE_NUMBER>)

Could we use [System.Int32]::MaxValue here instead?

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 154 [r1] (raw file):

            if ($getMaxMemory -ne<PHONE_NUMBER>)
            {
                New-VerboseMessage -Message "Current Max Memory is $getMaxMemory. Expected<PHONE_NUMBER>"

Could we use [System.Int32]::MaxValue here instead?

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 154 [r1] (raw file):

            if ($getMaxMemory -ne<PHONE_NUMBER>)
            {
                New-VerboseMessage -Message "Current Max Memory is $getMaxMemory. Expected<PHONE_NUMBER>"

Could we change "Max Memory" to "maximum server memory"? Please change in all places

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 160 [r1] (raw file):

            if ($getMinMemory -ne 0)
            {
                New-VerboseMessage -Message "Current Min Memory is $getMinMemory. Expected 0"

Could we change "Min Memory" to "minimum server memory"? Please change in all places

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 170 [r1] (raw file):

            {
                $MaxMemory = Get-MaxMemoryDynamic $SQL.PhysicalMemory
                $MinMemory = 128

Same here, could make comment in the code here why this is set to precisely 128.

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 204 [r1] (raw file):

    {
        #Server mem - 10GB
        $maxMemory = $PhysicalMemory - 10000

Would it be possible this format to calculate these values so they are more readable? And so it actual removes 10GB as the comment suggest. Would that work with the intended behavior?
[int](10GB / 1000KB)
Also the validation above maybe something like if ($PhysicalMemory -ge [int](128GB / 1000KB))?
Please change throughout this function.
If the current hard-coded values need to be exactly like they are for the intended behavior to work, then add a comment in the comment saying what each value represent.

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.psm1, line 252 [r1] (raw file):

Export-ModuleMember -Function *-TargetResource

Make sure there is a blank row at the end of the file

DSCResources/MSFT_xSQLServerMemory/MSFT_xSQLServerMemory.schema.mof, line 5 [r1] (raw file):

class MSFT_xSQLServerMemory : OMI_BaseResource
{
    [Write, Description("An enumerated value that describes if Min and Max memory is configured"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure;

These descriptions seems more descriptive than those in README.md Can you get these aligned with the README.md?

Comments from Reviewable

Review status: all files reviewed at latest revision, 17 unresolved discussions, some commit checks failed.

README.md, line 353 at r1 (raw file):

   - Fixed an issue when dropping logins.
   - BREAKING CHANGE: Fixed an issue where it was not possible to add the same login to two instances on the same server.
* Changes to xSQLServerMemory

The Unreleased section has been moved to the CHANGELOG.md. Please move your entries to the Unreleased section in the new CHANGELOG.md when you do git rebase.

Comments from Reviewable

This is obsolete with the work being done in PR #343


Right click context menu to open a file in a new tab from any view

What would you like to be added?
I would like a context menu to open a file from any view in another tab or window. It is currently not possible in any view. I don't see this on the roadmap anywhere. Searches in issues and discussions for right click, context, and menu revealed no relevant results.
Why is this needed?
Currently, clicking the file name opens the file in the same tab as the project is displayed. Multiple files cannot be opened to compare with the project or other notes natively in the plugin.
The current workaround is the built in search feature to find the file, then using the Obsidian context menu to open the file(s).
Additionally, using the back button to return to the project being viewed after clicking to open the file from projects goes to the "default" first project, not the one I am working in if it isn't first in list. That portion may be related to open issues about project selection.

If you hold Ctrl (or Cmd on macOS) it should open the link in another tab. Let me know if it doesn't!

No worries, it's not really documented anywhere, so I apologize for that 🙏


Bump to puppet-homebrew 2.0.2

In boxen/puppet-homebrew#93 @salimane found that the user was always running as
root when using homebrew instead of the current user. puppet-homebrew 2.0.2
fixes this by using the current Boxen user instead.

Have raised the question around why we used to use root but now throws issues via https://github.com/boxen/puppet-homebrew/pull/93#issuecomment-205518947


[Backport 2.8] Add release notes for 2.8.0

Description
Add release notes for 2.8.0
Category
[Enhancement, New feature, Bug fix, Test fix, Refactoring, Maintenance, Documentation]
Maintenance
Issues Resolved

Relate https://github.com/opensearch-project/security/issues/2785

Check List

[ ] ~New functionality includes testing~
[ ] ~New functionality has been documented~
[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Note: I have already include this change https://github.com/opensearch-project/security/pull/2795 in the release note.


Notebooks with code cells cannot be marked as Trusted

Azure Data Studio Version:
Version: 1.23.0 (user setup)
Commit: d296b6397e0acfddc57e9085e736e084969cdaeb
Date: 2020-10-13T23:03:09.799Z
VS Code: 1.49.0
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042

also
Version: 1.24.0-insider (user setup)
Commit: 7857e8aeb9e1310a7e8af0285543d42cd505c716
Date: 2020-10-30T05:34:43.899Z
VS Code: 1.48.0
Electron: 9.3.0
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042
Steps to Reproduce:

Open an existing notebook that has Code cell.
I'm unable to mark this as Trusted now.

The screenshot is from a file from my own repo that I cloned locally:
https://github.com/MsSQLGirl/jubilant-data-wizards/blob/main/Notebook Templates/TutorialTemplate.ipynb
Expected: be able to mark as Trusted.
Impact: users who have links in the code cells (from the same notebook) cannot be launched because of the Trusted issue.

There has to be a nested folder here.
Basically we're looking at:

Open folder in ADS
From notebooks viewlet, open a notebook that's not in the root of whatever folder you previously opened

@lucyzhang929 could you take a look at this when you get a chance next week 😄

Just kidding @lucyzhang929. It was simple enough (1 line change) 😄


[FEATURE] Data grouping for large datasets

Expected Behavior
Other charting libraries automatically group series data instead of rendering every single point (example: http://www.highcharts.com/stock/demo/data-grouping) and here is a detailed explanation of how it's done in amcharts: https://www.amcharts.com/kbase/understanding-data-grouping-of-stock-chart/
Possible Solution
The solution outlined by highcharts.js and amcharts are a bit different:

Highcharts calculates the point to pixel density, if each point rendered will be smaller than a pixel then there is no need to render each of them, instead data is grouped and by default the average value of the group is calculated (sum is used for bar charts)
Amcharts implements a customizable solution where the user sets the group size
In both cases the group size and value is calculated automatically
A group value function callback could be added for other solutions like max or min value instead of average
On zoom or resize groups should be recalculated

Context
Often data visualizations require to render thousands of points, this is not necesary becase:

the user might not be able to understand so much data
the rendering is too slow
calculating group averages might display more interesting values than each point
This solution improves performance because calculating groups should always be faster than rendering on the canvas [this might be up to devate]

This looks like an interesting feature that could form the basis of a lot of features. I feel that this could live as a plugin that ships from the main repository but that isn't included in the main build (due to size requirements that this introduces). I'm happy to look at a PR that starts these features out.
Another option is to do min max decimation which at most has 4 points per pixel

Thank you for your quick answer @etimberg
As I am still getting started with chartjs (but I already love it) could you point some hints of how to get started with this?
I have to get this implemented anyway and I'd be happy to collaborate.

Some examples of plugins are: https://github.com/chartjs/chartjs-plugin-zoom https://github.com/chartjs/chartjs-plugin-annotation
The plugin docs are: https://github.com/chartjs/Chart.js/blob/master/docs/developers/plugins.md
What I think you would need to do is to hook into beforeUpdate or resize and use the size of the chart to remove items from the chart.options.data object. Then the chart would render with less data until such time as beforeUpdate is called again. You would need to take care to keep a complete copy of the original data somewhere so that you can re-decimate on the fly.

I'll make sure to follow up here when I make some progress on this

This would be highly beneficial for us too. Thanks for looking into this.

Another vote for this feature here

@jesusgp22 Did you ever implement a plugin for this? This would be super helpful right now.

There is something like this, maybe you can use it as a starting point:
https://github.com/AlbinoDrought/chartjs-plugin-downsample

@neon-dev I am getting this error when added your snippet:
Uncaught TypeError: Cannot read property '_children' of null
    at Object.dataset (Chart.js:11077)

line 11077: var points = (visible && meta.dataset._children) || [];
Any hints?

Since you did not provide a fiddle or further information about your data and chart version, I created a working fiddle using my plugin:
https://jsfiddle.net/donyxzqz/
Hope it helps. As I already said, it most likely needs to be modified to work for your use case.
For example I've already changed the reduce function to chunk the data based on their time distance. Currently data points are simply chunked by a counter, so a chart with varying distances between points will lose way too much information where points aren't as close to each other, if displayed along with many data points that are near each other.

@neon-dev Thanks for your code. I am trying to adapt it, but my axis is numerical (linear), not time. How do I find min and max values on the x axis?

@khumarahn Regular min and max values are stored in the ticks option per axis, so you need to change time to ticks:
  var startX = chartOptions.ticks.min;
  var endX = chartOptions.ticks.max;

Quick example: https://jsfiddle.net/donyxzqz/4/ (you should rename other variables which are still called or referring to time)

thanks! I found also that chart.scales["x-axis-0"].min and chart.scales["x-axis-0"].max work, probably set by the zoom plugin.

@neon-dev are you considering including this into a plugin ?

@PodaruDragos sorry, no plans. Best would be to integrate the main performance boost (data truncation outside the visible area) directly into Chart.js with a PR in my opinion, but I don't have the time and experience with the Chart.js source for it. If we had that, the grouping feature could be a plugin on its own or also become a native feature.

@neon-dev i am willing to help if i can, i myself don't have any experience with the library, but this seems like a good ideea

any progress on this?

Any update?

Chart.js v3 should be much faster, but if you want something even faster than that, here's shameless plug: https://github.com/leeoniya/uPlot

Yes, this has actually been implemented for line charts in v3: https://github.com/chartjs/Chart.js/blob/e25936648cf826aca19436ebc0e46331eaa16c6d/src/elements/element.line.js#L87
It hasn't been implemented for other chart types yet

Thank you!

@benmccann are there any benchmarks for how fast this is compared with master ?

development on v3 is occurring on master, so you probably mean how much faster is master than 2.9
we've made a lot of improvements in the most recent versions. 2.9.3 is a lot faster than 2.8. I would recommend checking out our new performance docs for other tips on speeding up your charts: https://www.chartjs.org/docs/latest/general/performance.html
we're working on deploying a benchmark currently, but 3.x is currently somewhere around 2-3x faster than 2.x. we're still working on additional improvements

Based on the suggestions here I have written a plugin that displays only one data point per pixel. In my example fiddle, the plugin seems to be 2-8 times faster than plain chart.js 2.9.4, depending on the amount of data and canvas size.
https://jsfiddle.net/dudelkuchen/xboa584h/30/
https://github.com/dudelkuchen/chartjs-plugin-largedatasets

Based on the suggestions here I have written a plugin that displays only one data point per pixel. In my example fiddle, the plugin seems to be 2-8 times faster than plain chart.js 2.9.4, depending on the amount of data and canvas size.
https://jsfiddle.net/dudelkuchen/xboa584h/30/
https://github.com/dudelkuchen/chartjs-plugin-largedatasets

@etimberg Why was this closed? That PR didn't even solve the original users suggestion.

It's recommended to do this in a plugin. We added the hooks necessary to allow such a plugin. We also added data decimation in core: https://www.chartjs.org/docs/latest/configuration/decimation.html


Custom paths

Thanks for this package!
Would it be possible to have configuration options for where the source files are? Ideally, these would be project specific, but just having a global setting would be a good start.
Currently, atom-debugger seems to expect both the executable and the source files to be under the project root?
I have my executable under ./build/ and source files under ./src/ (from the project root). There are a lot of other files belonging to the project, and having ./src/ as the project root in Atom is a bit uncomfortable to use.
I'm not sure how atom-debugger controls gdb, but these should be quite easy to customize with the --directory and --exec options?

@kankaristo Thank you, I will try to fix it in next version.


Clean up grunt options

We aren't taking advantage of all of the folder options in grunt. We need to either use the folders or get rid of the settings.

results/screenshots folders

We also need to determine whether we will have separate folders for baselines/tests per env or one folder for both per env


Error message is not accurate when invoke pwsh -file with multi parameters in post-build event

Steps to reproduce
related  to https://github.com/MicrosoftDocs/cpp-docs/issues/434, three steps in that issue
use pwsh in .bat, and the bat invoke by post-build event
a little difference to invoke this error in step2:
modify the pwsh command from
pwsh -file "%solutionDir%powershell\Resources.ps1" "%solutionDir%"
to
pwsh -file "%solutionDir%powershell\Resources.ps1" "%solutionDir%" "%targetDir%"
Expected behavior
tell me the correct wrong info in step2
Actual behavior
Solution\powershell\Resources.ps1 : Cannot process argument because the value of argument "name" is not valid. Change the value of the "name" argument and run the operation again.
3>  + CategoryInfo          : InvalidArgument: (:) [Resources.ps1], PSArgumentException
3>  + FullyQualifiedErrorId : Argument,Resources.ps1

I have no idea about the mentioned argument "name"
Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.1.0-rc.1
PSEdition                      Core
GitCommitId                    6.1.0-rc.1
OS                             Microsoft Windows 10.0.16299
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

nobody handle this issue, close it


Update stable version in repo from 1.2.2 to 2.0.1

Think about update stable version to 2.0.1
Version: stable=1.2.2 (165 days old) => latest=2.0.1 (21 days old)
Installs: stable=1061 (48.18%), latest=114 (5.18%), total=2202
Click to use developer portal
Click to edit
Do not close this issue manually as a new issue will be created if condition for update still exists.
Please drop a comment if any reason exists which blocks updating to version 2.0.1 at this time.
Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

Is there any reason to delay updating this adapter at stable any longer?
Please drop a commit if you know any reason to refrain from updating.
If there is no response until 13.10.2024 we could decide to update anyway


Problem with key bindings

I'm using Sublime Text 3 (ST3) v 3.11, Build 3176 on Windows 10 Enterprise Version 1809 OS Build 17763.55.
Recently, the Emmet key binding for Wrap With Abbreviation, Ctrl+Shift+G,  stopped working. Other Emmet key bindings work. For example, if I open the Sublime Text console and log commands (using subblime.log_commands(True)), and then highlight some code in a buffer and Ctrl+Shift+/, the selection is commented out and I see command: run_emmet_action {"action": "toggle_comment"} in the console.
But if I highlight an HTML tag and Ctrl+Shift+G, nothing happens, and nothing is displayed in the console, either. If I run the command from the command palette ("Emmet: Wrap With Abbreviation"), it functions normally. (It also shows that the shortcut is indeed Ctrl+Shift+G.)
I completely uninstalled ST3, deleted the C:\Users\username\AppData\Roaming\Sublime Text 3 folder, deleted C:\Program Files\Sublime Text 3 folder, re-installed ST3, and installed only the Emmet package (with Package Control), but it exhibits the same behavior.
I don't think there's a conflict with the native ST3 bindings, and I the only installed packages are Emmet, Package Control, and PyV8 (which is installed by Emmet).
What am I missing?  Thanks!

I wanted to chime in and say I and my colleague are both experiencing this, Wrap With Abbreviation suddenly stopped working. Running Windows 10 and Sublime Text 3.1.1, Build 3176


All code related to Medium icon is removed.

fixes #1025

@raazanand we are glad to see your enthusiasm for contributing to the repo. However, please make sure that you comment on the issue about your interest to complete it before giving a PR so that other contributors are aware that you are working on it

Additionally for all the PRs, do the following in the description:

Mention the issue no (I have done it for you in this one)
Put up screenshots/clips of the change
Synopsis of the work done ( Unordered list of short phrases) - WHEN APPLICABLE

Read the Contributing.MD once 😊. For this PR, just do the above change, the rest is okay!

Fixes #1025
Work Done

removed Medium Icon code from

home.css
index.html
style.css

Relevant Screenshots
Before

After

--col-icon-medium: #00ab6c;
^^ Remove this variable as well

Successfully removed the mentioned variable

@raazanand we are glad to see your enthusiasm for contributing to the repo. However, please make sure that you comment on the issue about your interest to complete it before giving a PR so that other contributors are aware that you are working on it

Thank you for guiding me, I will take care of this in future.

Great work @raazanand. Congratulations on getting your PR merged!

Great work @raazanand. Congratulations on getting your PR merged!

Thanks 🙏  @smaranjitghose for merging my pull request .


Docs for using the brainreg reader are outdated

The behaviour here now no longer seems supported. I've asked on the napari zulip if anyone has any advice.

I think this behaviour is no longer supported by napari. We could probably do something on our end, but I don't think anyone uses this feature, so I will remove it from the docs.


Checkbox styling on receipt delete

Possibly fixed by https://github.com/OpenTechFund/opentech.fund/pull/1446

Acceptance criteria visible and functional during test. Thanks! 💥


Build for TARGET_ARCH=fusion_f1 via reference implementation fallback.

This change adds reference fallbacks to the optimized xtensa kernels for the case when TARGET_ARCH is anything other than hifimini.
This sets the stage for a baseline from which we can incrementally optimize for architectures other than hifimini.
The goal is to have a starting point where all the unit tests pass for TARGET_ARCH=hifimini (which will use the optimized implementations) or any other TARGET_ARCH (with reference fallback).
Tested for TARGET_ARCH=fusion_f1 with:
make -f tensorflow/lite/micro/tools/make/Makefile -j8 TARGET=xtensa OPTIMIZED_KERNEL_DIR=xtensa TARGET_ARCH=fusion_f1 XTENSA_CORE=Google_F1 test

make -f tensorflow/lite/micro/tools/make/Makefile -j8 TARGET=xtensa OPTIMIZED_KERNEL_DIR=xtensa TARGET_ARCH=fusion_f1 XTENSA_CORE=Google_F1 test_keyword_benchmark

InitializeKeywordRunner() took 239061 ticks (239 ms)
KeywordRunNIerations(1) took 168564 ticks (168 ms)
KeywordRunNIerations(10) took 1685111 ticks (1685 ms)

make -f tensorflow/lite/micro/tools/make/Makefile -j8 TARGET=xtensa OPTIMIZED_KERNEL_DIR=xtensa TARGET_ARCH=fusion_f1 XTENSA_CORE=Google_F1 keyword_benchmark BUILD_TYPE=release
xt-size tensorflow/lite/micro/tools/make/gen/xtensa_fusion_f1/bin/keyword_benchmark

   text	   data	    bss	    dec	    hex	filename
  48256	  40132	  24952	 113340	  1babc	tensorflow/lite/micro/tools/make/gen/xtensa_fusion_f1/bin/keyword_benchmark

After this change, we can:

add a continuous build for Hifi4
add optimizations for Hifi4 on a per kernelbasis and keep profiling the impact of these optimizations on the keyword benchmark cycles and binary size.

Also tested that TARGET_ARCH=hifimini is unaffected:
make -f tensorflow/lite/micro/tools/make/Makefile -j8 TARGET=xtensa OPTIMIZED_KERNEL_DIR=xtensa TARGET_ARCH=hifimini XTENSA_CORE=mini1m1m_RG test_keyword_benchmark

InitializeKeywordRunner() took 1392788 ticks (1392 ms)
KeywordRunNIerations(1) took 89195 ticks (89 ms)
KeywordRunNIerations(10) took 891509 ticks (891 ms)

make -f tensorflow/lite/micro/tools/make/Makefile -j8 TARGET=xtensa OPTIMIZED_KERNEL_DIR=xtensa TARGET_ARCH=hifimini XTENSA_CORE=mini1m1m_RG keyword_benchmark BUILD_TYPE=release
xt-size tensorflow/lite/micro/tools/make/gen/xtensa_hifimini/bin/keyword_benchmark
   text	   data	    bss	    dec	    hex	filename
  46080	  40204	  24952	 111236	  1b284	tensorflow/lite/micro/tools/make/gen/xtensa_hifimini/bin/keyword_benchmark

tagging @pnikam-cad @nyadla-sys @kpraving

Internal checks were failing (while the external build was ok) because there is an automatic clang-format step prior to the code being imported into the google codebase. And my original commit was missing clang-format and an associated header.
https://github.com/tensorflow/tensorflow/pull/45464/commits/d2fd64fcfb5b2a51a91d1073d6c686299577205f fixes the issue.


RDS Aurora metrics support

Is your feature request related to a problem? Please describe.
I'm currently setting up monitoring and I have lots of RDS Aurora clusters, so some of the metrics like storage are not working properly, or do not exist.
Describe the solution you'd like
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html
Describe alternatives you've considered
I'm currently using Prometheus cloudwatch exporter for that.
Ref: https://github.com/qonto/prometheus-rds-exporter/issues/32#issuecomment-1828630355

As discussed in https://github.com/qonto/prometheus-rds-exporter/issues/32#issuecomment-1828630355, We don't support AWS RDS Aurora yet, mainly because we're not Aurora users and need to know which metrics are relevant.
If anybody has production experience or recommendations and can be a beta tester, we'll be happy to work on this (we are also open to pull request ;)).


fix(IAM Policy Management): v2/policies updates for time-based condition and tags

PR summary
Updated time-based condition example and pattern, update property names based on API definition changes, and add support for tags
Issue: https://github.ibm.com/IAM/AM-issues/issues/1079
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features) : In progress (will be merged shortly): https://github.ibm.com/cloud-api-docs/iam-access-management/pulls

Current vs new behavior

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Based on API handbook, operation IDs were updated and this effected type and struct names of existing code (e.g., UpdateRole --> ReplaceRole, since it is a post operation).

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


[BUG] "Oldest" flag is not correct

If there are several Nodes with the same age, then the "Oldest" Node should be selected by its name being first in alphabetical order

Now sorts by now_address when age is the same.


Support using SQS instead of RabbitMQ for a Celery Broker

This will let Warehouse optionally use SQS as a Celery broker in addition to RabbitMQ. This changes the broker configuration from AMQP_URL to BROKER_URL to reflect the fact it supports either option now.
Before merging this, PyPI and TestPyPI should have the AMQP_URL renamed to BROKER_URL.
To actually switch PyPI (not TestPyPI) to SQS, do the following (in order):

[ ] Merge https://github.com/python/pypi-infra/pull/29 and terraform apply it.
[ ] Configure the PyPI AWS IAM user with the PyPIWorkerSQS policy.
[ ] Update BROKER_URL to sqs:///pypi-worker?region=us-east-2 (Note the triple slash).

AMQP_URL settings for test-pypi and pypi have been copied into BROKER_URL for the time being.
As this PR is backwards compatible, let's merge it and test migrating to SQS in testpypi first.


Convert IBM auth struct fields to pointers

Problem Statement
The IBM secret store provider auth requires either ContainerAuth or SecretRef to be defined, however they are not struct pointers which when marshaled result in the default ContainerAuth value to always be present.
SecretStores that are created programmatically via something like the controller-runtime will always fail to validate because the generated object looks like:
"spec": {
  "controller": "",
  "provider": {
    "ibm": {
      "auth": {
        "secretRef": {
          "secretApiKeySecretRef": {
            "name": "secret-api-key",
            "key": "apikey"
          }
        },
        "containerAuth": {
          "profile": ""
        }
      },
      "serviceUrl": "example.com"
    }
  }
}

Related Issue
None
Proposed Changes
This PR changes IBMAuth field types to be struct pointers. This resolves the marshaling issue which would exclude  omitted SecretRef or ContainerAuth fields.
Checklist

[x] I have read the contribution guidelines
[x] All commits are signed with git commit --signoff
[x] My changes have reasonable test coverage
[x] All tests pass with make test
[x] I ensured my PR is ready for review with make reviewable

@moolen Could you review it?


Fix not working on UISceneDelegate

Hi, there.
Hyperion don't working on Xcode11.x generated project. I fixed this bug.

This change looks good to me. @fuzzybinary can you accept? :D


Fractional order transfer function simulink block not accepting values from workspace

In simulink model while passing parameter (poles and zero polynomial ) in fractional transfer function block in the form of workspace variable it doesn't recognise variable already present in workspace

Please provide a minimal reproducible example (Simulink file, MATLAB script).


[Allegro] Update to <IP_ADDRESS>

Update Allegro to latest version
Fixes issue #11186

Tested to compile successfully on x64-windows and x86-windows triplets.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: rlam1 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

/azp run

/azp run

Perfect! Thanks @rlam1


what is the output of mx.contrib.sym.ctc_loss() ???

For bugs or installation issues, please provide the following information.
The more information you provide, the more likely people will be able to help you.
Environment info
Operating System:centos
Compiler:
Package used (Python/R/Scala/Julia):python
MXNet version:0.10
Or if installed from source:pip
MXNet commit hash (git rev-parse HEAD):
If you are using python package, please provide
Python version and distribution: python 2.7
Error Message:
===================================================================
I want to know what does the mx.contrib.sym.ctc_loss(data, label) return ?
Signature: mx.contrib.sym.ctc_loss(*args, **kwargs)
Docstring:
Connectionist Temporal Classification Loss.
The shapes of the inputs and outputs:

data: (sequence_length, batch_size, alphabet_size + 1)
label: (batch_size, label_sequence_length)
out: (batch_size).

label is a tensor of integers between 1 and alphabet_size. If a
sequence of labels is shorter than label_sequence_length, use the special
padding character 0 at the end of the sequence to conform it to the correct
length. For example, if label_sequence_length = 4, and one has two sequences
of labels [2, 1] and [3, 2, 2], the resulting label tensor should be
padded to be::
[[2, 1, 0, 0], [3, 2, 2, 0]]
The data tensor consists of sequences of activation vectors. The layer
applies a softmax to each vector, which then becomes a vector of probabilities
over the alphabet. Note that the 0th element of this vector is reserved for the
special blank character.
See Connectionist Temporal Classification: Labelling Unsegmented
Sequence Data with Recurrent Neural Networks, A. Graves et al. for more
information.
Defined in src/operator/contrib/ctc_loss.cc:L79
Parameters
data : Symbol
Input data to the ctc_loss op.
label : Symbol
Ground-truth labels for the loss.
name : string, optional.
Name of the resulting symbol.
Returns
Symbol
The result symbol.
===================================================================
my network defined below:
def sym_ocrCTC(batch_size=100, num_layers=2, num_hidden=128, seq_len=30):
stack = mx.rnn.SequentialRNNCell()
for i in range(num_layers):
if i==(num_layers-1): # laster layer
stack.add(mx.rnn.LSTMCell(num_hidden=63, prefix='lstm_l%d_'%i))
else:
stack.add(mx.rnn.LSTMCell(num_hidden=num_hidden, prefix='lstm_l%d_'%i))
data = mx.sym.Variable('data') # has the shape of (Batch_size, 30, 100)
label = mx.sym.Variable('label')

stack.reset()
outputs, states = stack.unroll(seq_len, inputs=data, merge_outputs=True)

pred = mx.sym.swapaxes(data=outputs, dim1=0, dim2=1)
loss = mx.contrib.sym.ctc_loss(data=pred, label=label)
ctc_loss = mx.sym.make_loss(loss)
return ctc_loss

Is there any problem ? @piiswrong

@sbodenstein

I want to know what does the mx.contrib.sym.ctc_loss(data, label) return ?

It returns the value of the CTC loss for every example in batch of inputs.
I've added a comment about what the output is in the docs: https://github.com/dmlc/mxnet/pull/6906

Thank you very much ~ @piiswrong @sbodenstein

I reopen this issue, because I have a idea ,"How about add ‘layout=NTC’ parameter in mx.contrib.sym.ctc_loss(data,label,layout) , like unroll() in mxnet.rnn.BaseRNNCell()~", and another question,normally, the output of rnn.unroll() has the shape of (seq_len, batch_size, num_hidden)[layout='NTC'], and the 'data' of mx.contrib.sym.ctc_loss(data,label) need the shape
(seq_len, batch_size, alphabet_size + 1), it means I need to add a FC layer (with num_hidden=alphabet_size+1) before mx.contrib.sym.ctc_loss ?
@sbodenstein

This issue is closed due to lack of activity in the last 90 days. Feel free to ping me to reopen if this is still an active issue. Thanks!


[🐞] Use useNavigate in useTask$ generate an error

Which component is affected?
Qwik Runtime
Describe the bug
Use useNavigate in useTask$ generate an error:
useTask$(async ({ track }) => {
  track(() => store.step);

  navigate(`/publications/${location.params.id}/update/operation`);
});

Error: Code(3): Only primitive and object literals can be serialized

Reproduction
https://stackblitz.com/edit/qwik-starter-2jfbxe?file=src%2Froutes%2Findex.tsx
Steps to reproduce
No response
System Info
System:
    OS: macOS 15.0
    CPU: (8) arm64 Apple M2
    Memory: 267.70 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 22.4.1 - ~/.nvm/versions/node/v22.4.1/bin/node
    npm: 10.8.1 - ~/.nvm/versions/node/v22.4.1/bin/npm
    pnpm: 9.5.0 - /opt/homebrew/bin/pnpm
    bun: 1.1.20 - /opt/homebrew/bin/bun
  Browsers:
    Chrome: 126.0.6478.183
    Edge: 126.0.2592.113
    Safari: 18.0
  npmPackages:
    @builder.io/qwik: 1.7.1 => 1.7.1
    @builder.io/qwik-city: 1.7.1 => 1.7.1
    typescript: 5.5.3 => 5.5.3
    undici: 6.19.2 => 6.19.2
    vite: 5.3.4 => 5.3.4

Additional Information
No response

@thejackshelton
You're right, that was the problem, big mistake of mine haha.


How to see both the prediction boxes and GT boxes in demo.py?

I noticed the def draw_scenes() in visualize_utils.py ,but how could I write in demo.py ?  I really don`t know how to insert,
Could anybody have the complete code ? thank you soooooo much ,  orz!

In Demo.py here input the pred_dict (format: [[x, y, x, l, w, h, score],...]) to the draw function to visualize the predict results:
https://github.com/open-mmlab/OpenPCDet/blob/c233477a4a4bf2861a978794d6b9c047f64641f7/tools/demo.py#L98-L103
And you could write another function here to read gt boxes from label files (in the same form of pred_dict) and input to the draw function.
It is not difficult.

data_dict in demo.py does not have the key of "gt_boxes".
Below is the code I have added

get GT box
print(data_dict['gt_boxes'].shape)
V.draw_scenes(
points=data_dict['points'][:, 1:], ref_boxes=data_dict['gt_boxes'][0],
ref_scores=None, ref_labels=None
)

In Demo.py here input the pred_dict (format: [[x, y, x, l, w, h, score],...]) to the draw function to visualize the predict results:
https://github.com/open-mmlab/OpenPCDet/blob/c233477a4a4bf2861a978794d6b9c047f64641f7/tools/demo.py#L98-L103
And you could write another function here to read gt boxes from label files (in the same form of pred_dict) and input to the draw function.
It is not difficult.

data_dict in demo.py does not have the key of "gt_boxes".
Below is the code I have added
print(data_dict['gt_boxes'].shape)
V.draw_scenes(
points=data_dict['points'][:, 1:], ref_boxes=data_dict['gt_boxes'][0],
ref_scores=None, ref_labels=None
)

In Demo.py here input the pred_dict (format: [[x, y, x, l, w, h, score],...]) to the draw function to visualize the predict results:
https://github.com/open-mmlab/OpenPCDet/blob/c233477a4a4bf2861a978794d6b9c047f64641f7/tools/demo.py#L98-L103
And you could write another function here to read gt boxes from label files (in the same form of pred_dict) and input to the draw function.
It is not difficult.

data_dict in demo.py does not have the key of "gt_boxes".
Below is the code I have added

print(data_dict['gt_boxes'].shape)
V.draw_scenes(
points=data_dict['points'][:, 1:], ref_boxes=data_dict['gt_boxes'][0],
ref_scores=None, ref_labels=None
)

@HuangZhe885  You should understand these code more. What I suggested before is not using gt_boxes directly from data_dict, data_dict of course doesn't contain gt_boxes, pred_dict neither.
Notice that four parameters input to function V.draw_scene, what you should do is replacing pred_boxes with gt_boxes and gt_boxes need your manual import ! You can refer to similar codes:
https://github.com/open-mmlab/OpenPCDet/blob/c233477a4a4bf2861a978794d6b9c047f64641f7/pcdet/datasets/kitti/kitti_dataset.py#L245
Relative codes showed the generation of gt_boxes. Lastly, make sure that your gt_boxes has the same format as the pred_dicts and input them into V.draw.

@OrangeSodahub Why the ground truth labels aren't in the data_dict? I think they are:

Or maybe we speak about different things?

@Petros626 Two years passed since I saw this issue, I forgot everything ...
How did you make your figure? By hand?

hahah I know you're an OpenPCDet veteran here and I've to explore everything new, but I'll leave some good information after I finished my project 🗡 .
No this from a Power Point presentation from the University itself. It helps to understand OpenPCDet better in some cases.
OpenPCDet_Tutorial.pdf

In Demo.py here input the pred_dict (format: [[x, y, x, l, w, h, score],...]) to the draw function to visualize the predict results:
https://github.com/open-mmlab/OpenPCDet/blob/c233477a4a4bf2861a978794d6b9c047f64641f7/tools/demo.py#L98-L103
And you could write another function here to read gt boxes from label files (in the same form of pred_dict) and input to the draw function.
It is not difficult.

for drawing a scene are the labels in camera coordinates or already transformed lidar coordinates necessary? I get weird looking bounding boxes.


Adjoint Tensor contraction produces incoherent results

Summary
The contraction of an adjoint Tensor produces incoherent results with the normal Tensor ones. Specifically, it returns an Array type of data instead of Tensor type. I believe that is also why the PR #39 is failing on some tests.
Example
julia> using Tenet
julia> b = Tensor(rand(2, 2), (:i, :j))
2×2 Tensor{Float64, 2, Matrix{Float64}}:
 0.604068  0.472015
 0.732286  0.0951967
julia> contract(5,b)
2×2 Tensor{Float64, 2, Matrix{Float64}}:
 3.02034  2.36008
 3.66143  0.475984
julia> contract(5,b')
2×2 Matrix{Float64}:
 3.02034  3.66143
 2.36008  0.475984

I believe that this is a problem with the adjoint Tensor not being a Tensor type:
julia> using Tenet
julia> b = Tensor(rand(2, 2), (:i, :j))
julia> b' isa Tensor
false

@mofeing Do you agree that adjoint(a::Tensor) should be also a Tensor?

Nice catch. Add a test for this pls.

@mofeing Do you agree that adjoint(a::Tensor) should also be a Tensor?

I agree. But it is a little tricky in the sense that not every N-dim array has adjoint defined to it.
The methods should be sth like:
adjoint(t::Tensor{T,2,A}) where {T,A<:AbstractMatrix{T}} = Tensor(adjoint(parent(t)), reverse(labels(t))
adjoint(t::Tensor{T,1,A}) where {T,A<:AbstractVector{T}} = Tensor(conj(parent(t)), labels(t))

With the last PR with is not a problem anymore:
julia> using Tensors
julia> a = Tensor(rand(Complex{Float64}, 2, 2), (:i, :j));
julia> b = adjoint(a)
2×2 Tensor{ComplexF64, 2, Matrix{ComplexF64}}:
 0.798311-0.698864im  0.314514-0.77349im
 0.562423-0.160019im  0.986719-0.297658im
julia> b isa Tensor
true
julia> b.labels
(:i, :j)
julia> contract(a, b)
0-dimensional Tensor{ComplexF64, 0, Array{ComplexF64, 0}}:
3.2270577277410437 + 0.0im


"Check for Note" opens the note?

I am running a Shortcut that employs the "Check for Note" action. I have noticed that running that action also opens the note being checked…is there a way to turn this off?

Hi @deanpribetic, are you talking about the Actions For Obsidian action? If so: wrong channel, this repo is for the companion plugin only. ;)
That said: I agree it's not desirable. I'll add a toggle to Check For Existence Of Note and Check For Existence Of Periodic Note in the upcoming version!


CEMG

Key
Value

View
https://database.shabados.com/sources/3/page/41/line/131

Source
Vaaran Bhai Gurdas Ji

Page
41

ID
CEMG

Line
inj dohI iPrI goibMd kI; Akwl jpwey [

Do you move the ID or just swap the contents of both lines? I leave this to you @Sarabveer


Fix #1042 check_sourcable function

I have updated the  check_sourcable function to iterate over dictionaries directly.

Thanks for the PR @JinduOkoli. Before we can merge, could you please update your commit message in accordance with https://github.com/tern-tools/tern/blob/main/CONTRIBUTING.md#commit-message-format. It needs a descriptive title (<50 characters), short description (< 72 characters per line) and signed off by line. The link I provided has a good example of what it should look like.

Hi @JinduOkoli - are you able to update your commit message in the next few days? We're here to help and on slack if you need any help with it.

Hi @JinduOkoli looks like your most recent push brought in a lot of other changes :( Did you configure your dev setup by following the directions in CONTRIBUTING.md? i.e. with an up branch?

I created another pull request


Implementing browser support

Hey there,
Thanks for the awesome plugin.
I was wondering, how hard would it be to add browser support?
Did you guys try anything yet and had problems? or just not focusing on that for now?
I was thinking we could add a new file /www/browser/googlemaps-cdv-plugin.js and route all method calls to the javascript library (should be loaded by the user manually).
This can help people debug in the browser in real time, as well as use this plugin for any other platform supported by Cordova, or even the web.
If you think this is doable and will solve a problem, then let's create a new branch for people to contribute to over time.

This plugin focuses on the native sdks, and no plan to support for browser.

I understand.
My question is: do you think it's doable?
I think it's easier if you answer the question rather than me going through
the code to figure it out.
I'm not asking you guys to write any code, I just need to know if it's
possible and if you are willing merge it with your plugin if someone sends
you a PR.
The goal of adding it isn't to fully support browser, but to ease the
development process for people who are using this plugin.
On Jul 16, 2016 1:36 AM, "Masashi Katsumata"<EMAIL_ADDRESS>wrote:

This plugin focuses on the native sdks, and no plan to support for browser.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1029#issuecomment-233109600,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANJ8dOypSc9qdSIbsVm_mJrB3TAFACMmks5qWG3egaJpZM4JN6aK
.

Hi Ibrahim, I'm not a dev here but maybe I can help with this.
What this plugin offers is a cordova wrapper around the android and iOS
native google maps SDKs.
https://developers.google.com/maps/documentation/android-api/ for example.
It is java and objective-c code and it is not code intended to run o
browsers.
If you need a map on the browser, you should use the gmaps javascript API
directly, leaflet or other similar things. (
https://developers.google.com/maps/documentation/javascript/ )
My personal view is that it is up to the programmer (and not to this
plugin) to take care of this use case.
Trust me, the more focused this project is, the better it is for all of us.
When you say you want to " ease the development process for people who are
using this plugin", I guess you want to be able to test your app using
"ionic serve".
Did you have any problems debugging on emulators or native devices? "ionic
run platform -c -l" should get the job done!
Hope this helps!
2016-07-16 17:20 GMT+08:00 Ibrahim Hadeed<EMAIL_ADDRESS>
I understand.
My question is: do you think it's doable?
I think it's easier if you answer the question rather than me going through
the code to figure it out.
I'm not asking you guys to write any code, I just need to know if it's
possible and if you are willing merge it with your plugin if someone sends
you a PR.
The goal of adding it isn't to fully support browser, but to ease the
development process for people who are using this plugin.
On Jul 16, 2016 1:36 AM, "Masashi Katsumata"<EMAIL_ADDRESS>wrote:

This plugin focuses on the native sdks, and no plan to support for
browser.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1029#issuecomment-233109600
,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/ANJ8dOypSc9qdSIbsVm_mJrB3TAFACMmks5qWG3egaJpZM4JN6aK

.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1029#issuecomment-233121764,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA4X7nYncPeB7eSKpMAxCE6ndlwsI5QLks5qWKJggaJpZM4JN6aK
.

@ihadeed it would be very useful to have it on run on the browser too - I agree. And yes exactly @quiuquio I would use it for ionic serve. But looks like a no go.
Thanks all.

I agree with @quiuquio, this plugin is primarily focused on the native SDKs. The less extended this plugin is and the more focused it is will always be better. Besides, there will always be plenty more plugins available is someone wants to run the Javascript SDK on the normal browser.

This plugin is fully open source. And you know the JavaScript at least. It means you can implement JavaScript version, and you are able to send it as a pull request.
That's the open source culture.
Improvement ideas or contributions are welcome.  Just requesting is not welcome.


error: this role does not appear to have a meta/main.yml file.

I am defining your role in requirements.yml:
- name: lnpp
  src: https://github.com/isaacsimmons/ansible-role-lnpp
  path: provisioning/roles/

but I get error error: this role does not appear to have a meta/main.yml file. when installed with ansible-galaxy install -r requirements.yml
could you pls. create meta/main.yml file ?

Added a minimal meta/main.yml file. ansible-galaxy CLI now installs it without any errors/warnings


when will you release the code to process the video data?

Thanks for your interest. We plan to release feature extraction code but cannot guarantee a timeline.
If you are in urgent need of extracting the video features in the same format as HERO, you can follow the following repos to build your own feature extraction pipeline:

SlowFast, we use the pretrained SLOWFAST_8x8_R50 model.
Image-level features from ResNet-152 following Howto100M.

Thanks,
Linjie

Hi, linjieli;
Thanks for your reply!  I have some questions:

The video clip is processed by sampling a set of visual frames at a fixed rate.  I found that the frame rate is 1.5 f/s in the code, am I right?  That means if the video clip is 60 s, we just sample 40 frames uniformly from that clip.
But I found that there are a number of video clips whose frames number excels 40 (maybe 60, 80 or higher), why?
Do we use the SlowFast Model to process the 40 frames (assuming the video clips is 60s) directly to get their 3D features?

Please find the answers to your questions below:

As mentioned in Appendix A.5 of our paper, we extract video features at a fixed frame rate (TV: 2/3 frame per second, HowTo100M: 1/2 frame per second). For downstream tasks, you can check vfeat_interval in each config to get the corresponding frame rate (frame_rate = 1/vfeat_interval).  For example:
https://github.com/linjieli222/HERO/blob/bc4aec5af1d8eafeb468e78a033f56cd37210097/config/train-didemo_video_only-4gpu.json#L26

As mentioned in Section 4.1 of our paper, we only cut the HowTo videos into 60s-clip. All other videos are kept as their original length. For example, if a TV video is of length 90-second, they you will get a 3D/2D video feature of length 60.

We use the original fps in SlowFast to get the 3D video feature. Note that the frame rate mentioned above for example 2/3 frame per second means that  we get one frame feature every 1.5 seconds. At a high level, a 1.5-second video clip is fed into SlowFast to get a feature vector.  And we repeat this process to get the features for the whole video.

Thanks,
Linjie


Allow defining specific files to check during overcommit --run

I know we can run pre-commit hooks on all files with https://github.com/sds/overcommit#continuous-integration
It would be great to be able to do this just on modified files and lines based on the commits ahead of the target branch in a pull request.
I'm working with some legacy code that was never linted and so this would help with incrementally improving the code base without needing to use a service like CodeFactor.

Open to a pull request that adds support to the --run flag to allow specifying a list of files to scope the check to. You could then write your own code to determine which files to pass through in your CI run.
For example, if you want to compare the branch to origin/master:
git --no-pager diff --name-only origin/master | xargs overcommit --run

Allowing the user to pass in the set of files makes this solution more flexible for different workflows/filtering methodologies.

My situation is exactly what @HarlemSquirrel is experiencing -- @sds your suggestion would be super useful. I have 0 Ruby experience (and am quite swamped with early stage startup life =), otherwise I'd love to create a PR.

I've been using this bash script with pretty good success.
bundle exec rubocop --fail-level error | bash bin/diff_filter.sh

I had another thought about how this could work since overcommit already knows how to filter modified lines of files. A new --run-for-diff flag could take one argument that is a branch, tag, or commit hash to determine the modified files and lines as it does for pre-commit hooks.
bundle exec overcommit --run-for-diff master

Yes, I really wish bundle exec overcommit --run-for-diff master existed! Overcommit can't seriously claim that it's useful on CI if it doesn't have the ability to scope its linting exclusively to the diff of the PR.
Fortunately, the scripts/diff_filter.sh shared above works quite nicely.
One note on the script -- it has a small bug where if app/models/recipe.rb:3 is in the PR diff, the script will match rubocop errors starting with app/models/recipe.rb:3 but also rubocop errors starting with e.g. app/models/recipe.rb:30. The solution I came up with is to match rubocop output more specifically using the colon that separates the line number from the column number that follows it (e.g. app/models/recipe.rb:3:2 and app/models/recipe.rb:30:4).
commit f747358719b718df8719749944dfc9744e9ab560
Author: Jonathan Mohrbacher<EMAIL_ADDRESS>Date:   Thu Aug 31 11:30:11 2023 -0400

    Don't match lines that start with same line number

diff --git a/scripts/diff_filter.sh b/scripts/diff_filter.sh
index 861dcba1..9f9428b6 100755
--- a/scripts/diff_filter.sh
+++ b/scripts/diff_filter.sh
@@ -24,7 +24,7 @@ done
 err_count=0
 while read -r ln; do
   for m in ${diff_list[@]}; do
-    if [[ ${ln} =~ ^$m ]]; then
+    if [[ ${ln} =~ ^$m: ]]; then
       echo $ln
       err_count=$((err_count+1))
       break

Ah shoot, there's actually a problem with this script.
The script looks at git blame on the files in the diff, and extract the lines from the git blame output that match the commits in the PR. The problem is that if you make a change in one commit and then reverse it then next, the script will still consider this line, and you'll get linting errors about it even though it no longer appears in the PR diff.
As a solution, I threw out the git blame part of the approach and replaced it with the scripts/git-diff-changed-lines.sh and scripts/git-difftool-changed-lines.sh files from this gist.
diff --git c/scripts/diff_filter.sh i/scripts/diff_filter.sh
index 9f9428b6..30750175 100755
--- c/scripts/diff_filter.sh
+++ i/scripts/diff_filter.sh
@@ -10,16 +10,11 @@
 BASE_REMOTE=origin
 BASE_BRANCH=master

-diff_list=()
-commit_list=$(git --no-pager log --no-merges $BASE_REMOTE/$BASE_BRANCH...HEAD | grep -e '^commit' | sed -e "s/^commit \(.\{8\}\).*/\1/")
-for f in $(git --no-pager diff $BASE_REMOTE/$BASE_BRANCH...HEAD --name-only --diff-filter=AM); do
-  for c in $commit_list; do
-    diffs=$(git --no-pager blame --show-name -s $f | grep $c | sed -e "s/^[^ ]* *\([^ ]*\) *\([0-9]*\)*).*$/\1:\2/")
-    for ln in $diffs; do
-      diff_list+=( $ln )
-    done
-  done
-done
+# Get the directory of the current script
+DIR="$(dirname "$0")"
+
+# Directly assign the output to the array
+IFS=$'\n' read -r -d '' -a diff_list < <("$DIR/git-diff-changed-lines.sh" $BASE_REMOTE/$BASE_BRANCH...HEAD && printf '\0')

 err_count=0
 while read -r ln; do