Clock panel breaks inside the module

@mikhail-vl
Adding clock chart defaults in the module.  Here is the example.
This defaults in the console
Uncaught ReferenceError: myChart is not defined at eval (eval at <anonymous> (module.js:1:1), <anonymous>:206:3) eval @ VM4093:206
Which points to this line
myChart.setOption<echarts.EChartsOption>({
It is worth mentioning that the sample panel on eCharts site also has this code with <echarts.EChartsOption> which can be removed without any effect on the chart.
clock-panel.txt

@supportdesk-si Thank you for opening the issue. The expected function should return options for setOptions().
I agree that it was not clear and updated in the PR.
Please let me know if there is anything else.

@mikhail-vl
This might be more detailed:
Attached is a code in the panel. Very simple
Create new panel | select eCharts | paste the code into the panel | click away
Hands will position to the time of the computer and freeze.
Open console and check the errors.

Drill down to VMXXX:14 you will see the error there.

return {
  series: [
    {
      name: 'hour',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 12,
      splitNumber: 12,
      clockwise: true,
      axisLine: {
        show: false
      },
      axisLabel: {
        show: false
      },
      anchor: {
        show: false
      },
      pointer: {
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 5,
        length: '70%',
        offsetCenter: [0, '8%'],
        itemStyle: {
          color: 'rgba(0, 0, 0, 0.9)'
        }
      },
      detail: {
        show: false
      },
      data: [
        {
          value: hour
        }
      ]
    },
    {
      name: 'minute',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 60,
      clockwise: true,
      axisLine: {
        show: false
      },
      splitLine: {
        show: false
      },
      axisTick: {
        show: false
      },
      axisLabel: {
        show: false
      },
      pointer: {
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 5,
        length: '80%',
        offsetCenter: [0, '8%'],
        itemStyle: {
          color: 'rgba(0,0,0,0.9)',
        }
      },
      anchor: {
        show: false
      },
      detail: {
        show: false
      },
      title: {
        offsetCenter: ['0%', '-40%']
      },
      data: [
        {
          value: minute
        }
      ]
    },
    {
      name: 'second',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 60,
      animationEasingUpdate: 'bounceOut',
      clockwise: true,
      axisLine: {
        show: false
      },
      splitLine: {
        show: false
      },
      axisTick: {
        show: false
      },
      axisLabel: {
        show: false
      },
      pointer: {
        //  Seconds hand
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 2,
        length: '95%',
        offsetCenter: [0, '15%'],
        itemStyle: {
          color: 'rgba(255,0,0,0.9)',
          // shadowColor: 'rgba(0, 0, 0, 0.3)',
          // shadowBlur: 8,
          // shadowOffsetX: 2,
          // shadowOffsetY: 4
        }
      },
      anchor: {
        //  Seconds circle
        show: false,

      },
      detail: {
        show: false
      },
      title: {
        offsetCenter: ['0%', '-40%']
      },
      data: [
        {
          value: second
        }
      ]
    }
  ]

};

@supportdesk-si Thank you for clarification and testing the plugin. Execution of the setInterval with setOption inside was not supported in the original plugin and we wanted to keep backward compatibility.
I am looking to add setInterval logic used in a lot of example in the upcoming versions. Unfortunately, it's not supported at the moment.
The plugin supports a single setOption execution. As a workaround you can set Dashboard's refresh, but I understand it's not ideals.

To display the clock on our Demo server we used:
  var date = new Date();
  var second = date.getSeconds();
  var minute = date.getMinutes() + second / 60;
  var hour = (date.getHours() % 12) + minute / 60;

return {
  series: [
    {
      name: 'hour',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 12,
      splitNumber: 12,
      clockwise: true,
      axisLine: {
        lineStyle: {
          width: 15,
          color: [[1, 'rgba(0,0,0,0.7)']],
          shadowColor: 'rgba(0, 0, 0, 0.5)',
          shadowBlur: 15
        }
      },
      splitLine: {
        lineStyle: {
          shadowColor: 'rgba(0, 0, 0, 0.3)',
          shadowBlur: 3,
          shadowOffsetX: 1,
          shadowOffsetY: 2
        }
      },
      axisLabel: {
        fontSize: 30,
        distance: 25,
        formatter: function (value) {
          if (value === 0) {
            return '';
          }
          return value + '';
        }
      },
      anchor: {
        show: true,
        icon: 'path://M532.8,70.8C532.8,70.8,532.8,70.8,532.8,70.8L532.8,70.8C532.7,70.8,532.8,70.8,532.8,70.8z M456.1,49.6c-2.2-6.2-8.1-10.6-15-10.6h-37.5v10.6h37.5l0,0c2.9,0,5.3,2.4,5.3,5.3c0,2.9-2.4,5.3-5.3,5.3v0h-22.5c-1.5,0.1-3,0.4-4.3,0.9c-4.5,1.6-8.1,5.2-9.7,9.8c-0.6,1.7-0.9,3.4-0.9,5.3v16h10.6v-16l0,0l0,0c0-2.7,2.1-5,4.7-5.3h10.3l10.4,21.2h11.8l-10.4-21.2h0c6.9,0,12.8-4.4,15-10.6c0.6-1.7,0.9-3.5,0.9-5.3C457,53,456.7,51.2,456.1,49.6z M388.9,92.1h11.3L381,39h-3.6h-11.3L346.8,92v0h11.3l3.9-10.7h7.3h7.7l3.9-10.6h-7.7h-7.3l7.7-21.2v0L388.9,92.1z M301,38.9h-10.6v53.1H301V70.8h28.4l3.7-10.6H301V38.9zM333.2,38.9v10.6v10.7v31.9h10.6V38.9H333.2z M249.5,81.4L249.5,81.4L249.5,81.4c-2.9,0-5.3-2.4-5.3-5.3h0V54.9h0l0,0c0-2.9,2.4-5.3,5.3-5.3l0,0l0,0h33.6l3.9-10.6h-37.5c-1.9,0-3.6,0.3-5.3,0.9c-4.5,1.6-8.1,5.2-9.7,9.7c-0.6,1.7-0.9,3.5-0.9,5.3l0,0v21.3c0,1.9,0.3,3.6,0.9,5.3c1.6,4.5,5.2,8.1,9.7,9.7c1.7,0.6,3.5,0.9,5.3,0.9h33.6l3.9-10.6H249.5z M176.8,38.9v10.6h49.6l3.9-10.6H176.8z M192.7,81.4L192.7,81.4L192.7,81.4c-2.9,0-5.3-2.4-5.3-5.3l0,0v-5.3h38.9l3.9-10.6h-53.4v10.6v5.3l0,0c0,1.9,0.3,3.6,0.9,5.3c1.6,4.5,5.2,8.1,9.7,9.7c1.7,0.6,3.4,0.9,5.3,0.9h23.4h10.2l3.9-10.6l0,0H192.7z M460.1,38.9v10.6h21.4v42.5h10.6V49.6h17.5l3.8-10.6H460.1z M541.6,68.2c-0.2,0.1-0.4,0.3-0.7,0.4C541.1,68.4,541.4,68.3,541.6,68.2L541.6,68.2z M554.3,60.2h-21.6v0l0,0c-2.9,0-5.3-2.4-5.3-5.3c0-2.9,2.4-5.3,5.3-5.3l0,0l0,0h33.6l3.8-10.6h-37.5l0,0c-6.9,0-12.8,4.4-15,10.6c-0.6,1.7-0.9,3.5-0.9,5.3c0,1.9,0.3,3.7,0.9,5.3c2.2,6.2,8.1,10.6,15,10.6h21.6l0,0c2.9,0,5.3,2.4,5.3,5.3c0,2.9-2.4,5.3-5.3,5.3l0,0h-37.5v10.6h37.5c6.9,0,12.8-4.4,15-10.6c0.6-1.7,0.9-3.5,0.9-5.3c0-1.9-0.3-3.7-0.9-5.3C567.2,64.6,561.3,60.2,554.3,60.2z',
        showAbove: false,
        offsetCenter: [0, '-35%'],
        size: 120,
        keepAspect: true,
        itemStyle: {
          color: '#707177'
        }
      },
      pointer: {
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 12,
        length: '55%',
        offsetCenter: [0, '8%'],
        itemStyle: {
          color: '#C0911F',
          shadowColor: 'rgba(0, 0, 0, 0.3)',
          shadowBlur: 8,
          shadowOffsetX: 2,
          shadowOffsetY: 4
        }
      },
      detail: {
        show: false
      },
      title: {
        offsetCenter: [0, '30%']
      },
      data: [
        {
          value: hour
        }
      ]
    },
    {
      name: 'minute',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 60,
      clockwise: true,
      axisLine: {
        show: false
      },
      splitLine: {
        show: false
      },
      axisTick: {
        show: false
      },
      axisLabel: {
        show: false
      },
      pointer: {
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 8,
        length: '70%',
        offsetCenter: [0, '8%'],
        itemStyle: {
          color: '#C0911F',
          shadowColor: 'rgba(0, 0, 0, 0.3)',
          shadowBlur: 8,
          shadowOffsetX: 2,
          shadowOffsetY: 4
        }
      },
      anchor: {
        show: true,
        size: 20,
        showAbove: false,
        itemStyle: {
          borderWidth: 15,
          borderColor: '#C0911F',
          shadowColor: 'rgba(0, 0, 0, 0.3)',
          shadowBlur: 8,
          shadowOffsetX: 2,
          shadowOffsetY: 4
        }
      },
      detail: {
        show: false
      },
      title: {
        offsetCenter: ['0%', '-40%']
      },
      data: [
        {
          value: minute
        }
      ]
    },
    {
      name: 'second',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 60,
      animationEasingUpdate: 'bounceOut',
      clockwise: true,
      axisLine: {
        show: false
      },
      splitLine: {
        show: false
      },
      axisTick: {
        show: false
      },
      axisLabel: {
        show: false
      },
      pointer: {
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 4,
        length: '85%',
        offsetCenter: [0, '8%'],
        itemStyle: {
          color: '#C0911F',
          shadowColor: 'rgba(0, 0, 0, 0.3)',
          shadowBlur: 8,
          shadowOffsetX: 2,
          shadowOffsetY: 4
        }
      },
      anchor: {
        show: true,
        size: 15,
        showAbove: true,
        itemStyle: {
          color: '#C0911F',
          shadowColor: 'rgba(0, 0, 0, 0.3)',
          shadowBlur: 8,
          shadowOffsetX: 2,
          shadowOffsetY: 4
        }
      },
      detail: {
        show: false
      },
      title: {
        offsetCenter: ['0%', '-40%']
      },
      data: [
        {
          value: second
        }
      ]
    }
  ]
};

Backward compatibility is not working and it is not the plugin issue.  One if the changes in eCharts is the way the data is being formed.  Earlier version was using arrays to store pairs of values, new version is  using array of objects. So they moved from {[...],[...],[...]} format to [{...},{....},{...}]
This may not be a significant change but old setup will not work anyway.
If backward compatibility is required, the checkbox can be added to have new options active or inactive, then branch based on option selection.

We figured out how to animate the hands. Let us know if you want the code to be posted here.

@mikhail-vl
In order for hands to be animated, the panel has to have a global time vars that are updated on a periodic basis.  It's relatively trivial once you see it :)
Sending the entire, minimalist clock layout for "plug and play" eCharts is very flexible, styling can be applied to virtually all elements.  There is a "gap" second between 59 and 60 (or 0) when animation breaks. It breaks on official site as well.  We'll solve it later somehow.
var second = date.getSeconds();
var minute = date.getMinutes() + second / 60;
var hour = (date.getHours() % 12) + minute / 60;

function updateDial() {
  date = new Date();
  second = date.getSeconds();
  minute = date.getMinutes() + second / 60;
  hour = (date.getHours() % 12) + minute / 60;
  echartsInstance.setOption({
    series: [
      {
        name: 'hour',
        animation: hour !== 0,
        data: [{ value: hour }]
      },
      {
        name: 'minute',
        animation: minute !== 0,
        data: [{ value: minute }]
      },
      {
        name: 'second',
        animation: second !== 0,
        data: [{ value: second }]
      }
    ]
  });
}

setInterval(updateDial, 1000);

return {
  series: [

    {
      name: 'hour',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 12,
      splitNumber: 12,
      clockwise: true,

      pointer: {
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 5,
        length: '70%',
        offsetCenter: [0, '8%'],
        itemStyle: {
          color: 'rgba(0, 0, 0, 0.9)',
        }
      },
      detail: {
        show: false
      },

      data: [
        {
          value: hour
        }
      ],
    },
    {
      name: 'minute',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 60,
      clockwise: true,
      axisLine: {
        show: false
      },
      splitLine: {
        show: false
      },
      axisTick: {
        show: false
      },
      axisLabel: {
        show: false
      },
      pointer: {
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 5,
        length: '80%',
        offsetCenter: [0, '8%'],
        itemStyle: {
          color: 'rgba(0,0,0,0.9)'
        }
      },

      detail: {
        show: false
      },
      title: {
        offsetCenter: ['0%', '-40%']
      },
      data: [
        {
          value: minute
        }
      ]
    },
    {
      name: 'second',
      type: 'gauge',
      startAngle: 90,
      endAngle: -270,
      min: 0,
      max: 60,
      animationEasingUpdate: 'sinusoidalIn',
      clockwise: true,
      axisLine: {
        show: false
      },
      splitLine: {
        show: false
      },
      axisTick: {
        show: false
      },
      axisLabel: {
        show: false
      },
      pointer: {
        icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
        width: 2,
        length: '95%',
        offsetCenter: [0, '15%'],
        itemStyle: {
          color: 'rgba(255,0,0,0.9)'
        }
      },
      detail: {
        show: false
      },
      title: {
        offsetCenter: ['0%', '-40%']
      },
      data: [
        {
          value: second
        }
      ]
    }
  ]

};

grafanaData is not representative as data source can be any other plugin. myChart may also be too ambiguous.  Anyone can create a ref handle and use it in production. Internally we always use clean vars like data or sometimes bigData
Just 2 cents

@supportdesk-si Thank you for the feedback. I will think about it.
Please let me know if there is anything else.


Notifications center

System may offer a notification center that can be displayed as a simple panel.

Unless it's very specific, please use Cozy notification center.


Current stage again

@robertzk current_stage will return the furthest stage that had been executed. let me know if you want to rename this to something different. It can be misleading for something like the below.
> sr$run(
> env <- new.env()
> env$x <- 1
>
> sr <- stagerunner$new(env, list(
+     "add one"    = function(env) {env$x <- env$x + 1; env}
+   , "times two"  = function(env) {env$x <- env$x * 2; env}
+   , "times three"  = function(env) {env$x <- env$x * 3; env}
+   ))
> sr$run(verbose = T)
Running 1. add one...
Running 2. times two...
Running 3. times three...
> sr$current_stage()
[1] "3"
> sr$run(, '2', verbose = T)
Running 1. add one...
Running 2. times two...
> sr$current_stage()
[1] "3"

There might be confusion with current_stage being "most_recently_executed_stage" and "furtherest_stage_executed". I had meant to code the later. Let know if you want have a better idea for a name.

That's fine by me; thanks! See if you can submit a few tests in a follow up PR.

I'll merge when I get home.

Yup, will follow up with tests soon.


Add timezone command

Nice feature to have as well!

I've gotten some ideas to make this more useful:

By default running the command by itself shows up the top major time zones.
Each server the bot is in can set its own default.
!time <region> should show more time zones from the specified region.

!time asia should bring up more time zones within Asian region.

!time <country> should bring up more time zones within that country (if applicable).

I closed this issue without even implementing those suggested features, I'll reopen it until they're added in the bot.


[Update term] Continuous Delivery for En

1. Please describe why this term needs to be updated
Why this term needs to be updated? (briefly)

The last sentence of the Continuous Delivery  term says:
"Typically, trunk-based development is used in CD strategies as opposed to feature branching or pull requests"
It is highly unlikely that the reader knows what "trunk-based development" is, as he is reading the glossary to learn more about Continuous Delivery.
As this branching model is widely used in the cloud native space, I thought it would be a good idea to add this term to the glossary, but I saw that it was already proposed and rejected: https://github.com/cncf/glossary/issues/834

So I think we should update this term, either:

completly remove this sentence, as it's not necessary to understand what Continuous Delivery means, and it is confusing
or add a link to https://en.wikipedia.org/wiki/Branching_(version_control) to allow the reader to dig deeper if needed. (or another website, there is no "trunk-based development" page on wikipedia)

2. Checklist

[X] I understand that maintainers will confirm if the term should be updated. (Please be patient)
[X] I want to work on this suggestion and confirm that I meet the criteria as outlined in "who can contribute".. (If not checked, maintainers will assign another volunteer)

(Note)
Maintainers will assign a label after assessment procedure.
(from triage/awaiting to triage/accepted or triage/not accepted)
A contributor can be assigned to this issue after the issue get the triage/accepted label.
The assignee needs to check Style Guide.

@guillaumebernard84 the update has been accepted :) you can start working on it if you want :)

Hey @iamNoah1, Does it still need to be resolved?
I would like to work on this.

@guillaumebernard84 friendly ping. Otherwise @professorabhay could give it a go.

@guillaumebernard84 friendly ping. Otherwise @professorabhay could give it a go.

Hello @iamNoah1, I completely forgot this issue! I'll assign myself and create a PR!


⚠ Spryr has degraded performance

In 0545ece, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 5626 ms

Resolved: Spryr performance has improved in f5b07a9 after 11 minutes.


Use standard directories on Unix and Windows

Not sure what the coding style is, so if I made a mistake please tell me.

Now that I think about it, the tests might need to be changed to account for this too.

Fixed problems and rebased, tests should finish now.

Before we merge something like this I just want to check with @sindresorhus to see if he wants to support this directly in the user-home module.

That would probably be best fit for another module, isn't user-home only for getting the user home? It doesn't do anything else.

Sure, but it could expose a second property? If @sindresorhus doesn't want
to add this maybe you could cut a module that builds off his and upstream
it here?
On Jun 10, 2015 5:57 PM, "Oden"<EMAIL_ADDRESS>wrote:

That would probably be best fit for another module, isn't user-home only
for getting the user home? It doesn't do anything else.
—
Reply to this email directly or view it on GitHub
https://github.com/tkellen/js-v8flags/pull/21#issuecomment-110928749.

I already have a module for this:
https://github.com/sindresorhus/xdg-basedir#cache

I feel like adding two modules just to userHome || os.tmpdir() and path.join(userHome, '.cache') is a bit overkill.

Yeah, never mind the last suggestion, it's moot if you decide to use xdg-basedir.

@thesbros I did some digging about Windows, the standard cache directory would be path.join(userHome, 'AppData', 'Local'). Since xdg-basedir doesn't take this into account, I'm :+1: to integrating it directly. Happy to merge once we have windows equally accounted for!

Alright, done.

thanks @thesbros!

published as 2.0.6

Hmm, why was this reverted?
I finally tracked down what was creating the annoying ".v8flags.foo.bar.json" in my home directory to this package, saw that the issue was already solved by this PR in 2.0.6 (by nicely sticking it in the XDG cache dir) ... and then undone in 2.0.7. I can't figure out why from reading the commits and issues.

Seems it has to do with this. Don't know why it was completely reverted rather than just making it create the folder.

Yep, regressions abound were introduced.  It will probably be re-added when #29 is fixed.

@thesbros it was completely reverted because I was in the middle of a consulting project when this change blew up. I'd love a PR that fixes the underlying problem so we can restore this functionality.

Just went through the same hassle @tomxtobin, finally found the package doing this. ^^
So maybe #29 is fixed by #31 and then we could use standard directories! :raised_hands:
Also I'd use the env-paths module instead of writing the logic.

I'd happily take a PR for this if you're willing to be the front line for the inevitable fallout.
There are a fair few projects which depend on this:
https://www.npmjs.com/browse/depended/v8flags

I think I would be willing...
Especially if a major version bump is allowed. :)

No sindre modules. Sorry.

@phated are you serious or just joking?

Serious, I have a bunch of examples why not to but the basic rule is "don't"

Hmm that's a bummer, I used this module several times and helped with fixing a bug so implementing the logic another time here seems in vain. Since the whole module is only about 60 lines of code could you give it a chance/look?

@phated do you happen to have them written down somewhere?

Locking this.  It's not the place to discuss this.

@phated I think you're being a bit unreasonable here. If this functionality is something these folks want to add and they are willing to bear the responsibility of the impact, I see no reason to block them. @Siilwyn, please go ahead with your PR. If @phated is that hard-line about Sindre's modules, just inline the utility and the tests, the world will not explode because of the duplication.

One of the reasons to not use his modules is that he is systematically dropping node 0.10 support from his modules (in some cases just to use an arrow function that makes no sense). All the gulp dependency tree is going to support node 0.10 for quite some time so we won't be depending on his modules.
If you'd like to rewrite the code and give proper attribution to the original author or find a similar module, feel free to submit a PR.


feat: add refuel in proto and updatae kafka consumer configs

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


[Docs]Grouped frontend and token tutorials in a for-beginner folder in develop

What

Created a for-beginner folder and moved the frontend and token folder into it as suggested by Brendan

Why

Need to separate concern in tutorials for-beginners and Ethereum developers to enable an easy onboarding experience for both users.

Refs

Docs

I think we do not need to group them, but to create a new section, and add an index page in this new section.
I my mind I would like to write a beginner page, and this page will be like this:
tutorials index
The same tutorial can be in more than one index.
In my opinion, we need to have this kind of cross-references
I was talking about this with @alebanzas , Ale, what you think about it?

Yeah good idea, a separate index section would be implemented in the new
devportal UI. The for-beginner was just a temporal option but we could
implement this now so it's easier for the web development team.
On Thu, May 7, 2020 at 2:28 PM Solange Gueiros<EMAIL_ADDRESS>wrote:

I think we do not need to group them, but to create a new section, and add
an index page in this new section.
I my mind I would like to write a beginner page, and this page will be
like this:
tutorials index https://developers.rsk.co/tutorials/
The same tutorial can be in more than one index.
In my opinion, we need to have this kind of cross-references
I was talking about this with @alebanzas https://github.com/alebanzas ,
Ale, what you think about it?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/rsksmart/rsksmart.github.io/pull/294#issuecomment-625255339,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJTZB33URSEMJ7FPYNTTMADRQKZOFANCNFSM4M3EXKWA
.

And talking with @alebanzas , for now we can implement a new tag in tutorials, with difficulty levels.
Then the people can use the search field to find what is for beginners.

Closing this PR for now, with a view to reopen once structure of nav menu has been coordinated.


Crash File_Ac3::Core_Frame

Fix #505

Superseded by https://github.com/MediaArea/MediaInfoLib/pull/513.

Idea was good but I preferred to put some additions in the code at the same time.
Thanks.


[FORENG-4387] constrain Cython version to exclude known-buggy version 3.0.4

Addresses https://github.com/ihmeuw-msca/spmat/issues/15

I've decided to not increment the package version in order to save a change to flme which currently hard-pins to spmat==0.0.9 https://github.com/ihmeuw-msca/lme-for-forecast/blob/v0.1.0/pyproject.toml#L14.
If folks would prefer that I instead create a new version of this package, please let me know and I'll update it in the __about__.py (link).  Also let me know if I'll need to do anything else in order to update the package version.


take record type into account when determining ELBs

when detecting the type from the hostname, we have to take the recordType into account if it's set. This allows to pres switch between CNAME and ALIAS and allows ExternalDNS to work correctly when removing one for the other. It preserves the type which is required for deleting and updating records.

LGTM


Project Acoustics and Hololens 2

Hi, I saw the video from MR Dev Days 2020 covering Project Acoustics on Hololens, I was wondering if the current Project Acoustics will still work with the current version of the MRTK and whether it would be possible to have access to this demo project?
Thank you!

@cdor8 Thank you for your interest in Project Acoustics and for watching the MR Dev Days 2020 video.  While the demo project we showed did take advantage of MRTK, since then, PA, MRTK and Unity have been rapidly evolving and we haven't tested everything together since that presentation.  While we don't know of any particular issues, there have been challenges with getting the Newtonsoft dependency shared between these packages to work properly together.
As for sharing of the project, it's incredibly out of date and not really sharable from a sample perspective.  I think that probably the best approach would be for me to connect you with someone on the Mixed Reality developer support team.  If you can share your contact info, then I'll see what I can do to connect you with them.

Hi Noel,
Is there an email to where I can send you my contact details?

@cdor8 please send your contact information to<EMAIL_ADDRESS>and I'll connect you with the MR developer support team.  Thanks!


Add Android 7 WebView Browser Tester support

Android 7 emulators without Google Play Services doesnt have the Stock Browser or Chrome by default, it comes with WebView Browser Tester (chromium 51.x)
Added the package and activity to run tests over this browser, it works with chromedriver 2.23 or below, so it will work by setting a custom chromedriverExecutable, since appium-chromedriver current version is 2.26.

Please review @imurchie @mhan

We could check it like this;
let output = await driver.adb.shell('pm list packages');
let api = await driver.getApiLevel();
if (api === 24 && output.indexOf('package:com.google.android.gms') === -1) {
  // this is a android 7 without gms
}

what do you think @imurchie ?
Also, test are going to run only on avds ? Otherwise we should add another validation to verify it's running over an emulator.

Yeah. There should be examples in the tests of skipping tests for real devices. In the iOS tests we usually run with the environment variable REAL_DEVICE set to something truthy. The in the test code we can do `if (process.env.REAL_DEVICE) return this.skip();

Published in<EMAIL_ADDRESS>


[WFLY-16211] Fix AbstractJMSContextTestCase.java charset to UTF-8

Fixes https://issues.redhat.com/browse/WFLY-16211
Difference is visible in local git:
diff --git a/messaging-activemq/injection/src/test/java/org/wildfly/extension/messaging/activemq/deployment/injection/AbstractJMSContextTestCase.java b/messaging-activemq/injection/src/test/java/org/wildfly/extension/messaging/activemq/deployment/injection/AbstractJMSContextTestCase.java
index 2ff83ae35c..09900a0c32 100644
--- a/messaging-activemq/injection/src/test/java/org/wildfly/extension/messaging/activemq/deployment/injection/AbstractJMSContextTestCase.java
+++ b/messaging-activemq/injection/src/test/java/org/wildfly/extension/messaging/activemq/deployment/injection/AbstractJMSContextTestCase.java
@@ -42,7 +42,7 @@ import org.mockito.stubbing.Answer;
 /**
  * Test class for AbstractJMSContextTes.
  *
- * @author Fabio Nascimento Brand<E3>o (c) 2021 Red Hat inc.
+ * @author Fabio Nascimento Brandão (c) 2021 Red Hat inc.
  */

This PR should be ready to merge. Can someone review and merge it?


[Bug] FileWriter may produce one NPE per second

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache SkyWalking Component
Java Agent (apache/skywalking-java)
What happened
When Config.Logging.MAX_FILE_SIZE is smaller，fileOutputStream will be set to null.
But  LogFileWriter scheduled tasks are still executing ，fileOutputStream.flush()  will produce NPE ，Although it was captured

What you expected to happen
Expect not produce NPE
How to reproduce
Skywalking  version: 8.9.1
Skywalking-Java-Agent  version: 8.10.0
SpringBoot
Anything else
No response
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

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

Wait for your pull request.

Wait for your pull request.

I have submitted pr :  https://github.com/apache/skywalking-java/pull/205

The fix is good. I want to be clear, this bug is caused by fileOutputStream has been flushed and cleared when switching to a new file. So this bug doesn't relate to time(per second), more about reach the limit of file size.

The fix is good. I want to be clear, this bug is caused by fileOutputStream has been flushed and cleared when switching to a new file. So this bug doesn't relate to time(per second), more about reach the limit of file size.

Yes, it has little effect. It just seems a little strange


How to connect tp-link tl-wn722n (version 3) to device?

I have your custom kernel installed from magisk and my device supports otg but whenever i run "airmon-ng", it won't find the wifi adapter. Although, lsusb works and finds it. Any suggestions?

Amigo ya pudiste solucionar los drivers para tp-link wn722n v3.0 Ami no me la detecta

hi i have the same question.
when I type 'modprobe ath9k_htc'
it shows
modprrobe:Fatal: Module ath9k_htc not found in directory /lib/modules/4.14.117-perf+

@joldboy69 you need to built-in this driver into your smartphone kernel (https://github.com/aircrack-ng/rtl8188eus). There's an example, how to I built-in this driver to my smartphone kernel: https://github.com/drygdryg/android_kernel_xiaomi_msm8917/tree/951d32e3b15f7b73a97e0f5e555111fa27d41df7

As @drygdryg says, this module only provides firmware files used by a few adapters. The kernel should have the driver. XDA will probably have custom kernels for your device.

probably dublicate of https://github.com/rithvikvibhu/nh-magisk-wifi-firmware/issues/76


The decorator admin.register not work anymore using AdminPlus

Tested usign Django 1.8. Classes registered with decorator are not shown anymore.

Same in 1.7, Workaround:
Instead of @admin.register(Model) use @admin.register(Model, site=admin.site)

I do not care about my applications as both third-party applications. This module can not be used in Django 1.7+.

v0.4 (out now) should fix this. Please open new issues if it doesn't!


Implement support for three-dimensional input data

Using three-dimensional input data from full radar volumes (instead of lowest-angle PPI or a low-level CAPPI) for extrapolation-based nowcasting is showing great promise. A number of papers have already been published about this. Therefore, it would be highly useful to implement support for three-dimensional input data into pysteps. There are several interesting ideas that could be implemented:

Computation of the vertically integrated liquid (VIL), which results into a two-dimensional field. This can be easily implemented into pysteps. However, an estimate for the freezing level height is needed for this. Also, if the VIL is used as the forecast variable, it needs to be converted into an estimate of surface rain rate. This can be done by simple linear regression.
Extension of advection field estimation into three dimensions. As far as I know, the OpenCV implementation of Lucas-Kanade does not support three-dimensional inputs, and a custom version needs to be implemented from scratch. For the other optical flow methods, the extension should be straightforward.
Extension of the cascade decomposition and the autoregressive model into three dimensions. A vector autoregressive (VAR) model, where the rain rate/reflectivity at each altitude level is a separate variable, could also be tried.
Three-dimensional noise generators.

What do you think?

Hi Seppo
This sounds all very exciting and would represent an excellent contribution to pysteps!
Similar developments are also being explored in machine learning approches to nowcasting (eg. this paper from Tran and Song).
Concerning point 1, I'm not sure how this fits within pysteps: computing the VIL is somewhat equivalent to computing the QPE field, as it represents a 2d analysis field from volumetric radar observations. In this sense, I would not consider it within the scope of pystpes. The 2d field of VIL can already be used for nowcasting with the current pysteps routines.
Concerning point 2, it is true that the OpenCV LK implementation does not support 3d arrays, but I don't think that it will be necessary to support 3d inputs in all the optical flow methods. Clearly, it would be interesting to implement a custom version of LK which supports it, but this should not slow down the rest of the developments.
Point 3 is really interesting and relates to #115. Maybe we should add a new nowcasting method instead of trying to include this idea as an option in the existing STEPS routine (in the same way SSEPS represents the localization of STEPS).
Point 4 is fairly straightforward for the non-parametric generator (assuming a regular spacing in the vertical dimension, too). The parametric generator currently will assume the same resolution on all dimensions, but this won't be difficult to generalize, I assume.
We should also think whether the pysteps.utils routines can ingest volumetric arrays, but my guess is that in most cases this is already possible.
Just one general concern: there are now quite a number of important developments still open (e.g. #115 for advanced AR models, including the use of an ARI model for STEPS, #78 for the spectral implementation and #12 for the xarray support). Perhaps it could be wise to complete those before opening yet another new large development?
What do you think?

Hi,
Thanks for your insightful comments. I have been thinking this a little bit more and came up with the following.
Point 1: I completely agree that computation of the VIL should be kept outside pysteps. I just wanted to point out that if you have reflectivity interpolated to a 3d grid, computation of the VIL is trivial to implement.
Point 2: Computation of a 3d advection field is an interesting idea but probably not very practical. In my opinion, the best approach is to model the horizontal advection and the vertical evolution separately to keep the computational requirements reasonable.
Point 3: Yes, this should be implemented in a separate module. In fact, I have already done this. The new method is called autoregressive nowcasting using VIL (ANVIL). The paper has been submitted to IEEE TGRS, and I will implement ANVIL to pysteps in the near future.
Finally, I agree that this issue should be addressed after the ones you mentioned have been completed.


Create new FAQ topic

Hi!
Now I'm working at commercial project with NuxtJS and I have met a very unhandy issue: site crashes at iOS Safari. I have spent several days trying to resolve this problem, and finally I have found the thing that broked down the whole site - it was a small phone number in the footer. What a suprise, mobile Safari turns all phone numbers it found into a link, like +7 (982) 536-50-77 renders into +7 (982) 536-50-77.
I even create an small and useless gist with componet for super lazy coders:
https://gist.github.com/queses/8b008a8b6f7b470cb0a8c5e1788d8c63
I believe it would be great, if you will create the FAQ topic with explanation of this very unoblivious problem.
With best regards!
Maxim Kobozev

@queses Which iOS version are you using? I can't reproduce this problem. But if it really exists, we may track/fix original problem in Vue SSR engine.
Also thanks for reporting :)


Issue getting Withings Token

Afdter running the URL described in the Docker setup and logging in into Withings Account, I get this error message
{"errors":[{"message":"redirect_uri_mismatch: The redirect URI provided is missing or does not match partner callback url"}]}
I tried this in two different browsers.
Is this a withings topic?

Same here... :(

The Issue is from pre-fixing Auth issues. And for a week there was no activity. So I going to close this one. Feel free to reopen if the error persists.

Hi @Kachelkaiser and @MPHeinz can I ask you to retest? Docker images are now at a new location and some PR were merged.
docker pull ghcr.io/jaroslawhartman/withings-sync:master

Hi @longstone, Sorry I was unavailable. Thanks for the fix. Will test it.

Hi @longstone
Sorry for the late answer. I tried it today using your new Docker link, but I got the same error  message.
Any ideas?

@Kachelkaiser unfortunately not - if you have done a clean startup and registration, I see no point in why the error could occur.


E2E regression with Taxi is not rendering on github

When I click here I see

Thanks @nhirschey. We'll look into it.

https://github.com/dotnet/csharp-notebooks/pull/61


Ancestry Patches

Various patches to ancestry to help with performance of miq_request_workflow.rb.  Will eventually work them into the main project, but for now, this is the best way to introduce the changes without needing to bump the version of ancestry in the process.
Benchmarks
The benchmark script used here basically runs the following:
ManageIQ::Providers::Vmware::InfraManager::ProvisionWorkflow.new.init_from_dialog

And is targeting a fairly large EMS, with about 600 hosts.

ms
queries
rows

before
15023
1961
48395

after
13727
1961
48395

Before                                                     After
------                                                     -----

Total allocated:<PHONE_NUMBER> bytes (23226536 objects)   |   Total allocated:<PHONE_NUMBER> bytes (22893961 objects)
                                                       |
allocated objects by gem                               |   allocated objects by gem
-----------------------------------                    |   -----------------------------------
   9665227  pending                                    |      9665227  pending
   5561668  manageiq/app                               |      5561669  manageiq/app
   3513258  manageiq/lib                               |      3581556  manageiq/lib
   2512007  activerecord-5.0.7                         |      2494275  activerecord-5.0.7
    861270  activesupport-5.0.7                        |       861287  activesupport-5.0.7
    418737  ancestry-2.2.2  <<<<<<<<<<                 |       278793  activemodel-5.0.7
    278793  activemodel-5.0.7                          |       178419  ruby-2.3.3/lib
    178419  ruby-2.3.3/lib                             |       165577  arel-7.1.4
    165577  arel-7.1.4                                 |        52875  manageiq-providers-vmware-0be2f13a0dc9
     52875  manageiq-providers-vmware-0be2f13a0dc9     |        35578  ancestry-2.2.2  <<<<<<<<<<
     14424  fast_gettext-1.2.0                         |        14424  fast_gettext-1.2.0
       ...                                             |          ...

Note:  The benchmarks for this change do NOT include the changes from other PRs (https://github.com/ManageIQ/manageiq/pull/17354 for example).  Benchmarks of all changes can be found here.
Links

Partially addresses https://bugzilla.redhat.com/show_bug.cgi?id=1569626
Full collection of proposed changes: git compare
Document keeping track of overall improvements for this effort:  gist
Related PRs:

https://github.com/ManageIQ/manageiq/pull/17354

Extracted PRs: https://github.com/ManageIQ/manageiq/pull/17457, https://github.com/ManageIQ/manageiq/pull/17460, https://github.com/ManageIQ/manageiq/pull/17461

https://github.com/ManageIQ/manageiq/pull/17355
https://github.com/ManageIQ/manageiq/pull/17357
https://github.com/ManageIQ/manageiq/pull/17358
https://github.com/ManageIQ/manageiq/pull/17359
https://github.com/ManageIQ/manageiq/pull/17381
https://github.com/ManageIQ/manageiq/pull/17402
https://github.com/ManageIQ/manageiq/pull/17403

Looking into the test failures on this one.  Unsure what the issue is.

Failure is due to the memoization of @ancestor_ids and changing the ancestor location.  Looking into a way of making still work, but might have to remove it.
Thank god for the tests around that though...

@miq-bot assign @kbrock
@miq-bot add_label performance

@miq-bot add_label fine/yes, gaprindashvili/yes

^ I see the above labels as possibly debatable.  I can work with whoever is needed on deciding what we want to and not want to backport from this PR.

@ZitaNemeckova Thanks!
I will look into that then, and also update the description regarding your fix for master/gaprindashvili.

If it helps this line is the problem.

@NickLaMuro Tracked down failing tests in https://github.com/ManageIQ/manageiq-automation_engine#manageiq-automation-engine to this PR.
Tests started failing here:  https://travis-ci.org/ManageIQ/manageiq-automation_engine/jobs/385973677
Any help would be appreciated.
cc @mkanoor

Sorry about that... taking a look now.

Correction to @ZitaNemeckova 's link, I believe that this line is what is what was causing the issue (made it a permalink instead of pointing to master).

Figured it out!  Patch to fix incoming.

https://github.com/ManageIQ/manageiq/pull/17511

Tests are passing locally for me with this change in place.  Thanks @NickLaMuro.  👍

Fine backport details:
$ git log -1
commit f92ee1f15fd14b953aeed3ff8aaf73a29723000e
Author: Keenan Brock<EMAIL_ADDRESS>Date:   Wed May 30 14:46:15 2018 -0400

    Merge pull request #17360 from NickLaMuro/ancestry_patches

    Ancestry Patches
    (cherry picked from commit 095f4dce436fa9f9fdedca852b53c55c5f6cb6e0)

    https://bugzilla.redhat.com/show_bug.cgi?id=1593798

Gaprindashvili backport details:
$ git log -1
commit 065dd8dd25ab563b831188b30515de233634eba8
Author: Keenan Brock<EMAIL_ADDRESS>Date:   Wed May 30 14:46:15 2018 -0400

    Merge pull request #17360 from NickLaMuro/ancestry_patches

    Ancestry Patches
    (cherry picked from commit 095f4dce436fa9f9fdedca852b53c55c5f6cb6e0)

    https://bugzilla.redhat.com/show_bug.cgi?id=1593797


Implementation ("porting") parity between different implementations

Do we need or want to maintain an implementation parity between different language versions?
This comes from a discussion at https://github.com/decentralized-identity/did-common-dotnet/issues/2#issuecomment-782704336. In this particular case do we need a regex borrowed from a Java implementation if it were possible to use Uri?
Maybe one issue to consider is security implications of regexes, maybe there are cases on maintainability and developer familiriaty.
I do think we should provide simple functions to check validity of varioud DID constructors, such as DIDs, and they may make use of regexes where warranted (like checking allowed range of characters as per spec if it's the best way). The functions could perhaps return ValidationResult objects and so where making sense, a function like CheckAll could be provided that combines other checks. This likely warrants an issue for discussion on its own. This idea may preclude idea on inheritance hierarchies, https://github.com/decentralized-identity/did-common-dotnet/pull/4 moved away from those, though.

I don't believe straight ports are required, but ideally overall structure of implementations so documentation can be reused.
Parity between implementations will be ideal in some scenarios might be key in this earlier stages as it will validate test cases and will be easier to correct areas as the spec grows.
.Net is in a losing end here (as usual) as there is lots to catch up to have a complete implementation. If things are architected correctly later on an easy replacement can happen when is necessary.
Regarding the Uri. The implementation of Regex is not from the Java implementation as they use abnf format.   System.Uri is a complete different set and may bring other issues in the future. Hijacking a class that is not meant to do this specifc work it might a waste of time as the spec may end up changing. In the future that can be discussed.
Inheritance might be necessary as we might have seen on Format or it will required for the ExtendedAttributes, as usual pick your best pattern as needed.

Well, as I wrote there

DID syntax specification tells it conforms to RFC3986 (see at https://tools.ietf.org/html/rfc3986). So one idea could be to use .NET Uri to parse the examples like from https://www.w3.org/TR/did-core/#example-7

Is this not the case for Uri? I do not know why Java implementation use Regex derived from ABNF and not something similar to Uri. If the reason is that Uri is restricted further, one option then is to layer those restrictions on top of Uri. This not a hill I need to die on, but I feel we need to quantify the case in conrete terms and it appears this leaks to the discussion to port more directly or not. That is to say

System.Uri is a complete different set and may bring other issues in the future.

does not look "a complete different set" to me and it looks to me regexes bring potential security and performance issues on that maybe need recording if nothing else.
This is a more general point to .NET and not to Uri specifically: I'd rather read the specification and implement it and test it can (de)serialize documents provided by others rather than to read other implementation with idea of porting them. It seems more work to me to first read Java and try to re-recreate it so .NET implementation looks like Java or is constructured otherwise very similarily I think ".NET like Java" could deter contributors (it would me).
The merged spike is already fairly different and I don't see alternatives so I am not sure if I understand correctly the wider case of moving closer to Java. The spike considers inheritance as an extension point already. It's possible and planned to inherit from DidDocument if named attributes is needed and wanted. One another extension point is JsonExtensionData that catch attributes that are not in DID Core specification. It may very well be that one receives DID documents that extend Core and doesn't want to throw at deserialization point (or serialize fairly straightforwardly).
Maybe I open an issue for discussion about this extension later today.

Ok testing the Uri vs custom it does not work exactly at all. you can validate this in the unit test. Actually I was pretty excited after looking at in the deserialisation of json in the Service.

    [Fact]
        public void ShouldParseDidUrlFull()
        {
            var didUrl = DidUrlParser.Parse("did:example:test:21tDAKCERh95uGgKbJNHYp;service=agent;foo:bar=high/some/path?foo=bar#key1");

            Assert.Equal("agent", didUrl.Params["service"]);
            Assert.Equal("high", didUrl.Params["foo:bar"]);
            Assert.Equal("example", didUrl.Method);
            Assert.Equal("test:21tDAKCERh95uGgKbJNHYp", didUrl.Id);
            Assert.Equal("/some/path", didUrl.Path);
            Assert.Equal("key1", didUrl.Fragment);
            Assert.Equal("foo=bar", didUrl.Query);
            Assert.Equal("did:example:test:21tDAKCERh95uGgKbJNHYp;service=agent;foo:bar=high/some/path?foo=bar#key1", didUrl.Url);

            var uri = new Uri(
                "did:example:test:21tDAKCERh95uGgKbJNHYp;service=agent;foo:bar=high/some/path?foo=bar#key1");
        }

OK, good example. The merged spike does not have yet code for extracting the values.
What currently happens that strings that should conform to RFC3986 are serialized to Uri. If that succeeds, the serializer does not throw, then it's probably fairly sure it's a correctly formed URI (as far as I know, Uri is hardened). I don't have deep feelings about this, but it addresses at least this particular concern.
I don't know if there is a benefit to change RFC3986 URIs to strings in the model, if not, in your example it would be var didUrl = DidUrlParser.Parse(new Uri("did:example:test:21tDAKCERh95uGgKbJNHYp;service=agent;foo:bar=high/some/path?foo=bar#key1").OriginalString); from on top of my head. Here new Uri(...) is just a a device to show code, since it comes from serialized data, it's currently in Uri type.
So we need code in any case.
I don't know about internals, but maybe end-user facing could be something like
var service = GetService(new Uri("did:example:test:21tDAKCERh95uGgKbJNHYp;service=agent;foo:bar=high/some/path?foo=bar#key1").OriginalString);)
that then internally does it however it does. Here again I used this new Uri to just mimick conceptually the already serialized Uri in a type.
Maybe this is better discussd in a separate issue or a PR.

Yes looking at the current spec, it does not enforce many areas to keep the URI compatibility, but those extensions will be the ones that users want. Although thinking about it now I also get your concern about security too, so back to the original comment if Uri is a better solution due to security although some code needs to be added to parse specific areas, that will be a good feedback to the other implementations. Mainly can the id / method or whatever be hijacked.. or force to be parse incorrectly after signing to route in another way.. random thought.

@juanfranblanco I try to be clearer, I think we need some code to extract values from Uri even if it is used as a storage, to so to speak. We know that the URI should be well formed, no shenigans, if Uri can parse it. Then it should be safer to use regexes on it as a whole or to fractions of it, however we come up with concrete implementation. One easy way come up with implementation I think is to have nicely named function, link to the specification in its documentation (e.g. GetService) and internally use that code you show to extract service part from the URI. One way of seeing this. There may be others, but maybe those other people chime in years from now and see this discussion and have a clue why things are how they are.


Rule name logging in "apscheduler.executors.default"

Hi,
Currently the EA logging only the " INFO apscheduler.executors.default Job "ElastAlerter.handle_rule_execution ..." not the real rule name.
With this small patch:
--- elastalert.py.orig  2020-05-13 11:37:55.266734958 +0200
+++ elastalert.py       2020-05-13 11:38:01.493806209 +0200
@@ -1030,6 +1030,7 @@
                                      args=[new_rule],
                                      seconds=new_rule['run_every'].total_seconds(),
                                      id=new_rule['name'],
+                                     name=new_rule['name'],
                                      max_instances=1,
                                      jitter=5)
         job.modify(next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=random.randint(0, 15)))

will be logging the used/real logname. This is very userfull for statistics and debugging.

Yelp/elastalert is no longer maintained. Please use jertel/elastalert2.
https://github.com/jertel/elastalert2


Simplify verification landing page

This closes two phishing loopholes:
https://hackerone.com/reports/117187
https://hackerone.com/reports/156542

Rebased on master post-#4347, was 012ce92f7ebad75c6b7f229e8531b34c28944066.

Self-merged per https://github.com/gratipay/gratipay.com/pull/4305#issuecomment-286796283 and https://github.com/gratipay/gratipay.com/pull/4360#issuecomment-287064268.


TimeSpan.FromMilliseconds(TimeSpan.MaxValue.TotalMilliseconds) exception

fixes #3137
There is a committed pull request in coreclr: dotnet/coreclr#10352.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Thanks!

Working on the unit tests for modified TimeSpan I found a huge flaw in my fix. I got into the kid's trap with the overflow check. Existing unit tests do not cover it:
With my fix the TimeSpan.FromMilliseconds(922337203685477.62) gives incorrect result.
Please do revert the change that I've made. I will have to work on the issue further and enhance the unit tests before I resubmit the PR.


"Use Equipped" count showing "-1" on Traveller

Also, the UI for the equip location selection should be "LocationKey" based, and not "CharacterKey". This will resolve having multiple travelers that show up in this UI:


Find a replacement for TestConfiguration.cs

The acceptance tests rely on TestConfiguration to get the path to the configuration file used by the tests. This causes a couple of problems...

The build configuration is hard-coded to debug
It currently fails if you are using osx.10.12-x64.

We should be able to replace this with dynamic code that calculates the config file path dynamically. Surely we can do something like
using System.IO;

\\...

return Path.Combine(Directory.GetCurrentDirectory(), "configuration.json");

@binarymash yeh I don't even know why i did this.
I've changed it on the branch I'm working on at the moment.


Issue on appveyor - fluid_flow

As mentioned by @rodrigomoliveira1, we are having the following issue on appveyor:
================================== FAILURES ===================================
_______________________ test_stiffness_matrix_numerical _______________________
    def test_stiffness_matrix_numerical():
        """
        This function instantiate a bearing using the fluid flow class and test if it matches the
        expected results for the stiffness matrix based on Friswell's book formulas, given the
        eccentricity ratio.
        Taken from chapter 5, page 179 (Dynamics of rotating machine, FRISSWELL)
        """
        bearing = fluid_flow_short_eccentricity()
        bearing.calculate_pressure_matrix_numerical()
        kxx, kxy, kyx, kyy = calculate_stiffness_matrix(bearing)
        k_xx, k_xy, k_yx, k_yy = calculate_analytical_stiffness_matrix(bearing.load,
                                                                       bearing.eccentricity_ratio,
                                                                       bearing.radial_clearance)
>       assert_allclose(kxx, k_xx, rtol=0.03)
E       AssertionError:
E       Not equal to tolerance rtol=0.03, atol=0
E
E       Mismatch: 100%
E       Max absolute difference: 1832798.36965361
E       Max relative difference: 3.78983434
E        x: array(-1349189.270584)
E        y: array(483609.09907)
tests\test_fluid_flow.py:106: AssertionError

The problem is that this error does not occur on all builds. I have taken this example from here.

Hi there!
I have marked this issue as stale because it has not had activity for 45 days.
Consider the following options:

If the issue refers to a large task, break it in smaller issues that can be solved in
less than 45 days;
Label the issue as wontfix or wontfix for now and close it.


parameter suggestion in .NET class constructors escapes within lambdas

Describe the bug
parameter name suggestion in .NET class constructors escapes one level up within lamdas

VS

Steps to reproduce
above steps to reproduce
Link to sample reproduction

Expected behaviour
the parameter name is displayed next to the right function, in this case Thread.Sleep constructor
Screenshots

Machine info

OS: Mac-os
.NET SDK version: 6
Ionide version: 7.15.2

Additional context
this feature was recently introduced, so it's a corner case. but would love to help solve it :)

Thanks for the report! I'd start investigating this by adding a test to the existing method-based tests, and then debug into the implementation of the feature to see where the bad range is being created/detected. All of this will be entirely in FsAutoComplete, not Ionide, and so should be easy to test in a local Ionide instance as well - if you build FSAC you can use the FSharp.fsac.netcoreDllPath setting to point to the just-built fsautocomplete.dll and reload Ionide - then it'll use the version you just built.


Prepare 0.8.0-rc.1

Second release candidate of the 0.8 series

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-85.0%) to 0.0%

Totals

Change from base Build 06ac9770b45f74eaa152ef10aa1ea113204f1b4a:
-85.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls


make userscript run at document start

Whoops, I forgot to commit this. This should go on pull request #24

no problem


add object-property-newline rule

http://eslint.org/docs/rules/object-property-newline
I think it's a good change. It will require object literals with more than one key to be multi-line. This is beneficial for both readability and diffs.
Thoughts?

// @kevva @SamVerschueren @jamestalmage @vdemedes

I agree that newlines make it a lot more readable. But when passing options directly to a function, I tend to write them on one line.
foo('bar', {hello: 'world', foo: 'bar'}).then(() => {

});

Instead of
foo('bar', {
    hello: 'world',
    foo: 'bar'
}).then(() => {

});

But then it might be better to create an options object first.

Does it make an exception for enhanced object literal properties?:
let hello = 'world';
let foo = 'bar';
foo('bar', {hello, foo});

I agree that newlines make it a lot more readable. But when passing options directly to a function, I tend to write them on one line.

Depends for me. In tests i tend to do that, but not elsewhere.

Does it make an exception for enhanced object literal properties?

Nope, doesn't seem like it.

I'd want an exception for objects containing only enhanced object literals.

Me too. Can you open an ESLint issue about it?

Done https://github.com/eslint/eslint/issues/6211.

Even more useful with latest Git (see the diff section): https://github.com/blog/2188-git-2-9-has-been-released


New config.py behaviour confusing

With the latest PyInfra release 1.6.3 and this config.py (in accordance to docs):
SUDO=True
REQUIRE_PACKAGES = []

I'm getting this error:
--> Loading config...
    file: /Users/mjm/Dropbox/Devel/ACHN/Swarmlet/infra/config.py
        Defining config variables directly is deprecated, please use `config.SUDO = True`.
--> pyinfra error: No deploy file: deploys/01_get_server_data.py
error: Recipe `get_droplet_data` failed on line 12 with exit code 1

However changing my config.py to:
config.SUDO=True
config.REQUIRE_PACKAGES = []

doesn't work either:
NameError: name 'config' is not defined

Sorry, I was wrong to assume that the error was caused by the deprecation warning. But it was my own doing.
you might consider updating the docs to warn people about the upcoming change. TIA

This was documented in the README here: https://github.com/Fizzadar/pyinfra/blob/current/CHANGELOG.md#v15. I do need to expand the documentation pages for this though as config is largely ignored.


Fix Terraform version check with CLI env vars

Fix passing command line arguments to Terraform using the TF_CLI_ARGS
environment variables1. Need to exclude those variables from the
version check.

Great, thank you! One more thing, could you pull in the latest from master? I can kick off tests after that.

@brikis98 Sure! Rebased.

Thanks! Kicking off tests now.

@brikis98 Looks like I didn't fmt my last commits. I updated. Can you kick them off again?

Yup!

https://github.com/gruntwork-io/terragrunt/releases/tag/v0.26.3

Thanks!


Run tests against nightly CLI bundles

This PR changes the integration tests of the CodeQL Action to also run against a recent nightly build of the CodeQL bundle. This should help catch compatibility issues arising from changes in the Action earlier.

There's actually already a nightly release up from the workflow's testing, but the PR check is failing because https://github.com/github/semmle-code/pull/39627 isn't merged yet I think. We'll have to wait for the next nightly build after that's merged before this can go in 🙂

I'm a little bit confused. This looks like it only runs the init action with the nightly CLI. Should we be running analyze as well?

I'm a little bit confused. This looks like it only runs the init action with the nightly CLI. Should we be running analyze as well?

The way these tests are setup is a little weird. We use the init action because it gets the CodeQL CLI and puts it on disk so we can print out the versions that we are going to be running with in the later step. Then, these all get put in the VERSIONS_JSON matrix and all the later tests are run with all the versions in there. I'm not a huge fan of this structure, but it didn't seem necessary to change it.


initial code layout for jekyll

Hi kam
Can you include the bug id in commit log?

and compile fail:
"[error] (gearpump-streaming/test:compile) Compilation failed
[error] Total time: 268 s, completed Nov 17, 2015 7:47:16 AM'
Looks like merge breaks the build.

This is odd since docs should not of touched this code
[error] /home/travis/build/gearpump/gearpump/streaming/src/test/scala/io/gearpump/streaming/dsl/StreamSpec.scala:68: not found: value parallism
[error]       groupBy(_._1, parallism = 2).
[error]                     ^

I'll redo the merge, perhaps I missed something. It may be delayed since I'm in OR tomorrow.

Resubmitted PR

+1.


Finite automata example

Example code for this article

@pivovarit Here is the PR for the article :D


No route to host error trying to pair via manual pin code using iOS chiptool (pairing with QR code works)

No route to host error trying to pair via manual pin code using iOS chiptool (pairing with QR code works)
SHA:  8da5d03a6e97822241bf24b7ef677d9d0cb76866

Launch iOS chiptool, enter manual pin code to pair M5 board (all clusters app) eg. Manual pairing code: [34970112332]

Seeing failures to start pairing due to no route to host - 5 out of 5 with pin code:
022-03-29 09:19:46.005446-0700  localhost CHIPTool[2831]: (CHIP) [com.zigbee.chip:all] ð¢ [1648570786005] [2831:119167] CHIP: [SC] Assigned local session key ID 3
2022-03-29 09:19:46.005472-0700  localhost CHIPTool[2831]: (CHIP) [com.zigbee.chip:all] ð¢ [1648570786005] [2831:119167] CHIP: [SC] Including MRP parameters in PBKDF param request
2022-03-29 09:19:46.005511-0700  localhost CHIPTool[2831]: (CHIP) [com.zigbee.chip:all] ðµ [1648570786005] [2831:119167] CHIP: [IN] Prepared unauthenticated message 0x10e820a68 to 0x0000000000000000 (0)  of type 0x20 and protocolId (0, 0) on exchange 17046i with MessageCounter:3991312790.
2022-03-29 09:19:46.005534-0700  localhost CHIPTool[2831]: (CHIP) [com.zigbee.chip:all] ðµ [1648570786005] [2831:119167] CHIP: [IN] Sending unauthenticated msg 0x10e820a68 with MessageCounter:3991312790 to 0x0000000000000000 at monotonic time: 0000017FD679E0D5 msec
2022-03-29 09:19:46.005630-0700  localhost CHIPTool[2831]: (CHIP) [com.zigbee.chip:all] ð´ [1648570786005] [2831:119167] CHIP: [-] ../../../../../../../../../../../connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:417: OS Error 0x02000041: No route to host at ../../../../../../../../../../../connectedhomeip/src/controller/SetUpCodePairer.cpp:
I'm able to scan the QR code right after and it successfully pairs

Have not seen this in a while


Move to organization

[x] Move to https://github.com/almin
[x] Move https://github.com/azu/almin-logger to also
[x] Rewrite package.json
[ ] Set logo #3

done


Improve TIO documentation

[ ] How-To's

[ ] #64
[ ] Merge 2 tables
[ ] Change full column to value
[ ] Apply a function

[ ] Explain terminology ("on", "where", etc) [terminology]

[ ] Consider easier to understand naming

[ ] Explain when data saved in db vs tossed after session (tmp) [state]
[ ] Explain where data is being stored / format (Julia df, database file, table, etc) [context]

Blocked by #66


Fix bug in RootSync ClusterRoleBinding cleanup

Without this fix, individual subjects were never removed when their RootSync was deleted. Cleanup only worked when all RootSyncs were deleted.

/lgtm
/approve


DEVCs

Parsing metadata taken directly off my Hero Black 10 and I have 710 DEVCs all from the same device. Are these supposed to be composed into a single key? Or do they serve another purpose all being separate?

These are just timed payloads, they technically could be all clumped into one, but that is not how video capture works.  Video is not one payload, audio is not one payload.  DEVC is just the first tag in a GPMF metadata payload.

@dnewman-gpsw is each instance of the DEVC a certain timed offset from the video start? I'm missing how I can determine which datapoint in the metadata payload is aligned for a particular timestamp of the video.

That is in MP4 index, each payload has a time, this is how video and audio sync is restored, same for metadata.  So every DEVC payload has a timestamp in the MP4 index.  For NTSC video captures, most GPMF payloads will have the timing 0, 1.001, 2.002 etc, to match the videos 29.97/59.94 timing, for each video keyframe there is a matching DEVC (GPMF payload).  For 30p video the metadata for the first 30 frames, are stored in the first GPMF payload (timing 0 to 1.001s.)  This is a simplified explanation of MP4 / MOV timing. Precision timing of each individual stream in GPMF is more complex. The time-stamps (STMP) for metadata describing each video frame, data like SHUT, EISO and CORI, are a way to bridge between the MP4/MOV domain and that of each GPMF stream. As the github readme explains (section GPMF Timing and Clocks), timing is hard with clocks that are independent, STMP is a the camera system clock, independent to video clock, indepentent to IMU clock, etc., but you can use the STMPs to content on all the timing to together for sub-frame, high precision. The only reason tools like ReelSteady can work, is precision timing can be extracted after capture.


Mysql quirk

Hey it's me again with another Mysql quirk,
This one I'm not sure if you did this intentionally or not but your table design for 'Permissions' you have
'world' and 'value' flags set that they must not be null (for when manually entering entries via 3rd party programs like Navicat)
Why I'm unsure of this is because when you run a command lets say for instance
in game / console

/pex group default add chatex.allowchat

/pex group Admin set rank 1

it enters the entry just fine, but if I'm adding a db entry by hand
those to example are null in the area's that you have marked as must not be null

id
name
type
permission
world
value

5
default
0
chatex.allowchat
null
null

6
Admin
0
rank
null
1

but when I submit a new entry that was not generated ingame it says 'field world does not have a default value' lol I can work around it by putting a 0 and then submitting that than removing the 0 and resubmitting the entry... lol.

Setting the default value to empty string alleviates this issue

Yeah, we use empty string instead of null in a lot of places -- I'm not sure why anymore, probably because nulls are weird in SQL


Beacon "bio-ontologies" searches should include their child_terms

Searches using bio-ontologies (well, as"filters") should search on all the children of a selected term (as in the search from the subsets selection; "OR").
The useFilteringTerms now already requests the child_terms format of the response:

${basePath}cgi/bycon/bin/collations.py?method=children&responseFormat=simplelist&${params}

@mbaudis: Could you check it out?

Doesn't work, I guess since w/o the OR value for filterLogic.
That is a bit of a conundrum since in principle there could than be other filters which we want as "and".
The clean way to do this would be to have the children derived at the backend, and totally to forget about them at the frontend ... This is something I'll have to do, I guess; but for now pls. just add the filterLogic=OR for this search type :-/

Can close this issue now ?


Multi Factor Authentication

TODO:

[ ] README
[ ] Dislcaimer
[ ] If you enroll a second factor and try to sign-in with email/password, it just fails with "Authentication failed" - does not go to the MultiFactorSignInActivity
[ ] The buttons are still unaligned

cc @morganchen12


Final or effectively final error only inside class

The insight came from the 2021S1 final paper. Just wondering it doesn't throw the error when it's a jshell line on it's own.

Hi! I think prof mentioned something like this in lecture 9, slide 10/11.
Basically, you can't mutate client-side states inside any local class. Lambdas and anonymous inner classes declared inside any method are local classes.
In your screenshot, when that line of code IntStream... is declared within the class X, we can see that s was previously declared int s = 0 before it's used in the lambda function x -> s++.
As the lambda x -> s++, a local class, references the s declared above enclosed within class X that isn't declared as final, it doesn't work out! Because local classes can only access variables that are explicitly declared final or effectively/implicitly final (i.e. one that doesn't change after initialization). In this case, the s isn't explicitly final and neither is it implicitly final cos the lambda increments s.
Whereas if you input the IntStream.... line as a single line in shell, there's no previous declaration of s so this error doesn't pop up.
So far this is what I understand haha but I might have interpreted it wrongly, please correct me if I'm wrong!

Hi! I think prof mentioned something like this in lecture 9, slide 10/11.
Basically, you can't mutate client-side states inside any local class. Lambdas and anonymous inner classes declared inside any method are local classes.
In your screenshot, when that line of code IntStream... is declared within the class X, we can see that s was previously declared int s = 0 before it's used in the lambda function x -> s++.
As the lambda x -> s++, a local class, references the s declared above enclosed within class X that isn't declared as final, it doesn't work out! Because local classes can only access variables that are explicitly declared final or effectively/implicitly final (i.e. one that doesn't change after initialization). In this case, the s isn't explicitly final and neither is it implicitly final cos the lambda increments s.
Whereas if you input the IntStream.... line as a single line in shell, there's no previous declaration of s so this error doesn't pop up.
So far this is what I understand haha but I might have interpreted it wrongly, please correct me if I'm wrong!

Thanks for the explanation! I actually forgot to include the line int s = 0 in the screenshot :D

Whelps hahaha
HMMMM I think the explanation kind of still applies? Lambda functions only require local variables to be declared as final or effectively final. The use of non- final/effectively final variables that aren't local variables is fine iirc. I'm assuming int s = 0 was declared as a separate line in jshell and not within a class with the IntStream line so if I'm not wrong it's not considered a local variable.
![Screenshot 2021-11-22 at 11 07 00 https://www.baeldung.com/java-lambda-effectively-final-local-variables

LGTM! My case is the global scope while your case is the nonlocal scope. Both are fine :)

Hi! I think prof mentioned something like this in lecture 9, slide 10/11. Basically, you can't mutate client-side states inside any local class. Lambdas and anonymous inner classes declared inside any method are local classes.
In your screenshot, when that line of code IntStream... is declared within the class X, we can see that s was previously declared int s = 0 before it's used in the lambda function x -> s++.
As the lambda x -> s++, a local class, references the s declared above enclosed within class X that isn't declared as final, it doesn't work out! Because local classes can only access variables that are explicitly declared final or effectively/implicitly final (i.e. one that doesn't change after initialization). In this case, the s isn't explicitly final and neither is it implicitly final cos the lambda increments s.
Whereas if you input the IntStream.... line as a single line in shell, there's no previous declaration of s so this error doesn't pop up.
So far this is what I understand haha but I might have interpreted it wrongly, please correct me if I'm wrong!

Also you are correct, this slide answers it.

Not closing this issue so others can see this too.