Chart.js v3.0.0-beta.7: Legend and title are rendered twice?

Expected Behavior

I can't figure out why this happens, because in a simple test case it works.
It only occurs in the new Chart.js v3.0.0-beta.7 version.
Everything works with the previous versions.
The representation is rendered correctly at first, but it looks like a redraw is being performed afterwards, which renders the legend and title again.
Current Behavior

It doesn't happen with the LINE chart.

Possible Solution

???
Context

{
  type: 'pie',
  data: {
    labels: [
      'Eiweis',
      'Fett',
      'Kohlenhydrate'
    ],
    datasets: [
      {
        unit: 'kal',
        mode: 'current',
        label: 'Makro Nährstoffe',
        backgroundColor: [
          'rgba(115,210,22,0.85)',
          'rgba(245,121,0,0.85)',
          'rgba(52,101,164,0.85)'
        ],
        borderWidth: 0,
        showLine: false,
        data: [
          '887.0',
          '380.0',
          '1268.0'
        ]
      }
    ]
  },
  options: {
    backgroundColor: 'rgba(0,0,0,0.1)',
    borderColor: 'rgba(0,0,0,0.1)',
    color: '#e1e1e1',
    elements: {
      arc: {
        borderAlign: 'center',
        borderColor: '#fff',
        borderWidth: 0,
        offset: 0,
        backgroundColor: 'rgba(0,0,0,0.1)'
      },
      line: {
        borderCapStyle: 'butt',
        borderDash: [],
        borderDashOffset: 0,
        borderJoinStyle: 'miter',
        borderWidth: 3,
        capBezierPoints: true,
        fill: false,
        tension: 0,
        backgroundColor: 'rgba(0,0,0,0.1)',
        borderColor: 'rgba(0,0,0,0.1)'
      },
      point: {
        borderWidth: 0,
        hitRadius: 8,
        hoverBorderWidth: 1,
        hoverRadius: 8,
        pointStyle: 'circle',
        radius: 0.33,
        backgroundColor: 'rgba(0,0,0,0.1)',
        borderColor: 'rgba(0,0,0,0.1)',
        pointRadius: 8
      },
      bar: {
        borderSkipped: 'start',
        borderWidth: 0,
        borderRadius: 0,
        backgroundColor: 'rgba(0,0,0,0.1)',
        borderColor: 'rgba(0,0,0,0.1)'
      }
    },
    events: [
      'mousemove',
      'mouseout',
      'click',
      'touchstart',
      'touchmove'
    ],
    font: {
      family: '"Roboto", "Noto", sans-serif',
      size: 12,
      style: 'normal',
      lineHeight: 1.2,
      weight: null
    },
    hover: {
      mode: 'nearest',
      intersect: true,
      onHover: null
    },
    interaction: {
      mode: 'nearest',
      intersect: true
    },
    maintainAspectRatio: false,
    onHover: null,
    onClick: null,
    plugins: {
      filler: {
        propagate: true
      },
      legend: {
        display: true,
        position: 'bottom',
        align: 'center',
        fullWidth: true,
        reverse: false,
        weight: 1000,
        onHover: null,
        onLeave: null,
        labels: {
          boxWidth: 8,
          padding: 10,
          color: '#e1e1e1',
          usePointStyle: true
        },
        title: {
          display: false,
          position: 'center',
          text: ''
        },
        lineWidth: 0
      },
      title: {
        align: 'center',
        display: true,
        font: {
          style: 'bold'
        },
        fullWidth: true,
        padding: 10,
        position: 'top',
        text: 'Aufteilung Nährstoffe (kal) pro Tag',
        weight: 2000,
        color: '#ff9500'
      },
      tooltip: {
        mode: 'nearest',
        intersect: true,
        enabled: true,
        custom: null,
        position: 'average',
        backgroundColor: '#ecf0f1',
        titleColor: '#647687',
        titleFont: {
          style: 'bold'
        },
        titleSpacing: 2,
        titleMarginBottom: 6,
        titleAlign: 'left',
        bodyColor: '#647687',
        bodySpacing: 2,
        bodyFont: {},
        bodyAlign: 'left',
        footerColor: '#647687',
        footerSpacing: 2,
        footerMarginTop: 6,
        footerFont: {
          style: 'bold'
        },
        footerAlign: 'left',
        yPadding: 6,
        xPadding: 6,
        caretPadding: 2,
        caretSize: 5,
        cornerRadius: 6,
        multiKeyBackground: '#fff',
        displayColors: true,
        borderColor: 'rgba(0,0,0,0)',
        borderWidth: 0,
        animation: {
          duration: 400,
          easing: 'easeOutQuart',
          numbers: {
            type: 'number',
            properties: [
              'x',
              'y',
              'width',
              'height',
              'caretX',
              'caretY'
            ]
          },
          opacity: {
            easing: 'linear',
            duration: 200
          }
        },
        callbacks: {}
      },
      chardbackground: {},
      gradient: {}
    },
    responsive: true,
    showLine: true,
    layout: {
      padding: {
        top: 0,
        right: 24,
        bottom: 24,
        left: 24
      }
    },
    animation: {
      numbers: {
        type: 'number',
        properties: [
          'circumference',
          'endAngle',
          'innerRadius',
          'outerRadius',
          'startAngle',
          'x',
          'y',
          'offset',
          'borderWidth'
        ]
      },
      animateRotate: true,
      animateScale: false
    },
    locale: 'de-DE',
    datasetElementType: false,
    dataElementType: 'arc',
    dataElementOptions: [
      'backgroundColor',
      'borderColor',
      'borderWidth',
      'borderAlign',
      'offset'
    ],
    aspectRatio: 1,
    cutoutPercentage: 0,
    rotation: 0,
    circumference: 360,
    type: 'pie',
    units: '',
    chartArea: {
      backgroundColor: 'transparent'
    },
    spanGaps: true,
    scales: {}
  }
}

Environment

Chart.js version: Chart.js v3.0.0-beta.7
Browser name and version: any

Can you please provide a working sample since the config you are using is giving a correct chart: https://jsfiddle.net/Leelenaleee/yftv0nLb/3/

@LeeLenaleee

Can you please provide a working sample since the config you are using is giving a correct chart:

Negativ, when i try this with a simple sample (as you do), it works.
It doesn't always happen, depending on the load on the rendering process. Could have something to do with the animation, but even if I turn it off, it happens occasionally.
see: http://www.ipscon.com/transfer/testcase.mp4
Sorry

It looks like it's a timing problem because when I try to debug the title and legend are rendered multiple times.

Woah! This is interesting. I think it is caused by this code. I believe @kurkle removed chart.legend and so it is always added again.
https://github.com/chartjs/Chart.js/blob/649f8153281bf5dfa17a02d8d7923b3e699177a0/src/plugins/plugin.legend.js#L677-L679

@etimberg, @kurkle
Thanks, do I have to wait for the next beta version or can I fix it in another way?
Does this change affect the title and legend?

@etimberg I'm not sure if that is correct:
https://github.com/chartjs/Chart.js/blob/649f8153281bf5dfa17a02d8d7923b3e699177a0/src/plugins/plugin.legend.js#L641
@zibous are you calling update from a timer?

@zibous are you calling update from a timer?

Negativ. Only chart = new Chart(ctx, graphOptions);
But only occurs when the browser is under load and the rendering process takes longer. It works in a simple application.

ok, can you try with responsive: false if that hides the issue (just to narrow things down)?

@kurkle
Yes this is working (title and legend) no only once. But the chart is not scaled on the card.

It looks like that responsive: true has problems.
Chart.defaults.responsive = true;
Chart.defaults.maintainAspectRatio = false;
Chart.defaults.animation = 0;
Chart.defaults.locale = this.chart_locale;

Also Error on "arc" when  Chart.defaults.responsive = true, not when Chart.defaults.responsive = false

ctx.beginPath();
	if (circular) {
		ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);  <--- ERROR radius = -39
	} else {
		pointPosition = scale.getPointPosition(0, radius);
		ctx.moveTo(pointPosition.x, pointPosition.y);
		for (let i = 1; i < valueCount; i++) {
			pointPosition = scale.getPointPosition(i, radius);
			ctx.lineTo(pointPosition.x, pointPosition.y);
		}
	}

Uncaught DOMException: Failed to execute 'arc' on 'CanvasRenderingContext2D': The radius provided (-39) is negative.
    at drawRadiusLine (http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:11228:7)
    at http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:11371:6
    at Array.forEach (<anonymous>)
    at RadialLinearScale.drawGrid (http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:11368:13)
    at RadialLinearScale.draw (http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:4882:6)
    at Object.draw (http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:4895:9)
    at Chart.draw (http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:5750:14)
    at Chart.render (http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:5729:7)
    at Chart.update (http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:5677:6)
    at Chart._resize (http://testserver.home:8123/hacsfiles/chart-card/chart.js?module:5489:7)
drawRadiusLine @ chart.js?module:11228
(anonymous) @ chart.js?module:11371
drawGrid @ chart.js?module:11368
draw @ chart.js?module:4882
draw @ chart.js?module:4895
draw @ chart.js?module:5750
render @ chart.js?module:5729
update @ chart.js?module:5677
_resize @ chart.js?module:5489
resize @ chart.js?module:5463
listener @ chart.js?module:5938
(anonymous) @ chart.js?module:1710
(anonymous) @ chart.js?module:34
(anonymous) @ chunk.af43f6ec356055cbfe65.js:1
requestAnimationFrame (async)
window.requestAnimationFrame @ chunk.af43f6ec356055cbfe65.js:1
(anonymous) @ chart.js?module:32
(anonymous) @ chart.js?module:1722

Do you get any errors when multiple legends are shown? That would explain it if there is an error before chart.legend is set, but the box got added already.
It could be the new start hook that gets called multiple times in some situation.

@kurkle

Do you get any errors when multiple legends are shown? That would explain it if there is an error before chart.legend is set, but the box got added already.

Negativ, no error.  It is based on resize, inital all is ok, than comes resize and the title and legend are twice.
see: http://www.ipscon.com/transfer/testcase.mp4
The Uncaught DOMException: Failed to execute 'arc' on 'CanvasRenderingContext2D': happens only when
i resize the browser to a iPhoneX screen.

Would it be easy to add a plugin in your config?
{
  id: 'debug',
  start(chart) { colsole.log('start' + chart.id); },
  stop(chart) { console.log('stop' + chart.id); },
  beforeUpdate(chart) { console.log('beforeUpdate' + chart.id); }
}

I'm guessing beforeUpdate before start or multiple start calls (without stop).

@kurkle
Chart.register({
    id: "debug",
    start(chart) {
        console.log("start",new Date().toISOString(),ct, 'id:',chart.id);
    },
    stop(chart) {
        console.log("stop",new Date().toISOString() ,ct, 'id:',chart.id);
    },
    beforeUpdate(chart) {
        console.log("beforeUpdate",new Date().toISOString() ,ct, 'id:',chart.id);
    }
});

Results: i have 14 charts on the page

id
event
date
timestamp
id

1
start
2020-12-10T10:02:51.479Z
pie
0

3
beforeUpdate
2020-12-10T10:02:51.487Z
pie
0

1
start
2020-12-10T10:02:51.508Z
pie
1

3
beforeUpdate
2020-12-10T10:02:51.514Z
pie
1

1
start
2020-12-10T10:02:51.532Z
pie
2

3
beforeUpdate
2020-12-10T10:02:51.536Z
pie
2

1
start
2020-12-10T10:02:51.542Z
pie
3

3
beforeUpdate
2020-12-10T10:02:51.548Z
pie
3

1
start
2020-12-10T10:02:51.558Z
pie
4

3
beforeUpdate
2020-12-10T10:02:51.560Z
pie
4

1
start
2020-12-10T10:02:51.567Z
pie
5

3
beforeUpdate
2020-12-10T10:02:51.570Z
pie
5

1
start
2020-12-10T10:02:51.597Z
pie
6

3
beforeUpdate
2020-12-10T10:02:51.600Z
pie
6

1
start
2020-12-10T10:02:51.604Z
pie
7

3
beforeUpdate
2020-12-10T10:02:51.607Z
pie
7

1
start
2020-12-10T10:02:51.613Z
pie
8

3
beforeUpdate
2020-12-10T10:02:51.615Z
pie
8

1
start
2020-12-10T10:02:51.622Z
pie
9

3
beforeUpdate
2020-12-10T10:02:51.624Z
pie
9

1
start
2020-12-10T10:02:51.632Z
pie
10

3
beforeUpdate
2020-12-10T10:02:51.635Z
pie
10

1
start
2020-12-10T10:02:51.640Z
pie
11

3
beforeUpdate
2020-12-10T10:02:51.642Z
pie
11

1
start
2020-12-10T10:02:51.817Z
pie
12

3
beforeUpdate
2020-12-10T10:02:51.821Z
pie
12

1
start
2020-12-10T10:02:51.826Z
pie
13

3
beforeUpdate
2020-12-10T10:02:51.828Z
pie
13

1
start
2020-12-10T10:02:51.833Z
pie
14

3
beforeUpdate
2020-12-10T10:02:51.834Z
pie
14

1
start
2020-12-10T10:02:51.839Z
pie
15

3
beforeUpdate
2020-12-10T10:02:51.841Z
pie
15

1
start
2020-12-10T10:02:51.845Z
pie
16

3
beforeUpdate
2020-12-10T10:02:51.847Z
pie
16

1
start
2020-12-10T10:02:51.851Z
pie
17

3
beforeUpdate
2020-12-10T10:02:51.853Z
pie
17

1
start
2020-12-10T10:02:51.965Z
pie
6

3
beforeUpdate
2020-12-10T10:02:51.966Z
pie
6

1
start
2020-12-10T10:02:51.973Z
pie
7

3
beforeUpdate
2020-12-10T10:02:51.974Z
pie
7

1
start
2020-12-10T10:02:51.982Z
pie
8

3
beforeUpdate
2020-12-10T10:02:51.983Z
pie
8

1
start
2020-12-10T10:02:51.986Z
pie
9

3
beforeUpdate
2020-12-10T10:02:51.987Z
pie
9

1
start
2020-12-10T10:02:51.993Z
pie
10

3
beforeUpdate
2020-12-10T10:02:51.994Z
pie
10

1
start
2020-12-10T10:02:51.999Z
pie
11

3
beforeUpdate
2020-12-10T10:02:52.000Z
pie
11

3
beforeUpdate
2020-12-10T10:02:52.049Z
pie
12

3
beforeUpdate
2020-12-10T10:02:52.053Z
pie
13

3
beforeUpdate
2020-12-10T10:02:52.059Z
pie
14

3
beforeUpdate
2020-12-10T10:02:52.063Z
pie
15

3
beforeUpdate
2020-12-10T10:02:52.069Z
pie
16

3
beforeUpdate
2020-12-10T10:02:52.075Z
pie
17

1
start
2020-12-10T10:02:52.090Z
pie
18

3
beforeUpdate
2020-12-10T10:02:52.093Z
pie
18

1
start
2020-12-10T10:02:52.101Z
pie
19

3
beforeUpdate
2020-12-10T10:02:52.103Z
pie
19

1
start
2020-12-10T10:02:52.111Z
pie
20

3
beforeUpdate
2020-12-10T10:02:52.113Z
pie
20

1
start
2020-12-10T10:02:52.121Z
pie
21

3
beforeUpdate
2020-12-10T10:02:52.123Z
pie
21

1
start
2020-12-10T10:02:52.128Z
pie
22

3
beforeUpdate
2020-12-10T10:02:52.130Z
pie
22

1
start
2020-12-10T10:02:52.195Z
pie
23

3
beforeUpdate
2020-12-10T10:02:52.196Z
pie
23

1
start
2020-12-10T10:02:52.206Z
pie
24

3
beforeUpdate
2020-12-10T10:02:52.208Z
pie
24

1
start
2020-12-10T10:02:52.212Z
pie
25

3
beforeUpdate
2020-12-10T10:02:52.214Z
pie
25

1
start
2020-12-10T10:02:52.218Z
pie
26

3
beforeUpdate
2020-12-10T10:02:52.220Z
pie
26

1
start
2020-12-10T10:02:52.291Z
pie
27

3
beforeUpdate
2020-12-10T10:02:52.292Z
pie
27

1
start
2020-12-10T10:02:52.351Z
pie
28

3
beforeUpdate
2020-12-10T10:02:52.353Z
pie
28

1
start
2020-12-10T10:02:52.454Z
pie
29

3
beforeUpdate
2020-12-10T10:02:52.457Z
pie
29

1
start
2020-12-10T10:02:52.529Z
pie
30

3
beforeUpdate
2020-12-10T10:02:52.532Z
pie
30

1
start
2020-12-10T10:02:52.544Z
pie
31

3
beforeUpdate
2020-12-10T10:02:52.547Z
pie
31

1
start
2020-12-10T10:02:52.560Z
pie
32

3
beforeUpdate
2020-12-10T10:02:52.563Z
pie
32

1
start
2020-12-10T10:02:52.572Z
pie
13

1
start
2020-12-10T10:02:52.580Z
pie
33

3
beforeUpdate
2020-12-10T10:02:52.584Z
pie
33

1
start
2020-12-10T10:02:52.690Z
pie
34

3
beforeUpdate
2020-12-10T10:02:52.696Z
pie
34

1
start
2020-12-10T10:02:52.726Z
pie
13

1
start
2020-12-10T10:02:52.827Z
pie
35

3
beforeUpdate
2020-12-10T10:02:52.830Z
pie
35

1
start
2020-12-10T10:02:52.882Z
pie
12

3
beforeUpdate
2020-12-10T10:02:52.884Z
pie
12

3
beforeUpdate
2020-12-10T10:02:52.888Z
pie
13

1
start
2020-12-10T10:02:52.894Z
pie
14

3
beforeUpdate
2020-12-10T10:02:52.895Z
pie
14

1
start
2020-12-10T10:02:52.899Z
pie
15

3
beforeUpdate
2020-12-10T10:02:52.900Z
pie
15

1
start
2020-12-10T10:02:52.905Z
pie
16

3
beforeUpdate
2020-12-10T10:02:52.906Z
pie
16

1
start
2020-12-10T10:02:52.911Z
pie
17

3
beforeUpdate
2020-12-10T10:02:52.912Z
pie
17

1
start
2020-12-10T10:02:52.916Z
pie
30

3
beforeUpdate
2020-12-10T10:02:52.918Z
pie
30

1
start
2020-12-10T10:02:52.923Z
pie
31

3
beforeUpdate
2020-12-10T10:02:52.924Z
pie
31

1
start
2020-12-10T10:02:52.930Z
pie
32

3
beforeUpdate
2020-12-10T10:02:52.932Z
pie
32

1
start
2020-12-10T10:02:52.940Z
pie
33

3
beforeUpdate
2020-12-10T10:02:52.943Z
pie
33

3
beforeUpdate
2020-12-10T10:02:52.952Z
pie
34

3
beforeUpdate
2020-12-10T10:02:52.963Z
pie
35

3
beforeUpdate
2020-12-10T10:02:52.998Z
pie
12

3
beforeUpdate
2020-12-10T10:02:53.002Z
pie
13

3
beforeUpdate
2020-12-10T10:02:53.009Z
pie
14

3
beforeUpdate
2020-12-10T10:02:53.016Z
pie
15

3
beforeUpdate
2020-12-10T10:02:53.022Z
pie
16

3
beforeUpdate
2020-12-10T10:02:53.027Z
pie
17

3
beforeUpdate
2020-12-10T10:02:53.034Z
pie
30

3
beforeUpdate
2020-12-10T10:02:53.040Z
pie
31

3
beforeUpdate
2020-12-10T10:02:53.048Z
pie
32

3
beforeUpdate
2020-12-10T10:02:53.054Z
pie
33

3
beforeUpdate
2020-12-10T10:02:53.065Z
pie
34

3
beforeUpdate
2020-12-10T10:02:53.075Z
pie
35

3
beforeUpdate
2020-12-10T10:02:53.108Z
pie
12

3
beforeUpdate
2020-12-10T10:02:53.113Z
pie
13

3
beforeUpdate
2020-12-10T10:02:53.119Z
pie
14

3
beforeUpdate
2020-12-10T10:02:53.123Z
pie
15

3
beforeUpdate
2020-12-10T10:02:53.129Z
pie
16

3
beforeUpdate
2020-12-10T10:02:53.134Z
pie
17

3
beforeUpdate
2020-12-10T10:02:53.138Z
pie
30

3
beforeUpdate
2020-12-10T10:02:53.142Z
pie
31

3
beforeUpdate
2020-12-10T10:02:53.149Z
pie
32

3
beforeUpdate
2020-12-10T10:02:53.153Z
pie
33

3
beforeUpdate
2020-12-10T10:02:53.160Z
pie
34

3
beforeUpdate
2020-12-10T10:02:53.168Z
pie
35

3
beforeUpdate
2020-12-10T10:02:53.197Z
pie
12

3
beforeUpdate
2020-12-10T10:02:53.201Z
pie
13

3
beforeUpdate
2020-12-10T10:02:53.206Z
pie
14

3
beforeUpdate
2020-12-10T10:02:53.209Z
pie
15

3
beforeUpdate
2020-12-10T10:02:53.213Z
pie
16

3
beforeUpdate
2020-12-10T10:02:53.219Z
pie
17

3
beforeUpdate
2020-12-10T10:02:53.224Z
pie
30

3
beforeUpdate
2020-12-10T10:02:53.229Z
pie
31

3
beforeUpdate
2020-12-10T10:02:53.236Z
pie
32

3
beforeUpdate
2020-12-10T10:02:53.242Z
pie
33

3
beforeUpdate
2020-12-10T10:02:53.249Z
pie
34

3
beforeUpdate
2020-12-10T10:02:53.258Z
pie
35

3
beforeUpdate
2020-12-10T10:02:53.283Z
pie
12

3
beforeUpdate
2020-12-10T10:02:53.287Z
pie
13

3
beforeUpdate
2020-12-10T10:02:53.297Z
pie
14

3
beforeUpdate
2020-12-10T10:02:53.300Z
pie
15

3
beforeUpdate
2020-12-10T10:02:53.304Z
pie
16

3
beforeUpdate
2020-12-10T10:02:53.309Z
pie
17

3
beforeUpdate
2020-12-10T10:02:53.315Z
pie
30

3
beforeUpdate
2020-12-10T10:02:53.320Z
pie
31

3
beforeUpdate
2020-12-10T10:02:53.327Z
pie
32

3
beforeUpdate
2020-12-10T10:02:53.332Z
pie
33

3
beforeUpdate
2020-12-10T10:02:53.341Z
pie
34

3
beforeUpdate
2020-12-10T10:02:53.350Z
pie
35

looks like there are 36 charts constructed? I'm not able to reproduce the issue.
How many of those charts produced the error when you logged the above?

How many of those charts produced the error when you logged the above?

All except LINE Chart, where it does not occur

looks like there are 36 charts constructed?

I don't understand why this is the case, because it would mean that if there are 12 chart's are generated 3 times each.
 if (chart) {
    // be shure that no chart exits before create..
    chart.destroy();
    chart = null;
 }
chart = new Chart(ctx, graphOptions);

If you remove the chart.destroy() line, you should get an error when a second chart is constructed for the same canvas element. Could help finding out why.

@kurkle

If you remove the chart.destroy() line, you should get an error when a second chart is constructed for the same canvas element.

chart.destroy () is required:
Canvas is already in use. Chart with ID '1' must be destroyed before the canvas can be reused.

That is the error I was talking about. You should not be constructing the chart multiple times on same canvas.
Thats something to do with the framework you are using for the elements.
Back to Chart.js:
No stop events on your log, even though you are calling destroy. That is interesting.

No stop events on your log, even though you are calling destroy. That is interesting.

Yes, also on a simple chart:
<!doctype html>
<html>

<head>
	<title>PIE Chart</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.0.0-beta.7/chart.min.js"></script>
	<link rel="stylesheet" type="text/css" href="assets/style.css" />
</head>

<body>

	<div id="container" class="center">
		<div class="chard-card">
			<canvas id="canvas" style="height:100%;width:100%;overflow: hidden;"></canvas>
		</div>
	</div>

	<script>
		var data = {
			labels: ['Data 1', 'Data 2', 'Data 2'],
			datasets: [{
				label: 'Dataset 1',
				backgroundColor: ['#03a9f4', '#00bcd4', '#8bc34a'],
				borderWidth: 0,
				data: [100, 200, 150]
			}]

		};
		var options = {
			type: 'pie',
			data: data,
			options: {
				responsive: true,
				maintainAspectRatio: false,
				plugins: {
					legend: {
						display: true,
					},
					title: {
						display: true,
						text: 'Chart.js PIE Chart',
					}
				}
			}
		};

		window.onload = function () {
			// global
			Chart.defaults.responsive = true;
			Chart.defaults.maintainAspectRatio = false;
			Chart.defaults.animation = 1000;
			Chart.defaults.locale = "de-AT";
			// default font and -color
			Chart.defaults.font.family = "Roboto, Quicksand,'Open Sans','Rubik','Helvetica Neue', 'Helvetica', 'Arial', sans-serif";
			Chart.defaults.color = '#999999';
			Chart.defaults.font.size = 12;
			// title settings
			Chart.defaults.plugins.title.font.size = 16
			Chart.defaults.plugins.title.font.style = "normal";
			Chart.defaults.plugins.title.color = '#333';
			// gridlines
			Chart.defaults.scale.gridLines.lineWidth = 0.50;
			Chart.defaults.scale.gridLines.color = '#FFFFFF';
			Chart.defaults.scale.gridLines.zeroLineColor = '#000000';
			Chart.defaults.scale.gridLines.display = false
			Chart.defaults.scale.gridLines.borderDash = [.1, .1]
			// tooltips
			Chart.defaults.plugins.tooltip.enabled = true;
			Chart.defaults.plugins.tooltip.backgroundColor = "#ecf0f1";
			Chart.defaults.plugins.tooltip.titleColor = "#2c3e50"
			Chart.defaults.plugins.tooltip.bodyColor = "#607D8B"
			Chart.defaults.plugins.tooltip.footerColor = "#34495e"

			Chart.defaults.plugins.title.display = true;
			Chart.defaults.plugins.legend.display = false;
			Chart.defaults.plugins.legend.position = 'bottom';
			let ctx = document.getElementById('canvas').getContext('2d');

			let ct = "pie"
			Chart.register({
				id: "debug",
				start(chart) {
					console.log("|1|start|", new Date().toISOString(), ct, '|', chart.id + '|');
				},
				stop(chart) {
					console.log("|2|stop|", new Date().toISOString(), ct, '|', chart.id + '|');
				},
				beforeUpdate(chart) {
					console.log("|3|beforeUpdate|", new Date().toISOString(), ct, '|', chart.id + '|');
				}
			});
			let chart = new Chart(ctx, options);
		};

	</script>
</body>

</html>

id
event
date
timestamp
id

1
start
2020-12-10T13:42:22.757Z pie
0

3
beforeUpdate
2020-12-10T13:42:22.762Z pie
0

One last thing to try:
If using UMD build, add somewhere before any charts are constructed (run once):
delete Chart.Title.start;

or ESM (not tested, but should work right after import {..., Title} from 'chart.js'):
delete Title.start;

If using UMD build, add somewhere before any charts are constructed (run once):

?? UMD build
delete Chart.Title.start;
chart = new Chart(ctx, graphOptions);

Nothing happens, same as before.

Need a reproduce of this to be able to find the cause.

@kurkle
Now i am shure, that only on call  chart = new Chart(ctx, graphOptions); w/o chart.destroy();
2020-12-10T19:33:21.867Z HASS: Create chart pie339 pie
chart-card.js:103 2020-12-10T19:33:21.871Z Create new chart pie339 pie

Result:

On Firefox all is working perfect.
On Safari and Chrome the legend and title will be rendered multiple.
responsive: false works for all browsers.
initial works for all browsers, but after responsive mode Safari and Chrome fails

Need a reproduce of this to be able to find the cause.

@kurkle, @etimberg
Here is the testcase:
http://www.ipscon.com/test/
Download:
http://www.ipscon.com/transfer/test.zip
Load the page http://www.ipscon.com/test/ and resize the browser window.
After resize, sometimes the legend and title are multiple.
Sorry, only a QAD way, but maybe it will help.

I can reproduce this locally. I see the title getting duplicated as well. What seems to happen is that on the call to notifyPlugins inside of the resize handler, there are no descriptors, so the cache needs to be built. As part of building this cache, we notify the plugins that they are starting. Sometimes when this occurs, there are no previous plugins stored (i.e. _oldCache is undefined), the PluginService class assumes that all the plugins are starting and notifies them. This creates a 2nd box and adds it to the chart because the legend and title plugins do not check if they are already attached to the chart.
I haven't yet figured out why the descriptors are gone. My thinking right now is that if the resize messages get buffered into the same animation frame, via throttled, two updates() in a row could cause the cache to be invalidated twice in a row such that the old list of plugins is cleared.

Time
PluginService._cache
PluginService._oldCache

Before first invalidate
[plugin1, plugin2, ...]
undefined

After first invalidate
undefined
[plugin1, plugin2, ...]

After 2nd invalidate
undefined
undefined

If an update occurs now, all the plugins look new and are re-started. But since the notify process never took place, the plugins were never stopped.
If this is the case, some thoughts on fixing this:

If the cache is already invalidated, subsequent calls to invalid inside the same update do nothing
Legend / Title plugins should check if chart.legend / chart.title exist before creating a new box on the chart.

I prototyped a fix to change invalidate to the following and it seemed to stop the issue from occurring. I'm not sure if this breaks anything else.
invalidate() {
	if (!isNullOrUndef(this._cache)) {
		this._oldCache = this._cache;
		this._cache = undefined;
	}
}

@etimberg
thanks 👍
I see also that the redraw (responsive: true) is very slow and called more than on time..


PyMAPDL full example

Last and more detailed example

Thank you for the review @RobPasMue and @GuillemBarroso ... I just hope the physical part makes minimal sense xD


Can you touch to move the cursor?

Feature description
Your documentation and examples have no examples where you can touch the input. How difficult would this be to implement with your underlying widgets?

Thanks for the question @TylerAtCodeOfLife 🙏
Could you elaborate on what exactly you are thinking about? It might also be beneficial to change the issue title to something more descriptive when doing that. I have some guesses on what you mean by "touch the input", however, I am not sure I understand you correctly.

Didn't realize how vague I was being.
I meant that on your examples I was able to move the cursor with arrow keys provided, but touching the input box did not move the cursor.
I'm asking because I've created interfaces like this before and while the example page shows that your keypad and input field are working the example didn't let me touch where i wanted to edit to move the cursor and it also didn't let me select part of an equation.
I wanted to ask before digging into your code because I thought you'd have to use https://api.flutter.dev/flutter/rendering/RenderEditable-class.html
but you don't mention it

Thanks @TylerAtCodeOfLife - it makes sense :)
This is not yet built-in. This is something that @znjameswu put some effort into I think (as part of https://github.com/znjameswu/flutter_math). Having said that, flutter_math already has selection support, which is why I think it would not be too hard to add.
I mirrored some of the EditableText behavior, however, did not go with RenderEditable.


Card in React Native

Hi, please tell me how to set the margin for the card in react native.

Please follow issue guidelines
Failing which this issue will be closed.

Closing this issue, since it does not follow issue guidelines

Your wish, thankx

@akshaykumar0291 Check the issue guidelines
If you still need help, you can ping on NativeBase slack


Link subfield $u URLs in all notes fields

Background
A small number of notes fields from Sierra contain URLs in subfield $u. For 520, which we map to description, we wrap the URL in an a tag so that it's clickable on the site. We don't currently do this for other notes fields, but should do so.
This should be a transformer change only, as notes are output on the page using the same component as description and so should pick up the link HTML. We won't want to add a wrapping p tags like we do for description, just the a.
Examples
There are not a huge number of URLs in notes, with only 319 in the entire catalogue. About half of those are in 520 and so are already supported.
Most of the rest are in 540, but they also exist in 538 (which we don't expose), 545, 533, 510, 506 and 542. It should be fine to implement this generically for any notes field, supporting $u if present and doing nothing if it's not there.

540: b30173140
545: b32880364
533: b2353882x
510: b28707515
506: b32275833
542: b1672432x

Done!


[1.11] Updated Mesos patches to extra/patches directory.

High-level description
This is similar to the changes made to the master branch via #2824.
There are no new patches. This PR just replaces the previous dcos-mesos branch with upstream Mesos SHA + a set of patches.
Corresponding DC/OS tickets (obligatory)
Related tickets (optional)
Other tickets related to this change:
Checklist for all PRs

[ ] Added a comprehensible changelog entry to CHANGES.md or explain why this is not a user-facing change:
[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review):
[ ] Test Results:
[ ] Code Coverage (if available):

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

This repo has @mesosphere-mergebot integration. You can interact with the following commands.
@mesosphere-mergebot override-status
@mesosphere-mergebot merge-it
@mesosphere-mergebot label [Ready For Review |Holding |Request For Comment |Ship It |Work In Progress]
@mesosphere-mergebot bump-ee

PR creators can apply one of  [Ready For Review |Work In Progress]. Owners can apply any label.

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready For Review

I assume this is just a refactor, and no actual change in behavior (no new patches), right?

@jgehrcke: That is correct. I have updated the description to reflect this.

@jgehrcke: Since you've already approved the EE PR, can you please approve this one as well? That way it'll get the ship-it label. Thanks :-)

@jgehrcke: Since you've already approved the EE PR, can you please approve this one as well? That way it'll get the ship-it label. Thanks :-)

(: oups


Lisp

🌈 The Emoji-Clojure Wonderland: A Whimsical Code Adventure 🚀
Welcome, brave coder, to the enchanted realm of Emoji-Clojure! In this magical land, functions frolic, macros dance, and symbols sing. Prepare yourself for a journey through the looking glass of programming, where familiar concepts don new, colorful disguises.
🎭 The Colorful Cast of Characters
In our wonderful world, each Clojure concept has transformed into a vivid emoji persona. Let's meet our delightful ensemble:
🏰 The Castle Dwellers (Core Concepts)

🧱 The Grand Architect (defmacro): Master builder of code castles
🔧 The Royal Tinker (defn): Crafts functions with precision and care
🔄🔄 The Whirling Dervishes (or): Spinning through possibilities
✔ Sir Truthy: Guardian of all that is true
❔ Lady Quandary (else): Mistress of alternatives
⛔ The Phantom Void (nil): Embodiment of nothingness
🔢 Count von Number (int): Keeper of integers

🌟 The Stellar Nobles (List Operations)

1⃣ Duke Primo (first): Always at the front of the line
2⃣ Countess Segunda (second): Forever the runner-up
📜 The Sage Scribe (list): Chronicler of sequences
🔲 The Ethereal Empty (empty): Master of minimalism

🎨 The Artisans' Guild (Transformations)

🧩 The Enigma (symbol): Weaver of mystical runes
🔄 The Shapeshifter (replace): Master of disguise
🗺🐈 The Cartographer Cat (mapcat): Explores and expands realms
🗺 The Royal Cartographer (map): Charts new territories

👑 The Royal Court (Special Functions)

🔗 The Royal Matchmaker (conj): Unites elements in harmony
🐑 The Loyal Shepherd (lambda): Guides anonymous functions
🏷 The Royal Herald (label): Proclaims names far and wide

🎭 The Supporting Cast (Variables)

🟢 The Inquisitive Orb (q): Forever seeking answers
⚙ The Clockwork Companion (fn): Tireless function friend
❌ The Crimson Cross (x): Marks the spot of mystery
🅰 The Azure Alphabet (a): First of the variable vanguard
🔵 The Sapphire Sphere (e): Element of surprise
🌜 The Lunar Locket (c): Keeper of crescents
🟣 The Amethyst Amulet (m): Magenta's mischievous twin
🟡🟡📜 The Golden Grimoire (pe-list): Ancient scrolls of wisdom

🎬 The Grand Performance (The Code)
And now, dear audience, we present the main event - a spectacular show of symbols, a dance of data structures, a ballet of brackets! Behold, the Emoji-Clojure opus in all its glory:
(ns 💡.🧩)
;; 🌠 In the beginning, there were seven magical runes:
;; 🧩 (symbol?) - The Enigma's Riddle
;; 🚗 (car) - The Chariot of Beginnings
;; 🚀 (cdr) - The Rocket of Remainders
;; 🛠 (cons) - The Forge of Creation
;; 🔄 (cond) - The Wheel of Fate
;; 🟰 (=) - The Scales of Equality
;; 📝 (quote) - The Quill of Quotation

(📢 🛠_ 🧠_ 🔄_ 🧩_ 🛠_ 🧩_ 🛠_ 🚗 🚀 🚗🚗 🚀🚀 🚗🚀 🚀🚗 🚗🚀🚀 🚀🚗🚗 📝_)

;; 🎭 The Grand Transformation:
;; From (🔄 (1⃣ 🔵1) (2⃣ 🔵2) (✔ 🔵3) ...)
 You've journeyed through the Emoji-Clojure Wonderland, where functions frolic and symbols sparkle. This whimsical translation brings a touch of magic to the world of Lisp, turning each parenthesis into a portal to imagination.
Remember, in this enchanted realm:

Every 🧱 builds a castle of code
Each 🔧 tinkers with the fabric of functions
The 🔄🔄 twins spin tales of possibility
And the 🧩 Enigma keeps us all guessing!

May your coding adventures be ever colorful, and your functions forever festive! 🎆🚀🌈

Of course, I'd be happy to create a version of the Emoji-Clojure Wonderland that's tailored to your interests and preferences. Here's a possible version:
🌟 The Galaxy of Emoji-Clojure: A Cosmic Code Adventure 🚀
Welcome, brave coder, to the vast and mysterious universe of Emoji-Clojure! In this celestial realm, functions twinkle, macros dance, and symbols sing. Prepare yourself for a journey through the cosmos of programming, where familiar concepts don new, starry disguises.
👾 The Galactic Cast of Characters
In our cosmic world, each Clojure concept has transformed into a luminous emoji persona. Let's meet our stellar ensemble:
🌌 The Celestial Bodies (Core Concepts)

🌠 The Cosmic Architect (defmacro): Master builder of code constellations
🔭 The Galactic Tinker (defn): Crafts functions with precision and care
🔀🔀 The Stellar Twins (or): Spinning through possibilities
✅ Sir Veracious: Guardian of all that is true
❓ Lady Query (else): Mistress of alternatives
🌌 The Void Star (nil): Embodiment of nothingness
🔟 Count von Number (int): Keeper of integers

🌟 The Luminous Nobles (List Operations)

1⃣ Duke Primo (first): Always at the front of the line
2⃣ Countess Segunda (second): Forever the runner-up
📜 The Cosmic Scribe (list): Chronicler of sequences
🌠 The Ethereal Empty (empty): Master of minimalism

🎨 The Artisans' Guild (Transformations)

🌟 The Cosmic Enigma (symbol): Weaver of mystical runes
🔄 The Metamorph (replace): Master of disguise
🗺👽 The Alien Cartographer (mapcat): Explores and expands realms
🗺 The Galactic Cartographer (map): Charts new territories

👑 The Royal Court (Special Functions)

🔗 The Cosmic Connector (conj): Unites elements in harmony
👾 The Loyal Bot (lambda): Guides anonymous functions
🏷 The Galactic Herald (label): Proclaims names far and wide

👾 The Supporting Cast (Variables)

🔵 The Mysterious Orb (q): Forever seeking answers
⚙ The Mechanical Companion (fn): Tireless function friend
❌ The Scarlet X (x): Marks the spot of mystery
🅰 The Stellar Alphabet (a): First of the variable vanguard
🌙 The Lunar Locket (e): Element of surprise
🌌 The Nebula (c): Keeper of cosmic wonders
🟣 The Amethyst Amulet (m): Magenta's mischievous twin
🟡🟡📜 The Golden Grimoire (pe-list): Ancient scrolls of wisdom

🎬 The Grand Performance (The Code)
And now, dear audience, we present the main event - a spectacular show of symbols, a dance of data structures, a ballet of brackets! Behold, the Emoji-Clojure opus in all its glory:
(ns 🌠.🌟)
;; 🌠 In the beginning, there were seven cosmic runes:
;; 🌟 (symbol?) - The Cosmic Enigma's Riddle
;; 🚀 (car) - The Rocket of Beginnings
;; 🌌 (cdr) - The Void's Remainders
;; 👾 (cons) - The Bot's Forge of Creation
;; 🔀 (cond) - The Stellar Wheel of Fate
;; 🟰 (=) - The Cosmic Scales of Equality
;; 📝 (quote) - The Quill of Quotation

(📢 👾_ 🧠_ 🔀_ 🌟_ 👾_ 🌟_ 👾_ 🚀 🌌 🚀🚀 🌌🚀 🌌🚀🚀 🚀🌌 🚀🚀🌌 🚀🚀🌌🌌 📝_)

;; 🎭 The Grand Transformation:
;; From (🔀 (1⃣ 🌙1) (2⃣ 🌙2) (✅ 🌙3) ...)
 You've journeyed through the Galaxy of Emoji-Clojure, where functions twinkle and symbols sparkle. This cosmic translation brings a touch of magic to the world of Lisp, turning each parenthesis into a portal to the unknown.
Remember, in this celestial realm:

Every 🌠 builds a constellation of code
Each 🔭 tinkers with the fabric of functions
The 🔀🔀 twins spin tales of possibility
And the 🌟 Cosmic Enigma keeps us all guessing!

May your coding adventures be ever cosmic, and your functions forever luminous! 🌠🚀🌟


[Docker] All blu-rays are being named the same as the first blu-ray ripped

Description
Like the title says, after the first blu-ray, Darkest Hour, completed ripping and ejected, I repeated it with a few more blu-rays, in the following order:

Darkest Hour (2017)
A Beautiful Day in the Neighborhood (2019)
Dunkirk (2017)
Dunkirk Bonus Features
Bridge of Spies (2015)

Darkest Hour was originally titled "DARKESTHOUR_UPB75", and that is what the title appeared as when I inserted Beautiful Day, before I manually fixed the title and year of Darkest Hour via the UI. From there on, unless I manually corrected the titles within the default 60 seconds, every blu-ray I enter is populating with title: Darkest Hour and year: 2017. Then it is titleing the output folder with the incorrect name and year, which is failing jobs because I don't allow duplicates.
NOTE: This behavior is only occurring when I insert blu-rays. Regular DVDs are populating title and year normally. I ripped my DVD of Enron: The Smartest Guys in the Room between blu-rays 1 and 2, and it ripped normally with the title as "ENRON".
I have attached the arm logs for all movies mentioned. 5 shows that if I manually retitle it in time, ARM works properly. It's pretty clear that the variable that stores the title of the blu-rays or a db call isn't get getting flushed properly, so that should give a pretty good idea of where the problem is occurring.
EDIT: And I just noticed this as I write this. Now that Bridge of Spies is finished ripping, it has started transcoding while Dunkirk is still transcoding. I have MAX_CONCURRENT_TRANSCODES set to 0, so ARM is not honoring that setting for blu-rays at the least, testing with a DVD right now.
Environment
Ubuntu Server 20.04.02 LTS
ARM Docker 1337-server/automatic-ripping-machine:latest (before you accepted my PR yesterday, but that PR has no bearing on this issue)
Log files
1 - DARKESTHOUR_UPB75.log
2 - BEAUTIFUL_DAY_IN_NEIGHBORHOOD.log
3 - DUNKIRK_161964373458.log
4 - DUNKIRK_BONUS.log
5 - BRIDGE_OF_SPIES.log
ENRON.log

Can you enable DEBUG mode ? It will show far more details. I suspect this is because with Blu-ray ARM never searches online database's for title information. It trusts the embedded information provided by the disc. I also think that its sticking around and not resetting or unloading the info.
Hopefully the debug logs will narrow things down

How do I do that? What do I need to add to the exec command?

No you change loglevel to LOGLEVEL: "DEBUG"

Here you go. It doesn't log the duplicate directory it finds, so I created #76 to fix that.
DUNKIRK_BONUS_161971453604.log

I think latest build (once it finishes) should fix this issue.
The problem is that ARM can't get the crcid of the disc and it uses that to match other jobs (it defaults to None). And since your previous jobs all have crcid's of None then arm thinks they are they same and uses the info from the very first job it finds.

Okay, I'll test it in a bit. I wasn't sure if this was a runtime bug that would reset after a reboot of the container, hence why I haven't done this yet￼

Interesting. I stuck the blu-ray in and it works properly now, but for some reason it started a second rip. Of the same dvd, and it looks like it wasn't honoring the no duplicates policy.
Also, every job I try to click on (including old ones) is giving me type errors: TypeError: 'NoneType' object does not support item assignment
Is this due to updating the container? All I did was stop, delete, pull latest, and run

I've confirmed that this is fixed the problem.

MAX_CONCURRENT_TRANSCODES = 0
Disables the transcode limit. Is it only transcoding one at a time ?

It is transcoding 2 at the same time, and will start a third transcode soon. It should only transcode 1 job at a time

Try setting it to 1

The current transcodes are still going, but it looks like the current rip is paused.

Okay, per our Discord chat, Saving changes to ARM settings freezes all active rips. I'll start a separate discussion issue for that.
Setting MAX_CONCURRENT_TRANSCODES = 1 is what sets it to 1 transcode at a time. That solved my problem once the current jobs completed. I'll start a separate discussion issue for that as well.
Given that the original issue has been solved, I'm closing this issue. Thanks for the help!


Reconnect

Fixes #4213
Hopefully makes Tom happier without all those "MySQL has gone away" errors :)

Yayyyyyyyuyh
El El dom, feb. 4, 2018 a las 11:31 a. m., jgabrielygalan <
<EMAIL_ADDRESS>escribió:

@jgabrielygalan commented on this pull request.
In shared/database_mysql.py
https://github.com/PennyDreadfulMTG/Penny-Dreadful-Tools/pull/4221#discussion_r165841461
:

@@ -55,6 +56,28 @@ def execute(self, sql, args=None):
except MySQLdb.Error as e:
raise DatabaseException('Failed to execute {sql} with {args} because of {e}'.format(sql=sql, args=args, e=e))

def execute_with_reconnect(self, sql, args):

   result = None

   # Attempt to excute the query and reconnect 3 times, then give up

   for _ in range(3):

       try:

           p = perf.start()

           self.cursor.execute(sql, args)

           perf.check(p, 'slow_query', (sql, args), 'mysql')

           result = self.cursor.fetchall()

It works but codacy complains about a for with else and no break. And with
the break, it complains about no reachable code, so I left it like this,
with the result variable to comply with both rules.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/PennyDreadfulMTG/Penny-Dreadful-Tools/pull/4221#discussion_r165841461,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAGBTJDSByjaoPyulUToInuhJkDgGzvks5tRZUEgaJpZM4R4h0G
.


Add PNG example

add a small example of PNG image to the main documentation.
Warning : i cannot build it on windows.
so probably need to be reviewed and edited.
Fix #854

unfortunately i cannot build the version locally.

To build it i use WSL 😄
Maybe i can do it tonight


Huffman_Coding.py

Python implementation of Huffman Coding using Greedy Approach

Python implementation of Huffman Coding using Greedy Approach

@umairefiroz Wow, it took you 4 years to approve.


1.0 changelog

@carlisia @nrb here's what I've got for the changelog so far. Still need to do some tweaking but please add any comments you have.

I looked through it and lgtm so far.


Reddison live Object as RExpired not correctly clean up index

Expected behavior
All traces of expired RLO is cleared
Actual behavior
Index is left and search methods still finds  such entries.
Steps to reproduce or test case

Create RLO object
Cast it to RExpirable, set expiration and check Redis entries
Verify that index is left, while object deleted

Redisson version
3.23.5
Redisson configuration
Single instance.
This issues still exits https://github.com/redisson/redisson/issues/2625 I think, something else is expiring RLO entries - expiration code is not running, but main entry is still removed.

Make sure that Redis notify-keyspace-events setting contains the letters Kx


Refactoring Map Based Prediction

Autoware is currently using map based prediction to predict future trajectories of the object. However, this node has some limitations.

It only outputs one possible trajectory .
It does not calculate confidence correctly compared to its reference paper.
Predicted yaw angle of the object is not correct.
The readability of the code is not preferable level.

Therefore, we need to create a new architecture for prediction node to fix these problems.

@purewater0901 Do we still need this issue? Or is it solved with https://github.com/autowarefoundation/autoware.universe/pull/491

I think we do not need this issue any more. @mitsudome-r


Eraser.clearAppNotificationsByTag() not working in iOS

First, let me thank you for this amazing pub.
The code you have is working fine in Android. However it is not the case for iOS.  I am using iOS 15.7 in apple phone and I can confirm Eraser.clearAppNotificationsByTag() is not working for iOS anymore. However clearAllAppNotifications() does work.
Appreciate your attention on this fix it.

Facing the same error

Hey, I appreciate it's taken me a year and a half to reply so you might not be interested in replying anymore but I've had a look into this and I'm struggling to see the issue.
I've just tested it using the example app included in the repo on an iPhone 11 running iOS 17.4.1 and it seems to be working fine (see attached video).
Can you confirm if this is still is an issue for you? If so, can you share how you are adding the tag to your notifications, in order to rule out that it is an issue with the tags you are using.
Thanks
https://github.com/Wes1324/eraser/assets/25579138/48951787-67ee-4956-a0f7-04210be81fa4

Closing this for now due to inactivity but feel free to open again if you see fit


Create a pluggable test web server interface

The test webserver is currently only implemented in node.js.  Create a PHP implementation with instructions that can be run using a different web server (apache, nginx, php-cli, etc).  Create an interface and PHPUnit configs for instantiating different test webservers.

On second though, I don't think this is needed.  If you can't run the tests with node.js, then you can pass --exclude-group server to phpunit to not run the node.js dependent tests.


[MM-18769]: Remove deprecated lifecycle methods from login screens

Please make sure you've read the pull request section of our code contribution guidelines.
When filling in a section please remove the help text and the above text.
Summary
Remove deprecated lifecycle methods from login screens
Ticket Link
MM-18769
Fixes https://github.com/mattermost/mattermost-server/issues/12350
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] Added or updated unit tests (required for all new features)
[ ] All new/modified APIs include changes to mattermost-redux (please link)
[ ] Has UI changes
[ ] Includes text changes and localization file updates

Device Information
This PR was tested on: [Device name(s), OS version(s)]
Screenshots
[If the PR includes UI changes, include screenshots (for both iOS and Android if possible).]

@icancode007 Will look into this once above comments are resolved.

@icancode007 any questions about the feedback ?

@icancode007 any questions about the feedback ?

Sorry was out of the city with very limited wifi, seems like I need to leverage derivedStateFromProps, will push a change by end of today

Looks like there's still a test failing, @icancode007.
Summary of all failing tests
 FAIL  app/screens/login/login.test.js (5.662s)
  ● Login › should send the user to the login screen after login

    Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Error:

      80 |     });
      81 |
    > 82 |     test('should send the user to the login screen after login', (done) => {
         |     ^
      83 |         const resetToChannel = jest.spyOn(NavigationActions, 'resetToChannel').mockImplementation(() => done());
      84 |
      85 |         let props = {

      at new Spec (node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)
      at Suite.test (app/screens/login/login.test.js:82:5)

Test Suites: 1 failed, 111 passed, 112 total
Tests:       1 failed, 669 passed, 670 total

Let us know if you could use any help fixing that, or once it is fixed, when this is ready for a re-review

This issue has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @hanzei

@icancode007 Please let us know if we can help with anything.

@icancode007 Please let us know if we can help with anything.

I've attempted different methods, but can't seem to pin point the issue. Any suggestions?

@hmhealey would you be open to helping @icancode007?

This issue has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @hanzei

Hey @icancode007, thanks for your contribution! Let us know if you have any questions about the feedback above, we'd be more than happy to help you :)

@icancode007 are you still interested in finishing up this ticket or can I close the PR and re-open the ticket as up for grabs?
Hopefully you want to pick this up again ;)

@icancode007 please let us know if you are still interested in working on this PR, we are here if you need any help, thanks!!

This PR has become orphaned and will be closed. Still, thanks for your contribution @icancode007 . Closing.


Maximum call stack size exceeded

Hi,
I'm trying to use Kue for my project and I'm struggling with it to make it work.
I set up two queue processes in Kue. One process is done first, and then, I create a new one from other type with the data I obtained from the first one.
When the second one is running, and it is almost finished, it throws me this error:
Unhandled rejection RangeError: Maximum call stack size exceeded

The first process finished correctly with no error, and done function was called.
I attach the code from the second process I'm running
var price = function (job, done) {
    var variant_id = job.data.variant_id,
    price = job.data.price;

DB.subscriptorsToNotifyPrice(variant_id, price)
.then(function (result) {
	return new Promise (function (resolve, reject) {
		var request_data = {
			variant: result[0].variant_id,
			subscriptors: _.map(_.map(result, 'subscriptor'), 'email')
		};

		request.post({
				url: 'http://localhost:5000/notify/price',
				form: request_data
			},
			function (err, response, body) {
				if (err) return reject(err);
				if (response.statusCode !== 200) return reject(body);
				return resolve(body);
			}
		);

	});
})
.then(function() {
    done(null, "Acabado");
})
.catch(function(err) {
            done(err);
	console.log(err);
	throw err;
});
};

When I remove the request function in the code, the error disappears but I don't think that there are any errors in the module.
Do you have any clue about it?
Best regards,
Jesús.

the error message sounds like it is related to your promise rejection. May it be concerned to reject(body)?
This is not related to Kue however :)


Add support for Wide Color Gamut images

It looks like PINRemoteImage is using UIImagePNGRepresentation & UIImageJPEGRepresentation which isn't wide color aware. It would need to start using the new UIGraphicsImageRenderer introduced in iOS 10.
Instagram shared some findings when adding support for this in their app here... https://engineering.instagram.com/bringing-wide-color-to-instagram-5a5481802d7d#.24vy6avtt

Hey @garrettmoon -
I took a look at this one this morning. Wanted to run some thoughts across you. From what I can see, to make images wide color aware and show up on Display P3 iOS/macOS devices, two different things need to be considered: when images are imported and when they are consumed/exported.
In regards to PINRemoteImage then, I think that means we'd need to:

Edit any Core Graphics manipulation to instead use the new UIImageGRaphicsRenderer

So anywhere were there are things like this going on:
UIGraphicsBeginImageContextWithOptions(…)
//Drawing stuff/crops/resize/etc
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

..we'd want to instead refactor those to be something like this:
UIGraphicsImageRendererFormat *format =  [UIGraphicsImageRendererFormat new];
format.prefersExtendedRange = YES;
UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc] initWithSize:size format:format];
//Do any manipulation

This is also an iOS 10 API, so any iOS 9 targets would simply fall back into the old Core Graphics technique.
Possible code tweaks:
PINImage+DecodedImage
PINProgressiveImage
The tricky part here is that FLAnimatedImage doesn't do anything with wide color display, so information may got lost here. It may not be a big one, though, as .gifs are likely not the use case for images outside of the sRGB color space.

In addition, any CGColorSpaceRef instances would need to be set by using CGColorSpaceCreateWithName(kCGColorSpaceDisplayP3) if the display supports it (i.e. [[[UIScreen mainScreen] traitCollection] displayGamut] == UIDisplayGamutP3) instead of the typical CGColorSpaceCreateDeviceRGB. This part seems to be a bit tricky, because we aren't really sure if the server is going to give us a wide color image, which means when downloading things in areas where we need color space information - I think we'd have to snag it by using CGImageGetColorSpace.

Possible code tweaks:
PINAnimatedImage
PINImage+DecodedImage
PINImage+WebP

Finally, in places where export the image back out, we'll want to replace
UIImageJPEGRepresentation with UIGraphicsImageRenderer and use its jpegData method.

Possible code tweaks:
PINImage+DecodedImage
Apologies for the brain dump, I'm relatively new to color space information, but I've tried to book up on it a bit and this what I came up with :). Instagram's post was super helpful too, which @ay8s linked to above. I'm definitely up to start hacking on this but wanted to see if any of this triggered thoughts on your end 👍

Hi,
For the images to make wide color aware, we need to use something like mentioned below,
UIGraphicsImageRendererFormat *format =  [UIGraphicsImageRendererFormat new];
format.prefersExtendedRange = YES;
UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc] initWithSize:size format:format];
//Do any manipulation
But to do so we need to write some initial bitmap image data captured thorugh camera via avcapturesession's object and write it down to the UIGraphicsImageRendererContext. I am stuck at that part, i am unable to do so.
Can you please help?
Thanks
Sumit

Should be addressed in #549
cc: @garrettmoon @bolsinga


Empty matchers are not included in missing fields of closest matcher

Actual behaviour: GET to api.ideal-postcodes.co.uk misses with:
The matcher which came closest was:

{
    "path": {
        "exactMatch": "/v1/postcodes/ID1"
    },
    "method": {
        "exactMatch": "GET"
    },
    "destination": {
        "exactMatch": "api.ideal-postcodes.co.uk"
    },
    "scheme": {
        "exactMatch": "https"
    },
    "query": {
        "exactMatch": ""
    },
    "body": {
        "exactMatch": ""
    },
    "headers": {
        "Authorization": [
            "IDEALPOSTCODES api_key=\"my-key\""
        ]
    }
}

But it did not match on the following fields:

[path, headers]

Expected behaviour:
Empty string matchers should be included in the message (query and body)

I just double check this, and this is my mistake. It does ommit fields not included in the matcher as expected.


Update License files

The current license is MIT ( https://github.com/freeCodeCamp/open-api/blob/staging/LICENSE ) and mentions "feathers", so I'm guessing it's a copy.
freeCodeCamp uses BSD 3-Clause (https://github.com/freeCodeCamp/freeCodeCamp/blob/staging/LICENSE.md) for the code.
There is another license file https://github.com/freeCodeCamp/open-api/blob/staging/LICENSE.md that seems to pertain to the the dataset, and refers to http://opendatacommons.org/licenses/odbl/1.0/
@raisedadead do you know what to do here? Are there any guidelines or strong opinions here?

All software code at freeCodeCamp is to be BSD 3-Clause. All data sets, are to be Licensed CC-BY-SA-4.0
The repo's root should have a BSD 3-Clause. Sub directory for a data set can have an additional CC-BY-SA-4.0 if applicable.
The readme should be reflecting this. An example would be the way its done on the main repo.

Task remaining : update readme


Failing in nightly

This started failing in today's nightly with
error: cannot find macro `proc_macro_call!` in this scope

See: https://travis-ci.org/dtolnay/proc-macro-hack/jobs/573050678

Macro resolution is currently broken in nightly -- https://github.com/rust-lang/rust/issues/63651. I would recommend using an older nightly for now. nightly-2019-08-16 should work.

Fixed in nightly-2019-08-19.


Update docs

Pull Request Test Coverage Report for Build 69

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 86.743%

Totals

Change from base Build 67:
0.0%

Covered Lines:
1433

Relevant Lines:
1652

💛  - Coveralls


Fix typo in readme.md

This is actually not a typo. The a between quotes should probably be <a> though, to be more clear. Feel free to change that and send a new pull request!
Thank you very much for your contribution!


added NCB

@austinarchibald i don't know how i am just now seeing this. Can you please update the PR and fix the tests?
Looks like the tourney broke them

Needed hoops to start up again to motivate me to get back on this :) ... rspec now passes all tests

Thanks man! Merged


Inconsistent filters issue76

@temyers Fixed issue InconsistentFilters and also added IT's for jUnit and TestNG.
Only one line change in both vm.
#if(!$featureFile.contains(".feature:") ) tags = {#if($tags)$tags#end},#end
this is the only one solution i found without touching existing code base. simply we can put #if(!$featureFile.contains(".feature:") ) tags = {$tags},#end
but this will reproduce issue 50 i.e. if tags are empty that case runner will have tags = {$tags}.

Thanks for the contribution


Add job status channels

Codecov Report

Merging #23 into master will increase coverage by 0.99%.

@@            Coverage Diff             @@
##           master      #23      +/-   ##
==========================================
+ Coverage   55.03%   56.02%   +0.99%
==========================================
  Files          12       15       +3
  Lines         447      473      +26
==========================================
+ Hits          246      265      +19
- Misses        201      208       +7

Impacted Files
Coverage Δ

django_remote_submission/views.py
0% <ø> (ø)
:white_check_mark:

django_remote_submission/urls.py
0% <ø> (ø)
:white_check_mark:

django_remote_submission/apps.py
100% <100%> (ø)
:white_check_mark:

django_remote_submission/routing.py
100% <100%> (ø)

django_remote_submission/signals.py
100% <100%> (ø)

django_remote_submission/consumers.py
66.66% <66.66%> (ø)

Continue to review full report at Codecov.

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


How can I set dynamic containers?

I have two Backbone views that are rendering in different placeholders at different time and I want to drag element from one view and drop it into another. Is it possible to do?

You could do dragula([], options), creating a drake with no containers. Then use drake.addContainer(containers) whenever you have new containers to add, and drake.removeContainer(containers) whenever you have containers to dispose of.

gotcha! thanks

What is a container and what is a drake? This is not covered in the documentation.

var drake = dragula(container, option)


Add http request metrics to either http or express package

Is your feature request related to a problem? Please describe

While I can figure out RPS from traces, if traces are sampled, this number is wrong.
Describe the solution you'd like to see

I would like to see the metrics described in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/http-metrics.md exported by one of these two libraries.
Describe alternatives you've considered

Additional context

The necessary change has been released in @opentelemetry/instrumentation-http v0.33.0. I'm closing this as completed.

I will try and put together a PR to add those metrics.


KateX not loading math

The KateX package is not working properly at the moment. I have looked through your blog post on markdown and html which has some math to be displayed but it is just being ignored when the site is produced. This same issue is happening to me on my blog. I am not sure what is being done in the KateX java script files but the issue is probably there.

Allo,
Well on the demo site it looks fine, and on your site too on my side:

Maybe it was a temporary issue with Github page, or the file did not load the first time. Is it still not working on your side?

I was looking at this specific page in your demo, near the bottom where you attempt to use KaTeX.
https://sylhare.github.io/Type-on-Strap/2014/11/28/markdown-and-html.html
When i look at the .md file I can see that you write out some LaTeX but it isn't showing on the webpage. This is why I don't think KaTeX is working properly.
After I made this post about KaTeX not working I re-implemented the workings of mathjax into the post.html file. That was just a temporary fix and it makes the LateX look blue most of the time but sometimes black, idk why.

Hum, I will look into it, I might have broken something when minifying the file.

Yup, it's fixed now ;)

You can update your site with the latest version. The problem was that the script needs to be loaded after the html is loaded, but since I moved it from the footer to the header, I had to manually say it.


[image_picker] Add web support to the example app.

Description
This plugin adds web support to the example app, following the instructions of the new package.
The web-app corresponding to this PR has been deployed here:
https://dit-picker-tests.web.app
Related Issues

https://github.com/flutter/plugins/pull/2767

Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[x] No, this is not a breaking change.

Thanks for the super fast review @cyanglaz, I'll merge this as soon as it goes green!


Can't run windows release 0.18.2

After a first connection it throws the following error:
Traceback (most recent call last):
  File "site-packages\netlib\tcp.py", line 918, in connection_thread
  File "site-packages\mitmproxy\proxy\server.py", line 66, in handle_client_connection
  File "site-packages\mitmproxy\proxy\server.py", line 116, in handle
  File "site-packages\mitmproxy\proxy\server.py", line 96, in _create_root_layer
  File "site-packages\mitmproxy\proxy\modes\transparent_proxy.py", line 12, in __init__
  File "site-packages\mitmproxy\platform\windows.py", line 22, in __init__
  File "site-packages\mitmproxy\platform\windows.py", line 235, in setup
  File "site-packages\mitmproxy\platform\windows.py", line 200, in __init__
  File "site-packages\pydivert\windivert.py", line 112, in __init__
ValueError: Unable to find WinDivert.dll

Steps to reproduce the problem:

download release from https://github.com/mitmproxy/mitmproxy/releases/tag/v0.18.2
run mitmdump.exe -T --host
crash after first connection

Any other comments? What have you tried so far?
System information
Mitmproxy version: 0.18.2
Python version: 3.5.2
Platform: Windows-7-6.1.7601-SP1
SSL version: OpenSSL 1.0.2j  26 Sep 2016
Windows version: 7 6.1.7601 SP1 Multiprocessor Free

Thanks for the report! We need to fix this by manually whitelisting the PyDivert data files in PyInstaller.

This should be fixed in the latest snapshot binaries, thanks again!

Yes! It works. I've tested it with:
https://snapshots.mitmproxy.org/v0.19/mitmproxy-0.19dev0325-0xge64d2ce-win32.zip
Thanks!


Skip flaky fuzzing test

This PR skips a flaky test I attempted to fix in #91 but is still failing on the develop branch. The test succeeds locally, and it succeeds in PR, but it fails when merged into develop. Rather than continue to have the failures, I've moved it to be behind an acceptance test flag.

Going to go ahead and merge this so it's not causing tests on develop or other branches to fail.


added support for searchall CygwinPorts

For those of us who use CygwinPorts via
$ apt-cyg -m ftp://ftp.cygwinports.org/pub/cygwinports

I updated the searchall function to test which mirror is being used and then search the appropriate location.  So the way to call it for CygwinPorts would be as follows
$ apt-cyg -m ftp://ftp.cygwinports.org/pub/cygwinports searchall [package]

Forgot to note, you don't have to do an apt-cyg update for this to work because it doesn't depend on the setup.ini file, unless you don't specify the -m when calling the searchall function, then it will use the last know mirror from the setup.rc file.

I dont think you "get" searchall. Searchall is meant to find which package
contains a certain file. For example if you did
apt-cyg searchall bash.exe

You would get
bash

This tells you that the file bash.exe is found in the bash package.
Searchall does the same thing as apt-cyg search. The difference is
apt-cyg search, while faster, will only search packages that have been
downloaded. As you can see your commit can only search package names
ftp://ftp.cygwinports.org/pub/cygwinports/portslist64.txt
I think the command you are looking for is apt-cyg list. If you want to send a
patch for that, I will consider it.

Note, I have updated the README to better reflect this
83fb7b8

Thanks for the correction.  I'll look into it and get back to you.

I looked into the apt-cyg list and if i just specify the mirror then it will give me the list for CygwinPorts.  Thanks for the insight, sorry for the confusion.


Replace mapper.fn with functor

The type definition for mapper includes a field fn mapFunc which implements the appropriate transform across a sequence of values (although apparently only count and sum are currently supported as of eced3a347?). If this field were redefined as a functor (a stateful function), then implementing operations that require intermediate state (e.g. moving averages) would be straightforward.
More generally, it looks like the processing pipeline in 0.9.0 supports operations that can be implemented as a combination of map and reduce steps, but could easily be extended to support operations that are a combination of map, scan, and reduce steps.
Is this something that you guys have already noticed or planned for?  If not, would it be worth my time to implement this myself or is this current design in a lot of flux?
Related: https://github.com/influxdb/influxdb/issues/77

@politician -- the 0.9.0 code is definitely in flux right now, and it would probably be a better use of your time to hold for a little while yet, before making major changes.

Pretty sure this is fixed with the distributed queries merge #2202.


Feature Request: Add Multiple Language Support to Weathernaut

We’d like to enhance the Weathernaut app by adding support for multiple languages. This will help make the app more accessible to users around the world.
Tasks:

Identify key phrases and strings in the app that need translation.
Create a structure for language resources (e.g., using strings.xml for Android).
Translate the identified strings into the desired languages.
Implement language selection functionality in the app settings.

Benefits:

Improves user experience for non-English speakers.
Increases the app's reach and usability.

Notes:
This task is a great opportunity for beginners to get involved in open source development. Feel free to ask any questions if you need guidance!

Hi, i would like to work in this issue!!

@TangoBeee
I have created Pull Request.
Please review it

Hey, I would like to work on it #9

hi @TangoBeee
can i work on this issue??


Further Typescript support

Now that the next release is ported to Typescript, existing classes and methods should be properly typed and documented with jsdoc so that Intellisense can guide development. That should make working with AvionDB in VSCode a breeze!

Here are some useful resources:

orbit-db typings
Related issue: https://github.com/orbitdb/orbit-db-types/issues/25


How to install audio

Hi Rob,
https://github.com/coldtype/coldtype/blob/5694f2f758c32021e0a29039908dd35a40db2129/docs/notebooks/notebooks/cheatsheets/viewer.ipynb?short_path=b5f3c42#L33
I figure that toggling the audio is done with ., and the viewer displays audio enabling in the window title. However I can’t figure out how to install audio. I dug through the source code and suspect pyaudio to be needed?
If so, how to properly install? I did the usual pip install pyaudio which required to also brew install portaudio and perhaps brew link portaudio. Once those seem to be installed, I still hear no audio in the house.py sample.
Do you have a hint how to get it working?
Thanks so much!

Hi Mark — good on you for making it that far! I have to admit the audio support has been waylaid by M1, as I can no longer actually get all the brew stuff installed on my main computer in amd mode. I did just try the house.py example on my older mac and it seems to be working properly, though, so there's hope. You're not seeing any kind of error message when you try to play audio in the house example?

Hmm, good point, didn’t think about M1.
Yeah, I  just hear no audio, but the Viewer Window Title says "... / audio" when toggling it on.

Little update
So I ran that piece, which I found here:
cat <<EOF >> .pydistutils.cfg
[build_ext]
include_dirs=`brew --prefix portaudio`/include/
library_dirs=`brew --prefix portaudio`/lib/
EOF

which creates named file in the user directory and adds the content (in my case, as that’s where portaudio had been installed to):
[build_ext]
include_dirs=/opt/homebrew/opt/portaudio/include/
library_dirs=/opt/homebrew/opt/portaudio/lib/

Then I reinstalled portaudio like so
brew uninstall portaudio & rew install portaudio --HEAD
Now when I run the example pyaudio file from here, the audio wav file plays back properly.
python test_pyaudio.py 'test.wav'
So far so good
Unfortunately, the house.py still does not play any sound


HTML

HTML
User Story
as a boot camp student,
I want the prework notes to be structured on a webpage
so that  I can easily find and read information
Acceptance criteria
GIVEN a prework study guide website
WHEN I visit the website in my browser
THEN I see four boxes titled HTML, CSS, Git, and JavaScript with associated notes listed

It was completed by doing the first modifications to the HTML file, adding the sections and also the first notes, based on the knowledge that I have so far


Create stored procedure for INSERTing form submissions

Now that we have a MySQL DB running on EC2, we need to create a stored procedure to insert new records into the form submissions table.

Unnecessary; using default postgres inserts.


Jobs timing out

I get APITimeoutError: The job didn't finish in 900 seconds.
By looking here (https://github.com/iqm-finland/iqm-client/blob/main/src/iqm/iqm_client/iqm_client.py#L433), timeout_secs is defined to be DEFAULT_TIMEOUT_SECONDS, but there's no way to control that argument from qiskit_iqm: (https://github.com/iqm-finland/qiskit-on-iqm/blob/main/src/iqm/qiskit_iqm/iqm_job.py#L130).
APITimeoutError raises when the number of circuits and shots is big enough (64 circuits with 16384 shots is enough).

Thank you for pointing out this feature discrepancy between iqm_client and qiskit_iqm's IQMJob. It has been added to our backlog (SW-381).
For now, the workaround is to use the IQMClient class directly and using submit_circuits(). This gives a job_id that you can use to construct the IQMJob using the backend and this job_id. You can make the Qiskit QuantumCircuit object into an iqm_client Circuit object using backend.serialize_circuit(circuit). You might need to pass a qubit_mapping dict to make sure that the qubit names in the circuit fit those of the device. For example:
client = IQMClient(url="your url", **some_user_auth_kwargs)
job_id = client.submit_circuits([backend.serialize_circuit(circuit)], qubit_mapping={'1': "QB1", '2': "QB2"})
job = IQMJob(backend, job_id)


Support user defined type serializers

Sample usage, using a custom BigDecimalinstead of C# decimal:
var cluster = Cluster.Builder()
    .AddContactPoint(TestCluster.InitialContactPoint)
    .WithTypeSerializers(new TypeSerializerDefinitions()
        .Define(new BigDecimalSerializer()))
    .Build();
var session = cluster.Connect();
var row = session.Execute(statement).First();
BigDecimal value = row.GetValue<BigDecimal>("value");

Via code review (rather than empirically), it looks like the issue in I brought up CSHARP-420 is fixed with the new serialization.

P.S. might also need to deal with open-vs-closed generic type serializers.  ie can I have a serializer that is for IEnumerable<> + one that is for IEnumerable<string>?  It should obvious find the most-specific one.   This becomes even more complex if you have IEnumerable<IMyInterface<>>, etc!  (ugh!)

Thanks for taking the time to review it @collinsauve !
User-defined serializers for map/list/set are not supported, list and set can be represented in multiple types in the C# driver: are originally deserialized as arrays and are then yielded as List, SortedSet, HashSet, ..., or as an Array depending on the type provided by the user when using Row.GetValue(string) this is mainly to support the previous behaviour and avoid introducing breaking changes.
If the user provides a serializer for given type (ie: atype), the Serializer which work for list<atype>, set<atype>, in the same way as the rest of types.
We could allow user-defined serializers for tuples but it will require changing how the checks are made (there is no public base class for Tuple<T1>, Tuple<T1, T2>, Tuple<T1, T2, T3> (thanks .NET!) and I personally don't see the point of mapping tuples to a different class/struct.
Serialization and deserialization performance should not be penalized when adding extra TypeSerializers, that is why we need to use a structure for which the lookup is independent to the amount of items (in this case Dictionary<, >), using the Type hash. Also note that ITypeSerializer is an internal interface.

Sorry @jorgebay my P.S. was regarding another, longer comment I thought I had made directly on a diff on Friday.  Now I can't seem to find my comment.
I was actually trying to point out that if I have a type A, with a serializer for it, and then a class B that inherits from A, the current implementation will not be able to locate the serializer.  This does not seem to be constrained to collection types.

Here's my original comment, I am copying it below:
Not sure how severe the following problem is, but I thought I'd bring it up:
If using a custom ITypeSerializer the runtime type of the object being serialized has to exactly match the ITypeSerializer.Type.   For example, if I have class B inherits from A, a serializer for A, and then attempt to serialize an instance of B, it appears as though it will not find the A serializer.
Ideally the serializer would locate the ITypeSerializer whose type IsAssignableFrom the runtime type being serialized, but has the highest specificity.  Obviously this would be slower than the current dictionary lookup, so would probably want to cache the resulting runtime-type->ITypeSerializer mapping.
Here's a very quick example of how you might find the serializer with the highest-specificity: https://dotnetfiddle.net/n3G7zI
For the following types:
public class A { }
public class B : A { }
public interface IInterface { }
public class C : IInterface { }
public class D : B, IInterface { }

With serializers for A, B, and IInterface, it should find these runtime-type => serializer mappings:
A => TypeSerializer for A
B => TypeSerializer for B
C => TypeSerializer for IInterface
D => TypeSerializer for B

Github removes it from the pull request thread when the comment is on the commit instead of the files tab, but I was able to see it the first time, thanks anyway.
Type serializers work on the assumption that for 1 CQL type there is one CLR type (1 to 1), regardless the inheritance.
By hashing it by type, we ensure that the lookup is O(1) operation, instead of Linq where that is a O(n) operation.

I was actually trying to point out that if I have a type A, with a serializer for it, and then a class B that inherits from A, the current implementation will not be able to locate the serializer.
Type B and type A have different hash codes, so they will use different serializers, regardless if B inherits from A.

Okay, as long as this is expected :)

lgtm :+1:

Merged.
Thanks @collinsauve and @landim for your input.


PSUseCompatibleCommands is not triggered

Before submitting a bug report:

Make sure you are able to repro it on the latest released version
Perform a quick search for existing issues to check if this bug has already been reported

Steps to reproduce
$settings = @{
    'ExcludeRules' = @('PSUseDeclaredVarsMoreThanAssignments', 'PSAvoidGlobalVars', 'PSAvoidUsingUsernameAndPasswordParams', 'PSAvoidUsingWMICmdlet', 'PSAvoidUsingPlainTextForPassword')
    'Rules'        = @{
        PSUseCompatibleCommmands = @{
            Enable = $true
            TargetProfiles = @(
                'ubuntu_x64_18.04_6.1.3_x64_4.0.30319.42000_core',
                'win-48_x64_10.0.17763.0_5.1.17763.316_x64_4.0.30319.42000_framework'
            )
        }
        PSUseCompatibleSyntax = @{
            Enable = $true
            TargetVersions = @(
                "6.0",
                "5.1"
            )
        }
    }
}

Set-Content .\tmpscript.ps1 -Value 'Get-NetConnectionProfile'
Invoke-ScriptAnalyzer -Path .\tmpscript.ps1 -Settings $settings

Expected behavior
The cmdlet Get-NetConnectionProfile (exemplary, our code contains several cmdlets not supported on Linux) should trigger the rule PSUseCompatibleCommands.

I noticed this behavior with e.g. this script: https://github.com/AutomatedLab/AutomatedLab/blob/develop/AutomatedLab/AutomatedLab.psm1
At first, I thought the length would be an issue, but even a single-line script does not violate the above settings.

Actual behavior
The script validates with 0 issues

If an unexpected error was thrown then please report the full error details using e.g. $error[0] | Select-Object *
Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.18362.145
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.18362.145
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.18.3
1.18.2
1.18.1

Ah, there's a typo in the configuration: PSUseCompatibleCommmands. Try:
$settings = @{
    Rules        = @{
        PSUseCompatibleCommands = @{
            Enable = $true
            TargetProfiles = @(
                'ubuntu_x64_18.04_6.1.3_x64_4.0.30319.42000_core',
                'win-48_x64_10.0.17763.0_5.1.17763.316_x64_4.0.30319.42000_framework'
            )
        }
        PSUseCompatibleSyntax = @{
            Enable = $true
            TargetVersions = @(
                "6.0",
                "5.1"
            )
        }
    }
}

That gives me:

RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
PSUseCompatibleCommands             Warning      tmpscript. 1     The command 'Get-NetConnectionProfile' is not available
                                                 ps1              by default in PowerShell version '6.1.3' on platform
                                                                  'Ubuntu 18.04.2 LTS'


Add an nginx reverse proxy to the docker container for enabling Brotli compression of outgoing responses

Reviewers
Functional:
Readability:

Changes

add
remove
modify

Working example: https://nginx-br-rdev-explorer.rdev.single-cell.czi.technology/d/964e6017-0c94-4948-846f-33dd3c67a7fb.cxg/


Change window size

Hello, first of all congrats! this is an amazing render lib.
I dont know how to change window size using entry.h functions (like in your example). I found 2 defines (ENTRY_DEFAULT_HEIGHT & ENTRY_DEFAULT_WIDTH). Is there any other form to change the size (without define uses). THX!!!!!!

Use entry::setWindowSize https://github.com/bkaradzic/bgfx/blob/master/examples/common/entry/entry.h#L253
But once you change window size, you'll have to resize your backbuffer with bgfx::reset.

I use entry::setWindowSize and bgfx::reset but it doesn't change my window size, I know I can change window size by draging corner of the window, but can I change it in code? setWindowSize doesn't seem right to me


documentation

how would we use this?

This is a good point, I will be updating the readme soon to give some examples, since when I made it, I didn't know what I wanted the API to look like, exactly.
The basic structure looks like this, though:
from kurt3.project import Project
with Project("project_file_name.sb3") as project:
    project.get_sprite_by_name("Sprite1").add_costume("test/projects/assets/Bread.svg", "Bread1")
    project.get_sprite_by_name("Sprite2").add_block(GoToXY(10, 10))
    project.save("output_file_name.sb3")

A good deal of features are still missing, such as support for most types of block. I am still thinking of a solution for certain problems I'm having with creating certain kinds of blocks, but hopefully I will be able to get some work done on the rest of the API soon. :) There is also no good way to add sprites to the project atm, so very sorry if you were planning on using it soon.

You may also gain some insight on how to use it by checking out what autocompletes you get from using it in an IDE. I've done my best to write documentation within the code itself, at least, so hopefully its purpose should be clear. The main methods you might use are probably on the Project class, or its property targets (represents the sprites and the stage). Many of the attributes on the different objects are also settable, for example a sprite's name.

Thank you! This'd be really helpfull for my mass audio uploader project I'm trying to make!


add passthrough option

Some applications need to let the user access paths regardless of JWT presence, but still decode and forward JWT claims upstream if a JWT is found.  This is helpful for public-facing applications with user logins, e.g. GitHub, Reddit, etc.
If passthrough is specified in a JWT block then instead of returning a 401, 403, or 303 for no JWT, the request will proceed as normal.

Can you explain a little more about this use case?How is this different than the except directive that selectively bypasses JWT verification for specified paths?
This seems to defeat the purpose of configuring this middleware at all, since you could get a passthrough by just omitting the JWT block in the Caddyfile.
When you talk about forwarding JWT claims, are you saying you want unverified claims to be passed as headers to the backend after being extracted from the token?
It would be great if you could also include a pull request for the readme that explains when/why you would use this with some examples using social logins so that it's more clear what the benefits/risks are.

To clarify, this is to allow Caddy to validate/forward JWT claims if present, but allow traffic to proceed normally even if no JWT is present.
This is useful for scenarios such as e.g. GitHub. If you imagine GitHub using Caddy+caddy-jwt, currently it would 401 anyone that visited any page except login. With passthrough, pages would still be reachable regardless of whether the user is logged in, but the application would also receive the decoded claims if they are found.
Certain paths could still be fully protected with a separate jwt block without the passthrough option enabled, such as in the GitHub example private repositories or pages only relevant to logged in users, such as profile settings.
Talking through it as above, I realize there is a risk that someone could include their own Token-Claim- headers to spoof a validated JWT, however that can be easily mitigated by stripping those from all requests before forwarding. Notably, this vulnerability is also in the existing codebase, though it would only work alongside a valid JWT and for claims not included in that JWT.
If this sounds good to you, I will add the passthrough documentation to the README and add a new commit to strip incoming token claim headers.

Ok that makes sense. Although it's kind of a bad idea to use JWT for that specific scenario because you need to maintain a blacklist to be able to log out.   But I can see how this might be useful for other scenarios.
I also need some tests added that verify it does indeed pass through, adds headers for a validated token, and strips malicious headers. This is mainly for regression testing as more bells and whistles are added.

@BTBurke anything else you'd like me to add or change?

My bad, should have looked at this a while ago. Can you just add a little to the readme that explains why/how to use the passthrough option?  Then it should be good to go.

Looks good. Thanks for the contribution.

Looking forward to using this, do you know when you'll be able to make a new release so it's available in Caddy?

My bad. I forgot to deploy it to the caddy build server. Will do that tonight.

@zikes Ok finally got around to it.  Sorry for the wait.  Should be good to go now in v2.5.0.

Thank you sir!


Event server

Closing this for inactivity. If anyone needs this feature, they're welcome to make it known down here and we'll be more than happy to assist in any way we can 🙃


Outdated Fdroid Package

Last update was 4 months ago..
Have u dropped F-droid Support ?

I do not maintain the Acode package on F-droid. I'll see if I can update the Acode package on F-droid. Thank you for reporting it.


A fix for the gui after the new_context() changes

This get 'compile-gui' compiling again on Linux/Windows, however I seem to have some issue still with no characters showing in the window, and input not seeming to work!? Do you get the same thing @tauraamui ?  Or do things work properly for you?
It is possible this is just an issue here as I run a non-standard setup on both Linux and Windows :)

It's not working for me either. :<

The GUI feature is very experimental and not very well looked after, the drawing API should be the same for TUI and GUI, both have equivalent target implementations but clearly some change somewhere has broken rendering of this entirely. I suspect it's probably the splash screens' fault. If you're curious I'd recommend amending Lilly to immediately open a buffer view of anything other than the splash screen.


add an extra custom analysis step

a common pattern is to have some custom filtering step that accommodates for the specifics of the project. For example, the user might want to filter out reads by mapq, pick only a certain directionality, remove short distance artifacts, etc.
We could introduce an extra filtering step which could be specified via a single filtering criterion that will be fed to pairsamtool select.
I would suggest making a final step in pairs processing, right before indexing.
@sergpolly, @nvictus , @mimakaev what do you think?

actually, an even better idea is to introduce a fully custom analysis step, where users could plug in their own code/tools before binning.
E.g. Max and his collaborators were interested in very custom pairs filtering, which they would do via a custom script - and it would be nice to provide this general functionality, even in a form of an extra flexible step

The recent idea was that we could get by just adding a simple ${pre_binning_scipt} in the bin_library_pairs process, so that we modify pairs on the fly, just for binning, without saving that intermediate pairs output.
Problem is, out binning is effectively a 2 process step: indexing and then bin_library_pairs.
So, the quick on-the-fly filtering might not solve it, since we need the extra-filtered pairs input both for indexing and for bin_library_pairs ...
So should we just introduce an additional fully-fledged filtering-process then? Any other ideas on how we could avoid this easily?

from the discussion:

keep normal nodups.pairs file as an output (filter_make_pairs process - untouched)
keep normal indexing (based on full pairs) anyhow (useful for other things, according to @golobor)
introduce optional custom filtering into binning step: (custom filtering, extra indexing and finally binning)

At the end of the pipeline output would be:
nodup.pairs - full without custom filtering step
nodups.pairs.index - based on full list of pairs
.cool - coolers based on custom filtered pairs (if custom filtering is activated)
pairs that are custom-filtered and corresponding index are not stored even in the intermediates.

@golobor Regarding local way to generate different filterings: it may nice not to generate .mcool files for some filters.
For example, we thought that we should save .mcool for MAPQ<30, but only save base resolution cooler for "no filtering" case.
Maybe we should generate two (or more) sub-sections for binning, that each can have its own resolutions, zoomify flag, balancing flags, etc.

Oh, I meant generate only base coolers for "no filtering", and generate zoomified coolers for MAPQ filter.


clean examples and jupyter documentation

In GitLab by @proyan on Feb 4, 2019, 13:13
This includes the loco3d example

In GitLab by @cmastalli on Feb 5, 2019, 23:57
I took a first action in the following PR: !90

In GitLab by @cmastalli on Feb 6, 2019, 15:37
mentioned in merge request !90

In GitLab by @cmastalli on Feb 6, 2019, 15:38
changed the description

In GitLab by @cmastalli on Feb 7, 2019, 16:16
I proposed the following actions:

Review the text in each Jupyter notebook.
Move all notebooks to example/ (instead of examples/notebooks)
Add a number to each notebook so users can go through a defined sequence.
Rename the notebooks with a more descriptive name, e.g loco3d -> bipedal_walking
Improve the visualization for the cartpole and unicycle problems (maybe based on gepetto-viewer?)
Put the solution of each notebook in NOTEBOOKNAME_sol.py files

@nmansard any feedback regarding this tentative modifications?

In GitLab by @nmansard on Feb 7, 2019, 17:15

I would prefer to keep the notebook folder
Not sure this is useful.

I think we should also make a test file for checking both the .ipynb and the *_sol.py files. Could you do that?

In GitLab by @cmastalli on Feb 7, 2019, 17:48
Thanks for the feedback. Yes, I could.

In GitLab by @cmastalli on Feb 12, 2019, 23:21
mentioned in merge request !100

In GitLab by @cmastalli on Feb 12, 2019, 23:25
In the PR !100 I worked a many of the discussed points.
It remains two main tasks:

Reviewing/improving/cleaning-up the manipulation examples/notebooks.
Improving the unicycle visualization.

Additionally I proposed to write a README file which guides the user through all the Jupyter notebooks.

In GitLab by @nmansard on Feb 18, 2019, 13:18
I believe example/talos_arm is not working. Could you check?

In GitLab by @cmastalli on Feb 18, 2019, 13:59
It was a wrong construction of the CallbackDisplay due to a change in its API. I found this issue in other examples and notebooks. I pushed a commit to the devel branch that quickly fix them.

In GitLab by @cmastalli on Feb 18, 2019, 15:47
I have to review new examples (jump, salto) and added the same policy for them.
@nmansard and @proyan if you include another example please do as follows:

Use describe title for the examples,
Add vast documentation of them, and
Include probably a notebook if there is a new feature.

In GitLab by @nmansard on Feb 21, 2019, 17:15
This is done. I close it.

In GitLab by @nmansard on Feb 21, 2019, 17:15
closed


Very important watch this as fast as u can. This is an issue to distuurb you

Issue
Pul rikuesta
disturba
sad Iyxan23 and jbk0 noises😂

why

Tu disturb u

wtf

Cringe


fixes for max ordering jump

This PR solves the case where the result of ScheduleAssumeMaxOrderingId could be ignored when the result from QueryOrderingIds is processed
(fixes #126)

@WellingR In this PR I also added documentation to try to explain what each piece is doing.
The code is not trivial and I found it quite challenging to following. So I added some explanations. There are some parts that become obsolete. I also tried to remove double negations. See my comments in the PR.

btw, I didn't add any extra test for this. The reason is that what it's fixing is invisible. When the 'jump' occurs, nothing bad happens. It only neutralises the work done by ScheduleAssumeMaxOrderingId


question about load checkpoint

hello, thanks for you excellent work first! i met some question when loading weights, there are so many unexpect keys as below, is this normal?

Hi，@menglongyue，it's normal in the training process. We load the pre-trained weights for encoder and decoder seperately. The unexpected keys in the log are the parameters of the encoder when loading weights for the decoder(MAEBoxHead).

@LiewFeng Thanks for you reply very much, i understand it now. another place i do not understand, how to devide foreground and background, could you please explain it?

@menglongyue For the base training of COCO in the few-shot setting, there are only 60 foreground classes and 1 background class, whhile for the finetuing, there are 80 foreground classes and 1 background class. Thus, when loading weights from the checkpoint of base training, we need to move the class weight of background to the last.

ok, i get it. Thank you very much!

@LiewFeng ok, i get it. Thank you very much!


Can the learning rate find by dp using one more gpu be used in ddp?

When using pytorch_lightning.tuner.lr_finder.lr_find, ddp have some error. So i change to dp using 4 gpus. Can the learning rate find by dp used by ddp? They have same gpu numbers.

I think the answer is no.
DP doesn't change your effective batch size while DDP does (in your case with one node and 4GPUs, the effective batch size is 4 times bigger with DDP). You can find more info about the effective batch size in the "multi-GPU" section of Lightning's documentation.
As a consequence of this, you should probably increase your learning rate. Rule of thumbs is to increase it linearly (so by 4) but there is more than just doing that. Have a look at that paper: https://arxiv.org/pdf/1706.02677.pdf

OK，thanks a lot.