"bad transparency mask" error animated gifs

Software versions
Python: 3.11.6 64bit
OS: Windows 11
Kivy:  2.2.1
Description of the problem
"bad transparency mask" error message when attempting to display some animated GIFs using AsyncImage
'KIVY_IMAGE' environment is default
Error message logged is "bad transparency mask"
Are there alternative image rendering options for animated GIFs, apart from pil which I believe to be what's throwing this error when it encounters an image with a bad transparency mask,
Same images work on image viewers and when opened on the browser. I was hoping Kivy has a default work around for this.
Given an image with a "bad transparency mask", this same behavior should be reproducible
minimal code that produces behavior
image_wid = AsyncImage(
    source="path-to-bad-transparency-mask-image.gif",
)

parent_wid.add_widget(image_wid)

Sample images with "bad transparency mask":

Screenshots
Window looks like this, with the gifs in question replaced with the still loading icon:

Kivy logs:
[INFO   ] [deps        ] Successfully imported "kivy_deps.angle" 0.3.3
[INFO   ] [deps        ] Successfully imported "kivy_deps.glew" 0.3.1
[INFO   ] [deps        ] Successfully imported "kivy_deps.sdl2" 0.6.0
[INFO   ] [Kivy        ] v2.2.1
[INFO   ] [Kivy        ] Installed at "C:\Python311\Lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.11.6 (tags/v3.11.6:8b6ee5b, Oct  2 2023, 14:57:12) [MSC v.1935 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "C:\Python311\python.exe"
[INFO   ] [Logger      ] Purge log fired. Processing...
[INFO   ] [Logger      ] Purge finished!
[INFO   ] [Factory     ] 190 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] GLEW initialization succeeded
[INFO   ] [GL          ] Backend used <glew>
[INFO   ] [GL          ] OpenGL version <b'4.6.0 - Build <IP_ADDRESS>5'>
[INFO   ] [GL          ] OpenGL vendor <b'Intel'>
[INFO   ] [GL          ] OpenGL renderer <b'Intel(R) HD Graphics 620'>
[INFO   ] [GL          ] OpenGL parsed version: 4, 6
[INFO   ] [GL          ] Shading version <b'4.60 - Build <IP_ADDRESS>5'>
[INFO   ] [GL          ] Texture max size <16384>
[INFO   ] [GL          ] Texture max units <32>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
Scanning 1280 x 720 ...
Scanning 1920 x 1080 ...
Scanning 426 x 240 ...
Scanning 480 x 360 ...
Scanning 640 x 480 ...
Scanning bad-transparency-error ...
[DEBUG  ] [tag         ] Orientation (274) - type: short (3) - value: b'\x01\x00'
[DEBUG  ] [tag         ] XResolution (282) - type: rational (5) Tag Location: 34 - Data Location: 86 - value: b'H\x00\x00\x00\x01\x00\x00\x00'
[DEBUG  ] [tag         ] YResolution (283) - type: rational (5) Tag Location: 46 - Data Location: 94 - value: b'H\x00\x00\x00\x01\x00\x00\x00'
[DEBUG  ] [tag         ] ResolutionUnit (296) - type: short (3) - value: b'\x02\x00'
[DEBUG  ] [tag         ] YCbCrPositioning (531) - type: short (3) - value: b'\x01\x00'
[DEBUG  ] [tag         ] ExifIFD (34665) - type: long (4) - value: b'f\x00\x00\x00'
Scanning sample-gif ...
Scanning sample-gif - Copy ...
Scanning sample-gif - Copy (2) ...
['./test-imgs\\1280 x 720\\image-1.jpg', './test-imgs\\1280 x 720\\image-2.jpg', './test-imgs\\1280 x 720\\image-3.jpg', './test-imgs\\1280 x 720\\image-4.jpg']
[INFO   ] [Loader      ] using a thread pool of 2 workers
[INFO   ] [Base        ] Start application main loop
[INFO   ] [GL          ] NPOT texture support is available
['./test-imgs\\1280 x 720\\image-5.jpg', './test-imgs\\1920 x 1080\\image-1.jpg', './test-imgs\\1920 x 1080\\image-10.jpg', './test-imgs\\1920 x 1080\\image-2.jpg']
['./test-imgs\\1920 x 1080\\image-3.jpg', './test-imgs\\1920 x 1080\\image-4.jpg', './test-imgs\\1920 x 1080\\image-5.jpg', './test-imgs\\1920 x 1080\\image-6.jpg']
['./test-imgs\\1920 x 1080\\image-7.jpg', './test-imgs\\1920 x 1080\\image-8.jpg', './test-imgs\\1920 x 1080\\image-9.jpg', './test-imgs\\200w.gif']
[DEBUG  ] Importing BlpImagePlugin
[DEBUG  ] Importing BmpImagePlugin
[DEBUG  ] Importing BufrStubImagePlugin
[DEBUG  ] Importing CurImagePlugin
[DEBUG  ] Importing DcxImagePlugin
[DEBUG  ] Importing DdsImagePlugin
[DEBUG  ] Importing EpsImagePlugin
[DEBUG  ] Importing FitsImagePlugin
[DEBUG  ] Importing FitsStubImagePlugin
[DEBUG  ] Importing FliImagePlugin
[DEBUG  ] Importing FpxImagePlugin
[DEBUG  ] [Image       ] failed to import FpxImagePlugin: No module named 'olefile'
[DEBUG  ] Importing FtexImagePlugin
[DEBUG  ] Importing GbrImagePlugin
[DEBUG  ] Importing GifImagePlugin
[DEBUG  ] Importing GribStubImagePlugin
[DEBUG  ] Importing Hdf5StubImagePlugin
[DEBUG  ] Importing IcnsImagePlugin
[DEBUG  ] Importing IcoImagePlugin
[DEBUG  ] Importing ImImagePlugin
[DEBUG  ] Importing ImtImagePlugin
[DEBUG  ] Importing IptcImagePlugin
[DEBUG  ] Importing JpegImagePlugin
[DEBUG  ] Importing Jpeg2KImagePlugin
[DEBUG  ] Importing McIdasImagePlugin
[DEBUG  ] Importing MicImagePlugin
[DEBUG  ] [Image       ] failed to import MicImagePlugin: No module named 'olefile'
[DEBUG  ] Importing MpegImagePlugin
[DEBUG  ] Importing MpoImagePlugin
[DEBUG  ] Importing MspImagePlugin
[DEBUG  ] Importing PalmImagePlugin
[DEBUG  ] Importing PcdImagePlugin
[DEBUG  ] Importing PcxImagePlugin
[DEBUG  ] Importing PdfImagePlugin
[DEBUG  ] Importing PixarImagePlugin
[DEBUG  ] Importing PngImagePlugin
[DEBUG  ] Importing PpmImagePlugin
[DEBUG  ] Importing PsdImagePlugin
[DEBUG  ] Importing QoiImagePlugin
[DEBUG  ] Importing SgiImagePlugin
[DEBUG  ] Importing SpiderImagePlugin
[DEBUG  ] Importing SunImagePlugin
[DEBUG  ] Importing TgaImagePlugin
[DEBUG  ] Importing TiffImagePlugin
[DEBUG  ] Importing WebPImagePlugin
[DEBUG  ] Importing WmfImagePlugin
[DEBUG  ] Importing XbmImagePlugin
[DEBUG  ] Importing XpmImagePlugin
[DEBUG  ] Importing XVThumbImagePlugin
['./test-imgs\\426 x 240\\image-1.jpg', './test-imgs\\426 x 240\\image-2.jpg', './test-imgs\\426 x 240\\image-3.jpg', './test-imgs\\426 x 240\\image-4.jpg']
['./test-imgs\\426 x 240\\image-5.jpg', './test-imgs\\480 x 360\\image-1.jpg', './test-imgs\\480 x 360\\image-2.jpg', './test-imgs\\480 x 360\\image-3.jpg']
['./test-imgs\\480 x 360\\image-4.jpg', './test-imgs\\480 x 360\\image-5.jpg', './test-imgs\\640 x 480\\image-1.jpg', './test-imgs\\640 x 480\\image-2.jpg']
['./test-imgs\\640 x 480\\image-3.jpg', './test-imgs\\640 x 480\\image-4.jpg', './test-imgs\\640 x 480\\image-5.jpg', './test-imgs\\bad-transparency-error\\installer.gif']
bad transparency mask
['./test-imgs\\bad-transparency-error\\sample.gif', './test-imgs\\bad-transparency-error\\SampleGIFImage_350kbmb.gif', './test-imgs\\bad-transparency-error\\SampleGIFImage_40kbmb.gif', './test-imgs\\image-1.jpg']
bad transparency mask
bad transparency mask
bad transparency mask
['./test-imgs\\sample-gif\\200w.gif', './test-imgs\\sample-gif\\209736462-a686bb2c-b99d-480a-9798-13e204083281.gif', './test-imgs\\sample-gif\\giphy.gif', './test-imgs\\sample-gif\\installer.gif']
bad transparency mask

I am not sure if my post is appropriate for on here. I had asked for help on Reddit among Kivy users before this and was directed to here.
The conversation thread is this https://www.reddit.com/r/kivy/s/ZOeXBsk5wA
Kindly advise me on whether this post is appropriate. (I'm new to programming and Kivy and might have asked a dumb question, I don't know)
I hopes someone can see this and advice.
Thank you.

The AsycImage widget is not calling the error callback or throwing an exception with any of the animated gifs above.   It does not display with image.
Using the test code below and the gif images posted above.  Using any of the images above will cause the message "bad transparency mask" to be printed to the console.  It is not a formatted log message.  The error callback is not dispatched, and there is no exception thrown.
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.image import AsyncImage

class CheckBadMaskApp(App):
    def build(self):
        return GridLayout(cols=2)

    def on_start(self):
        try:
            ai = AsyncImage(source='good.jpg', on_load=self.load_callback, on_error=self.error_callback)
            self.root.add_widget(ai)
            ai = AsyncImage(source='installer.gif', on_load=self.load_callback, on_error=self.error_callback)
            self.root.add_widget(ai)
        except Exception as e:
            print(f'Exception {e}')

    def error_callback(self, obj):
        print('error callback')

    def load_callback(self, obj):
        print('load callback')

CheckBadMaskApp().run()

Using a "good" image, the image is visible and the load_callback is executed.
Using an 'installer.gif' causes an issue.  "bad transparency mask" is printed to the console, it is not a formatted log message.  The on_error or on_load callbacks are not called.  An exception is not thrown.
`

The AsycImage widget is not calling the error callback or throwing an exception with any of the animated gifs above. It does not display with image.
Using the test code below and the gif images posted above. Using any of the images above will cause the message "bad transparency mask" to be printed to the console. It is not a formatted log message. The error callback is not dispatched, and there is no exception thrown.
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.image import AsyncImage

class CheckBadMaskApp(App):
    def build(self):
        return GridLayout(cols=2)

    def on_start(self):
        try:
            ai = AsyncImage(source='good.jpg', on_load=self.load_callback, on_error=self.error_callback)
            self.root.add_widget(ai)
            ai = AsyncImage(source='installer.gif', on_load=self.load_callback, on_error=self.error_callback)
            self.root.add_widget(ai)
        except Exception as e:
            print(f'Exception {e}')

    def error_callback(self, obj):
        print('error callback')

    def load_callback(self, obj):
        print('load callback')

CheckBadMaskApp().run()

Using a "good" image, the image is visible and the load_callback is executed. Using an 'installer.gif' causes an issue. "bad transparency mask" is printed to the console, it is not a formatted log message. The on_error or on_load callbacks are not called. An exception is not thrown.
`

I really appreciate you taking the time to help me articulate the issue in a more professional and comprehensive way. Your rephrasing makes the problem much clearer and easier for others to understand. I'm especially grateful for the detailed code example you provided, as it effectively demonstrates the specific behavior I'm encountering.

Thanks @ElliotGarbus: I was just making a similar comment when yours appeared.
There are several issues here, and I want to refocus it.

img_pil.py has a comment:

Support for GIF animation added.
Gif animation has a lot of issues(transparency/color depths... etc).
In order to keep it simple, what is implemented here is what is
natively supported by the PIL library.
As a general rule, try to use gifs that have no transparency.
Gif's with transparency will work but be prepared for some
artifacts until transparency support is improved.

So adding transparency support would be nice.
That said, the two GIFs I examined didn't have transparency (image.mode == 'P').

Correctly or not, PIL is raising an exception. However, it is not being caught in the case of AsyncImage and sent to on_error(). If true, this is a bug that should be fixed.

Related: LoaderBase._load() is raising an exception. It should not do this; it should log the error. This is a bug that needs to be fixed.

kivy.loader's _Worker is catching any Exception and printing it, rather than logging it as an exception. This is a bug that should be fixed.

OP is asking for a work-around. That is out of scope for this bug report.

While you are in the area, loader.py has an except: block with no exception named. This means it traps memory errors and abort commands. It should be replaced with the minimal exceptions expected.

Thanks @ElliotGarbus: I was just making a similar comment when yours appeared.
There are several issues here, and I want to refocus it.

img_pil.py has a comment:

Support for GIF animation added.
Gif animation has a lot of issues(transparency/color depths... etc).
In order to keep it simple, what is implemented here is what is
natively supported by the PIL library.
As a general rule, try to use gifs that have no transparency.
Gif's with transparency will work but be prepared for some
artifacts until transparency support is improved.

So adding transparency support would be nice.
That said, the two GIFs I examined didn't have transparency (image.mode == 'P').

Correctly or not, PIL is raising an exception. However, it is not being caught in the case of AsyncImage and sent to on_error(). If true, this is a bug that should be fixed.

Related: LoaderBase._load() is raising an exception. It should not do this; it should log the error. This is a bug that needs to be fixed.

kivy.loader's _Worker is catching any Exception and printing it, rather than logging it as an exception. This is a bug that should be fixed.
OP is asking for a work-around. That is out of scope for this bug report.

While you are in the area, loader.py has an except: block with no exception named. This means it traps memory errors and abort commands. It should be replaced with the minimal exceptions expected.

Thanks for the analysis and bug identification, This helped me understanding the underlying issues. Fixing the exception handling would be fantastic.

@KBungei
If you’d like some help on some possible work arounds, we can resume the discussion on Reddit.

@ElliotGarbus
Thank you! I'd be happy to discuss them on Reddit.


[Feature][Connector-V2][Lemlist]Add Lemlist source connector

Purpose of this pull request
1.Create a common authentication method for SaaS,ther authentication methods will continue to be added later.
2.Add Lemlist source connector
config :

Without using fields:

using fields:

Check list

[ ] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

Thanks, can you help add the e2e test
reference
https://github.com/apache/incubator-seatunnel/pull/3340

You need to add Lemlist source to plugin-mapping.properties

Thank you so much for your help.

Please add e2e test reference https://github.com/apache/incubator-seatunnel/pull/3340

Please add e2e test reference #3340

Thanks. I have added e2e test.

Thanks, can you help add the e2e test
reference #3340

Thanks. I have added e2e test.PTAL.


Python 2 support

I hate asking this, but if I can get it working, I'd like to use this for several large repositories, like pybind11, that won't be dropping Python 2 for a while. Plus PyTest 4.x supports Python 2, and GitHub Actions supports it as well. If there could be at least one Python2 compatible release, then you could use python_requires to make sure this doesn't (incorrectly) install on Python 2 on future Python 3 only releases (if you want to do that), that would be great!

I fixed this plugin to support Python 2.7 and pytest 4.x with #10, please wait for a new release! :pray:

@henryiii I've released v0.0.7 that is compatible with Python 2.7 (pytest 4.x.x).


Usage of Mediapipe pose solution with tkinter very laggy

Currently, I am writing a fitness support pc application with Mediapipe pose. However I found that when I do the pose.process it will lead to the whole application very laggy. I have tried the lite model with model_complexity = 0. But it is not really helping with the efficiency.
Is there any way I can use the model detection at least reaching 20 fps?
When I highlight this whole section for
    with md_pose.Pose(
                min_detection_confidence = 0.5,
                min_tracking_confidence = 0.5,
                model_complexity = 0
    ) as pose:
        results = pose.process(frame)
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        md_drawing.draw_landmarks(
            frame,
            results.pose_landmarks, # pose_landmarks
            md_pose.POSE_CONNECTIONS, #connection pairs
            md_drawing.DrawingSpec(color=(0,255,0), thickness=2, circle_radius= 2), #point drawing spec (B, G, R)
            md_drawing.DrawingSpec(color=(255,0,0), thickness=2, circle_radius= 2) #line connect drawing spec
        )

It will give a very good performance, so I am thinking is there any way to speed up the mediapipe pose process....
Code as follows:
import PIL
from PIL import ImageTk
import cv2
from tkinter import *
import numpy as np
import mediapipe

md_drawing = mediapipe.solutions.drawing_utils
md_drawing_styles = mediapipe.solutions.drawing_styles
md_pose = mediapipe.solutions.pose
width, height = 800, 600
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

root = Tk()
root.minsize(width=1280, height=720)
root.maxsize(width=1280, height=720)
root.resizable(0,0)

c = Canvas(root, width=1280, height=720, bg = 'blue')
c.pack()

root.bind('<Escape>', lambda e: root.quit())
blank = np.full((720, 1152 ,3), 0, np.uint8)
img2 = PIL.Image.fromarray(blank).resize((1152,720))
imgtk2 = ImageTk.PhotoImage(image=img2)
cam = c.create_image(0,0, image=imgtk2, anchor=NW)

def show_frame():
    global c, imgtk
    ret , frame = cap.read()
    frame = cv2.resize(frame, (1152, 720))
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    with md_pose.Pose(
                min_detection_confidence = 0.5,
                min_tracking_confidence = 0.5,
                model_complexity = 0
    ) as pose:
        results = pose.process(frame)
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        md_drawing.draw_landmarks(
            frame,
            results.pose_landmarks, # pose_landmarks
            md_pose.POSE_CONNECTIONS, #connection pairs
            md_drawing.DrawingSpec(color=(0,255,0), thickness=2, circle_radius= 2), #point drawing spec (B, G, R)
            md_drawing.DrawingSpec(color=(255,0,0), thickness=2, circle_radius= 2) #line connect drawing spec
        )
    cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
    img = PIL.Image.fromarray(cv2image)
    imgtk = ImageTk.PhotoImage(image=img)
    c.itemconfig(cam, image=imgtk) #must use same ImageTk object
    c.pack(fill='both',expand=1)
    c.after(10, show_frame)

show_frame()
root.mainloop()

The problem is found, is because Im calling the model with() section every frame time.


Travis CI caching for tests is timing out

See for example https://travis-ci.org/rustasync/tide/jobs/534672877#L942-L944
Taking more than 3 minutes probably makes the cache worthless. It's likely that it has accumulated old versions of dependencies that should not be there anymore, I think there are some tools that can cleanup the target directory based on what is actually used in the recent builds so that the cache doesn't keep storing unused data.

Tool to investigate using: https://lib.rs/crates/cargo-sweep


Rendering problem, blurry text

Environment
Microsoft Windows [Version 10.0.18363.778]
Steps to reproduce
I got this bug on last update!
Expected behavior
Text should be clear.
Actual behavior
I get blurry text then renders good then bad, weird rendering!
As you see first 5 lines are good, the rest are blurry. the good lines came after scrolling.
Mean the whole screen goes blurry then when scrolling it renders good!

I use CMD by the way I don't know about PS

@fahadabdulaziz Is this the legacy console or the new Windows Terminal? (If you're just running "Command Prompt" or cmd.exe directly, it's the legacy console.) If this is the Windows Terminal, could you share which version?
Are you using anything like remote desktop? This looks like it's mpeg compression or something gone wrong, but it's hard to be sure.

@zadjii-msft I'm using Windows Terminal Version 0.11.1251.0
I'm not using remote desktop.
I tried disabling ClearType but nothing happened.
Ass you can see in this attachment all lines are blurry and if I scroll up or down the lines re-render ok. the last line is rendered normally.

I have the same. It started since the last update (version 0.11.1251.0). When I first return to the window or tab, everything is clear, but then everything, except from the current command line, becomes rapidly more and more blurry until it gets such blurry as in the screenshots. That happens in seconds. Every result is blurry and it happens to every profile, PowerShell, Command Prompt, WSL, everywhere, no matter what aliasing method I use, greyscale or cleartype.

I’m hoping to find a common thread between the two of you.
What hardware-display, GPU, etc.-are you using?
What font are you using? What size?
Are you using display scaling? What factor?

Are you enabled "Conservative Morphological Anti-Aliasing" in Intel's graphics driver?
There are some old bugs about this: https://bugzilla.mozilla.org/show_bug.cgi?id=1145987

I’m hoping to find a common thread between the two of you.
What hardware-display, GPU, etc.-are you using?
What font are you using? What size?
Are you using display scaling? What factor?

Intel Core i5-4460
No external GPU
16GB RAM
1680x1050 22'' monitor (Samsung 2232BW)
100% scale
Windows 10, build 19041.208
It happens both on default font (Cascadia Mono 12pt) and Consolas 10pt.

Processor: Intel(R) Core(TM) i7-4790T CPU @ 2.70GHz
Display: Intel HD Graphics 4600, nVidia GeForce 830A
Ram: 16GM
Scale: 100%
Resolution: 1920*1080
OS: Microsoft Windows [Version 10.0.18363.778]
BTW I have the same problem with Edge and had it Azure Data Studio, with Azure DS I solve it by adding --disable-gpu.
As I know this problem exists in some apps the based on chromium. Chrome browser work fine with me!

Processor: Intel(R) Core(TM) i7-4790T CPU @ 2.70GHz
Display: Intel HD Graphics 4600, nVidia GeForce 830A
Ram: 16GM
Scale: 100%
Resolution: 1920*1080
OS: Microsoft Windows [Version 10.0.18363.778]
BTW I have the same problem with Edge and had it Azure Data Studio, with Azure DS I solve it by adding --disable-gpu.
As I know this problem exists in some apps the based on chromium. Chrome browser work fine with me!

I have the same problem on Edge too.

Thoughts; @miniksa suggested that we might need to offer a feature to disable hw acceleration like Chrome/Edge do. If there's no way for us to get the Intel driver to back off, we need a software solution.

Thoughts; @miniksa suggested that we might need to offer a feature to disable hw acceleration like Chrome/Edge do. If there's no way for us to get the Intel driver to back off, we need a software solution.

I also have the terrible idea of detecting this one bad Intel chipset and turning off diff rendering for it...

Somebody reported that for nVidia cards, they could get this fixed by turning off "Image Sharpening".

BTW I have two card on my machine nVidia & Intel.
I tried disabling all intel driver options but nothing changed, I didn't find "Image Sharpening" in the settings.

I have the same issue, either looking at the integrated (laptop) or external screen. The thing is that it worked fine before the current version of Windows Terminal (0.11.1251.0). I also noticed that the tab of Terminal are somehow 'blinking', not sure if these are linked.

I have the same issue with an nvidia card. I searched for image sharpening in my 3d settings, but it is not there. Also, when I plug my laptop into an external display, everything looks great. This issue only comes up when using the laptop's display.

Thoughts; @miniksa suggested that we might need to offer a feature to disable hw acceleration like Chrome/Edge do. If there's no way for us to get the Intel driver to back off, we need a software solution.

I also have the terrible idea of detecting this one bad Intel chipset and turning off diff rendering for it...

I have the same issue with an nvidia card. I searched for image sharpening in my 3d settings, but it is not there. Also, when I plug my laptop into an external display, everything looks great. This issue only comes up when using the laptop's display.

I'll just add a global toggle to turn off differential rendering as that's the big thing that I think changed.

If one of you would be willing to test the rendering options introduced in #5853, would you please reach out via e-mail? My address is in my profile.

@bazilious reached out and is testing. Thanks!
@fahadabdulaziz just to be 100% sure, can you copy the version number from our About dialog?

I managed to reproduce this as well. Here's, roughly, what I did.
This requires running Terminal unpackaged!

Install the latest DCH driver from Intel (hope you have a card that supports it)
Run WindowsTerminal.exe
Observe that all non-active text blurs slowly.
Go into the "Intel Graphics Command Center"... Manage your game library:

Manually Select
WindowsTerminal.exe

Make sure that WindowsTerminal has antialiasing set to "Always Off"

(Make sure you hit "Save")

Relaunch WT
Try to repro
Set it to Always On, CMAA (Save)
Relaunch WT
Observe.

@bazilious reached out and is testing. Thanks!

Both experimental.rendering.forceFullRepaint and experimental.rendering.software fix it, but with the latter the rendering is noticeably better. Have a look:
experimental.rendering.forceFullRepaint = true

experimental.rendering.software = true

That's really helpful. Thank you!

@DHowett-MSFT Thank you for your help,
The problem is fixed for, after altering the card options it needs for restart, or disable and re-enable the intel card from device manager.
Looks like I don't need to wear glasses anymore 😁

Same here, Venue 11 Pro, Intel HD 4200 i5-4300Y, two screens, both 1080p, the internal one is an HiDPI display (125% scaling), the external one is not HiDPI (100% scaling). The problem only affects the external monitor. If I move the Terminal window to the HiDPI monitor it renders just fine.
That's exactly the same issue affecting Chromium/Edge/Electron-based garbage.
It worked just fine in 0.11.1121.0, so if there was gpu acceleration in there that was worked fine.
I can't live with GPU acceleration disabled as my ULP i5-Y cpu is too short in TDP to handle cpu-based rendering.
Will try to disable differential rendering only to see if it helps.

Test results.
experimental.rendering.forceFullRepaint: true fixed it.
experimental.rendering.software: true made it over 9000 times slower
I would really consider to ship with forceFullRepaint enabled until you get a better idea of what is causing this issue. Better to ship a sub-optimal rendered which can be faster enabling that experimental partial redraw feature than shipping something which simply doesn't work for an unspecified class of users.

I mean we know exactly what's causing this, and that it's out of our control:

"Conservative Morphological Anti-Aliasing" in Intel's graphics driver?
There are some old bugs about this: bugzilla.mozilla.org/show_bug.cgi?id=1145987

There's not much we can do ourselves about a 5 years old drivers bug, except provide an escape hatch for users affected by it to work around it.
Differential drawing gets us such a dramatic performance increase that we're not about to revert that for the majority of our userbase without evidence that this "melting text" bug affects the majority of users.

Sure, but how you would explain my main screen not being affected by this? Are you 100% sure it does not relate to HiDPI, external HDMI or something else? Are you 100% sure it does only affect 5-years old hardware? If the answer is yes, then I perfectly agree on your point.

Hi guys,
I am too suffering from smudge fonts and I tend to believe LuKePicci is right. On any of the external monitors, which are not HiDPI the fonts look smudge. On the laptop monitor the fonts looks crystal sharp.
Hardware:
$ cat /proc/cpuinfo | grep CPU
model name      : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
model name      : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
model name      : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
model name      : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
model name      : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
model name      : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
model name      : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
model name      : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz

> wmic path win32_VideoController get name
Name
Intel(R) UHD Graphics 620

I tried everything on this thread including the below but non fixed the issue.

experimental.rendering.forceFullRepaint: true
experimental.rendering.software: true
various fonts and sizes (see screenshot)

I also wanted to try to disable scaling on high DPI on the app settings, but couldn't find how to do it for an app from the store. If you know how can this be done, I would gladly test and report the results.
https://www.thewindowsclub.com/fonts-appear-blurred-windows-8/
Please advise.
Thanks for the help :-)
Mic.

For reference I found out there is a relation between the blurry problem and AnyDesk app after using it for a remote session, a similar problem happens with Visual Studio, the solution I found is killing DWM.exe process (which is a windows process responsible managing app windows).

Guys, is there any official way to stop smoothing fonts on this app? I believe this is the issue.
Thanks!
Mic.

@mic345 there was an entire discussion above the comment field on this issue that contains information on disabling font smoothing in your display adapter's configuration or in the terminal settings. It's even on our troubleshooting page.

@DHowett, thanks for the quick reply!!
If you mean experimental.rendering.forceFullRepaint: true or experimental.rendering.software: true -- both are not helping in my case. See my comment above. If you have other ideas I can try, I'd be very grateful if you share them.
Take care!
Mic.

So, it looks like your complaint is actually about subpixel rendering? Your screenshot looks pretty much like any other windows application that's primarily text has over the past 15 years. :smile:
Disable that by setting "antialiasingMode": "aliased" in your settings file. You'll get your nice sharp pixels.

So, it looks like your complaint is actually about subpixel rendering? Your screenshot looks pretty much like any other windows application that's primarily text has over the past 15 years. 😄
Disable that by setting "antialiasingMode": "aliased" per-profile in your settings file. You'll get your nice sharp pixels.

THANK YOU!!! 🙏🙏🙏

BTW, an idea -- for people who disable the smooth edge fonts through Microsoft OS options (or in general on the OS level), maybe it makes sense to set the default antialiasingMode to aliased? In a way it's like obeying the dark mode user setting on the OS level.
Anyway, it's just an idea, thanks a lot for the help!
Mic.

I'm actually somewhat surprised that we don't automatically follow that setting. Thanks for noticing!

I know this is an old thread, but I have had the same blurry text problem since the earliest releases.
However, the reply (https://github.com/microsoft/terminal/issues/5759#issuecomment-625357069) by reli-msft about "Conservative Morphological Anti-Aliasing" finally allowed me to fix the problem.
My computer uses an Intel HD Graphics 4600 card - what may not be obvious to some is that the above-mentioned anti-aliasing option is located in the settings for 3D. In my case the option was set to "Override Application Settings". The other choices are "Enhance Application Settings" and "Turn Off", and the latter finally fixed the problem! I can now use Windows Terminal in all its glory :-)
It seems strange (to me, anyway) that a 3D rendering option should affect a text terminal (especially since Windows Terminal is the only app that seems to be affected, and I've been using the same machine for coding for over 4 years), but at least it works now.
For anyone else still battling with fuzzy fonts, check the 3D rendering options of your graphics cards. As counterintuitive as it seems, there's a good chance a 3D option is affecting text rendering.

BTW I have two card on my machine nVidia & Intel.
I tried disabling all intel driver options but nothing changed, I didn't find "Image Sharpening" in the settings.

On my system, it's here:

Another setting to watch out for is this one:

Hi everyone. I'm using an intel card and an Nvidia card.
I disabled the CMAA feature in the 3D tab in the intel card and the font is clear now.
(The CMAA can be set to disabled, overlap application settings, and enhance application settings.)


FilterHeaderCell: Display filter icons based on ShowFilterIcon value

…(#7727)
Description
If #7727 gets recognized as a bug - this is the potential fix.
Currently, the flag "ShowFilterIcon" is used only in the HeaderCell.razor. It may be misleading as there are also filter icons in the FilterHeaderCell.razor.
Here I added a check to not display these icons in FilterHeaderCell.razor only if the flag is specifically set to false (to not break the existing behaviour, as ShowFilterIcon is nullable).
Fixes #7727
How Has This Been Tested?
Checked if unit tests passed; checked visually against the example provided in #7727.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality not to work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[ ] I've added relevant tests.

I think that "HasFilter" check should be left out of both this and the HeaderCell.  Do you really want to be making that decision on behalf of the user?  How would the user opt for now icons even if there are filters?  If we do remove this, it would require a documentation update.
We could add a new feature for "ShowFilterIconsFunc" at a later stage.

I think we can also add a test view... I created a file called DataGridColumnShowFilterIconsTest.razor with the following contents
@namespace MudBlazor.UnitTests.TestComponents

<MudDataGrid @ref="_grid" Items="@_items" Filterable="true" FilterMode="DataGridFilterMode.ColumnFilterRow">
    <Columns>
        <PropertyColumn Property="x => x.Name" ShowFilterIcon="false" />
        <PropertyColumn Property="x => x.Age" ShowFilterIcon="false" />
        <PropertyColumn Property="x => x.Status" ShowFilterIcon="false" />
        <PropertyColumn Property="x => x.Hired" />
        <PropertyColumn Property="x => x.HiredOn" />
    </Columns>
</MudDataGrid>

@code {
    public static string __description__ = "Grid with FilterMode ColumnFilterRow and PropertyColumn.ShowFilterIcon = false should not show filter icons";

    MudDataGrid<Person> _grid;

    private readonly IEnumerable<Person> _items = new List<Person>
    {
        new ("Sam", 56, Severity.Normal, false, null),
        new ("Alicia", 54, Severity.Info, null, null),
        new ("Ira", 27, Severity.Success, true, new DateTime(2011, 1, 2)),
        new ("John", 32, Severity.Warning, false, null)
    };

    public class Person
    {
        public Person(string name, int? age, Severity? status, bool? hired, DateTime? hiredOn)
        {
            Name = name;
            Age = age;
            Status = status;
            Hired = hired;
            HiredOn = hiredOn;
        }

        public string Name { get; }

        public int? Age { get; }

        public Severity? Status { get; }

        public bool? Hired { get; }

        public DateTime? HiredOn { get; }
    }
}

Hey @thestahan, would you like me to make the above-suggested changes to the PR?

Hi @GlenBoonzaier, sure, go ahead.
I'm not sure if I follow your first comment, but it'll be clearer once you push your changes.

Hi, I’m very sorry for the huge delay—I didn’t knowthis PR had been approved. Could you please resolve the conflicts? It would also be great if you could add a bUnit test based on #7727 or @GlenBoonzaier’s reply here.
Perhaps @GlenBoonzaier could create their own PR. Just ping me, and I’ll merge it ASAP.


Ramesh Kumar - Updates

Yes. Very strange. I closed the PR and opened a new one. Its VS Code messed up the yaml lint.

On Apr 30, 2024, at 5:24 PM, Chris Abraham @.***> wrote:
@cjyabraham requested changes on this pull request.
Could you double-check your changes to the people.json file? It seems you have made 17,648 changes: 8,144 additions & 9,504 deletions ??
—
Reply to this email directly, view it on GitHub https://github.com/cncf/people/pull/429#pullrequestreview-2032849994, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANPPVL6GG7CJPAA77XNYAZLZAAY2PAVCNFSM6AAAAABHBFY3GCVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMZSHA2DSOJZGQ.
You are receiving this because you authored the thread.


How to show predicted labels in kitti viewer

I would like to show predicted labels not only scores in kitii viewer.
I will appreciated if you could reply.

Did you solve it ?


auroradns: The 'extra' parameter in update_record() should be optional

In base update_record() is defined with extra=None but this was not properly
done in the Aurora DNS driver.
Update the method signature so that it matches the base DNS driver of libcloud.

👍


fix: always enable automerge for dependabot

Current dependencies on/for this PR:

main

PR #147   👈

This comment was auto-generated by Graphite.


Please support a "variant" prop for all components! (default is fine)

In @material-ui/core/styles/components.d.ts there is a list of components, and only a some of them have the ability to support variants. I completely understand that it would be a pain for you all to have to create variants for each component (as some may not call for them). However, I am only asking that you at least uniformly allow for variants to be used.
On the documentation, it may be listed as so:

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Summary 💡

All components should have a variant prop and we should subsequently be able to create global theming for all components  without in-file or in-line CSS or tedious theme wrapping of individual components. The MUI team does not have to create additional variants for components. The current state of components currently without a variant prop can simply have a default variant.
What the implementation requires (from my limited knowledge):

[ ] All component APIs must be updated to support at least 1 variant, default. In order to prevent issues from arising from those using a previous version of the MUI library, this variant can be default by default.
[ ] @material-ui/core/styles/components.d.ts must be updated to support variants.
For example,

  MuiTooltip?: {
    defaultProps?: ComponentsProps['MuiTooltip'];
    styleOverrides?: ComponentsOverrides['MuiTooltip'];
    variants?: ComponentsVariants['MuiTooltip']; // ADD THIS
  };

Examples 🌈
Specifically at this moment, I'd like to add variants to change the color of Tooltip.
variant='green'
variant='red'
Default color:

Example of colors I'd like to add:

Again, I do not wish to burden the MUI team with having to implement these variations. I only ask that you allow variants to be used for all components so that styling can be more streamlined, especially for those who would like to maintain the same look and appearance after migrating from an older UI framework.

Motivation 🔦
I have tried to get around this issue by creating an interface to extend Components, declaring core/Tooltip and adding variant to TooltipProps and exporting my own Tooltip.ts file inside index.ts. Despite having already created the theme with variants set equal to the variant, and having no errors at all in setting the variant prop of Tooltip, the styling for the variants I created do not apply. I have resorted to asking for this feature as my solution for the issue did not work.
Being able to add variants to all component would make branded components much easier and streamlined. For the benefit of MUI, more people may be more eager to migrate to using your components if they happen to be using an older framework that may or may not use JavaScript directly.
Thank you so much for your time in considering my request.

This is a feature request. and +1 for this

This is a feature request. and +1 for this

Thank you!


per-worker listener and watchdog stats

This PR does a few things:

Adds per-worker listener stats, useful for viewing worker
connection imbalance.
Adds per-worker watchdog miss stats, useful for viewing per
worker event loop latency.
Misc connection handling cleanups.

Part of https://github.com/envoyproxy/envoy/issues/4602
Risk Level: Medium
Testing: Modified UTs and new integration test
Docs Changes: Added
Release Notes: Added

@danzh2010 @mergeconflict @jmarantz PTAL

watched dogs (one per thread?)

1 per worker

active listeners of various flavors

1 per listener (so per-worker stats is listeners X workers)

connection handlers

1 per worker and 1 on the main thread

I see some potential opportunities to factor out or front-load some name lookups but it may be immaterial of the cardinalities are low or they are all created at server-start as opposed to during requests.

Yeah I agree we could do better here, but given the low cardinality I'm not sure it matters. I think we could make these stats configurable if we think this is going to be an issue though, but I found these stats to be incredibly useful in debugging potential worker imbalance issues so they seem generally useful to me (but I wanted to get @mergeconflict @oschaaf opinion on that)

/azp run envoy-linux

@danzh2010 @jmarantz @mergeconflict master merged and comments addressed. PTAL.

@danzh2010 updated per comments.


Use maven-publish instead of maven to support React Native 0.67.1 (gradle 7)

Maven has been deprecated since gradle 6.0 and was removed in gradle 7.0.
React Native 0.67.1 requires gradle 7.2.0.
This PR updates the library to use maven-publish which works with gradle 7.2.0 and React Native 0.67.1
Resolves #18

@jakub-gonet tagging you for visibility as you released 1.13.3

published in 3.0.0


xformers removed in the environment dependencies?

was browsing the collab and noticed an error then i saw xformers is not in the dependencies.

everything will be fixed in a bit


Display base: do not require audio permission if the streaming doesn't contain audio

I changed the DisplayBase in order to not require the audio permission if the audio is not enable.
Permissions should only be requested when is absolutely necessary, and in case of doing an only-video streaming the audio permission is not necessary at all.

Please merge it! Its hard to explain to users why our camera-only application requires sound recording. I've tried with master, it does not work without RECORD_AUDIO...

@sergeych I have forked this project with this fix done because I needed it same as you, you can use my version if you want:
com.github.svprdga.rtmp-rtsp-stream-client-java:rtplibrary:c445e09ce496c4af1c6bff5508867b48f29ca793

@sergeych I have forked this project with this fix done because I needed it same as you, you can use my version if you want:
com.github.svprdga.rtmp-rtsp-stream-client-java:rtplibrary:c445e09ce496c4af1c6bff5508867b48f29ca793

Thanks! looks like I'll have to.

@sergeych I have forked this project with this fix done because I needed it same as you, you can use my version if you want:
com.github.svprdga.rtmp-rtsp-stream-client-java:rtplibrary:c445e09ce496c4af1c6bff5508867b48f29ca793

Can you rebase your changes on top of the current state? several updates that are not included in your branch seems to be important

@sergeych I have forked this project with this fix done because I needed it same as you, you can use my version if you want:
com.github.svprdga.rtmp-rtsp-stream-client-java:rtplibrary:c445e09ce496c4af1c6bff5508867b48f29ca793

Can you rebase your changes on top of the current state? several updates that are not included in your branch seems to be important

Done: com.github.svprdga.rtmp-rtsp-stream-client-java:rtplibrary:7c20707caa6f8631edc4045caca5f32696ed861d

@sergeych I have forked this project with this fix done because I needed it same as you, you can use my version if you want:
com.github.svprdga.rtmp-rtsp-stream-client-java:rtplibrary:c445e09ce496c4af1c6bff5508867b48f29ca793

Can you rebase your changes on top of the current state? several updates that are not included in your branch seems to be important

Done: com.github.svprdga.rtmp-rtsp-stream-client-java:rtplibrary:7c20707caa6f8631edc4045caca5f32696ed861d

Thanks :) hope the author will merge it so we can use it as the dependency too.

I was not a fan of this change because don't implement anything (stream without audio is already possible doing a mute microphone).
I will rectify my decision.
Merged, sorry for take that time.


nuv -info and -version should only report version and exit

Hello,
i wrote a test for nuv nix package.
However, when running the test, nuv command will ALWAYS try to download olaris and in nix sandbox this is not allowed.
Testing if nuv is version 3.0.1-beta.2405292059
Welcome to nuv! Setting up...
failed to clone olaris on branch '3.0.0'
error: Get "http://github.com/nuvolaris/olaris/info/refs?service=git-upload-pack": dial tcp: lookup github.com on [::1]:53: read udp [::1]:40060->[::1]:53: read: connection refused
--- /dev/fd/63  2024-06-02 16:26:49.224455033 +0000
+++ /dev/fd/62  2024-06-02 16:26:49.224455033 +0000
@@ -1 +1 @@
-Cloning tasks...
+3.0.1-beta.2405292059
error: builder for '/nix/store/h7ysrxkbwpha46wgiklb9ympap1rnfly-nuv-test-run.drv' failed with exit code 1;
       last 9 log lines:
       > Testing if nuv is version 3.0.1-beta.2405292059
       > Welcome to nuv! Setting up...
       > failed to clone olaris on branch '3.0.0'
       > error: Get "http://github.com/nuvolaris/olaris/info/refs?service=git-upload-pack": dial tcp: lookup github.com on [::1]:53: read udp [::1]:40060->[::1]:53: read: connection refused
       > --- /dev/fd/63     2024-06-02 16:26:49.224455033 +0000
       > +++ /dev/fd/62     2024-06-02 16:26:49.224455033 +0000

I need a way to avoid that the nuv command, when invoked with -version or -info,  will download olaris: it should only report the version.
I can contribute a patch, but need to know if we should use a command switch or an environment variable.

Solved in ops


Event signing returns a different structure than nos2x?

My application performs NIP07 login by calling it like this:
let signedEvent = await (window as any).nostr.signEvent(signThis)

The result I receive back from keys.band is in the following format:
{
    "id": "4498",
    "ext": "nos2x",
    "type": "signEvent",
    "params": {
        "event": {
            "kind": 27235,
            "created_at":<PHONE_NUMBER>,
            "tags": [],
            "content": "randomstring"
        }
    }
}

This is different than nos2x.  My code expects the return to be in the format of a nostr event the nip07 spec specifies.  Instead the event appears to be nested in params.  Is there a good reason for this?  I could add more code to detect if params exists, or if it's a regular event, but I just wanted to point this out as it's a breaking change from nos2x.

oh, I figured out what my problem was.  I wasn't passing in the pubkey.  It'd be nice if it didn't require that, because it adds an additional call to the plugin to get the public key.

closing this issue, the params are not where the event data is, they're simply there whether the request succeeds or not.  in my case i didn't see an error message or anything, the req I made was missing a pubkey.


Fix CocoaPods

Goals :soccer:
Fix CocoaPods
Implementation Details :construction:
Change podspec to adapt the file structure change.

Thanks!


Incorrect command in Readme

The read me states the following information:
To know current on screen app  adb -s your-device-ip shell "dumpsys window windows | grep -E mFocusedApp"
This command does not work. It should be:
connect your-device-ip
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'

Mind to share your error output if you’re running my command in your server/computer?
If you have more then one android devices connected to your server/computer, the parameter “-s your-device-ip” is needed for the adb to know which device it needed to run the command. I have successfully ran this command so far.
I also learn that  quoting adb shell “command”, and put the grep inside the quote means that the grep will run inside the android, producing shorter output first and at the end it will produce less network traffic.

Hello @dwaan
I think I was typing this incorrectly. It does work but only after running connect command!
Maybe this issue can be closed? I think though a user would need to connect first?

Yes, you're correct, the adb connect sometimes need to be run first. If I'm not wrong, using -s parameter also explicitly run adb connect.


how much is the φ of EfficientNet-B7 ？

The paper seems not show the value φ of EfficientNet-B7

The paper seems not show the value φ of EfficientNet-B7
7......

There are values of alpha, betta and gamma in code
https://github.com/tensorflow/tpu/blob/master/models/official/efficientnet/efficientnet_builder.py#L28


Fix the LRO Polling URL

Fix the LRO Polling URL

/azp run js - storage-blob - tests

/azp run js - storage-blob - tests

@ramya-rao-a I am still validating the changes. (SHould have opened in the draft mode :-( ) Will add the details after the validation


Add the ability to spawn specific monsters

Currently you have the summon zoo button, but it would be helpful to be able to spawn specific monsters from blueprints in some cases.

If you search for Unit Blueprints in Search 'n Pick there should be a spawn button offered.  Please check if that works.


Usability issues with Datasets and Notebooks

Describe the bug
It is not clear how to run notebooks and datasets? There should be a succinct documentation of

How are notebooks and datasets related
From a data users can navigate to a notebook, but not vice versa?!
Need to describe why running a dataset asks for a namespace (-> PVC creation)
What happens after a Dataset has been "launched"?
Running a dataset with related asset (notebook) asks for PVC? How does a user get that?
What should the Mount Path be? (-> /tmp/data ... MLX UI should prefill)
What are the results of a Notebook run, where can they be found (Minio > HTML, original notebook updated, preview in MLX UI Notebook card -- unless cached?)

We should update the doc here:
https://github.com/machine-learning-exchange/mlx/blob/main/datasets/README.md#use-dataset-with-mlx-assets
Thanks @blublinsky for reporting

@drewbutlerbb4 @Tomcli @animeshsingh

Add Troubleshooting for 403 error when trying to "Run" a Dataset:

by default, Kubeflow cannot deploy any CRD resource on the cluster
need to patch the cluster with: kubectl create clusterrolebinding pipeline-runner-extend --clusterrole cluster-admin --serviceaccount=kubeflow:pipeline-runner

@yhwang -- thanks for reporting that


[caller-analysis] Improve memory usage of FunctionInfo structs by usi…

…ng small data structures instead of large.
This converts a DenseMap to a SmallMapVector and a SetVector to a
SmallSetVector. Both of these create large malloced data structures by
default. This really makes no sense when there are many functions that don't use
a partial apply or many applies.
Additionally, by changing the DenseMap to a MapVector container, this commit is
eliminating a potential source of non-determinism in the compiler since often
times we are iterating over the DenseMap to produce the results. Today all of
the usages of the DenseMap in this way are safe, but to defensively future proof
this analysis, it makes sense to use a MapVector here.

@swift-ci smoke test and merge


Document troubleshooting build problems

A non-exhaustive list of build issue that users can run into are:

My build doesn't seem to be updating, what can I do? This is likely a problem on our side, but perhaps wiping the version is a good first step
My built documentation doesn't look right, what's up? It could be out of sync across our web server, which surfaces in a number of different ways. For instance, if JS or CSS isn't in sync on both webs, you might see the file change every couple of requests, or your documentation site might appear really broken 30%-50% of the time. You should rebuild your project as a first step.
My builds aren't happening automatically. We can point to webhook docs for this one likely

Closing this as duplicate of #4729.


Improved the guardTable function in DB.hs and beautified the call function in Runtime.hs

The primary change I made is to use the firstOf lens function. When combined with traverse in the following manner:
\f -> firstOf (traverse . f)
The resulting function short circuits on the first part of traversable structure for which the function
f admits something which satisfies the predicate isJust. This can be easily seen by evaluating:
(\f -> firstOf (traverse . f) id [1..] == Just 1.

@emmanueldenloye there's a conflict, my recently-merged PR moves the guard code into Pact.Native.Internal ....

I viewed your change and I still think, with your permission, that findCallingModule should have the same changes that I made to guardTable. I don't have to make the pull request, but using firstOf (traverse ....) is definitely the superior option.

On it.


Understanding and using deny assignments

Hello
I, like many other posters I have found across the past few years, am trying to investigate deny assignments for use in a particular application.
I have found the Azure documentation very vague and hard to follow.
The main two docs people have directed me and other posters to are below:
https://learn.microsoft.com/en-us/azure/governance/blueprints/concepts/resource-locking
https://learn.microsoft.com/en-us/azure/role-based-access-control/deny-assignments
My problem is one that seems to have been experienced by many people before me.
On one hand the first doc states that deny assignments go hand-in-hand with resource locking.  This implies they don't exist as a feature on their own.
The second doc, however, mentions lots of parameters that aren't used in the case of a resource lock deny assignment.
Now if they did exist in the latter sense they'd be a perfect feature for my use case of wanting to block any inherited data plane access (e.g. root inherited access) at the scope of a storage blob, only allowing a certain AAD group to have read and write access.  The blob will contain payroll data, hence this need.
My problem is, there are NO examples anywhere of any templates that make a deny assignment on its own.  Any worked examples only follow the line of the resource locking examples with the following code exerpt being the source of the deny assignment.
"locks": {
"mode": "AllResourcesDoNotDelete",
"excludedPrincipals": [
"7be2f100-3af5-4c15-bcb7-27ee43784a1f",
"38833b56-194d-420b-90ce-cff578296714"
],
"excludedActions": [
"Microsoft.ContainerRegistry/registries/push/write",
"Microsoft.Authorization/*/read"
]
},
Like many people before me, it seems, I have struggled to find a clear or complete answer. Similarly, posts in this forum have been met with an apparent lack of understanding of the feature by the respondents which has only compounded any lack of clarity I felt.
I seek a simple answer to a simple question.
Can you use deny assignments on their own (using Blueprints) to do thinks like I've outlined above, or not?
Furthermore, if you can, how? As there are no published examples of this.
Thanks

@Bengmoody
Thanks for your feedback! We will investigate and update as appropriate.

Hi @Bengmoody
I just learned about deployment stacks that is currently in preview. Deployment stacks include deny settings.
https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/deployment-stacks?tabs=azure-powershell#protect-managed-resources-against-deletion
I'm not sure about all the capabilities, but I just wanted to let you know in case this would help for your scenario.
thanks

Hi @Bengmoody
We made some updates to the List deny assignments doc that hopefully helps.
https://learn.microsoft.com/en-us/azure/role-based-access-control/deny-assignments
Let us know if you have additional feedback.
thanks

#please-close


Figure out devex and deploy docs

Right now the counter tutorial has verbage around the external Shrubbery Gall agent filesystem structure (imp/pro/con/fil etc) and alludes to working on a fakeship. We'll likely want to remove this in favor of some other flow that either allows developers to modify code within Sky, or that doesn't put any emphasis on code modification at all.
All of our docs are in the fil directory as .md files right now. What does deploying them look like? Where do the docs exist in Sky, and what is their interface?

Desired experience is an icon called Docs on the hompage. Click on it, you get all the docs we've written divided by chapter. Click on those, you get the md file (alongside the Sail editor that lets you see the udon).
So: modify imp/home to make these docs.

This is finished


feat(CI): Automatic container image build

Builds linux/amd64 and linux/arm64 images

@GoetzGoerisch i guess its a "Actions secrets" necessary!?


Install local version

Good day. I'm having trouble installing your app on Ubuntu.
It's a clean Ubuntu VM with Python installed. I'm using the steps on your main page under "without docker". I have installed the requirements and run the "setup.py" script. However, when I run the "run.py" script I get the following error in the console:
Traceback (most recent call last):
  File "run.py", line 3, in <module>
    from app import app
  File "/tmp/ai-chatbot-framework-master/app/__init__.py", line 21, in <module>
    from app.core.controllers import core as core
  File "/tmp/ai-chatbot-framework-master/app/core/controllers.py", line 6, in <module>
    from app.core.intentClassifier import IntentClassifier
  File "/tmp/ai-chatbot-framework-master/app/core/intentClassifier.py", line 1, in <module>
    import app.core.sentenceClassifer as sentenceClassifer
  File "/tmp/ai-chatbot-framework-master/app/core/sentenceClassifer.py", line 4, in <module>
    from sklearn import preprocessing
ImportError: No module named sklearn

Could you please provide a step-by-step noobs guide to installing this on Linux please?

go inside project directory and do  pip install -r requirements.txt
This will install all required packages including sklearn

I did that already. The next step listed is to run the "run.py" script. That is when I get the following error messge:
Traceback (most recent call last):
  File "run.py", line 3, in <module>
    from app import app
  File "/tmp/ai-chatbot-framework-master/app/__init__.py", line 21, in <module>
    from app.core.controllers import core as core
  File "/tmp/ai-chatbot-framework-master/app/core/controllers.py", line 6, in <module>
    from app.core.intentClassifier import IntentClassifier
  File "/tmp/ai-chatbot-framework-master/app/core/intentClassifier.py", line 1, in <module>
    import app.core.sentenceClassifer as sentenceClassifer
  File "/tmp/ai-chatbot-framework-master/app/core/sentenceClassifer.py", line 4, in <module>
    from sklearn import preprocessing
ImportError: No module named sklearn

When installing on Ubuntu Linux you have to have to install dependencies first using apt-get, then use a pip install otherwise the normal pip install of scikit-learn won't work properly. See below:
Step 1: Make sure apt-get is updated
sudo apt-get update
Step 2: Install dependencies
sudo apt-get install build-essential python-dev python-setuptools python-numpy python-scipy libatlas-dev libatlas3gf-base
Step 3: pip install Scikit Learn
pip install --user --install-option="--prefix=" -U scikit-learn

Everything is working now. Thank you very much for your help.


docs: README audit table

Closes https://github.com/celestiaorg/blobstream-contracts/issues/250
Blocked on

[x] response from Informal because their PDF contains a link to rsmt2d instead of celestia-app/x/qgb
[ ] response from Binary Builders because their report lacks a commit hash for blobstream-contracts

np! Let's hold off on merging this because Informal is going to provide an updated PDF with a fixed commit hash link.

@rach-id thoughts on merging this as is? We haven't received a response from Binary Builders

It was this: https://github.com/celestiaorg/blobstream-contracts/releases/tag/v2.1.2

Ready for review @rach-id @adlerjohn


Custom search command support for multibyte characters in Python 3

Fixes https://github.com/splunk/splunk-sdk-python/issues/288
SearchCommand supports multibyte characters in Python 3
Previously, SearchCommand in Python 3 would read directly from the incoming ifile stream -- typically sys.stdin. In Python 2 sys.stdin is a file-like byte stream, whereas in Python 3 it is an io.TextIOWrapper containing an underlying buffer. Because this object reads by character rather than by byte, multibyte characters would cause the command to read too far past the data's boundary. This could lead to corrupt data reads (if early in the stream) or infinite hangs (if at the end of the stream).
We now retrieve the underlying buffer and read from it when in Python 3. The read bytes are then cast to strings for parsing purposes.
Tests ensure underlying byte stream
Previously, the tests defined a metadata stream with the Ａ character in it (not to be confused with A). In Python 2, this character caused its containing string to become unicode, which caused StringIO to gain that encoding. As a result, the size of the metadata stream was always incorrectly measuring Unicode characters rather than bytes, but under test the read logic would always be handed a Unicode character stream rather than a byte stream.
This has been fixed.
Multibyte test fixture
We now have a new test test_multibyte_chunked which contains a multibyte character test fixture.

Hah, I've been working since yesterday in a change that is nearly identical to this. Nice fix, if I say so myself =D
I'll retire my fork, this is really good.

FYI we are waiting on this change to upgrade the pythonsdk in all our apps ahead of conf. We'd rather not have to do a monkey patch. Please advise when you can merge and release an official build.


Token::as_index OOB behavior

More of a discussion than a issue, perhaps, but I find it unexpected that this is true:
assert_eq!(Token::new("-").as_index(1), Ok(1));
assert_eq!(Token::new("1").as_index(1), Ok(1));
assert_eq!(Token::new("2").as_index(1), Err(IndexError::OutOfBounds));

I can see the utility of the first case, but I'd expect that out-of-bounds numerical indices would always produce an error. It's quite error prone that they don't (it even contradicts the docs, as they're currently written).
If we go by the RFC literally, it defines - as an error condition in section 7, but doesn't define how to handle the error. In practice we know from sibling standards like RFC 6902 that using - is only an actual error condition in some contexts, so that puts it into a bit of a grey area.
If we were to prioritize semantic correctness, we should probably produce an error for - (but a separate error from what would result from a numerical out-of-bounds index). Another option would be to have the Ok variant carry an enum value indicating whether the index is internal or refers to the next element:
enum Index {
    Internal(usize),
    Next(usize)
}
fn as_index(...) -> Result<Index, IndexError>

Regardless, I think numerical indices that exceed the given array length should always be considered an error, or never.

Going to break these down by test-case:
assert_eq!(Token::new("-").as_index(1), Ok(1));

The way the spec lays out the usage of "-" makes it somewhat confusing. Here
is my current interpretation:

If the currently referenced value is a JSON array, the reference token MUST contain either:

characters comprised of digits (see ABNF below; note that
leading zeros are not allowed) that represent an unsigned
base-10 integer value, making the new referenced value the
array element with the zero-based index identified by the
token, or
exactly the single character "-", making the new referenced
value the (nonexistent) member after the last array element.

The second bullet point lays out the mechanics of the "-" token. The ambiguity
arises with:

Note that the use of the "-" character to index an array will always
result in such an error condition because by definition it refers to
a nonexistent array element. Thus, applications of JSON Pointer need
to specify how that character is to be handled, if it is to be
useful.

My reading of this is that this is specifically referring to resolution. In that
context, "-" would never be resolvable as it is always out of bounds. This
crate should error if the user attempts to resolve a "-" token.
As this crate handles modification of data via pointer, utility exists in being
able to specify a push operation, essentially. As the specification
provides a specific mechanic for doing so, it seems prudent to allow it.
assert_eq!(Token::new("1").as_index(1), Ok(1));

This is similar to above, in that in the case of mutation, the user needs to be
able to reference the next would-be element in an array.
The user may wish to keep track of the index themselves rather than relying on "-"
to indicate the desire to add an item.
Resolution would still fail in this case, as the index is out of bounds.
assert_eq!(Token::new("1").as_index(2), Err(IndexError::OutOfBounds));

Unlike above, in no situation would this be valid.

I can see where the confusion is stemming though. For someone looking to take a token and turn it into a valid index of an existing array, this behavior would probably be unexpected.
Hmm.

This is what I'm thinking:
assert_eq!(Token::new("1").as_index(..1), Err(_));
assert_eq!(Token::new("1").as_index(...1), Ok(1));

Token::new("1").as_index().to(1); // err
Token::new("1").as_index().inclusive(1); // ok

Token::new("-").as_index().to(1); // err
Token::new("-").as_index().inclusive(1); // ok

#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum Index {
    Usize(usize),
    Next,
}

impl Index {
    fn parse(s: &str) -> Result<Self, ParseIntError> {
        if s == "-" {
            return Ok(Self::Next);
        }
        let u = s.parse()?;
        Ok(Self::Usize(u))
    }

    /// Returns the unbounded value, if possible.
    ///
    /// - If the `Index` stems from a non-negative integer, returns `Some(value)`.
    /// - If the `Index` stems from `"-"`, returns `None`.
    pub fn as_usize(self) -> Option<usize> {
        let Self::Usize(u) = self else { return None };
        Some(u)
    }

    pub fn map_usize<F: Fn(usize) -> R, R>(self, f: F) -> Option<R> {
        match self {
            Self::Usize(u) => Some(f(u)),
            Self::Next => None,
        }
    }

    /// Checks the current index value against the bound and returns a `usize`
    /// representation if the index value falls within the range (`0..bound`).
    ///
    /// - For non-negative numerical values less than bound, returns index
    ///   value.
    /// - For the case of `"-"`, returns an error.
    ///
    /// # Errors
    /// Returns `OutOfBoundsError` if:
    ///  - the index is equal to or greater than the bound.
    ///  - the index is `"-"`.
    pub fn to(self, bound: usize) -> Result<usize, OutOfBoundsError> {
        let Some(value) = self.as_usize() else {
            return Err(OutOfBoundsError { index: self, bound });
        };
        if value >= bound {
            return Err(OutOfBoundsError { index: self, bound });
        }
        Ok(value)
    }

    /// Checks the current index value against the **inclusive** bound and
    /// returns a `usize` representation if the index value falls within the
    /// inclusive range (`0..=bound`).
    ///
    /// - For non-negative numerical values less than or equal to bound, returns
    ///   index value.
    /// - For the case of `"-"`, returns the bound.
    ///
    /// # Errors
    /// Returns `OutOfBoundsError` if the index is greater than the bound.
    pub fn inclusive(self, bound: usize) -> Result<usize, OutOfBoundsError> {
        match self {
            Index::Usize(u) => {
                if u > bound {
                    Err(OutOfBoundsError {
                        index: Self::Usize(u),
                        bound,
                    })
                } else {
                    Ok(u)
                }
            }
            Index::Next => Ok(bound),
        }
    }

    pub fn get_from<'s, S, T>(self, slice: S) -> Option<&'s T>
    where
        S: 's + AsRef<[T]>,
    {
        match self {
            Self::Usize(u) => slice.as_ref().get(u),
            Self::Next => None,
        }
    }
    pub fn get_mut_from<'s, S, T>(self, mut slice: S) -> Option<&'s mut T>
    where
        S: 's + AsMut<[T]>,
    {
        match self {
            Self::Usize(u) => slice.as_mut().get_mut(u),
            Self::Next => None,
        }
    }
    /// Returns the index value if it is within the bounds of the slice.
    pub fn of<'s, S, T>(self, slice: S) -> Option<usize>
    where
        S: 's + AsRef<[T]>,
    {
        match self {
            Self::Usize(u) => {
                if u < slice.as_ref().len() {
                    Some(u)
                } else {
                    None
                }
            }
            Self::Next => None,
        }
    }

    /// Returns the index value if it is either the length of the slice (i.e.
    /// pointing to the next, non-existent index) or within the bounds of the
    /// slice.
    pub fn of_or_next<'s, S, T>(self, slice: S) -> Option<usize>
    where
        S: 's + AsRef<[T]>,
    {
        match self {
            Self::Usize(u) => {
                if u <= slice.as_ref().len() {
                    Some(u)
                } else {
                    None
                }
            }
            Self::Next => Some(slice.as_ref().len()),
        }
    }
}

impl fmt::Display for Index {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match *self {
            Index::Usize(u) => fmt::Display::fmt(&u, f),
            Index::Next => write!(f, "-"),
        }
    }
}
impl TryFrom<Token> for Index {
    type Error = ParseIntError;

    fn try_from(value: Token) -> Result<Self, Self::Error> {
        Index::parse(value.as_str())
    }
}

impl From<usize> for Index {
    fn from(value: usize) -> Self {
        Self::Usize(value)
    }
}

I originally responded to the last case thinking the numbers were as I have edited them to be as above. I'm thinking you may have swapped them in your head too. Swapped, the test would fail (as it does currently written, but for other reasons).

Yup, yeah the order there is a bit confusing too. Passing the length as an argument makes sense conceptually but it makes the API a bit weird to use. I updated my original comment.
I think you're onto something with the Index enum usage. I propose a slightly different naming convention:
assert_eq!(Token::new("1").to_index(), Ok(Index::Num(1)));
assert_eq!(Token::new("-").to_index(), Ok(Index::Next));
assert_eq!(Token::new("a").to_index(), Err(ParseIntError));

assert_eq!(Token::new("0").to_index()?.inside(1), Ok(1));
assert_eq!(Token::new("1").to_index()?.inside(1), Err(OutOfBounds));
assert_eq!(Token::new("-").to_index()?.inside(1), Err(OutOfBounds));

assert_eq!(Token::new("1").to_index()?.inside_inclusive(1), Ok(1));
assert_eq!(Token::new("-").to_index()?.inside_inclusive(1), Ok(1));
assert_eq!(Token::new("2").to_index()?.inside_inclusive(1), Err(OutOfBounds));

I'd also leave most of those public methods out, until they prove useful. Always easier to add stuff than remove from an API. The trait implementations look reasonable, though.

I was going back and forth over to_index, as_index and index. as_index was written off as it doesn't fit convention.  index was just shorter and the name of the struct to method aligned. I'm cool with to_index though as its more idiomatic.
inside_inclusive seems like a bit like an oxymoron. Hmm.

Linguistically I think any of the other options for the index conversion method would be reasonable, but thankfully we don't need to think too hard, since the Rust API Guidelines provide a nice summary of how to pick one.
I don't like how verbose inside_inclusive is, either. I always bias towards clarity, but maybe we can come up with a more concise alternative. Main reason I'm pushing back on inclusive is that the inside part is actually more important, it describes what the method does, while inclusive is just a qualifier, so it can't stand on its own.

Ah, i forgot that page existed! to_index it is.
Ahh, great point about inclusive. inside_or_next? That's kind of reading a bit clumsily. Hmm.

I can't think of any examples where a to_* method is fallible and the Guidelines doesn't make mention of that, so far as I can see from scanning it.
Would try_to be more idiomatic or is fallibility not a factor with to_*, unlike into?

I think in general fallibility is just implied by the return type. try_into/try_from probably exist only to distinguish them from the infallible alternatives. I think this probably only comes up in trait methods, because it doesn't generally make sense to have the same type implement both fallible and infallible variants of the same method...
How about just inside_or?

inside_or would be perfect if it weren't for the possibility of it erroring out by exceeding the bound.

I was thinking of Option::ok_or read as "as the Ok variant if Some, or the provided value", but you're right that it's more indicative of a fallback, an either/or situation. The example you give is a valid interpretation, so we should avoid this path.
We could just shorten it: inside_incl is not too bad I think.

Yep, inside_incl is perfect.


Wrong Unicode encoding support in Regexp

Character set escapes like \w match only ASCII characters whereas named character sets are Unicode aware. You can also use (?u) inline modifier to allow character set escapes to match Unicode characters.

I took examples from https://learnbyexample.github.io/Ruby_Regexp/unicode.html
CRuby 2.6.3
irb(main):001:0> 'fox:αλεπού'.scan(/\w+/)
=> ["fox"]
irb(main):002:0> 'fox:αλεπού'.scan(/[[:word:]]+/)
=> ["fox", "αλεπού"]
irb(main):003:0> 'fox:αλεπού'.scan(/(?u)\w+/)
=> ["fox", "αλεπού"]
irb(main):006:0> 'fox:αλεπού'.codepoints.map { |i| '%x' % i }
=> ["66", "6f", "78", "3a", "3b1", "3bb", "3b5", "3c0", "3bf", "3cd"]

artichoke 0.1.0-pre.0 (2022-06-05 revision 5613)
>>> 'fox:αλεπού'.scan(/\w+/)
=> ["fox", "αλεπού"]
>>> 'fox:αλεπού'.scan(/[[:word:]]+/)
=> ["fox"]
>>> 'fox:αλεπού'.scan(/(?u)\w+/)
Traceback (most recent call last):
        1: from (airb):14
RegexpError (undefined group option)
>>> 'fox:αλεπού'.codepoints.map { |i| '%x' % i }
=> ["", "", "", "", "", "", "", "", "", ""]

CRuby 3.1.1
Exactly identic to CRuby 2.6.3
irb(main):001:0> 'fox:αλεπού'.scan(/\w+/)
=> ["fox"]
irb(main):002:0> 'fox:αλεπού'.scan(/[[:word:]]+/)
=> ["fox", "αλεπού"]
irb(main):003:0> 'fox:αλεπού'.scan(/(?u)\w+/)
=> ["fox", "αλεπού"]
irb(main):006:0> 'fox:αλεπού'.codepoints.map { |i| '%x' % i }
=> ["66", "6f", "78", "3a", "3b1", "3bb", "3b5", "3c0", "3bf", "3cd"]

Thanks for the report @noraj. Artichoke doesn't use the same regexp backend as MRI. MRI uses Onigmo and Artichoke uses a hybrid of the Rust regex crate and bindings to oniguruma.
For these Regexps, Artichoke is likely using the Rust regex crate which has a more Unicode aware implementation of character classes.
Artichoke doesn't have any compile time features that allow building without the Rust regex crate as an available backend.


Add warning/lint for Iterable<E>.whereType<T> when T is! E

Add warning for Iterable<E>.whereType<T> when T is! E.
I think the static analyzer should warn against such obvious cases:
void main() {
  var some = <int>[].whereType<String>();  // no warning here
  print(some.isEmpty); // always true
}

I expected to have a warning along the lines: Unnecessary Iterable; 'Iterable<int>' can never contain type 'String'...
Why this is useful?
I believe many developers, including myself, relay on the static analyzer when refactoring code by slightly modifying a program so analysis errors/warnings are propagated throughout the codebase to guide the refactoring effort. In such cases, it would be useful to catch the case above, which I came across today.

Sounds like something that can be included in https://dart.dev/tools/linter-rules/collection_methods_unrelated_type
I'll transfer this request to the lints repo.


Extract main process Profile service

Right now, there's a global set of bookmarks shared between BrowserWindow instances via IndexedDB.  This approach doesn't address Sync (in the future) well.  @rnewman has written about this in https://github.com/FractalBrew/blueharvest/wiki/Profile-service (currently (temporarily?) private).
This ticket tracks fleshing out a main process profile service, fleshing out the IPC required to move between the two, and moving the existing approach to the new hotness.

See https://github.com/mozilla/tofino/wiki/Profile-service

This is done.


Bug with iterating df.columns

Describe the bug
import pandas as pd

t: pd.DataFrame
s: list[str] = list(t.columns)

t.py:4: error: Argument 1 to "list" has incompatible type "Index"; expected
"Iterable[str]"
    s: list[str] = list(t.columns)
                        ^~~~~~~~~
t.py:4: note: Following member(s) of "Index" have conflicts:
t.py:4: note:     Expected:
t.py:4: note:         def __iter__(self) -> Iterator[str]
t.py:4: note:     Got:
t.py:4: note:         def __iter__(self) -> Iterator[Union[Union[str, bytes, date, datetime, timedelta, bool, int, float, complex, Timesta
mp, Timedelta], Tuple[Hashable, ...]]]
Found 1 error in 1 file (checked 1 source file)

Variant:
import pandas as pd

t: pd.DataFrame
s: str
for s in t.columns:
    pass

t.py:5: error: Incompatible types in assignment (expression has type
"Union[Union[str, bytes, date, datetime, timedelta, bool, int, float, complex, Timestamp, Timedelta], Tuple[Hashable, ...]]",
variable has type "str")
    for s in t.columns:
    ^
Found 1 error in 1 file (checked 1 source file)

To Reproduce
See above
Please complete the following information:

Version <IP_ADDRESS>105
MyPy 0.991

You have to use cast here for now.  We are not tracking the type of values inside of an Index.   This is on our TODO list.  But even with your example, there is no way to know the dtype of t.columns for any particular DataFrame.
You'd get a similar error in your first example like this:
import pandas as pd

t: pd.DataFrame
s: list[int] = list(t.columns)

So the solution here is to do:
import pandas as pd
from typing import cast

t: pd.DataFrame
s: list[str] = cast(list[str], list(t.columns))

I also ran in to this using date_range.
Workaround is good for now:
for ts in cast(Iterator[datetime], date_range(start='1/1/2023', end='1/08/2023', freq='6H', tz=timezone.utc)):
   ....

I also ran in to this using date_range.

Different issue - this can be fixed.  Created a new issue  #723


ngTagsInput is blocked by Mobile Safari content blocker "Crystal"

The "Crystal" content blocker for iOS Mobile Safari blocks ngTagsInput because of the string "tags".
Specifically, the CDNJS hosted version is blocked:
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ng-tags-input/3.0.0/ng-tags-input.min.js"></script>

To work around it, download this file and rename it from "ng-tags-input.min.js" to anything without the word "tags" and it is no longer blocked:
<script type="text/javascript" src="ng-taZZZgs-input.min.js"></script>

This issue was selected to be spring-cleaned by a script. More information can be found here.
If anyone thinks this was a mistake and this issue should be reopened, please leave a message below explaining why. Before doing so, please consider reading the CONTRIBUTING file.


model fires change event even though nothing has changed

It looks like there is a bug in the backbone model that might have been introduced when the following issue was resolved: https://github.com/documentcloud/backbone/issues/105.
Use-Case scenario: We create an apple object and during initialization we set a “state” attribute to 0, silently. We then call set() on that object again and pass in the same args (state of zero).  At this point a change event should not be fired.
Code:
// Fruit Model
Fruit = Backbone.Model.extend({
        initialize: function(){
                this.set({state: 0}, {silent: true});
        }
})

// create new fruit object
var apple =  new Fruit();
// "change" event has not been triggered: however, this._changed = true

// set state to 0
apple.set({state: 0});

// nothing has changed, but because this is not silent and this._changed has been previously
// set to true, we fire a change event... as seen in line 223

if (!alreadyChanging && !options.silent && this._changed) this.change(options);

Nope, the current behavior is correct. From the model's perspective, first the state was undefined, then when you called .set(), it became 0 -- this is a change.


Invoker cannot issue with RPS > 1000

The invoker fails to issue requests with RPS > 1000

found it as well. the throughput degrades significantly. Is there any update on this?


Android & Golang dependency : Impossible to generate a signed Bundle

Everything works fine in debug mode. However, it is impossible to generate a signed Bundle with Android Studio. I get the following error:
File 'root / lib / GOLANG-LICENSE' uses reserved file or directory name 'lib'
I don't import the golang library directly, it is part of the library (kassensichv) I use.
Any idea where this issue can come from?

Please fill the issue template, so that we can understand how to debug this issue ourselves.


[iOS]  'flutter build ios-framework' there is a problem with the FlutterPluginRegistrant

Steps to Reproduce
This is the command : flutter build ios-framework --cocoapods --output=output4iOS --no-release --no-profile
product:

Here the FlutterPluginRegistrant(17k) is significantly smaller than normal size.
And when i embed and link those generated frameworks into my existing application in Xcode encountered error.
Logs

Logs
Undefined symbols for architecture arm64:
  "_objc_msgSend$registrarForPlugin:", referenced from:
      +[GeneratedPluginRegistrant registerWithRegistry:] in FlutterPluginRegistrant(GeneratedPluginRegistrant.o)
  "_objc_msgSend$registerWithRegistrar:", referenced from:
      +[GeneratedPluginRegistrant registerWithRegistry:] in FlutterPluginRegistrant(GeneratedPluginRegistrant.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

[✓] Flutter (Channel stable, 3.3.3, on macOS 12.6 21G115 darwin-arm, locale en-CN)
    • Flutter version 3.3.3 on channel stable at /Users/heybox/test/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18a827f393 (2 days ago), 2022-09-28 10:03:14 -0700
    • Engine revision 5c984c26eb
    • Dart version 2.18.2
    • DevTools version 2.15.0
    • Pub download mirror https://mirrors.tuna.tsinghua.edu.cn/dart-pub
    • Flutter download mirror https://mirrors.tuna.tsinghua.edu.cn/flutter

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/heybox/Library/Android/sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/heybox/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A309
    • CocoaPods version 1.11.3

[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[!] Proxy Configuration
    • HTTP_PROXY is set
    ! NO_PROXY is not set

[✓] Connected device (1 available)
    • macOS (desktop) • macos • darwin-arm64 • macOS 12.6 21G115 darwin-arm

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.

At the moment it looks like this problem is only in my computer and I'm wondering what's wrong with my FlutterPluginRegistrant file.

When I use the FlutterPluginRegistrant compiled by other machines, it returns to normal.

Hi @MeandNi, please provide a complete minimal reproducible code sample so that we can investigate this issue.
Thank you

it seem that xcode14.0 and flutter 3.0.5 are not compatible.
My product is from flutter3.3 xcode14 machine.

it seem that xcode14.0 and flutter 3.0.5 are not compatible.
My product is from flutter3.3 xcode14 machine.

@jmagman do you know what happen.

Hi @MeandNi, please provide a complete minimal reproducible code sample so that we can investigate this issue.
Thank you

Hi, I am facing an issue that FlutterPluginRegistrant is missing after run flutter build ios-framework --cocoapods.  This prevents flutter module integration with my existing iOS app.
My Flutter version is:
Flutter 3.3.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision eb6d86ee27 (3 weeks ago) • 2022-10-04 22:31:45 -0700
Engine • revision c08d7d5efc
Tools • Dart 2.18.2 • DevTools 2.15.0

Hi @mikeyunpeng, can you provide a complete minimal reproducible code sample along with steps to reproduce so we can investigate this?
Thanks

Hi @MeandNi, please provide a complete minimal reproducible code sample so that we can investigate this issue.
Please also include steps to reproduce the issue.
Thank you

I can't provide the code, it needs you to reproduce in your own development environment.
Use the environment of xcode 14 / flutter3.0.5 to execute flutter build ios-framework --cocoapods --output=output4iOS --no-release --no-profile to compile the products, and then use these products to compile and run ios in the environment of xcode13 .

Hi @MeandNi, I am not requesting your project code(which I understand if you cannot share). What I'm requesting is a small sample that is already setup that we can use to replicate the issue that you're facing after running the commands you've stated.

Hi, @danagbemava-nc
I followed the option C in https://docs.flutter.dev/development/add-to-app/ios/project-setup
I first run flutter build ios-framework --cocoapods --output=some/path/MyApp/Flutter/
And in Flutter folder, I only see following created:

Debug

App.xcframework
Flutter.podspec

Profile
Release

The FlutterPluginRegistrant.xcframework is missing from the output.
Then I adde pod 'Flutter', :podspec => 'some/path/MyApp/Flutter/Debug/Flutter.podspec' to my pod file
I run podinstall and build the xcworkspace.   The build is successful.
However FlutterPluginRegistrant is missing, I won't be able to call
GeneratedPluginRegistrant.register(with: self.flutterEngine);  in AppDelegate
When I open my demo app, it can not load the flutter demo screen.

Hi @mikeyunpeng, did you have a plugin in your flutter module when you built the pod? I see the FlutterPluginRegistrant.xcframework when I add a plugin into the module and build the pod.
Nov  2 07:29 App.xcframework
Nov  2 07:29 Flutter.podspec
Nov  2 07:29 FlutterPluginRegistrant.xcframework
Nov  2 07:29 url_launcher_ios.xcframework

@danagbemava-nc I just created the my_flutter from the default flutter template and use the suggested option C approach from the https://docs.flutter.dev/development/add-to-app/ios/add-flutter-screen#create-a-flutterengine
And then I created the hello world iOS app and follow the instructions to create flutter engine and launch FlutterViewController.  When I open the view controller, it is transparent with nothing.

@danagbemava-nc btw, I have created the issue in https://github.com/flutter/flutter/issues/114454 and let's move the discussion there.

I was able to reproduce this with just the sample project https://github.com/flutter/samples/tree/main/add_to_app/prebuilt_module

same problem


scheduler: too many pending commands

Now, scheduler only does the flow control for write bytes, but in some cases, the scheduler may still be very busy with lots of pending commands, of course, we need to know why the scheduler operation is slow, we still need to do something for this case.

Now we can know that two scenarios may cause this issue:

High network latency, TiKV 5 is in another IDC and the network latency is about 100ms+, so if the TiKV 5 has some leader, the Raft log replication is slow
Slow disk, the IO latency for TIKV 5 is high, so every write is slow

We should detect these problems dynamically because we can't assume that the hardware can work well all the times.


Replace the terminology for shared non-conforming slave/master

This PR improves further the new Mesh::FaceInformation by associating location and conformity to both elem1 and elem2 for a given face, this should make the Mesh::FaceInformation even easier to process by a human.
This PR also proposes to replace the concepts of slave and master faces for two main reasons:

These terms are politically loaded, especially in the US due to its history,
This terminology is hard to grasp, indeed slave and master refer to how the faces are created in the code, therefore understanding how the code works is a prerequisite to understand the documentation (?!). Whereas replacing these concepts by fine and coarse describes what the faces are from a mathematical/geometrical perspective. Furthermore, slave and master are not sufficient to describe all the possible face configurations, and thus a third concept of ghost faces (also not trivial to grasp) is needed to resolve the ambiguity. However, when describing faces in term of coarse and fine, all the possible face configurations can be described (non-ambiguously) without requiring a third concept.

@pazner, @tzanio, @psocratis, @dylan-copeland,
If you can take a look and comment on the following discussions, that will be great:

https://github.com/mfem/mfem/pull/2769#discussion_r788245257
https://github.com/mfem/mfem/pull/2769#discussion_r788258476
and also the naming of the methods in class FaceInformation.

Thanks!

I think this PR has good improvements. One question I have is whether it is possible to replace elem1 and elem2 with more descriptive names, because the user will wonder how these two elements are assigned and what can be assumed about them. Maybe this is not possible, if the way these are assigned is too complicated to give simple descriptions (e.g. replace elem1 with owningElem, but that may not be true generally).

I replaced the Elem1 in the function names, which was indeed not very clear nor elegant, and replaced it by the suggested CoarseFine and FineCoarse names.


Add tutorials

Essentials

[ ] Bitcoin units
[ ] What is the bitcoin testnet?
[ ] Generating a receive address
[ ] What are unconfirmed transactions?
[ ] What is the mempool?
[ ] Sending your first coins
[ ] What are transaction fees?
[ ] What is a wallet backup seed?
[ ] Recovering your wallet from a backup

I think the tutorials should fall broadly into two categories: Skills to Develop and Concepts to Know.

I think the tutorials should fall broadly into two categories: Skills to Develop and Concepts to Know.

In the spirit of keeping things small and easily digestible, I think the tutorials should have a cap on how long they can be.
For now setting this cap at 5000 characters.

In the spirit of keeping things small and easily digestible, I think the tutorials should have a cap on how long they can be.
For now setting this cap at 5000 characters.


pull request for e2e test at 12/22/2016 20:26:18

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Deprecate extern(Pascal) linkage

D dropped Windows 3.x and 9.x support back in 2.058 - http://dlang.org/deprecate.html#Windows 3.x and Windows 9x support
It causes problems with ambiguity between extern(Pascal) functions and template value arguments - https://issues.dlang.org/show_bug.cgi?id=14591
Is not supported by LLVM (http://llvm.org/docs/LangRef.html#calling-conventions) or GCC (https://gcc.gnu.org/onlinedocs/gcc/x86-Function-Attributes.html)

Sigh. We need to stop these instant deprecations. There's a process to go through. Documentation - warning - deprecation - error

Sigh. We need to stop these test-suite failures.

We need to stop these test-suite failures.

The timeouts? Yes...


Update model

This update was kind of strange. I got the line to be removed from the head and in doing so I also got the pieces of the model put out to be easily changed based on the character (like male vs female, faction, etc). When I got that done I noticed that when our page was up it was using 90% of my CPU even if I wasn't doing anything on the page it just had to be in the foreground. So I changed the way we re-render the canvas so now it's a bit choppier, but it only maxes out at 50-70% CPU usage only when moving the model. When you don't move the model there is ~0% CPU usage. Shadows on the model were also added when the meshes were updated. I also commented the model.js file to make it easier to understand. This will close #18 and close #21

The before and after is crazy haha

Wow!! This is awesome! On my machine/CPU (Ryzen 3600) I only notice a spike of about 10% when moving the model! Really awesome work Dylan


Fixes host node/details panel color mismatch

'label_major' has been changed to 'label' in the details api response.
getNodeColorDark was giving up too early if a rank wasn't provided.
The topo diagram which uses getNodeColor will select a color even w/
no rank. Hosts don't have ranks at the mo.

Fixes #871

The Loading... looks a bit pale

I will do something about this!

No, I am having trouble doing something about this. Its white for my host-nodes! Clear-cache?

It seems like this style happens while react reconciliation gets interrupted by #891
So, this PR LGTM


[Docs] React.cloneElement and forwarding ref

Hi, I believe the documentation about React.cloneElement is not very clear about handling refs.
I am talking about that part: https://reactjs.org/docs/react-api.html#cloneelement

However, it also preserves refs. This means that if you get a child with a ref on it, you won’t accidentally steal it from your ancestor. You will get the same ref attached to your new element.

Now, let's see consider the following use case (simplified):
const ChangeTitle = ({ children, ...otherProps }) =>
  React.cloneElement(children, {
    ...otherProps,
    title: 'Title was changed'
  })

function MyComponent() {
  const myRef = React.useRef()
  return (
    <ChangeTitle ref={myRef}>
      This is my component
    </ChangeTitle>
  )
}

This throws a console warning about ChangeTitle unable to hold a ref.
In my original understanding of the docs, I though ChangeTitle would become the cloned element, which, as the docs explains, retain it's original ref, hance the one given by Mycomponent.
Instead, this is obviously wrong, and the cloned element would only retain a ref if it was given to itself, not the parent component, hence something like This is my component.
I guess the fix to the above code is the following:
const ChangeTitle = React.forwardRef(({ children, ...otherProps }, ref) =>
  React.cloneElement(children, {
    ...otherProps,
    ref,
    title: 'Title was changed'
  }))

Correct?
Is it worth adding specifically that cloneElement can contain the ref prop if used with React.forwardRef in a functional component?

Hi! Any solution?


os.mv() fails on moving a file/dir into another dir with same name

While I'm writing some tests, I found os.mv() cannot deal with "same name". The behavior is different with command mv
$ xmake l
> os.mkdir("test2")
> os.mkdir("test2/test1")
> io.writefile("test1","awd")
> os.mv("test1","test2/test1")
/home/ts/share/xmake/core/base/os.lua:591: cannot move test1 to test2/test1 Is a directory
stack traceback:
	[C]: in function 'error'
	/home/ts/share/xmake/core/base/os.lua:591: in function 'raise'
	/home/ts/share/xmake/core/sandbox/modules/os.lua:78: in function </home/ts/share/xmake/core/sandbox/modules/os.lua:67>
	[C]: in function 'interactive'
	...ake/core/sandbox/modules/import/core/sandbox/sandbox.lua:64: in function 'interactive'
	/home/ts/share/xmake/plugins/lua/xmake.lua:76: in function </home/ts/share/xmake/plugins/lua/xmake.lua:32>
	[C]: in function 'load'
	/home/ts/share/xmake/core/project/task.lua:423: in function 'run'
	/home/ts/share/xmake/core/main.lua:188: in function </home/ts/share/xmake/core/main.lua:151>

The problem has been fixed on the repo branch, but has not been merged into the dev branch, and now I have fixed it on dev.

:+1: