crash when resizing window

crate version: 0.13.0
Sometimes when I resize, the application crashes, reporting that the buffer size does not match the window size.  I tried to test various starting sizes and also various magnitudes, directions, and speeds of resizing and perhaps the speed of resizing matters but I can’t be sure.
This is reproducible in Linux, macOS and Windows using the menu example:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: UpdateFailed("Update failed because input buffer is too small. Required size for 1088 x 998 window (2x scale) is 1085824 bytes but the size of the input buffer has the size 921600 bytes")', src\libcore\result.rs:1084:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
error: process didn't exit successfully: `target\release\examples\menu.exe` (exit code: 101)

Interestingly, I also tried this on Linux in a VM and while I can reproduce the crash with a VM having a display size of 1280x1024, I cannot reproduce this when resizing the window within the confines of a display of 1024x768.

Hi. Yeah so I will start looking at these issues soon. I just been busy at doing other things so I haven't come around to do it. The reason why I haven't started yet is that I'm going to do some upfront work to prepare the windows backend for GPU support also. This comes in line with #93 as this has been requested in various places and requires work on all backends.
So right now I just haven't figured out exactly how I want to do all of that work yet.

Absolutely no worries at all. I appreciate the library. I just wanted a simple bitmap to screen library and behold there it was.

From: Daniel Collin<EMAIL_ADDRESS>Sent: Friday, October 18, 2019 2:01:21 PM
To: emoon/rust_minifb<EMAIL_ADDRESS>Cc: Alexander Nye<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [emoon/rust_minifb] crash on macOS on window resizing (#94)
Hi. Yeah so I will start looking at these issues soon. I just been busy at doing other things so I haven't come around to do it. The reason why I haven't started yet is that I'm going to do some upfront work to prepare the windows backend for GPU support also. This comes in line with #93https://github.com/emoon/rust_minifb/issues/93 as this has been requested in various places and requires work on all backends.
So right now I just haven't figured out exactly how I want to do all of that work yet.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/emoon/rust_minifb/issues/94?email_source=notifications&email_token=AKAQSR3XJWE4OZAPY6LVD7LQPIP2DA5CNFSM4JCMAW7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBV634Q#issuecomment-543944178, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKAQSR6ZN7XH75OGXXDW7IDQPIP2DANCNFSM4JCMAW7A.

Yeah that was always my goal with it. It has grown a bit since the initial release for sure :) I will have some time off work in a few weeks and then I will work on a few things and set up some goal to take it to 1.0

Alright, I've tested on Windows now too and see the same thing, so I edited the issue.
Also, I took a look at the code.  It's pretty straightforward and the bug appears to be just that the window has changed size, which the library detects successfully, but the change goes unhandled.
That seems like a hard problem.  Your day job is game dev?  I do web dev mainly so I don't know what you could really do about this.  It seems like the OS would have to either lock the window frame size while we're writing to the buffer and before we blit it to screen, or the OS would have to handle buffers larger or smaller than the expected size.

Alright I checked on Linux as well.  And I saw some notes from developers in C# at least that the way this is usually handled is an OS-provided callback wherein one can resize and repaint the buffer, discarding the one which doesn't fit.
I don't mind preventing resizing in my window options either.  Given that macOS is the only environment which allows resizing the window even when the options try to prevent it, this isn't much of an issue.

Sorry I missed the updates on this. I think this is fixable and I will give it some testing soon.

I'm starting to look at this now. Do you still have the code that causes this? Or is it possible to make it happen with some of the examples? (for example the noise example supports resizing)

I used cargo run --example menu when testing on the different OSs.

I see. Thanks for the info

However, the application segfaults instead of opening a window more often than not with this example. When the window does open, it seems to handle resizing well.

Does it mean that the example will just crash without showing anything and I assume this is random then if that is the case?

Details in this https://github.com/emoon/rust_minifb/issues/105 and how it will be fixed

@Axelderan hey, if you have the possibility of grabbing the latest minifb, switch over to dev branch and try this again that would be awesome. I hope it should all be fixed now (on Linux only, I'm going to start on macOS after that)

Yes I’ll try to do that in the next few days

I think that fix worked!

Cool. Thanks for checking.

I’ve tested still more on another Linux install and I think this is safe to mark as resolved.

Great! I will include this in the 0.15 release (I need to fix up the other platforms also)


Enhance fallback client

How to categorize this PR?

/area quality
/kind enhancement
What this PR does / why we need it:
This PR enhances the Get method in the fallback client, making it more adaptive to cache configurations based on KindToNamespaces.
It checks whether specific namespaces are configured for the kind of object in the cache. If the object's kind has specific namespaces configured in the cache but the object's namespace is not cached, the code falls back to using the API reader to fetch the object.
Otherwise, it attempts to retrieve the object from the cache, and in case of a cache error, it gracefully falls back to the API reader.
Which issue(s) this PR fixes:
Part of https://github.com/gardener/gardener/issues/8382
Special notes for your reviewer:
Release note:

NONE

/cc @timebertt @timuthy

/test pull-gardener-e2e-kind-ha-multi-zone-upgrade

/test pull-gardener-e2e-kind-migration


Dynspread argument shape='circle' does not work

Hello!
I have been tying for a while to spread the datashader points with a circular shape using the dynspread function, as follows:
dynspread(datashade(Nd,color_key=color_dic,aggregator=ds.count_cat('Gene'),min_alpha=1200),max_px=5,shape='circle')
However, this does not seem to be working.
Thank you!

Can you be more specific about "not working", preferably with a reproducible example?


Option to prevent date picker to show when input field receives focus

Added a new option showOnFocus which can be set to false to prevent the date picker from showing when the input field associated with it receives focus.
There are 5 failing tests, but these are also failing in master, so I have not done anything with them at the moment.
3 new tests have been added to verify the new functionality.
Feedback appreciated!

Please fix the note I added and rebase against the current master. Then the PR should be ready for a final review!

Sorry about that, will have a look at it soon as I am able.
On Fri, 2 Jan 2015 14:10 Jeroen Thora<EMAIL_ADDRESS>wrote:

Please fix the note I added and rebase against the current master. Then
the PR should be ready for a final review!
—
Reply to this email directly or view it on GitHub
https://github.com/eternicode/bootstrap-datepicker/pull/802#issuecomment-68525515
.

That's great @jarannilsen! Please also take a look at the travis-ci build as there are some jshint issues ;)

Updated test messages.

Thanks @jarannilsen!


Quality switcher for HLS

It appears that HLS quality switching is a highly requested feature and several other players seem to have this plugin. I see the ground work was laid with this commit/issue below.
Is there any time frame to implement this feature? I think overall it's a great player and loads HLS videos faster for me than other open source players.
#1607

Upvoting, this is really a much need feature

Hi
We have implemented Plyr to our project, but have also found, that Plyr by default do not support multiple qualities for HLS. We needed it, so we tried to implement it.
The diff of our solution can be found at https://gist.github.com/Matho/b88d10da98471c114ca1a855882bbc85
It is not cleanest solution and a lot of work I have did in Ruby, because it was simple easier for me. Take this as the one of a way, or demonstration.
In ruby code, I'm downloading and parsing m3u8 file. Then, I'm extracting src links with quality information and passing to the html5 video element as various src elements. This should be done in javascript.
If you check the code in plyr.js.coffee, you can see how I switch the qualities. On quality change, I'm loading new file for HLS library. Because I know the seek time at that time, I set the seek time to be equal when playing new file. Thanks to it, I can continue with playing from the same point with different quality.
We have found bug, which is I think specific to our project. When I have activated the pip mode and changed the http url in browser, the pip video paused. So I have implemented the fix. It is the fix with browser_paused_pip variable.
I'm not saving quality to local storage (see storage option). Instead, I'm selecting the 'middle' quality as the default quality, when the player starts.
Maybe this will help you all. Maybe we will rewrite the m3u8 parsing to JS one day. Or maybe somebody will help me with this step?
Thanks and have a nice day

Hello folks, here's our solution in TS - it basically uses the levels parsed from the manifest and adds each quality automatically, hope it helps anyone:
`
// When playlist manifest is parsed, load player
this.hls.on(Hls.Events.MANIFEST_PARSED, () => {
this.player = this.loadPlayer();
});
loadPlayer() {
const playerOptions = {
quality: {
default: '720',
options: ['720']
}
};
// If HLS is supported (ie non-mobile), we add video quality settings
if (Hls.isSupported()) {
playerOptions.quality = {
default: this.hls.levels[this.hls.levels.length - 1].height,
options: this.hls.levels.map((level) => level.height),
forced: true,
// Manage quality changes
onChange: (quality: number) => {
this.hls.levels.forEach((level, levelIndex) => {
if (level.height === quality) {
this.hls.currentLevel = levelIndex;
}
});
}
};
}
this.player = new Plyr(this.videoElement.nativeElement, playerOptions);
// Start HLS load on play event
this.player.on('play', () => this.hls.startLoad());
// Handle HLS quality changes
this.player.on('qualitychange', () => {
if (this.player.currentTime !== 0) {
this.hls.startLoad();
}
});
return this.player;
}
`

Hi @ThomasCantonnet Many thanks for sharing your code! I did the parsing in Ruby, now I can rewrite the app to do it with hls.js

Is there another issue keeping track of this or is this the canonical place for this feature?

Add the following code in the <head>
<script src="https://cdn.plyr.io/3.5.10/plyr.polyfilled.js"></script>
<script src="https://cdn.dashjs.org/latest/dash.all.min.js"></script>
<link rel="stylesheet" href="https://cdn.plyr.io/3.5.10/plyr.css" />

Add the following code in the

but a single .m3u8 can have support for multiple qualities within it

Please implement this feature.

Anyone figured out how to workaround the file not found error message, when initialising the player after hls?
GET blob:http://1.localhost:4300/b12d9d80-92a3-47b6-95e8-d29d1e8c98f1 net::ERR_FILE_NOT_FOUND

I tried using what @ThomasCantonnet has suggested using plain JS but it seems the hls levels in not propagated to the playerOptions can @IT-Pony and @sampotts shed some light on this.
My Implementation looking at Thomas's snippet in TS
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <title>HLS Demo</title>
      <link rel="stylesheet" href="https://cdn.plyr.io/3.5.10/plyr.css" />
      <style>
         body {
         max-width: 1024px;
         }
      </style>
   </head>
   <body>
      <video preload="none" id="player" autoplay controls crossorigin></video>
      <script src="https://cdn.plyr.io/3.5.10/plyr.js"></script>
      <script src="https://cdn.jsdelivr.net/hls.js/latest/hls.js"></script>
      <script>
         (function () {
         	var video = document.querySelector('#player');
         	var playerOptions= {
         		quality: {
         			default: '720',
         			options: ['720']
         		}
         	};
         	var player;
         	 player = new Plyr(video,playerOptions);
         	if (Hls.isSupported()) {
         		var hls = new Hls();
         		hls.loadSource('https://content.jwplatform.com/manifests/vM7nH0Kl.m3u8');
         				//hls.loadSource('https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8');
         	hls.attachMedia(video);
         	hls.on(Hls.Events.MANIFEST_PARSED,function(event,data) {

         		console.log('levels', hls.levels);
         		playerOptions.quality = {
         			default: hls.levels[hls.levels.length - 1].height,
         			options: hls.levels.map((level) => level.height),
         			forced: true,
             // Manage quality changes
             onChange: (quality) => {
             	console.log('changes',quality);
             	hls.levels.forEach((level, levelIndex) => {
             		if (level.height === quality) {
             			hls.currentLevel = levelIndex;
             		}
             	});
             }
         };
        });
       }

          // Start HLS load on play event
          player.on('play', () => hls.startLoad());

          // Handle HLS quality changes
          player.on('qualitychange', () => {
          	console.log('changed');
          	if (player.currentTime !== 0) {
          		hls.startLoad();
          	}
          });
         })();

      </script>
   </body>
</html>

After hours of trying and testing, these tricks worked for me. I now have swich quality button, and it maintain the current playing time, too :D

Make Plyr treat HLS link like video/mp4 so you will be able to access the switch quality button menu.
Make sure when user click play button, the HLS will load, or the play won't work (because Plyr couldn't recognize the .m3u8 file).
Check event on qualitychange, then reset the HLS link each time user click on it.
Here is the code
HTML
`

`
Javascript
``

@phuongncn Thanks for spending time on this issue but , in most cases with hls format , the quality is parsed via the manifest file and not passed in as source which makes it dynamic. This way we need to get hold of the streams which may or may not be possible
     	```
hls.on(Hls.Events.MANIFEST_PARSED,function(event,data) {

     		console.log('levels', hls.levels); // this is the quality level  defined
     		playerOptions.quality = {
     			default: hls.levels[hls.levels.length - 1].height,
     			options: hls.levels.map((level) => level.height),
     			forced: true,
         }

It's nice to see the participation on this issue. Maybe someone could put together a full good working code here so it's not spread out over several replies. @phuongncn @rahulrsingh09 @rahulrsingh09
Thanks

Using VOD HLS with Quality Switch works flawless, but I'm trying to make them jump to a specific time of the video, but it's not working. @phuongncn I'm using your example, how would you make it jump to a specific time ? Thanks in Advance

All of this does not reliably work with mpeg dash
Why isn't https://github.com/sampotts/plyr/pull/1607 getting merged?

Why isn't #1607 getting merged?

Read through the comments on it and you'll see what happened. I ended up having to manually merge the changes. https://github.com/sampotts/plyr/commit/6ffaef35cf667d0e2e14227882a1a8e329b2c2c2

@datlife nice solution, the only problem I had with a similar implementation was the error in the console, when plyr tries to load the blob that hls sets as the video src.
GET blob:http://localhost:4200/d16a5b78-1f6b-4f90-af7f-149e92a820be net::ERR_FILE_NOT_FOUND

You found a way around that?

Anyone figured out how to set an 'auto' option in the quality options?
My new idea is adding all qualities that could be available and set them all to display: none and then dynamically set display: flex for all the available qualities after the manifest has been parsed.
Only problem atm is, that I can not set a string value as default or choose a string value from the list.

I'm also still not able to get @datlife solution to work. It doesn't even give me quality button. @sampotts is there no hope of getting an actual universal feature implemented into the player itself instead of all the different custom solutions?

Well although there are nice solutions from different people there's no one standard correctly and a place to put actual plugins. There seems to be a PR for plugin support but seems PR's are behind. For now I'm going with VideoJs because it has everything I need including several HLS switcher plugins that work and the original reason for me switching to Plyr is fixed. Plyr is a good player but may try again when it's more mature.

You can check how to display multi-resolution mpeg dash source on the following link https://codepen.io/adis0308/pen/bGpQmwr

Anyone figured out how to set an 'auto' option in the quality options?
My new idea is adding all qualities that could be available and set them all to display: none and then dynamically set display: flex for all the available qualities after the manifest has been parsed.
Only problem atm is, that I can not set a string value as default or choose a string value from the list.

add custom 'Auto' label to getLabel function

getLabel: function (e, t) {
...
case "quality":
//inside if add below
if (t === 0) return "Auto";

add listener Hls.Events.LEVEL_SWITCHED

if (Hls.isSupported()) {
      var hls = new Hls(config)
      hls.loadSource(source);
      hls.attachMedia(video);
      window.hls = hls;

      hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
        const availableQualities = hls.levels.map((l) => l.height)
        availableQualities.unshift(0) //prepend 0 to quality array
        defaultOptions.quality = {
          default: 0, //Default - AUTO
          options: availableQualities,
          forced: true,
          onChange: (e) => updateQuality(e),
        }
        hls.on(Hls.Events.LEVEL_SWITCHED, function (event, data) {
          var span = document.querySelector(".plyr__menu__container [data-plyr='quality'][value='0'] span")
          if (hls.autoLevelEnabled) {
            span.innerHTML = `AUTO (${hls.levels[data.level].height}p)`
          } else {
            span.innerHTML = `AUTO`
          }
        })
        var player = new Plyr(video, defaultOptions);
      })
    }
    function updateQuality(newQuality) {
      if (newQuality === 0) {
        window.hls.currentLevel = -1; //Enable AUTO quality if option.value = 0
      } else {
        window.hls.levels.forEach((level, levelIndex) => {
          if (level.height === newQuality) {
            console.log("Found quality match with " + newQuality);
            window.hls.currentLevel = levelIndex;
          }
        });
      }
    }

@Dirard, Sorry if it seems so obvious!  Where is the getLabel function? can you please provide the complete code?

@Dirard, Sorry if my question seems so obvious! Where is the getLabel function? Can you please provide the complete code?

https://github.com/sampotts/plyr/blob/30989e4dbc6acb9d1caf4a83af4d6cd12d2548db/dist/plyr.mjs#L2412

Hi @datlife, thanks a lot for the amazing solution. If it won't take a lot of your time, could you please share a way of adding such a support for multiple videos on a page? The code you provided works for one video flawlessly, except for the not-so-important 404 error as @Benny739 mentioned. However, as soon as I modify it to support multiple videos on a single page, things stop working. Plyr just doesn't load the video at all. I can only see the video thumbnail and no trace of Plyr actually loading the video (that is, no class names change, no controls rendered, nothing).
Here's how I have set it up:
var video = document.querySelectorAll('video');
for (var i = 0; i < video.length; i++)
  {
    var source = video[i].getElementsByTagName('source')[0].src;
    var plyrOptions =
      {
        previewThumbnails:
          {
            enabled: true,
            src: video[i].getAttribute('thumbnails')
          }
      };
    if (Hls.isSupported())
      {
        var hls = new Hls();
        hls.loadSource(source);
        hls.on(Hls.Events.MANIFEST_PARSED, function()
          {
            var availableQualities = hls.levels.map((l) => l.height)
            plyrOptions.quality =
              {
                forced: true,
                options: availableQualities,
                default: availableQualities[0],
                onChange: (e) => updateQuality(e),
              }
            var player = Plyr.setup('video[i]', plyrOptions); // changing it to  Plyr.setup(video[i], plyrOptions); makes no difference
          });
        hls.attachMedia(video[i]);
        window.hls = hls;
      }
    else
      {
        var player = Plyr.setup('video[i]', plyrOptions);
      }

Adding Plyr before the hls.on... loads the video, however, only the first one. I am completely lost even after hours of trying various stuff.
Any help would be greatly appreciated. I was using Plyr on my previous website, but, moved to Video JS 2 days back for this new website, for the sole reason that it has support for HLS quality (using plugins). But the styling and any kind of modification and the overall look and feel brought me back to Plyr.

Okay, I was wrong. It's still not working as expected. The video resolution would always be stuck to the same one even if we choose another one from menu. Kindly help.

@Dirard, Sorry if my question seems so obvious! Where is the getLabel function? Can you please provide the complete code?

https://github.com/sampotts/plyr/blob/30989e4dbc6acb9d1caf4a83af4d6cd12d2548db/dist/plyr.mjs#L2412

Hi, This changes the text in the list of available qualities but when we go back of the main menu, it shows the text "0dp" when auto is selected. Everything else is working perfectly fine.

@Dirard, Sorry if my question seems so obvious! Where is the getLabel function? Can you please provide the complete code?

You dont need to change getLabel function
There is a better approach
using i18n and passing qualityLabel in conifg object to it
like this :
new Plyr(playerEl, {
            ...,
            i18n: {
              qualityLabel: {
                0: 'Auto',
              },
            },
          })

Just for reference. This is a working example with many suggestion in this thread (getLabel stuff, quality switch). The @datlife plus.
<script>
document.addEventListener('DOMContentLoaded', () => {
	const source = const source = video.getElementsByTagName("source")[0].src;
	const video = document.querySelector('video');

	const defaultOptions = {};

	if (!Hls.isSupported()) {
		video.src = source;
		var player = new Plyr(video, defaultOptions);
	} else {
		// For more Hls.js options, see https://github.com/dailymotion/hls.js
		const hls = new Hls();
		hls.loadSource(source);

		// From the m3u8 playlist, hls parses the manifest and returns
                // all available video qualities. This is important, in this approach,
    	        // we will have one source on the Plyr player.
    	       hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {

	      	     // Transform available levels into an array of integers (height values).
	      	    const availableQualities = hls.levels.map((l) => l.height)
	      	availableQualities.unshift(0) //prepend 0 to quality array

	      	    // Add new qualities to option
		    defaultOptions.quality = {
		    	default: 0, //Default - AUTO
		        options: availableQualities,
		        forced: true,
		        onChange: (e) => updateQuality(e),
		    }
		    // Add Auto Label
		    defaultOptions.i18n = {
		    	qualityLabel: {
		    		0: 'Auto',
		    	},
		    }

		    hls.on(Hls.Events.LEVEL_SWITCHED, function (event, data) {
	          var span = document.querySelector(".plyr__menu__container [data-plyr='quality'][value='0'] span")
	          if (hls.autoLevelEnabled) {
	            span.innerHTML = `AUTO (${hls.levels[data.level].height}p)`
	          } else {
	            span.innerHTML = `AUTO`
	          }
	        })

             // Initialize new Plyr player with quality options
		     var player = new Plyr(video, defaultOptions);
         });

		 hls.attachMedia(video);
    	window.hls = hls;
    }

    function updateQuality(newQuality) {
      if (newQuality === 0) {
        window.hls.currentLevel = -1; //Enable AUTO quality if option.value = 0
      } else {
        window.hls.levels.forEach((level, levelIndex) => {
          if (level.height === newQuality) {
            console.log("Found quality match with " + newQuality);
            window.hls.currentLevel = levelIndex;
          }
        });
      }
    }
});
</script>

For anyone who using react, this is how I do it.
p/s: I took the code from plyr-react then I implemented quality selector.
https://www.npmjs.com/package/plyr-react
import Hls from "hls.js";
import PlyrJS, { Options, PlyrEvent as PlyrJSEvent, SourceInfo } from "plyr";
import React, { HTMLProps, MutableRefObject, useEffect, useRef } from "react";
import PropTypes from "prop-types";
import "plyr/dist/plyr.css";

export type PlyrInstance = PlyrJS;
export type PlyrEvent = PlyrJSEvent;
export type PlyrCallback = (this: PlyrJS, event: PlyrEvent) => void;

export type PlyrProps = HTMLProps<HTMLVideoElement> & {
  source?: SourceInfo;
  options?: Options;
};
export interface HTMLPlyrVideoElement {
  plyr?: PlyrInstance;
}

export const Plyr = React.forwardRef<HTMLPlyrVideoElement, PlyrProps>(
  (props, ref) => {
    const { options = null, source, ...rest } = props;
    const innerRef = useRef<HTMLPlyrVideoElement>();
    const hls = useRef(new Hls());

    const videoOptions: PlyrJS.Options = {
      ...options,
      quality: {
        default: 720,
        options: [720],
      },
    };

    const createPlayer = () => {
      const plyrPlayer = new PlyrJS(".plyr-react", videoOptions);

      if (innerRef.current?.plyr) {
        innerRef.current.plyr = plyrPlayer;
      }
    };

    hls.current.on(Hls.Events.MANIFEST_LOADED, () => {
      videoOptions.quality = {
        default: hls.current.levels[hls.current.levels.length - 1].height,
        options: hls.current.levels.map((level) => level.height),
        forced: true,
        // Manage quality changes
        onChange: (quality: number) => {
          hls.current.levels.forEach((level, levelIndex) => {
            if (level.height === quality) {
              hls.current.currentLevel = levelIndex;
            }
          });
        },
      };

      createPlayer();
    });

    useEffect(() => {
      if (!innerRef.current) return;

      if (Hls.isSupported()) {
        hls.current.loadSource(source?.sources[0].src!);
        hls.current.attachMedia(innerRef.current as HTMLMediaElement);
      } else {
        createPlayer();
      }

      if (typeof ref === "function") {
        if (innerRef.current) ref(innerRef.current);
      } else {
        if (ref && innerRef.current) ref.current = innerRef.current;
      }

      if (innerRef.current?.plyr && source) {
        innerRef.current.plyr.source = source;
      }

      innerRef.current.plyr?.on("play", () => hls.current.startLoad());

      innerRef.current.plyr?.on("qualitychange", () => {
        if (innerRef.current?.plyr?.currentTime !== 0) {
          hls.current.startLoad();
        }
      });
      // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [videoOptions]);

    return (
      <video
        ref={innerRef as unknown as MutableRefObject<HTMLVideoElement>}
        className="plyr-react plyr"
        {...rest}
      />
    );
  }
);

Hey everyone, here is my working example of combining with Hls.js and plyr. The main idea is to configure option properly based on recent PR by @sampotts .
TLDR: working example https://codepen.io/datlife/pen/dyGoEXo
Main Idea
The goal is to set qualitiy options based on MANIFEST data loaded by HLS.
Notes before jumping into code

By streaming video using  HLS protocol,  we may just need to add single source tag in HTML (not multiple mp4 sources in the Plyr example). The reason is all available qualities are in the MANIFEST of  playlist.m3u8. Therefore, we'd like the HLS performs the switching, not Plyr.

For example, our HTML video will be something like:
<video controls crossorigin playsinline >
  <source
      type="application/x-mpegURL"
      <!-- playlist contains all available qualities for this stream --->
      src="https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8">
</video>

The manifest's playlist contains all available qualities, subtitles. Notice it has different RESOLUTIONS for the same video.

#EXTM3U
...

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=258157,CODECS="avc1.4d400d,mp4a.40.2",AUDIO="stereo",RESOLUTION=422x180,SUBTITLES="subs"
video/250kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=520929,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs"
video/500kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=831270,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs"
video/800kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1144430,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="surround",RESOLUTION=958x408,SUBTITLES="subs"
video/1100kbit.m3u8
....

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Deutsch",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="de",URI="subtitles_de.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI="subtitles_en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Espanol",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="es",URI="subtitles_es.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Français",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="fr",URI="subtitles_fr.m3u8"

Implementation
document.addEventListener("DOMContentLoaded", () => {
  const video = document.querySelector("video");
  const source = video.getElementsByTagName("source")[0].src;

  // For more options see: https://github.com/sampotts/plyr/#options
  const defaultOptions = {};

  if (Hls.isSupported()) {
    // For more Hls.js options, see https://github.com/dailymotion/hls.js
    const hls = new Hls();
    hls.loadSource(source);

    // From the m3u8 playlist, hls parses the manifest and returns
    // all available video qualities. This is important, in this approach,
    // we will have one source on the Plyr player.
    hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {

      // Transform available levels into an array of integers (height values).
      const availableQualities = hls.levels.map((l) => l.height)

      // Add new qualities to option
      defaultOptions.quality = {
        default: availableQualities[0],
        options: availableQualities,
        // this ensures Plyr to use Hls to update quality level
        // Ref: https://github.com/sampotts/plyr/blob/master/src/js/html5.js#L77
        forced: true,
        onChange: (e) => updateQuality(e),
      }

      // Initialize new Plyr player with quality options
      const player = new Plyr(video, defaultOptions);
    });
    hls.attachMedia(video);
    window.hls = hls;
  } else {
    // default options with no quality update in case Hls is not supported
    const player = new Plyr(video, defaultOptions);
  }

  function updateQuality(newQuality) {
    window.hls.levels.forEach((level, levelIndex) => {
      if (level.height === newQuality) {
        console.log("Found quality match with " + newQuality);
        window.hls.currentLevel = levelIndex;
      }
    });
  }
});

Hi, Could you implement the AUTO option to change the quality automatically? Thank you.

Hey everyone, here is my working example of combining with Hls.js and plyr. The main idea is to configure option properly based on recent PR by @sampotts .
TLDR: working example https://codepen.io/datlife/pen/dyGoEXo
Main Idea
The goal is to set qualitiy options based on MANIFEST data loaded by HLS.
Notes before jumping into code

By streaming video using  HLS protocol,  we may just need to add single source tag in HTML (not multiple mp4 sources in the Plyr example). The reason is all available qualities are in the MANIFEST of  playlist.m3u8. Therefore, we'd like the HLS performs the switching, not Plyr.

For example, our HTML video will be something like:
<video controls crossorigin playsinline >
  <source
      type="application/x-mpegURL"
      <!-- playlist contains all available qualities for this stream --->
      src="https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8">
</video>

The manifest's playlist contains all available qualities, subtitles. Notice it has different RESOLUTIONS for the same video.

#EXTM3U
...

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=258157,CODECS="avc1.4d400d,mp4a.40.2",AUDIO="stereo",RESOLUTION=422x180,SUBTITLES="subs"
video/250kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=520929,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs"
video/500kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=831270,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs"
video/800kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1144430,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="surround",RESOLUTION=958x408,SUBTITLES="subs"
video/1100kbit.m3u8
....

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Deutsch",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="de",URI="subtitles_de.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI="subtitles_en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Espanol",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="es",URI="subtitles_es.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Français",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="fr",URI="subtitles_fr.m3u8"

Implementation
document.addEventListener("DOMContentLoaded", () => {
  const video = document.querySelector("video");
  const source = video.getElementsByTagName("source")[0].src;

  // For more options see: https://github.com/sampotts/plyr/#options
  const defaultOptions = {};

  if (Hls.isSupported()) {
    // For more Hls.js options, see https://github.com/dailymotion/hls.js
    const hls = new Hls();
    hls.loadSource(source);

    // From the m3u8 playlist, hls parses the manifest and returns
    // all available video qualities. This is important, in this approach,
    // we will have one source on the Plyr player.
    hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {

      // Transform available levels into an array of integers (height values).
      const availableQualities = hls.levels.map((l) => l.height)

      // Add new qualities to option
      defaultOptions.quality = {
        default: availableQualities[0],
        options: availableQualities,
        // this ensures Plyr to use Hls to update quality level
        // Ref: https://github.com/sampotts/plyr/blob/master/src/js/html5.js#L77
        forced: true,
        onChange: (e) => updateQuality(e),
      }

      // Initialize new Plyr player with quality options
      const player = new Plyr(video, defaultOptions);
    });
    hls.attachMedia(video);
    window.hls = hls;
  } else {
    // default options with no quality update in case Hls is not supported
    const player = new Plyr(video, defaultOptions);
  }

  function updateQuality(newQuality) {
    window.hls.levels.forEach((level, levelIndex) => {
      if (level.height === newQuality) {
        console.log("Found quality match with " + newQuality);
        window.hls.currentLevel = levelIndex;
      }
    });
  }
});

sir I don't want m3u8 to do the quality switching as I have different link for different quality so I want plyr to do the switching is there any way to do so.


updated requester interface type

I have changed KazagaumoSearchOptions to make requester? of type typeof User, so it's easier to understand when an error is thrown. I also made this option optional, as it's acceptable if someone doesn't pass a requester, since the play function already handles that.

@Takiyo0 any updates?


Problem at agenda

Do you want to request a feature or report a bug?
Bug
Calendar event show at week and don't show at agenda
Can somebody help me?
The prints:
https://github.com/rodrigogaraujo/web_gobarber/blob/master/Screenshot from 2021-05-07 12-23-27.png
https://github.com/rodrigogaraujo/web_gobarber/blob/master/Screenshot from 2021-05-07 12-23-35.png

Hi @rodrigogaraujo , I am facing the same issue. Have you found out what was causing it? I am suspecting there is a range of time that is visible at the agenda view. But, I don't know how to redefine it. I could not see it in the docs.

Same issue here

I think I found the filter taking out our events: https://github.com/jquense/react-big-calendar/blob/master/src/Agenda.js#L36-L38

Actually, here is the problem.
https://github.com/jquense/react-big-calendar/blob/master/src/Agenda.js#L150
I am going to add a fix.
events = events.filter(event => inRange(event, dates.startOf(date, 'day'), dates.endOf(end, 'day'), accessors))

@rodrigogaraujo , it seems the project is not maintained anymore. I will leave a tip here.

Checkout this project (or download)

Rename this project src folder to react-big-calendar

Copy the folder renamed into your own project at src/__external__/react-big-calendar

Open your webpack config

Add the entry resolve to your webpack config

{
  resolve: {
    alias: {
      'react-big-calendar': [
        __dirname,
        /* relative path from webpack config to new folder copied */
        '../../src/__external__/react-big-calendar',
      ].join('/')
    },
  },
  // ... your rest of webpack config
}

It should make your webpack look after the package in your source code.

@daniloster @rodrigogaraujo the project is still maintaned. Please create PR and we will merge


Don't understand 'diagnostic-minimum' values for PyRadiomics applied to PET

I am using PyRadiomics latest version on PET DICOMs, and if I just look at the 'Diagnostics' features, specifically the minimum, I get one of two things:

Minimum is 0.
Minimum is around -30000.

This dichotomy holds whether I use the original image, or resample it, or bin it, whatever. Can someone please explain what this minimum feature and why it is sometimes 0 and sometimes negative?
Thank you.

That feature returns the minimum value in the entire image (not just the region identified by the mask). This means that somewhere in your image, there is at least 1 pixel with that value. Why this is the case, I don't know. Most likely it is somewhere outside the body, but you'd have to investigate that if you want to be sure.


Improve documentation for generating GraalVM native image with Gradle build tool

I think that picocli documentation around generating GraalVM native image with gradle build tool can be improved a lot. Here are couple of things that I have in mind :

In this section of documentation https://picocli.info/#_how_do_i_create_a_native_image_for_my_application we ask users to check out gradle-graal gradle plugin but this plugin is not actively maintained. This was last released in June 2022 and lot of the recent commits are from Excavator bot. I think we should instead direct users to use the official GraalVM gradle plugin.
In this section of documentation https://picocli.info/#_where_can_i_get_more_details we link to demo gradle project where we can improve on the github action https://github.com/remkop/picocli-native-image-demo/blob/master/.github/workflows/gradle.yml. Official GraalVM gradle plugin now makes it very easy to generate native images on Linux, MacOS and specially Windows. Documentation can be found here : https://graalvm.github.io/native-build-tools/latest/gradle-plugin.html.

If you agree with these suggestions then I am happy to work on and submit the PR for above changes.

Yes please! Thank you!

For 1. above, do I edit the .adoc file or the .html file?
For 2. I should raise the PR directly for https://github.com/remkop/picocli-native-image-demo/tree/master repository?

For 1. above, do I edit the .adoc file or the .html file?

Only the  .adoc files is fine. The HTML files are generated from the ADOC files upon release.

For 2. I should raise the PR directly for https://github.com/remkop/picocli-native-image-demo/tree/master repository?

Yes that is fine.
Thank you!

For 2. above I have raised the PR : https://github.com/remkop/picocli-native-image-demo/pull/5

For 1. above I have raised the PR : https://github.com/remkop/picocli/pull/2080

Both are now merged. Thank you for the contribution!


How to test ssh-add?

I'm having trouble testing a ssh-add command for the herrbischoff/fish-ssh-agent project. So far I've tested almost everything but I feel there is some fish-related catch I'm not aware of.
Source

test add_keys.fish ;
code add_keys.fish.

What I'm testing
…
ssh-add $private >/tmp/ssh-add.log ^ /tmp/ssh-add.err
…

Error: what I got
$ fishtape test/*.fish | tap-min
Could not open a connection to your authentication agent.
Could not open a connection to your authentication agent.

    10 tests complete (9ms)
    null Add given keys
    ---
    operator: =
    expected: '0'
    received: '1'
    ...

Question
Am I in some special context where ssh-agent is unavailable ? Or is it something else?

This looks like a tough one.
Do you think you'd be able to help @Markcial?

I'd recommend to skip the ssh-add part by using mock library, it's not necessary to test 3rd parties implementations (except you want to test the integration).
if you still want to test integration i pushed a branch to your repo, feel free to check it or ask for more information about the mock library usage :D
:beers:

Thanks @Markcial.

@edouard-lopez Wny did you close here? Did you solve the issue?

@jorgebucaran Yes, the code above is running correctly


Replacement of "Header" objects with mth5 and mt_metadata objects

Jared to give Karl a tutorial on the station level object and some examples.
We also should review how these metadata objects work with MTPy, it is possible that much of the TF manipulation post computation can be done using existing tools.  For example any corrections to TF associated with rotations etc.
A good place to try plugging this in maybe
transfer_function_header.TransferFunctionHeader.array_header_to_tf_header(self, array_header, sites):

this relates to issue #79

The "station header" and rest of the metadata are being packed into the mt_metadata transfer function container via:
tf_cls.station_metadata.from_dict(run_metadata_dict)
tf_cls.survey_metadata.from_dict(survey_dict)

where we create the metadata dictionaries via:
run_metdata_dict = local_run_obj.station_group.metadata.to_dict()
survey_dict = mth5_obj.survey_group.metadata.to_dict()

There doesn't seem to be a need for the TF calculation to otherwise carry this information during the regression so I suggest that we eliminate the need for a TFHeader class entirely

Opened Issue #109 for eventual deprecation of this class now that the information is available via mth5 and mt_metadata tf class


RWA-2061 fix dependencie issue for postgres

JIRA link (if applicable)
https://tools.hmcts.net/jira/secure/RapidBoard.jspa?rapidView=1985&projectKey=RWA&view=detail&selectedIssue=RWA-2061&quickFilter=14713
Change description
Fix dependency issue on postgres jar version
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[X] No

The other change to this PR is to allow me to build this repository locally.


[WIP] SearchAutocomplete: remove internal selection state

SearchAutocomplete shouldn't have a concept of selected keys (differing from Combobox).
When a selection occurs from the menu, the input should be filled and selection should be removed. The menu should also be closed until the input gets updated.
TODO: handle onSubmit behavior.
✅ Pull Request Checklist:

[ ] Included link to corresponding React Spectrum GitHub Issue.
[ ] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[ ] Filled out test instructions.
[ ] Updated documentation (if it already exists for this component).
[ ] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

🧢 Your Project:

Closing for now


Png not working

Great library but I don't get the png feature to work.
Am I missing something? The docs says if you set the path to null it would give a stream in png in the second callback parameter but it gives errors.
let result = 'svg string is this normally';
const screenShotOptions = {
                show: false,
            };
screenshotservice.fromHTML(result, '', screenShotOptions, (err, data) => {
                    console.log(data);
                    res.set('Content-Type', 'image/png');
                    res.send('data');
                });

Hi @rickerd
Can you please be more specific on the errors you encountered?
The example code you provided does log a buffer, and saving the buffer to a file does render a valid PNG.

That is so weird! It doesn't work on my side.
Your reply is quick tho! But i've changed to another library that just makes a svg string to png and outputs it as a buffer that is served to the browser.
Thanks anyway! Your lib is great.

No problem!
This module uses electron which is a bit overkill anyways if you just want to render a SVG to a PNG :joy:


[BUG] Invalid value for "inputMap" parameter: the given object has no attribute "Optimized"

Describe the bug
I'm following the DevOps hands-on-lab and am using the samples/WORKSPACES/SYSTEM/DEV-WEEU-SAP01-X00 sample configuration.
Provisioning of control plane and Workload zone through ADO pipelines successfully completed.
When executing the 03-sap-system-deployment.yml pipeline from Azure DevOps the following error is thrown.
#########################################################################################
#                                                                                #
#                             Running Terraform plan                                    #
#                                                                                #
#########################################################################################

Error: Invalid function argument

  on ../../terraform-units/modules/sap_system/app_tier/variables_local.tf line 312, in locals:
 312:   app_sizing = lookup(local.sizes.app, local.vm_sizing)
    ├────────────────
    │ local.sizes.app is object with 2 attributes

Invalid value for "inputMap" parameter: the given object has no attribute
"Optimized".

Error: Invalid function argument

  on ../../terraform-units/modules/sap_system/app_tier/variables_local.tf line 314, in locals:
 314:   scs_sizing = lookup(local.sizes.scs, local.vm_sizing)
    ├────────────────
    │ local.sizes.scs is object with 2 attributes

Invalid value for "inputMap" parameter: the given object has no attribute
"Optimized".

Error: Invalid function argument

  on ../../terraform-units/modules/sap_system/app_tier/variables_local.tf line 316, in locals:
 316:   web_sizing = lookup(local.sizes.web, local.vm_sizing)
    ├────────────────
    │ local.sizes.web is object with 2 attributes

Invalid value for "inputMap" parameter: the given object has no attribute
"Optimized".

After some investigation, found that the file /deploy/configs/app_sizes.json does NOT contain an Optimized property for the app tier, Default and Production are the only two options.
To resolve I've made the following update to the tfvars file.

To reproduce
Steps to reproduce the behavior:

Setup ADO project
Follow instructions https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/automation-devops-tutorial to deploy the Control Plane, Workload Zone and finally the SAP System step.

Expected behavior
The environment should be successfully provisioned.
Additional context
Add any other context about the problem here.

After checking the private-preview branch, the /deploy/configs/app_sizes.json does have the Optimized property map for the app, scs and web tiers.
I've also noticed that in the 10-remover-terraform.yaml pipeline in the master branch, there are git pull commands that cause the pipeline to fail. These commands are not in the master branch.
For our testing of the DevOps pipelines, should we be using the private-review branch?
I was going to create a fork and update these file, but since they are in the private-preview branch I didn't.

Hi
We have "soft released" the pipelines and the supporting playbooks, I would recommend using the main branch for testing as it should be the most stable.
Optimized is also in the maiin branch now so am closing this issue.


Provide 'Rolling' data structures

In our project Zipline, https://github.com/quantopian/zipline/, we consume time series data one bar at a time. We provide support for calculations that are performed over a fixed length, e.g. over the last 15 days of data. The data which those calculations are performed over are updated with the most recent bar as it comes in.
Instead of creating a fresh Panel on each bar and reindexing all of the data into the underlying data storage, @wesm helped us with a RollingPanel object, https://github.com/quantopian/zipline/blob/2492feb938c21f7577e6c05fa8cd7bfd57863d25/zipline/utils/data.py
The RollingPanel is working well for our purposes, and we'd like to upstream it to make the behavior available to all users of pandas.
There are a couple idionsyncratic to our codebase parameters that would need to be generalized.
e.g.:

the use sids would need to be a more general minor_axis parameter.
the dtype of the index buffer would also need to be more general, where the version in Zipline is tuned/hard code for being a pd.DatetimeIndex in UTC.

@wesm mentioned that instead of a rolling version pd.Panel it may make more sense to start a rolling version of a NDFrame.
(And then I assume have a RollingPanel, RollingSeries, etc. that use RollingNDFrame instead of NDFrame, though that level of the API design I am not sure I am qualified to speak to as of yet.)
attn: @jreback, I believe this is under your purview?
If the idea passes muster, what would be a good next step for getting the rolling behavior into pandas?
(Or has there been work on a RollingNDFrame started already, that I could help pitch in on?)

@jreback I think rolling closes this?

@MaximilianR this is an updatable structure. Which is not very efficient in the current impl. It could be done, though its a bit tricky. You can do all of this now, with a fairly flexible API. In any event this is a stale issue.


No such file or directory: './results/FMA-Net\test\avg_rgb_psnr.txt'

when I run the main.py by "python main.py --test --config_path experiment.cfg",This question arises，How can i get the text，thank you

Hi, sorry for the late reply.
This issue is likely due to an incorrect path setting in the test_quantitative_result function. Make sure the gt_dir and output_dir paths are correct and try again.


[Feature] Plot precalculated Technical Indicator Values

Feature Description
Hi sir, i have a python program which already calculates technical Indicator, i want to display that to chart which was calculated in backend through websockets or api...please guide.....and Thank you for this piece of Art

Supporting remote computing requires returning a promise.

Sir.. I would be grateful if u give me a example

@arul67800 any code example？


Prerequisites

[X] I have searched all issues/PRs to ensure it has not already been reported or fixed.

Criteria

[X] Reasonably well-known and widely used (e.g. if it's a GitHub project, it should have at least 100 stars and/or 50 forks)
[X] English interface (or at least English documentation)
[X] Latest stable version
[X] Full version (i.e. not a trial version)
[X] Fairly standard install (e.g. uses a version-specific download URL, no elaborate pre/post install scripts)

Name
vscodium-insiders
Description
The Insider version considered "kind of stable"
Homepage
https://vscodium.com/
Download Link(s)
https://github.com/VSCodium/vscodium-insiders/releases
Some Indication of Popularity/Repute
Many people use the "Insider" version of vscode, so it seems reasonable to also provide that via Scoop.
Adding it should be relative easy when starting with https://github.com/ScoopInstaller/Extras/blob/master/bucket/vscodium.json

closed in favor of https://github.com/ScoopInstaller/Versions/issues/1390


Stargate 3a explorer shows Error on transaction

Describe the bug
https://stargate.bigdipper.live/transactions shows error
sdk: failed to execute message; message index: 0: 0muon is smaller than 9muon: insufficient funds
To Reproduce
Steps to reproduce the behavior:

Go to 'https://stargate.bigdipper.live/transactions/8DD4A18B61A018DCCC9E9B6C3FC779F9CDD556A8B266B1AB6409AFE09351F99E'
See error
'We're sorry - something's gone wrong.'

Expected behavior
Transaction should be returned.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: OS
Browser Firefox
Version 81

@taariq for the first error you mentioned, it's because you don't have enough tokens to process the transaction. For the error of the page, it's due to we still need to rewrite some components for the new structure of the txs.

Awesome! Thank you! We can close this issue then
On Wed, Oct 7, 2020, 9:05 AM Kwun Yeung<EMAIL_ADDRESS>wrote:

@taariq https://github.com/taariq for the first error you mentioned,
it's because you don't have enough tokens to process the transaction. For
the error of the page, it's due to we still need to rewrite some components
for the new structure of the txs.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/forbole/big-dipper/issues/402#issuecomment-705037535,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFLLKAOBDTUGGLFF7YOYF3SJSGWLANCNFSM4R5AWSEQ
.


Update messaging-policies-in-teams.md

Corrected spelling of "Giphy" on line 84
Giphy content rating

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@SerdarSoysal PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Some improvements for wandb.apis.public.File.upload_file

As of https://github.com/wandb/client/pull/3924 after exploring wandb's Public API, I saw that the root parameter in wandb.apis.public.File.upload_file didn't handle file paths just directories, and this PR cleans a little bit the code and also adds more functionality to the function while keeping the previous one fully working.
Description
This PR basically let's any user of wandb.apis.public.File to upload a file to wandb changing the target path (remote path in wandb), not just to upload a file to a directory but also to upload it with a different name. It still keeps the default functionality, but the code now is clearer and some checks are performed to avoid issues that can potentially happen with detailed exceptions.
Testing
In order to test this PR first of all I made sure that the previous functinonality was working as expected, and also that the file could be renamed in the remote wandb storage and that each exception was triggered when applicable.

Ping @raubitsj, maybe it's worth to also include this in the milestone https://github.com/wandb/client/milestone/12 as https://github.com/wandb/client/pull/3924 it's more or less related to this PR, so as to improve both download and upload functions, while keeping the previous functionality. Thanks :hugs:

Hey @alvarobartt, thanks for another contribution! Really appreciate your thoughtful inspection of our APIs! Please see my comments.
I really like the idea of the project you're working on (https://github.com/alvarobartt/wandbfsspec)! I would argue that if one wants to interact with the files stored in wandb using an FS interface, the adapter logic should be placed in a layer like your project implements, instead of changing the behavior of/overloading the existing APIs.

Hi again @dmitryduev thank you also for reviewing this PR, if you think that this is not useful for the Files API in wandb, let me know and I'll close the PR and try to migrate all those things to wandbfsspec. Thanks 🤗

Hi again @dmitryduev, after some testing, I've tried the following, and doesn't work when it should...
import wandb

api = wandb.Api()
run = api.run("alvarobartt/wandbfsspec-tests/e9kr1pz6")
run.upload_file(path="test.yaml", root="randomdir")

That's solved with the code that I developed in this PR, so let me know if you want me to at least keep that fix and remove all the file path related stuff! Thanks

Let me know if the idea of the root parameter is actually to specify the directory inside the W&B file system or whether it's just relative to the path, it's not too clear, but in the case is the latter, I'll change that on my side so as to fix it in wandbfsspec, thanks!


Pace.js keeps loading while on low battery mode

Hi, the pace.js loader will keep loading while IOS devices are on low battery mode.
Any fix?

I've seen this too.  What we've used in the past is a timeout function to detect that it's just taking WAY too long.
Example: Pace.on('hide', function() { setTimeout(function () {  $('.pace').remove();  }, 2000);  });
So, that'll remove Pace if it's taking more than 2 seconds--which we're assuming isn't the case.  Instead, someone's iOS device is in power save mode.
It's a workaround, not a fix.

Another dirty workaround : you can detect low power mode using this.

Another dirty workaround : you can detect low power mode using this.


boringssl: add the "dev" output to match openssl

Motivation for this change
This allows building curl with a openssl = boringssl override. Tested by building curl with the boringssl override and nginxQuic.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

If all packages would use lib.getDev instead of openssl.dev this would just work ™ .

Sounds reasonable: #146646.

From the looks of it, this was a good change, reducing runtime closure size a little.

I can reopen if you want to merge it.

Thanks!


Publishing distribution zips to the repo

We don't want the distribution zip deployed to the maven repository as that would be quite wasteful.

It revealed it's not necessary. Sorry.


Authorize on different server domain

Can you add the ability to run a test with a user from a different domain that is trusted with the server's domain.  i.e. server is on domain "a", userID is in domain "b" and the 2 domains trust each other.
I've noticed this with ntlmauth for ntlmdomain.
Also with ntlm auth/http protocol - can you add the ability to have a feeder in http protocol so that you can have unique users "logging in" with ntlm auth?

It seems you've confused issues and pull requests (use for contributing).
Then please understand that NTLM and other MS entreprise authorization schemes are very hard to implement and test for open source projects as they require to set up a complex environment.
We can only investigate ourselves such topics through a sponsoring contract where a company would grant access to its environment.
Contributions are also very welcome.
Closing as this is not a proper pull request.


Question about workflow model design

@javrasya I trying out django-river, and i noticed that if i do MyModel.objects.all() i get a AttributeError: type object 'MyModel' has no attribute 'objects', but if i do MyModel.workflow.get_queryset().all() it works.
Is this a bug or a design decision?? How does it work in the admin out of the box then, but when i try it manually i run into that error? Would i always have to use the .workflow to access my models manager?
I needed to make this work with Rest Framework and because of this issue i had to override the create method for example and explicitly say instance = ModelClass.workflow.create(**validated_data) instead of the normal instance = ModelClass.objects.create(**validated_data)
Thanks

Sometimes, user may have their own custom manager on objects field. Overriding this field regardlessly is not good for a third party application. This is why I seperated it as different variable as workflow manager. So, this is design desicion as you say.
I don't actually remember the reason exactly. A situation poped up and I decided to change variable name. Now I remember the reason like it is as I mention earlier.
I see your case and I will think about it.

@javrasya how do you make it work with django admin out of the box then?
Anyways nowadays that sites are API driven its important to keep things compatible with Django Rest Framework out of the box as well (at least). If you have entire control of the codebase then .workflow should be fine but with third party apps and all a simple MyModel.objects.... would crash the app. Please revise that then and if you need help testing it let me know.

I don't see that the reason you use django-river for your regular actions like create etc. There must be some other problem about your code because objects manager should still remain in your model. Can you share you model code?

There are two thing can be done via django-river workflow manager which is an instance of WorkflowObjectManagerwhich are get_objects_waiting_for_approval and get_object_count_waiting_for_approval. So these are not actually the things you want to use with django-restframework.

@javrasya this is my model:
    rnal_code = models.CharField(max_length=50, null=True, blank=True)
    name = models.CharField(max_length=200)
    phone = models.CharField(max_length=50)
    email = models.EmailField()

    status = StateField(editable=False)

    created_on = models.DateTimeField(auto_now_add=True)
    updated_on = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name

Unless it's something related to this issue https://github.com/javrasya/django-river/issues/30

Django admin detects default manager and works with it actually. Probably django gives it to admin. In django source code;
models/base.py
        if not opts.managers or cls._requires_legacy_default_manager():
            if any(f.name == 'objects' for f in opts.fields):
                raise ValueError(
                    "Model %s must specify a custom Manager, because it has a "
                    "field named 'objects'." % cls.__name__
                )
            manager = Manager()
            manager.auto_created = True
            cls.add_to_class('objects', manager)

Django decides that, there is already a manager in this model and no need to add default one which is objects one. If you are struggle with this issue with djang-restfreamwork, it is probably doesn't ask django get me default manger unlike django admin.
This may be a problem for django-river as well. Becuase, I didn't actually want to loose objects one. I will work on it and make it still remain with issue #33

@javrasya aha... pure magic ;)
Yeah there should be an "easy" way for you to let .objects being accessible, maybe inherit from the same model manager as .objects and then add you django-river/workflow methods on top of it??

@psychok7 automatic injection of workfllow manager is removed. If anyone want to use it, it should be used explicitly now. This is best way to do it I think.


Bring TimeEvolver to Mac

The Accelerate framwork provides BLAS as well as (c)LAPACK.
We should support the Mac platform in the near future.

Implemented initial support with b0c7ece


Loops not beginning at the start of the program do not work properly when being passed over

If a loop executes zero times then the interpreter finds the corresponding closing brace and moves the read head to the position of ([location of close brace] - [location of open brace]) (roughly).

Could you provide an example of some brainflak code that does this?

(<(())>){(())} should run fine and terminate with 0 and 1 on the stack but instead the interpreter throws an error.

This is now working as expected. Thanks for fixing it!


Sometimes Crashing Game...

After playing through some of the levels for a little while, sometimes the game crashes and creates this error code. Think it has to do with #263 of the recall mechanism of the nodes and replay tracking from the txt files.

The error has to do with using self.deaths (count for how many deaths) to determine linked list length.
Full Details Below
The bug occurs only during level or scene transitions (only after completing a level or changing between testing and editing in the editor). During the transition, the length of linked list may not match with the count of self.deaths. Self.deaths is used to count the length of the linked list, which causes a mismatch (error in this case where the length of the linked list is less than self.deaths).
The fix
The solution is to not use self.death as an indicator of linked list length and use the already present class function self.check_len().
Future bug catching
I will also reserve the else statement for error purposes only (not crash the program but make some indication that something's wrong).


Missing the button on m visual studio 2017, Still needs work

The above, closed comment I think is pointing out a very confusing aspect of the Git support in VS. The gist of the response is that GitHub Extension for VS is different than Git support in VS and hence you see different views. But that is only partially true and/or the rules are confusing. Caveat: I have GitHub Extension for VS installed because I work with both VSTS Git repos and GitHub repos. Here's what I see.

Using Team Explorer go to the connections and then manage connections.

It pops up the list of repos in VSTS so select one.

You are now in VSTS "mode". You have the options mentioned in this document.

Using the command line clone a different repo from the same VSTS account.

Now open it in VS.

You are now in non-VSTS mode. You don't have the options listed earlier.

The only difference between these 2 modes is whether you used managed connections in VS. To verify that it is the same repo you can make changes, create branches, etc.

Go to manage connections.
Find the repo you are currently in and have made changes to.
Connect to it.

VS recognizes it is the same repo so everything is the same. But now you're back in VSTS mode so you have access to PRs and whatnot. The only change from before was you used VS's managed connection option to "connect" to the repo that was already cloned on your machine.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0cc40b8e-8a81-8213-d98e-a2c39d615f14
Version Independent ID: 6d175def-aa48-ff2a-614f-4e9cf3324537
Content: Get started with Git and Visual Studio 2017 - Azure Repos
Content Source: docs/repos/git/gitquickstart.md
Product: devops
GitHub Login: @steved0x
Microsoft Alias: sdanie

@CoolDadTx Do you think we should add a note about using the Manage connections to connect to the already cloned repo from the command line to the doc - would that help folks? I am forwarding this feedback on the Visual Studio Team Explorer folks, but if you think a note would help I can get that added to the doc pretty quick? Thank you for the detailed post.

@steved0x, I think it would be good to put a note in the docs about it for now. Thanks.


Add message about available components to AgentDetails

This PR adds a new ComponentDetails type that allows agents to communicate metadata relating to the components available in the agent.

@andykellr @tigrannajaryan Here's a rough draft of ComponentDetails, when you get a second to take a look.

@tigrannajaryan friendly bump on this

@tigrannajaryan friendly bump on this

Sorry for the delay. Reviewed.

I didn't see when this message would be sent (may be whenever the collector thought it was appropriate (?)); Do we think that possibly the additional feature for a OpAMP server to request this information?

@BinaryFissionGames please ping me once this is updated to reflect our last discussion in https://github.com/open-telemetry/opamp-spec/issues/198

Looks like a link is broken unrelated to the changes in this PR, but this should be good for another look.

@andykellr or @dpaasman00 will you take over this PR to make the final fixes before merging?

@andykellr or @dpaasman00 will you take over this PR to make the final fixes before merging?

Yes, I just pushed changes based on your feedback. It should be ready.


incubator/Kafka support for additional clouds

Is this a request for help?:
No
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
FEATURE REQUEST
Version of Helm and Kubernetes:
helm version
Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}

kubectl version
Client Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.0-rc.1", GitCommit:"2106a5910f6de3c07b8f329c7adaca38a0d3f825", GitTreeState:"clean", BuildDate:"2018-03-19T23:38:18Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.5", GitCommit:"f01a2bf98249a4db383560443a59bed0c13575df", GitTreeState:"clean", BuildDate:"2018-03-19T15:50:45Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

Which chart:
kafka
What happened:
kafka makes the assumption that you are running on aws and have deployed using kops.
because the following file:
https://github.com/helm/charts/blob/master/incubator/kafka/templates/service-brokers-external.yaml
uses the annotation dns.alpha.kubernetes.io/internal which is a kops specific dns controller documented here...
https://github.com/kubernetes/kops/tree/master/dns-controller
What you expected to happen:
kafka should be more cloud agnostic
How to reproduce it (as minimally and precisely as possible):
deploy on anything other than a aws kops deployment
Anything else we need to know:
no

Thanks for the issue submission and PR @drekle -- excited to get this out and correct my oversight on this one!


Discussion: Do we expect stream keys the same for continuous UpdateDelete and UpdateInsert in StreamChunk?

I expected continuous UpdateDelete and UpdateInsert rows in StreamChunk should have the same stream key, especially when we iterate over chunk.records() this can be quite intuitive. But in reality we seems never reached a consensus on this, and some executors produce stream chunks with different stream keys in continuous UpdateDelete and UpdateInsert, and hence https://github.com/risingwavelabs/risingwave/pull/12536.
I think the current situation forces executors to match on Op and view UpdateDelete and Delete, UpdateInsert and Insert the equivalent. That makes the notion of Update almost meaningless. The only semantics of UpdateDelete seems to be there's guaranteed to be an UpdateInsert after it, nothing more.
Any ideas?

In my mind the paired UpdateDelete and UpdateInsert must have same stream key. Otherwise, as you said, it seems to be useless.

Could you provide a sample offending query? The debezium sink seems also rely on consecutive UpdateDelete and UpdateInsert to be paired:
https://github.com/risingwavelabs/risingwave/blob/0726b590765e3325fbeb07dde4065579f852b87a/src/connector/src/sink/formatter/debezium_json.rs#L151-L156

It is noted that adding new columns to the unique key does not affect its uniqueness, including but not limited to the case where we utilize that to avoid out-of-order change logs introduced by parallel execution. So if we decide to introduce this invariant, then we may have to rewrite U-/U+ to -/+ wherever it occurs.

Could you provide a sample offending query? The debezium sink seems also rely on consecutive UpdateDelete and UpdateInsert to be paired #4486:

Sure. I added the case that made me raised this discussion above in the issue main body.

We can enforce this by introducing a check in WrapperExecutor under debug mode, similar with schema_check

Yes, this makes sense.

It is noted that adding new columns to the unique key does not affect its uniqueness, including but not limited to the case where we utilize that to avoid out-of-order change logs introduced by parallel execution. So if we decide to introduce this invariant, then we may have to rewrite U-/U+ to -/+ wherever it occurs.

I think in operators that will involve parallel execution, we (should) add the shard key to stream key and produce -/+ instead of U-/U+, which is intuitive. Actually that's what we want to discuss here. If that's universally agreed then all operators should conform to that. I don't know if there's any operator other than HashJoin that doesn't conform to this rule.

We can enforce this by introducing a check in WrapperExecutor under debug mode, similar with schema_check

Created corresponding issue https://github.com/risingwavelabs/risingwave/issues/12555 and a draft PR https://github.com/risingwavelabs/risingwave/pull/12557 for this. But since we do have executors that produce Updates with different stream keys, many e2e tests fail. So whether to temporarily comment out the assert or fix all inconsistency before merging this PR is to be decided.

But since we do have executors that produce Updates with different stream keys, many e2e tests fail.

At least we should know whether it's expected behavior. It’s preferable to investigate the inconsistency as there could be additional undisclosed bugs.

A quick example other than the HashJoin case: https://github.com/risingwavelabs/risingwave/blob/007548f32041e738d508aa5c667179aeeec3d151/src/stream/src/executor/mview/materialize.rs#L257-L274
Materialize pushes U-/U+ if upstream gives U-/U+, despite of its own stream key.

The debezium sink seems also rely on consecutive UpdateDelete and UpdateInsert to be paired #4486:

For now we can be sure that U-s and U+s are paired, but the stream key in paired U-/U+ is not guaranteed to be the same.

I guess the final consensus is to keep the status quo. Which is:

For each U- it's guaranteed to have a U+ directly following it;
Stream keys in a continuous pair of U- and U+ are not guaranteed to be the same;
In most cases, executors should view U- the same as - and U+ the same as +.


Hello I am getting an error when attempting to import.

I am on the lastest version of the module and foundry. Here is the text I tried below:

Alyxian the Tormented
Huge Aberration, Typically Lawful Evil
Armor Class 21 (natural armor)
Hit Points 312 (25d12 + 150)
Speed 40 ft, swim 40 ft
STR 21(+5) DEX 18(+4) CON 22(+6) INT 15(+2) WIS 16(+3) CHA 20(+5)
Saving Throws Str +10, Con +11, Wis +8
Skills Deception +10, Insight +8, Perception +8
Damage Resistances bludgeoning, piercing, and slashing from nonmagical attacks
Damage Immunities necrotic
Condition Immunities charmed, exhaustion, frightened, paralyzed, petrified, stunned
Senses Blindsight 120 ft, passive Perception 18
Languages Celestial, Common, Elvish, Telepathy 120 ft
Proficiency +5
Challenge 14 (11,500 XP)
TRAITS
Apotheonic Rejuvenation.  When Alyxian drops to 0 hit points, his body dies and cracks open like a cocoon. Alyxian instantly emerges from the cocoon in his second form, Alyxian the Callous, in the space where his previous form died. His initiative count doesn’t change.
Divinely Blessed.  Alyxian can’t be surprised and can’t be changed into another form against his will.
Magic Resistance.  Alyxian has advantage on saving throws against spells and other magical effects.
Whirlwind of Weapons.  A magical aura of weapons surrounds Alyxian in a 10 foot radius. A creature that starts it's turn in the aura must succeed on a DC 17 Dexterity saving throw or take 10 (3d6) slashing damage, taking half as much on a success.
Legendary Resistance (2/Day).  If the alyxian the tormented fails a saving throw, he can choose to succeed instead.
ACTIONS
Multiattack.  Alyxian makes four Grasping Hand attacks, or two Grasping Hand attacks and a Barreling Charge.
Grasping Hand.  Melee Weapon Attack: +12 to hit, reach 5 ft., one target. Hit: 12 (2d6 + 5) force damage, and if the target is a Medium or smaller creature, it is grappled (escape DC 15). Alyxian has six hands, each of which can grapple one target.
Barreling Charge.  Alyxian moves up to his speed in a straight line. All creatures in his path must make a DC 17 Dexterity saving throw or take 14 (4d6) bludgeoning damage and be knocked prone, or half as much damage on a success.
Void Eyes (Recharge 5–6).  Alyxian targets up to two creatures he can see within 120 feet of himself. Each target must make a DC 17 Constitution saving throw, taking 28 (8d6) necrotic damage on a failed save, or half as much damage on a successful one.
LEGENDARY ACTIONS
Attack.  Alyxian makes one Grasping Hand attack.
Weapons of Yore (Costs 2 Actions).  Ancient weapons embedded in Alyxian’s hide detach from Alyxian and fly about in a 15-foot-radius sphere centered on a point Alyxian can see within 60 feet of himself. A creature takes 18 (4d8) slashing damage when it enters that area for the first time on a turn or starts its turn there. The effect lasts until the end of Alyxian’s next turn, when the weapons return to Alyxian and embed themselves in his hide once again (causing him no harm).
Decrepit Battalion (Costs 2 Actions).  Alyxian summons the memory of soldiers that did not survive the battles of the calamity, summoning 2 (1d4) Sword Wraith Warriors within 120 feet.

Alyxian the Callous
Large Celestial, Typically Lawful Evil
Armor Class 22 (plate)
Hit Points 252 (24d10 + 120)
Speed 30 ft, fly 90 ft
STR 23(+6) DEX 18(+4) CON 21(+5) INT 15(+2) WIS 16(+3) CHA 20(+5)
Saving Throws Str +11, Con +10, Wis +8
Skills Deception +10, Insight +8, Perception +8
Damage Resistances  bludgeoning, piercing, and slashing from nonmagical attacks, radiant
Condition Immunities charmed, exhaustion, frightened, paralyzed, petrified, restrained, stunned
Senses Blindsight 120 ft, passive Perception 18
Languages Celestial, Common, Elvish, Telepathy 120 ft
Proficiency +5
Challenge 14 (11,500 XP)
TRAITS
Apotheonic Rejuvenation.  When the alyxian the callous drops to 0 hit points, his body dies and sheds its wings, and he rises to his feet in his third form, Alyxian the Dispossessed. His initiative count doesn’t change.
Divinely Blessed.  Alyxian can’t be surprised and can’t be changed into another form against his will.
Magic Resistance.  Alyxian has advantage on saving throws against spells and other magical effects.
Legendary Resistance (2/Day).  If the alyxian the callous fails a saving throw, he can choose to succeed instead.
ACTIONS
Multiattack.  Alyxian makes three Radiant Spear attacks. He can replace one of these attacks with Blinding Teleport or Crescent Moon Sweep.
Radiant Spear.  Melee or Ranged Weapon Attack: +12 to hit, reach 5 ft. or range 120 ft., one target. Hit: 15 (2d8 + 6) radiant damage.
Crescent Moon Sweep.  Alyxian slashes out with a sweep of his spear. Each creature within 10 ft. of Alyxian must succeed on a DC 17 Dexterity saving throw or take 19 (3d8 + 6) slashing damage and be knocked prone. On a successful save, a creature takes half as much damage and isn’t knocked prone.
Blinding Teleport.  Alyxian teleports, along with any equipment he is wearing or carrying, to an unoccupied space he can see within 120 feet of himself. Each creature within 5 feet of his new location must succeed on a DC 17 Constitution saving throw or be blinded until the end of its next turn.
Heavenly Destruction (1/Day).  Alyxian releases divine energy in a 90-foot cone. Each creature of his choice in that area must make a DC 17 Constitution saving throw. On a failed saving throw, the creature takes 31 (7d8) radiant damage and is knocked prone. On a successful save, a creature takes half as much damage and isn’t knocked prone.
REACTIONS
Reprimand.  When a creature Alyxian can see within 60 feet of him regains hit points, Alyxian reduces the number of hit points regained to 0, and he regains 22 (5d8) hit points instead.
LEGENDARY ACTIONS
Attack.  Alyxian makes one Radiant Spear attack.
Celestial Chains.  Alyxian targets one creature he can see within 120 feet of himself. The target must succeed on a DC 17 Strength saving throw or be restrained by magical chains for 1 minute. While restrained in this way, the target can’t leave the space by any means. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.
Flare (Costs 2 Actions).  Alyxian targets one creature he can see within 30 feet of himself. Light flares around the target, dealing 17 (5d6) radiant damage to it and half as much to any creatures within 10 feet of it.
Halo of the Three (Costs 3 Actions).  Alyxian creates three 20ft radius rings that must touch, that appear to pulse with radiant yellow light. Any creature in these rings when Alyxian starts his turn must succeed on a DC 17 Constitution saving throw or take 45 (10d8) radiant damage as they detonate.

Update: had to manually install previous version to 1.83.03 from the upgraded. I was able to import without issue.

Hi, I'll reopen this issue since it's definitely something that needs to be fixed. Do you mind letting me know what browser you're using, and maybe also where the statblock has been copied from? I was unable to reproduce the issue by copying the text from here.

Recreated the error by updating the module to the latest again. I am in Opera GX browser. I copied it from monstershuffler. Here is some pictures.

Do you mind trying the latest unstable version? You would need to install it by pasting this manifest URL: https://github.com/Aioros/5e-statblock-importer/releases/download/v1.90.6-3-g98df27a/module.json.
Apart from a few minor changes, it should give a little more information in the console about the error that I would like to see. Appreciate the help in any case, thank you.

Here you go, sorry I was busy this weekend.

Well, I would like to abuse your patience a little bit and ask you to try this other version in the same way: https://github.com/Aioros/5e-statblock-importer/releases/download/v1.90.6-4-g391a5b2/module.json
If you do, this time you should see another line (or two) in the console right before the error, saying "5e Statblock Importer | DEBUG INFO: expand this:". If you could expand it and paste it here, I'd love to see that log.
Thanks again for your help.

Actually, the latest version (v1.90.7) should fix this. Try it out and let me know. And thanks again for the help.

Checked with your most updated version, no errors!


Slow object interactions-  lazy loading concept in Zoomba library

Hi,
I would like to get some help to get faster test runs.
We a have a big (and slow) executable to test.
After logging in we have a lots of different options - windows and child windows (...and sub sub.. windows) and we had very slow test case running in some complex test cases. ( like over 20 minutes!)
Evolution in test speed:
Great speed improvements happened when we :

Stop using Switch Application | Desktop - (We need to use only in some cases: Switch Application By Name.  )
Start using Automation ID instead of relative XPath.
With these -above two-, mostly we can do actions in 1-6 seconds - click on buttons type text to field, getting values of field etc.

But in some cases - when sub-sub windows is the actual,- this actions took 20-60 seconds.
I think this is because we have too many objects in hour application.
So here is Lazy Loading concepts comes in picture:
One of our colleagues used WAD with other language, C# or Java, and he used the Lazy Loading "concept"
https://github.com/RAM0803/WinAppDriver/tree/master/Java/CalculatorTest
Some references related to Lazy Loading :
https://www.geeksforgeeks.org/lazy-loading-design-pattern/
https://pypi.org/project/lazy-load/
https://stackoverflow.com/questions/36274/what-is-lazy-loading
https://www.infoworld.com/article/2077568/java-tip-67--lazy-instantiation.html
Can we use this Lazy Loading here in Zoomba Desktop Library?

Hey @robtail,
I need a better idea of what actions are taking a long time as to if this would be of much benefit.
The two actions that probably take the longest time are the grabbing of the xml for the app and searching through it. Both of these are going to change pretty much anytime we go to make a new search so im not sure a lazy load would help here.
For reused elements this may work, provided lazy loading caches that element but I currently have not done anything with lazy loading.
Not quite sure when I could get to looking at this though but if you would like to fork and attempt a POC please be my guest.

Hi Wolfe,
Thanks to quick response. i really appreciate you try to help!   👍
We really suffer from very slow run. I also assume we have big big XML for that application. we have lots of sub windows, (i assume this exe has hundreds of functions. )
Is there a way to how to get the XML from the app?
I mean can we have a debug or trace for winappdriver/Appium/Zoomba when it is grabbing of the XML?
or inspect/insight/wadUIrecorder?
Is the a way to "filter the scope" to active XML element only?
I not fully understand "Switch Application By Name" what is doing, but in our executable, we need to use it once after login screen disappeared.
Or do you think if we ask our app developers, can they do anything to filter the scope of active XML elements?
Best Regards,
Robert

I believe the source its looking through is the response of Log Source. As of now I do not think there is a way to filter down the scope.
I am not sure there is much your developers could in terms of limiting the scope. Adding IDs to the elements would help though as anytime you have to use xpath it is going to be slower.
Ultimately we consume the driver code that has been given to us from Microsoft, we can make improvements to our code for speed but areas where I think we could make a big impact are unfortunately up to Microsoft's development of the WinAppDriver 😥

Hi Wolfe,
Log Source - command has lots of potential.  Thank you very much for pay my attention to it.
I'm checking how to use it as xml...
As a general observation:
In my case during my app test, if i have a long execution time like 30s or 60s - Time consumed mostly by ROBOT FRAMEWORK.
I see winappdriver window waiting for commands from Robot Framework and when it gets a command it response in 1-2 sec. Python consumes only 10-25% CPU only but it uses almost all the time.
So the Python winappdriver library is slow? - mostly because of handling the XML?
Best Regards,
Robert

Hi Wolfe,
Log source logs only the grid value's names but unfortunately not shows the grid values. :(
i hoped i can extract grid values somehow. (I would like to have something similar to Grid - like we have at Combo box.)
Other important question:
Is there a way to "continue" (or start a new) testcase the application current screen.
I mean i have a long business process, like one screen saved, sub screen opened saved, - lets say 5-10 minutes passed, then something failed with a locator (or anything else reason) and Robot Framework stopped with error but application screens are still open.
Is there a way to start a new test case with attach the open screen and continue my test from this second TC?
In this way i would be able to continue testing of application...
That would be a huge consuming of time...
Thanks a lot for your valuable advises getting already.  :)

Hey @robtail,
I will have to look into that slowdown locally once I have some time.
As for continuing a test, provided you know the state of your test that passed or failed you can continue. You would just need to change the way your tests are run.

No test teardown or setup. If you need to do test setup before the first tests runs you would need to use 'Suite Setup' and 'Suite teardown' to bring it all down.
After your test passes or succeeds you just start running your next test without any setup.

Due note that this makes your tests more fragile as they will depend on each other.

Hi Wolfe,
Thanks when you investigate slowdown issue.
And many thanks for the suggested method you described above how to continue failed cases.
In general it is very useful to be able to "continue" the application test - After it was failed.
I tried this approach and it works.  So i logged in opening some subwindows and do a process.
if it failed then i write a tc which switch to the actual window and start this TC. it will continue from that screen. and i love this. :)
Unfortunately in my app behaves odd in this also :)
some of the windows are almost unusable slow or not reliable to really do the button click for example.
but the idea is brilliant. :) thanks !

As a general observation:
In my case during my app test, if i have a long execution time like 30s or 60s - Time consumed mostly by ROBOT FRAMEWORK.
I see winappdriver window waiting for commands from Robot Framework and when it gets a command it response in 1-2 sec. Python consumes only 10-25% CPU only but it uses almost all the time.
So the Python winappdriver library is slow? - mostly because of handling the XML?

Taking a look at this locally but I do not believe this is an issue with the python or robot code. When attaching to the desktop and running 'Get Source' I am waiting 23 seconds for a response from the winappdriver:

This is sadly out of our control as WinAppDriver is still closed source for the time being and the development by Microsoft has stalled quite a bit. They mentioned back in November that the project still had life but it has yet to be seen: https://github.com/microsoft/WinAppDriver/issues/1371

Regardless I am working on something that will cut down on some redundant loads for the 'Wait For And' type keywords at the moment. Probably won't be ready till mid next week, not sure if it will help your situation but it certainly shouldn't hurt.

@robtail When you get a chance see if https://github.com/Accruent/robotframework-zoomba/pull/180 helps at all.
Again this is just mainly focuses on some redundant calls for the 'Wait For And ...' type keywords but there are some other changes that may help.
Otherwise to really help here I would need to see a copy of one of your log.html files. Preferably running a loglevel of 'TRACE', no need to include any screenshots just the log.html file. If you don't want to upload that here publicly you can email it to me at<EMAIL_ADDRESS>

Hi Wolfe,
Sorry for not responding yet. I was not noticed you did steps for resolution this issue.
Many many thanks for deal with my help request!!
I asked my pm what kind of reports can i send, and how, but of course i will provide all necessary reports/log (with removed sensitive data)
And thanks again for your support!
How can i pull and implement your development code to try out "Wait For And"?
Can you instruct me pls?
Robert

@robtail It has been merged into master and released so you can just do:
pip install robotframework-zoomba --upgrade
to get the latest code.

Great - Thanks.  :)
I try it now.

I had an error in ADMINISTRATOR shell while :   pip install robotframework-zoomba --upgrade

Any idea?

Hi Wolfe,
My test case was running fine with updated Zoomba 2.8.1 so that is good.
I see Wait For And ... commands seems running faster.
So thanks for the efforts!
Best Regards,
Robert

Hi Brandon,
You can close this issue because i was roll off from this project (since 1st of March), and im not able to provide any details from this exe in the future. (I was working on this in the last ~2 months.)
I would like to thank you for all help you provided, it was help a lot!!!
:)
Without your help i was not able to start desktop testing of that exe and i was not able to solve such kind of problems like how to "Switch Application" and the most valuable help was how to continue a test case in Robot Framework if a test fails.
So thank you very much. :)
Best Regards,
Robert


Flashing custom STM32 target no longer working

Hi,
we are currently using the ST-Link V2.1 programmer part of a Nucleo board (see here for reference) to programm our custom board. I recently updated mbed-cli and the automatic flashing with mbed compile -f is no longer working. The latest working version for me is 1.7.3. I think our problem is related to #717 which was introduced with mbed-cli v1.7.4. If I understand correctly #717 checks if the correct target is connected before flashing it and also chooses the correct target if multiple targets are connected. As our programmer is for a different board than the one we are compiling for mbed-cli gives the following error:
[mbed] ERROR: The target board you compiled for is not connected to your system.
       Please reconnect it and retry the last command.

Is there any way to deactivate  mbed-cli's behaviour to check if the right target is connected? If not would it be possible to add a command line argument which deactivates the check for custom targets?

Internal Jira reference: https://jira.arm.com/browse/MBOCUSTRIA-207

Thanks for raising the issue @t3k5g. Your use case is an interesting one! As you can imagine, #717 solves issues for quite a few other folks that are using development boards with "known identities". While your case doesn't fall under this category, it is still valid.
You can override the identity of your board by using the mocking functionality in our tools: https://github.com/ARMmbed/mbed-ls#mocking-renaming-platforms
Give those instructions a try and let me know how it goes!

Thanks a lot @bridadan for the quick reply.
Using the mocking functionality does work for us and seems to be a good solution for our usecase. At first it didn't work because it didn't become clear to me from reading the readme that mocking does not work globally. After executing the command in my project folder, which creates a .mbedls-mock file, it did work however. So it seems this needs to be done for every project but that is ok for us.
Another solution I discovered is to use retargeting which is also described in the readme. Specifically one needs to retarget the platform_name . As this requires the full target_id which differs for every ST-Link programmer mocking seems to be the better solution though.
Thanks a lot again :)


[IoTCentral] change error details definition

If you are a MSFT employee you can view your work branch via this link.
Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

/azp run automation - sdk

/azp run automation - sdk

@allenjzhang , if we only change error type, it only affects our SDKs, do we need to bump up the version? Thanks

Can one of the admins verify this patch?

/azp run automation - sdk

@allenjzhang , if we only change error type, it only affects our SDKs, do we need to bump up the version? Thanks

From the other email conversation it seems like we don't need to align RP version with SDKs, so we decided to keep current RP version (2018-09-01), and go ahead to make this breaking change to SDKs only.

/azp run automation - sdk


[C# SDK] #2554 - Added the ability to set the endpoint slot on the LUIS model

#2554

@ddenton87,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@ddenton87, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, Microsoft Pull Request Bot

@ddenton87 Please make the PR against the develop branch.

I'll create new new PR to develop.

This commit https://github.com/Microsoft/BotBuilder/commit/af2b62b0393a74dad06191a8a2b4d5b2a9e278fa will fix this issue.


Cell debugger needs "break at exception or warning"

Environment data

VS Code version: 1.76.2
Jupyter Extension version (available under the Extensions sidebar): Jupyter  v2023.2.1200692131
Python Extension version (available under the Extensions sidebar): Python  v2023.4.1
OS (Windows | Mac | Linux distro) and version: Windows 11
Python and/or Anaconda version: 3.9.7
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): conda
Jupyter server running: Local | Remote | N/A

The problem
Most debuggers have settings that will bring you to the line of code where a warning or exception was triggered.  Data science workflows would be greatly improved if VSCODE Jupyter also did this.
In the screenshot, I have just run "Debug Cell" from the left hand dropdown cell menu, and an error message tells me that line 25 of the cell has caused a type error.
But it's not obvious why this is a type error.  To see that, the debugger should have -- like it would have in other debuggers -- opened the source file where the type exception was raised, and put the cursor on the line that did the raise.

You can enable this with the options in the breakpoints view


[*] fixed UTF-8 name support

@imlcl UTF8 can have 4 bytes per character. So the readme might be incorrect?


Execution of coroutine via executor

Purpose
Possibility to execute coroutines via custom executors
Details

Awaitable ITask object
Convenient wrapper for this

TODO

[ ] Fix Cancel test
[ ] Fix TSAN error in tests
[ ] Think about dummy test

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

31 of 34 (91.18%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.3%) to 99.728%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/coroutine/via_awaiter.cpp
23
26
88.46%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
1100

Relevant Lines:
1103

💛  - Coveralls