Added Image::load_svg_from_(buffer|string)

Fixes #3422
This PR adds two methods:

Image::load_svg_from_buffer(buffer, scale);
Image::load_svg_from_string(svg_str, scale).

The methods are mostly compatible with 3.x for cherrypick, but the changes introduced by migrating from nanosvg to thorvg should be accounted for.
You can use the snippet bellow to test both methods:

Expand to show the code
The SVG at the variable test_svg is like this:
extends Node

# 4w 4h, 2x2 RED, 2x2 BLUE, 2x2 GREEN, 2x2 BLACK
#|-------|--------|
#|--RED--|-GREEN--|
#|-------|--------|
#|-------|--------|
#|-BLUE--|-BLACK--|
#|-------|--------|
var test_svg := """<?xml version="1.0" encoding="UTF-8"?>
<svg width="4" height="4" version="1.1" viewBox="0 0 1 1" xmlns="http://www.w3.org/2000/svg">
 <g stroke-linecap="square" stroke-width=".4">
  <rect width=".5" height=".5" fill="#f00"/>
  <rect width=".5" height=".5" fill="#f00"/>
  <rect x=".5" width=".5" height=".5" fill="#0f0"/>
  <rect y=".5" width=".5" height=".5" fill="#00f"/>
  <rect x=".5" y=".5" width=".5" height=".5"/>
 </g>
</svg>
"""

func _ready() -> void:
  var can_load_from_string := ClassDB.class_has_method(&'Image', &'load_svg_from_string')
  var can_load_from_buffer := ClassDB.class_has_method(&'Image', &'load_svg_from_buffer')

  var image := Image.new()

  print('can_load_from_string = %s' % can_load_from_string)
  print()

  if (can_load_from_string):
    print('scale = 2.0 (8w 8h)')
    image.load_svg_from_string(test_svg, 2.0)
    print_image_content(image)
    print()

    print('scale = 1.0 (4w 4h)')
    image.load_svg_from_string(test_svg)
    print_image_content(image)
    print()

    print('scale = 0.5 (2w 2h)')
    image.load_svg_from_string(test_svg, 0.5)
    print_image_content(image)
    print()

  print('can_load_from_buffer = %s' % can_load_from_buffer)
  print()

  var buffer := test_svg.to_utf8_buffer()

  if (can_load_from_buffer):
    print('scale = 2.0 (8w 8h)')
    image.load_svg_from_buffer(buffer, 2.0)
    print_image_content(image)
    print()

    print('scale = 1.0 (4w 4h)')
    image.load_svg_from_buffer(buffer)
    print_image_content(image)
    print()

    print('scale = 0.5 (2w 2h)')
    image.load_svg_from_buffer(buffer, 0.5)
    print_image_content(image)

func print_image_content(image: Image) -> void:
  for y in image.get_height():
    var line := '|'

    for x in image.get_width():
      var color := image.get_pixel(x, y)
      line += '#%02x%02x%02x%02x|' % [color.r8, color.g8, color.b8, color.a8]

    print(line)

Expand to show an output example
can_load_from_string = true

scale = 2.0 (8w 8h)
|#ff0000ff|#ff0000ff|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|#00ff00ff|#00ff00ff|
|#ff0000ff|#ff0000ff|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|#00ff00ff|#00ff00ff|
|#ff0000ff|#ff0000ff|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|#00ff00ff|#00ff00ff|
|#ff0000ff|#ff0000ff|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|#00ff00ff|#00ff00ff|
|#0000ffff|#0000ffff|#0000ffff|#0000ffff|#000000ff|#000000ff|#000000ff|#000000ff|
|#0000ffff|#0000ffff|#0000ffff|#0000ffff|#000000ff|#000000ff|#000000ff|#000000ff|
|#0000ffff|#0000ffff|#0000ffff|#0000ffff|#000000ff|#000000ff|#000000ff|#000000ff|
|#0000ffff|#0000ffff|#0000ffff|#0000ffff|#000000ff|#000000ff|#000000ff|#000000ff|

scale = 1.0 (4w 4h)
|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|
|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|
|#0000ffff|#0000ffff|#000000ff|#000000ff|
|#0000ffff|#0000ffff|#000000ff|#000000ff|

scale = 0.5 (2w 2h)
|#ff0000ff|#00ff00ff|
|#0000ffff|#000000ff|

can_load_from_buffer = true

scale = 2.0 (8w 8h)
|#ff0000ff|#ff0000ff|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|#00ff00ff|#00ff00ff|
|#ff0000ff|#ff0000ff|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|#00ff00ff|#00ff00ff|
|#ff0000ff|#ff0000ff|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|#00ff00ff|#00ff00ff|
|#ff0000ff|#ff0000ff|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|#00ff00ff|#00ff00ff|
|#0000ffff|#0000ffff|#0000ffff|#0000ffff|#000000ff|#000000ff|#000000ff|#000000ff|
|#0000ffff|#0000ffff|#0000ffff|#0000ffff|#000000ff|#000000ff|#000000ff|#000000ff|
|#0000ffff|#0000ffff|#0000ffff|#0000ffff|#000000ff|#000000ff|#000000ff|#000000ff|
|#0000ffff|#0000ffff|#0000ffff|#0000ffff|#000000ff|#000000ff|#000000ff|#000000ff|

scale = 1.0 (4w 4h)
|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|
|#ff0000ff|#ff0000ff|#00ff00ff|#00ff00ff|
|#0000ffff|#0000ffff|#000000ff|#000000ff|
|#0000ffff|#0000ffff|#000000ff|#000000ff|

scale = 0.5 (2w 2h)
|#ff0000ff|#00ff00ff|
|#0000ffff|#000000ff|

I've tried attaching the following script to a Sprite2D node, but I only get a black square:
extends Sprite2D

# 4w 4h, 2x2 RED, 2x2 BLUE, 2x2 GREEN, 2x2 BLACK
#|-------|--------|
#|--RED--|-GREEN--|
#|-------|--------|
#|-------|--------|
#|-BLUE--|-BLACK--|
#|-------|--------|
var test_svg := """<?xml version="1.0" encoding="UTF-8"?>
<svg width="4" height="4" version="1.1" viewBox="0 0 1 1" xmlns="http://www.w3.org/2000/svg">
 <g stroke-linecap="square" stroke-width=".4">
  <rect width=".5" height=".5" fill="#f00"/>
  <rect width=".5" height=".5" fill="#f00"/>
  <rect x=".5" width=".5" height=".5" fill="#0f0"/>
  <rect y=".5" width=".5" height=".5" fill="#00f"/>
  <rect x=".5" y=".5" width=".5" height=".5"/>
 </g>
</svg>
"""

func _ready() -> void:
	var can_load_from_string := ClassDB.class_has_method(&'Image', &'load_svg_from_string')

	var image := Image.new()

	print('can_load_from_string = %s' % can_load_from_string)
	print()

	if (can_load_from_string):
		image.load_svg_from_string(test_svg, 100.0)

		var tex = ImageTexture.create_from_image(image)
		texture = tex

@Calinou

With this PR, I've tried attaching the following script to a Sprite2D node, but I only get a black square displayed. It does have the correct dimensions (400×400, since the scale is 100.0).

I just checked, by running your scene all you can see is the 4º square, the black one.
By offsetting the position 200 pixels, you can see the rest of the image:
...
func _ready() -> void:
  position += Vector2(200.0, 200.0)

  var can_load_from_string := ClassDB.class_has_method(&'Image', &'load_svg_from_string')
  ...

This is pretty cool!

@clayjohn

This looks mostly good, but note that it creates a dependency in core on a module. We like to avoid core depending on modules as much as possible, especially for niche features.
Instead this function should be implemented the same as load_tga_from_buffer(). In that case Image exposes a function pointer that is assigned in the module.

I started doing as you said (following the other load_* implementations) but I ended up doing it this way to not change too many files.
Agree, that's an interesting consideration about the core and modules, I'll change it soon.
Thanks.

Looking at the other formats we only expose load_from_buffer.

This is enough justification for me to only expose load_from_buffer.

I've added Image::load_svg_from_string as a way of ease of use, it feels natural to use the String representation of a SVG.
I don't have a strong opinion on this either, I'm fine with just exposing Image::load_svg_from_buffer and keeping the previous patterns.

I think it's correct to offer a *_string variant. While it's trivial to convert a string to a buffer, it also feels unnecessary from the user perspective. Unlike binary image format that we support right now, SVGs are naturally stored and passed around in a text form, so the string variant is likely the one that is going to be used most of the time.

Hi, just to understand. Does this allow to load SVG inside godot, and scale it as an SVG dynamically in the game ? Or should it be done in another proposal / PR ?

Hi, just to understand. Does this allow to load SVG inside godot, and scale it as an SVG dynamically in the game ? Or should it be done in another proposal / PR ?

Indeed, this allows loading SVGs in exported projects even if they weren't imported beforehand.

Hi, just to understand. Does this allow to load SVG inside godot, and scale it as an SVG dynamically in the game ? Or should it be done in another proposal / PR ?

Indeed, this allows loading SVGs in exported projects even if they weren't imported beforehand. They are still rasterized to an image (at the specified scale) though. This process is performed on the CPU and is relatively slow, so you don't want it to happen every frame when camera zoom changes.

OK I see so it is no handled by the graphic card. So we won't be able to use svg everywhere instead of textures and it will still be rasterized.

Hi, just to understand. Does this allow to load SVG inside godot, and scale it as an SVG dynamically in the game ? Or should it be done in another proposal / PR ?

Indeed, this allows loading SVGs in exported projects even if they weren't imported beforehand. They are still rasterized to an image (at the specified scale) though. This process is performed on the CPU and is relatively slow, so you don't want it to happen every frame when camera zoom changes.

Could this be used to rasterize SVG at runtime at different resolutions? Mipmaps don't seem to generate as good quality, often resulting in blurry textures. This would help maintain the quality of sprites regardless of the user's display resolution

Could this be used to rasterize SVG at runtime at different resolutions?

Yes, but you'll have to do it manually using the newly exposed method.

Mipmaps don't seem to generate as good quality, often resulting in blurry textures

Mipmaps in Godot use simple box filter, which isn't ideal but this isn't the biggest issue for using mipmaps in 2D. The more prominent issue is that trilinear filtering is used by default, which isn't ideal for most mipmap usage in 2D. You can switch to bilinear filtering in the Project Settings (Use Nearest Mipmap Filter), but this will also affect 3D rendering which may be undesired. See https://github.com/godotengine/godot-proposals/issues/7411.

Could this be used to rasterize SVG at runtime at different resolutions?

Yes, but you'll have to do it manually using the newly exposed method. Rasterizing during gameplay can be slow and cause stutters, so I recommend doing it at load-time.

Mipmaps don't seem to generate as good quality, often resulting in blurry textures

Mipmaps in Godot use are generated with box filter, which isn't ideal but this isn't the biggest issue for using mipmaps in 2D. There are arguably better filters out there, but they also come with their downsides.
The more prominent issue is that trilinear filtering is used by default, which isn't ideal for most mipmap usage in 2D. You can switch to bilinear filtering in the Project Settings (Use Nearest Mipmap Filter), but this will also affect 3D rendering which may be undesired. In a 2D-only project, you should be able to safely enable that setting. See godotengine/godot-proposals#7411.

Yes, I checked different configurations on mipmaps, and it didn't seem satisfactory to me. I will take a look at the filter you sent and see if I can get better results than the ones currently available in the engine


Do not require bundler/setup in executable

https://github.com/stevegraham/slanger/blob/master/bin/slanger#L5
This line makes it so that the instructions (gem install slanger; slanger [...]) from the readme won't work anywhere outside the context of this repository. It also assumes that bundle install has been run.
If for development purposes using bundler is useful here then the local executable can be run using bundle exec ./bin/slanger instead.
I'd suggest to remove this line, which should make the binary usable in any context with just gem install slanger, and without having to clone the repository.

Makes sense. PR?

@markburns see https://github.com/stevegraham/slanger/pull/204

Thanks! Fixed by #204


Add default "en-GB" labels

#28

Love this fix - thanks @kows! #h5yr
Perhaps it would be better to ship a simple en.xml language file instead of the specific en-GB.xml file - I believe Umbraco will then automatically pick this up for en-US, en-GB, en-AU, etc.
No worries if you don't have time, but could I be really cheeky and ask you to include a Dutch translation for this too? It would be great to eventually support more languages.


Bug: Typos in docs/customize-settings/appearance page

Before you start...

[X] Have you refreshed the page? You might be using an old version of the site.
[X] Have you checked for an existing issue on this topic? If there is one, post a comment on it instead.

What browsers are you seeing the problem on?
Chrome, Chrome Beta/Dev/Canary, Other - list in description
Description
Using Thorium AVX2 for Windows 123 on Windows 11.
Issues refer to this page: https://files.community/docs/customize-settings/appearance

"This allows you to change background color of the window." under the "Background color" section is missing a "the" before "background".
On the same line, "There is a large selection or pre-selected colors". or should be changed to of.
"Search for the any of the keys listed bellow". The "the" before any should be removed, bellow should be changed to below.

Steps To Reproduce
Following the list in the Description section, you find the problematic section by:

Searching for "This allows you to change background color of the window."
Searching for "There is a large selection or pre-selected colors".
Searching for "Search for the any of the keys listed bellow".

Expected behavior

the background
selection of pre-selected colors
Search for any of the keys listed below.

Relevant Assets

Thank you for the report and fix in #658.


Helm Tracing Chart does not use global priorityClassName

Bug description
Set the global.priorityClassName, but that value is not passed to the zipkin or jaeger.
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[x] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
priorityclass should be set in those charts as well.
Steps to reproduce the bug
set priorityClassName in the global config, and install tracing.
Version (include the output of istioctl version --remote and kubectl version)
1.3.0

priorityClassName is defined under policy_container, but not telemetry_container

@aaronmell I'm using helm template' + kubectl apply`, didn't reproduce the issue, see:
root@mcdev1:~/istio-1.3.0# kubectl create namespace istio-system
namespace/istio-system created
root@mcdev1:~/istio-1.3.0# helm template install/kubernetes/helm/istio-init --name istio-init --namespace istio-system | kubectl apply -f -
configmap/istio-crd-10 created
configmap/istio-crd-11 created
configmap/istio-crd-12 created
serviceaccount/istio-init-service-account created
clusterrole.rbac.authorization.k8s.io/istio-init-istio-system created
clusterrolebinding.rbac.authorization.k8s.io/istio-init-admin-role-binding-istio-system created
job.batch/istio-init-crd-10-1.3.0 created
job.batch/istio-init-crd-11-1.3.0 created
job.batch/istio-init-crd-12-1.3.0 created
root@mcdev1:~/istio-1.3.0# helm template install/kubernetes/helm/istio --name istio --namespace istio-system --set global.priorityClassName="system-cluster-critical" --set tracing.enabled=true | kubectl apply -f -
...
root@mcdev1:~/istio-1.3.0# kc  -n istio-system get deploy istio-tracing -o yaml | grep priorityClassName -C 2
      dnsPolicy: ClusterFirst
      priorityClassName: system-cluster-critical
      restartPolicy: Always

Also tried to switch to zipkin provider, still found the priorityClassName:
root@mcdev1:~/istio-1.3.0# helm template install/kubernetes/helm/istio --name istio --namespace istio-system --set global.priorityClassName="system-cluster-critical" --set tracing.enabled=true --set tracing.provider=zipkin > istio.yaml

Sorry, my fault. I had the wrong chart. Updating ticket to reflect.

Looks like the change was made in master, but didn't make it into the 1.3.0 release
https://github.com/istio/istio/commit/409fb9765266db0ba5d24c677b5aabed82e7132c

Yes, that's right, the change didn't make it into the 1.3.0 release. Cherry pick it to release-1.3 so that we can have it in 1.3.x: https://github.com/istio/istio/pull/17104


调用$router.push方法 我想将url地址栏中的空格 转义 “%20” 变为加号“+” ，我应该怎么做

What problem does this feature solve?
如下调用
this.$router.push({
path: '/catalogserach/result',
query: {q: "1 2"}
})
期望显示为加号 "+"
/catalogserach/result?q=1+2
实际地址栏显示为 "%20"
/catalogserach/result?q=1%202
What does the proposed API look like?
暂无

Hi, thanks for your interest but Github issues are for bug reports and feature requests only. You can ask questions on the forum, the Discord server or StackOverflow.


Use uint8 rather than byte

I was confused for a second with n being of type byte. Using uint8 might help to distinguish between unsigned integer vs. a byte value.
func (r *Reader) ReadBits(n byte) (u uint64, err error)
would become
func (r *Reader) ReadBits(n uint8) (u uint64, err error)

byte and uint8 are alias of each other. They are completely interchangeable. These 2 method declarations are completely equivalent:
func (r *Reader) ReadBits(n byte) (u uint64, err error)
func (r *Reader) ReadBits(n uint8) (u uint64, err error)

There's no point changing it. As said, they mean exactly the same.
This prints true (try it on the Go Playground):
fmt.Println(reflect.TypeOf(byte(0)) == reflect.TypeOf(uint8(0)))

I'm well aware byte is an alias.

byte is an alias for uint8 and is equivalent to uint8 in all ways. It is used, by convention, to distinguish byte values from 8-bit unsigned integer values.
https://golang.org/pkg/builtin/#byte

It's entirely up to you of course, but as I said, I think using uint8 would help to distinguish the intent, and what is expected, purely for documentation purposes. rune is an alias of int32, they're interchangeable at a technical level, but there's still valid use cases for both.
Rob Pike previously commented this, on the proposal to remove uint8 entirely:

The purpose of the alias is to make it clear when one is using bytes as character string elements as opposed to small integers. It adds clarity to the code and should stay.
https://github.com/golang/go/issues/22180#issuecomment-335047367

I was only confused for a second though. So it's not the end of the world :). Thank you for this library.

Oh, I get your point now. In this sense the change does make sense. Will proceed. Thanks for the note.


add new entry error

hi, when i submit a new entry i have this error:
JSWikiGanttFrontEnd.js?1&303:1024 Uncaught TypeError: moment_instance.businessAdd is not a function
at Object.oJSWikiGanttFrontEnd.oModTask.addBusinessDays (JSWikiGanttFrontEnd.js?1&303:1024)
at Object.oJSWikiGanttFrontEnd.oModTask.preSubmitTask (JSWikiGanttFrontEnd.js?1&303:712)
at Object.oJSWikiGanttFrontEnd.oModTask.submitAdd (JSWikiGanttFrontEnd.js?1&303:536)
at HTMLInputElement.eval (eval at sftJSmsg.show (sftJSmsg.js?1&303:384), :2:31)
oJSWikiGanttFrontEnd.oModTask.addBusinessDays @ JSWikiGanttFrontEnd.js?1&303:1024
oJSWikiGanttFrontEnd.oModTask.preSubmitTask @ JSWikiGanttFrontEnd.js?1&303:712
oJSWikiGanttFrontEnd.oModTask.submitAdd @ JSWikiGanttFrontEnd.js?1&303:536
(anonymous) @ VM1377:2
the new moment object, moment_instance, is created but the method businessAdd is not loaded

Hey, I think that probably means this script wasn't loaded:
$wgOut->addScriptFile(LoadJS::getCSSJSLink("lib/node_modules/moment-business-days/index.js"));
Could you please check the debugger tab of the console to see if it was loaded?

Also could you please provide more information about the environment.. Like mediawiki version?

Yes it was loaded.
MediaWiki versione:1.28
in my LocalSettings.php i load the extensions in this way
require_once "$IP/extensions/JSWikiGantt/JSWikiGantt.php"; wfLoadExtension('JSWikiGanttFrontEnd');

In my console i have this warning message:
load.php?debug=false&lang=it&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=1anq05z:154 Use of "Map-values" is deprecated. mw.Map#values is deprecated. Use mw.Map#get() instead. get @ load.php?debug=false&lang=it&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=1anq05z:154 window.onload @ JSWikiGanttFrontEnd.js?1&303:14

i use chromium v62, same errore on Firefox 56.0

I just updated firefox to 56, but I can't seem to re-create the issue, I will try with mediawiki version 1.28

I also tried it on mediawiki version 1.28 with firefox version 56, and it seems to be working fine for me...

So the issue is that it can't recognize the function businessAdd.. I'll add a work around for it: **If it can't use the businessAdd function then it'll add month days (not taking into account the weekends...) **

Perfect! Great Work MuhammadWahajTaseer!

Call me Wahaj, thanks. I hope you fine the extension useful!

Great extension! Bye bye Wahaj


False Positive 0018:attribute/double-quotes on file with attribute values in apostrophes

Given the following well-formed and valid XHTML 5.2 file
<!DOCTYPE html>

<title>Hello, world!</title>

Hello, world!

When running milo review on that file, Milo reports a false positive 0018:attribute/double-quotes:
hello.xhtml:2:1: attr-value-double-quotes: Attribute values must be in double quotes (0018:attribute/double-quotes)
hello.xhtml:2:1: attr-value-double-quotes: Attribute values must be in double quotes (0018:attribute/double-quotes)

This is by design, the double-quotes reviewer wants to ensure we use " for our tag attributes.

In that case the tool needs a clear distinction between:

Violations of the relevant specifications (HTML, XML, SVG, etc)
Violations of arbitrary decisions of the tool makers.

Using apostrophes instead of quotes for attributes is completely valid according to the specification and an arbitrary decision of the tool makers. The tool should not treat these two different things the same way.


Canvas widget

A widget to draw freely in 2D or 3D. It could be used to draw charts, implement a Paint clone, a CAD application, etc.
As a first approach, we could expose the underlying renderer directly here, and couple this widget with it (wgpu for now). Once wgpu gets WebGL or WebGPU support, this widget will be able to run on web too. The renderer primitive could be a simple texture that the widget draws to.
In the long run, we could expose a renderer-agnostic abstraction to perform the drawing.

Just gonna drop my two cents here.
Rendering a custom widget doesn't make much sense unless you know both the renderer and the widget.
This is where low level rendering access becomes important, for example if I'm rendering a virtual scene in my widget I'll probably want to control that via a graphics card. However not all rendering stacks will have a GPU available to them, so it may be hard to present this in a platform agnostic way. Additionally, the tech used to access the GPU may differ from platform to platform.
So to create this I'd define the drawing trait in terms of the rendering stack, which is actually really similar to what you've already done with the myriad "Renderer" traits. So I suppose the takeaway of my comment is based around this sentence in the initial comment

In the long run, we could expose a renderer-agnostic abstraction to perform the drawing.

That's probably not worth doing, as the means by which a custom widget could be rendered are vast and unknowable from the perspective of iced.

I started working on a first pass at this. Having problems with the Renderer trait exported from iced_native, and Application exported from iced_core.
I need some way to update the Renderer with a custom wgpu::Pipeline (created by user code, outside of iced. I thought about passing a closure into Application::run, but specifying the types is causing me grief; what's the input? With the wgpu backend, we want a wgpu::Device, and the output is a CanvasPipeline type that the Renderer can use. This really complicates the public API.
The only improvement I can think of trying is using Box<dyn Any> for both input and output types, and try to downcast them where needed.
Does anyone have any other suggestions? This would probably be a lot easier without the multiple abstraction layers spread across several crates. I only care about supporting wgpu for now (see the comment directly above for rationale; I completely agree with that sentiment.)
Because of these challenges, I'm not comfortable sharing the code. I just don't think it's reviewable in this state.

The first step here is to create a Canvas widget with an API similar to the CanvasRenderingContext2D on the Web.
I think an implementation of this API can be achieved without exposing internal rendering details, like pipelines or shaders.
There has been some work done in this direction and it looks promising. I think I'll be able to share something soon!

@parasyte Could you describe your use case? Why do you need to create custom pipelines? I believe you would need a different kind of widget than the one described in this issue, at least for now.
If you want to render your scene with Iced on top, I believe the way to go for that is to integrate your current wgpu renderer with the iced_wgpu crate. As you probably are aware, this is currently not possible. However, I think it's better to invest time going in that direction than trying to create a Canvas widget that does too much without clear boundaries.

The specific use case I have in mind is building a tile map editor (like Tiled). The CanvasRenderingContext2D API isn’t much value to me, since I would almost exclusively make use of the ImageData equivalent. The Canvas2D API has a lot of power, but it is a poor fit for applications like this, not to mention CAD and 3D modeling.
ImageData isn’t a great fit either. WebGL is much closer to what I would like. It would just make things like indexed palette rendering and dithering so much easier.
These reasons (and others; caching, and no support for animations) rules out the Image widget for me, too. Hope that helps understand where I’m coming from.

@parasyte Now that #183 and #193 have landed, I think we should be able to start exploring more advanced solution to satisfy use cases similar to yours.
While #193 only supports basic 2D graphics, I think it should be possible to build a similar widget for advanced graphics by exposing wgpu directly.

Awesome!
It seems that current Canvas widget and apis are still for 2D, do you have any plan to support canvas 3D or give an example soon?

@n826vnl8 I think the seeds are planted and an advanced canvas widget can be implemented using the current Canvas implementation as a guide while adding a Primitive::Texture or similar to iced_wgpu.
Because of this, I am moving on to working on other features that may challenge the current design of the library (like #27, #30, and #31) and can help us notice any shortcomings.

Possibly of interest, I achieved this in KAS via use of a CustomPipe trait — the user implements this plus a CustomWindow trait, and uses the latter to parametrise the toolkit's pipeline. This only works because the rendering pipeline is extensible and still requires a downcast to do the actual drawing. Perhaps a similar method could be used in Iced?
BTW I think iced_wgpu docs are missing the "canvas" feature?

Hi! I am currently searching for GUI framework for my existing project (RustZX) And iced feels like it would be a good fit, allowing to make GUI for both for desktop and the web.
However it still missing the core issue which I need - possibility to draw texture on the canvas with given filtering (specifically, nearest neighbor). As I understand, this task is blocker for this to happen.
The original task mentions that wgpu lacks wupport for WebGL, but I believe this has changed recently - I have successfully compiled some wgpu examples with WebGL backend.
What steps we should make currently to make this possible @hecrj ?
It looks like a good starting point to add WebGL support to glow, based on what was already done in https://github.com/iced-rs/iced/pull/505 around a year ago

Since we already have a 2D Canvas widget, we can close this and keep discussing the 3D widget in #343.


More Samsung 860

kxg5-0.json.gz
kxg5-1.json.gz

Oops, the filenames are wrong. These are more samsung 860 results.


Add warning to fhir-persistence-schema about the plan to remove the Resource and DomainResource table groups

Is your feature request related to a problem? Please describe.
We plan to remove these tables under #713 but we don't want to break anyone that might be using these tables for something (though our schema does not).
Therefore lets do just a warning in 4.9 and save the actual removal for a future release.
Describe the solution you'd like
In 4.9.0 release notes, add a note under the "deprecated" section that we plan to remove the Resource and DomainResource tables in the next minor release (e.g. 4.10).
Add warning in fhir-persistence-schema output stating that we plan to delete data in the next release.
Describe alternatives you've considered
Just don't do it
Acceptance Criteria

GIVEN [a precondition]
AND [another precondition]
WHEN [test step]
AND [test step]
THEN [verification step]
AND [verification step]

Additional context

Confirming the full list of tables to be "deprecated":
DOMAINRESOURCE_DATE_VALUES
DOMAINRESOURCE_LATLNG_VALUES
DOMAINRESOURCE_LOGICAL_RESOURCES
DOMAINRESOURCE_NUMBER_VALUES
DOMAINRESOURCE_QUANTITY_VALUES
DOMAINRESOURCE_RESOURCE_TOKEN_REFS
DOMAINRESOURCE_RESOURCES
DOMAINRESOURCE_STR_VALUES
RESOURCE_DATE_VALUES
RESOURCE_LATLNG_VALUES
RESOURCE_LOGICAL_RESOURCES
RESOURCE_NUMBER_VALUES
RESOURCE_QUANTITY_VALUES
RESOURCE_RESOURCE_TOKEN_REFS
RESOURCE_RESOURCES
RESOURCE_STR_VALUES
There's a few other tables that start with RESOURCE_xxxx, but those should remain.

Yes, that looks right to me.

2021-06-03 12:22:22.798 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'DOMAINRESOURCE_DATE_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'DOMAINRESOURCE_LATLNG_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'DOMAINRESOURCE_LOGICAL_RESOURCES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'DOMAINRESOURCE_NUMBER_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'DOMAINRESOURCE_QUANTITY_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'DOMAINRESOURCE_RESOURCE_TOKEN_REFS' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'DOMAINRESOURCE_RESOURCES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'DOMAINRESOURCE_STR_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'RESOURCE_DATE_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'RESOURCE_LATLNG_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'RESOURCE_LOGICAL_RESOURCES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'RESOURCE_NUMBER_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'RESOURCE_QUANTITY_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'RESOURCE_RESOURCE_TOKEN_REFS' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'RESOURCE_RESOURCES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001 WARNING   com.ibm.fhir.schema.app.Main Table 'RESOURCE_STR_VALUES' will be dropped in a future release. No data should be written to this table. If any data exists in the table, that data should be deleted.
2021-06-03 12:22:22.799 00000001    INFO   com.ibm.fhir.schema.app.Main Processing took:  80.604 s
2021-06-03 12:22:22.800 00000001    INFO   com.ibm.fhir.schema.app.Main SCHEMA CHANGE: OK


Split multicast, publish, et al into static functions and operators?

Given that composition of ConnectableObservable isn't something TypeScript is capable of, and given that ConnectableObservable is just a little different, it's probably worth discussing having the functions that return ConnectableObservable be static, and their projected counterparts stay as operators.
This is likely something we could not do until the next major version.
Problems

ConnectableObservable doesn't compose through pipe very well in typed languages.
It's not readily obvious that you're doing something different with these operators, and people don't know you need to connect them at times.
Two very different results between publish and publish(fn), for example.

Static Functions
function multicast<T>(source: Observable<T>, subject: Subject<T>): ConnectableObservable<T>;
function multicast<T>(source: Observable<T>, subjectFactory: () => Subject<T>): ConnectableObservable<T>;

function publish<T>(source: Observable<T>): ConnectableObservable<T>;
function publishLast<T>(source: Observable<T>): ConnectableObservable<T>;
function publishBehavior<T>(source: Observable<T>, initialValue: T): ConnectableObservable<T>;
function publishReplay<T>(source: Observable<T>, bufferSize?: number, bufferTime?: number): ConnectableObservable<T>;

Operator Functions
(bike shed names later)
function multicastWith<T, R>(subject: Subject<T>, project: (source: Observable<T>) => Observable<R>): OperatorFunction<T, R>;
function multicastWith<T, R>(subjectFactory: () => Subject<T>, project: (source: Observable<T>) => Observable<R>): OperatorFunction<T, R>;

function publishWith<T, R>(project: (source: Observable<T>) => Observable<R>): OperatorFunction<T, R>;
function publishLastWith<T, R>(project: (source: Observable<T>) => Observable<R>): OperatorFunction<T, R>;
function publishBehaviorWith<T, R>(initialValue: T, project: (source: Observable<T>) => Observable<R>): OperatorFunction<T, R>;
function publishReplayWith<T, R>(bufferSize: number, bufferTime: number, project: (source: Observable<T>) => Observable<R>): OperatorFunction<T, R>;

Risks

Larger API surface area
We'll need to support refactoring for these cases in the migration process for the next version

Benefits

Easier to understand than the current variadic operators, who behave very differently given different arguments.
Easier to read (subjective, I suppose)

Other things
I don't think all variations shown above actually exist. We can probably get away with just the multicastWith and publishWith variants of the operators.

@ReactiveX/rxjs-core

Would this also involve deprecating the refCount operator? It's only applicable to a ConnnectableObservable source, so refCount should just be called as a method on the ConnnectableObservable, right?

Hah, well I just spend a good evening (no really, it was pretty educational) getting as far as drafting pretty much this exact issue, after banging my head against multicast weirdness today.
This probably isn't a part of the API that many people use that often (I'm guess from experience, and the amount of activity on this issue), but when you do it is fairly gnarly and confusing. I can see there are some draft PRs, which I'll have a glance at soon - but it doesn't look like the plan is to get these in for v7? In the absence of that, there are a couple of things that could hopefully be fixed without larger/breaking changes:

The example here is not valid TS (although the JS works fine). multicasted is just Observable<unknown>, so the last line needs to be (multicasted as any).connect() or (multicasted as ConnectableObservable<number>).connect() for TS to be happy.
For multicast, I believe the second overload export function multicast<T, O extends ObservableInput<any>>(subject: Subject<T>, selector: (shared: Observable<T>) => O): UnaryFunction<Observable<T>, ConnectableObservable<ObservedValueOf<O>>>; is wrong. This is a variant with a selector, so the return should just be OperatorFunction<T, ObservedValueOf<O>>, like the 4th overload. Although I believe the types all end up looking the same inside pipe, it's still probably useful for both of the variants that act like "normal" operators (the ones that would become multicastWith) to have correct types.
The documentation for multicast and publish could be made to be much more clear about the behaviour difference between passing a selector/project fn and not.

Assuming the proposed change wont be in v7 I'm happy to make a PR for the above?

Closed by https://github.com/ReactiveX/rxjs/pull/5634 AFAICT.


Provide data source UUID links

The ESGF's query results contain a URL to a dataset's UUID, for example

http://catalogue.ceda.ac.uk/uuid/5a807d9ebb2d67b5472624e9639253a9

Make them available in the CLI and GUI so that users can easily get detailed (meta) information about a selected data source.
The UUID are provided through the docs/xlink property:
    "xlink":["http://catalogue.ceda.ac.uk/uuid/2608443849391d2513d903482a19f206|ESA Sea Surface Temperature Climate Change Initiative (ESA SST CCI): Along-Track Scanning Radiometer (ATSR) level 3 uncollated data (L3U) long-term product version 1.0|summary"],

@kbernat: the first step is to make the UUID available through a data source. Can you please take care of that. You can make the UUID be an optional field in uuid in the DataSource.meta_info dict or we introduce an explicit API, e.g. DataSource.uuid. In any case UUID may be None, e.g. for user's own local data sources.


Missing arrify dependency

arrify should be listed as a dependency, not devDependency.

Hi, I should explain this. in graphql-depth-limit, it depends on arrify.
In this package, I use rollup to build cjs and esm format, and  arrify is resolved in dist code:

https://www.npmjs.com/package/graphql-depth-limit-ts?activeTab=code
so, there is no need to put arrify in dependency list.


create new webcomponent MnPassword

A component extending MnInput, but to be a input type password
they need to have same style and behaviors, but type is password, producing

in code, developer write
<mn-password placeholder="Password" />

in code need to compile
<mn-password placeholder="Password">
  <input type="password />
</mn-password>

They will support the same attributes from mn-input, except autocapitalize
In small screens lik mobile devices (not a desktop browser with small dimensions), automatically display a button show/hide, like below

note, the button to show/hide is visible only in state "focused"
and if button is "showable", the text alternate to "hide", and show the value of input, like example below

last thing, user "enable" button to show value, when they goes to the next input, the input are in mode "hiden", if they back to the last password, they are "hiden" again

in the future, I want add the "confirm" validation to other mn-password


Problem at loggin off

After that I press /q   [ OR from GTA Menu (ESC-> Quit Game -> Yes) ]    to leave the server, the game freeze and my PC is full freeze. I cant exit from the game, i must restart my PC. Whats the problem? Can you help me please? Thanks and i wait a message from you!

Can't help atm but will look at the issue once I have the time

Because lazy to create another issue, some crash logs from nonamenonamenoname
http://gta-samp.ru/php/CrashLog/modloader.asi+0xA85E.txt
http://gta-samp.ru/php/CrashLog/modloader.asi+0xBA30.txt

I dont understand... :")


Guidelines do not fit my use-case

Please use this issue to report any examples where any guidelines in the workflow do not fit your usecase.

Two ideas:

Loading an external model (example). Where should I store the data and code?
model.py and features.py could be merged in our case because we work more with unsupervised methods

Two ideas:

Loading an external model (example). Where should I store the data and code?
model.py and features.py could be merged in our case because we work more with unsupervised methods

Store the data in models/
Perhaps a clearer delineation between models and features folders (or files) could be made by changing to transformers and estimators (e.g. sklearn or spark - https://spark.apache.org/docs/1.6.0/ml-guide.html#transformers).

Transformer - for feature transformations and learned models.
Implements transform() which takes in data and produces data.
Estimator - abstracts the concept of a learning algorithm or any algorithm that fits or trains on data.
Implements fit() which takes in data and produces a model that is a transformer.

The estimators/ and transformers/ separation is practical as we know that anything in transformers/ will not be doing any kind of fitting on data.
Additional point/proposal: Modules/Functions should only be placed in estimators/ and transformers/ if they are generally applicable code. Code relating purely to one dataset (e.g. GTR) should be in a dataset dependent folder (e.g. gtr/) but it is preferred to write code that can go in estimators//transformers/.


obs_space's dimension

hi, obs_space is defined in place_env.py:

I'm confused that why the dimension of obs_space is set as (1,84,84).
Thanks!

hi，i also have this question,have u known why now?

My guess is that before applying the CNN layers, they need to upsample the board state from 3232 to 8484 to make it larger so that more conv layers can be applied.

My guess is that before applying the CNN layers, they need to upsample the board state from 32_32 to 84_84 to make it larger so that more conv layers can be applied.

That's right.


Wfly 4354 default ejb methods

https://issues.jboss.org/browse/WFLY-4354

Windows Build 900 is now running using a merge of 4c74b02a13a2af427d654b875594877371f676c0

Core - Full Integration Build 478 is now running using a merge of 4c74b02a13a2af427d654b875594877371f676c0

Linux Build 1211 is now running using a merge of 4c74b02a13a2af427d654b875594877371f676c0

Windows Build 900 outcome was SUCCESS using a merge of 4c74b02a13a2af427d654b875594877371f676c0
Summary: Tests passed: 3020, ignored: 95 Build time: 0:18:34

Linux Build 1211 outcome was SUCCESS using a merge of 4c74b02a13a2af427d654b875594877371f676c0
Summary: Tests passed: 3020, ignored: 95 Build time: 0:18:55

Core - Full Integration Build 478 outcome was SUCCESS using a merge of 4c74b02a13a2af427d654b875594877371f676c0
Summary: Tests passed: 2859, ignored: 378 Build time: 0:48:06

Ah great catch, thanks.

Looks like this is an outdated commit.  Commit dmlloyd@368fe4b205c76ee53cb8d62f6117767f8ba977d4 should be used instead.

Core - Full Integration Build 481 is now running using a merge of 7a9840fb257dd403d70aaffb194ec3e741d3ec7d

Linux Build 1214 is now running using a merge of 7a9840fb257dd403d70aaffb194ec3e741d3ec7d

Windows Build 903 is now running using a merge of 7a9840fb257dd403d70aaffb194ec3e741d3ec7d

Looks like dmlloyd@0dd4de7 is a cherry-pick of dmlloyd@368fe4b .

Windows Build 903 outcome was SUCCESS using a merge of 7a9840fb257dd403d70aaffb194ec3e741d3ec7d
Summary: Tests passed: 3020, ignored: 95 Build time: 0:18:37

Linux Build 1214 outcome was SUCCESS using a merge of 7a9840fb257dd403d70aaffb194ec3e741d3ec7d
Summary: Tests passed: 3020, ignored: 95 Build time: 0:19:00

Core - Full Integration Build 481 outcome was SUCCESS using a merge of 7a9840fb257dd403d70aaffb194ec3e741d3ec7d
Summary: Tests passed: 2859, ignored: 378 Build time: 0:47:58


Add deleted_branch table fixture

As title

Why we need this "empty" file?

@Morlinest to reset table to empty (delete all rows) between tests, otherwise anything that gets inserted there stays between tests that can result in failures or unexpected behaviour.

@lafriks OK, that makes sense.

LGTM

CI failed.

@lunny Tests where abusing that deleted branches table was not cleared between tests so I had to fix them :)

LGTM

Codecov Report

Merging #2832 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2832   +/-   ##
=======================================
  Coverage   26.85%   26.85%
=======================================
  Files          89       89
  Lines       17607    17607
=======================================
  Hits         4728     4728
  Misses      12193    12193
  Partials      686      686

Continue to review full report at Codecov.

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


Logs aren't easy to understand

Hello,
Current logging isn't much easy to understand. It would be nice if there are multiple intermediate logs at each stage as described in the readme workflow image. As of now everything is more abstract, so much though process has to go behind what went wrong when stale occurs.
I'm discussing mainly my experience with ollama integration is much unpleasant. Spending past 1 week to properly index my own doc of 250 pages. Resources aren't much constrained from my end. The api call to chat gets freezed.
Also consider added different color other than white when an main log or stage have completed. For eg: INFO:lightrag:[Entity Extraction]... could have been in different color
INFO:httpx:HTTP Request: POST http://localhost:11434/api/embeddings "HTTP/1.1 200 OK"
INFO:lightrag:[Entity Extraction]...
INFO:httpx:HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"

Thanks for your support for LightRAG. We apologize for the unpleasant with Ollama. Moving forward, we’ll revise the log recording format to improve clarity.


Add diofant

see #17

@bjodah, I don't like this "solution", but tests now pass.  Removing "wip" mark.

Thanks!
it's ok (sym is just a shim after all)


decide what the license should be - MIT?

I would say MIT license. Also, maybe this chooses a license helps you to decide which license to use.

@victoriacheng15 thank you - let's go with MIT

@victoriacheng15 any chance you could make a PR for it? no worries if it's too much to ask tho 😅

@victoriacheng15 any chance you could make a PR for it? no worries if it's too much to ask tho 😅

Yes, I can make the PR for adding license. 😀

Before I add, the full name on the license should be ykdojo?

sure, thank you.
or should we include all contributors? not sure

or should we include all contributors? not sure

Umm, I am not sure. I think it needs to be your name since you are the repo owner and open-sourcing this. And I did some look around repos to find "good first issue" issues today. Most of them tend to have the repo owner name or the organization name.

ok sounds good! let's use my name for now then


Use of --max-ind-range

I am having an issue with using --max-ind-range arg. It is used when preprocessing dataset and if we set it to low value while training run, it produces runtime error saying index out of range. Ideally, preprocessing should not use it but training run should do the modulo operation in data loader, what do you think?
Here is an example of error. I have preprocessed terabyte dataset using 10M range. Then if I run training with --max-ind-range=1000000 (1M), it produces this run time error:
python dlrm_s_pytorch.py --arch-sparse-feature-size=128 --arch-mlp-bot="13-512-256-128" --arch-mlp-top="1024-1024-512-256-1" --data-generation=dataset --data-set=terabyte --raw-data-file=$HOME/dlrm_dataset/day --processed-data-file=./input/terabyte_processed.npz --loss-function=bce --round-targets=True --learning-rate=1.0 --mini-batch-size=2048 --print-freq=10 --num-batches=100 --print-time --test-freq=0 --test-mini-batch-size=16384 --test-num-workers=0 --memory-map --mlperf-logging  --max-ind-range=1000000 --numpy-rand-seed 4

time/loss/accuracy (if enabled):
Traceback (most recent call last):
  File "dlrm_s_pytorch.py", line 1055, in <module>
    Z = dlrm_wrap(X, lS_o, lS_i, use_gpu, device)
  File "dlrm_s_pytorch.py", line 948, in dlrm_wrap
    return dlrm(X, lS_o, lS_i)
  File "/nfs_home/ddkalamk/venv/pytsrc/lib/python3.7/site-packages/torch/nn/modules/module.py", line 539, in _call_
    result = self.forward(*input, **kwargs)
  File "dlrm_s_pytorch.py", line 384, in forward
    return self.sequential_forward(dense_x, lS_o, lS_i)
  File "dlrm_s_pytorch.py", line 396, in sequential_forward
    ly = self.apply_emb(lS_o, lS_i, self.emb_l)
  File "dlrm_s_pytorch.py", line 338, in apply_emb
    V = E(sparse_index_group_batch.contiguous(), sparse_offset_group_batch)
  File "/nfs_home/ddkalamk/venv/pytsrc/lib/python3.7/site-packages/torch/nn/modules/module.py", line 539, in _call_
    result = self.forward(*input, **kwargs)
  File "/nfs_home/ddkalamk/venv/pytsrc/lib/python3.7/site-packages/torch/nn/modules/sparse.py", line 281, in forward
    per_sample_weights)
  File "/nfs_home/ddkalamk/venv/pytsrc/lib/python3.7/site-packages/torch/nn/functional.py", line 1646, in embedding_bag
    per_sample_weights)
RuntimeError: [enforce fail at embedding_lookup_idx.cc:226] 0 <= idx && idx < data_size. Index 815 is out of bounds: 2147347, range 0 to 1000000

What you can not do is run pre-process with one --max-in-range and then run training with another value of the --max-ind-range. Is this the case for your error above?

Yes, currently there is no use of specifying --max-ind-range while doing a training run (unless one is doing preprocessing in the same run). So, behavior of --max-ind-range for training run is confusing. It should either error out at the beginning saying --max-ind-range specified is smaller than actual embedding table size in pre-processed dataset so it avoids runtime error later or modulo operation should be performed in the data loader before returning the indices. I suggest using the later option as it allows doing preprocessing on some big fat machine once and use different --max-ind-range values for training runs based on resources available.
Also, it might be helpful to save --max-ind-range used for preprocessing and dump it at the time of loading the dataset. Also, dump the actual MLP and Embedding table sizes being used under MLPerf logging option.

"Yes, currently there is no use of specifying --max-ind-range ..."
This is not quite true. As I explained above, it is useful to cap the dictionary sizes during pre-processing in the same run. It is also useful to cap the index range when using uncapped pre-processed data that was generated  earlier.
I do agree with you that the behavior is not ideal and can be confusing. We will think of a way to address it. Thank you for raising this issue.

It is also useful to cap the index range when using uncapped pre-processed data that was generated earlier.

This is not true. My example run precisely shows this problem as indices goes out of range because tables are capped at max ind range value but corresponding modulo operation is not performed on indices even if pre-processing was done uncapped or with higher max-ind-range value.

Here is my attempt to fix this issue in dist_exp branch https://github.com/facebookresearch/dlrm/pull/55/commits/d48858dcb9ddc64e183239faab9a330ea1d7fd50

In short: You are correct. Your fix is reasonable, and we will adopt it.
A more detailed long answer is given below:
(1) In the original loader the mod by --max-ind-range used to happen in __default_preprocess routine, but later the use of this routine was abandoned in favor of direct pre-processing in the collate_wrapper, where mod by --max-ind-range was not propagated.
(2) In the mlperf loader the mod by --max-in-range also was not enforced.
This has probably gone unnoticed because it only affected cases when different --max-ind-range was used between dataset pre-processing and actual runs, which nobody seems to have exercised.

Thank you :)

I have updated the code with the following commit 5d31ee1
Please give it a try and let me know if it works for you.

Looks good. Thank you, closing the issue.


ansible-galaxy run in a container for stability

In the README document, the run.sh must need only docker runtime, but actually we need to install ansible-galaxy in a machine directly for executing run.sh .
I think ansible-galaxy should be run in a container same as ansible-playbook command.

galaxy is in the container, but there is a regression in the applier container - it no longer ships git. We'll get this fixed upstream. https://github.com/redhat-cop/openshift-applier/issues/18
@oybed :point_up:

@literalice can you update the script to consumer v3.9.0 tag from here instead: https://hub.docker.com/r/redhatcop/openshift-applier/tags/?
That tag should have the bug fixed.

@literalice @sherl0cks as the script doesn't specify a specific tag of the container image, this should just work as-is now with the latest image.
However, I'd recommend updating the galaxy requirements file to use the v3.9.0 tag for other purposes.
https://github.com/rht-labs/labs-ci-cd/blob/master/requirements.yml

just like we are pinning tags in other places, I'd like to pin it here too

@sherl0cks  @oybed Thank you for promptly handling the matter with care!
I agree to specifying the tag for preventing unexpected regression.
I've updated the PR, so would you check it?

@literalice I'm running a test now. run.sh, due to its nature, doesn't run through our CI. But I am actually testing by recreating the CI infra with your change. Should have feedback shortly.

@literalice looks good. Thanks for the change! Do let us know if you have any issues or feature requests.


Prefer fetch API over XHR

closes https://github.com/getsentry/raven-js/issues/930
I have confirmed that this works when I hooked up the little app in the example folder to an echo server. Could use some help testing making sure the data is accepted by a real sentry server.

@austinpray I think you accidentally committed some extra files here

Yep you right

Can you remove those redundant files please?
Also what's this ESLint error exactly?

I got rid of the accidentally added files! Eslint stuff explained inline

Also just now noticing that there are some tests that are failing on travis but not locally

It breaks locally as well:

Use npm run test to run all the tests, not npm run test:unit. If you want to run those one-off separate test, remember to run build first grunt build.test

Fixed in https://github.com/getsentry/raven-js/pull/1157


Show Image on Pasta Page

Add option to show image on pasta page if the file type is displayable

This is now available as of v2 betas


chore: remove unusued eslint no-missing-require

Description
Reducing diff from https://github.com/vitejs/vite/pull/16471/files#diff-025ab3858b18d79738fe83cbefd1c6b4d7c5a72a985ea21909b1b7ef827303a0L9
This eslint disable next line is reported as unused.

It is used if you haven't built Vite yet, otherwise you get:
/Users/bjorn/Work/oss/vite/packages/vite/index.cjs
  9:39  error  Can't resolve './dist/node-cjs/publicUtils.cjs' in '/Users/bjorn/Work/oss/vite/packages/vite'  n/no-missing-require

✖ 1 problem (1 error, 0 warnings)


Build: Export CRITICAL_SECTION_LOCK_LOG compile setting

While having the DEADLOCK_DETECTION CMake option turned on, an 'undefined symbol' error occurred when loading a shared library on a plugin.
Comparing the generated libraries, there was an obvious difference in the method signature. This is caused by the missing declaration of the CRITICAL_SECTION_LOCK_LOG compilation specifier, on the plugin side.
CRITICAL_SECTION_LOCK_LOG compilation specifier changes the implementation on CriticalSection, thus creating type misalignment when is not declared on both sides. Currently, it is not being exported.

@jfifranca we already expose CRITICAL_SECTION_LOCK_LOG. So as soon as your plugin is using the CMake modules supplied by Thunder (e.g. FindPackage(${NAMESPACE}Core REQUIRED) or FindPackage(${NAMESPACE}Plugins REQUIRED)) the define should be set automagically because it's exposed PUBLIC on the build interface of Thunder's Core library.
In the R3 release CRITICAL_SECTION_LOCK_LOG got renamed to __CORE_CRITICAL_SECTION_LOG__

Hi @bramoosterhuis! Thanks for your review comment. I've re-tested and it is ok. The problem was only on the plugin side, but tested with both changes (plugin and framework).
Also, thanks for the heads-up on R3!  👍
Will close the PR in accordance.


BucketIterator splits function takes batch values seperately for train valid and test split

BucketIterator.splits(
(train_data, valid_data, test_data),
batch_size = BATCH_SIZE,
device = device)

batch_size is replaced by batch_sizes which like the first argument datasets takes a tuple of ints
BucketIterator.splits(
(train_data, valid_data, test_data),
batch_sizes = (BATCH_SIZE,)*3, // either way (BATCH_SIZE,BATCH_SIZE,BATCH_SIZE)
device = device)

I think as we are using a single batch size for train, valid and test data then we should stick to using batch_size.
Could potentially use bigger batch sizes for valid/test (as we don't need to backprop) and if so, I would switch to batch_sizes. Will check what speed-ups we get and if it's considerable then I'll make the change.
Thanks for the suggestion.

I am sorry for the confusion. You are correct. Kindly ignore. Also it would be great if one notebook could be created explaining the gradient accumulation with Pytorch.
Thanks for such a wonderful tutorials


Basic shared folders support

Is there any interest to merge this? If so, I'd be happy to pick up the work and update the PR to the latest sources.

Personally I moved on and don't have any need for the code

@dlsniper yes please. If you could update the PR, please add some tests. There is a complete mock setup available to emulate the VBoxManage commands and responses.

Hi @dlsniper, I am looking at older issues and pull requests to tidy the repo up a bit. Since the original author said that it is no longer needed for them, I am closing this PR. If you would like to have this functionality added still please feel free to create a PR or an issue!


Facing issue on Bulk Update of a table(has table splits)

I have an entity Order which has a table split as in (https://docs.microsoft.com/en-us/ef/core/modeling/table-splitting).
public class Order
{
public int Id { get; set; }
public OrderStatus? Status { get; set; }
public DetailedOrder DetailedOrder { get; set; }
}
public class DetailedOrder
{
public int Id { get; set; }
public OrderStatus? Status { get; set; }
public string BillingAddress { get; set; }
public string ShippingAddress { get; set; }
public byte[] Version { get; set; }
}
modelBuilder.Entity(dob =>
{
dob.ToTable("Orders");
dob.Property(o => o.Status).HasColumnName("Status");
});
modelBuilder.Entity(ob =>
{
ob.ToTable("Orders");
ob.Property(o => o.Status).HasColumnName("Status");
ob.HasOne(o => o.DetailedOrder).WithOne()
.HasForeignKey(o => o.Id);
});
When I try to perform BulkUpdate as  _context.BulkUpdate(orders), I am seeing issue "The specified schema name "dbo" either does not exist or you do not have permission to use it.
Microsoft.Data.SqlClient.SqlException (0x80131904): The specified schema name "dbo" either does not exist or you do not have permission to use it".
Does this support table splits or Is there any way to configure for splits?

Table splits are not currently supported.

This can be achieved with 2 calls to BulkUpdate, configuring DestinatilName and PropsToExclude.
Similar to Owned type in separate tables: https://github.com/borisdj/EFCore.BulkExtensions/issues/114#issuecomment-803462928


O(n) instead of O(n^2) for TableRenderer.CreateConnectedRows() (with working? implementation)

The original implementation of TableRenderer.CreateConnectedRows() with in my example for 644 rows takes several seconds alone! The reason seems to be an implementation with a complexity of O(n^2).
So I've written a replacement with O(n) complexity and hope it is correct, please take a look:
Original:
foreach (Cell cell in _mergedCells)
{
    if (!_connectedRowsMap.ContainsKey(cell.Row.Index))
    {
        int lastConnectedRow = CalcLastConnectedRow(cell.Row.Index);
        _connectedRowsMap[cell.Row.Index] = lastConnectedRow;
    }
}

Replacement:
//filter only relevant cells for connected rows and take the max relevant value
var gluedCells = _mergedCells
      .Where(x => x.MergeDown > 0 || x.Row.KeepWith > 0)
     .GroupBy(x => x.Row.Index)
     .ToDictionary(x => x.Key, x => x.Select(y => Math.Max(y.MergeDown, y.Row.KeepWith)).Max());

_connectedRowsMap = new Dictionary<int, int>();

//to keep it O(n) lets try to keep it in a simple loop
for (var originalRow = 0; originalRow < _table.Rows.Count; originalRow++)
{
     //usually there is no merged cell, so lets initialize it with its own row index
     _connectedRowsMap[originalRow] = originalRow;
     //check if any cells are glued together with this row
     if (!gluedCells.TryGetValue(originalRow, out int offset)) continue;
     //calculate the last row index connected to the current row
     var lastRow = originalRow + offset;
     //lets iterate the rows connected to the current cell, to find out if there are even more rows connected
     for(var offsetRow = originalRow + 1; offsetRow <= lastRow; offsetRow++)
     {
          //check if any cells are glued together with this offset row
          if (!gluedCells.TryGetValue(offsetRow, out offset)) continue;
          //the next 3 lines make sure to get the larges offset of the connected rows, but not larger than the table really is
          var offsetLastRow = offsetRow + offset;
          if (offsetLastRow > lastRow) lastRow = offsetLastRow;
          if (lastRow + 1 >= _table.Rows.Count) lastRow = _table.Rows.Count - 1;
    }
    //now that we've found out, what the last row is, we can set the mapping for all of these rows
    for(var rowId = originalRow; rowId <= lastRow; rowId++)
    {
        _connectedRowsMap[rowId] = lastRow;
    }
    //but wait, we gotta make sure to stay O(n), so lets skip the offset rows that are connected to the current row
    originalRow = lastRow;
}

In my case the difference is from >15s to ms...
(though there are other places, that need optimization, to make tables with more rows viable)

I'm also starting to look at CrateNextBottomBorderPosition, which seems to be a bit similar.
Any hints to what things I have to consider, pleas tell me.

I hope your code also works with irregular tables as shown in this thread:
https://forum.pdfsharp.net/viewtopic.php?p=11456#p11456

yes it should, but i will check just to be sure

So testing took me a second longer because i was wondering why i had 5 instead of 4 entries, but the original code has the same result, so I'm quite confident ;)
var row1 = tabl.AddRow();
var row2 = tabl.AddRow();
var row3 = tabl.AddRow();
var row4 = tabl.AddRow();
row1[0].MergeDown = 1;
row2[1].MergeDown = 1;

results in:
0 => 0
1 => 3
2 => 3
3 => 3
4 => 4
which is identical to the original implementation

though as i realized it's not really O(n) since the gluedCells is a dictionary it is O(n) by changing the dictionary to an array it will actually be O(n), will make the necessary changes now

Actual O(n) implementation (replaced Dictionary with int[])
var gluedCells = new int[_table.Rows.Count];
foreach(var cell in _mergedCells)
{
    if(cell.MergeDown > gluedCells[cell.Row.Index])
    {
        gluedCells[cell.Row.Index] = cell.MergeDown;
    }
    if(cell.Row.KeepWith > gluedCells[cell.Row.Index])
    {
        gluedCells[cell.Row.Index] = cell.Row.KeepWith;
    }
}

_connectedRowsMap = new Dictionary<int, int>();
for (var originalRow = 0; originalRow < _table.Rows.Count; originalRow++)
{
    _connectedRowsMap[originalRow] = originalRow;
    if (gluedCells[originalRow] <= 0) continue;
    var offset = gluedCells[originalRow];
    var lastRow = originalRow + offset;
    for(var offsetRow = originalRow + 1; offsetRow <= lastRow; offsetRow++)
    {
        if (gluedCells[offsetRow] <= 0) continue;
        offset = gluedCells[originalRow];
        var offsetLastRow = offsetRow + offset;
        if (offsetLastRow > lastRow) lastRow = offsetLastRow;
        if (lastRow + 1 >= _table.Rows.Count) lastRow = _table.Rows.Count - 1;
    }
    for(var rowId = originalRow; rowId <= lastRow; rowId++)
    {
        _connectedRowsMap[rowId] = lastRow;
    }
    originalRow = lastRow;
}

If you are interested and also want me to implement CreateNextBottomBorderPosition that works 100% with the current implementation, please let me know and give an exact description of what the Function is trying to do (because by reading the code I'm not 100% sure what to take into account.
In my case I've fixed the performance to a bearable amount by creating a separate table for each row...


stuck on reconnecting

hi, running the commands in the README, this is what I get:
proxy URL: http://localhost:2017
Reconnect after 8 seconds ...
Reconnect after 9 seconds ...
Is this no longer working?

you need to start proxy server yourself


mutatingWebhook is being flagged as unsafe

The cloud-sql-proxy-operator mutating webhook can intercept pods in system-managed namespaces. Because of that GKE is flagging the webhook as unsafe.
From the GKE documentation:

If a webhook is intercepting any resources in system-managed namespaces, or certain types of resources, GKE considers this unsafe and recommends that you update the webhooks to avoid intercepting these resources.

The recommended action is to change the scope of the resources to namespaced from * and exclude the system-managed namespaces with the help of the namespaceSelector on the MutatingWebhookConfiguration resource (Since Kubernetes v1.21). However, I am not sure if this would affect any potential use cases of the cloud-sql-proxy-operator.
What are your opinions on this?

I think this is a bug -- we shouldn't be causing GKE to flag the Operator. Adjusting the priority down, though, as it's not going to interfere with operations.

Here's a screenshot of the warning for reference:

Based on GKE's version support, I think v1.21 (April 8, 2021) is already unsupported. So we're good to use a > v1.21 solution here (i.e. namespaceSelector).


sketch of combat system

sed wasn't a great idea. i've replaced all .attacking on .is_attacking :D gonna replace it back

I think it's ready to be merged


Update module.json

compatibleCoreVersion and minimumCoreVersion to align with mainline release (currently 0.7.9)

See https://github.com/Moerill/fvtt-pointer/issues/21


IndexError: arrays used as indices must be of integer (or boolean) type

Hi, I run into an issue:
Traceback (most recent call last):
  File "/apps/python3/3.7.4/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/apps/python3/3.7.4/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "peddy/peddy/__main__.py", line 14, in <module>
    sys.exit(cli())
  File "pythonlib/lib/python3.7/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "pythonlib/lib/python3.7/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "pythonlib/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "pythonlib/lib/python3.7/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "peddy/peddy/cli.py", line 271, in peddy
    excl = correct_sex_errors(ped_df)
  File "peddy/peddy/cli.py", line 105, in correct_sex_errors
    osc[sel] = ito
IndexError: arrays used as indices must be of integer (or boolean) type

quick solution:
change cli.py" line 104:
from: sel = (gt & sf & (sc == ifrom))
to: sel = (gt & sf & (sc == ifrom)) != 0
Disclaimer: I am not a python programmer and it was a really quick fix without much (any) thinking.
Cheers, Marcin

I see something similar with peddy 0.4.4:
  File "/home/rdk4/local/share/bcbio/anaconda/envs/python2/lib/python2.7/site-packages/peddy/cli.py", line 226, in peddy
    da = df.iloc[df['sample_duplication_error'], 'sample_a']
  File "/home/rdk4/local/share/bcbio/anaconda/envs/python2/lib/python2.7/site-packages/pandas/core/indexing.py", line 1494, in __getitem__
    return self._getitem_tuple(key)
  File "/home/rdk4/local/share/bcbio/anaconda/envs/python2/lib/python2.7/site-packages/pandas/core/indexing.py", line 2143, in _getitem_tuple
    self._has_valid_tuple(tup)
  File "/home/rdk4/local/share/bcbio/anaconda/envs/python2/lib/python2.7/site-packages/pandas/core/indexing.py", line 223, in _has_valid_tuple
    self._validate_key(k, i)
  File "/home/rdk4/local/share/bcbio/anaconda/envs/python2/lib/python2.7/site-packages/pandas/core/indexing.py", line 2060, in _validate_key
    raise NotImplementedError("iLocation based boolean "
NotImplementedError: iLocation based boolean indexing on an integer type is not available

will you give the latest commit a try?

Thanks, that fixed it! If you cut a new release I'll fix the bioconda package for it.

tagged 0.4.5 and uploaded to pypi. thank you!

Great, bioconda looks all set. Thanks so much, hope you and your family are holding up well!

I have a user reporting a conda error on 0.4.5 (she was seeing it previously as well), I am trying to get more details. Thanks for doing this.
Family is doing well so far. Hope you and yours are well too!

Thanks, happy to help fix it once we can get some more information.


Npm start gives my this error

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: react-scripts start
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

You would need to npm run develop.
Please refer to the docs for setting up freecodecamp locally.
I am closing this issue for now. Feel free to reopen if this issue has not been resolved on your side.


Nesting figma.nestedProps

Hi Figma team,
I got the following error message when I nested figma.nestedProps.
nestedProps can not be nested inside another nestedProps call, instead, pass the deeply nested layer name at the top level
I am not sure about the deeply nested layer name. May I ask about it?

@figma/code-connect: 1.1.4
macOS Sonoma 14.4.1

Oh, I understand. It means I can directly specify the name of the child layer.
I was able to connect.

Thanks @takanopontaro, let us know if you experience further issues


remove python 3.6 from builds, tests and packages

Description

Checklist

[ ] I have added screenshots above for all UI changes.
[ ] I have added e2e tests for all UI changes.
[ ] Documentation was updated if it was needed.

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

Comparison is base (f5118e4) 89.52% compared to head (96150f6) 88.38%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2442      +/-   ##
==========================================
- Coverage   89.52%   88.38%   -1.14%
==========================================
  Files         122       39      -83
  Lines        6751      844    -5907
==========================================
- Hits         6044      746    -5298
+ Misses        707       98     -609

Flag
Coverage Δ

unittests
88.38% <ø> (-1.14%)
:arrow_down:

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

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


Updates informer pkg to use TransformFunc()

Removes ConvertFunc in favor of TransformFunc for object transformation. Informers are now created with TransformFunc instead of ConvertFunc to mutate certain resources in K8s Caches.
Renames ConvertXXX functions to TransformXXX.
Adds tests to pkg/k8s/init_test.go to improve test coverage of transformer functions.

Fixes: #24923

@giorio94 thanks for the /approval. I updated the PR description and commit 44598e0 resolves your nits.

@giorio94 thanks for the /approval. I updated the PR description and commit 44598e0 resolves your nits.

Thanks! Could you please also extend the commit message with a bit of description?

/test

@christarazi you still have requested changes that I resolved from your review. PTAL when you have a moment.

/test

@christarazi and others, is there anything else needed to merge this PR?

Commit c2078e9 rebases due to https://github.com/cilium/cilium/pull/25049.

/test

/test

@christarazi thanks for kicking off the tests. The test-1.26-net-next job is failing due to:
/home/jenkins/workspace/Cilium-PR-K8s-1.26-kernel-net-next/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:515
Unexpected missed tail call
Expected
    <int>: 1
to be ==
    <int>: 0
/home/jenkins/workspace/Cilium-PR-K8s-1.26-kernel-net-next/src/github.com/cilium/cilium/test/k8s/updates.go:129

It appears the upgrade was unsuccessful (^ calls assertUpgradeSuccessful()), possibly due to one of the agents failing readiness probes:
22:18:19 STEP: Cilium is not ready yet: connectivity health is failing: Cluster connectivity is unhealthy on 'cilium-rwcn6': Exitcode: 1
Err: exit status 1
Stdout:

Stderr:
 	 Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), clean-cilium-state (init), install-cni-binaries (init)
	 Error: Cannot get status/probe: Put "[http://%2Fvar%2Frun%2Fcilium%2Fhealth.sock/v1beta/status/probe":](http://%2Fvar%2Frun%2Fcilium%2Fhealth.sock/v1beta/status/probe) dial unix /var/run/cilium/health.sock: connect: no such file or directory

	 command terminated with exit code 1

I don't believe this is related to the PR so I wanted to get your input on how to proceed.

It's flake https://github.com/cilium/cilium/issues/24514.

Let's see if the next test run can pass without flakes.

/test

@christarazi when you have a moment, can you please advise me on how to move this PR forward?

@danehans once the reviews are all approved from relevant code owner areas and the required CI tests are all passing, the maintainer's little helper marks the PR ready-to-merge like above. Someone then comes through and does last sanity checks and merges the PR. Thanks for the contribution!

cc @joestringer @danehans @christarazi ^

Also, feel free to ping me on PRs around this part of client-go, given I re(wrote) some of it a few months ago to fix some policy leaks we saw in cilium 😄

@odinuge thanks for the feedback. As you can see here, this PR did not change the logic of TransformToCCNP(). Prior to this PR, the code you're referencing looked like:
case cache.DeletedFinalStateUnknown:
		ccnp, ok := concreteObj.Obj.(*cilium_v2.CiliumClusterwideNetworkPolicy)
		if !ok {
			return obj
		}

and now the same codeblock returns nil and an error instead of the provided object:
	case cache.DeletedFinalStateUnknown:
		ccnp, ok := concreteObj.Obj.(*cilium_v2.CiliumClusterwideNetworkPolicy)
		if !ok {
			return nil, fmt.Errorf("unknown object type %T", concreteObj.Obj)
		}

TransformToCCNP() before and after this PR expected obj to be a CiliumClusterwideNetworkPolicy (embedded in the case of DeletedFinalStateUnknown) and return a SlimCNP (embedded in DeletedFinalStateUnknown). This pattern is consistent with other TransformXXX funcs in the pkg. The associated tests were updated accordingly and currently pass when I run them locally. It appears that TransformToCCNP() is being called somewhere in the code when it shouldn't be, e.g. no need to transform an object that is already a SlimXXX.

Thanks for looking into this @danehans!
Yeah, the old godocs were pretty ambiguous, and the k8s behavior in client-go that the informer mimics, was pretty inconsistent previously. It still has some legacy it has to deal with, and i think thats the reason for the current function . I have also spent a lot of time wrapping my head around this. So I very much agree this is a bit confusing 😅
I think it all boils down to this; https://github.com/cilium/cilium/blob/a82f0fc303c5ff511b2550b775849abec30dbb3e/pkg/k8s/informer/informer.go#L99-L102
There, we always call the transform funcs, just like client-go. So even if the object is an DeletedFinalStateUnknown, we run the transformer.
I should also have been explicit that my comment applies equally to all those transformer functions that return a different type than they receive; not only the CCNP one. 😄
Should we maybe open a new issue to track this? What do you think @danehans? If you to implement a fix here, I'm happy to review! 😄  (tho. I'm heading out of the office for the next two weeks 🌴)

I assigned myself https://github.com/cilium/cilium/issues/26240 and will push a PR to fix it.


VS2019 Preview - Blazor

Not sure, if this is the right place for this kind of issue.
I downloaded VS2019 Pro Preview Edition in order to try out Blazor.
Now I am following along some samples on the official asp.net core docs pages.
All in all, the IDE detects bugs when there are no bugs, only an IDE restart helps then.
I have a PetDetails component but it gets generated as PetDetails_ ??!
If the .net core 3.0 release is in september, the IDE guys still have some work to do.
Close it if it's a duplicate and reference it to an existing thread/issue.

I have a PetDetails component but it gets generated as PetDetails_

There was a blank character in the filename.
But yet, the IDE has still some bugs.


Fixed OneHotEncoder to use version from sklearn-contrib/categorey enc…

Resolves issue #7
See issue thread for more details. Resolved critical stability / functionality issues. Deferring resolution of OneHotEncoder enhancements including ability to bin infrequent categorical values into a single encoding for future work.
Changes are relatively minor, column naming convention of this library is different than pandas get_dummies() and changes have been reflected in unit tests.

Pull Request Test Coverage Report for Build 99

3 of 3 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 89:
0.0%

Covered Lines:
995

Relevant Lines:
995

💛  - Coveralls


change spinner behavior

As I use the CLI more, I find the spinner text that gets left behind
isn't actually useful -- it's only useful while it's happening.
After the message was completed, the user will have two states:

It was successful, at which point the informational text that tells
them why they're waiting is no longer useful.
It failed, at which point, we'd also have separate error messages
below the spinner text.

In summary, it's good to have the text in transient form, and clear it
out when done.
Before

After

@cyx since the spinner will most likely flash quickly, should we remove the text ('Loading x')?

@cyx since the spinner will most likely flash quickly, should we remove the text ('Loading x')?

I'm not sure where that is defined. Do you mean the provided text?

@cyx since the spinner will most likely flash quickly, should we remove the text ('Loading x')?

I'm not sure where that is defined. Do you mean the provided text?

Yup, the provided text. If the spinner will flash and disappear, it should probably have no text.

Sure I'm OK with these proposed changes. Can do them later or feel free to make the changes

Go ahead whenever you are available.

Keep in mind that now some operations will need a 'done'  confirmation, as the provided text (along with the spinner) will no longer be there:

Good point.  One option is to have a version which is backwards compatible
and another which is a transient spinner. We can probably start there,  +1?
On Fri, Mar 19, 2021, 7:10 PM Rita Zerrizuela @.***>
wrote:

Keep in mind that now some operations will need a 'done' confirmation, as
the provided text (along with the spinner) will no longer be there:
[image: Screen Shot 2021-03-19 at 23 08 28]
https://user-images.githubusercontent.com/5055789/111856258-3f51c800-8908-11eb-899e-9484be35564a.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/auth0/auth0-cli/pull/173#issuecomment-803226963, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAARUONQUWJLGANOWVPRG3TEP7Z5ANCNFSM4ZPVBSPQ
.

+1


Node.js 12 support

Hello,
The current version of jsdoc include in this package is 3.4.1 but it is broken under node v12.
To fix this you need to update jsdoc to v3.6.0.
Here a topic about this issue: Node.js 12 support
Best regards.

Thanks. The package.json says: "jsdoc": "^3.4.1", which includes 3.6.0. You can try clearing your package-lock.json or yarn.lock and reinstalling to get a later version.
See: https://semver.npmjs.com/

It work well.
Thanks a lot !


[WIP] Mojangson utility for parsing and writing NBT Tags from/to JSON Text

This class is a utility for parsing and writing NBT compounds and lists from and to JSON text, using the JSONSimple library. There is currently no implemented use of this class in G++, but I will be working on the summon command when this utility is done.
"Mojangson" is the term Mojang uses to refer to NBT tags serialized as (almost) JSON, so it can be manipulated by the player using different commands, such as /summon, /entitydata, etc. The main difference between Mojangson over JSON is the relative flexibility: it does not need double-quotes for JSON element key names.
I am putting this here as I would like to have feedback on the class first before working on an implementation. Parsing and writing Mojangson/JSON using this utility has been tested.
TODO list:

[x] Transform NBT Tags to JSON
[x] Transform JSON to NBT Tags
[x] Transform JSON to Mojangson
[x] Transform Mojangson to JSON
[ ] Add suffixes to Mojangson tag values

Would using o.getClass() == X.class be better than using instanceof in this case?
Also, do you see a benefit to using Gson instead of JSON-Simple?

@mastercoms
What lines are you referring to?
To answer your question, I wouldn't see a real advantage on using either: JSON-Simple is 50% faster than GSON for large files (> 100MB), but GSON is faster by 5% for smaller files (<1KB). Which makes JSON-Simple a better solution for general cases, but since we are talking NBT serialization, there is pretty much no difference.

I will mark this as WIP, as there are a couple changes to make because Mojangson people have the brillant idea of accepting key names without double-quotes.

For Gson vs JSON-Simple, I don't mean in terms of performance, necessarily. But rather, in terms of code simplicity.

@mastercoms
I have never used Gson in a parsing context, but the writing process seems very similar to JSON-Simple, which I do not personally see an inconvenient in using. Plus, it seems that the whole project uses JSON-Simple, but I do see two Todos to replace J-S by Gson in the future by @kamcio96. In fact, Gson is imported because it is bundled with Vanilla MC and comes with Bukkit/Glowkit  (so does J-S), but Gson has no use in our server implementation currently.
All in all, I wouldn't say that it is an absolute need to use Gson instead of J-S here, but if we are going to make a transition, we should probably convert the whole repo at the same time, to make it a more logical decision.

Yes, a big switch would be more reasonable.

I would put this on hold for a moment: Mojangson is actually very different (in terms of flexibility) than JSON, which means it uses more symbols that may or may not be present depending on the type of value. I'll dig more into this before actually calling this any where near final.

I have created an API for Mojangson in a separate repository. How should we implement this inside G++?

put it in util.mojangson

Closing this because a JSON Parser is not appropriate for Mojangson. See new PR #238.


USE/4 Preprocessing

Hiya,
The site for the Universal Sentence Encoder (https://tfhub.dev/google/universal-sentence-encoder/4) says "The module does not require preprocessing the data before applying the module, it performs best effort text input preprocessing inside the graph." However, I haven't been able to find out what exactly is being done as preprocessing. I wanted to know this to gain a better understanding of the model.
Cheers,
Akash

Preprocessing in this model refers to tokenization of the input string into uni-grams and/or bi-grams in a predefined vocabulary that maps them to integer IDs. This model accomplishes this by using a combination of tf.split_text and tf.regex* and other tf.string* operations.

Thanks! If you don't mind, I have a couple more follow up questions:

How does the model handle Out-of-Vocabulary words?
Is the model case sensitive?

Got it. Thanks!

Heya @djdongjin @jaxlaw, I was wondering if there's any place where I can actually take a look at the code for the preprocessing that's been done. Is this available anywhere?

Heya @djdongjin @jaxlaw, I was wondering if there's any place where I can actually take a look at the code for the preprocessing that's been done. Is this available anywhere?

Hi, since the authors of USE didn’t open source their codebase, I’m afraid you cannot find the code.

Ah, that is unfortunate. Do you happen to know if the normal USE (https://tfhub.dev/google/universal-sentence-encoder/4) does any sort of clipping to the text? I saw in other issues opened up that it clips the text at 128 tokens for the Lite and Large models. Do you have any intuition on why this was done for the Large model and if the same is happening here?

I suggest you go through the USE paper from which you can get more details and intuitions.


Update components.scss

Fixes #4400

Hi @riteshsinghh-coder, thanks for your contribution.
As #4400 has been closed, I am closing this PR.
Please look out for other issues and drop a comment on issue that you want to work on the issue to get assigned to the issue first before raising PR.


Add missing iso proxmoxve-autoformat to allow run from docker-machine

BurmillaOS Version: (ros os version)
v1.9.3
Where are you running BurmillaOS? (docker-machine, AWS, GCE, baremetal, etc.)
ProxmoxVE, docker-machine
Which processor architecture you are using?
amd64
Which console you use (default, ubuntu, centos, etc..)
default
Hi,
Please add iso proxmoxve-autoformat to allow run from docker-machine
cf. https://burmillaos.org/docs/installation/workstation/docker-machine/
Thank you

We did on purpose drop most of the ready made platform specific images because often users want create their own disk images with customizations. You can find some scripts for that process from https://github.com/burmilla/os-packer I guess that OpenStack version would works on ProxmoxVE too.
Also note that docker-compose have been deprecated couple of years already so at least Rancher's version from
https://github.com/rancher/machine

Ok, no problem, I switched to Fedora Core OS.
Yep, I use rancher to manage my VMs so with rancher/machine ;)
Thank you for reply